Тема 2 Паскаль: Язык программирования PASCAL, характеристика языка программирования


Лекция Р_2.

Тема: Язык программирования PASCAL

Цель: Ознакомить с языком программирования PASCAL, рассмотреть основные структурные элементы, стандартные функции

План

1.  Общая характеристика языка программирования PASCAL. Элементы языка и структура программы.

2.  Раздел описаний и объявлений. Раздел операторов.

3.  Оформление и выполнение программы. Раздел объявления постоянных.

4.  Стандартные функции. выражения

5.  Операторы ввода, вывода, присвоение

1. Общая характеристика языка программирования PASCAL

В начале 70-х годов профессор Никлаус Вирт из Швейцарии предложил новую алгоритмический язык и назвал ее именем выдающегося французского ученого Блеза Паскаля (1623 — 1662) — философа и математика, изобретателя первой в мире механической вычислительной машины, которая сохранилась до наших дней. Язык Паскаль быстро получила признание среди специалистов и пользователей.

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

Основные причины, обусловившие распространение языка, следующие:

1) наличие конструкций, позволяющих составлять структурированные программы (заметим, что такую ​​же возможность сегодня предоставляют учебный алгоритмический язык и современные версии языка Бейсик)

2) возможность оперировать с различными типами данных, которой не имеют другие языки;

3) наличие операторов, процедур и развитых библиотек, позволяющих составлять эффективные программы.

Различают несколько стандартов и вариантов языка: авторский, ISO, ANSI / IEEE и другие. Наиболее распространенный есть вариант языка, реализованный фирмой Борленд в средах программирования Турбо Паскаль версий 5.5, 6.0, 7.0 и т. В стандартах языка есть немало недостатков: перегруженность объявлениями, описаниями и правилами, несовершенство некоторых операторов (например, оператора CASE) и механизмов обмена значениями между программой и процедурами, отсутствие средств реализации модульного построения программы, средств для графических построений и тому подобное. Этих недостатков не имеют версии языка Турбо Паскаль, общее описание которых приведено в этой части.

Элементы языка и структура программы. Конечно тексты состоят из предложений, а программа — с синтаксических конструкций, называются операторами (командами, указаниями, предложениями). Операторы строятся из неделимых элементов языка: слов, цифр, символов, операций и тому подобное. Слова делятся на служебные, стандартные имена и имена, которые пользователь дает разным объектам.

Служебные (зарезервированные) слова имеют постоянное назначения. В этой части их записывать большими буквами. Это такие слова:

AND — и

ARRAY — массив

BEGIN — начало

CASE — выбор

CONST — стали

DIV — деление нацело

DOWNTO — вниз к

ELSE — если

END — конец

FILE — файл

FOR — для

FUNCTION — функция

GOTO — перейти к

IF — если

IN — в

LABEL — отметка

MOD — остаток

NIL — ноль

NOT — нет

OF — с

OR — или

PASKED — сжатый

PROCEDURE — процедура

PROGRAM — программа

RECORD — запись

REPEAT — повторять

SET — множество

THEN — то

TO — до

TYPE — тип

UNTIL — пока

VAR — переменные

WHILE — пока и другие

Рассмотрим стандартные имена. Стандартные имена (стандартные идентификаторы) обозначаются:

1) Названия типов: Boolean, char, integer, real, text и тому подобное;

2) Названия постоянных: False, true, maxint, pi и тому подобное;

3) Названия функций: Abs, arctan, chr, cos, eof, exp, in, odd, ord, pred, round, sin, sgr, sgrt, succ, trunc и тому подобное;

4) Название процедур: Read, readln, write, writeln и тому подобное;

5) Названия стандартных файлов: Input, output и др.

Имена (идентификаторы), которые пользователь дает объектам: программам, процедурам и переменным записывают с помощью больших и малых букв, цифр и символа «_».

Первым символом является буква. Желательно, чтобы имена были содержательными.

Теперь рассмотрим структуру программы. Программа состоит из Заголовка, разделов, описаний и объявлений и раздела операторов:

PROGRAM <Название программы> (input, output)

<Разделы описаний и объявлений>

BEGIN

<Раздел операторов>

END.

Первое предложение — это название программы. Название программы дает пользователь. Здесь PROGRAM — служебное слово, а input (ввод), output (вывод) — имена, обязательные в стандартном языке. В Турбо-средах эти два слова и скобки можно не писать. Кроме того, обязательным является весь заголовок программы.

Символ «,» используют для разграничения синтаксических конструкций, а один или несколько пропусков — для разграничения слов в конструкциях. После слова BEGIN и перед END символ «,» не пишут. Программа заканчивается точкой.

