Андрей
Высший разум
(465320)
1 месяц назад
Это ошибка НЕ твоего кода и даже НЕ компилятора языка Pascal, а эмулятора консоли, используемого в онлайн IDE.
Кириллическая буква в кодировке UTF-8 записывается комбинацией двух байтов. И даже если визуально после нажатия BS буква на экране стёрлась, это совсем не означает, что из буфера ввода удалились оба байта буквы. Может быть так, что стёрся только один байт, а второй байт остался в буфере ввода.
Возможный способ решения на уровне ввода данных: стереть всю строку, при этом нажав на клавишу BS большее кол-во раз, чем введено символов (или просто зажать BS на 2-3 секунды). И после этого заново начать вводить строку.
Если же преподаватель хочет, чтобы твой код обрабатывал неправильный ввод, то надо вводить не число, а строку и проверять, что строка имеет допустимый формат. Если строка допустима, преобразовывать её в число. А если недопустима, заново запрашивать ввод.
const
k: real = 1.38e-23; // Постоянная Больцмана в Дж/К
var
T, m, v: real;
begin
writeln('Введите значение температуры T (в К):');
readln(T);
writeln('Введите значение массы m (в кг):');
readln(m);
v := sqrt((k * T) / m);
writeln('Значение v: ', v, ' м/с');
end.
При вводе в консоль русских символов, но не нажимая enter стираю их и ввожу коректные символы но компилятор выдает ошибку:
Runtime error 106 at $00000000004010E9
$00000000004010E9
$000000000042302C
ИСПОЛЬЗУЮ ONLINE КОМПИЛЯТОРЫ, КАК ИСПРАВИТЬ ЭТУ ОШИБКУ?