Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozási alapismeretek 4. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/472014. 07. 14.2014. 07. 14.2014. 07. 14.  A szöveg A szöveg.

Hasonló előadás


Az előadások a következő témára: "Programozási alapismeretek 4. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/472014. 07. 14.2014. 07. 14.2014. 07. 14.  A szöveg A szöveg."— Előadás másolata:

1 Programozási alapismeretek 4. előadás

2 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/472014. 07. 14.2014. 07. 14.2014. 07. 14.  A szöveg A szöveg  Feladattípus: tömb bemenet, tömb kimenet tömb bemenet, tömb kimenet  Feladattípus: szöveg bemenet, szöveg kimenet szöveg bemenet, szöveg kimenet  Feladattípus: tömb bemenet, érték kimenet tömb bemenet, érték kimenet  Feladattípus: érték bemenet, tömb kimenet érték bemenet, tömb kimenet  Példák Példák Tartalom

3 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.3/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg A szöveg és a tömb  hasonlóak: o egyféle típusú elemekből állnak, o indexelhetők;  különbözőek: o a tömb elem- (és index-) típussal paramétere- zendő (típuskonstrukciós eszköz), a szöveg ka- rakter típusú elemekből áll, o algoritmikusan (!) a szöveg 1-től indexelhető, a tömb deklarációtól függően, o a tömb hossza konstans, a szövegé változtat- ható; szövegeken értelmezve van a hossz() függvény és a + művelet, o problémás az elemmódosítás a szöveg típusnál!

4 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.4/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg (C++)  Fontosabb string-műveletek ( tegyük föl, hogy: string a; ) o …""… //üres szöveg; pl.: a="" o cin >> a;//olvasás szóközig v. sorvégig o getline(cin,a,’\n’); //olvasás ’\n’-ig o getline(cin,a,’x’); //olvasás ’x’ jelig o …a.length()… //a karakterei száma o …a.size()… //=a.length() o …+… //hozzáírás (konkatenáció) o …a[i]… //a szöveg i. jele, 0  i<a.length() o …a.at(i)… //=a[i], objektumos jelöléssel

5 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.5/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg (C++)  Fontosabb string-műveletek ( string a; ) o …a.find(mit)… //a mit szöveg helye a-ban o …a.substr(tól,ig)… //=a[tól..ig] o a.replace(tól,db,mivel); //tól db jelet //helyettesít mivel o Kapcsolódó char-műveletek ( string a; ) o …isalpha(a[i])… //a[i] ’a’..’z’, // ’A’..’Z’? o …isdigit(a[i])… //a[i] ’0’..’9’? o …isupper(a[i])… //a[i] ’A’..’Z’? o …islower(a[i])… //a[i] ’a’..’z’? o …tolower(a[i])… //a[i]-t kisbetűssé //alakítja o …toupper(a[i])… //a[i]-t nagybetűssé //alakítja

6 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.6/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg Feladat: Fordítsuk meg egy szó (szöveg) betűsor- rendjét! Specifikáció:  Bemenet: S:Szöveg  Kimenet: T:Szöveg  Előfeltétel: – hosszhossz hosszhossz  Utófeltétel: hossz(T)=hossz(S) és  i (1  i  hossz(S)): T[i]=S[hossz(S)–i+1] Előre definiált függvény: hossz hossz hossz: Szöveg  Egész hossz(s):=s karaktereinek a száma

7 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.7/472014. 07. 14.2014. 07. 14.2014. 07. 14. Algoritmus: A szöveg i-edik karaktere nem módosítható, ha még nincs. Szükséges a + művelet! vagy Szöveg T:= "" i=hossz(S)..1; –1-esével T:=T+S[i] T:= "" i=1..hossz(S) T:=S[i]+T