В простейших программах разделов описаний и объявлений может не быть.

Пример 1.Рассмотрим программу Pryklad для вывода на экран чисел 5 и 10 в отдельных строках.

PROGRAM Pryklad (input, output)

BEGIN

Writeln (5);

Writeln (10)

END.

Здесь Writeln (писать) является оператором вывода на экран дисплея результатов, в нашем случае чисел 5 и 10.

2. Раздел описаний и объявлений. Раздел объявления переменных.

Разделы описаний и объявлений состоят из разделов объявлений отметок и постоянных, раздела описаний типов данных, раздела объявления переменных, раздел описаний процедур и функций пользователя. Соответствующие объявления и описания (разделы) начинаются из служебных слов:

LABEL — для объявлений отметок;

CONST — для объявлений постоянных;

TYPE — для описаний типов;

VAR — для объявления переменных

PROCEDURE — для описаний подпрограмм-процедур;

FUNCTION — для описаний подпрограмм функций.

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

В языке Паскаль все переменные должны быть объявлены с указанием типа переменных. Поэтому раздел объявления переменных следует считать одним из важнейших. Он имеет вид

VAR

<Список 1 имен переменных> <название типа 1>;

<Список n имен переменных> <название типа n>;

Пример 2.Опишем переменные А и В как цели, а Ploshcha и Suma как настоящие:

VAR

А, В: integer;

Ploshcha, Suma: real;

Здесь Integer (целый) и Real (действительный) соответствующие имена типов переменных.

Раздел операторов. Последовательность выполняемых операторов располагают между служебными словами BEGIN и END:

BEGIN

<Оператор 1>;

<Оператор 2>;

. . .

<Оператор n>;

END.

Задача 1.Вычислить длину окружности И площадь круга s по заданным радиусом r.

Метод решения известен: = 2 R; s = R 2.

Раздел операторов в соответствующей программе будет выглядеть

Readln (r)

Pi = 3.1415;

= 2 * pi * r;

S = pi * r * r;

Writeln ( , s);

Здесь Readln (читать) — оператор ввода данных с клавиатуры. Далее записано три оператора присвоения и оператор вывода результатов на экран.

3. Оформление и выполнение программы. Раздел объявления постоянных.

Существенных ограничений по оформлению программы нет. Программа — это последовательность символов, и ее можно записать различными способами. Важно, чтобы программа была понятной для читателя. В одной строке можно располагать несколько объявлений, описаний или операторов. Части описаний или операторов можно переносить из одной строки в другой, но не следует разрывать слова, стали, составленные символы <=,> =, <> и тому подобное. Чтобы программа была понятной и наглядной, рекомендуют следующее:

1) располагать ограниченное количество объявлений, описаний и операторов в одной строке;

2) делать отступления от начала строки ниже названий разделов, слов BEGIN и в некоторых других случаях (рассмотрим далее)

3) писать комментарии к программе.

Комментарии записывают в специальных скобках: (* комментарий *), а для языка Турбо Паскаль еще в фигурных скобках {комментарий}.

Рассмотрим задачу 1. Составим программу для вычисления длины окружности и площади круга с заданным радиусом.

PROGRAM Oformlennia (input, output)

CONST pi = 3.1415; {Объявления постоянной}

VAR {объявления переменных}

Radius: integer; {Радиус}

Dov, Ploshcha: real; {Длина, площадь}

BEGIN

Readln (Radius) {Ввода значения радиуса}

Dov = 2 * pi * Radius; {Вычисление длины окружности}

Ploshcha = pi * Radius * Radius; {Вычисление площади круга}

Writeln (Dov, Ploshcha) {вывод результатов}

END.

Проанализируем выполнение программы на персональном компьютере в среде Turbo Pascal. Значение постоянной Ре задан в разделе объявления постоянных. Объявление переменных позволяют зарезервировать нужное количество ячеек памяти для хранения значений одной целой и двух действительных переменных. Первым выполняется оператор ввода данных. Наступает пауза, во время которой нужно ввести с помощью клавиатуры значение радиуса (пусть этим значением является число 5), например, так: нажимаем клавишу 5 и клавишу ввода. На экране дисплея получаем результаты 3.1415000000Е + 01 7.853750000У + 01.

Первое полученное число — это значение длины окружности, а второе — площади круга. Результаты выполнения программы будут более наглядными, если опера тор вывода записать в таком виде:

Writeln ( ‘Длина =’, Dov: 7: 3, «Площадь = ‘, Ploshcha 7: 3).

Выполним программу еще раз. На экране получим:

Длина = 31.415 Площадь = 78.537.

