const N = 5; var S: array[1..N,1..N] of integer; procedure Tisk; var x,y: integer; begin for y:=1 to N do begin for x:=1 to N do if S[x,y] = 0 then write( ' . ' ) else write( S[x,y]:3 ); writeln end; readln end; procedure Skoc( x,y, K: integer ); var xx,yy: integer; begin if (x>=1) and (x<=N) and (y>=1) and (y<=N) then if S[x,y]=0 then begin S[x,y] := K; { Tisk; {} if K=N*N then Tisk else for xx := x-2 to x+2 do for yy := y-2 to y+2 do if abs(xx-x)+abs(yy-y) = 3 then Skoc( xx,yy, K+1 ); S[x,y] := 0 end end; begin Skoc( 1,1, 1 ) end. var pristi: char; function Clen: integer; forward; function Faktor: integer; forward; function Vyraz: integer; var C: integer; zn: char; begin C := Clen; while (pristi='+') or (pristi='-') do begin zn := pristi; read( pristi ); if (zn='+') then C := C + Clen else C := C - Clen end; Vyraz := C end; function Clen: integer; var F: integer; zn: char; begin F := Faktor; while (pristi='*') or (pristi='/') do begin zn := pristi; read( pristi ); if (zn='*') then F := F * Faktor else F := F div Faktor end; Clen := F end; function Faktor: integer; var x: integer; begin if pristi='(' then begin read( pristi ); Faktor := Vyraz; if pristi<>')' then RunError( 777 ); read( pristi ) end else begin x := 0; while (pristi>='0') and (pristi<='9') do begin x := 10*x + ord( pristi ) - ord( '0' ); read( pristi ) end; Faktor := x end end; begin read( pristi ); writeln( Vyraz ) end. const NAVIC = 5; MAX = 1000; N = MAX + NAVIC; type Cislo = array[0..N] of 0..9; procedure Vytiskni( Co: Cislo ); var i: integer; begin write( Co[0],'.' ); for i:=1 to N do write( Co[i] ); writeln end; procedure Dosad_1( var Kam: Cislo ); var i: integer; begin Kam[0] := 1; for i:=1 to N do Kam[i] := 0 end; procedure Pricti( var Kam: Cislo; Co: Cislo ); var i, prenos, x: integer; begin prenos := 0; for i:=N downto 0 do begin x := Kam[i] + Co[i] + prenos; Kam[i] := x mod 10; prenos := x div 10 end; if prenos<>0 then halt(1) end; var PozicePrvniNenuloveCisldice: integer; procedure Vydel( var Co: Cislo; Cim: integer ); var i, x: integer; begin while (PozicePrvniNenuloveCislice<=N) and (Co[PozicePrvniNenuloveCislice]=0) do PozicePrvniNenuloveCislice := PozicePrvniNenuloveCislice+1; x := 0; for i:=PozicePrvniNenuloveCislice to N do begin x := 10*x + Co[i]; Co[i] := x div Cim; x := x mod Cim end end; var x: Cislo; i: integer; soucet: Cislo; zlomek: Cislo; begin PozicePrvniNenuloveCislice := 0; Dosad_1( zlomek ); { = 1/1! } soucet := zlomek; { = 1/0! } for i:=2 to 1000 do begin if PozicePrvniNenuloveCislice > N then begin writeln( 'i=',i ); break; end; Pricti( soucet, zlomek ); Vytiskni( soucet ); { readln; {} Vydel( zlomek, i ); end end. Dosad_1( x ); { = 1/1! } for i:=1 to 50 do begin Vytiskni( x ); Vydel( x,3 ); readln end end. Dosad_1( x ); { = 1/1! } x[0] := 0; x[N] := 1; while TRUE do begin Vytiskni( x ); Pricti( x,x ); readln end; end. Dosad_1( x ); Vytiskni( x ) end.