Требовалось написать программу при выполнении которой с клавиатуры считывается...

0 голосов
68 просмотров

Требовалось написать программу при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 10^9 и выводится максимальная цифра этого числа.
var N: longint;
digit, maxdigit: integer;
begin
readln(N);
maxdigit := 10;
while N > 10 do
begin
digit := N mod 10;
if digit > maxdigit then
maxdigit := digit;
N := N div 10;
end;
writeln(digit);
end.
Последовательно выполните следующее.
1. Напишите что выведет это программа при вводе числа 321.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, - приведите правильный вариант строки.


Информатика (66 баллов) | 68 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

1) Выводит 2
2)
var
    N: longint;
    digit, maxdigit: integer;

begin
    readln(N);
    maxdigit := 10; // нужно присваивать 0
    while N > 10 do // нужно написать N > 0
    begin
        digit := N mod 10;
        if digit > maxdigit then
            maxdigit := digit;
        N := N div 10;
    end;
    writeln(digit); // нужно вывести maxdigit
end.

Верный код

var
    N: longint;
    digit, maxdigit: integer;

begin
    readln(N);
    maxdigit := 0;
    while N > 0 do
    begin
        digit := N mod 10;
        if digit > maxdigit then
            maxdigit := digit;
        N := N div 10;
    end;
    writeln(maxdigit);
end.



image
(55.0k баллов)