
- •Лабораторная работа № 1.Программная реализация алгоритмов линейной структуры
- •Краткие теоретические сведения
- •Int(X) – определяет дробную часть аргумента, тип результат Real;
- •Примеры решения задач
- •Задачи для самостоятельной работы
- •Вычислить значения искомых величин, формулы для вычислений и данные для тестирования определить самостоятельно.
- •Методика выполнения работы
Лабораторная работа № 1.Программная реализация алгоритмов линейной структуры
Цель работы: ознакомиться с принципами языка программирования Паскаль, научиться разрабатывать простейшие программы на Паскале, производить их отладку и тестирование.
Задание:
Разработать алгоритмы для решения задач варианта.
Записать алгоритмы на языке программирования Turbo Pascal.
Произвести отладку и тестирование программы.
Краткие теоретические сведения
Программа на языке Паскаль записывается строго определенным образом и состоит из заголовка, раздела описаний и раздела операторов.
Заголовок программы состоит из ключевого слова Program и собственно имени программы, например: Program prim;. Заголовок является необязательной частью программы.
Описание (объявление данных) содержит упоминание всех объектов, используемых в программе и включает в себя:
раздел подключаемых библиотек (модулей) определяется служебным словом USES и содержит имена подключаемых модулей: uses CRT, Graph;
раздел описания меток: любой оператор в программе может быть помечен меткой. Имя метки задается по правилам образования идентификаторов Турбо Паскаль: label 3, 471, 29, Quit;
раздел описания констант позволяет использовать имена как синонимы констант, их необходимо определить в разделе описания констант: const K= 1024; MAX= 16384;
раздел описания типов;
раздел описания переменных; необходимо указать все переменные, используемые в программе, и определить их тип: var P,Q,R: Integer; A,B: Char; F1,F2: Boolean;
раздел описания процедур и функций.
Операторы (исполняемая часть) представляет собой составной оператор, который содержится между служебными словами begin.......end. Операторы отделяются друг от друга символом ”;”. Текст программы заканчивается символом ”точка”.
Кроме описаний и операторов Паскаль - программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев “{“ и закрывающей скобкой комментариев “}”.
Алфавит языка Паскаль включает следующие символы:
Латинские прописные и строчные буквы A – Z, a – z; символ _ «подчерк» (код ASCII 95) используются для формирования идентификаторов и служебных слов;
Арабские цифры 0 – 9 – для записи чисел и идентификаторов.
Специальные символы: математические (+| - | * | / | = | > | < | ( | ) |; пунктуации | . | , | : | ; |; прочие | [ | ] | - для обозначения массивов и множеств, | { | } | - для записи комментариев, | _ | - для разделения лексем, | ' | - апостроф для записи констант символьного и текстового типа, | $ | # | @ | ^ |.
Лексическая структура языка Паскаль. Программа на Паскале состоит из последовательности лексем – минимальных лексических единиц языка, имеющих самостоятельный смысл. Лексемы условно делятся на несколько классов:
Ключевые (служебные, зарезервированные) слова. Всего 51 слово, в редакторе интегрированной среды Borland Pascal изображаются белым цветом. Перечень зарезервированных слов приведен в приложении.
Идентификаторы (изображаются желтым цветом) могут быть двух разновидностей: имена, которые программист присваивает какой-либо переменной, константе, типу, метке, процедуре или функции (нельзя использовать ключевые слова); стандартные идентификаторы, которые являются именами встроенных в язык процедур и функций. Компилятор воспринимает 63 символа идентификатора, который должен начинаться с буквы и может содержать буквы, цифры и знак подчеркивания.
Знаки операций: |= | < | > | + | - | * | / | <= | >=|.
Изображения – эта группа лексем обозначает:
Десятичные числа, которые записываются чаще всего в традиционном формате с фиксированной точкой: <Вещ_фикс>::=<целое>.< целое>. Кроме того применяется экспоненциальный формат (вещественное с плавающей точкой): <Вещ_эксп>::=<Вещ_фикс>E<порядок>, где <порядок>::=[+-] <целое>. Например: 7,4Е-2 7.4 10-2 0.074.
Строки – последовательность любых символов из расширенного набора ASCII, заключенная в апострофы;
Комментарии (изображаются серым цветом) – любая комбинация произвольных символов, заключенная либо в фигурные скобки { }, либо в комбинированные {* *}. Если за открывающейся скобкой следует знак $, комментарий интерпретируется как директива компилятора.
Между лексемами разрешено вставлять один или несколько разделителей: пробелов, комментариев, символов «конец строки» (код 13) и других управляющих символов (коды от 0 до 31). разделителями являются знаки математических операций, круглые и квадратные скобки, запятые.
Типы данных. Под типом данных понимается множество допустимых значений этих данных, а также совокупность операций над ними. Тип определяет также и формат внутреннего представления данных в памяти компьютера. Паскаль характеризуется разветвленной структурой типов данных. Классификация и подробное описание типов данных приводится в приложении.
К простым типам относятся порядковые и вещественные типы. Они не требуют предварительного определения.
Порядковые типы отличаются тем, что каждый из них имеет конечное число возможных значений. Эти значения можно определенным образом упорядочить и, следовательно, с каждым из них можно сопоставить некоторое целое число – порядковый номер значения. Это integer (целое со знаком), boolean (логический), char (символьный) и другие.
Вещественные типы тоже имеют конечное число значений, которое определяется форматом внутреннего представления вещественного числа. Однако количество возможных значений вещественных типов настолько велико, что сопоставить с каждым из них целое число (его номер) не представляется возможным. Это single, real, double, extended, comp.
В программе ни один идентификатор не принимается по умолчанию. Если компилятор обнаружит неизвестное имя, будет выдано сообщение об ошибке.
Описание констант используется в программе для задания значений, которые не изменяются в процессе выполнения действий. Предложение описания констант имеет вид: Const с1 = value; c2 = value;
Здесь с1, с2 – имена констант; value – определяет значение константы.
Например: Const с1 = -46.175; c2 = 1/с1; с3 = ABS(c1);
Описание переменных. Переменные используются для записи значений, изменяющихся в программе. Выбор имен осуществляется так, чтобы были понятны смысл и назначение. Все переменные, используемые в программе, должны быть перечислены в разделе описания переменных. Предложение описания переменных имеет вид: Var v1, v2, … : type_id;
Здесь v1, v2,… - список переменных, в котором имена переменных разделяются запятыми, а type_id задает тип переменных из данного списка.
Например: Var a, b, c: integer; x1, x2: real;
Операции и выражения. Для определения действий, которые в математике обычно описываются формулами, в программировании служат выражения. Выражения – это конструкции, которые могут включать в себя константы, переменные, стандартные функции, пользовательские функции и числа, соединенные между собой знаками операций и парами круглых скобок. Выражения состоят из операндов и операций, записываются в одну строку и всегда имеют конечное значение определенного типа.
По количеству операндов операции делятся на унарные (присвоение знака числу [+ -] и бинарные (умножение [ * ], деление [ / ], деление нацело [ div ], остаток от деления [ mod ], сложение [ + ], вычитание [ - ]. Например: С := A mod B, при A := 13 и B := 4 С := 1; С := A div B, при A := 13 и B := 4 С := 3.
Булевы (логические) выражения включают в себя переменные и простые логические операции: =, <, >, <=, >=, <>. Например: A>=B. Простые булевы выражения могут объединяться в сложные с помощью логических операций: конъюнкция AND, дизъюнкция OR, отрицание NOT, строгая дизъюнкция XOR.
Порядок вычисления выражения определяется скобками, а в их отсутствие – в соответствии с приоритетом операций:
Операция отрицание NOT;
Мультипликативные *, /, div, mod, AND;
Аддитивные +, -, OR;
Простые логические операции =, <, >, <=, >=, <>.
Подробное описание операций приведено в приложении.
Стандартные функции. Результат работы функции возвращается в виде значения этой функции, и, следовательно, вызов функции может использоваться наряду с другими операндами в выражениях. В выражении функция вычисляется в первую очередь, если нет скобок.
Abs(X) – вычисляет абсолютное значение X;
Exp(X) – основание натурального логарифма возводит в степень Х;
Ln(X) – вычисляет натуральный логарифм Х;
Sqr(X) – Х возводит в квадрат;
Sqrt(X) – вычисляет квадратный корень из Х;
Sin(X), Cos(X), Arctan(X) – тригонометрические функции синус, косинус и арктангенс (аргумент задается в радианах);
Trunc(X) – определяет целую часть числа Х, тип результат Longint;
Round(X) – округляет число Х до целого;
Frac(X) – определяет дробную часть аргумента;