Написать процедуру проверки признаков делимости - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста написать задачу на паскале. Известно следующие признаки делимости числа n: 1)Для делимости на2необходимо, чтобы последняя цифра числа делилась на 2; 2)Для делимости на 3 требует, чтобы сумма цифр числа делилась на 3; 3)Для делимости на 4 необходимо, чтобы число из последних двух цифр делилось на 4; 4)Для делимости на 5 необходимо, чтобы последняя цифра числа была 0 или 5; 5)Для делимости на 8 необходимо, чтобы число из 4 последних цифр делилась на 8; 6)Для делимости на 9 необходимо, чтобы сумма цифр числа делилась на 9; 7)Для делимости на 11 необходимо, чтобы разность между суммой цифр, состоящих на честных местах, и сумма цифр, стоящих на нечетных местах, делилась на 11. -Написать процедуру проверки признаков делимости.Проверить их для различных значений n. Заранее спасибо!

Решение задачи: «Написать процедуру проверки признаков делимости»

textual
Листинг программы
uses crt;
var n:string;
procedure del(n:string);
var i,k:byte;
sum,sum1,sum2,sum3,sum4,code,a,b:integer;
begin
sum:=0;sum1:=0;sum2:=0;sum3:=0;sum4:=0;
k:=length(n);
val(n[k],b,code);
val(copy(n,k-1,2),a,code);
sum1:=a;
val(copy(n,k-3,4),a,code);
sum2:=a;
for i:=1 to k do
begin
val(n[i],a,code);
sum:=sum+a;
end;
for i:=1 to (k div 2) do
begin
val(n[i*2],a,code);
inc(sum3,a);
val(n[i*2-1],a,code);
inc(sum4,a);
end;
if k mod 2 = 1 then inc(sum4,b);
if b mod 2 = 0 then write(' 2,');
if sum mod 3 = 0 then write(' 3,');
if sum1 mod 4 = 0 then write(' 4,');
if (b=0) or (b=5) then write(' 5,');
if sum2 mod 8 = 0 then write(' 8,');
if sum mod 9 = 0 then write(' 9,');
if (sum3-sum4) mod 11 = 0 then write(' 11');
end;
begin
clrscr;
write('vvedite chislo: ');
readln(n);
writeln('n delitsya na:');
del(n);
readln;
end.

Объяснение кода листинга программы

  1. В начале кода используется библиотека crt, которая предоставляет функции для работы с консолью.
  2. Переменная n содержит число, которое нужно проверить на делимость.
  3. Процедура del(n:string) выполняет проверку признаков делимости числа n.
  4. Переменные i и k используются для циклов в процедуре.
  5. Переменные sum, sum1, sum2, sum3, sum4, code, a и b используются для хранения промежуточных результатов и кода.
  6. Функция val(n[k],b,code) выполняет проверку числа n[k] на делимость на b и сохраняет результат в переменную code.
  7. Функция copy(n,k-1,2) создает копию числа n с шагом 2 элемента и сохраняет ее в переменную a.
  8. Функция copy(n,k-3,4) создает копию числа n с шагом 4 элемента и сохраняет ее в переменную a.
  9. Цикл for i:=1 до k выполняется k раз и выполняет функцию val(n[i],a,code) для каждого элемента n[i].
  10. Цикл for i:=1 до (k div 2) выполняется (k div 2) раз и выполняет функции val(n[i2],a,code) и inc(sum3,a) для каждого элемента n[i2].
  11. Функция inc(sum3,a) увеличивает значение переменной sum3 на a.
  12. Функция inc(sum4,a) увеличивает значение переменной sum4 на a.
  13. Если k не делится на 2, то в переменной sum4 добавляется значение b.
  14. Если b равно 0 или 5, то в переменной sum4 добавляется значение 5.
  15. Если значение sum3-sum4 делится на 11 без остатка, то в переменной sum4 добавляется значение 11.
  16. В конце процедуры выводится результат проверки признаков делимости числа n.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы