Разработать подпрограмму, позволяющую распознать восьмеричные числа. Используя созданную программу, ввести с клавиатуры несколько чисел, и те из них, которые являются восьмеричными, увеличить на 1. Окончание работы ввод числа 0 — Pascal(Паскаль)

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.

Leave a Comment

+ 87 = 88