# Gyakorló zárthelyi

Czirkos Zoltán, Ress Sándor · 2024.10.02.

Post Covid rövidített, három példából álló minta zárthelyi

Figyelem!

1. Nem minden évben ugyanakkor van a NZH, nem minden évben pont ugyanaddig terjedt a NZH anyaga; ezzel kapcsolatban lásd az aktuális évi előadásanyagokat és az ütemtervet.

2. Minden zárthelyi egyedi és általában a következőképp épül fel:

   - az első feladatban egymásba ágyazott ciklusokat
   - a második feladatban szöveges adatok feldolgozását
   - a harmadik feladatban pedig a probléma függvényekre bontását kérjük számon.

   A pontszámok a megoldás objektív (kódsorok száma) és szubjektív (nehézségét) tükrözik, és szintén változhatnak, csak az összeg állandó.

## 1. Karaktertábla (10p)

Az előadásanyagban szerepel egy táblázat az ASCII karakterkódokkal. A feladat egy olyan programot írni, amely kirajzolja azt, fejlécekkel együtt. (ciklus nélküli megoldás érvénytelen) Csak a 32-127 közé eső ASCII kódokat kell kiírni.

        0123456789

     30   ␣!"#$%&'
     40 ()*+,-./01
     50 23456789:;
     60 <=>?@ABCDE
     70 FGHIJKLMNO
     80 PQRSTUVWXY
     90 Z[\]^_`abc
    100 defghijklm
    110 nopqrstuvw
    120 xyz{|}~

## 2. ZH statisztika (12p)

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. Írja ki ezután a szabványos kimenetre, hány 0 pontos, hány 1 pontos, … és hány 30 pontos megoldás lett. Ugyanezeket az adatokat ábrázolja hisztogrammon is, a maximális értékhez tartozó szélesség legyen 20! Ha adott pontszámú dolgozat nem született, a sort ne írja ki.

Legyen hibatűrő a megvalósítás, a hibás sorokat hagyja figyelmen kívül!

Egy lehetséges be és kimenet:

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 ********************

## 3. Armstrong számok (18p)

Készíts programot, mely Armstrong-számokat keres, és a találtakat megjeleníti a képernyőn! N-jegyű Armstrong számoknak nevezzük azokat a számokat, melyek számjegyei N-dik hatványainak összege éppen a számot adja. Például: egy négyjegyű Armstrong-szám a 1634, mivel: 1634=1⁴+6⁴+3⁴+4⁴ A program kérje be a számjegyek számát, majd listázza ki az ahhoz tartozó összes Armstrong számot!

Használj top-down tervezést és függvényeket!

- Írj függvényt, ami egy számot tízes számrendszerben számjegyekre bont és visszaadja egy listában!
- Írj egy másik függvényt, ami megmondja, Armstrong-szám-e a megadott szám!
- Írj egy harmadik függvényt, ami a megfelelő határok között egy ciklusban kilistázza az Armstrong számokat!
- Írj egy main függvényt, ami bekéri a határokat és meghívja az előző függvényt!

Példa:

    Hány jegyű számok között? 3
    153
    370
    371
    407