В операторе Writeln цифры 7 и 3 означают, что для изображения значений Dov и Ploshcha будет предоставлено семь десятичных позиций, из них три — на изображение дробных частей чисел. Наглядность достигается путем вывода на экран нужных текстов. В списке параметров оператора Writeln такие тексты записывают в кавычках типа апостроф:

«Длина = ‘и тому подобное.

Чтобы раздел операторов был компактным и наглядным, следует использовать стали, значение которым предоставляют в разделе оголощення постоянных CONST. Такие стали называются Именуемыми.

Раздел объявления постоянных имеет следующую структуру:

CONST

<Имя постоянной 1> = <значение постоянной 1>;

. . .

<Имя постоянной n> = <значение постоянной n>;

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

4. Стандартные функции.

Элементарные функции, такие, как синус, косинус, квадратный корень, логарифм и другие, часто используются в различных задачах и вычислениях. Поэтому язык Паскаль имеет простые средства записи элементарных, или, как их называют, стандартных функций. При этом пользователю-программисту не обязательно знать, как исчисляется стандартная функция, ему достаточно правильно записать ее вид.

Правила записи стандартных функций:

1.  Имя функции записывается буквами латинского алфавита. Имя состоит не более чем из шести букв.

2.  Аргумент функции записывается в круглых скобках после имени функции.

3.  Аргументом функции может быть константа, переменная или арифметическое выражение.

Над аргументом Х Целого типа определены следующие стандартные математические функции:

Sqrt (X) Квадратный корень из Х
Sqr (X) Возведения в квадрат Х
Abs (X) Абсолютное значение аргумента Х
Ln (X) Вычисления натурального логарифма Х
Log (X) Вычисления десятичного логарифма Х
Exp (X) Вычисление экспоненты Х
Sin (X) Вычисления синуса Х
Cos (X) Вычисление косинуса Х
Arctan (X) Вычисление арктангенса Х
Pred (X) Дает предварительное перед Х целое число
Succ (X) Дает следующее после Х целое число
Odd (X) Дает результат логического типа: true, если Х нечетное число, false — если четное.
А б = е б * Lnа

Пример 1.Пусть Х имеет значение 23. Тогда pred (X) дает 22 succ (X) дает 24 odd (X) дает true.

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

Trunc (X) Отбрасывается дробная часть аргумента;
Round (X) Происходит округления до ближайшего целого.

Пример 2.Пусть переменная Х имеет значение 2,52. Тогда trunc (X) = 2, a round (X) = 3. Если Х = -2,52, то trunc (X) = 2, a rounds (X) = -3.

Рассмотрим функции, предназначенные для обработки Символьных данных. Пусть S обозначает символьное данное: символьную постоянную или переменную I — числовое данное. Рассмотрим функции pred (S), succ (S), ord (S), и chr (I):

Pred (X) Дает предварительный перед S символ из алфавита;
Succ (X) Дает следующий после S символ;
Ord (S) Дает порядковый номер символа S в алфавите;
Cchr (I) Дает символ имеет номер И.

Во алфавиту понимают таблицу кодов ASCII.

Пример 3.Рассмотрим функции

Pred ( ‘B’) дает ‘A’; Succ ( ‘B’) ‘дает C’;
Ord ( ‘B’) дает 66; Chr (66) дает ‘B’.

Над данным логического типа определенные функции pred, succ и ord. Значение false и true рассматривают как упорядоченный набор значений, состоит из двух элементов. Поэтому

Pred (true) дает false;
Succ (false) дает true;
Ord (false) дает 0;
Ord (true) дает 1.

Нумерация элементов упорядоченных данных начинается с нуля.

Выражения.

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

1) NOT

2) * /, DIV, MOD, AND (операции типа умножения)

3) +, -, OR (операции типа сложения)

4) =, <> <<=,>,> = (Операции отношения)

Операции одного старшинства выполняются последовательно слева направо. Если надо изменить указанный порядок операций, то используются круглые скобки.

Приведем примеры некоторых выражений:

1.  sqrt (2 * sqr (x) + 1) — 3 * sin (x) / (x + y) + exp (y + ln (x)).

Здесь для операции возведения в степень использовано соотношение

X y = e y ln x.

2.  (-B + sqrt (b * b — 4 * a * c)) / (2 * a)

3.  (X> 1) AND (x <2).

5.Операторы присваивания

Оператор присваивания имеет вид

Имя переменной = выражение

Переменная и выражение должны быть одного типа. Исключение составляет случай действительной переменной, когда выражение может быть и целого типа.

Если, например, в программе есть описание

VAR a, b, c, beta: real;

