Лекция: Принцип работы
Система Pascal ABC (или аналогичный вариант ‑ Pascal ABC.Net) ‑ современная бесплатная среда программирования, предназначенная для обучения последнему на языке Паскаль и ориентированная на студентов младших курсов. Данная среда, не уступая по возможностям морально устаревшему Turbo Pascal’ю, вместе с тем обладает существенно более удобным интерфейсом и позволяет обучаемым осуществить переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию. Многие концепции в Pascal ABC сознательно упрощены, что позволяет использовать их на более ранних этапах обучения. Например, модуль графики обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi.
Рис. 2. Окно программы Pascal ABC
Pascal ABC ‑ программа, которая совмещает в себе полноценный курс заданий,[1] оказывающий существенную помощь в овладении данным языком программирования: курс заданий Pascal ABC обеспечивает легкий переход к модульному программированию, учит использовать переменные и составлять собственные задачи.
В программе имеется несколько модулей, с помощью которых пользователи смогут работать с векторной графикой, с растровыми изображениями. Имеются модули для создания таймеров со звуком. Имеется ряд модулей, с которыми можно легко создавать простые геометрические задачи, уравнения и решать их.
Имеется модуль для работы со структурными данными. Pascal ABC обладает указателями, которые необходимы для комплексных чисел и работы с ними. Имеются арифметические модули, которые помогут создавать логические задачи, программы и уравнения, основанные на геометрии, алгебре и высшей математике.
Рис. 3. Окно рабочей программы с использованием графики
Содержание работы
Работа предполагает базовые знания школьного курса языка программирования Turbo Pascal. Запустить программу Pascal ABC. Ознакомиться с работой программы, строкой меню, окном редактора кода и ввода-вывода команд. Воспроизвести примеры, приведенные ниже, используя, где необходимо, преобразование команд «школьного алгоритмического языка» в операторы паскаля. По указанию преподавателя выбрать вариант из Приложения В. По завершении работы результаты сохранить в файл.
Пример 1.Пешеход шел по пересеченной местности. Его скорость движения по равнине v1 км/ч, в гору – v2 км/ч и под гору – v3 км/ч. Время движения соответственно t1, t2 и t3 ч. Какой путь прошел пешеход?
1. Ввести v1, v2, v3, t1, t2, t3.
2. S1 := v1 * t1.
3. S2 := v2 * t2.
4. S3 := v3 * t3.
5. S := S1 + S2 + S3.
6. Вывести значение S.
7. Конец.
Пример 2.Дано натуральное трехзначное число n, в записи которого нет нулей. Составить алгоритм, который возвращает значение истина, если верно утверждение: «число n кратно каждой своей цифре», и ложь – в противном случае.
1. Ввести число n
2. A := n mod 10 {разряд единиц}
3. B := n div 100 {разряд сотен}
4. C := n div 10 mod 10 {десятки}
5. L := (n mod A=0) and (n mod B=0) and (n mod C=0)
6. Вывод L
7. Конец
На приведенной выше схеме div и mod соответственно операции деления нацело и получения остатка от целочисленного деления. В фигурных скобках записаны пояснения (комментарии) к операторам.
Для проверки работоспособности алгоритма необходимо задать значения входных переменных, вычислить конечный результат по алгоритму и сравнить с результатом ручного счета.
Пример 3.Составить алгоритм и программу, запрашивающую имя и затем приветствующую его обладателя.
ProgramHello;VarName: String;{Описание переменной Nameстрокового типа}BEGINWrite('Как тебя зовут? '); {Вывод на экран текста вопроса}ReadLn(Name);{Ввод c клавиатуры имени}WriteLn('Привет, ', Name, '!'); {Вывод на экран приветствия}ReadLnEND.Здесь последний оператор ReadLn позволяет видеть на экране результаты работы программы, пока не будет нажата клавиша <Enter>.
Пример 4.Определить объём и площадь боковой поверхности цилиндра с заданными радиусом основания R и высотой H.
Program Cylinder;UsesCrt; {Подключение библиотеки Crt}VarR, {радиус основания цилиндра}H, {высота цилиндра }V, {объем цилиндра }S: Real; {площадь боковой поверхности цилиндра}BEGINClrScr; {Вызов из библиотеки Crt процедуры очистки экрана}Write('Введите высоту цилиндра: '); ReadLn(H);Write('Введите радиус основания: '); ReadLn(R);V := Pi * R * R * H;S := 2 * Pi * R * H; WriteLn;WriteLn('Объем цилиндра = ', V: 5: 2); {Здесь 5 – общее количество позиций, занимаемых переменной V при выводе, а 2 — количество позиций в дробной части значения V}WriteLn('Площадь боковой поверхности = ', S: 5: 2);ReadLnEND.