8 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.8/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg Feladat: Adjuk meg egy egyszerű angol névhez a monogramját (pl. James Black  JB)! Specifikáció:  Bemenet: Név:Szöveg  Kimenet: Mon:Szöveg  Előfeltétel: SzabályosE(Név) Megjegyzés: a név szabályos, ha csak a szó- kezdőbetűk nagyok, de azok biztosan… feltesszük, hogy létezik a „SzabályosE: Szöveg  Logikai” függvény.

9 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.9/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg  Utófeltétel:és  i (1  i  hossz(Mon)): NagybetűE(Mon[i]) és Mon  Név  Feltesszük, hogy létezik a 1. „NagybetűE:Karakter  Logikai” függvény, 2. „  ” művelet, az ún. részsorozata-e műve- let (x  y akkor igaz, ha x legfeljebb y ele- meinek elhagyásával képezhető).

10 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.10/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg Algoritmus: Mon:= "" i=1..hossz(Név) NagybetűE(Név[i]) Mon:=Mon+Név[i]─ I N

11 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.11/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg Feladat: Adjuk meg egy magyar névhez a monogram- ját (pl. Szabó Éva  SzÉ)! Specifikáció:  Bemenet: Név:Szöveg  Kimenet: Mon:Szöveg  Előfeltétel: SzabályosE(Név)  Utófeltétel: … hf … Problémák: a monogramban nagybetűk szerepel- nek, valamint a kettős mássalhangzókból a nagybe- tűt követő kisbetűk.

12 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.12/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg Megoldási ötlet: Konstans Többes:Tömb[1..8:Szöveg]= (”Cs”,”Dz”,”Gy”,”Ly”,”Ny”, ”Sz”,”Ty”,”Zs”) Közbevető kérdés: ”Dzs” hova való és miként bonyolítja a megoldást? A megoldás vázlata: képezzük a Név kétbetűs részeit, és megnézzük, hogy bent van-e a Többesben, vagy a betűpár első jele nagybetűs-e, ha igen, akkor monogram- hoz írjuk…

13 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.13/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szöveg Algoritmus: Hívhatnak-e valakit „Nagy A”-nak? Fölcse- rélhetők-e a feltételek? Optimális? Mon:= "" i=1..hossz(Név)–1 K:=Név[i]+Név[i+1] K  Többes Mon:=Mon+KNagybetűE(Név[i]) Mon:=Mon+ Név[i]  I N I N

14 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.14/472014. 07. 14.2014. 07. 14.2014. 07. 14. Karakterhasonlítás Feladat: Döntsük el, hogy az A vagy a B betű van-e a magyar ábécében előbb! Specifikáció:  Bemenet: A,B:Karakter  Kimenet: Előbb:Logikai  Előfeltétel: BetűE(A) és BetűE(B)  Utófeltétel: Előbb=A  M B  Definíció: x  M y akkor és csak akkor, ha ???  Feltételezés:  BetűE:Karakter  Logikai függvény

15 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.15/472014. 07. 14.2014. 07. 14.2014. 07. 14. Karakterhasonlítás Megoldásötlet: Tároljuk a helyes sorrendben a betűket, és amelyi- ket előbb lehet megtalálni, az az előbbi.  Definíció: Konstans Betűk:Tömb[1..2*35:Karakter]= (”a”,”A”,”á”,”Á”,”b”,”B”,…,”z”,”Z”) x  M y akkor és csak akkor, ha i  j : x=Betűk[i] és y=Betűk[j] Egy másik megoldás alapulhat egy szövegen is: Konstans Betűk:Szöveg=”aAáÁbB…zZ”Szöveg Melyik a jobb?

16 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.16/472014. 07. 14.2014. 07. 14.2014. 07. 14. Karakterhasonlítás Algoritmus: Kérdés: mi lenne, ha az ef. nem teljesülne? Lehetne-e ”a”=”A”? (i-1) div 2≤(j-1) div 2? i:=1 Betűk[i]≠A i:=i+1 j:=1 Betűk[j]≠B j:=j+1 Előbb:=i≤j

