Как сделать откладку в паскале абс

Добавил пользователь Евгений Кузнецов
Обновлено: 10.09.2024

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

1. Нерасширенный Паскаль (Unextended Pascal) был разработан в 1983 году и практически полностью совпадает с описанием языка по Вирту.

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

3. Объектный Паскаль (Object Pascal) принят в 1993 г . Он поддерживает классы, обладающие свойствами и методами, наследование классов, переопределение методов у потомков (полиморфизм) и другие атрибуты объектно-ориентированного программирования. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

1. Для операционной системы MS-DOS самое большое распространение приобрела реализация языка Паскаль фирмы Borland под названием Turbo Pascal (первая версия языка появилась в 1983 году).

2. Borland Pascal включает в себя более дешёвый и менее мощный Turbo Pascal и, кроме того позволяет создавать программы как под реальный, так и под защищённый 16-битный режим DOS, а так же программы для Windows. В нем открыты исходные тексты системных библиотек и функций времени выполнения.

3. Delphi – интегрированная среда разработки ПО для Microsoft Windows на языке Delphi , созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies.

4. Free Pascal – свободно распространяемый компилятор языка программирования Pascal с ориентацией на Object Pascal.

5. Lazarus – свободно распространяемая интегрированная Delphi -подобная среда разработки программного обеспечения для компилятора Free Pascal, предоставляющая возможности кроссплатформенной разработки приложений.

На предыдущем уроке было показано, как использовать оператор Select Case для выбора из нескольких вариантов.

В этом уроке будет описана среда программирования Pascal ABC.

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

Система программирования Pascal ABC ориентирована на школьников и студентов младших курсов. Это в достаточно простая и дружественная среда программирования. Во время работы используются три основных окна: окно редактора кода, окно ввода и окно вывода.

Окно редактора кода

Большую часть рабочей области, её верхнюю часть занимает окно редактора кода. В него вводится исходный текст программы.

Горячие клавиши, которые можно использовать при работе с текстом программы:

F2, Ctrl-S- сохранить файл.

F3, Ctrl-O- загрузить файл.

F12- сохранить файл под новым именем.

Ctrl-Shift-S- сохранить все открытые файлы.

Ctrl-Tab, Ctrl-Shift-Tab — перейти к следующему/предыдущему окну редактора.

Ctrl-Shift-I- увеличить отступ выделенного блока.

Ctrl-Shift-U — уменьшить отступ выделенного блока.

Окно вывода

Окно вывода может быть скрыто. Клавиша F5 показывают/скрывают окно вывода. Для скрытия окна вывода используется также клавиша Esc.

Окно вывода обязательно открывается при любом выводе в него.

Для очистки окна вывода следует нажать комбинацию клавиш Ctrl-Del или кнопку .

Окно ввода

Окно ввода открывается при выполнении процедур read и readln в ходе работы программы:

Ввод данных в в окно ввода сопровождается эхо-выводом в окно вывода (см. рис). После нажатия клавиши Enter данные из окна ввода попадают в соответствующие переменные, окно ввода закрывается, и программа продолжает работать дальше.

Запуск и остановка программы

Для запуска программы в текущем окне редактора следует нажать клавишу F9 или кнопку панели инструментов.

В данной секции располагаются определенные пользователем константы. Синтаксис объявления констант выглядит так:

Данная секция предназначена для переменных и массивов. Переменные объявляются так:

Тип строка - это тип переменных, который позволяет хранить в переменной любой текст. Объявление строковой переменной:

Операция Описание
s1 + s2 Объединение строк
s1*n Дублирование строки n раз

Операция Описание
a + b Сложение чисел
a - b Разность чисел
a * b Произведение чисел
a div b Целочисленное деление
a mod b Остаток от деления

Декларация переменной типа real:

Пример присваивания переменной данного типа:

Операция Описание
a + b Сложение чисел
a - b Разность чисел
a * b Произведение чисел
a / b Частное чисел

Данный раздел программы содержит все команды, выполняемые при ее запуске. Данная секция программы выглядит так:

Комментарий - это часть кода, которую игнорирует компилятор. Он создается следующим образом:

Массивы - это именованный список элементов одного типа.

P. S. Для работы с массивами существует учебный модуль Arrays.

Статические массивы имеют фиксированный размер. Общий синтаксис объявления данных массивов выглядит так:

, где N - длина массива.

Матрица - это n-мерный список значений, имеющий свой тип и ограниченный некоторыми значениями. Пока будем рассматривать только статические двухмерные и трехмерные матрицы. Перед тем, как перейти к их изучению вспомни таблицы в Excel. Каждая таблица имеет свой размер - ширину и длину. Возьмем за правило ассоциировать двухмерные матрицы с таблицами. Объявление матрицы:

, где N, M количество строчек и столбцов соответственно.

Трехмерный матрицы обладают третьим измерением:

Декларация N-мерной матрицы:

, где A..Z означают количество элементов в соответствующем измерении.

Динамические массивы позволяют управлять количеством элементом в каждом из их измерений во время выполнения программы.

