Определить, какая из строк является десятичной записью числа, кратного 9. Проверить программу. - Pascal ABC
Формулировка задачи:
Для заданных трех строк S1, S2 и S3 определить какая из этих строк удовлетворяет следующему свойству: строка является десятичной записью числа, кратного 9.
Решение задачи: «Определить, какая из строк является десятичной записью числа, кратного 9. Проверить программу.»
textual
Листинг программы
var s:array[1..3] of string; i:byte; function kr9(x:string):boolean; var i:byte;sum:integer;f:boolean; begin f:=true;sum:=0;i:=1; while f and (i<=length(x)) do begin if x[i] in ['0'..'9'] then sum:=sum+ord(x[i])-48 else f:=false; inc(i) end; kr9:=f and (sum mod 9 =0) end; begin for i:=1 to 3 do begin write('S',i,' = ');readln(s[i]) end; for i:=1 to 3 do begin write('строка ''',s[i],''''); if not(kr9(s[i])) then write(' не'); writeln(' является десятичной записью числа, кратного 9') end end.
Объяснение кода листинга программы
- Объявлены три строки s[1..3] и переменная i типа byte.
- Определена функция kr9(x:string):boolean, которая проверяет, является ли строка x десятичной записью числа, кратного 9. Внутри функции объявлены три переменные i, sum и f типа byte.
- В цикле while происходит проверка каждого символа строки x. Если символ является числом от 0 до 9, то он добавляется к сумме sum. Если символ не является числом от 0 до 9, то устанавливается значение f равным false.
- После каждой итерации цикла увеличивается значение i.
- По окончании цикла, функция возвращает значение kr9 равным true, если сумма sum кратна 9 и false в противном случае.
- В основном блоке кода происходит заполнение строк s[1..3] с помощью функции readln().
- В цикле for выводятся на экран строки s[1..3] и проверяется значение kr9(s[i]). Если значение kr9 равно false, то к строке добавляется слово
не
. - Завершается программа выходом из функции main.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д