Задание:
Требовалось написать программу, при выполнении которой с клавиатуры вводится натуральное число, не превосходящее 108, и выводится его первая (старшая) цифра. Ученик написал такую программу:
var n: longint;
begin
read(n);
while n>10 do begin
n := n mod 10
end;
write(n);
end.
Последовательно выполните следующее.Решение:
1) При вводе числа 1984 программа выдаст 4. В первом же цикле переменной n присваивается значение 4, больше циклов нет. На выходе n, то есть 4.
2) Программа работает верно для любого числа, у которого старшая цифра равна младшей, в том числе для любого однозначного числа. Например: 5, 55, 555, 777, в этих случая программа выдаст правильный ответ.
3) * Для начала нужно убрать строгое равенство: Заменить на n>=10
* n := n mod 10, заменим на n := n div 10, в случае целочисленного деления программа начнет выдавать правильные ответы.