Kihagyás

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

\[ k \in \mathbb{N}^{n-1} \]
\[ \forall i(i \leq i \leq n-1): k_i = |x_{i+1}-x_i| \]

Így az utófeltétel:

\[ (maxind, maxkül) = MAX_{i=1}^{n-1}k_i \]

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)
  • 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 c nem változik


Programozási tételek

DE most:

  • intervallumon értelmezett függvényekre
  • programspecifikációval
  • Újracsoportosítva

Lásd: diasor, 39. laptól