Keresés

Keresendő kifejezés:

Toplista

Toplista
  • betöltés...

Segítség!

Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!

Sziasztok segítséget szeretnék kérni ma estére kellene leadnom a feladatomat.

81
–1–A New York-i állatkert népszerű pingvinjei(Kapitány, Rico, Kowalsky és Köz-legény)egy ideig megszabadultak ősi ellenségeiktől (Dr. FújLyuktólés Savio-tól). Viszont felütötte a fejét egy másik komoly probléma... Nagyon úgy néz ki, hogy szeptember óta akadozik a pingvinek napi ellátása a megfelelő menynyiségű hallal. Kapitány rendkívül szomorú és aggasztó tendenciát lát az el-múlt három teljes hónap adataiban (a New York-i állatkertben minden hónap 4 hetes és minden hónap első napja hétfőre esik). A pingvincsapat vezetőjének az a feltételezése, hogy valaki dézsmálja az állatkertbe beérkező halszállítmányt. Ahhoz, hogy Kapitány elemezni tudja a meglévő adatokat, írnia kéne egy programot Pythonban, aminek a segítségével válaszolni tudna a saját magának feltett kérdésekre...Legutóbb már megbeszéltük, hogy a pingvineknek nem igazán megy a programozás, ezért most is téged kérnek meg arra, hogy légy szíves segíts nekik megírni a szükséges kódot(és te most is kitörő örömmel és hangos ujjongással vállalod el a feladatot).A naponta a pingvineknek kiosztott halmennyiséget egy kétdimenziós listában kell tárolni! Minden nap legalább 1, legfeljebb 5db halat kapott egy pingvin.A mátrix neve legyen halak!Ahol szükséges, otthasználj nyugodtan segédlistákat a kiszámolt adatok tárolására (pl. az5. feladatban eltárolhatod egy segédlistában, hogy mennyi halat kaptak a pingvinek egy hónapban)!1. feladat:Hozd létre a feladatban megadott adatszerkezetet és töltsd fel a megfelelő adatokkal!2. feladat:Hány olyan nap fordult elő a vizsgált időszakban, amikor mindegyik pingvin csak egy darab halat kapott egy napon?PÉLDA:1. hét: 2 db 2. hét. 0 db 3. hét: 1 db 4. hét: 0 db...12. hét: 1 db Összesen: 11 db
–2–3. feladat:Melyik hét melyik napján kapták a pingvinek a legtöbb halat egy napon?PÉLDA:Legtöbb hal mennyisége: 17 db Napja: 6. hét, csütörtök 4. feladat:Melyik hét melyik napján kapták a pingvinek a legutolsó legkevesebb 3-mal osztható számú halat egy napon? (Egyáltalán nem biztos, hogy van az adatbázisban 3-mal osztható szám!)PÉLDA:Feltételnek megfelelő mennyiség: 6 db Napja: 9. hét, vasárnap 5. feladat:Vajon igaza van Kapitánynak abban, hogy a vizsgált időszakban hónapról hó-napra egyre kevesebb halat kaptak a pingvinek? (Vagyis igaz-e az az állítás, hogy a legtöbb halat a vizsgált időszak 1. hónapjában, a legkevesebbet pedig a 3. hónapjában kapták a pingvinek?) PÉLDA:Élelemnek kiosztott halak mennyisége havi bontásban:1. hónap: 332 db 2. hónap: 298 db 3. hónap: 268 db Igaz az állítás!
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

2
(Ez nem válasz, hanem hozzászólás a kérdéshez.)

Biztos ennyi az egész? Az a „töltsd fel a megfelelő adatokkal!” elég zavaros. Nem adtak adatokat, vagy útmutatást az adatok generálásához?
0

import random

random.seed()

# 1.

halak = [[random.randint(1, 5) for _ in range(4)] for _ in range(7 * 4 * 3)]

het_napjai = ['hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat', 'vasárnap']

# csak az ellenőrzés kedvéért
print(halak)

for honap, honev in enumerate(['Szeptember', 'Október', 'November']):
    print('===', honev, '===')
    print('%-10s' % 'Pingvin', *["%2d" % (nap + 1) for nap in range(28)])
    print('%-10s' % '', *[het_napjai[nap % 7][:2] for nap in range(28)])
    for pingszam, pingvin in enumerate(['Kapitány', 'Rico', 'Kowalsky', 'Közlegény']):
        print('%-10s' % pingvin, *['%2d' % halak[honap * 28 + nap][pingszam] for nap in range(28)])
    print('%-10s' % 'Összesen', *['%2d' % sum(halak[honap * 28 + nap]) for nap in range(28)])

# 2. (megjegyzés: a használt sima véletlen szám generálással elég sokszor le kell futtasd míg végül lesz egy böjt nap is…)

bojt_lista = [nap // 7 for nap, adat in enumerate(halak) if sum(adat) == 4]

bojt_osszes = 0
for het in range(4 * 3):
    bojt_nap = bojt_lista.count(het)
    print(het + 1, '. hét:', bojt_nap , 'db')
    bojt_osszes += bojt_nap

print('Összesen:', bojt_osszes, 'db')

# 3. (ha több dőzsölés nap volt, felsorolja mindegyiket)

napi_lista = [sum(adat) for adat in halak]
napi_legtobb = max(napi_lista)

print('Legtöbb hal mennyisége:', napi_legtobb, 'db')
print('Napja:', ', '.join(['%d. hét %s' % (nap // 7 + 1, het_napjai[nap % 7]) for nap, adat in enumerate(napi_lista) if adat == napi_legtobb]))

# 4.

haromfogas_lista = [sum(adat) for adat in halak if not sum(adat) % 3]

if haromfogas_lista:
    haromfogas_legtobb = max(haromfogas_lista)
    haromfogas_nap = max([nap for nap, adat in enumerate(napi_lista) if adat == haromfogas_legtobb])

    print('Feltételnek megfelelő mennyiség:', haromfogas_legtobb, 'db')
    print('Napja:', '%d. hét %s' % (haromfogas_nap // 7 + 1, het_napjai[haromfogas_nap % 7]))
else:
    print('Feltételnek megfelelő mennyiség: nincs')

# 5. (ismét elég sokszor le kell futtasd míg végül összeáll a csökkenő lista…)

print('Élelemnek kiosztott halak mennyisége havi bontásban:')

elozo_havi = None
igaz = True
for honap in range(3):
    havi_osszes = sum(napi_lista[honap * 28:honap * 28 + 28])
    print(honap + 1, '. hónap:', havi_osszes, 'db')

    if elozo_havi != None and elozo_havi <= havi_osszes:
        igaz = False

    elozo_havi = havi_osszes

print('Igaz' if igaz else 'Hamis', 'az állítás!')
Módosítva: 1 hónapja
0