Ответ от Александр Погребняк[гуру]
В Паскале АВС нет возможности создавать ехе-файл. Можно в Турбо Паскале или в Паскале АВС. net. Но такие файлы не будут запускаться под вин 7 и 8. Только с Дос Боксом. Я обхожу эту проблему таким образом.
1. Делаю программу в Паскале АВС
2. Создаю в Делфи 7 консольное приложение
3. Копирую туда код из Паскаля.
4. Компилирую ехе-файл
На «семерке» точно запускается
Ответ от [гуру]
Выбросить PascalABC и поставить что-нибудь нормальное, по крайней мере, оснащенное компилятором. Хотя бы PascalABC.NET. Тогда при отладке будет появляться exe, который и сможете запустить на другом компе.
Ответ от юзер[гуру]
я создаю в паскале авс нет и все отлично работает на всех компах, не слушай тот бред что выше тебе написали, просто скачай последнюю версию паскаля вот и все. Там будет кнопка — создать программу.
Ответ от Наталья ивановская[новичек]
f9
Ответ от Вячеслав Чёрный[новичек]
В PascalABC.NET 3.0 ГЛАВНОЕ МЕНЮ: Программа — компилировать
Pascal 0 урок(Вступления) — Как скачать и установить Pascal (ABC)
файл: C:PABCWork.NET Program1.exe
Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как запустить написанную в Pascal ABC программу, на компьютере без Pascal ABC?
Источник: 22oa.ru
Выполнение программы в среде PascalABC.NET
1. Запустите среду разработки PascalABC.NET, используя иконку на рабочем столе компьютера.
2. Введите текст программы в окне редактора (рис.1).
3. Сохраните программу с помощью команд меню Файл/Сохранить.
4. Запустите программу на исполнение с помощью команд меню Программа /Выполнить или клавиша F9. Если во время компиляции программы обнаружены ошибки, необходимо исправить их, и повторно запустить программу на исполнение.
5. Введите исходные данные в окне ввода (рис.3).
6. После ввода данных выводится результат работы программы.
Варианты заданий по теме «Линейные алгоритмы»
№ варианта | Задание | Формула |
Дана длина ребра куба H. Найти объем куба V и площадь его боковой поверхности S. | ![]() ![]() |
|
Определить время t падения камня на поверхность земли с высоты h. | ![]() |
|
Известна длина окружности. Найти площадь круга S, ограниченного этой окружностью. | ![]() |
|
Треугольник задан координатами своих вершин. Найти: периметр треугольника P; площадь треугольника S. | ![]() ![]() ![]() ![]() ![]() |
|
Три сопротивления R 1, R 2, R 3 соединены параллельно. Найти сопротивление соединения. | ![]() |
|
По данным сторонам прямоугольника вычислить его периметр P, площадь S и длину диагонали. | ![]() ![]() ![]() |
|
Определить координаты вершины параболы. Коэффициенты a, b, c заданы. | ![]() ![]() |
|
Вычислить площадь треугольника по формуле Герона, если заданы его стороны. | ![]() ![]() |
|
Определить расстояние S и скорость v, пройденное физическим телом за время t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость v0. | ![]() ![]() |
|
Вычислить объем и площадь цилиндра с радиусом основания r и высотой h. | ![]() ![]() |
|
Вычислить высоту треугольника, опущенную на сторону а, по известным значениям длин его сторон a, b, c. | ![]() |
|
В квадратной комнате шириной A и высотой B есть окно и дверь с размерами ![]() ![]() |
![]() ![]() ![]() |
|
Найти: площадь трапеции S, если заданы стороны ![]() |
![]() ![]() |
|
Вычислить путь, пройденный лодкой S, если ее скорость в стоячей воде v км/ч, скорость течения реки v 1 км/ч, время движения по озеру t 1 ч, а против течения реки – t 2 ч. | ![]() ![]() ![]() |
|
Определить объем V и температуру T смеси двух жидкостей при заданных значениях ![]() |
![]() ![]() |
Pascal ABC. Структура программы
Лабораторная работа №2. Программирование разветвляющихся алгоритмов
Цель работы
Научиться составлять программы на языке Паскаль на основе разветвляющихся алгоритмов с использованием условного оператора if…then.
Общие сведения
Примеры решения задач по теме «Программирование разветвляющихся алгоритмов»
Задание 1
Вычислить значение функции у по одной из заданных формул, в зависимости от вычисленного значения переменной х. Исходные данные для вычисления x задать произвольно. Вывести на печать результаты вычислений: значения исходных данных, переменных х, у и номер формулы, по которой вычисляется у.
где
Этапы решения задачи
1. Для вычисления значения y по одной из формул необходимо сначала вычислить значение переменной x.
2. Составляем блок-схему алгоритма.
3. Детализируем блок «Определяем, к какому промежутку относится Х. «
![]() |
4. Добавим блоки вычисления функции на каждом из промежутков:
![]() |
5. Окончательная блок-схема алгоритма выглядит следующим образом:
6. Переводим блок-схему на язык Pascal.
program ZADANIE1;
var a, b, c, x, y:real; nf: integer;
write(‘a = ‘); readln(a);
write(‘b= ‘); readln(b);
write(‘c= ‘); readln(c);
else if (x=1) then
writeln(‘При a =’, a:4:2, ‘ b=’, b:4:2, ‘ c=’, c:4:2, ‘x=’, x:4:2);
writeln(‘y =’, y:4:2, ‘ номер формулы=’, nf:2);
7. Выполним программу в среде PascalABC.NET (см. п.3.1.4).
Задание 2
Дано а, b, c. Вычислить среднее арифметическое чисел, кратных 3, и количество чисел, лежащих в интервале [1, 15].
Этапы решения задачи
1. Сначала вычислим сумму S и количество k чисел, кратных 3. Определив значения этих переменных, можно рассчитать среднее арифметическое значение чисел, кратных 3, разделив S на k. Входные переменные а, b и c должны быть целого типа, так как при проверке на кратность используется функция mod – остаток от целочисленного деления, которая выполняется только с данными целого типа. Для вычисления количества чисел, лежащих в интервале от 1 до 15, каждую переменную проверим на заданное условие. Если условие выполняется, то к счётчику t прибавляем 1.
2. Составим блок-схему алгоритма и текст программы.
![]() |
PROGRAM zadanie2; VAR S,K,T,A,B,C: INTEGER; SR: REAL; BEGIN WRITE(‘A=’); READLN(A); WRITE(‘B=’); READLN(B); WRITE(‘C=’); READLN(C); S:=0; K:=0; T:=0; IF (A MOD 3=0) THEN BEGIN S:=S+A; K:=K+1; END; IF (B MOD 3=0) THEN BEGIN S:=S+B; K:=K+1; END; IF (C MOD 3=0) THEN BEGIN S:=S+C; K:=K+1; END; IF (A>=1) AND (A <=15) THEN T:=T+1;IF (B>=1) AND (B<=15)THEN T:=T+1; IF (C>= 1) AND (C <=15) THEN T:=T+1;SR:=S/K; WRITELN(‘СРЕДН. ЗНАЧЕНИЕ=’, SR); WRITELN(‘Кол-во чисел =’, T); END. |
3. Выполним программу в среде PascalABC.NET (см. п.3.1.4).
Варианты заданий по теме «Разветвляющиеся алгоритмы»
Задание 1
Вычислить значение функции у по одной из заданных формул, в зависимости от вычисленного значения переменной х. Исходные данные для вычисления x задать произвольно. Вывести на печать результаты вычислений: значения исходных данных, переменных х, у и номер формулы, по которой вычисляется у.
№ Вар-та | Задание | Формула |
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
Задание 2
№ Варианта | Задание |
Даны три действительных числа a, b, c. Вычислить количество положительных чисел среди них. | |
Даны три действительных числа a, b, c. Вычислить среднее арифметическое значение положительных чисел среди них. | |
Даны три действительных числа a, b, c. Вычислить сумму чётных чисел среди них. | |
Даны три действительных числа a, b, c. Выбрать из них те, которые принадлежат интервалу [1, 30]. | |
Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить его модулем; если отрицательное только одно из них, то оба значения увеличить на 0.5; если оба значения не отрицательны и ни одно из них не принадлежит отрезку [0.5, 2.0], то оба значения уменьшить в 10 раз; в остальных случаях x, y оставить без изменения. | |
Определить и вывести на печать номер квадрата, в котором расположена точка М (x, y), x и y заданные вещественные числа. | |
Из величин, определяемых выражениями ![]() ![]() |
|
Ввести два числа. Меньшее заменить полусуммой, а большее – удвоенным произведением. | |
Даны три действительных числа a, b, c. Вычислить их сумму. Если сумма положительная, необходимо все числа уменьшить вдвое, если иначе вычислить их произведение. | |
Даны три действительных числа a, b, c. Если все числа положительные, необходимо вычислить их произведение, если иначе, вычислить модуль разности отрицательных чисел. | |
Даны три переменные: X, Y, Z. Если их значения упорядочены по убыванию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. | |
Даны три действительных числа a, b, c. Вычислить произведение чисел, кратных 3 и не кратных 5 среди них. | |
Даны три действительных числа a, b, c. Вычислить модуль разности отрицательных чисел среди них. | |
Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по возрастанию. | |
Даны три действительных числа a, b, c. Если ![]() |
Источник: megalektsii.ru
Пример выполнения простого задания: Begin3
На данной странице приводится пошаговое описание процесса решения в системе Free Pascal Lazarus следующего простого учебного задания из группы Begin.
Begin3°. Даны стороны прямоугольника a и b. Найти его площадь S = ab и периметр P = 2(a + b).
Создание программы-заготовки и знакомство с заданием
Для создания проекта, содержащего заготовку для требуемого задания, следует воспользоваться программным модулем PT4Load. Для этого достаточно перейти в рабочий каталог задачника и с помощью ярлыка Load.lnk запустить программу PT4Load.exe (начиная с версии 4.22, для быстрого запуска любых модулей задачника можно использовать программу PT4Panel, ярлык которой располагается на рабочем столе и в любом рабочем каталоге). В результате на экране появится окно модуля PT4Load, в котором следует указать имя нужного задания. Отметим, что в заголовке этого окна указывается краткое имя той программной среды, для которой будет создана заготовка. В случае среды Free Pascal Lazarus заголовок будет содержать текст [Free Pascal Lazarus].
Проект-заготовка, созданный для системы Free Pascal Lazarus и предназначенный для выполнения задания Begin3, будет включать файл Begin3.lpr, содержащий следующий текст:
program Begin3; uses SysUtils, PT4Tasks; begin Task(‘Begin3’); end.
Данная программа содержит оператор uses подключения вспомогательных модулей, а также вызов процедуры Task, инициализирующей задание Begin3. В начале программы указываются некоторые директивы компилятора, устанавливающие режим компиляции, наиболее подходящий для выполнения учебных заданий.
Аналогичным образом выглядит и программа-заготовка, созданная для системы программирования PascalABC.NET (она сохраняется в файле с расширением .pas).
До версии 4.14 включительно для всех сред языка Pascal использовалось одинаковое имя модуля задачника: PT4. Начиная с версии 4.15, это имя оставлено только для среды PascalABC.NET, тогда как для сред Delphi и Lazarus введено новое имя: PT4Tasks. Наличие разных имен позволяет избежать конфликта модулей при одновременном использовании в рабочем каталоге сред Lazarus и PascalABC.NET.
Примечание 1. Начиная с версии 4.20 задачника, поддержка сред разработки Delphi была прекращена. Для решения задач на языке Pascal можно использовать среды Free Pascal Lazarus и PascalABC.NET (работа со средой PascalABC.NET более подробно описывается в особой части данного раздела).
Примечание 2. При выполнении заданий в среде Free Pascal Lazarus рекомендуется отключить встроенный отладчик, что существенно ускорит запуск программ. Для этого следует выполнить команду меню Сервис | Параметры. (Tools | Options.
), в появившемся диалоговом окне в правой части выбрать раздел Отладчик (Debugger), а в левой части установить в выпадающем списке Тип отладчика и путь (Debugger type and path) вариант (none). Желательно также снять флажок Показывать сообщение при остановке (Show message on stop); в противном случае после завершения каждого тестового запуска программы на экран будет выводиться дополнительное диалоговое окно с текстом Исполнение остановлено (Execution stopped). После установки требуемых настроек следует закрыть диалоговое окно настройки параметров отладчика, нажав кнопку OK.
Запустим программу, нажав клавишу [F9], чтобы увидеть на экране окно задачника с формулировкой задания и примером исходных данных. Начиная с версии 4.11, окно задачника может отображаться в двух режимах: с динамической компоновкой, при которой каждый раздел «подстраивается» под свое содержимое, и с фиксированной компоновкой, при которой каждый раздел имеет фиксированные размеры. В предыдущих версиях задачника был доступен только режим с фиксированной компоновкой. Режим с динамической компоновкой особенно удобен для заданий с большими формулировками и большими наборами данных. Ниже приведены оба режима окна для данного задания; вначале указан режим с динамической компоновкой (для переключения режимов предназначена клавиша [F4]).
Запуск нашей программы был признан ознакомительным (и поэтому правильность решения не анализировалась), так как в ходе ее выполнения не было совершено ни одной операции ввода-вывода.
Примечание 3. В версии 4.21 поддержка режима с фиксированной компоновкой была прекращена. Начиная с этой версии, команда Режим (F4), ранее применявшаяся для переключения между режимами с фиксированной и динамической компоновкой, обеспечивает отображение текста текущего задания в режиме html-документа. В дальнейшем в качестве иллюстраций будут использоваться только окна с динамической компоновкой.
Ввод исходных данных
Приступая к решению задачи, надо прежде всего организовать ввод в программу исходных данных. В нашем случае исходными данными являются вещественные числа a и b, определяющие стороны прямоугольника (в области исходных данных эти числа выделены желтым цветом и снабжены комментариями).
При вводе исходных данных важно правильно указывать их тип, в противном случае задачник зафиксирует ошибку. Продемонстрируем это на примере нашей программы, организовав считывание исходных данные в переменные целого типа, используя процедуру GetN. Для этого закроем окно задачника (нажав кнопку «Выход», клавишу [Esc] или клавишу [F9]) и дополним нашу программу следующим образом (для краткости мы здесь и в дальнейшем не будем указывать строки с директивами компилятора, заголовком program и директивой uses):
var a, b: integer; begin Task(‘Begin3’); GetN(a); GetN(b); end.
Повторно запустив программу, мы увидим, что исходные данные изменились. При каждом запуске генерируется новый набор исходных данных, поэтому для успешного решения задания необходимо запрограммировать алгоритм, правильно обрабатывающий любой допустимый набор исходных данных.
Поскольку мы попытались ввести исходные данные (т. е. продемонстрировали намерение выполнить задание), данный запуск программы уже не считается ознакомительным. Однако тип исходных данных был выбран нами неправильно, поэтому на информационной панели будет выведена следующая информация об ошибке (на фиолетовом фоне): «Неверно указан тип при вводе исходных данных. Для ввода 1-го элемента (вещественного типа) использована переменная целого типа»:
Следует обратить внимание на индикаторы, появившиеся в окне задачника (индикаторы были добавлены в окно задачника в версии 4.11). В окне с динамической компоновкой для индикаторов отводится специальная панель, которая располагается под информационной панелью; в качестве индикаторов используются цветные горизонтальные полосы, а также цветные квадратные маркеры.
Полосы серого цвета показывают, какая часть исходных данных была введена в ходе выполнения задания и какая часть результатов была выведена. В нашем случае задачник зафиксировал ввод только одного элемента исходных данных (из двух имеющихся). Это объясняется тем, что уже при вводе первого элемента было обнаружено несоответствие типов, и поэтому оставшаяся часть решения не анализировалась.
Полосы и маркеры различных оттенков красного цвета определяют характер обнаруженной ошибки, а также указывают, к какой группе данных (исходных или результирующих) эта ошибка относится. В нашем случае ошибка несоответствия типа была выявлена для исходных данных, поэтому заголовок раздела с исходными данными был выделен фиолетовым цветом и, кроме того, на панели индикаторов в области «Ввод», появился фиолетовый маркер.
Для правильного ввода исходных данных в нашем случае надо использовать процедуру GetR, обеспечивающую ввод данных типа real. Исправим соответствующим образом нашу программу:
var a, b: real; begin Task(‘Begin3’); GetR(a); GetR(b); end.
Теперь ввод данных выполнен правильно. Однако наша программа не выводит результатов. Начиная с версии 4.15, в данной ситуации выводится сообщение на светло-синем фоне: «Запуск с правильным вводом данных: все требуемые исходные данные введены, результаты не выведены».
Светло-синяя индикация означает, что успешно пройден первый этап решения: ввод исходных данных. Заметим, что в предыдущих версиях задачника в аналогичной ситуации выводилось сообщение об ошибке на оранжевом фоне «Выведены не все результирующие данные. Количество выведенных данных: 0 (из 2)».
Вычисления и вывод полученных данных
Выполним необходимые вычисления и выведем результаты, используя процедуру PutR:
var a, b, S, P: real; begin Task(‘Begin3’); GetR(a); GetR(b); S := a * b; P := 2 * (a + b); PutR(P); PutR(S); end.
После запуска программы мы можем убедиться, что найденные значения выведены в разделе результирующих данных. Но из-за того, что вначале мы вывели значение периметра P, а затем значение площади S, решение по-прежнему признано неверным, а сообщение об ошибке имеет вид «Ошибочное решение». Подобное сообщение означает, что все исходные данные были введены, все результирующие данные выведены, но значения полученных результатов не совпадают с контрольными:
Индикаторы показывают, что были введены и выведены все требуемые данные. Обратившись к примеру верного решения, приведенному в окне задачника, мы видим, что площадь и периметр найдены верно и нарушен только порядок их вывода. В окне с динамической компоновкой пример верного решения выводится ниже раздела результатов.
Таким образом, важно не только найти правильные значения результирующих данных, но и вывести их в нужном порядке. Для того чтобы указать этот порядок, в разделе результатов используется поясняющий текст (см. приведенный выше рисунок окна задачника). Заметим, что исходные данные тоже важно вводить именно в том порядке, в котором они указаны в окне задачника. Общее правило здесь следующее: ввод и вывод данных производится по строкам (слева направо), а строки просматриваются сверху вниз. Иными словами, данные, отображаемые в окне задачника, вводятся и выводятся в том порядке, в котором читается обычный текст на русском языке.
Правильное решение и его тестирование
Исправим допущенную ошибку, поменяв местами два последних оператора:
PutR(S); PutR(P);
После запуска исправленной программы на экране появится окно прогресса тестирования:
Данное окно отображается на экране, если программа успешно обработала хотя бы один набор исходных данных. Полоса прогресса показывает, сколько тестов было успешно пройдено к текущему моменту, а текст над полосой дублирует эту информацию и позволяет определить количество тестов, которое должна успешно пройти программа, чтобы задание считалось выполненным. Тестирование программы завершается в двух случаях: когда будет успешно пройдено требуемое число тестов или когда при прохождении очередного теста будет выявлена ошибка. Если при очередном тестовом испытании произойдет «зависание» программы (например, из-за зацикливания алгоритма), то для завершения работы программы следует закрыть окно прогресса тестирования, нажав на кнопку с крестиком в его правом верхнем углу.
В нашем случае решение не содержит ошибок, поэтому после прохождения трех успешных тестов на экране появится окно задачника с сообщением «Задание выполнено!». Выполнение задания Begin3 завершено:
Возможность автоматического тестирования программы на нескольких наборах исходных данных была реализована в версии 4.13 задачника. В предыдущих версиях для тестирования на различных наборах данных программу требовалось запускать несколько раз; при этом на информационной панели выводилась информация о количестве успешно пройденных тестов. Возможность подобного «пошагового» тестирования сохранена и в версии 4.13; для этого надо дополнить имя задания в процедуре Task символом «!» (восклицательный знак).
С помощью модуля PT4Results можно просмотреть информацию о ходе выполнения задания (начиная с версии 4.11, этот модуль можно вызывать непосредственно из окна задачника; для этого достаточно нажать клавишу [F2] или щелкнуть мышью на метке с описанием этой клавиши, размещенной в правом верхнем углу окна задачника):
Begin3 p04/02 14:57 Ознакомительный запуск. Begin3 p04/02 15:07 Неверно указан тип при вводе исходных данных. Begin3 p04/02 15:09 Запуск с правильным вводом данных. Begin3 p04/02 15:12 Ошибочное решение. Begin3 p04/02 15:15 Задание выполнено!
Буква «p», указанная перед датой, означает, что задание выполнялось на языке Pascal.
Примечание 1. В использовании вспомогательных переменных S и P при выполнении задания нет необходимости, поскольку при выводе результатов можно указывать не только переменные, но и выражения. Учитывая это, можно получить более короткий вариант решения задания Begin3:
var a, b: real; begin Task(‘Begin3’); GetR(a); GetR(b); PutR(a * b); PutR(2 * (a + b)); end.
Примечание 2. При выполнении заданий в среде PascalABC.NET для ввода-вывода данных можно использовать стандартные процедуры Read-Write, причем при одном вызове этих процедур можно вводить или выводить несколько элементов данных. Поэтому вариант решения задания Begin3 в этих средах будет еще более коротким:
var a, b: real; begin Task(‘Begin3’); Read(a, b); Write(a * b, 2 * (a + b)); end.
В среде PascalABC.NET можно также использовать синтаксические расширения языка Pascal, позволяющие, в частности, описывать переменные непосредственно в разделе операторов и определять их тип по инициализирующему выражению:
begin Task(‘Begin3’); var a := ReadReal; var b := ReadReal; Write(a * b, 2 * (a + b)); end.
Примечание 3. Начиная с версии 4.13, в среде Free Pascal Lazarus можно использовать более удобные средства ввода-вывода, например:
var a, b: real; begin Task(‘Begin3’); a := GetReal; b := GetReal; Put(a * b); Put(2 * (a + b)); end.
Здесь для ввода используются функции без параметров, а вывод осуществляется с помощью «универсальной» процедуры Put, для которой не требуется уточнять тип выводимых данных.
Разработка сайта:
М. Э. Абрамян, В. Н. Брагилевский
Источник: www.ptaskbook.com