25. óra: Programozás gyakorlat IV.

Hozzon létre az Export könyvtárában egy python-4.gyakorlat nevû mappát! Kész munkáit kérem oda mentse! (Ez lesz a 'munkakönyvtára' ezen az órán.)

 

A teljes feladat

Leírok egy teljes feladatot, amit aztán kisebb részfeladatokra bontunk példa/feladat lépésekkel. A végére kész lesz az egész feladat.
Kérem, apró lépésekben kövessék a példákat és oldják meg a feladatokat!

Kockadobálás: Anni és Panni három dobókockával játszik. Egyszerre feldobják a három kockát, és összeadják a három kockán kidobott számokat. Anni akkor nyer, ha a kockákon lévõ számok összege 10-nél kisebb, Panni pedig ellenkezõ esetben. Sokat játszanak, de több feldobás után sem tudják eldönteni, hogy melyiküknek kedvez a játék.
 
Készítsen programot az alábbi leírás szerint, amely modellezi a játékot, és segít eldönteni, hogy kinek kedvez a játék! A program n alkalommal dobja fel a három kockát, és számolja meg, hogy hány esetben volt Anni, és hány esetben volt Panni a nyertes! A program forráskódját mentse kockak.py néven!
 
A részfeladatok:
  1. Kérje be a felhasználótól n értékét, vagyis a feldobások számát, és tárolja el a kapott értéket!
     
  2. Végezzen n feldobást a három kockával úgy, hogy minden feldobásnál generál három véletlenszámot 1 és 6 között! Figyeljen arra, hogy a program futtatása során ne mindig ugyanazt a véletlenszám-sorozatot kapja!
     
  3. Minden feldobás után írja ki a kockán lévõ számokat, valamint azok összegét, és azt is, hogy ki nyert. A kiírás egy sorban történjen, az alábbi mintához hasonlóan!
     
  4. A feldobások után egy mondatban írja ki, hogy hány alkalommal kedvezett az egyik, és hány
    alkalommal a másik játékosnak a szerencse!
Forrás:digitális kultúra gyakorlati érettségi, 2022. október, 5. feladat

A program teljes futása végül így nézzen ki:

Hány alkalommal legyen feldobás: 5
Dobás: 4 + 1 + 2 = 7     Nyert: Anni
Dobás: 5 + 4 + 1 = 10    Nyert: Panni
Dobás: 5 + 3 + 3 = 11    Nyert: Panni
Dobás: 4 + 3 + 3 = 10    Nyert: Panni
Dobás: 3 + 2 + 2 = 7     Nyert: Anni
A játék során 2 alkalommal Anni, 3 alkalommal Panni nyert.

 

És akkor nézzük az apró lépéseket!

 

I. Egy dobássorozat, és annak kiírása

1.0. példa: Elõször generáljunk csak két kockadobást, és irassuk ki a mintának megfelelõen a két dobást (összeadás formában), az összegükkel együtt!
A kész programjának neve legyen dobas-1.0.py. Így mentse a munkakönyvtárába!

A program futása így nézzen ki:

Dobás: 3 + 5 = 8

A program forráskódja (gépelje be, futtassa, és próbálja megérteni):

A kiíratásban kicsit sok a '+' jel, és három különbözõ szerepben. Próbálja beazonosítani, hogy melyik helyen mi a szerepe!

Ha kérdése volna, tegye fel!

1.1. feladat: Módosítsa úgy a fenti példát, hogy most három kockadobás készül, és mind a három számot kiírja (összeadás formában), valamint az összeadást is mindhárom számra végzi!
Kész programját dobas-1.1.py néven mentse el a munkakönyvtárába!

A program futása ilyen legyen:

Dobás: 3 + 5 + 1 = 9

 

II. A gyõztes eldöntése

2.0. példa: Készítsünk programot gyoztes-2.0.py néven, mely kétszor dob a kockával, kiírja a dobásokat (összeadás formájában az összegükkel együtt), aztán letesz egy tabulátorjelet ("\t") aztán odaírja, hogy
"Az eredmény kevesebb 6-nál.", vagy, hogy "Az eredmény nagyobb-egyenlõ 6-nál."

