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]<m then m:=a[i]; n:=i;
        				End;
     			else
        				l:=True; n:=i; m:=a[n];
    			End;
    		End;
  	End;

1996/9-10/1/2

Az N (>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 HIBA2
			                 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?

  • 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.
oktatas/informatika/programozas/algoritmusok/algoritmusok_ertelmezese.txt · Utolsó módosítás: 2019/06/04 14:10 szerkesztette: barnkopf
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0