Паскаль: Ошибка при чтении целых чисел из файла и нахождение четных чисел в диапазоне от 1 до 50
При работе над проектом на Паскале вы столкнулись с ошибкой при чтении целых чисел из файла и нахождении четных чисел в диапазоне от 1 до 50. В этой статье мы поможем вам разобраться в проблеме и предоставим исправленный код.
Описание проблемы
Вы пытаетесь прочитать набор целых чисел из входного файла и суммировать только четные числа в диапазоне от 1 до 50. Однако, ваш код не работает, и вы получаете в качестве результата "Even sum is 0".
Ваш исходный код:
program even(input, output, indata);
uses
crt;
var
indata: text;
num, even: integer;
begin
clrscr;
assign(indata, 'j:\num.txt');
reset(indata)0; // Ошибка: лишний 0 после скобки
read(indata, num);
while num > 50 do // Ошибка: условие всегда ложно, так как первое число 1
begin
read(indata, num);
if num mod 2 = 0 then
even := even + num; // Ошибка: переменная even не инициализирована
end;
writeln('Even sum is', even);
readln();
end.
Исправленный код:
Чтобы исправить ошибки в вашем коде, выполните следующие шаги:
Удалите лишний 0 после скобки в строке reset(indata)0;.
Инициализируйте переменную even перед циклом, чтобы она содержала начальное значение, например, 0.
Измените условие в цикле while на num < 50, чтобы цикл выполнялся, пока не будет прочитано число больше 50.
Добавьте закрытие файла в конце программы с помощью CloseFile(indata) или Close(indata).
Вот исправленный код:
program even(input, output, indata);
uses
crt;
var
indata: text;
num, even: integer;
begin
clrscr;
assign(indata, 'j:\num.txt');
reset(indata);
read(indata, num);
even := 0; // Инициализация переменной even
while num < 50 do // Исправленное условие цикла
begin
read(indata, num);
if num mod 2 = 0 then
even := even + num; // Теперь все работает правильно
end;
writeln('Even sum is', even);
readln();
CloseFile(indata); // Закрытие файла
end.
Теперь ваш код должен правильно работать и суммировать все четные числа в диапазоне от 1 до 50 из входного файла.
При работе над проектом на Паскале пользователь столкнулся с ошибками при чтении целых чисел из файла и нахождении четных чисел в диапазоне от 1 до 50, и требуется помощь в исправлении кода.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS