function v(Var n:longint):boolean;
Var
i,kol,kol1:integer;
t:boolean;
begin
kol:=0;
kol1:=0;
while n<>0 do
begin
i:=n mod 10;
inc(kol);
if i in [0..7] then
begin
inc(kol1);
end;
n:=n div 10;
end;
if kol=kol1 then
t:=true
else
t:=false;
v:=t;
end;
Следующий вариант
Uses
CRT;
Var
n,k,c,o,l,m:longint;
a:array[1..20] of integer;
function v(Var n:longint):boolean;
Var
i,kol,kol1:integer;
t:boolean;
begin
kol:=0;
kol1:=0;
while n<>0 do
begin
i:=n mod 10;
inc(kol);
if i in [0..7] then
begin
inc(kol1);
end;
n:=n div 10;
end;
if kol=kol1 then
t:=true
else
t:=false;
v:=t;
end;
begin
clrscr;
c:=1;
o:=0;
writeln('Znach 0');
repeat
begin
write('Vivod ',c,'-e:=');
readln(n);
m:=n;
inc(c);
if n<>0 then
begin
if v(m) then
begin
l:=n+1
end
else
begin
l:=n;
end;
inc(o);
a[o]:=l;
end;
end;
until n=0;
writeln;
for k:=1 to o do
begin
write(a[k]:5);
end;
readkey;
end.