Написать процедуру проверки признаков делимости - 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.
Объяснение кода листинга программы
- В начале кода используется библиотека crt, которая предоставляет функции для работы с консолью.
- Переменная n содержит число, которое нужно проверить на делимость.
- Процедура del(n:string) выполняет проверку признаков делимости числа n.
- Переменные i и k используются для циклов в процедуре.
- Переменные sum, sum1, sum2, sum3, sum4, code, a и b используются для хранения промежуточных результатов и кода.
- Функция val(n[k],b,code) выполняет проверку числа n[k] на делимость на b и сохраняет результат в переменную code.
- Функция copy(n,k-1,2) создает копию числа n с шагом 2 элемента и сохраняет ее в переменную a.
- Функция copy(n,k-3,4) создает копию числа n с шагом 4 элемента и сохраняет ее в переменную a.
- Цикл for i:=1 до k выполняется k раз и выполняет функцию val(n[i],a,code) для каждого элемента n[i].
- Цикл for i:=1 до (k div 2) выполняется (k div 2) раз и выполняет функции val(n[i2],a,code) и inc(sum3,a) для каждого элемента n[i2].
- Функция inc(sum3,a) увеличивает значение переменной sum3 на a.
- Функция inc(sum4,a) увеличивает значение переменной sum4 на a.
- Если k не делится на 2, то в переменной sum4 добавляется значение b.
- Если b равно 0 или 5, то в переменной sum4 добавляется значение 5.
- Если значение sum3-sum4 делится на 11 без остатка, то в переменной sum4 добавляется значение 11.
- В конце процедуры выводится результат проверки признаков делимости числа n.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д