1 Программирование Основы программирования на Turbo Pascal. Паскаль (Pascal) — учебный инструментальный язык программирования вычислительных машин и персональных компьютеров. Система программирования Turbo Pascal представляет собой интегрированную среду, включающую в себя: Экранный редактор. Компилятор входного языка. Редактор связей. Интерактивный символьный отладчик. Справочную систему. Запуск Turbo Pascal производится командой turbo в командной строке. Загрузка файла программы prog.pas: turbo prog.pas. Общая структура программы в Turbo Pascal. {Комментарий на русском языке} Program Name; {Это-заголовок программы - не более 256 лат. букв, цифр} {Раздел описаний} USES — Список используемых библиотек или модулей (например, CRT, GRAPH); LABEL — Список меток в основном блоке программы (например, m1,m2); CONST — Определение констант программы; TYPE — Описание типов; VAR — Определение глобальных переменных программы; ОПРЕДЕЛЕНИЕ ПРОЦЕДУР (заголовки и, возможно, тела процедур); ОПРЕДЕЛЕНИЕ ФУНКЦИЙ (заголовки и, возможно, тела функций); BEGIN {Это — символ начала программы} Основной блок (тело) программы (раздел исполняемых операторов); END. {Это — символ окончания программы} Данные в языке Turbo Pascal. Целые и вещественные числа. Данные целого типа в языке Turbo Pascal Данные целого типа — используютсякогда величину нужно представить абсолютно точно. К ним относятся константы и переменные. Константа целого типа — это десятичное число, записанное без точки. Если константа отрицательная, то перед ней ставится знак минус (например, const k=15; p1=-46; p2=46). Переменная целого типа принимает значение целого десятичного числа. Описание переменной обозначается integer (например, var a,b:integer; b1,b2:integer). Действительный (вещественный) тип данных в Turbo Pascal. В Turbo Pascal константа действительного типа представлена в двух видах: Числом с фиксированной точкой. Числом с плавающей точкой. В записи действительных чисел вместо десятичной запятой, как принято в математике, используется ДЕСЯТИЧНАЯ ТОЧКА! 2 Число с плавающей точкой записывается в виде: mEp, где m — мантисса числа, p — порядок числа. Операции над действительными числами: сложение +, вычитание -, умножение *, деление /. Одно из двух данных при этом может быть целого типа, но результат операции будет действительным числом. К действительным числам можно применять встроенные функции sin(x); cos(x); exp(x); ln(x); sqr(x); sqrt(x); arctan(x) и т.д. Вывод действительных данных возможен с форматом и без формата. Формат указывается в операторе вывода write вслед за выводимым данным через двоеточие: R:m:n, где R — выводимое данное действительного типа, m — общее поле выводимого числа (включая знак числа, целую часть, точку и дробную часть), n — поле дробной части. В качестве m и n могут быть целые константы, переменные, выражения. Чаще всего это целые числа. При использовании форматов число выводится с фиксированной точкой. Данные в языке Turbo Pascal. Логические, символьные и строковые. Две логические константы: TRUE (истина) и FALSE (ложь), можно использовать в явном виде или обозначать именем в разделе CONST, например: const T=true; F=false; Логическая переменная — может принимать два значения TRUE и FALSE. Описание логической переменной имеет тип BOOLEAN, например: var L,A,C:boolean; В разделе операторов логическому типу переменной можно присвоить значение логической константы, например: L1:= true; L2:= false; L3:= L1; Операции отношений для сравнения переменных, принимающих численные значения: < меньше, <= меньше или равно, = равно, <> не равно, > больше, >= больше или равно. Операции с данными логического типа: OR — логическое ИЛИ (логическое сложение — дизъюнкция). AND — логическое И (логическое умножение — конъюнкция). NOT — логическое отрицание НЕ. Данные символьного типа TP может обрабатывать не только числа, но и символы. Значениями символьного типа является всё множество символов ПК. Каждому символу приписывается целое число в диапазоне 0...255. 3 Символьная константа (литера) — это символ, заключенный в апострофы. Внешние апострофы являются признаком символьной константы, которая занимает 1 байт памяти. Символьную константу можно обозначить именем и задать в разделе констант. Символьная переменная принимает значение одного символа. В разделе переменных она обозначается описателем CHAR (символьный тип). Конструкции в Turbo Pascal. 1. Условный оператор IF...THEN....ELSE (Если...то...иначе) — организовывает разветвление в алгоритме программы, записывается: IF Логическое условие THEN Оператор 1 ELSE Оператор 2; Если выполняется логическое условие, то выполняется оператор 1. В противном случае выполняется оператор 2. 2. Оператор цикла с параметром FOR...TO...DO. Для организации циклического алгоритма часто используется оператор цикла с параметром: for i:=A to B do S, где i-некоторая переменная (параметр или счетчик цикла) типа integer, A и B (B>A) выражения со значением типа integer, S-оператор (тело цикла). Если A>B, то оператор S не будет выполнен ни разу (когда параметр i возрастает). Если параметр i возрастает, то между границами его значений A и B ставится слово TO, если же i убывает, то ставится слово DOWNTO и оператор цикла выполняется при A>B. 3. Оператор цикла с предварительным условием WHILE...DO. while логическое выражение (условие) do begin Операторы циклической части программы (тело цикла) end; 4. Оператор цикла с последующим условием REPEAT...UNTIL. Организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения (условия). Структура оператора: REPEAT <тело цикла> UNTIL <условие>, где <тело цикла> — последовательность операторов Turbo Pascal, <условие> - выражение логического типа. Структуру оператора REPEAT...UNTIL можно также представить в виде: REPEAT Instruction1; Instruction2; ............. InstructionM; UNTIL S; Instruction1, Instruction2, ..., InstructionM — выполняемые операторы, составляющие тело цикла, S-логическое условие, истинность которого проверяется в конце каждого повторения. 4 Массивы в Turbo Pascal. Массив — это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти. Количество элементов в массиве всегда конечно. В качестве элементов массива можно использовать любой тип данных, поэтому вполне правомерно существование массивов записей, массивов указателей, массивов строк, массивов и т.д. Элементами массива могут быть данные любого типа, включая структурированные. Для описания массива предназначено словосочетание array of (массив из). Одномерным массивом называется совокупность данных, выполняющих аналогичные функции, и обозначаемая одним именем. Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным, или одномерным <имя массива>: = array [<количество элементов>] of <тип переменной>; Каждый элемент массива в общем виде описывается как А [I], где А — имя массива, I — номер или индекс массива (0<=I<=N, но практически употребляется 1<=I<=N) A[I] значение элемента массива. Действия над массивами и его элементами Для работы с массивом как единым целым используется идентификатор массива без указания индекса в квадратных скобках. Массив может участвовать только в операциях отношения "равно", "не равно" и в операторе присваивания. Массивы, участвующие в этих действиях, должны быть идентичны по структуре, т. е. иметь одинаковые типы индексов и одинаковые типы компонентов. После объявления массива каждый его элемент можно обработать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Индексированные элементы массива называются индексированными переменными и могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах for, while, repeat, входить в качестве параметров в операторы Read, Readln, Write, Writeln; им можно присваивать любые значения, соответствующие их типу. Двумерным называется массив, элемент которого зависит от его местоположения в строке и в столбце. В общем виде элемент матрицы обозначается как A(I,J), где А — имя массива, I — индекс (номер) строки, J — индекс (номер) столбца. Матрицу на языке Паскаль можно задать двумя способами: <имя матрицы>: array [<количество строк>] of array [<количество столбцов>] of <тип переменной>; <имя матрицы>: array [<количество строк >,<количество столбцов>] оf <тип переменной>]. 5 Работа с файлами в Turbo Pascal. Процедуры при работе с файлами в TP: Assign (var F; name: string); — устанавливает соответствие между файлом и файловой переменной, открывает все другие процедуры работы с файлами. F — переменная любого файлового типа, name - полное имя файла. close (var F); — окончание процедур работы с файлами (закрытие файла). rewrite (var F: file); — создаёт и открывает новый файл. reset (var F: file); — открывает существующий файл. append (var F: text); — открывает существующий текстовый файл и позиционирует указатель обработки на конец файла. После этого можно дополнять текстовый файл информацией, начиная с конца строки. erase (var F); - удаляет неоткрытый внешний файл любого типа, задаваемый переменной F. rename (var F: newname: string); — переименовывает неоткрытый файл F любого типа. Новое имя задаётся строкой newname. Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Для описания используется стандартный тип text: var F: text; (F — файловая переменная). Стандартные типы данных не требуют описания в разделе type в отличие от типов, образованных пользователем. Формат раздела: type <имя типа> = <значение типа>; Имя и значение типа даёт пользователь. Функция Eoln(var F: text) возвращает булевское значение True, если текущая файловая позиция находится на маркере конца строки или вызов Eof(F) возвратил значение True. Во всех других случаях значение функции будет False. Функция Eof(var F: text) возвращает булевское значение True, если указатель конца файла находится сразу за последним компонентом. В противном случае — False.