17 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.17/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szóhasonlítás Feladat: Döntsük el, hogy az ábécében az A vagy a B szó van-e előbb! Specifikáció:  Bemenet: A,B:Szöveg  Kimenet: Előbb:Logikai  Előfeltétel: SzóE(A) és SzóE(B)  Utófeltétel: Előbb=A  B  Feltételezés:  SzóE:Szöveg  Logikai függvény

18 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.18/472014. 07. 14.2014. 07. 14.2014. 07. 14. Szóhasonlítás  Definíció (alfabetikus rendezés): (1) Az a szó van ábécében előbb, amelyik első különböző betűje előbb van; (2) az  üres szó minden szónál előbb van.  Példák: ”alfa” ”al”  ”f…”> M  ”alma”≤”alma”   ≤ M  (1) (2)

19 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.19/472014. 07. 14.2014. 07. 14.2014. 07. 14. Algoritmus: A karakterhasonlításra használjuk az elő- ző feladat megoldását (úgy, hogy A helyébe A[i], B helyébe B[i] kerüljön) ! Szóhasonlítás i:=1 i≤hossz(A) és i≤hossz(B) és A[i]=B[i] i:=i+1 Előbb:=(i>hossz(A)) vagy (i≤hossz(B) és A[i]  M B[i])

20 ELTE Szlávi-Zsakó: Programozási alapismeretek 4.20/472014. 07. 14.2014. 07. 14.2014. 07. 14. Tömb bemenet, tömb kimenet Feladat: Ismerjük az elmúlt N napon délben mért hő- mérsékletet. Add meg, hogy mely napokon volt pozitív vagy 0 (+), illetve negatív (–) a hő- mérséklet! Specifikáció:  Bemenet: N:Egész; H:Tömb[1..N:Egész]  Kimenet: E:Tömb[1..N:Karakter]  Előfeltétel: N  0  Utófeltétel:  i(1  i  N): ( H[i]  0  E[i]="+" és H[i]<0  E[i]="–" )

21 ELTE Tömb bemenet, tömb kimenet Algoritmus: Kódoláshoz: A kimeneti tömb (már) akkor deklarál- ható, amikor a bemeneti tömb mérete ismertté válik. (Hiszen a bemeneti tömb- bel azonos elemszámú.)deklarál- ható I N Szlávi-Zsakó: Programozási alapismeretek 4. 21/47 2014. 07. 14.2014. 07. 14.2014. 07. 14. i=1..N H[i]  0 E[i]:=”+”E[i]:=”–”

22 ELTE Tömb bemenet, tömb kimenet Feladat: Ismerjük az elmúlt N napon délben mért hőmérsékletet. Add meg minden 7-napos időszakra az átlaghőmérsékletet! Specifikáció:  Bemenet: N:Egész; H:Tömb[1..N:Egész]  Kimenet: A:Tömb[1..N–6:Valós]  Előfeltétel: N  7  Utófeltétel:  i(1  i  N–6): Megjegyzés: 7 egymás utáni szám összegéből a következő összeg egyszerűbben is számolható: A[i]:=(7*A[i–1]–H[i–1]+H[i+6])/7 Szlávi-Zsakó: Programozási alapismeretek 4. 22/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

23 ELTE Tömb bemenet, tömb kimenet S:=0 i=1..7 S:=S+H[i] A[1]:=S/7 i=2..N –6 S:=S–H[i–1]+H[i+6] A[i]:=S/7 Algoritmus: Szlávi-Zsakó: Programozási alapismeretek 4. 23/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

