5. gyakorlat

Menüs program készítése: switch - case utasítás használata

Beolvasás "végjelig" tecnika: nem adjuk meg előre az adatok számát (nagyszámú bemenetnél ez kényelmetlen lehet), hanem egy speciális "végjel" begépelésével jelezzük, hogy nincs több bemenő adat. A program beolvasás közben megszámolja, hány adatot adott meg a felhasználó, és azt is figyeli, nehogy "túl töltsük" a tömböt, azaz ne lehessen több adatot bevinni, mint az előfeltételben megadott darabszám.

Programozási tételek gyakorlása

Feladatok:

Adott valós számoknak egy sorozata, mely téli, télvégi napok átlaghőmérsékletét adják meg egy adott mérési helyen.
A hőmérséklet értékek -30 és 20 közé esnek. (Legfeljebb 100 ilyen adatra kell számítani.)

  1. Mennyi a fagyos napok átlaghőmérsékletének átlaga? (Fagyos a nap, ha az átlaghőmérséklet 0 alatt volt.)
    Vigyázat, lehet, hogy nem volt fagyos nap!
  2. Volt-e olyan, 3 egymás utáni nap, hogy a középső kisebb, mint a két szomszédjának az átlaga?
    Ha igen, adjuk meg az első három ilyen nap sorszámát is.
  3. Határozzuk meg melyik két egymás utáni nap között változott legnagyobbat az átlaghőmérséklet.
  4. Adjuk meg azt a fagyos napot, ami után már nem volt fagyos nap a megfigyelt időszakban. (Ha volt ilyen.)
  5. Adjuk meg a „lehűlések” számát, és azon napok sorszámait, amikor lehűlés volt. Lehűlésről beszélünk, ha legalább 5 fokot csökkent a napi átlag hőmérséklet.
  6. Adjuk meg, hogy a lehűléses napok előtt (ha volt ilyen) melyik napon volt a legmagasabb a napi átlaghőmérséklet.

Szorgalmi hf: BIRO "Progalap Gyakorló" témából a 06. Út feladat a) b) c) részfeladatának megoldása.

Letölthető keret program: gyak05_keret.zip

Letöltehtő félkész megoldás (esti tagozat): gyak05_felkesz.zip

specifikáció

algoritmus


A megoldáshoz több féle algoritmus mintát is használhatunk. Próbáljunk ki többet is:

Egy másik minta algoritmus:
Ezt akkor célszerű használni, ha a T tulajdonság meghatározása bonyolultabb, nem írható be a ciklus feltételbe.

algoritmus


maximum kiválasztás specifikáció


4. feladat

Tipp: alkalmazzunk fordított keresést (n-től .. 1-ig), ekkor i>0 vizsgálattal dönthető el, hogy van- a keresett elemnek megfelelő.

specifikacio

algoritmus


5. feladat

Kiválogatás tétel. Készítsünk specifikációt, és megoldó algoritmust!

kiválogatás specifikáció kiválogatás algoritmusa

Megoldás:


6. feladat

Maximum kiválasztás, az 5. feladat eredményének segítségével. Készítsünk specifikációt és megoldó algoritmust! Lehet, hogy a kiválogatás nulla darab elemet talált!

Megoldás:

A teljes megoldás: gyak05.zip