Основы языка программирования Паскаль Содержание: Алфавит языка Типы данных Порядок вычисления выражений Константы Структура программы Переменные Операторы вывода Стандартные функции Операторы ввода Знаки операций Логические операции Выражения Запись выражений Алфавит языка 1. Латинские буквы: A, B, C, …, Z; a, b, c, …, z. Прописные и строчные буквы не различаются. 2. Арабские цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 3. Специальные символы: | { } | [ ] | ( ) | ‘ | := | ; | : | . | ^ | @ | # | $ |. 4. Знаки операций. 5. Служебные слова. Типы данных 1. Целые типы. Тип Диапазон Формат Размер Integer -32768…32767 Знаковый 2 байта Longint Знаковый 4 байта Byte - 2147483648 … 2147483647 0 … 255 Без знака 1 байт Word 0 … 65535 Без знака 2 байта Shortint - 128 … 127 Знаковый 1 байт 2. Действительный (вещественный) тип Real Под хранение значений действительного типа отводятся ячейки длиной в 6 байт. В программе может записываться в двух формах: а) естественная форма (в виде последовательности цифр со знаком или без, в которой целая и дробная част разделены точкой): +13.167; -0.002; 1112.5; б) форма с порядком (форма с плавающей точкой) имеет вид mEp, где m – мантисса, р – порядок, Е – десятичное основание степени: 3.123Е- (3,123 10-1), 1234Е12 (1234 1012). 3. Символьный тип Char Для хранения данных символьного типа выделяются ячейки длиной в 1 байт. В программе записывается как любой символ клавиатуры, заключённый в апострофы: ‘ 1 ‘ ; ‘ d ‘ ; ‘ & ‘. 4. Логический тип Boolean Для хранения данных логического типа выделяются ячейки длиной в 1 байт. В программе записывается: True – истина, False – ложь. 5. Строковый тип String Для хранения данных строкового типа отводятся ячейки длиной 256 байт. Первый байт содержит признак строки, поэтому длина строки не должна превышать 255 символов. В программе записывается как последовательность символов, заключённых в апострофы: S:= ‘ информатика ’. Константы Константы – это величины, которые в ходе выполнения программы не изменяют своё значение. Константы могут задаваться: • в явном виде (тогда вид определяет тип константы) 17 – Integer; 3.14 – Real; ‘h’ – Char; ‘Turbo Pascal’ – String; True – Boolean; • в виде поименованной константы (тогда имя константы должно быть описано и указано её значение) C1 = 17; C2 = 3.14; C3 = ‘h’. Переменные Переменные используются для обозначения величин, которые изменяются в ходе выполнения программы. Для обозначения переменных используются имена (идентификаторы). В качестве имён можно использовать последовательность латинских букв, цифр, знак подчёркивания. Имена должны начинаться с буквы. Max; Summa_1; Y_34 Переменные бывают простые (одному имени соответствует только одно значение) и структурированные (одному имени соответствует совокупность значений). Стандартные функции Имя Действие Тип аргумента Тип результата Арифметические функции PI Пи ABS(X) |X| Integer, Real Integer, Real SQR(X) X2 Integer, Real Integer, Real SIN(X) Sin x Integer, Real Real COS(X) Cos x Integer, Real Real EXP(X) ex Integer, Real Real LN(X) Integer, Real Real SQRT(X) Ln x x Integer, Real Real ARCTAN(X) Arctg x Integer, Real Real Real Имя Действие Тип Тип аргумента результата Функции преобразования типов ORD(X) Преобразует порядковый тип в целый Любой поряд- Integer ковый тип CHR(X) Преобразует ASCII-коды в символ Integer Char ROUND(X) Округление до ближайшего целого Real Longint TRUNC(X) Целая часть числа Real Longint Имя Действие Тип Тип аргумента результата Функции для величин порядкового типа PRED(X) Определение предыдущего значения Любой поряд- Тот же тип, что ковый тип и у аргумента SUCC(X) Определение следующего значения Любой поряд- Тот же тип, что ковый тип и у аргумента ODD(X) Проверяет величину х на нечётность Integer Boolean RANDOM [(X)] Формирует случайное число Word Задан х – Word: 0 <= Rez < x. Не задан х – Real: 0.0 <= Rez < 1.0 х – параметр, указывающий диапазон значений случайного числа Знаки операций Знак Операция Тип операндов Тип результата Арифметические функции + Сложение Целые Хотя бы один Real Целые Real - Вычитание Целые Хотя бы один Real Целые Real * Умножение Целые Хотя бы один Real Целые Real / Деление Целые или Real Real div Деление нацело Целые Целый Остаток от деления целых чисел Целые Целый mod Знак Операция Тип операндов Тип результата Операции отношения = Равно <> Не равно > Больше < Меньше >= Больше или равно <= Меньше или равно Любой сравнимый тип (оба операнда должны быть одного типа) Логический Логические операции X Y X and Y X or Y (умножение) (сложение) False False False False False True False True False True True True True False False True True False True True True False False True X xor Y not X (исключа- (отрицание) ющее ИЛИ) Порядок вычисления выражений 1. Вычисления в круглых скобках. 2. Вычисление значения функции. 3. Унарные операции (отрицание, возведение в квадрат, извлечение корня). 4. Операции умножения и деления (*, /, div, mod, and). 5. Операции сложения и вычитания (+, -, or, xor). 6. Операции отношения (=, <>, <, >, <=, >=). Задание 1. а) Записать числа в форме с плавающей точкой: 234 105; 7698.76 10-7; -67 10-1. б) Записать числа в естественной форме: 134Е-2; 67858Е-3; 56.876Е+2; 456.6Е03; -43.89Е+05. Задание 2. Вычислить: а) 27 div 4; 27 mod 4; 3 div 5; 3 mod 5; -14 div 3; -14 mod 3. б) trunc (8.999); round (8.999); trunc (-43.65); round (-43.65). в) succ (5); succ (-5); pred (5); pred (-5); succ (-23). г) 5 > 3; 11 <> 11; 90 <= 91; 12.3 – 12 >= 0.1 + 0.2; 34.8 < 34. Выражение Выражение состоит из операндов и операторов. Операндами выражений могут быть константы и переменные. Операторы находятся между операндами и обозначают действия, выполняемые над операндами. При записи выражений между операндом и оператором, за исключением операторов div и mod, пробел можно не ставить. Операторы имеют разный приоритет. Приоритет операторов влияет на порядок их выполнения. При вычислении значения выражения сначала выполняются операторы с более высоким приоритетом. Если приоритет операторов одинаковый, то сначала выполняется тот оператор, который стоит левее. Запись выражений При записи выражений на языке программирования не допускаются: верхние и нижние индексы, многоэтажная запись. Для задания нужного порядка выполнения операций можно использовать скобки. При записи выражений, содержащих скобки должна соблюдаться парность скобок, т.е. число открывающихся скобок должно быть равно числу закрывающихся скобок. a b c Пример записи выражения на языке a c :b программирования: (a * b – c) / (a + c / b). Задание 3. Записать выражения на языке Паскаль: a b 4ac 2b 3a 2 x y 2 x y y1 x1 x2 y2 x1 x1 x y x y x1 x2 x1 y2 x y x y x y x y x y x y sin cos sin cos b 4ac 2a b 1 x 2 1 2 3 4 5 y x 2 x xy x y 1 1 2 x 4 Структура программы Заголовок программы Соглашения • Описание стандартных модулей • Описание меток • Описание констант • Описание переменных • Описание процедур и функций Исполняемая часть I. Заголовок программы program < имя > (входной файл, выходной файл) Входной файл – файл, содержащий данные (input); выходной файл – файл, куда записываются результаты работы программы (output). Варианты записи написания программы: 1. Без заголовка. 2. В виде Program имя программы. 3. Выше указанный (полный вариант). II. Соглашения 1. Описание стандартных модулей. Этот раздел начинается со служебного слова uses, за которым следует имя модуля. Например: uses crt; uses graph. В том случае, если необходимо подключить несколько модулей, их имена перечисляются через запятую. 2. Описание меток. Раздел начинается служебным словом label. В данном разделе описываются метки, по которым будет работать оператор безусловного перехода. В качестве меток обычно выступают целые числа. Например: label 1, 2, 3. 3. Описание констант. В этом разделе описываются величины, значения которых не будут изменяться при исполнении программы. Например: const a = 10; b = 8. 4. Описание переменных. Раздел начинается со служебного слова var, за которым следуют имена переменных с указанием их типа. В случае, если есть несколько переменных одного типа, то они перечисляются через запятую. Например: var a: integer; b, c, d: real. 5. Описание процедур и функций. В данном разделе описываются подпрограммы. III. Исполняемая часть Исполняемая часть начинается со служебного слова begin и завершается служебным словом end, после которого ставится точка. Между этими словами пишутся операторы, процедуры и другие элементы, управляющие работой программы. Оператор – указание, которое определяет характер и последовательность выполнения действий по обработке данных, записанное в установленной форме. В одной строке можно записывать несколько операторов, разделяя их точкой с запятой. Процедура – стандартный алгоритм обработки информации, состоящий из имени, описания и операторов, реализующих процедуру. В исполняемой части программы указывается только имя процедуры. Оператор вывода 1. Оператор вывода Write (b1, b2,…, bn), где b1, b2,…, bn – выражения типов: Integer, Char, Real, String, Boolean. При выполнении этого оператора значения выводятся в одну строку. Для удобства восприятия вывода задаётся маска в виде: Write (a : n : m), где а – выводимое значение, n – число позиций, отводимых под значение а, m – число позиций, отводимых под дробную часть. Для более красивого вывода можно использовать запись: Write (‘x1=‘, x1 : 8 : 3, ‘ ‘ : 10, ‘x2=‘, x2 : 8 : 3), где 10 – количество пробелов между значениями. 2. Оператор вывода Writeln (b1, b2,…, bn) отличается от первого тем, что после вывода последнего значения курсор переводится в начало следующей строки экрана. Оператор ввода 1. Оператор ввода значений с клавиатуры имеет вид Read (a1, a2,…, an), где a1, a2,…, an – имена переменных. Вводимые значения не могут быть логическими. Один оператор Read позволяет получить значения нескольких переменных. При этом числа должны быть набраны в одной строке и разделены пробелами. 2. Оператор ввода Readln (a1, a2,…, an) отличается от первого тем, что после ввода последнего значения оставшаяся часть строки теряется и следующий оператор Read или Readln будет требовать нового ввода. Чтобы «подсказать» пользователю, какие данные ожидает от него программа, перед каждым оператором ввода следует располагать оператор Write с подсказкой. Задача 1 Составить программу «Диалог с компьютером»: Program Lin1; Var a: String; Begin Writeln(‘Я компьютер, а как зовут тебя?’); Readln(a); Writeln(‘Очень приятно,’,a); End. Задача 2 Даны числа А, В, С. Переприсвоить их значения следующим образом: А В С. Исходные данные: А=10, В=15, С=20. Результат: А=20, В=10, С=15. Program Lin2; Var A,B,C,D: Integer; Begin Writeln(‘введите значения переменных А, В, С’); Read(А,В,С); D:=C; C:=B; B:=A; A:=D; Writeln(‘A=‘,A,’B=‘,B,’C=‘,C); End. Процедуры В составе Turbo Pascal есть специальный модуль с именем CRT, в котором располагаются процедуры и функции для оформления вывода данных: Clrscr (clear screen) – очистка окна вывода. Gotoxy(m,n) – установка курсора в позицию m строки n. Левый верхний угол (1, 1). Textbackground(c) – установка цвета фона; с – число, определяющее цвет (от 0 до 7). Textcolor(c) – установка цвета принимать значения от 0 до 15. шрифта, с может Delay(n) – приостановка выполнения программы на n миллисекунд. Основные цвета Название Цвет Но мер Название Цвет Но мер Black Чёрный 0 DarkGray Серый 8 Blue Синий 1 LightBlue Голубой 9 Green Зелёный 2 LightGreen Св-зелёный 10 Cyan Бирюзовый 3 LightCyan Св-бирюзов 11 Red Красный 4 LightRed Св-красный 12 Magenta Сиреневый 5 LightMage nta Светлосиреневый 13 Brown Коричневый 6 Yellow Жёлтый 14 LightGray Белый (светло-серый) 7 White Ярко-белый 15