» »

[java] naloge za vajo

[java] naloge za vajo

epicVoid ::

Hi,

učim se programirat v javi (beginner mode) in bi rad še rešil kakšno vašo vajo, tako da če imate kakšna besedila vaj kar prilepite. Rešitve ali dele teh bom postal.

Lp.

Yacked2 ::

Naredi program za rešit sudoku (rabiš znat, if stavke, for zanke, rekurzijo)
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

lebdim ::

Nekaj nalog: (sicer so za prog. jezik C, ampak mislim, da bi bilo tudi za javo, saj je tudi pri javi podobna sintaksa)

1. Napišite program, ki rekurzivno izračuna in vrne vrednost n! (n fakulteta), kjer je n naravno število.

2. Napišite program, ki za naravno število n rekurzivno izračuna in izpiše njegovo predstavitev v dvojiškem številskem sistemu.
Primer 77(10) = 01001101(2)

3. Napišite program, ki rekurzivno izračuna potenco nenegativnega števila s ponavljajočim kvadriranjem, tj.
x2n = (x2)n in x2n+1 = x * x2n in podprogram vrne rezultat izračuna. Podprogram naj prejme dva parametra:
- prvi parameter predstavlja število, ki ga želimo potencirati
- drugi parameter tega podprograma predstavlja potenco tega števila
Primer: 27 = 2 * 22*3 = 2 * (23)2 ...

epicVoid ::

Hvala.

Sudoku še malo razmišljam... Je pametno uporabiti bruteforce za števila? Se pravi, da bi tako dolgo premetaval števila, dokler ne bi tabela ustrezala pogojem (če je to dejanski bruteforce ne vem). Pri tem ne mislim, da bi vsa števiila naenkrat premetaval, ampak samo števila v vrsticah naprimer, dokler niso vsa različna in ko so vsa različna bi šel v naslednjo vrstico in pogledal če so vsa različna... potem bii šel pregledat vsak stolpec posebej in na koncu še notranje matrike 2×2, da vsebujejo različna števila. Nevem, če je ideja primerna....

1. naloga od lebdim:

public fakulteta() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 361, 67);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		final JLabel lblVpiiN = new JLabel("Vpiši n :");
		lblVpiiN.setBounds(12, 12, 94, 15);
		contentPane.add(lblVpiiN);
		
		textField = new JTextField();
		textField.setBounds(76, 10, 140, 19);
		contentPane.add(textField);
		textField.setColumns(10);
		
		final JButton btnNewButton = new JButton("Izračunaj");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				try {
					int num = Integer.parseInt(textField.getText());
					// JOptionPane.showMessageDialog(null, "Hello World");
					int rezultat = fak(num);
					JOptionPane.showMessageDialog(null, rezultat);
					
				}
				
				catch(Exception ex)
				{
					JOptionPane.showMessageDialog(null, "Napaka");
				}	
			}
		});
		
		btnNewButton.setBounds(228, 7, 117, 25);
		contentPane.add(btnNewButton);	
		
	}
	
	public int fak(int n) {
		
		int rezultat;
		
		if(n == 1) {
			return 1;
		}
		
		else {
			rezultat = n * fak(n-1);
			return rezultat;
		}
	}


Tisto moje mišljenje se ne bo izšlo preveč dobro, ker se ob spremembi vrstice spremeni tudi število v stolpcu in je to potem začaran krog....

Zgodovina sprememb…

  • spremenilo: epicVoid ()

epicVoid ::

malo sem še popravil 1 nalogo, da če ni naravno število izpiše napako.

try {
					int num = Integer.parseInt(textField.getText());
					// JOptionPane.showMessageDialog(null, "Hello World");
					if(num > 0) {
						int rezultat = fak(num);
						JOptionPane.showMessageDialog(null, rezultat);
					}		
					else {
						JOptionPane.showMessageDialog(null, "Vnešeno število ni naravno število");
					}
				}
				
				catch(Exception ex)
				{
					JOptionPane.showMessageDialog(null, "Napaka, napačen vnos");
				}	

Yacked2 ::

Za začetek za sudoku preglej preseke manjkajočih cifer za posamezne polja. S tem boš rešil lažje sudokuje. Nato nadgradiš. Jaz imam sudoku solver rešen v 500 vrsticah. Če rabiš ti lahko pošljem source.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

epicVoid ::

Hvala, bom najprej poskušal narediti po svoje in bom potem z veseljem pogledal tvojo kodo. Radi bi naredil tudi GUI, samo ne vem kakšne gradnike točno naj bi uporabil za 9×9 matriko? 81 gumbov oz text fieldov?

rešitev druge naloge od lebdim :

public rekursionNumer2() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 418, 96);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblVpiiDesetikotevilo = new JLabel("Vpi\u0161i deseti\u0161ko \u0161tevilo :");
		lblVpiiDesetikotevilo.setBounds(10, 21, 120, 14);
		contentPane.add(lblVpiiDesetikotevilo);
		
		textField = new JTextField();
		textField.setBounds(143, 18, 86, 20);
		contentPane.add(textField);
		textField.setColumns(10);
		
		JButton btnPretvori = new JButton("Pretvori v binarno");
		btnPretvori.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				try {
					int num = Integer.parseInt(textField.getText());
					if(num >= 1) {
						JOptionPane.showMessageDialog(null, pretvoriVBinarno(num));
					}
					else {
						JOptionPane.showMessageDialog(null, "Stevilo ni naravno stevilo");
					}
				}
				
				catch(Exception ex) {
					JOptionPane.showMessageDialog(null, "Napačen vnos");
				}
			}
		});
		btnPretvori.setBounds(245, 17, 120, 23);
		contentPane.add(btnPretvori);
	}
	
	public int pretvoriVBinarno(int stevilo) {
		if(stevilo <= 1) {
			return 1;
		}
		
		else {
			return (stevilo % 2 + 10 * pretvoriVBinarno(stevilo / 2));
		}
	}

Yacked2 ::

Jaz imam narejeno v terminalu. Če se ti bo zataknilo kar sporoči.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java skeniranje map in podmap

Oddelek: Programiranje
6679 (568) nightrage
»

[Java] While zanka

Oddelek: Programiranje
261553 (1136) kunigunda
»

java net beans pomoč

Oddelek: Programiranje
121098 (986) i33a
»

Null pointer Exception[Java]

Oddelek: Programiranje
61131 (992) infiniteLoop
»

Java,actionlistener problem

Oddelek: Programiranje
5756 (742) JaaZoo

Več podobnih tem