Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Lukujen nimeämien jaollisuuden perusteella listassa

Sivun loppuun

Uliga [30.09.2014 17:39:15]

#

Hei, haluaisin saada kaikki 2:lla jaolliset luvut näkymään merkkijonona "kaksi" ja 7:lla jaolliset merkkijonona "seitsemän"; ohjelmassa joka tulostaa annetut luvut halutulla välillä esim (for luku in range (1,10))

Mihin kohtaan minun tulisi määrittää ja miten, että luvut joiden jakojäännös on nolla 2:lla tai 7:lla jakamisen jälkeen tulostettaisiinkin merkkijonona, eikä numeroina..??

Haluaisin ohjelman siis tulostavan seuraavaa:

1
kaksi
3
kaksi
5
kaksi
seitsemän
kaksi

Viitsisikö joku kiltti osaavainen auttaa ja antaa vinkin?
Kiitos etukäteen..

peran [30.09.2014 17:53:56]

#

En tiedä mitä kieltä käytät ohjelmoinnissa.

Yleinen jakojäännös on % merkki. Esim. 4%2 palauttaa 0:n.

Pascalissa jakojäännös on MOD -käsky. Esim. 4 MOD 2 palauttaa 0:n.

Veikkaan sinun käyttävän pythonia, jolloin oikea operaattori on tuo ensin mainitsemani %.

Uliga [30.09.2014 18:13:20]

#

Kiitos peran avusta!!

Missä minun tulee määrittää kaikki kyseisillä luvuilla jaolliset, ennen "for in range(x,y)"-merkintää vai sen jälkeen..?

Tulisiko minun tehdä tämä määritelmä if-lauseen avulla(?)

Ja joo, tosiaan unohdin mainita käyttämäni kielen ja se on kuin onkin Python :D

Metabolix [30.09.2014 18:16:48]

#

Kyllä, tietenkin pitää käyttää if-lausetta. Mitä muutakaan?

Uliga [30.09.2014 19:39:41]

#

No niin, en tiedä, toivoin että olisi ollut joku kivempikin (helpompi,joku taika vaikka) tapa.. Mutta kiitos!! Nyt pitää kai vaan herätä. :)

Metabolix [30.09.2014 19:50:52]

#

Vaikea kuvitella tapaa, joka olisi vielä helpompi kuin yksi ainoa if-lause.

Uliga [30.09.2014 19:57:01]

#

Kun muodostan if-ehtolausetta, jonka perusteella tietyt luvut tulostetaankin merkkijonoina; mitä muuttujaa käytän luvulle (joka siis muuttuu/kasvaa koko ajan)??

Pääsen tähän asti kyseisessä tilanteessa

if luku%2!=0 or luku%7!=0
   print(luku)

else:
   luku%2=0
   print("kaksi")

else:
   luku%7=0
   print("seitsemän")

^Pitääkö tämän tulla ennen vai jälkeen välin määrittelemistä.. Siis "for in range (x,y)"..

Lisäys: Yksi ainoa? Please, valota hiukan! :D

Metabolix [30.09.2014 20:07:14]

#

Uliga kirjoitti:

mitä muuttujaa käytän luvulle (joka siis muuttuu/kasvaa koko ajan)??

Jos nyt vähän mietit, niin mistäköhän muuttujasta se luku löytyy? Itse olet sen luvun laittanut muuttujaan (for-rivillä), joten ei pitäisi olla kovin monta vaihtoehtoa.

Uliga kirjoitti:

Yksi ainoa? Please, valota hiukan! :D

Ok, kaksi, koska haluat tarkistaa kaksi eri jaollisuutta, ja tietenkin else-lohko sille kolmannelle tapaukselle, että ehdot eivät toteudu. Vielä yksi ylimääräinen tarvitaan, jos haluat huomioida tilanteet, joissa kummatkin jakajat käyvät.

Nykyisessä koodissasi on ongelmana, että else-lohkot eivät toimi noin ja että ”luku%2=0” ei ylipäänsä ole mihinkään tilanteeseen kelvollinen lauseke. Esimerkkejä ehtolauseista on oppaassa.

Uliga [30.09.2014 20:16:05]

#

Niin, ja lisäyksenä tosiaan ne , jotka on jaollisia molemmilla.. Kiitos edelleen!!:) Katson välillä oppaasta lisää -->

TuomasK [30.09.2014 20:23:43]

#

Vinkki: "for luku in range(x,y)" lohkoja voi olla myös sisäkkäin.

Metabolix [30.09.2014 21:48:36]

#

TuomasK, voi varmasti, mutta mitä hyötyä siitä on tässä?

Uliga, hahaa, keksin sittenkin sinulle maagisen ratkaisun ilman if-lauseita!

for i in range(1, 20):
	print(["kaksi ja seitsemän", i, "kaksi", i, "kaksi", i, "kaksi", "seitsemän", "kaksi", i, "kaksi", i, "kaksi", i][i % 14])

Epäilen kuitenkin, että kukaan järkevä ihminen ei pidä tätä selvempänä kuin if-lauseilla toteutettua, jonka nyt laitan tähän, kun olet saanut pari tuntia pohtia:

for i in range(1, 20):
	if (i % 2 == 0) and (i % 7 == 0):
		print("kaksi ja seitsemän")
	elif i % 2 == 0:
		print("kaksi")
	elif i % 7 == 0:
		print("seitsemän")
	else:
		print(i)

Uliga [30.09.2014 22:17:28]

#

Metabolix kiitos "neuvosta" (vastauksesta)!! JES.. :)
TuomasK kiitos myös, tulen tarvitsemaan tuota tietoa jatkossa; lähestulkoon kaikki on vielä vierasta.

:)

TuomasK [01.10.2014 15:07:16]

#

Oho, luin väärin tuon alkuperäisen kysymyksen. Jos haluttaisiin kaikki luvut joilla joku luku on jaollinen, silloin sisäkkäisistä silmukoista on apua.


Sivun alkuun

Vastaus

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

Tietoa sivustosta