24 ELTE Szöveg bemenet, szöveg kimenet Feladat: Írj programot egy szó magas- (=), illetve mély (–) hangrendű szótagjai megadására! Specifikáció:  Bemenet: S:Szöveg  Kimenet: H:Szöveg  Előfeltétel: SzóE(S)  Utófeltétel: hossz(X)=hossz(S) és  i(1  i  hossz(S)): S[i]  {"a","á","o","ó","u","ú"}  X[i]="–" és S[i]  {"e","é","i","í","ö","ő","ü","ű"}  X[i]="=" és S[i]  Mássalhangzók  X[i]=" " és H  X és SzóközNélküliE(H) és hossz(H)=  Szlávi-Zsakó: Programozási alapismeretek 4. 24/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

25 ELTE Szöveg bemenet, szöveg kimenet H:=”” i=1..hossz(S) S[i]  {”a”,”á”,”o”, ”ó”,”u”, ”ú”} S[i]  {”e”,”é”, ”i”,”í”,”ö”, ”ő”,”ü”,”ű”} H:=H+” – ”H:=H+”=” Algoritmus: Megspórolható a segéd X szöveg, ha mind- járt átlépjük a szóközzé konvertálandókat, amiket aztán ki kellene hagynunk. Szlávi-Zsakó: Programozási alapismeretek 4. 25/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

26 ELTE Érték bemenet, tömb kimenet Feladat: Adjuk meg a K kezdőelemű, L lépésközű számtani sorozat első N tagját! Specifikáció 1 :  Bemenet: K,L,N:Egész  Kimenet: S:Tömb[1..N:Egész]  Előfeltétel: N  0  Utófeltétel:  i (1≤i≤N): S[i]=K+(i – 1)*L Algoritmus 1 : i=1..N S[i]:=K+(i–1)*L Szlávi-Zsakó: Programozási alapismeretek 4. 26/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

27 ELTE Érték bemenet, tömb kimenet Az uf. „egyszerűbben” is megfogalmazható (rekurzív módon). Specifikáció 2 :  Bemenet: K,L,N:Egész  Kimenet: S:Tömb[1..N:Egész]  Előfeltétel: N  0  Utófeltétel: S[1]=K és  i (2≤i≤N): S[i]=S[i–1]+L Algoritmus 2 : Szlávi-Zsakó: Programozási alapismeretek 4. 27/47 2014. 07. 14.2014. 07. 14.2014. 07. 14. S[1]:=K i=2..N S[i]:=S[i–1]+L

28 ELTE Tömb bemenet, érték kimenet Feladat: Egy repülőgéppel Európából Amerikába re- pültünk. Az út során X kilométerenként mértük a felszín tengerszint feletti magassá- gát (  0). 0 magasságot ott mértünk, ahol tenger van, >0-t pedig ott, ahol szárazföld. Adjuk meg az óceán két partját! Szlávi-Zsakó: Programozási alapismeretek 4. 28/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

