Компилирую код на pascal. Открываю exe. Ввожу значения, нажимаю enter и программу выкидывает, помогите пожалуйста, очень нужно.
var a, b, c: integer; begin write(‘write a,b: ‘); readln(a, b); while b <> 0 do begin c := a mod b; a := b; b := c; end; writeln(‘The NOD is ‘, a); end.
Программа pascalABC
Отслеживать
задан 29 янв 2018 в 15:20
Armen Epremyan Armen Epremyan
5 1 1 бронзовый знак
«программу выкидывает» — ??
– user176262
29 янв 2018 в 15:24
да, выкидывает, даже ошибки не выдает
29 янв 2018 в 15:25
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Попробуйте добавить readln; перед end.
Возможно дело в том, что консоль закрывается сразу после срабатывания программы и вы не успеваете увидеть результат. readln; позволит остановить консоль до следующей нажатой клавиши.
Отслеживать
ответ дан 29 янв 2018 в 15:28
user240900 user240900
Спасибо огромное за ответ! Разобрался
29 янв 2018 в 15:37
- pascal
- pascalabc.net
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Как скачать и установить программу pascalABC на windows
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
lang-pascal
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Источник: ru.stackoverflow.com
Прекращена работа программы pascalabc net
Не могу запустить программу на паскале. Установила среду Pascal ABC NET полную версию, как обычно с net framework 4 написано «Установка успешно завершена». Но когда пытаюсь открыть, только мигнул значок ожидания и все, программа не открывается, хотя файлы программ с расширением .pas все ассоциируются с программой Pascal ABC NET.
Пробовала переустановить полную версию, пробовала переустановить только среду программирования. Ничего не получается. При нажатии 1 раз мигнет значок ожидания, и жду-жду ничего не открывается. Как проверить что мешает нормальному запуску проги?
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,703
а попробуй в безопасном режиме запустить. а попробуй лишние службы отключить. а попробуй скачать простой турбо паскаль 7.0.
Программирование — это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
Регистрация: 09.01.2008
Сообщений: 26,238
попробуйте запустить от имени администратора (правой кн.мышки «Запуск от имени администратора»
PascalABC.NET Обзор IDE / Скачать, установить, удалить / pascal abc .net / Net FrameWork / 2022
посмотрите в системный журнал, может там есть сообщения об ошибках
попробуйте поставить ДРУГУЮ версию (взять другой инсталлятор)
и вообще, а зачем Вам Pascal ABC.NET ?!
Это же гибрид, монстр, мутант! Это скорее не Паскаль, чем Паскаль!
Возьмите лучше Free Pascal + Lazarus — чистенько, аккуратненько, современно и абсолютно бесплатно.
а Turbo Pascal не рекомендую, ведь для Turbo Pascal придётся ещё DosBox использовать, иначе он на соврменных Windows не запустится, в винде убрали DOS.
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,703
+
а Turbo Pascal не рекомендую, ведь для Turbo Pascal придётся ещё DosBox использовать, иначе он на соврменных Windows не запустится, в винде убрали DOS.
А мы знаем, под какой системой он сидит? может, всё ещё под Win’98.
Программирование — это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
Источник: www.programmersforum.ru
Ошибка при запуске pascal abc net
Сообщение было отмечено G_lion как решение
Решение
Удаляйте со всеми потрохами (каким-нибудь нормальным Uninstaller-ом, умеющим удалять остатки файлы/реестр, не тем, который дефолтный в Windows. Я пользуюсь RevoUninstaller-ом, например) и переустанавливайте заново. А Duplicate file Remover выкинуть и больше никогда не устанавливать, во избежание повторения подобного глюка с этой же или другими программами.
32445 / 20940 / 8104
Записей в блоге: 7
Значит, Duplicate File Remover натворил делов глубже, чем в конкретной установке PABC.NET. Возможно, было затронуто что-то в самом .NET-е, возможно (но судя по сообщению об ошибке — маловероятно) в самой Windows.
Программа не может загрузить файл PascalABCNET.xshd Возможно он поврежден.
32445 / 20940 / 8104
Записей в блоге: 7
пересоздается при переустановке приложения. Это не может быть проблемой. Что-то глубже нарушено.
я сужу по скрину
Я не знаю ни чего не помогает
Даже диск восстановил
А какое содержимое файла PascalABCNET.exe.config?
Добавлено через 1 минуту
Я УДАЛИЛ файла PascalABCNET.exe.config И ПОШЛО
Что пошло? куда пошло? У тебя в эксепшене вторым пунктом написано, что проблема в третьей строке этого файла. там написана версия .NET с которой программа должна работать. Возможно этот файл был поврежден.
Проще всего в таких случаях переустановить PascalABC.NET в новый каталог. Старый можно при этом не деинсталлировать — пусть висит в назидание
Проще всего в таких случаях переустановить
Тут проблема в том, что не понятно в каких…
Проблемы с PascalABC.Net
PascalABC может ставиться непосредственно на компьютер или использоваться в Сети: http://pascalabc.net/WDE/
Дома у меня Windows 10. Локальная версия встала без проблем.
Сейчас в командировке. На ноутбуке Windows 7. Пытался ставить локальную версию, — после её запуска выдаёт ошибку: поставьте NET.Framework v4.0. Поставил и его, вроде без ошибок. Но программа не запускается.
Попробовал работать на сетевой версии. Всё работает, быстро, но недолго. Через пару минут работы программа без всяких сообщений слетает. Ограничений на время работы в документации не нашёл.
Re: Проблемы с PascalABC.Net
Смотрите журнал событий Windows: Компьютер -> Управление (в контекстном меню по пкм) -> Диагностика -> Журналы Windows (вроде так, пишу по памяти). Сначала смотрите журнал приложений, скорее всего там будет ошибка. Если не будет, можете поискать в журнале системы. Какой .net ставили (откуда брали установщик)?
Re: Проблемы с PascalABC.Net
На ноутбуке Windows 7. Пытался ставить локальную версию, — после её запуска выдаёт ошибку: поставьте NET.Framework v4.0. Поставил и его, вроде без ошибок. Но программа не запускается.
Вы поставили именно NET.Framework v4.0? Какие версии NET.Framework у Вас установлены?
На странице http://pascalabc.net/ssyilki-dlya-skachivaniya есть такое сообщение:
«Пользователям операционных систем Windows 7 SP1, Windows Vista SP2 и выше рекомендуется установить версию .NET Framework 4.5.1 или старше.»
Там же есть ссылка на NET Framework 4.5.1
Re: Проблемы с PascalABC.Net
Ошибка та же:
Re: Проблемы с PascalABC.Net
Вообще-то, .NET Framework 4.x является частью Windows 7, так что его надо ставить через «Компоненты Windows» и обновлять через обновление системы.
Re: Проблемы с PascalABC.Net
Большое спасибо!
У меня обновление Windows криво стояло. Перезапустил его. И сразу получилось поставить .NET Framework 4.5.1.
Локальный PascalABC работает!
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы
UNIT data_input; INTERFACE uses crt; const n=5; type leaner = record fam : string[50]; //фамилия ученика name : string[50]; //имя school : integer; //№ школы predmet : array [1..n] of char; //предмет ball : array [1..n] of integer; //количество набранных баллов на ЕГЭ end; procedure INPUT; //ВВОД ДАННЫХ IMPLEMENTATION //ВВОД ДАННЫХ PROCEDURE INPUT; var s: leaner; f: file of leaner; i: integer; g, q: char; Begin //проверка на существование файла и его создание if not (FileExists (‘Список учеников.txt’)) then begin textcolor(4); write(‘Файл не существует!’); textcolor(0); end else write (‘Здравствуйте, вы хотите создать новый файл — (Y) или открыть уже имеющийся — (N)?’); readln(g); if (g=’y’) or (g=’Y’) then begin assign(f,’Список учеников.txt’); rewrite (f); end else begin assign(f,’Список учеников.txt’); reset(f); end; //ввод данных о человеке i:=1; repeat write(‘Введите фамилию ученика: ‘); readln(s.fam); write(‘Введите имя ученика: ‘); readln(s.name); write(‘Введите № школы ученика: ‘); readln(s.school); writeln(‘Введите наименования предметов, которые сдавал ученик (5 предметов): ‘); for i:=1 to n do readln( s.predmet[i] ); writeln(‘Соответственно введите количество набранных баллов на ЕГЭ учеником (если ученик не сдавал какой-либо экзамен поставьте 0): ‘); for i:=1 to n do readln(s.ball[i]); write(f,s); write(‘Вы закончили ввод данных (y/n)?’); readln(q); until (q=’n’) or (q=’N’); close(f); End; BEGIN // начало инициирующей части END. // конец инициирующей части
Неописанная переменная
begin S := 1; // Неизвестное имя S end.
Все используемые переменные должны быть предварительно описаны с помощью ключевого слова var (внутри блока begin/end или, что обычно хуже, в разделе описаний вначале программы).
Отсутствующая ;
begin var S: integer S := 1; // Компилятор здесь скажет: Ожидалась ; — имеется ввиду предыдущая строка! end.
begin var S := 1 S := S + 1 // Аналогично: проблема на предыдущей строке, а на текущей нет, потому что после неё идёт end. end.
Очень частая ошибка у начинающих. Курсор, как правило, позиционируется в начале следующей строки.
Несовместимость типов при присваивании
begin var S: integer := 1.3; // Нельзя преобразовать тип real к integer end.
Безболезненно можно присваивать только данные одного типа. Если данные — разных типов, то в редких случаях можно преобразовать данные одного типа в данные другого. Например, целое можно преобразовать в вещественное, а символ — в строку.
Обратные преобразования не допускаются.
Чтобы не ошибаться в подобных простых случаях в Паскале есть следующая краткая форма объявления и инициализации переменной:
begin var S := 1.3; // Тип real будет выведен компилятором автоматически end.
Отсутствие закрывающего апострофа литеральной строки
begin var x := 2; // x получает тип integer var y := 3; // y получает тип integer writeln(‘Результат сложения равен =, x + y); // Не хватает закрывающего апострофа end.
Закрыть апостроф надо на той же строке, где расположен открывающий апостроф
Ошибки расстановки запятых и апострофов при выводе строк и выражений
begin var x := 2; // x получает тип integer var y := 3; // y получает тип integer writeln(x, ‘+,’ y, ‘=’, x+y); // Неверная расстановка запятых и апострофов end.
Слишком много запятых и апострофов рядом, потому начинающие часто путаются
Надо уяснить правила:
- запятые разделяют разные элементы вывода
- все, что находится в апострофах, будет выведено на экран без изменений
Ошибка ввода
begin var x: integer; read(x); // введите блаблабла и посмотрите, что получится end.
Это — ошибка во время выполнения. Программа пытается преобразовать введенную строку в число, не может это сделать и завершается с ошибкой.
Аналогичный фрагмент в более современном и предпочтительном синтаксисе:
begin var x := ReadInteger; end.
Ошибка неинициализированной переменной
begin var x: integer; // Забыли инициализировать или ввести x var r := x * x; // r получает тип integer writeln(‘Квадрат числа ‘, x, ‘ = ‘, r); end.
Перед использованием любую переменную надо ввести или присвоить ей начальное значение. Это действие называется инициализацией переменной.
Деление на 0
begin var x := 0; var c := 666 div x; // Здесь происходит деление на 0 end.
Если во время выполнения программа выполнит деление на 0, то она завершится с ошибкой.
Корень из отрицательного числа
begin writeln(sqrt(-1)); // Корень из отрицательного числа end.
В обычном Паскале возникает ошибка времени выполнения.
В PascalABC.NET выводится NaN — Not a Number
Ссылки
- Программы для начинающих
- Сайт PascalABC.NET: Программы и алгоритмы для начинающих
Источник: oshibkam.ru