Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Не работает программа!

Автор: Гость_Lamer 8.07.2004 14:25

Создал самую простую программу и сохранил на диске:

Код
Program p1;
{Сложение x,y,z}
var x, y, z, s : integer;
begin
writeln ('напиши номера x,y,z:');
readln (x, y, z);
s:=x+y+z;
writeln ('Результат:');
writeln (s);
end.

Запускаю .exe файл, пишу три номера, нажимаю enter и ... программа закрывается.
Мой вопрос: Почему??? Заранее Спасибо!!!

Автор: APAL 8.07.2004 14:50

Ты просто напросто не успеваешь увидеть того, что выдает программа.
Необходимо не дать завершиться программе, скажем, до нажатия ENTER (к примеру).
Для этого перед "end." поставь "Readln;"

Или запускай прогу под NortonCommander'ом (ДОС-версией), после выполнения проги и "вылета" в Нортон нажми Ctrl+O

Автор: NetAnton 8.07.2004 14:50

1) ну так она и должна закрываться. выводит результат и закрывается, потому что в конце нет чего-либо похожего на ReadLn, repeat until KeyPressed или ReadKey.

2) ну а если у тебя не стоит проверка диапазона {$R} и ты вводишь числа вне -32768..32767 или сумма превосходит MaxInt, то прога "вылетает".

Автор: BlackShadow 8.07.2004 17:39

Более простой вариант, не требующий изменения кода - вызвать свойства .exe и снять галочку "Закрывать при завершении программы". Но это придётся делать на каждом компе или тягать с собой .pif.

Автор: Altair 9.07.2004 19:27

У меня как-то была проблемма с точностью наоборот, мне надо было что бы окно проги закрывалось сразу smile.gif

Есть 3 способ увидеть результат - поставить в конце задержку.
delay(2000); хватит smile.gif

Автор: BlackShadow 9.07.2004 19:59

Забыли ещё вариант с перенаправлением вывода. Что-то типа "MyProg.Exe > 1.Txt". Но тогда подсказки выводимые в ходе работы программы скидываются туда же.

Автор: Altair 9.07.2004 20:12

Короче говоря методы следующие:
1. ждать собятия (мышь, нажатие клавиши и т.п.)
2. ждать по времени
3. перенаправить вывод в файл

Автор: Werwolf86 10.07.2004 16:49

Прощё говоря..зацикли экран с выходом - нажатие любая клавиша и все... :D