N, m: integer;

C1, c2: char;

P1, p: boolean;
то синтаксически правильными будут операторы:

Beta = (-b + sqrt (sqr (b) — 4 * a * c)) / (2 * a)

C1 = ‘A’; с2 = ‘+’; m = ord (c1) + ord (c2)

P = (n> 0) AND (n <= 10)

P1 = true

Присваивания n = ai c1 = p — ложные.

5 .2.Операторы ввода

Для ввода данных используют операторы

Read (список переменных)
или

Readln (список переменных)

Заметим, что read и readln в языке программирования Паскаль не является операторами в обычном понимании, а обращение к стандартным процедурам ввода.

Например,

Read (a, b, c)

При выполнении оператора из входных данных (из стандартного файла input) будет взято три последовательных значения, преобразованы в соответствующие внутренние представления и присвоены переменным a, b, c.

Если стандартным устройством ввода является клавиатура, то, выполняя оператор read или readln, ЭВМ переходит в состояние ожидания ввода информации. Необходимые значение приобретают с клавиатуры. Числовые значения отделяются друг от друга по крайней мере одним пробелом. Если читаются символьные данные, то каждая буква представляет сама себя и пропуски воспринимаются как символы. Набранные значения вводятся в память ЭВМ после нажатия клавиши ввода. После выполнения команды ввода переменным, имена которых указаны в списке команды, будут присвоены соответствующие значения.

Например, при наличии в программе описания

VAR a, b: real;

K, l: integer;
и оператора

Read (a, b, k, l)
входные данные можно представить следующим образом:

2.35 — 5.01 — 8 12 мая

Выполнение оператора ввода в этом случае равносильно выполнению четырех операторов присваивания:

А = 2.35; b = 5.01e — 8; k = 12; l = 5

Оператор readln, как и read, вводит данные (из стандартного файла input), но после выбора необходимого количества данных осуществляет переход на начало следующей строки. Если, например, надо последовательно выполнить операторы

Readln (a, b) read (k, l)
и на клавиатуре набрать данные

2.35 — 5.01 — 8 12 мая

То после введения двух первых значений (2.35 и -5.01Е — 8) курсор перейдет на новую строку и значение для kil введены не будут.

Для выполнения оператора read (k, l) значения 12 и 5 надо набирать в новой строке:

2.35 — 5.01 — 8 ¿

12 Мая ¿

Для последовательного выполнения операторов

Read (a, b) read (k, l)
данные следует набирать так:

2.35 — 5.01 — 8 ¿ 12 Май ¿

Если список в операторе readln отсутствует, то ввод данных не происходит и только после нажатия клавиши ввода осуществится переход к новой строке.

5.3. Операторы вывода

Вывод информации осуществляется операторами (точнее процедурами)

Write (список элементов вывода)
или

Writeln (список элементов вывода)

Элементами выведения выражения, в частности, переменные или константы. Тексты в кавычки.

Выполнение оператора write автоматически не ведет к выводу в новой строке. Чтобы осуществить переход к новой строке, используется оператор writeln. Правила для него такие же, как и для оператора write, за исключением того, что после вывода всех элементов списка выводной устройство переводится на начало следующей строки. оператор

Writeln
который не содержит список элементов вывода, только обеспечивает переход к новой строке. Если к выполнению оператора курсор находился в начальной позиции строки, то после его выполнения обеспечивается пропуск строки. Очевидно, операторы

Write (a, b, c)

Writeln
равносильны оператору

Writeln (a, b, c)

Перед вводом данных рекомендуют выводить на экран подсказку о том, что именно следует ввести, например, так:

Write ( ‘введите значение радиуса r:’); readln (r)

Пример 1. Рассмотрим операторы вывода данных:

Write (А, В, С)

Write ( ‘А =’, а, ‘В =’, В, «С = ‘, С)

Write ( ‘А =’, А: 7: 2, «В = ‘, В: 3,’ С = ‘, С: 6: 4);

В случае первых двух операторов для изображения значений переменных А, В, С предоставляем стандартное число позиций (например, 18), а в случае последнего данные выводим так: для значения переменной А предоставляем семь позиций, из них две для изображения дробной части числа; для значения переменной В — три позиции, а для С — шесть позиций, из них четыре для дробной части числа. Пусть переменные получили следующие значения: А = -6.724, В = 25 С = 3,14159. Выполнение третьего оператора даст на экране следующие результаты:

А = -6.72 В = 25 С = 3,1416

[Всего голосов: 3    Средний: 5/5]

Читать  Лекция Паскаль 2 – настройка компонентов и форм, изменение их свойств