Не работает код, хотя компилируется нормально:
program AplusB; // название
Uses CRT; // модуль
var // Раздел описания
a,b,c: integer; // Числа
d,i: text; // Файлы
begin // Начало
assign (d,'input.txt'); // привязка переменной к имени файла
assign (i,'output.txt'); // привязка переменной к имени файла
append (d); // открытие файла
append (i); // открытие файла
writeln (d,random(320),' ',random(320)); // заполнение входного файла числами
read (d,a); // чтение первого числа
readln (d,b); // чтиние второго числа и переход на новую строчку
c:= a+b; // сложение двух чисел
writeln (i,c); // ввод результата в файл
close (d); // сохранения и закрытие файла
close (i); // сохранения и закрытие файла
end. // конец
Другие языки программирования и технологии
Паскаль. Почему не робит?
И не будет работать.
Во-первых, зачем такие сложности?
Получить два случайных числа, записать в файл и тут же прочитать (вернее-пытаться
прочитать; читаете вы вовсе не числа, об этом ниже) .
Не проще ли получить два числа в памяти, их сложить и записать все, что нужно, в файл?
Теперь о чтении. Рассмотрим часть вашего кода; комментарии я заменил на свои.
writeln (d,random(320),' ',random(320)); // записали два случайных числа
read (d,a); // позиция файла - после записанных чисел; что читаем? Пустое место
readln (d,b); // опять-таки читаем пустое место.
Если уж никак иначе без файла, то так:
Rewrite (d); // открытие файла; именно - Rewrite, а не Append.
writeln (d,random(320),' ',random(320)); // заполнение входного файла числами
Close(d);
Reset(d); // Открыли записанный файл на чтение и ВЫСТАВИЛИ ПОЗИЦИЮ НА НАЧАЛО!
read (d,a); // чтение первого числа
readln (d,b); // чтиние второго числа и переход на новую строчку
Close(d);
Во-первых, зачем такие сложности?
Получить два случайных числа, записать в файл и тут же прочитать (вернее-пытаться
прочитать; читаете вы вовсе не числа, об этом ниже) .
Не проще ли получить два числа в памяти, их сложить и записать все, что нужно, в файл?
Теперь о чтении. Рассмотрим часть вашего кода; комментарии я заменил на свои.
writeln (d,random(320),' ',random(320)); // записали два случайных числа
read (d,a); // позиция файла - после записанных чисел; что читаем? Пустое место
readln (d,b); // опять-таки читаем пустое место.
Если уж никак иначе без файла, то так:
Rewrite (d); // открытие файла; именно - Rewrite, а не Append.
writeln (d,random(320),' ',random(320)); // заполнение входного файла числами
Close(d);
Reset(d); // Открыли записанный файл на чтение и ВЫСТАВИЛИ ПОЗИЦИЮ НА НАЧАЛО!
read (d,a); // чтение первого числа
readln (d,b); // чтиние второго числа и переход на новую строчку
Close(d);
попробуй для открытия файла rewrite (d)
а на выходе что дает?
a Randomize не нужен ли часом?
попробуй подставить в инпут числа по факту, без рендома, и глянь, пишутся ли они в тхт
если не записались значит что то с открытием файлов и записью в них
счас geany и fpc поставлю, глянем
a Randomize не нужен ли часом?
попробуй подставить в инпут числа по факту, без рендома, и глянь, пишутся ли они в тхт
если не записались значит что то с открытием файлов и записью в них
счас geany и fpc поставлю, глянем
Может так?
a := Random(320);
a := Random(320);
Похожие вопросы
- Паскаль. Почему програмка создает безконечо-большой тексковый файл
- Паскаль. Почему перед Else нельзя ставить точку с запятой?
- Почему постоянно люди говорят "на Паскале ничего нормального написать нельзя", "паскаль - дерьмо"
- Аналог ассоциативного массива в Паскале.
- Я внутри написал, что я знаю про паскаль не то что решать и все такое а так теоретический в общем, смысл проги, я прав?
- ПАСКАЛЬ и ГРАФИКА
- Товарищи программисты на Delphi и Pascal помогите девушке!!!)) вопрос глупый..насчет паскаля..
- Проблема с оператором random в паскале
- С++, блин, легче Паскаля.
- Подскажите почему Паскаль не делает нужного расчета и выводит на экран просто S вместо его значения? Как это исправить?