A program futása:

Dobás: 1 + 4 = 5     A dobás értéke kevesebb 6-nál.

vagy

Dobás: 3 + 5 = 8     A dobás értéke nagyobb-egyenlõ 6-nál.

A program kódja (gépelje be, futassa, értse meg):

Ha kérdése van, tegye fel!

 

2.1 feladat: Készítsünk programot gyoztes-2.1.py néven, mely háromszor dob a kockával, kiírja a dobásokat (összeadás formájában az összegükkel együtt), aztán letesz egy tabulátorjelet ("\t") aztán odaírja, hogy
"Nert Anni", vagy, hogy "Nyert Panni"
(Anni nyer, ha a dobások összege 10-nél kisebb, Panni egyébként.)

A program futása:

Dobás: 3 + 2 + 4 = 9      Nyert: Anni

vagy

Dobás: 4 + 6 + 2 = 12     Nyert: Panni

 

III. A dobások ismétlése

Ha azt szeretnénk, hogy a dobási kísérletet a program többször is elvégezze, akkor a dobást végzõ, kiértékelõ és kiírató részt egy ciklusban kell elhelyeznünk

3.0 példa: Készítsünk programot ismetelve-3.0.py néven, mely 10-szer elvégzi az alábbi feladatot: kétszor dob a kockával, kiírja a dobásokat (összeadás formájában az összegükkel együtt), aztán letesz egy tabulátorjelet ("\t") aztán odaírja, hogy
"Az eredmény kevesebb 7-nél.", vagy, hogy "Az eredmény nagyobb-egyenlõ 7-nél."
(Mindezt 10-szer!)

A program futása:

Dobás: 2 + 4 = 6    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 6 = 7    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 6 = 7    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 1 = 2    Az eredmény kevesebb 7-nél.
Dobás: 1 + 1 = 2    Az eredmény kevesebb 7-nél.
Dobás: 4 + 2 = 6    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 6 + 4 = 10    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 6 + 1 = 7    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 2 + 6 = 8    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 2 = 3    Az eredmény kevesebb 7-nél.

A program kódja (gépelje be, futassa, értse meg):

Ha kérdése van, tegye fel!

 

3.1. feladat: Készítsen programot ismetelve-3.1.py néven, mely 10-szer elvégzi az alábbi feladatot: háromszor dob a kockával, kiírja a dobásokat (összeadás formájában az összegükkel együtt), aztán letesz egy tabulátorjelet ("\t") aztán odaírja, hogy
"Nyert: Anni", vagy, hogy "Nyert: Panni"
(Anni nyer, ha a dobások összege 10-nél kisebb, Panni egyébként.)
Mindezt 10-szer!

A program futása:

Dobás: 6 + 5 + 5 = 16    Nyert: Panni
Dobás: 1 + 2 + 6 = 9    Nyert: Anni
Dobás: 1 + 6 + 1 = 8    Nyert: Anni
Dobás: 5 + 1 + 5 = 11    Nyert: Panni
Dobás: 3 + 1 + 1 = 5    Nyert: Anni
Dobás: 1 + 5 + 4 = 10    Nyert: Panni
Dobás: 6 + 4 + 6 = 16    Nyert: Panni
Dobás: 2 + 3 + 3 = 8    Nyert: Anni
Dobás: 1 + 6 + 4 = 11    Nyert: Panni
Dobás: 1 + 6 + 5 = 12    Nyert: Panni

 

3.2. feladat: Készítsen programot ismetelve-3.2.py néven, mely kér a felhasználótól egy n (pozitív egész) számot, mint az ismétlések számát,
majd n-szer elvégzi az alábbi feladatot: háromszor dob a kockával, kiírja a dobásokat (összeadás formájában az összegükkel együtt), aztán letesz egy tabulátorjelet ("\t") aztán odaírja, hogy
"Nyert: Anni", vagy, hogy "Nyert: Panni"
(Anni nyer, ha a dobások összege 10-nél kisebb, Panni egyébként.)
Mindezt n-szer!

