
Вопрос задан 02.04.2018 в 16:52.
Предмет Информатика.
Спрашивает Руслан Айым.
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число
N, не превосходящее 10^9, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. PASCAL var N,k:integer; begin readln(N); k:=9; while N > 10 do begin if N mod 10 k:=N mod 10; N:N div 10; end; write(k) end. Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе числа 537? 2. Приведите пример такого числа при котором программа работает верно 3.Укажите все ошибки в программе и исправьте их.Для этого для каждой ошибки выпишите строку ,которая написана неправильно и приведите правильный вариант строки.

Ответы на вопрос

Отвечает Скачкова Ангелина.
Сначала надо избавиться от ошибок (пункт №3)
иначе не сможем выполнить 1 и 2 пункт задания.
Исправляем if N mod 10 k:=N mod 10; на if (N mod 10 < k) then k:=N mod 10;
Исправляем N:N div 10; на N:= N div 10;
После исправления ошибок при вводе 537 получим 3
Программа будет работать правильно для любого числа,
у которого вторая цифра слева меньше первой цифры, например:
7193
Чтобы программа работала правильно для всех чисел надо
изменить это: while N > 10 do на while N > 0 do
После всех исправлений код программы стал таким:
var
N, k: integer;
begin
readln(N);
k := 9;
while N > 10 do
begin
if (N mod 10 < k) then k := N mod 10;
N := N div 10;
end;
write(k)
end.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili