7. előadás
Tartalom
- Programozási tételek intervallumon
- Feladatspecifikáció → Programspecifikáció
- Programozási tételek általánosítása
Programozási tételek
- Sorozat → érték
- Sorozatszámítás (szum)
- Megszámolás
- Maximum-kiválasztás
- Keresés
- Kiválasztás
- Eldöntés
- Sorozat → sorozat
- Másolás
- Kiválogatás
- Szétválogatás
A tételeket sorozatokra (tömbökre) mondtuk ki, mivel a feladatok többségében ilyen jellegű adatok szerepelnek
Problémák és megoldásuk
Nincs tömb
Egy számsorozatban mekkora a legnagyobb eltérés két szomszédos elem között?
Be tudunk vezetni csak a megoldás folyamán használt tömböt, ami nem jelenik meg
Így az utófeltétel:
Az előbb létrehozott segédtömbböt használtuk fel.
Programspecifikáció
Eddig feladatspecifikáció volt.
- Adat, mint egy értékhalmaz eleme
- Bemenő adatok, kimenő adatok
- Feladat: olyan előírás, amely megadja, hogy adott bemenetre adott kimenetet mikor fogadjuk el helyes kimenetként
Ezzel szemben a programspecifikáció:
- Egy állapot: feladat minden adata felvesz egy-egy értéket
- pl:
(a: 5, b: 3)
- pl:
- kezdőállapot, cél állapot
- Feladat: olyan kapcsolat, amely bizonyos állapotokhoz (kezdőállapot) egy másik állapotot (célállapot) rendel
- Végrehajtás: az állapottér változóinak módosítása
- Program: egy végrehajtási sorozat, mely a kezdőállapotból indul és a célállapotban ér véget.
Példa
a és b megcserélése
Bemenet: a, b: egész
Kimenet: a, b: egész
Előfeltétel: a = a' és b = b'
Utófeltétel: a = b' és b = a'
Vesszős értékeket olvasod be
Növeljük meg egy változó értékét
Bemenet: a: egész
Kimenet: a: egész
Előfeltétel: a = a'
Utófeltétel: a = a' + 1
Celsius -> fahrenheit
Bemenet: c: valós
Kimenet: f: valós
Előfeltétel: c = c'
Utófeltétel: Ef (előfeltétel) és f = c * 9/5 + 32
Ef -> Az előfeltétel a végén is érvényesül, tehát a
cnem változik
Programozási tételek
DE most:
- intervallumon értelmezett függvényekre
- programspecifikációval
- Újracsoportosítva
Lásd: diasor, 39. laptól