HY mooc Python tehtävänantoon apua..

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...?
177016
Äänestä

Muut lukivat myös

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.

Äänestä
  • Tämä se näytti tuottavan oikean vastauksen..

    Äänestä

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ää.

Äänestä
  • 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.

    Äänestä

  • Anonyymi kirjoitti:

    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.

    Äänestä

  • 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ä...

    Äänestä

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.

Äänestä

TEHTÄVÄ NEROILLE

Mikä luku tulee kysymysmerkkien paikalle:

21, 34, 55, 89, 144, 233, 377, ???

Äänestä
  • 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.

    Äänestä

  • Anonyymi kirjoitti:

    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.

    Äänestä

  • Anonyymi kirjoitti:

    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.

    Ajattele nyt, S24 lukijoita on uskomaton määrä, ja vain sinä tiesit oikean vastauksen, olet nero, usko pois.

    Äänestä

  • Anonyymi kirjoitti:

    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.

    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

    Äänestä

Hieno tehtävä.

Äänestä

Minäkin olisin osannut.

Äänestä

Google auttaa mielellään.

Äänestä

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

Äänestä

Jos ei ymmärrä tehtävää, niin tarkennus / selvennys pitää pyytää opettajalta...

Äänestä

Ketjusta on poistettu 1 sääntöjenvastainen viesti.

Kommentoi aloitusta


Anonyymi kirjoitti:

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...?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu