- •Автономная некоммерческая организация высшего профессионального образования «Брянский институт управления и бизнеса»
- •Методические пособие по изучению алгометрического языка pascal
- •Оглавление
- •Введение
- •Глава 1 основные понятия .
- •Алфавит языка.
- •Основные определения языка.
- •Составные части программы.
- •Вопросы для самоконтроля
- •Глава 2 стандартные типы данных
- •Данные целого типа.
- •Вычисление об"ема шара
- •Данные действительного типа.
- •Данные логического типа.
- •Данные символьного типа.
- •`Теплоход``маяк``` или `д``артаньян`
- •Описание констант и переменных.
- •Var_имя переменной: тип;
- •Вопросы для самоконтроля
- •Глава 3 выражения.
- •3.1. Стандартные функции.
- •3.2. Арифметические выражения.
- •3.3. Логические выражения.
- •Вопросы для camokohtpoля
- •Глава 4 основы программирования простых задач.
- •4.1. Оператор присваивания.
- •4.2. Понятие о составном и пустом операторах. Назначение символа точки с запятой.
- •Простейший ввод данных.
- •5 Позиций
- •8 Позиций
- •Примеры программирования простых задач.
- •Вопросы для самоконтроля
- •5.1. Условный оператор.
- •Оператор выбора.
- •Оператор перехода.
- •Go to метка
- •Lавеl метка;
- •Label метка 1, метка 2,…, метка n;
- •5.4.Примеры программирования вычислительных процессов с разветвлениями.
- •Глава 6 организация циклических прцессов.
- •Оператор цикла с предварительным условием.
- •Оператор цикла с последующим условием.
- •Операторы циклической части программы
- •Оператор цикла с параметром.
- •Вложенные циклы.
- •Глава 7 основы ввода и вывода.
- •7.1. Оператор ввода.
- •7.2. Оператор вывода
- •Программирование циклических вычислительных процессов.
- •Вопросы для самоконтроля
- •Глава 8 Переменные типы.
- •Перечислимый тип данных.
- •Var а: (зима, весна, лето, осень);
- •Ограниченный тип данных.
- •Вопросы для самоконтроля
- •Глава 9 Сложный тип данных – массивы.
- •Понятие массива.
- •Var_имя массива: array [t1] of_t2;
- •Тип массива.
- •Упакованные массивы.
- •Понятие многомерных массивов.
- •Глава 10 Сложный тип данных – множества.
- •10.1. Множества в языке Паскаль.
- •Var _имя множества: set_of_ базовый тип;
- •Примеры программирования задач с использованием множества
- •Вопросы для самоконтроля
- •Глава 11 Сложный тип данных – записи.
- •Понятие записи.
- •Оператор присоединения.
- •Вопросы для самоконтроля
- •Глава 12 Подпрограммы.
- •Общие сведения.
- •Процедуры и функции.
- •Вопросы для самоконтроля
- •Глава 13 Файлы
- •13.1. Понятие файла.
- •13.2. Чтение файла.
- •13.3. Запись файла.
- •13.4 Чтение и запись файла
- •Вопросы для самоконтроля
Вопросы для самоконтроля
1. Какие стандартные типы вам известны?
2. В чем отличие данных действительного и целого типа?
3. Какие значения могут принимать данные логического типа?
4. Какие вы знаете логические операции?
5. Что такое операции отношения?
6. Что понимается под символьными данными?
7. Как описываются в программе константы, обозначенные именем?
8. Как описываются переменные, используемые в программе?
Глава 3 выражения.
3.1. Стандартные функции.
Элементарные функции, такие, как синус, косинус, квадратный корень, логарифм и другие, часто используются в различных задачах и вычислениях. Поэтому язык ПАСКАЛЬ имеет простые средства записи элементарных или, как их называют, стандартных функций. При этом пользователю-программисту не обязательно знать, как вычисляется стандартная функция, ему достаточно правильно записать ее вид.
Правила записи стандартных функций:
Имя функции записывается прописными буквами латинского алфавита. Имя состоит не более чем из шести букв.
Аргумент функции записывается в круглых скобках после имени функции.
Аргументом функции может быть константа, переменная или арифметическое выражение.
Основные стандартные функции см. в приложении 5, где указаны типы аргумента и функции. Следует заметить, что в тригонометрических функциях синуса или косинуса аргумент может быть задан только в радианной мере. Если аргумент X дан в градусах, то для перевода его в радианы используется формула Хπ/180.
Рассмотрим некоторые стандартные функции:
SQRT(X) - вычисляет корень квадратный из аргумента X, что соответствует математической записи -√X;
SQR(X) - вычисляет квадрат аргумента X, что соответствует математической записи х2;
SIN(X) - вычисляет синус аргумента X, что соответствует математической записи sin x;
ABS(X) - вычисляет абсолютное значение (модуль) аргумента X, что соответствует математической записи |X|;
ORD(X) - определяет порядковый номер символа X, например ORD ('R') = 82 (см. приложение 2);
CHR(X) - определяет символ, стоящий по порядковому номеру X, например CHR (68)='D' (см. приложение 2);
PRED(X) - определяет предыдущий символ по отношению к X, например PRED ('М') = 'М';
SUCC(X)—определяет последующий символ по отношению к X, например SUCC ('S') ='Т'. При использовании функций PRED(X) и SUCC(X) необходимо помнить, что если в конкретной реализации языка нет для X предыдущего или последующего символа, то значение функций не определено. Аргументами этих функций не могут быть действительные данные, так как для них не существует понятие предыдущего и последующего элемента.
3.2. Арифметические выражения.
Арифметические выражения строятся из арифметических констант, переменных, функций и операций над ними. Пример арифметического выражения:
А + В *Т1/Т2-2.3*SQRT(X).
Частным случаем выражения является константа, переменная или функция.
Все данные, входящие в арифметические выражения, должны быть одного типа. Однако во многих версиях языка допускается использование в одной операции данных целого и действительного типов. Результат операции при этом будет действительного типа. Например, разрешены операции A + N или А*2, где А - переменная действительного типа, а N — целого типа.
При составлении выражений следует выполнять следующие правила:
1. Записывать все составные части выражений в одну строку. В выражениях двухэтажных и более верхние и нижние индексы не допускаются. Например, формула
a
1x1
+ b2x2
+ 5a3x3
25d – 14f
должна быть записана в виде следующего выражения:
(A1*X1+B2*X2+5*A3*X3)/(25*D-14*F).
2. Использовать скобки только одного типа — круглые. Применение фигурных и квадратных скобок в выражениях запрещается, так как они имеют особое назначение. Поэтому алгебраической записи
a {b+c[d+e(f+g)]}
в языке ПАСКАЛЬ соответствует выражение
A *(B+C*(D+E*(F+G)))
В правильно записанном выражении число открывающихся скобок всегда должно равняться числу закрывающихся скобок. При записи сложных выражений рекомендуется всегда проверять, соблюдено ли это правило.
3. Нельзя записывать подряд два знака арифметических операций. Например, выражение 3*А*B/-Z неверно. Его следует записать так:
3*А*B/(-Z).
4. Необходимо помнить, что вычисления выполняются слева направо в соответствии со старшинством операций. Самой старшей является операция вычисления значения функции, например SIN(X). Затем идут операции умножения и деления, а также целочисленные операции DIV и MOD. Операции сложения и вычитания обладают самым низким приоритетом и выполняются в последнюю очередь.
Если аргумент функции представляет собой выражение, то сначала определяется значение этого выражения. Например, в выражении
SIN (0.14 +Z)
сначала вычисляется аргумент (0.14 + Z), а затем значение функции SIN. Выражение
ART*2*T+R/T*N -S
будет выполняться в следующем порядке:
ART*2
ART*2*T
R/T
R/T*N
ART*2*T + R/T*N
ART*2*T+R/T*N - S
Если по каким-нибудь причинам требуется изменить этот порядок, то для этого можно использовать круглые скобки. Выражения в скобках вычисляются первыми. Например, в выражении S/(Q + T) сначала выполняется суммирование в скобках (Q+T), а затем только производится более приоритетная (старшая) операция деления.
Если выражений в скобках несколько и они вложены друг в друга:
А* (В + С* (D + E*(F + G))),
то сначала вычисляются выражения в самых внутренних скобках, т. е. в следующем порядке:
(F+G)
E*(F+G)
D+E*(F+G)
C*(D+E*(F+G))
B+C*(D+E*(F+G))
A*(B+C*(D+E*(F+G)))
Если операции, следующие непосредственно одна за другой, обладают одинаковым старшинством, то они выполняются в таком порядке, ; в каком записаны. Например, в выражении А В/С D/E последовательность операций будет такой:
1)А*В
2)A*B/C
3)A*B/C*D
4)А*В/С*D/E
