Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
29 / 26 / 10
Регистрация: 04.03.2013
Сообщений: 853
1

Закрывается программа после нажатия Enter

03.02.2019, 16:50. Показов 5544. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Простите за наивный вопрос. Впервые использую Паскаль.
После компиляции программы, запускаю ее. После ввода входных значений и нажатия на Enter, чтобы произвести расчет, программа закрывается.
Как сделать, чтобы она не закрывалась?
Вот код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
PROGRAM PODKORYTOV;
VAR A,B,S,P:INTEGER;
BEGIN
WRITE('ВВЕДИТЕ ДВА ЧИСЛА ');
READ (A,B);
P:=2*(A+B);
S:=A*B;
WRITELN ('ПЕРИМЕТР = ',P);
WRITE ('ПЛОЩАДЬ = ',S);
readln;
END.
Буду благодарен помощи!
Использую PascalABC. Версия 3.3
Windows 7
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2019, 16:50
Ответы с готовыми решениями:

После нажатия enter пролетели в ряд строки кода с текстом. Как сделать?
надо чтоб после нажатия enter пролители в ряд строки кода с текстом когда нажали enter...

Написать программу построения сегмента и заполнения его некоторым цветом после нажатия на клавишу Enter
Написать программу построения сегмента и заполнения его некоторым цветом после нажатия на клавишу...

Написать программу построения сектора и заполнения его некоторым цветом после нажатия на клавишу Enter
Написать программу построения сектора и заполнения его некоторым цветом после нажатия на клавишу...

Создайте программу, рисующую в видимой странице сектор, и прямоугольник в невидимой. После нажатия Enter происходит смена видимых страниц
Создайте программу, рисующую в видимой странице сектор, и прямоугольник в невидимой. После нажатия...

16
online
51 / 34 / 16
Регистрация: 11.02.2018
Сообщений: 221
03.02.2019, 17:09 2
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Pascal
1
2
uses crt;//в заголовок программы
readkey();//в конце перед end
1
29 / 26 / 10
Регистрация: 04.03.2013
Сообщений: 853
03.02.2019, 17:17  [ТС] 3
Спасибо!
Выручили
0
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,007
06.02.2019, 23:12 4
Mike_Boone, это Вы костыль написали. Никак нельзя такое советовать. Прочитайте про работу операторов ввода, рекомендую.

Программа закрывается потому, что после нажатия <Enter> при вводе (в строке 5) процедура read, прочитав A и B, не удаляет из буфера ввода этот самый <Enter> (просто потому, что read этого не делает), а в строке 10 процедура readln как раз и ждёт <Enter> из буфера ввода. И она его получает, и программа тут же завершается. Нужно всего лишь заменить read на readln:
Pascal
5
READLN(A,B);
Тогда <Enter> будет удалён из буфера ввода уже в строке 5. И не придётся вышибать из буфера ввода оставшийся от read этот чёртов <Enter> с помощью readkey или, например, ещё одного readln в конце программы...
1
Mike_Boone
07.02.2019, 10:37
  #5

Не по теме:

Cyborg Drone, главное чтобы работало. ;DD

0
29 / 26 / 10
Регистрация: 04.03.2013
Сообщений: 853
07.02.2019, 16:04  [ТС] 6
Теперь у меня такой код.
Добавил в 5 строку READLN(A,B); но программа закрывается после нажатия Enter.
Подскажите, пожалуйста, что делаю не так.

Pascal
1
2
3
4
5
6
7
8
9
10
PROGRAM PODKORYTOV;
VAR A,B,S,P:INTEGER;
BEGIN
WRITE('ВВЕДИТЕ ДВА ЧИСЛА ');
READLN(A,B);
P:=2*(A+B);
S:=A*B;
WRITELN ('ПЕРИМЕТР = ',P);
WRITE ('ПЛОЩАДЬ = ',S);
END.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2019, 16:11 7
Цитата Сообщение от iiwanc Посмотреть сообщение
WRITE('ВВЕДИТЕ ДВА ЧИСЛА ');
Вводите 1 число-> Enter, 2 число-> Enter.
0
29 / 26 / 10
Регистрация: 04.03.2013
Сообщений: 853
07.02.2019, 16:32  [ТС] 8
Все равно закрывается
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2019, 16:38 9
Да ну Вас нафиг, у меня не закрывается.
Миниатюры
Закрывается программа после нажатия Enter  
0
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,007
09.02.2019, 04:25 10
Лучший ответ Сообщение было отмечено iiwanc как решение

