Вопрос задан 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.Укажите все ошибки в программе и исправьте их.Для этого для каждой ошибки выпишите строку ,которая написана неправильно и приведите правильный вариант строки.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Скачкова Ангелина.

Сначала надо избавиться от ошибок (пункт №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.


0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос