Язык программирования Turbo Pascal. Алфавит. Основные конструкции языка. Структура и типы данных. Арифметические и логические операции. Операции отношения. Стандартные функции и нестандартные математические функции.
Система программирования Turbo Pascal, разработанная корпорацией Borland International, является одной из самых популярных систем программирования. Сам язык Pascal разработан в 1969 году швейцарским ученым Н. Виртом и назван в честь французского математика Блеза Паскаля (1623-1662). По замыслу автора Pascal предназначался для обучения студентов программированию. Однако язык получился удачным и стараниями А. Хейлсберга стал одним из инструментов прикладных и системных программистов.
Появившиеся в последнее время инструментальные системы Borland Pascal for Objects и Delphi, разработанные для визуального программирования в среде Windows основываются на Turbo Pascal и развивают его идеи.
Алфавит языка Turbo Pascal содержит следующие символы:
· 26 букв латинского алфавита;
· 10 арабские цифры:
· специальные символы:
Идентификаторы – это имена констант, переменных, меток, типов, процедур, функции, программ и полей записях.
Константа – это величина, которая не может изменяться в процессе вычислений.
Переменная – это величина, которая может принимать различные значения в процессе выполнения программы.
Данные имеют следующие типы:
а) целые;
б) вещественные;
в) логические;
г) символьные;
д) строковые;
Стандартные функции. Стандартные функции используются для вычисления наиболее часто встречающихся функции при обработке данных. При обращении к стандартным функциям необходимо записать имя функции, а в скобках указать аргумент.
Обращение (запись на Turbo Pascal) | выполнение функции (матем. запись) |
sin (x) | sin x - вычисляет синус аргумента |
cos (x) | Cos x – вычисляет косинус аргумента |
Arctan (x) | arctg x – вычисляет арктангенс аргумента |
ln (x) | ln x - вычисляет натуральный логарифм |
exp (x) | ex - вычисляет экспоненту аргумента |
abs (x) | - абсолютное значение аргумента |
sqrt (x) | - вычисляет квадратный корень из х |
sqr (x) | x2 - вычисляет квадрат х |
Обратим внимание на то, что в Turbo Pascal отсутствуют некоторые тригонометрические и математические функции. При необходимости их использования применяют следующие математические соотношения:
Следует заметить, что в тригонометрических функциях аргумент может быть задан только в радиане. Если аргумент дан в градусах, то для перевода его в радианы используется формула рад = град..
Операции.Для обработки данных используется следующие типы операции:
- арифметические;
- операции отношения;
- логические;
- операции над множествами;
- операции над строками.
Арифметические операции. Над данными целого и вещественного типа следующие арифметические операции:
* умножение
/ деление
+ сложение
- вычитание
div деление нацело
mod арифметический модуль
Логические операции. Имеется четыре логические операции:
not отрицание
and конъюнкция (логическое умножение)
or дизъюнкция (логическое сложение)
xor исключающее дизъюнкция
Структура программ. Операторы: начало и конца, присваивания, ввода и вывода, составные. Комментарий. Операторы условного и безусловного перехода. Оператор выбора. Среда Turbo Pascal. Операторы цикла: For, While и Repeat. Вложенные циклы.
Структуры программы. В Turbo Pascal программы имеют следующий формат:
Program имя_программы;
label
раздел описания меток;
const
раздел описания констант;
type
раздел описания типов;
var
раздел описания переменных;
Процедуры и функции;
Begin
Основная часть.
End.
Операторы: По функциональному назначению операторы языка могут быть разделены на следующие группы:
- простые операторы;
- операторы ввода-вывода;
- операторы управления;
- циклические операторы;
- операторы определения функций и процедур.
Составной оператор. Составной оператор представляет собой последовательность операторов, заключенную в служебные слова begin и end.
Общий формат оператора:
begin
последовательность операторов.
end;
Оператор присваивания. Оператор присваивания вызывает выполнение выражения и присваивание этого значения идентификатору, стоящей слева от символа присваивания. Общий формат оператора:
V: = b;
где V – имя переменной; b – выражение; := - знак присваивания.
Оператор ввода. Операторы ввода обеспечивают ввод в программу исходные данные, необходимые для вычисления и обработки данных. Общий формат оператора ввода:
а) read (v1, v2, …vn);
б) readln (v1, v2, …vn);
в) readln;
где v1, v2, …vn - переменные, которые последовательно получают вводимые значения.
Оператор вывода. Операторы вывода предназначены для вывода результатов вычисления на экран дисплея. Общий формат оператора вывода:
а) write (v1, v2, …vn);
б) writeln (v1, v2, …vn);
в) writln;
где v1, v2, …vn - переменные.
Оператор безусловного перехода. Оператор безусловного перехода используется для передачи управления оператору, помеченному меткой. Общий формат оператора:
goto _ m; где m – метка оператора.
Оператор условного оператора. Условий оператор предназначен для организации передачи управления в зависимости от выполнения некоторого логического условия. Общий формат оператора:
а) if b then a;
б) if b then a1 else a2;
в) if b1 then a1 else
if b2 then a2 else a3;
где b, b1, b2 – логическое выражение; a, a1, a2, a3 – операторы.
Оператор выбора. Оператор выбора позволяет выбрать одно из нескольких возможных предложений программы. Общий формат оператора:
case C of
n1 : a1;
n2 : a2;
………
nn : an;
else a;
end; где С – селектор; ni – константы; ai – операторы.
Оператор цикла for. Оператор цикла с параметром применяется для организации цикла с известным числом повторений.
Общий формат оператора:
а) for i:=n1 то n2 до S; {шаг равен +1}
б) for i:=n2 downto n1 до S; {шаг равен -1}
где i – параметр цикла; n1, n2 - начальное и конечное значения параметра цикла; S – тело цикла (простой или составной оператор).
Оператор цикла while. Оператор цикла с предварительным условием позволяет организовать цикл, число повторений вычислений которого зависит от записанного в нем условия. Общий формат оператора:
While b do S;
где b - логическое выражение;
S - тело цикла (простой или составной оператор).
Оператор цикла repeat. Оператор цикла с последующим условием позволяет организовать цикл с неизвестным числом повторений.
Общий формат оператора:
repeat
последовательность операторов
until b;
где b – логическое выражение.
Массивы и работа с ними. Понятие о многомерных массивах. Организация подпрограмм. Процедуры и функции. Глобальные и локальные переменные. Фиктивные и фактические параметры.
Массивы. Массив – это совокупность упорядоченного набора значений одного типа, имеющие общее имя. Местоположение элемента в массиве задается индексом, который записывается в квадратных скобках.
Общий формат описания массива:
v : array [n..m] of T;
где v – имя массива; n, m – нижние и верхние индексы массива; Т – тип массива.
Пределы изменения массива можно задавать в описании константами целого типа или через имена констант. В описании массивов большой размерности пределы изменения по каждой размерности определяются друг от друга запятой. В зависимости от числа индексов массивы бывают одномерные, двумерные и т.д.
Подпрограммы позволяют разрабатывать программы в виде отдельных частей, которые могут взаимодействовать между собой. Каждая подпрограмма описывается один раз, при необходимости к ней можно многократно обращаться. В языке Turbo Pascal имеется два вида подпрограмм: функция и процедура. Используемые функции и процедуры должны быть описаны в разделе описания функции и процедур.
Функция. В программе функция используется для вычисления одного значения.
Общий формат описания функций:
Function F (q1 ; Т1 ; q2 ; Т2 ; … ) :Т ;
где F – имя функции;
qi- имена формальных параметров;
Ti- типы формальных параметров;
T- тип функции.
Процедура. В программе процедура используется при получении нескольких результатов. Общий формат описания процедуры:
Procedure F (q1:T1; q2:T2; …; var q3:T3);
где F - имя процедуры;
q i- имена формальных параметров;
Ti - типы формальных параметров;
Если в процедуре и главной программе используются одни и те же имена параметров, то процедуру можно организовать без параметров.
Обращение к процедуре осуществляется оператором процедуры в виде
F (b1 , b2 , … );
где F - имя процедуры;
bi - имена фактических параметров.
Параметры–значения определяют исходные данные для работы подпрограммы при обращении к ним. В списке формальных параметров они описываются в виде:
(q1 : T1 ; q2 : T2)
где qi- имена формальных параметров;
Ti- имя типа;
Параметры–переменные определяют выходные данные процедуры, которые передаются в основную программу. Поэтому, фактический параметр, определяющий результат, должен описываться как переменная.
Технология программирование. Структурное и модульное программирование. Объектно-ориентированное программирование. Объекты и их свойства.
Технология программирования – это выбор метода и средств создания программ.
Структурное программирование является современной технологией разработки алгоритмов и программ. К основным принципам структурного программирования относятся:
· разработка программ (алгоритмов) методом «сверху вниз»;
· пошаговая детализация;
· отказ от применения оператора безусловного перехода и преимущественное использование других структурных операторов.
Модульное программирование основано на понятия модуля – логически взаимосвязанной совокупности функциональных элементов, оформленных в виде отдельных программных модулей. Модуль характеризуют:
· один вход и один выход;
· функциональная завершенность;
· логическая независимость (результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей);
· слабые информационные связи с другими модулями;
Состав и вид программных модулей, их назначение и характер использования в программе в значительной степени определяются инструментальными средствами.
Системы программирования. Современные системы программирования предоставляют пользователю мощные и удобные средства для разработки программ. В их состав входят:
· компилятор, осуществляющий преобразование программы, написанной на языке программирования, в программу в машинных кодах, или интерпретатор, осуществляющий непосредственное выполнение программы на языке программирования высокого уровня;
· библиотеки программ, содержащие заранее подготовленные программы, которым могут пользоваться программисты;
· различные вспомогательные программ.
Языки программирования. Все множество языков программирования разделяется на следующие классы:
· машинные – языки программирования, воспринимаемые аппаратной частью компьютера;
· машинно-ориентированные – предназначены для использования на тех ЭВМ, для которых эти языки разработаны;
· алгоритмические – языки, не зависящие от архитектуры компьютера и предназначенные для отражения структуры алгоритма;
· процедурно-ориентированные – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);
· проблемно-ориентированные – языки программирования, предназначенные для решения задач из определенной профессиональной деятельности;
· интегрированные системы программирования – делятся на языки, ориентированные на реализацию основ структурного программирования и объектно-ориентированные языки, поддерживающие понятие объектов и их свойств и методов обработки.
Объектно-ориентированное программирование. Объектно-ориентированный подход использует следующие базовые понятия:
· объект;
· свойство объекта;
· метод обработки;
· событие;
· класс объектов.
Объект – совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средсьв).
Свойство – это характеристика объекта и его параметров. Все объекты выделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов.
Метод – это программа действий над объектом или его свойствами.
Событие –это характеристика изменения состояния объекта.
Класс – это совокупность объектов, характеризующихся общностью применяемых методов обработки или свойств.
Существуют различные объектно-ориентированные технологии и методики проектирования программ, которые обеспечивают выполнение важнейших принципов объектного подхода:
· инкапсуляция (замыкание) свойств данных и программ в объекте;
· наследование;
· полиморфизм.
Под инкапсуляцией понимается скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса (т.е. скрытие деталей, несущественных для использования объекта). Инкапсуляция означает сочетание структур данных с методами их обработки в абстрактных типах данных – классах объектов.
Класс может иметь образованные от него подклассы. При построении подклассов осуществляется наследование данных и методов обработки объектов исходного класса. Механизм наследования позволяет переопределить или добавить новые данные и методы их обработки, создать иерархию классов.
Под полиморфизмом подразумевается способность объекта реагировать на запрос (вызов метода) сообразно своему типу, при этом одно и то же имя метода может использоваться для различных классов объектов.
Литература основная:
6. Йенсен К., Вирт Н. Руководство для пользования и описание языка.- Москва: Финансы и статистика, -1982.
7. Фаронов В.В, Turbo Pascal 7.0 -Москва, Нолидж, 1999, -616 с.
Дополнительная литература:
8. Файсман А. Профессиональное программирование на Турбо Паскале. -Ташкент, Info&F, -1992.
9. Куракбаев Д.С. Программирование на языке Паскаль. -Шымкент, ЮКГУ, -1999, 51с.
10. Ибрагимов У.М. Программирование на Turbo Pascal 7.0
a. -Шымкент, ЮКГУ, -2004, 58с.