Agyamra megy már ez a szám

A múltkor, azt hiszem, túlzottan is jó fejek voltunk a felhasználóval. Most komolyan, addig találgathat, amíg úri kedve diktálja? Na ezt azért nem!

Legyen mondjuk 3 lehetősége. Elvileg minden gond nélkül meg tudod írni a programot te is, ha

Szóval próbáld csak meg! És ha nem megy, itt a videó:

 


gondolt_szám = 4

kitalálta = False
elhasznált_lehetőségek = 0

while not kitalálta and elhasznált_lehetőségek < 3:
    tipp = input('Melyik számra gondoltam 1 és 5 között? ')
    tipp = int(tipp)
    elhasznált_lehetőségek += 1
    if tipp == gondolt_szám:
        kitalálta = True

print('Pápá!')

A programunkban az újabb kérdést egyszerre két feltételhez kötjük:

  1. még ne legyen kitalálva a szám ÉS
  2. még ne legyen három próbálkozás

Amíg (tudod: while) ez a két feltétel egyszerre fennáll, belépünk a ciklusba. Ha bármelyik bebukott, többé nem kérdezünk.

Feladatok

F0008a: Helyezz el dicséretet a programban, meg vigasztalást is! (Megoldás itt.)

F0008b: Amikor épp nem jó a tipp, írd ki, hogy mennyivel tér el a felhasználó! (Megoldás az expand source-ra kattintva.)


gondolt_szám = 4

kitalálta = False
elhasznált_lehetőségek = 0

while not kitalálta and elhasznált_lehetőségek < 3:
    tipp = input('Melyik számra gondoltam 1 és 5 között? ')
    tipp = int(tipp)
    elhasznált_lehetőségek += 1
    if tipp == gondolt_szám:
        kitalálta = True
    else:
        print('Nem oké, az eltérésed:', abs(gondolt_szám - tipp))

print('Pápá!')

F00008c: Amikor épp nem jó a tipp, írd ki, hogy nagyobb vagy kisebb számot kell tippelni! (Megoldás az expand source-ra kattintva.)


gondolt_szám = 4

kitalálta = False
elhasznált_lehetőségek = 0

while not kitalálta and elhasznált_lehetőségek < 3:
    tipp = input('Melyik számra gondoltam 1 és 5 között? ')
    tipp = int(tipp)
    elhasznált_lehetőségek += 1
    if tipp == gondolt_szám:
        kitalálta = True
    elif tipp > gondolt_szám:
        print('Tippelj kisebbet!')
    else:
        print('Tippelj nagyobbat!')

print('Pápá!')

F0008d: A tesód szülinapi szendvicsét csinálod. A tesód szerint akkor jó egy szendvics, ha:

  • Van benne legalább egy fajta hús,
  • Legyen benne marha vagy sonka, de együtt ne,
  • Ha a szendvicsben van pulykahús, akkor legyen benne sajt is.

Írj programot a szendvics “jóságának” eldöntésére! A program elején egyesével kérdezd meg, hogy van-e benne marha, pulyka, sonka, sajt, és ezeket tárold logikai változókban, majd írd meg a megfelelő if-et! (Megoldás itt. Ez, és a következő két feladat innen származik, köszönet érte!)

F0008e: A tesód szülinapi almás pitéjét csinálod. A tesód szerint akkor jó egy almás pite, ha:

  • nincs benne egyszerre szegfűbors és szerecsendió,
  • ha a pitébe tettünk fahéjat, akkor kell bele szerecsendió is,
  • ha nem tettünk fahéjat, akkor nem lehet benne szerecsendió sem.

Írj programot a pite “jóságának” eldöntésére! A program elején egyesével kérdezd meg, hogy van-e benne szegfűbors, szerecsendió illetve fahéj, és ezeket tárold logikai változókban, majd írd meg a megfelelő if-et! (Megoldás itt.)

F0008f: Amanda, Borbála és Cilike piizzát rendelnek, de jó nagyot, és egyet, egy közöset. A választható feltétek: olívabogyó, pepperoni és sonka.

  • Amanda az olivabogyós pizzát csak akkor eszi meg, ha pepperoni is van rajta,
  • Borbála csak pepperonis pizzát és csak sonka nélkül eszik, az olíva mindegy neki,
  • Cilike pedig csak olyan pizzát hajlandó enni, amin pontosan kétféle feltét van.

Írj programot, amely segít eldönteni, hogy milyen feltétet kérjenek! (Megoldás itt. A videóban megnézzük, hogy igazságtáblával miként egyszerűsíthető a feltételek hosszú sora.)

 

A múltkor megismerkedtünk a while-ciklussal. Legközelebb egyismeretlenes egyenletet oldunk meg while-ciklussal.

Reklámok

Agyamra megy már ez a szám” bejegyzéshez ozzászólás

  1. Sziasztok

    Szerintem a pizzás megoldásban van egy kis hiba,mert ha csak pepperoni van a pizzán az Amandának megfelelő, bár ez a végeredményen nem változtat mert Cillikén elbukik.

    Vagy nem jól gondolom?

    Kedvelés

  2. Sziasztok! A szendvicses feladatnál nekem a megoldásban mutatott módra magamtól nem állt rá az agyam, ez a megoldás jött össze:

    marha = input(‘Van a szendvicsben marhahús? (i/n)….’)
    sonka = input(‘Van a szendvicsben sonka? (i/n)….’)
    pulyka = input(‘Van a szendvicsben pulyka? (i/n)….’)
    sajt = input(‘Van a szendvicsben sajt? (i/n)….’)

    if ((marha == ‘i’ and sonka == ‘i’) or (pulyka == ‘i’ and sajt == ‘n’)):
    print(‘\nEz a szendvics rossz.’)
    elif ((marha == ‘i’ or sonka == ‘i’) or (pulyka == ‘i’ and sajt == ‘i’)):
    print(‘\nEz a szendvics király!!’)
    else:
    print(‘\nEz a szendvics rossz.’)

    A videó után már megvilágosodtam, de a logikai változókat még szokni kell…

    Egyébként nagyon jól magyarázol és a feladatok is szuperek! Köszi!

    Kedvelés

    • Ezt a “szokni kell” dolgot nagyon jól látod. Talán a legtöbb programozó matekos, ami nekem nem ment kiválóan, ellenben könnyen tanultam nyelveket – mármint idegen nyelveket. A programozást is kicsit így közelítem meg, és így könnyen értelmezhető a dolog: olyan, mint ha egy idegen nyelv logikájára igyekeznél ráérezni – igen, erre is rá lehet érezni:)

      Kedvelés

  3. Szia. A szendvicses feladatnál a végén:

    if (marha or pulyka or sonka) and \
    ((marha and not sonka) or (sonka and not marha)) AND \
    (pulyka and sajt):
    print(‘Fincsi’)
    else:
    print(‘Fúj’)

    A nagybetűs AND esetén akkor is rossz lesz a szendvics, ha van benne sajt. Ha átállítom or-ra, akkor működik.

    És nekem nem esik le miért kell még az utolsó feltételbe a
    ((pulyka and sajt) or (not pulyka)):
    a második rész, mikor anélkül is megy.

    Kedvelés

    • Örülnék, ha videóra vennéd, és feltöltenéd akárhova, mert jelenleg biztos vagyok benne, hogy valamit (esetleg több dolgot is) benéztél.

      Kedvelés

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s