Индекс массива - это номер элемента массива. Индекс может принимать значения [0, N - 1], где N - количество элементов некоторой размерности. Обращение к элементу одномерного массива с некоторым индексом:

Составим таблицу, которую следует запомнить:

Где i, j, k - индексы.

Индексом может быть значение элемента массива:

Вывести текст - это значит отобразить текст на экране. Общий синтаксис для вывода текста выглядит так:

Вывод значений произвольного количества переменных:

Для перехода на новую строку после вывода последнего значения используйте Writeln вместо Write.

Чтение с клавиатуры - это процесс ввода данных с клавиатуры и запись в соответствующий элемент программы этих данных. Элементами программы являются как переменные, так и элементы массивов. Тип данных, вводимых с клавиатуры, должен соответствовать типу элемента, в который записываются данные с клавиатуры. Использование Readln для чтения с клавиатуры и перехода на новую строку:

Общий синтаксис условного оператора if:

Команды . будут выполнены только при истинности условия.

Условные обозначения в программировании операций сравнения приведены в таблице:

Операция Эквивалент в Паскале
<= (меньше или равно)
>= (больше или равно) >=
> (больше) >
= (равно) =
? (не равно) <>

Общий синтаксис сравнения двух величин:

Оператор case используется для сопоставления значения некоторого выражения с константными значениями:

Если некоторое i-тое константное выражение совпадает с значением выражения, то i-ая группа операторов будет выполнена. Группа операторов после else будет выполнена, если значение выражения не совпало ни с одной из констант. begin - end не нужны, если после двоеточия только один оператор.

Оператор цикла позволяет выполнять группу операторов (или один) циклически пока условие является истинным.

Если второе значение меньше первого - используйте downto вместо to.

Для выхода из цикла можно использовать break:

Для завершения текущей итерации цикла и начала другой используйте оператор continue.

Общий синтаксис описания функции:

Можно устанавливать значение переменной Result для указания возвращаемого значения.

Отличие от стандартного Паскаля: значение присваивается в Result .

function Add(a,b:real):real; begin Result:= a + b; end;

function Add(a,b:real):real:= a + b;

Или же функция может выступать в качестве процедуры (нежелательный вариант):

function Add(a,b:real):= a + b; begin print(Add(2,8)); end;

Пример: Вычислить S и P прямоугольника со сторонами a и b. Использовать кортеж и функцию в качестве процедуры.

Выполнение:

function SP(a,b: real):=(a*b,2*(a+b)); begin print(SP(2,3)); end;

пример функции в паскаль абц

Короткие процедуры:

procedure p(a, b: real):= if a

Использование модуля

Функции и процедуры принято помещать в пользовательские модули.
Для модуля создается отдельный файл, например, MyUnit.pas, в котором прописывается код функции или процедуры:

Unit MyUnit; interface function MyFunc(x:real):real; procedure MyPr(x:real); implementation function MyFunc(x:real):real; begin . end; procedure MyPr(x:real); begin . end; end.

В файле с основной программой:

Uses MyUnit; var . begin . end.

Тестирование процедур и функций

Все созданные процедуры принято тестировать. Для этого существует стандартная функция Assert:

function Add(a,b:integer):integer; begin Result:= a + b; end; begin Assert(Add(2,3)=(2+3), 'Тест не прошел'); print (Add(4,6)); end.

Обобщенные функции (Generic-функции)

Не всегда удобно, когда мы указываем конкретный тип аргументов функции или конкретный тип возвращаемого функцией значения.

Есть понятие обобщенной функции, в которой не указано к какому типу будут относиться ее аргументы или возвращаемое ею значение:

Подпрограмма образуется из обобщенной подпрограммы подстановкой конкретных типов в качестве параметров.

Запись такой функции выглядит так:

function MyFunc (a:T):T; begin . end;

В данном примере и аргумент и значение функции имеют изначально неопределенный тип.

Еще пример с обобщенной функцией.

Решение задач

Пример: Описать обобщенную функцию IsitDigit(D) , которая возвращает истину, если целое число D является цифрой (одноразрядное число, то есть D лежит в диапазоне 0–9). В основной программе вывести значение этой функции для N ( N >= 0 ) данных чисел

Выполнение:

function IsitDigit (d:T):boolean; begin var ch:=[0..9]; if d in ch then result:=true else result:=false; end; begin var n:=readInteger('введите число > 0'); assert (n>0,'число должно быть > 0'); print(IsitDigit(n)); end.

Выполнение:

function AddToRightDigit(i,n:integer):integer; begin var str:=n.ToString+i; result:=str.ToInteger; end; begin var n :=readInteger ('введите число'); var i :=readInteger('введите постфикс'); print(AddToRightDigit(i,n)) end.

Выполнение:

function ASred(x,y:real):=(x+y)/2; begin var x:= readReal('введите x'); var y:= readReal('введите y'); println('результат средн. арифм: ',ASred(x,y)); end.

Задание 2: Описать в краткой форме функцию GSred(X, Y) , вычисляющую среднее геометрическое двух положительных вещественных чисел X и Y .

Читайте также: