Опубликовано 03.01.2018 по предмету Информатика от Гость

Имеется задача на Паскале. Нужно проверить ее на правильность и еще дописать, чтобы программа считала: кратно ли число двум,трем,четырем и шести по признакам делимости.
program chislo;
uses crt;
var a,b,c,d,e,f,g:integer;
begin
clrscr;
f:=1;d:=0;
writeln(Введите число );
readln(a);
e:=a;
while e>9 do begin
b:= e mod 10;
f:=f+1;
d:=d+b;
e:= e div 10;
end;
g:=e+d;
writeln(Число ,f, - значное);
if a mod 2<>0 then writeln(Число нечетное) else writeln(Число четное);
c:=b mod 10;
if (c=0) or (c=5) then writeln (Число кратно 5) else writeln (Число не кратно 5);
if (c=0) then writeln(Число кратно 10) else writeln(Число не кратно 10);
if g mod 3=0 then writeln(Число кратно 3) else writeln(Число не кратно 3);
if g mod 9=0 then writeln (Число кратно 9) else writeln(Число не кратно 9);
end.

Ответ оставил Гость

function two(i: integer): boolean;
begin
  two := (i mod 10 mod 2 = 0);
end;

function three(i: integer): boolean;
var
  buf, k: integer;
begin
  buf := i;
  repeat
    k := k + (buf mod 10);
    buf := buf div 10;
  until (buf = 0);
  three := (k mod 3 = 0);
end;

function four(i: integer): boolean;
begin
  four := (i mod 100 mod 4 = 0);
end;

function six(i: integer): boolean;
begin
  six := (two(i) and (three(i)));
end;

function BooleanToString(i: boolean): string;
begin
  if (i) then
    BooleanToString := Да
  else
    BooleanToString := Нет;
end;

var
  i: integer;
begin
  readln(i);
  writeln(2: , BooleanToString(two(i)));
  writeln(3: , BooleanToString(three(i)));
  writeln(4: , BooleanToString(four(i)));
  writeln(6: , BooleanToString(six(i)));
end.

Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы
Самые новые вопросы