Wszystko jest w kodzie jedyny zly fragment jest zaznaczony komentem. To bardzo ważne, mam kolosa a i nie mogę sobie pozwoilić na takie błędy.
PS: do tego kompilator zaczął mi wywalać błąd że spodziewał się ; przed elsem.(najglebszym w petlach)
Kod: Zaznacz cały
program trojaczki;
const
n=10;
var
A:array[1..n] of integer;
B:array[1..n] of integer;
C:array[1..n] of integer;
i,j,w,pom,counter,pom2:integer;
prawda:boolean;
begin
A[1]:=1;A[2]:=5;A[3]:=6;A[4]:=9;A[5]:=11;A[6]:=12;A[7]:=15;A[8]:=16;A[9]:=19;A[10]:=20;
B[1]:=1;B[2]:=3;B[3]:=6;B[4]:=7;B[5]:=9;B[6]:=10;B[7]:=15;B[8]:=40;B[9]:=55;B[10]:=57;
C[1]:=2;C[2]:=3;C[3]:=4;C[4]:=6;C[5]:=8;C[6]:=9;C[7]:=15;C[8]:=22;C[9]:=54;C[10]:=73;
counter:=0;
i:=1; //INICJALIZUJE INDEKSY TABLIC
j:=1;
w:=1;
pom2:=w;
while (i<=n) and (j<=n) and (w<=n) do
begin
if A[i]<B[j] then
i:=i+1
else if B[j]<A[i] then
j:=j+1
else //DOTĄD JEST WSZYSTKO DOBRZE, KORZYSTAM Z ZALOZENIA ZE JESLI ELEMENTY MAJA BYC W 3 TABLICACH TO MUSZA BYC W CONAJMNIEJ DWOCH I SZUKAM TEGO TRZECIEGO W TRZECIEJ UWZGLEDNIAJAC ZE TABLICA JEST POSORTOWANA, NIE ROBIE TEGO NA PALE SPRAWDZAJAC KAZDY ELEMENT
while (w<n) and(i<=n) and (j<=n) and not (C[w]>B[j]) do
begin
if C[w]<B[j] then
w:=w+1;
if C[w]>B[j] then
//NIC NULL NOTHING
else
begin
counter:=counter+1;
w:=w+1;
i:=i+1;
j:=j+1;
end
else
begin
i:=i+1;
j:=j+1;
end;
end;
//WYPISY WYNIKOW
for i:=1 to n do
writeln(A[i]);
writeln();
for i:=1 to n do
writeln(B[i]);
writeln();
for i:=1 to n do
writeln(C[i]);
writeln();
writeln(counter);
end.