====== Mit csinál? Mi a szerepe? ====== ==== 1995/9-10/1/6 ==== Egy Pascal-szerű programnyelven írtunk programrészletet az alábbiakban. Ezen a nyelven az elágazások és a ciklusok végét is az ''End'' alapszó jelzi. * A. Mit csinál az alábbi programrészlet? * B. Mire szolgálnak az ''l'', az ''m'' illetve az ''n'' változók? l:=False; For i:=1 to 100 do If a[i]>0 then If l then If a[i]1) elemű A vektorban egész számok vannak. Milyen vektorbeli értékek esetén írnak ki az alábbi programok IGEN választ? * A) V:=IGAZ Ciklus i:=2-től N-ig V:=V AND (A(i)>A(i-1)) Ciklus vége Ha V akkor Ki: ”IGEN” * B) V:=HAMIS Ciklus i:=2-től N-ig V:=V OR (A(i)>A(i-1)) Ciklus vége Ha V akkor Ki: ”IGEN” * C) Van olyan eset, amikor a két program a vektorbeli elemek értékétől függetlenül egyformán viselkedik (mindkettő az IGEN eredményt írja ki, vagy egyik sem ír ki semmit). Melyik ez az eset? ==== 1997/9-10/1/1 ==== Az A és B halmazok egész számokat tartalmaznak. Mindkét halmaznak van olyan eleme, amelyik a másiknak nem eleme. Használni fogjuk a következő utasításokat: | nemüres(H) | igaz, ha a H halmaznak legalább egy eleme van. | | eleme(e, H) | igaz, ha az e elem benne van a H halmazban. | | üreshalmaz | üres halmazt ad eredményül. | | egyeleme(H) | a H halmaz egy tetszőleges elemét adja eredményül. | | hozzáad(e,H) | az e elemet berakja a H halmazba. | | kivesz(e,H) | az e elemet kiveszi a H halmazból. | Valami: H:=üreshalmaz Ciklus amíg nemüres(A) vagy nemüres(B) Ha nemüres(A) akkor e:=egyeleme(A) különben e:=egyeleme(B) Ha eleme(e,A) akkor kivesz(e,A) Ha eleme(e,B) akkor kivesz(e,B) hozzáad(e,H) Ciklus vége Eljárás vége. * A. Mit csinál a fenti program? Mi lesz a futás végén a H halmazban, mi marad A-ban és B-ben? * B. Hogyan változik a három halmaz tartalma, ha a ciklusfeltételben szereplő vagy művelet helyére és műveletet írunk? ==== 1997/9-10/1/3 ==== Egy programozási nyelvben az elágazás (IF utasítás) végét mindig a FI, a ciklus (DO utasítás) végét pedig az OD alapszó jelzi. Készítettünk egy algoritmust, amely ellenőrzi az IF-FI, illetve a DO-OD párok helyes párosítását. A megoldásban az N elemű X vektor tartalmazza a program szavait. Ellenőr: A:=0: B:=0 Ciklus I=1-től N-ig Elágazás X(I)="IF" esetén A:=A+1: V(A):=B X(I)="DO" esetén B:=B+1 X(I)="FI" esetén A:=A-1: Ha A<0 akkor HIBA1 Ha V(A+1)B akkor HIBA3 X(I)="OD" esetén B:=B-1: Ha B<0 akkor HIBA4 Elágazás vége Ciklus vége Ha A>0 akkor HIBA5 Ha B>0 akkor HIBA6 Eljárás vége. Milyen hibajelenségek váltják ki a HIBA1..HIBA6 hibajelző utasításokat? ==== 1997/9-10/1/4 ==== Kukutyinban N napon keresztül mértük a hőmérsékletet. Az egyes napi mérések értékét az A[1..N] tömb tartalmazza. Valami: L:=hamis Ciklus I=1-től N-ig Ha A[I]<0 akkor Ha nem L akkor L:=igaz: P:=I: M:=A[I] különben Ha A[I]>M akkor P:=I: M:=A[I] Elágazások vége Ciklus vége Eljárás vége. * A. Mit csinál a fenti program? * B. Mi a jelentése az L, P és M változóknak? ==== 2014/9-10/1/2 ==== Az alábbi algoritmus az A, B, C (mindhárom >0) számok alapján számolja ki D értékét. Valami(A,B,C,D): Ciklus amíg nem(A=B és B=C) Ha A>B akkor A:=A-B Ha B>C akkor B:=B-C Ha C>A akkor C:=C-A Ciklus vége D:=A Eljárás vége. * A. Mi lesz D értéke, ha A=3, B=2, C=5? Hány kivonás történik a ciklusban? * B. Mi lesz D értéke, ha A=12, B=4, C=8? Hány kivonás történik a ciklusban? * C. Mi lesz D értéke, ha A=12, B=42, C=18? Hány kivonás történik a ciklusban? * D. Fogalmazd meg általánosan, hogyan függ D értéke a bemenettől! ==== 2014/9-10/1/3 ==== Az alábbi algoritmus N nemnegatív adatot kap bemenetként (N>2, X(1)>0, X(N)>0, X(i)≥0) az X vektorban, amelyekből több értéket számol ki: Valami(N,X,A,B,C,E): A:=0; B:=0; C:=0; D:=0 Ciklus i=2-től N-ig Ha X(i-1)>0 és X(i)=0 akkor D:=0 Ha X(i)=0 akkor Ha A=0 akkor A:=i D:=D+1; B:=i Elágazás vége Ha X(i)>0 és X(i-1)=0 akkor C:=C+1; E(C):=D Ciklus vége Eljárás vége. * A. Melyik kimenő paraméternek mi lesz az értéke az alábbi 14 elemű X vektor esetén? {{ :informatika:programozas:algoritmusok:2014-9-10-1-3.png?direct&300 |}} * B. Fogalmazd meg általánosan az egyes kimenő paraméterek szerepét! * C. Milyen X vektor esetén lehet az eljárás végén A=0 és B=0? (Általános megfogalmazás, vagy konkrét 5 elemű X vektor adható.) * D. Milyen X vektor esetén lehet az eljárás végén A=B>0? (Általános megfogalmazás, vagy konkrét 5 elemű X vektor adható.) * E. Milyen X vektorra lesz adott N esetén C a lehető legnagyobb? (Általános megfogalmazás, vagy konkrét 7 elemű X vektor adható.) ==== 2015/9-10/1/3 ==== Az alábbi sorozat első három tagja rögzített, a továbbiakat pedig egy algoritmus számolta, minden negyediket ugyanazzal a módszerrel, amihez egyes esetekben az előző tagokat is felhasználhatta: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | 1 | 3 | 2 | 6 | 7 | 4 | 10 | 12 | 11 | 14 | 18 | 8 | 15 | 20 | 26 | | | | | | * A. Töltsd ki a táblázat üresen maradt celláit! * B. Add meg a táblázat 128. elemének értékét! * C. Egészítsd ki az alábbi algoritmust, amely a táblázat elemeit számolja a negyediktől 4*N elemre! A téglalapok helyére írható tetszőlegesen hosszú kifejezés. A(1):=1; A(2):=3; A(3):=2 Ciklus i=1-től N-ig A(4*i):=□□□□□□□□□□□ A(4*i+1):=□□□□□□□□□□□ A(4*i+2):=□□□□□□□□□□□ A(4*i+3):=□□□□□□□□□□□ Ciklus vége ==== 2015/9-10/1/5 ==== Egy kiállítás sorozat N egymást követő napból áll, amelyet egyetlen teremben rendeznek meg. M kiállító jelentkezett. Az egyes kiállítók megadták, hogy mely napon szeretnék megrendezni a kiállításukat (1≤Ki≤N, növekvő sorrendben, egy napra csak egy jelentkező van). Minden kiállítónak X nap áll rendelkezésre a kiállítás berendezéséhez és a kiállítás után X nappal át kell adniuk a termet a következő kiállítónak. Emiatt lehetnek ütközések. (Például X=2 esetén 2 napjuk van a berendezésre, 1 nap a kiállítás és 1 nap marad a terem kiürítésére.) Az első kiállító építkezése és az utolsó lebontása lehet az N napon kívül is. A következő kérdésekre ad válasz az alábbi algoritmus: * A. Hány kiállító lehetne összesen? * B. Hány kiállító nem ütközik másik kiállítóval? * C. Milyen hosszú a leghosszabb időszak, amikor a termet senki sem használja? Egészítsd ki az alábbi algoritmust úgy, hogy a téglalapok helyére írhatsz tetszőlegesen hosszú kifejezést! Kiállítás(N,M,K,X,A,B,C): A:=; B:=; Ha  akkor C:= különben C:=0 Ciklus i=2-től M-ig Ha  akkor B:= Ha  akkor C:= Ciklus vége Ha  akkor C:= Eljárás vége.