Тело программы (блок) состоит из шести разделов:
— раздел процедур и функций;
Нарушать очерёдность нельзя.
Любой из разделов (кроме операторов) может отсутствовать.
label (служебное слово) за которым следует перечень меток разделённый запятыми
Пример 3, 11, 48, 2;
Раздел описания констант
const (служебное слово)
Определение каждой константы содержит идентификатор константы, знак равенства, и значение.
Например: e=2, 718281828;
Раздел описания типов
type (служебное слово)
В работе чаще используются стандартные типы данных:
byte – целый (от 0 до 255)
integer — целый (от -32768 до 32767)
longint – (от –2147483648 до 2147483647)
real — вещественный (от 2, 9Е-39 до 1, 7Е+38)
char — символьный (любой один символ. Например: f или №)
string — строковый (любой текст от 0 до 255 символов)
Если возникает необходимость в создание своих типов данных, то это осуществляется в разделе описания типов следующим образом:
Структура программы на языке Pascal
за идентификатором типа записывается знак равенства (и через запятую перечисляются те значения, которые будет принимать переменная данного типа);
seasans=(spr, or, kan, pak)
Интервальные типы: можно объявить новый тип так, что он будет частью упорядоченного интервала
Раздел описания переменных
var (служебное слово)
В данном разделе должны быть перечислены все переменные, используемые в программе с указанием их типов. Идентификаторы переменных одного типа можно записывать через запятую.
Раздел процедур и функций
Сам раздел не имеет служебного слова. В разделе может находиться несколько процедур или(и) функций, но каждая процедура начинается со слова: Procedure; каждая функция начинается словом: Function.
Процедура и функция по своей структуре подобны программе.
Раздел операторов (обязательный)
Вопросы для повторения:
- Существуют ли операторы языка Pascal записанные русскими буквами?
- В какой форме изображаются действительные числа в Pascal?
- Из каких частей состоит программа на Pascal?
- Какие разделы могут входить в блок программы?
- Какие разделы не являются обязательными при написании программы?
- Как в тексте программы определить, что начался раздел меток?
- Как в тексте программы определить, что закончился раздел констант?
- Назовите стандартные типы данных.
Задания для самостоятельной работы:
1. Переведите числа в естественную форму записи:
a) 4.09Е+02 б) 7.802Е+01 в) 3.3Е-02
г) 2.97Е-03 д) 5.29Е+00 е) 2.03Е+05
2. Переведите числа в полулогарифмическую форму записи:
a) 234000 б) 0.0045 в) 678
г) 7.302 д) 4090 е) 0.0306
3. Какое из чисел больше: a) 4.67Е-01 б) 0.0467.
4. Какое из чисел меньше: a) 9.21Е+04 б) 9210
5. К каким типам можно отнести перечисленные ниже данные:
a) 200 б) -17 в) 2305
г) 5.89 д) 56890 е) -56890
Pascal ABC. Структура программы
ж) -32767 з) -32769 и) 2147483648
н) 1945год о) -31009 п) byte
Основные математические функции.
Моя первая программа.
Арифметические операции.
В языке Pascal используется следующие арифметические операции:
арифметическая операция (а=14, b=4) результат
— сложение (+) S: =a+b S=18
— вычитание (-) S: =a-b S=10
— умножение (*) S: =a*b S=56
— деление (/) S: =a / b S=3.5
— целочисленное деление S: =a div b S=3
— остаток от целочисленного деления S: =a mod b S=2
Нет возведения в степень. Если степень целая, её заменяют умножением: а 3 ↔ S: =a*a*a
Для возведения числа в произвольную степень используется следующее соотношение:
x y =e ln(x ) =e ylnx тогда x y =exр(y*ln(x))
Основные математические функции.
sqr(x) | — возведение X в квадрат | (x 2 ) |
sqrt(x) | корень квадратный из X | ( ) |
abs(x) | модуль от X | ( ) |
int(x) | целая часть X | (результат — вещественное число) |
trunc(x) | целая часть X | (результат — целое число) |
round(x) | округляет число X до целого | (результат — целое число) |
frac(x) | дробная часть от X | |
pi | выдаёт число 3.1415926….. | (19 знаков после запятой) |
sin(x) | синус X | (sin(x)) |
cos(x) | косинус X | (cos(x)) |
arctan(x) | арктангенс X | (arctg(x)) |
exp(x) | возведение числа е=2.7183 в степень X | (е х ) |
ln(x) | натуральный логарифм числа X | (ln(x)) |
random(x) | выбирается случайное число от 0 до X-1 | (целое) |
random | выбирается случайное число от 0 до 1 | (вещественное) |
Операции отношения.
> = — больше или равно
Оператор присваивания.
Знак: = называется оператором присваивания.
Например Y: = 5; X: =sqr(Y) + 3
Это означает следующее: переменной Y присвоить значение 5, а переменной X присвоить значение 5 2 +3=28.
Идентификаторы.
Идентификаторы в Pascal — это имена констант, переменных, меток, объектов. Идентификаторы могут иметь произвольную длину, но значащими являются только первые 63 символа.
Идентификатор всегда начинается буквой (или знаком подчёркивания), за которой следуют буквы и цифры. Пробелы и специальные символы алфавита не могут входить в идентификатор.
Оператор вывода информации.
Для вывода информации на экран компьютера используется оператор: write( ) или writeln( )
В скобках записываются данные, которые необходимо вывести на экран.
Вопросы для повторения:
6. Чем отличается операция /от операции div?
7. Существует ли в Pascal операция возведения в степень?
8. Что должно быть записано слева от оператора присваивания?
9. Что может быть записано в правой части оператора присваивания?
10. Может ли слово Apple являться переменной?
11. Что такое переменная?
12. Что такое идентификатор?
13. Почему знак умножения необходимо записывать явно (нужно писать f*w, а не fw)?
Задания для самостоятельной работы:
1. Вычислите устно:
a) a: = 78 mod 5 б) b: =97 div 9 в) c: = 13 mod 7
г) kl: = (50 div 4) mod 5 д) fl: = 82 mod (30 div 7)
2. Вычислите устно:
a) z: = sqr(9) б) w: =sqrt(9) в) x: = abs(-7)
г) y1: = int(5.7) д) y2: = trunc(5.7) e) y3: = round(5.7)
ж) k: = frac(5.7) з) sl: = 2+pi и) * pr: = sqr(sqrt(8))
3. Какие из предложенных ниже записей являются идентификаторами, а какие нет?
a) uд б) w9 в) 9w г) y(17)
д) alpha e) y#kl ж) _kl з) f_h
и) my prog к) div л) date_27 м) MyNameSerg
4. Загрузите Pascal. Введите записанную ниже программу в компьютер. Просмотрите, какие разделы присутствуют в программе. Выполните программу.
s=’Моя первая программа’;
5. Введите записанную ниже программу в компьютер. На основании этого примера (дописывая и удаляя ln) попробуйте разобраться в чём отличие между операторами write( ) и writeln( )
6. *Составьте программы для вычисления следующих формул:
а)z=3+x 2 -3x 3 б) d=x (sin x + cos(x 2 ) + |x|)
в) l = 2 π r г) k=1 + |y-x| 3 + |y-x|/(x+1)
Источник: lektsia.com
1.2. Структура программы на языке pascal Программа на pascal состоит из двух частей: описательная часть и собственно программные операторы (исполняемая часть – список действий).
Описательная часть содержит описания всех данных, процедур и функций, используемых в программе. Эта часть программы необходима для того, чтобы в компьютере были выделены участки машинной памяти под каждый упоминаемый в программе объект. В языке PASCAL существует обязательное правило – все используемые в программе имена должны быть описаны до их употребления.
Исполняемая часть содержит операторы, которые обрабатывают данные. В программе алгоритма Евклида строка
Var m, n : integer;
– это описательная часть программы, она сообщает о том, что в программе использованы два имени – m и n, каждое для соответствующей переменной, принимающей только целочисленные значения. Это те данные, с которыми работает программа. Вся остальная часть программы – исполняемая, в ней описываются действия над описанными данными. Исполняемая часть начинается со служебного слова begin и заканчивается словом end, после которого обязательно должна стоять точка.
Тема 2. Данные и выражения простых типов
Программа, написанная на языке PASCAL, оперирует с данными. Одни данные являются входными (исходные данные), другие – выходными (результаты счёта).
Данные делятся на две разновидности: константы и переменные.
Константы – это те данные, значения которых не меняются в процессе выполнения программы, в то время как переменные могут менять свои значения. Любой переменной в программе назначается имя (идентификатор).
Данные делятся на несколько типов. Тип данных определяет:
— множество значений, которые может принимать константа или переменная;
— форму представления данных в ЭВМ;
— совокупность операций, допустимых над данными.
Рис. 2.1. Иерархия простых типов данных
Язык PASCAL имеет развитую систему типов, которые можно разделить на простые и сложные. Каждое данное простого типа содержит только одну компоненту – одно число или один символ. Данные сложных типов могут содержать несколько компонент простого типа. В этой теме рассмотрим только простые типы данных (рис. 3.1), главным образом – стандартные.
Описание стандартных типов данных заложено в PASCAL, т.е. они уже известны компьютеру, и их не надо как-то дополнительно описывать, достаточно упомянуть в программе их названия.
К нестандартным типам данных относится перечислимый тип. Этот тип определяет сам пользователь путем перечисления всех его возможных констант, значения которых могут принимать переменные этого типа.
2.1. Данные целого типа
Константы целого типа представляют собой целые числа, которым может предшествовать знак ’+’ или ’–’. Знак ’+’ можно опустить. Например, +386; –15; 12486 – константы целого типа.
Кроме общепринятой математической формы записи констант с непосредственным использованием из значений в выражениях, применяются и именованные константы. Они имеют имя и должны быть описаны в разделе описаний программы. Описание именованных констант имеет вид:
сonst имя_константы = значение_константы;
(const – константа). Например
const c = 2025;
В программе имя константы можно использовать для обращения к её численному значению, что делает программу более удобной для понимания и внесения исправлений. Например, выражение с – 25 имеет значение 2000.
Переменные целого типа могут принимать только целочисленные значения и должны быть описаны в разделе описаний программы при помощи служебных слов integer ([интедже] – целый), longint ([лонджинт] – длинный целый), и других. Различие перечисленных типов целочисленных данных заключается в диапазоне допустимых значений. В большинстве случаев будем использовать тип integer, для которого диапазон допустимых значений от -32768 до 32767 (32768 = 2 11 ). Тип longint применяется для больших чисел. Максимальное число этого типа – 2 31 = 2147483648 2 млрд.
Описание переменных начинается со служебного слова var, за которым располагается последовательность имен переменных, разделенных запятыми. Список имен заканчивается двоеточием, после которого указывается тип integer. После слова integer обязательно ставится знак ’;’:
Источник: studfile.net
Структура программ на Паскале
Программы в Турбо-Паскале пишутся по определенной структуре, которая соответствует схеме:
Каждый раздел заканчивается точкой с запятой. В конце программы ставится точка.
Список модулей. Модули содержат библиотеки вспомогательных программ: вычисление стандартных функций, поддержка графического режима экрана и др. Модули бывают стандартные и созданные программистом. Стандартные модули Турбо-Паскаля записаны в файле turbo.tpl, кроме модуля Graph, который находится в файле graph.tpu.
Раздел описания констант. В принципе, любую программу можно написать без использования имен констант, применяя вместо них числа. Но иногда использование имен констант целесообразно, т. к. их имена, подобранные в соответствии со смыслом выполняемых действий, облегчают чтение программы. Кроме того, использование имен констант облегчает проведение изменений в программе. В этом случае достаточно изменить значение константы в разделе описания. В общем виде раздел описания констант выглядит так:
Const =;. ; =; Раздел описания типов. В этом разделе описывают нестандартные типы данных, образованные программистом.
Раздел описания меток. Перед любым оператором можно поставить метку, что позволяет перейти к нему из любого места программы оператором goto. Например:
Использовать метки без крайней необходимости не следует, т.к. это усложняет чтение и понимание программы.
Раздел описания переменных. Каждая встречающаяся в программе пере-менная должна быть описана. В общем виде раздел описания прееменных вы-глядит так:
В разделе описания переменных обычно описывают также массивы. Пример описания одномерного массива из пятидесяти элементов:
Процедуры и функции
При решении ряда задач необходимо повторять одни и те же действия при различных значениях параметров в разных частях программы. Для этого используют подпрограммы – процедуры и функции. Главное различие между ними в том, что функция может быть использована в выражении, например:
х: =sin(а); Процедура может быть вызвана, например: write(a);
Процедуры и функции представляют собой важный инструмент Турбо Паскаля, позволяющий писать хорошо структурированные программы
Процедура – это особым образом оформленный фрагмент программы, имеющий собственное имя. Упоминание этого имени в тексте программы приводит к активизации процедуры и называется ее вызовом.
Функция отличается от процедуры тем, что результат ее работы возвращается в виде значения этой функции, и, следовательно, вызов функции может использоваться наряду с другими операндами в выражениях.
Процедуры и функции в Паскале бывают стандартные и нестандартные, т.е. определённые пользователем. Стандартные функции и процедуры не требуют описания
Нестандартные процедуры и функции необходимо описать, чтобы компилятор мог установить связь между оператором вызова и теми действиями, которые предусмотрены в процедуре (функции). Описание процедуры (функции) помещается в разделе описаний и внешне выглядит как программа, но вместо заголовка программы фигурирует заголовок процедуры (функции).
Раздел операторов. Операторы могут быть простые и составные. Составной оператор состоит из нескольких простых операторов и ограничен операторными скобками begin и end.
Операторы присваивания имеют вид a: = b;
Например:
X: = — 0.25;A: = T + sqr (P); X: = X – 0.11;
В любом месте программы можно использовать комментарий, т.е. пояснительный текст. Он ограничивается символами < >или (* *). Комментарий игнорируется компилятором и потому влияние на программу не оказывает.
Ввод и вывод данных
Для ввода данных с клавиатуры в Паскале используют операторы вида
read(a1, a2, …, an);
readln(a1, a2, …,an);
Эти операторы приостанавливают выполнение программы до тех пор, пока с клавиатуры не будут введены значения переменных a1, a2, … an. Значения при наборе разделяются пробелом. Если есть два оператора read, данные для второго оператора будут вводиться в той же строке, что и для первого. Оператор readln обеспечивает переход курсора к новой строке.
Для вывода информации на экран в Паскале используются операторы вида
write(y1, y2,…,yn);
writeln(y1, y2,…,yn);
Оператор writeln после вывода всех значений переводит курсор на следующую строку.
Операторы вывода можно записывать в виде
write(b: m);
write(b: m: n);
Здесь b – имя переменной, m – поле для записи значения переменной, n – поле для записи дробной части.
Условный оператор
Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор — это средство ветвления вычислительного процесса.
Структура условного оператора имеет следующий вид:
где IF, THEN, ELSE — зарезервированные слова (если, то, иначе); — произвольное выражение логического типа; , — любые операторы языка Турбо Паскаль.
Операторы повторений
Используются для циклов. Циклы – это многократно повторяемые последовательности однотипных действий. Бывают циклы с известным числом повторений и с неизвестным числом повторений. Для организации цикла с известным числом повторений в Паскале служит оператор вида
FOR := ТО DO .
Здесь FOR, TO, DO — зарезервированные слова (для, до, выполнить);
Циклы с неизвестным числом повторений бывают двух видов: с предусловитем и с постусловием.
— Оператор цикла с предусловием (можно использовать в циклах с неизвестным или с известным числом повторений). Вид оператора: While b do s;
Здесь b – логическое выражение, s – тело цикла. При выполнении оператора предварительно проверяется значение логического выражения. Пока оно истинно, выполняется тело цикла, т.е. операторы циклической части. Когда оно становится ложным, происходит выход из цикла. Если с самого начала значение логического выражения ложно, тело цикла не выполнится ни разу.
— Оператор цикла с постусловием в Паскале также используется в циклах с неизвестным числом повторений и с известным числом повторений. Вид оператора: repeat s until b;
Здесь s – тело цикла, b — логическое выражение. При выполнении оператора сначала выполняется тело цикла, а затем проверяется логическое условие. Таким образом, обеспечивается, по меньшей мере, одно выполнение тела цикла. Цикл повторяется, пока логическое выражение ложно. Когда оно становится истинным, происходит выход из цикла.
Оператор выбора
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора -выражение любого порядкового типа (любого кроме типов REAL и STRING).
Структура оператора выбора такова:
Здесь CASE, OF, ELSE, END — зарезервированные слова (случай, из, иначе, конец).
Источник: poisk-ru.ru