En ymmärrä tehtävää, joten osaako joka kertoa mitä tuossa pitää tehdä?
"Tee ohjelma, joka laskee peräkkäisten lukujen summaa 1 2 3 ... kunnes sen arvo on vähintään käyttäjän syöttämä luku. Ohjelma toimii seuraavasti:"
Tarkoitetaanko tässä nyt Fibonaccin lukusarjaa vai ihan 1 2 3 4 5...?
"Tee ohjelma, joka laskee peräkkäisten lukujen summaa 1 2 3 ... kunnes sen arvo on vähintään käyttäjän syöttämä luku. Ohjelma toimii seuraavasti:"
Tarkoitetaanko tässä nyt Fibonaccin lukusarjaa vai ihan 1 2 3 4 5...?
Vastaukset 17
Vanhimmat
// Pyydä luku parhaaksi katsomallasi tavalla.
Int syote = [käyttäjän syöttämä luku];
// Apumuuttujat:
Int summa = 0;
Int lisattava =1;
// Summaus:
While (summa < syote)
{
summa = lisattava;
lisattava ;
}
return summa;
Summajono on siis 0,1,3,6,10,15,21,28,…
Ei ole Fibonacci.
Tämä se näytti tuottavan oikean vastauksen..
katsoin seuraavaa tehtävää ja kyse taitaa olla ihan 1 2 3 4..
Harmi kun en ymmärrä mitä muut tarkoittavat, joku vika on päässä. Samasta syystä en ole viitsinyt jatkaa opiskeluja. On turhaa kun ei pääse tenttejä läpi sen vuoksi ettei ymmärrä tehtävää.
Ongelma on se että osaat enemmän kuin kysymyksen antaja. Älä ajattele liian monimutkaisesti. Sinun täytyy alentua kysyjän tasolle. Ajattele että kysyjä on lapsi joka opettelee tietotekniikkaa.
”Peräkkäisten lukujen summa” on täysin selkeästi ilmaistu. Huonojakin tehtävänantoja on, mutta tämä ei ollut sellainen.
Tässä tapauksessa ongelma muodostuu vain koska lukijan ajatukset loikkaavat Fibonacciin, kun hän näkee samassa lauseessa sanat ”peräkkäin” ja ”summa”. Se on aivan inhimillistä, koska aivot yrittävät säästää aikaa arvaamalla merkityksiä etukäteen, mutta silti pitäisi malttaa lukea tehtävänanto huolellisesti eikä hypätä suoraan ratkaisemaan sitä.
Fibonaccin luvut eivät ole perättäisten lukujen summia, vaan ensimmäisten kahden (yleensä 0 ja 1 tai 1 ja 1, mieltymyksistä riippuen) termin jälkeen jokainen Fibonaccin luku on kahden edellisen Fibonaccin luvun summa.
Itsekin aikanaan Yliopistolla opiskelleena voin kertoa että oli aika paljonkin tehtäviä joita "ei ymmärtänyt".
Yksikin ohjelmointitehtävä oli aika outo, ja ymmärsin siitä vain sen että "tee olio joka tekee olioita", nin sellaisen sitten ohjelmoin.
Luennolla proffa sitten vaan aloitti kertomalla että "tämä tehtävä oli ilmeisesti aika hankala kun siitä tuli niin paljon kyselyitä", ja minä vaan ihmettelin että "mitä vaikeaa siinä muka oli?".
Sitten proffa tuli käymään kaikkien laskarit läpi, ja ihmetteli että mitä h* oikein olin tehnyt, niin kerroin vaan että tehtävähän oli tehdä oli joka tuottaa olioita...
Proffa pyöritteli päätään, ja sitten sanoi vaan että "no, olio-ohjelmointiahan me tässä nyt opiskellaan, ja kyllä se sulla hallussa näyttää olevan", ja täydet pisteet.
AP:n tehtävä on kyllä maailman yksinkertaisimmasta päästä, jonka varmaan osaa yläastelainenkin jo tehdä...
KOLMION NUMEROSARJAT
Yläpuolella oli jo asia ratkaistu silmukkaa käyttäen. Tässä sama mutta tällä kertaa vastaus haetaan kaavaa käyttäen.
OHJELMA
import sys
x=int(sys.argv[1])
print( int(x*(x 1)/2))
KÄYTTÖ
python tri.py 7
tri.py on ohjelmalle antamasi nimi ja polkua ei tarvitse antaa kun olet samassa kansiossa ohjelman kanssa. Vastaus esimerkin parametrilla (7) on 28.
TEHTÄVÄ NEROILLE
Mikä luku tulee kysymysmerkkien paikalle:
21, 34, 55, 89, 144, 233, 377, ???
610. Jos jonon kaksi edellistä termiä ovat 10a b ja 10c d, missä b ja d ovat välillä 0:sta 9:ään, niin jonon seuraava termi on 10(a c) (b d).
Näinollen, koska kaksi viimeistä annettua termiä olivat 233=10*23 3 ja 377=10*37 7, seuraava termi on 10*(23 37) (3 7)=10*60 10=610.
Tämän jälkeen seuraavat olisivat 987, 1597 ja 2584.
Ei nämä ole ”tehtäviä neroille” vaan aivan tavallisia aivopähkinöitä, joilla kuka tahansa voi viihdyttää itseään.
ONNITTELUT
Joka tapauksessa vastaus on tosiaan tuo 610 kuten myös jatko.
Ajattele nyt, S24 lukijoita on uskomaton määrä, ja vain sinä tiesit oikean vastauksen, olet nero, usko pois.
Oletpas vaikeasti ratkaissut yksinkertaisen tehtävän. Lienee ollut tarkoituskin vähän hämätä. Kun kaksi viimeistä lukua vaan lasketaan yhteen, niin saadaan seuraava luku.
Ohjelmointitehtävä:
Peräkkäisten summa, versio 2
Tee edellisestä ohjelmasta hieman kehittyneempi versio, joka tulostaa lopputuloksen lisäksi myös sen miten kyseinen summa lasketaan:
Esimerkkitulostus
Mihin asti: 2
Laskettiin 1 2 = 3
Hieno tehtävä.
Minäkin olisin osannut.
Google auttaa mielellään.
Tuo on vaikea tehdä Pythonilla, koska siitä puuttuu do-while-rakenne, jolla ohjelmalohko suoritetaan vähintään kerran.
Pitää tehdä tyyliin:
while true:
koodia
koodia
if ehto=true: break
Jos ei ymmärrä tehtävää, niin tarkennus / selvennys pitää pyytää opettajalta...