Tegyük fel, hogy a tt1,tt2 tömbök rendezettek, és adottak! Írjunk programot, amely előállítja a tt tömböt az előző kettőből, úgy hogy azoknak minden elemét tartalmazza, és rendezett legyen! A tömbök elemeit beolvasással töltsük fel, majd rendezzük, vagy eleve rendezetten adjuk meg.
const N=10; type tomb = array [1..N] of integer; dtomb = array [1..2*N] of integer; var tt1,tt2:tomb; tt:dtomb
const n=2;
type tomb =array [1..n] of boolean;
r =record
nev :packed array [1..2] of char;
suly :integer;
end;
rectomb =array [1..3] of r;
halmaz =set of 1..30;
lakas =(alberlet,tarsberlet,foberlet,orok,kastely);
var e1,e2,e3 :integer;
v1,v2,v3 :real;
b1,b2,b3 :boolean;
ch1,ch2,ch3 :char;
rect :rectomb;
t1 :array [1..10] of integer;
t2 :array [1..n] of tomb;
l1,l2 :lakas;
h1,h2,h3 :halmaz;
procedure s (var j :integer; k :integer);
var e1 :integer;
begin
e1:=j+1;
j:=j div k;
k:=k-e1;
writeln(e1:5, j:5, k:5);
end;
function f (l,m :integer) :boolean;
begin
f:=l+m<10;
end;
e1:=6; b1:=odd(e1); b2:=not odd( succ( succ(e1) ) );
t2[1,1]:=b1;
t2[1,2]:=not b2;
t2[2,1]:=(ord( not b1 ) + ord( b2 )) mod 2 = 0;
t2[2,2]:=t2[1,1] or t2[2,1];
for e1:=1 to 2 do
for e2:=1 to 2 do write (t2[e1,e2]:6);
ch1:='a'; ch2:='b'; e3:=0;
for e1:=3 downto 1 do with rect[e1] do
begin
e3:=e3+e1;
nev[1]:=ch1; nev[2]:=ch2; suly:=e3;
ch1:=succ(ch1); ch2:=succ(ch2);
end;
for e1:=1 to 3 do
writeln(rect[e1].nev,rect[e1].suly:4);
h1:=[]; l1:=alberlet;
while l1<orok do begin l1:=succ(l1); h1:=h1+[ord(l1)]; end;
h2:=[];
for l1:=alberlet to kastely do
if odd( ord(l1) ) then h2:=h2+[ord(l1)];
h3:=h1-h2;
for e1:=1 to 10 do
if e1 in h3 then write(e1:3);
writeln;
e1:=7; e2:=2;
while f(e1,e2) do
begin
s(e1,e2);
e1 := e1+2*e2; e2:=pred(e2) + e2 mod 2;
end;
h1:=[2];
for e1:=3 to 20 do
begin
b1:=false; e2:=2;
while not b1 and (e2<e1) do
begin
if e2 in h1 then b1 := e1 mod e2 = 0;
e2 := e2+1;
end;
if not b1 then h1 :=h1+[e1];
end;
for e1:=1 to 20 do if e1 in h1 then write(e1:3);
writeln;
számA megengedett műveleti jelek: + - * / ^ =
műveleti jel
szám
műveleti jel
...
\\ ---> \Ha a "\" karakter után más egyéb karakter van, akkor a "\" karaktert figyelmen kívül hagyjuk. Jelezze, ha a file végéig nincs meg minden "("-nak a ")" párja!
\( ---> (
\) ---> )
PROGRAM E28(INPUT,OUTPUT);Mennyi az A és B változó értéke a program záró END-je előtt?
VAR A,B:INTEGER;
FUNCTION F(VAR I:INTEGER;J:INTEGER):BOOLEAN;
VAR X:INTEGER;
PROCEDURE P(X:INTEGER;VAR Y:INTEGER);
VAR Z:INTEGER;
BEGIN
Z:=1;
WHILE X+Y+Z<5 DO
BEGIN
P(X+1,Z);
Y:=X+Z;
END;
END;
BEGIN
X:=4;
P(J,I);
I:=X-1;
F:=I+J+X<10;
END;
BEGIN
A:=1;
B:=A+1;
WHILE F(A,B) DO
B:=B+2;
END.
1Oldjuk meg a feladatot ciklussal és rekurzióval is. Figyeljük meg a rekurzív megoldás előnyét!
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
type myfile = file of real;Az f1 és f2 file tartalma rendezett, és egyik sem üres. Írjuk meg a merge eljárást, amely az f3 file tartalmát úgy állítja elő az előző kettőből, hogy azoknak minden adatát tartalmazza, és szintén rendezett lesz. Az f1 és f2 file-ok olvasásra, az f3 file értelemszerűen írásra van megnyitva. A file ok tartalma nem fér be a memóriába.
procedure merge(var f1,f2,f3:myfile);