Вы вводите символьную информацию (данное типа char) при процедуры Read(). В языке Паскаль ввод должен ВСЕГДА завершаться посылкой пары кодов "перевод строки" и "возврат каретки", что и происходит при нажатии клавиши "Enter". Так, если Вы вводите латинское "А", программа получает не один символ, а три: с кодом "А", с кодом "перевод строки" и с кодом "возврат каретки". И чтение в цикле происходит сразу три раза до очередного обращения к клавиатуре. Итого получается четыре прохода по циклу: первые три символа на самом деле воспринимаются, как девять, а затем считывается четвертый, что дает десять и цикл завершается.
Для правильной работы с символьными данными (char, string) следует использовать не Read(), а Readln() и все у Вас получится. Процедура Readln() "отрезает" коды "перевод строки" и "возврат каретки".
Если при сложении с единицей в некоторой системе счисления из двухзначного числа получается трехзначное, то двухзначное число было максимально возможным двухзначным числом, записанным в этой системе и обе его цифры были на единицу меньше основания системы счисления.Таким образом, можно утверждать, что заданные числа это 33₄, 66₇, 88₉Число 100 в системе счисления по оcнованию n равно n², т.е. для указанных чисел это будут значения 4²=16, 7²=49 и 9²=81. Остается вычесть единицу.Соответственно, в десятичной системе 33₄=15, 66₇=48, 88₉=80
Для правильной работы с символьными данными (char, string) следует использовать не Read(), а Readln() и все у Вас получится. Процедура Readln() "отрезает" коды "перевод строки" и "возврат каретки".