Помощь - Поиск - Пользователи - Календарь
Полная версия: Не работает программа!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Гость_Lamer
Создал самую простую программу и сохранил на диске:
Код
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
Ты просто напросто не успеваешь увидеть того, что выдает программа.
Необходимо не дать завершиться программе, скажем, до нажатия ENTER (к примеру).
Для этого перед "end." поставь "Readln;"

Или запускай прогу под NortonCommander'ом (ДОС-версией), после выполнения проги и "вылета" в Нортон нажми Ctrl+O
NetAnton
1) ну так она и должна закрываться. выводит результат и закрывается, потому что в конце нет чего-либо похожего на ReadLn, repeat until KeyPressed или ReadKey.

2) ну а если у тебя не стоит проверка диапазона {$R} и ты вводишь числа вне -32768..32767 или сумма превосходит MaxInt, то прога "вылетает".
BlackShadow
Более простой вариант, не требующий изменения кода - вызвать свойства .exe и снять галочку "Закрывать при завершении программы". Но это придётся делать на каждом компе или тягать с собой .pif.
Altair
У меня как-то была проблемма с точностью наоборот, мне надо было что бы окно проги закрывалось сразу smile.gif

Есть 3 способ увидеть результат - поставить в конце задержку.
delay(2000); хватит smile.gif
BlackShadow
Забыли ещё вариант с перенаправлением вывода. Что-то типа "MyProg.Exe > 1.Txt". Но тогда подсказки выводимые в ходе работы программы скидываются туда же.
Altair
Короче говоря методы следующие:
1. ждать собятия (мышь, нажатие клавиши и т.п.)
2. ждать по времени
3. перенаправить вывод в файл
Werwolf86
Прощё говоря..зацикли экран с выходом - нажатие любая клавиша и все... :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.