29 ELTE Tömb bemenet, érték kimenet Specifikáció:  Bemenet: N:Egész, Mag:Tömb[1..N:Egész]  Kimenet: E,U:Egész  Előfeltétel: Mag[1]>0 és Mag[N]>0 és  i(1<i<N): Mag[i]  0 és  i(1<i<N): Mag[i]=0 [  N  3]  Utófeltétel: Mag[E]=0 és Mag[U]=0 és  i(1  i 0 és  i(U 0 Szlávi-Zsakó: Programozási alapismeretek 4. 29/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

30 ELTE Tömb bemenet, érték kimenet E:=2 Mag[E]>0 E:=E+1 U:=N–1 Mag[U]>0 U:=U–1 Algoritmus: Ötlet: elölről, illetve hátulról haladva kivá- lasztjuk a megfelelő elemet. Szlávi-Zsakó: Programozási alapismeretek 4. 30/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

31 ELTE További példák Feladat: Egy repülőgéppel Európából Amerikába repültünk. Az út során X kilométerenként mértük a felszín tengerszint feletti magas- ságát (  0). 0 magasságot ott mértünk, ahol tenger van, >0-t pedig ott, ahol szárazföld. Adjuk meg a szigeteket! Szlávi-Zsakó: Programozási alapismeretek 4. 31/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

32 ELTE További példák Specifikáció:  Bemenet: N:Egész, Mag:Tömb[1..N:Egész]  Kimenet: Db:Egész, K,V:Tömb[1..Db:Egész]  Előfeltétel: Mag[1]>0 és Mag[N]>0 és  i(1<i<N): Mag[i]  0 és  i(1<i<N): Mag[i]=0 [  N  3]  Utófeltétel: Db= és HalmazEHalmazE RendezettERendezettE  i (1≤i≤Db): SzigetkezdetE(K[i]) és  i (1≤i≤Db): SzigetvégE(V[i]) és HalmazE(K) és HalmazE(V) és RendezettE(K) és RendezettE(V) Előre definiált függvény: HalmazE HalmazE(sorozat):=a sorozatban minden elem csak egyszer van-e? Szlávi-Zsakó: Programozási alapismeretek 4. 32/47 2014. 07. 14.2014. 07. 14.2014. 07. 14. RendezettE(sorozat):=a sorozat- ban minden elem nagyobb vagy egyen- lő-e, mint az előző?

33 ELTE További példák  Definíció: SzigetkezdetE:[2..N]  Logikai SzigetkezdetE(i):=Mag[i]>0 és Mag[i–1]=0 SzigetvégE:[1..N–1]  Logikai SzigetvégE(i):=Mag[i]>0 és Mag[i+1]=0 Kérdés: Mi lesz Európa és Amerika partjával? Megoldás: 2 és N–1 helyett csak az előző feladat szerinti E és U között keresünk szigeteket. Szlávi-Zsakó: Programozási alapismeretek 4. 33/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

34 ELTE További példák Specifikáció:  Bemenet: N:Egész, Mag:Tömb[1..N:Egész]  Kimenet: Db:Egész, K,V:Tömb[1..Db:Egész]  Előfeltétel: Mag[1]>0 és Mag[N]>0 és  i(1<i<N): Mag[i]  0 és  i(1<i<N): Mag[i]=0 [  N  3]  Utófeltétel: Db= és E? és U? ésés E? és U?  i (1≤i≤Db): SzigetkezdetE(K[i]) és K[i] E és HalmazE(K) és HalmazE(V) és RendezettE(K) és RendezettE(V) Szlávi-Zsakó: Programozási alapismeretek 4. 34/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

35 ELTE További példák … E, U előállítása … Db:=0 i=E..U SzigetkezdetE(i) Db:=Db+1  K[Db]:=i SzigetvégE(i) V[Db]:=i  Algoritmus: Használjuk ki, hogy kezdet és vég csak fel- váltva következhetnek! I N I N Szlávi-Zsakó: Programozási alapismeretek 4. 35/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

36 ELTE További példák Kódoláshoz: Probléma: a számítás során jön ki a kimeneti tömb elem- száma, s közben kellene az elemeit is gyűjteni. Megoldás 1 : Előre definiálunk egy maximális kimeneti tömb- méretet (MaxDb), s ekkorára deklaráljuk a K és a V tömböt). (L. a 3. előadásban.)3. előadás Megoldás 2 : Eltérünk az algoritmustól: először meghatároz- zuk a Db-t, majd összegyűjtjük a K-t, V-t. Szlávi-Zsakó: Programozási alapismeretek 4. 36/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

37 ELTE További példák Feladat: Egy folyón N helyen mérik a vízállást, amit egy referenciamagassághoz képest centiméterben ad- nak meg. Elsőfokú árvízvédelmi készültséget kell elrendelni, ha a magasság meghaladja a 800 centi- métert, másodfokút, ha meghaladja a 900 centi- métert és harmadfokút, ha meghaladja az 10 métert. Folyószakasznak nevezzük a leghosszabb egymás mellett levő egyforma tulajdonságú méré- sekből álló sorozatokat. Árvíznek nevezzük azt a folyószakaszt, ahol minden hely legalább elsőfo- kú készültségű. Adjuk meg, hogy hány folyószakaszon volt árvíz! Szlávi-Zsakó: Programozási alapismeretek 4. 37/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

38 ELTE További példák Specifikáció:  Bemenet: N:Egész, F:Tömb[1..N:Egész]  Kimenet: Db:Egész  Előfeltétel: N  0  Utófeltétel: Db= Szlávi-Zsakó: Programozási alapismeretek 4. 38/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

39 ELTE Algoritmus 1 : Annyi szakaszon volt árvíz, ahány helyen árvíz kezdődött (vagy már az elején is árvíz volt). További példák F[1]  800 Db:=0Db:=1 i=1..N–1 F[i]  800 és F[i+1]>800 Db:=Db+1  IN I N Szlávi-Zsakó: Programozási alapismeretek 4. 39/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

40 ELTE További példák Algoritmus 2 : Annyi szakaszon volt árvíz, ahány helyen árvíz végződött (vagy az utolsó mérésnél is árvíz volt). F[N]  800 Db:=0Db:=1 i=2..N F[i]  800 és F[i-1]>800 Db:=Db+1  NI N I Szlávi-Zsakó: Programozási alapismeretek 4. 40/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

41 ELTE További példák Feladat: Egy folyón N helyen mérik a vízállást, amit egy referenciamagassághoz képest centimé- terben adnak meg. … Adjuk meg az árvizek hosszát! Feltehetjük, hogy az első és az utol- só mérésnél nem volt árvíz.… Szlávi-Zsakó: Programozási alapismeretek 4. 41/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

42 ELTE További példák Specifikáció:  Bemenet: N:Egész, F:Tömb[1..N:Egész]  Kimenet: Db:Egész, H:Tömb[1..Db:Egész]  Előfeltétel: N  1 és F[1]  800 és F[N]  800  Utófeltétel: Db= és  i (1≤i≤Db): H[i]=árvízvég[i]–árvízkezdet[i]+1  Definíció: árvízvég:Tömb[1..Db:Egész] … árvízkezdet:Tömb[1..Db:Egész] … Szlávi-Zsakó: Programozási alapismeretek 4. 42/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

43 ELTE További példák Db:=0 i=1..N–1 F[i]  800 és F[i+1]>800 Db:=Db+1  H[Db]:=0 F[i]>800 H[Db]:=H[Db]+1  Algoritmus: Ötlet: a megfelelő számlálót árvízkezdetnél nullázzuk, árvíznél pedig növeljük. I N I N Szlávi-Zsakó: Programozási alapismeretek 4. 43/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

44 ELTE További példák Feladat: Lóversenyre járunk. N napon át naponta fel- jegyeztük, hogy mennyit nyertünk (  0) vagy vesztettünk (<0). Ha kezdetben X forintunk volt, akkor mely napon kellett először köl- csön kérnünk? Szlávi-Zsakó: Programozási alapismeretek 4. 44/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

45 ELTE További példák Specifikáció:  Bemenet: N,X:Egész, P:Tömb[1..N:Egész]  Kimenet: Van:Logikai, Nap:Egész  Előfeltétel: N  0 és X  0  Utófeltétel: Van=  i(1  i  N): és Van  ( 1  Nap  N és és  i(1  i<Nap) és ) Szlávi-Zsakó: Programozási alapismeretek 4. 45/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

46 ELTE További példák S:=X i:=1 i  N és S+P[i]>0 S:=S+P[i] i:=i+1 Van:= i  N Van Nap:=i  Algoritmus: I N Szlávi-Zsakó: Programozási alapismeretek 4. 46/47 2014. 07. 14.2014. 07. 14.2014. 07. 14.

47 Programozási alapismeretek 4. előadás vége


Letölteni ppt "Programozási alapismeretek 4. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/472014. 07. 14.2014. 07. 14.2014. 07. 14.  A szöveg A szöveg."

Hasonló előadás


Google Hirdetések