Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: PHP: Mikä ohjelmassa vikana?

tyttö [06.12.2007 13:13:00]

#

public class Luvut {
	/**
	* Testaa metodin parillisetLuvut() toimintaa.
	*/
	public static void main(String[] args) {
		int alku = Integer.parseInt(args[0]);
		int loppu = Integer.parseInt(args[1]);
		int[] parilliset = parillisetLuvut(alku, loppu);
		//tulostaa parilliset-taulukon alkiot
		for (int i = 0; i < parilliset.length; i++) {
			System.out.println(parilliset[i]);
		}
	}
	/**
	* Palauttaa uuden taulukon, jossa on parilliset luvut
	* suljetulta väliltä [alku, loppu].
	*
	* Alkuehto: 0 <= alku && alku <= loppu
	*/
	public static int[] parillisetLuvut(int alku, int loppu) {

		int i = 0;
		int pituus = 0;

		while ((i<=alku) & (i>=loppu)) {
			if (i % 2 == 0) {
				pituus = pituus + 1;
			}
			i=i+1;
		}

		int[] parilliset = new int [pituus];

		int j = 0;
		int lkm = 0;

		while ((j<=alku) & (j>=loppu)) {
			if (j % 2 == 0) {
				parilliset[lkm]=j;
				lkm = lkm + 1;
			}
			j = j+1;
		}
		return parilliset;
	}
}

Mod. lisäsi kooditagit

Blaze [06.12.2007 15:02:06]

#

Jos tuon nyt haluaa mahollisimman vähillä muutoksilla toimimaan, niin

tyttö kirjoitti:

int i = 0;

int i = alku;
Turhaa kelata läpi lukuja 0-alku, kun ei niistä olla kiinnostuneita.

tyttö kirjoitti:

while ((i<=alku) & (i>=loppu)) {

while(i <= loppu) {
Lohkoa toistetaan niin kauan kuin ("while") ehto on tosi. Tuo alkuperänen ehtos ei oo koskaan tosi, i kun ei koskaan oo yhtäaikaa pienempi kuin alku ja suurempi kuin loppu.
Lisäksi & on eri asia kuin &&. Looginen "ja" merkataan kahella et-merkillä. Tuo yks et-merkki on bitti-or, jonka toimintaa sulle tuskin on vielä opetettukaan.

tyttö kirjoitti:

int j = 0;

int j = alku;
Sama kuin yllä.

tyttö kirjoitti:

while ((j<=alku) & (j>=loppu)) {

while(j <= loppu) {
Ja sama kuin yllä.

Ja sitten parannusvinkkejä:
Lukualueen käyminen läpi kahesti on tyhmää.
Parillisten lukujen tapauksissa on helppo ennustaa, montako lukua vastauksessa tulee olemaan ((loppu - alku) / 2), joten taululle osataan varata sopiva määrä tilaa jo etukäteen käymättä lukuja erikseen läpi.
Jos ennustaminen on vaikeampaa, kannattaa käyttää Vector-luokkaa, joka on kuin taulukko, joka muuttaa kokoaan tarpeen mukaan. Jos vektorin käyttö on jo opetettu, voi (ja kannattaa) sitä käyttää jo tässä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta