====== Egymásba ágyazott ciklusok. Kétszeresen, háromszorosan stb. egymásba ágyazott ciklusok. ====== ===== Egymásba ágyazott ''For'' ciklusok ===== for változó_1 := kezdő_érték_1 to [downto] végső_érték_1 do begin for változó_2 := kezdő_érték_2 to [downto] végső_érték_2 do begin utasítás(ok); end; end; ===== Egymásba ágyazott ''While'' ciklusok ===== while(feltétel_1)do begin while(feltétel_2) do begin utasítás(ok); end; utasítás(ok); end; ===== Egymásba ágyazott ''Repeat'' ciklusok ===== repeat utasítás(ok); repeat utasítás(ok); until(feltétel_2); until(feltétel_1); ===== Kétszeresen egymásba ágyazott ciklusok ===== program prim; var i, j : integer; begin for i := 2 to 50 do begin for j := 2 to i do if (i mod j) = 0 then break; {* ha van osztója, nem prím! *} if (j = i) then writeln(i , ' prim' ); end; end. [[https://ideone.com/ktG6Bs | A forráskódjának futtatása online]] ===== Háromszorosan egymásba ágyazott ciklusok ===== $c_{i,j}=\displaystyle\sum_{k=1}^{n}a_{i,k}b_{k,j}; \;\; i = \overline{1,n}; j = \overline{1,n}.$ for i := 1 to n do for j := 1 to n do begin sum := 0; for k := 1 to n do sum := sum + a[i,k] * b[k,j]; c[i,j] := sum; end; program matrixszorzas; const n = 3; type tomb_tipus = array[1..n, 1..n] of integer; procedure kiir(t: tomb_tipus; h: byte); var i, j: integer; begin for i := 1 to n do begin for j := 1 to n do write(t[i,j]:h); writeln; end; writeln; end; const a: tomb_tipus = ((1,2,4),(5,6,7),(8,9,1)); b: tomb_tipus = ((2,3,6),(2,3,7),(1,3,0)); var i, j, k, sum: integer; c: tomb_tipus; begin kiir(a, 3); kiir(b, 3); for i := 1 to n do for j := 1 to n do begin sum := 0; for k := 1 to n do sum := sum + a[i,k] * b[k,j]; c[i,j] := sum; end; kiir(c, 4); readln; end. [[https://ideone.com/6Lk2ch]] program matrixszorzas1; const n = 3; type tomb_tipus = array[1..n, 1..n] of integer; procedure kiir(t: tomb_tipus; h: byte); var i, j: integer; begin for i := 1 to n do begin for j := 1 to n do write(t[i,j]:h); writeln; end; writeln; end; const a: tomb_tipus = ((1,2,4),(5,6,7),(8,9,1)); b: tomb_tipus = ((2,3,6),(2,3,7),(1,3,0)); var i, j, k: integer; c: tomb_tipus; begin kiir(a, 3); kiir(b, 3); for i := 1 to n do for j := 1 to n do for k := 1 to n do c[i,j] := c[i,j] + a[i,k] * b[k,j]; kiir(c, 4); readln; end. program gotos_program; uses crt; const n = 3; type tomb_tipus = array[1..n,1..n] of byte; procedure kiir(x,y:integer; t: tomb_tipus); var i,j:integer; begin for i:=1 to 3 do for j:=1 to 3 do begin gotoxy(x+3*j,y+i); write(t[i,j]); end; end; var i,j:integer; const a: tomb_tipus = ((1,2,4),(5,6,7),(8,9,1)); b: tomb_tipus = ((2,3,6),(2,3,7),(1,3,0)); begin kiir(1,1,a); kiir(12,1,b); for i:=1 to 3 do for j:=1 to 5 do kiir(j*11+1,i*5+1,b); readln; end.