6. gyakorlat
Gregó pontozás, apparently: A, B, Q, R: 1-1 pont (📒📓📔📝)
🎶Specifikálunk, babám...🎵
Példa előző óráról
\(F = \begin{cases} A = (x: \Z, y: \Z, z: \Z) \\ B = (x': \Z, y': \Z) \\ Q = (x=x' \land y = y' \land x' > 5) \\ R = (x' > y' \to z=x') \end{cases}\)
- A: állapottér (basically az összes változó)
- B: paramétertér (basically a bemeneti változók)
- Q: előfeltétel (megkötéseket tesz a bemenetre és "átmásolja" a kezdőállapotot a paramétertérbe)
- R: utófeltétel (A kimeneti állapotot köti meg, azaz ez a feladat teste)
Tipp: Szövegesen azt írhatjuk ki a specifiákcióban (pl. \(n\) összetett), amiről biztosak vagyunk, hogy mindenki ugyanazt érti. Ha nem, akkor valahova mellé leírjuk, hogy egyértelmű legyen és ne legyen bloated a specifikáció.
1. feladat
Egy összetett természetes számnak meghatározni egy természetes valódi osztóját
Természetes szám - \(n\)
Valódi osztó - \(d\)
A következő is valid:
(nem változik az n kimeneti és bemeneti értéke)
2. feladat
Egy pozitív egész szám tizes számrendszerben hány számjegyű
megadott egész szám - \(n\)
számjegyek száma - \(d\)
3. feladat
\(x : \Z^n\)
\(e=\begin{cases} \max(x)&\text{, ha }x\text{-ben van páros szám} \\ \min(x)&\text{, ha }x\text{-ben nincs páros szám} \end{cases}\)
4. feladat
\(x: \Z^n\)
Módosítsuk \(x\) elemeit úgy, hogy \(x\) \(i\)-edik eleme az azt megelőző összes régi tömbelem összege legyen
\(A = (x: \Z^n)\)
\(B = (x': \Z^{n})\)
\(Q = (x = x')\)
\(R = (\forall i \in [1..n]: \; x[i] = \sum_{j = 1}^{i}(x'[j]))\)
\(R = (n \geq 1 \to (x[1]=0 \; \land\; \forall i \in [2..n]: x[i]=x'[i]+x[i-1]))\)
5. feladat
Adjon meg egy 1 000 000-nál nagyobb prím számot
\(A = (n: \N)\)
\(B = \{o\}\)
\(o\) - origó, az egy-elemű paramétertér eleme (amúgy írhatnánk ide gőzölős vasaló emoji-t is, 🐈-t is, de ne üres legyen)
\(Q_{o} = (igaz)\)
\(R_o = (1000000 > n \; \land \; n \text{ prím})\)