Решение

iiwanc, Вы "делаете не так" следующее: зачем-то убрали readln перед end. Естественно, Вы ввели числа, был выдан ответ, и тут же программа закрылась, не притормозив, потому что нет команды, которая дожидается нажатия клавиши.

Не по теме:

Mike_Boone, я с Вами не согласен. К примеру, если я Вам посоветую, что при езде на велосипеде нужно тормозить с помощью падения, это как, нормально? А почему нет, это же вполне рабочий способ затормозить.

1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
09.02.2019, 07:37 11
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
потому что нет команды, которая дожидается нажатия клавиши.
Да в АВС это и не нужно. Или у ТС не АВС и он пудрит мозг в этом разделе?
0
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,007
09.02.2019, 11:23 12
Puporev, естественно, у ТС не ABC, это стало ясно ещё из сообщения #1.
0
29 / 26 / 10
Регистрация: 04.03.2013
Сообщений: 853
10.02.2019, 12:23  [ТС] 13
Обновил до 3.4.2
0
29 / 26 / 10
Регистрация: 04.03.2013
Сообщений: 853
10.02.2019, 12:26  [ТС] 14
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Скрин
Миниатюры
Закрывается программа после нажатия Enter  
0
29 / 26 / 10
Регистрация: 04.03.2013
Сообщений: 853
10.02.2019, 12:29  [ТС] 15
Cyborg Drone, спасибо за разъяснение.
Теперь работает, как надо
0
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,007
11.02.2019, 04:04 16
iiwanc, на будущее: Pascal ABC и Pascal ABC.NET, несмотря на их общее происхождение, совершенно разные диалекты паскаля.

ABC - диалект паскаля, в котором ампутировано всё, что можно, и ещё вдобавок немножко того, что нельзя. Он даже исполняемого файла (без танцев с бубном) создать не способен. Предназначен исключительно для обучения, ни на что бОльшее он не годится. Поддержка и дальнейшее развитие этого диалекта паскаля давным-давно прекращены.

ABC.NET - мощнейшая среда программирования, основанная на Pascal (а именно: на том самом Pascal ABC), скрещенным с C#, и, как следствие, с микрософтовсой платформой .NET. То есть, заточен этот паскаль исключительно под виндовс, но, в принципе, это недостатком можно и не считать. Его синтаксис, вообще-то, очень сильно отличается от синтаксиса прочих диалектов паскаля, хотя, позволительно писать программы и в "классическом" стиле. В нём столько всего понапихано, что мама не горюй. Одно плохо: разработчикам, судя по всему, доведение этого отличного диалекта паскаля до идеала совершенно по барабану. БОльшая часть того, что им в багтрек написали, они, похоже, исправлять и не собираются. Поэтому, из-за его "забагованности", многие программисты, поначалу "влюбившиеся" в этот диалект, "пересаживаются" с него на микрософтовский "первоисточник" C#, из которого, собственно, все "плюшки" Pascal ABC.NET и понадёрганы.
1
29 / 26 / 10
Регистрация: 04.03.2013
Сообщений: 853
12.02.2019, 16:18  [ТС] 17
Большое спасибо за разъяснение.
Простите, что ввел в заблуждение.
0
12.02.2019, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2019, 16:18
Помогаю со студенческими работами здесь

Программа все считает, но после выполнения сразу же закрывается
Программа все считает, но после выполнения сразу же закрывается. Помогите, чтобы не закрывалась...

Вывести информацию об указанном банке. Программа закрывается после ввода данных
Общая суть: в массиве хранятся данные о банках, нужно вывести информацию об указанном банке....

Закрывается, а не выполняется программа после нажатия enter
Доброй ночки всем. Помогите новичку: после нажатия enter после ввода переменных программа не...

Скомпилированная программа закрывается после нажатия клавиши
В общем такая проблема, написал прогу на c++ , скомпилировал, у меня всё работает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru