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..
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 %.
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
Kyllä, tietenkin pitää käyttää if-lausetta. Mitä muutakaan?
No niin, en tiedä, toivoin että olisi ollut joku kivempikin (helpompi,joku taika vaikka) tapa.. Mutta kiitos!! Nyt pitää kai vaan herätä. :)
Vaikea kuvitella tapaa, joka olisi vielä helpompi kuin yksi ainoa if-lause.
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
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.
Niin, ja lisäyksenä tosiaan ne , jotka on jaollisia molemmilla.. Kiitos edelleen!!:) Katson välillä oppaasta lisää -->
Vinkki: "for luku in range(x,y)" lohkoja voi olla myös sisäkkäin.
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)
Metabolix kiitos "neuvosta" (vastauksesta)!! JES.. :)
TuomasK kiitos myös, tulen tarvitsemaan tuota tietoa jatkossa; lähestulkoon kaikki on vielä vierasta.
:)
Oho, luin väärin tuon alkuperäisen kysymyksen. Jos haluttaisiin kaikki luvut joilla joku luku on jaollinen, silloin sisäkkäisistä silmukoista on apua.
Aihe on jo aika vanha, joten et voi enää vastata siihen.