A program futása:

Hány alkalommal legyen feldobás: 5
Dobás: 6 + 5 + 5 = 16    Nyert: Panni
Dobás: 1 + 2 + 6 = 9    Nyert: Anni
Dobás: 2 + 3 + 3 = 8    Nyert: Anni
Dobás: 1 + 6 + 4 = 11    Nyert: Panni
Dobás: 1 + 6 + 5 = 12    Nyert: Panni

 

IV. Statisztika készítés

Amikor egy sorozat lefut, és a végén szertnénk tudni, hogy hány esetben történt így vagy úgy, akkor be kell építenünk egy-egy számlálót (változót), melyek kezdõértéke 0, majd minden alkalommal, ha így vagy úgy esik, 1-gyel növeljük a megfelelõ változónkat.

Így a végén tudjuk, hogy melyik eset hányszor történt meg.

4.0. példa: Készítsünk programot szamlalva-4.0.py néven, 10-szer elvégzi az alábbi feladatot: kétszor dob a kockával, kiírja a dobásokat (összeadás formájában az összegükkel együtt), aztán letesz egy tabulátorjelet ("\t") aztán odaírja, hogy
"Az eredmény kevesebb 7-nél.", vagy, hogy "Az eredmény nagyobb-egyenlõ 7-nél."
(Mindezt 10-szer!)
  
Végül írja ki, hogy hászor volt a dobásösszeg 7 alatt, és hányszor volt 7-nél nagyobb-egyenlõ.

A program futása (a dobások értéke persze véletlen - nem pont ez):

Dobás: 2 + 4 = 6    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 6 = 7    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 6 = 7    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 1 = 2    Az eredmény kevesebb 7-nél.
Dobás: 1 + 1 = 2    Az eredmény kevesebb 7-nél.
Dobás: 4 + 2 = 6    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 1 = 2    Az eredmény kevesebb 7-nél.
Dobás: 6 + 1 = 7    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 2 + 6 = 8    Az eredmény nagyobb-egyenlõ 7-nél.
Dobás: 1 + 2 = 3    Az eredmény kevesebb 7-nél.
A sorozatban 4 alkalommal volt 7-nél kisebb és 6 alkalommal 7-nél nagyobb-egyenlõ az összeg.

A program kódja (gépelje be, futassa, értse meg):

Ha kérdése van, tegye fel!

 

És végül a teljes feladat: Készítsen programot kockak.py néven, az alábbi feladatok elvégzésére:
  1. Kérje be a felhasználótól n értékét, vagyis a feldobások számát, és tárolja el a kapott értéket!
     
  2. Végezzen n feldobást a három kockával úgy, hogy minden feldobásnál generál három véletlenszámot 1 és 6 között! Figyeljen arra, hogy a program futtatása során ne mindig ugyanazt a véletlenszám-sorozatot kapja!
     
  3. Minden feldobás után írja ki a kockán lévõ számokat, valamint azok összegét, és azt is, hogy ki nyert. A kiírás egy sorban történjen, az alábbi mintához hasonlóan!
     
  4. A feldobások után egy mondatban írja ki, hogy hány alkalommal kedvezett az egyik, és hány
    alkalommal a másik játékosnak a szerencse!

A program futása (a dobások értéke persze véletlen - nem pont ez):

Hány alkalommal legyen feldobás: 5
Dobás: 4 + 1 + 2 = 7     Nyert: Anni
Dobás: 5 + 4 + 1 = 10    Nyert: Panni
Dobás: 5 + 3 + 3 = 11    Nyert: Panni
Dobás: 4 + 3 + 3 = 10    Nyert: Panni
Dobás: 3 + 2 + 2 = 7     Nyert: Anni
A játék során 2 alkalommal Anni, 3 alkalommal Panni nyert.

Jó munkát!