NZH gyakorlás

Czirkos Zoltán · 2019.10.17.

Ezen az előadáson NZH gyakorlás és konzultáció lesz.

Lásd a Minta NZH-t.

1. Nagy ZH, tudnivalók

Mi a feladat? És mi a megoldása?

Írj függvényt:

def prim(n):
    # ...
    # ...
    # ...
    
    return # ...

Írj programot:

import random

def main():
    # ...
    
main()

Ez nem a feladat megoldása:

# itt be kellene olvasni egy számot, aztán...

Erre nem jár pont, ne töltsétek ilyennel az időt.


Mivel lehet írni?

Akár ceruzával is.

2. Nagy ZH, feladatok és elvi hibák

Feladat

Mikor született Petőfi Sándor?

Megoldás

1848, 1823

Arany János 1222-ben született.

A nagy ZH feladatokra EGY megoldást kérünk. Ha több megoldást kapunk, az egyiket javítjuk találomra, vagy az összesben lévő hibákért levonjuk a pontot. Akkor is, ha olyan megoldásról van szó, amit nem is kért a feladat, de nyilvánvalóan hibás.


A nagy számonkéréseken elvi hibának, halálfejes hibáknak nevezzük az alapok meg nem értéséről tanúskodó kódrészleteket. Eléggé meglehetős pontlevonások járnak értük.

# sorminták
a = input()
b =  -||-
 -||-
print(a)
 -||-(b)
   -||-
# nem kért I/O
def paros_e():
  n = int(input())
  if ...:
    print("páros")
  else:
    print("ptlan")
# adatszerkezetek
i = 123
print(i[0])




3. Konzultáció

  • Jövő hétfőn.
  • Jelentkezés a portálon.
  • Kérdéseket, félig megoldott feladatokat hozzatok. Nem előadás!

4. Tizennégy betű, tizennégy osztó

Az 1245 szám számjegyeit betűkkel, magyarul kiírva összesen 3+5+4+2=14 betűt használunk fel: „egy kettő négy öt”. Írj programot, amelyben megkeresed a legnagyobb négyjegyű számot, amely osztóinak száma 14 (beleértve saját magát és az 1-et is), és a számjegyeit leírva 14 betűt kell felhasználni! Írd ki, melyik ez a szám, vagy ha nincs ilyen, akkor azt!


Ne írj felesleges kódot! Használj fentről lefelé tervezést, írj a két részfeladathoz függvényeket (hány betű, osztók száma)! Emlékeztető: egy szám utolsó számjegyét eldobni tízzel való egész osztás segítségével tudod, míg magát az utolsó számjegyet a tízzel osztás maradéka adja meg.

5. Hiányos sorozat

Kapunk egy számsort, amiről tudjuk, hogy egy számtani sorozat elemei. Pontosan egy elem hiányzik belőle, de előre nem tudjuk, melyik. Adjuk meg a hiánytalan sorozatot, megjelölve a hiányzó elemet! Például:

Bemenet: 1 3 5 7 11
Kimenet: 1 3 5 7 *9* 11

Megjegyzés: nem az első elem hiányzik, és nem is az utolsó (mert akkor olyan lenne, mintha nem hiányozna egyik sem). És azt is lehet tudni, hogy legalább három elem van.

6. ZH statisztika

Egy oktató statisztikát szeretne készíteni a megírt ZH-król. A ZH-ban három feladat van, ezek pontszáma nemnegatív egész szám, egyenként max. 10 pont, így az egész max. 30 pontos lehet.

Írj programot, mely a szabványos bemenetéről olvassa be soronként a ZH-k pontszámait. Az adatsort üres sor zárja. Ha hibás lenne a bemenet, jelenjen meg magyar nyelvű hibaüzenet!

Miután beolvasta a program az összes adatot, írja ki a szabványos kimenetre, hány 0 pontos, hány 1 pontos, … és hány 30 pontos megoldás lett. Ha adott pontszámú dolgozat nem született, az a sor ne jelenjen meg.

Példa bemenet:

8 10 7
4 3 5
10 10 9
10 9 10

Példa kimenet:

12 pontos: 1 db
25 pontos: 1 db
29 pontos: 2 db

7. Útiterv

Egy kamionsofőr autópályán vezet, 100 km/h-val haladva. A benzinkutak egymástól való távolságát előre ismeri a térképről. Minden másfél órányi vezetés után pihenőt kell tartania. Szeretne egy útitervet készíteni: előre eldönteni azt, hogy melyik benzinkúton kell majd pihennie. A szabály egyszerű: minden olyan benzinkútnál megáll, amelynél ha nem tartana pihenőt, a következő kúthoz már csak úgy érne el, ha túllépné a másfél órás egyfolytában vezetést.

Írj programot, amely soronként beolvassa az egyes benzinkutak közötti távolságot km-ben! Előbb megkapja a távolságok számát, magukat a távolságokat (valós számok, soronként egy darab). Végül pedig írja ki az útitervet. Például ha bemenetként a 45.3, 30.7, 64, 35, 72 számsort kapja (km-ek), akkor a kimenet az alábbi kell legyen:

45.3 km, 30.7 km, 64 km
35 km, 72 km