Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_1_Pascal.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
157.56 Кб
Скачать

Лабораторная работа № 1.Программная реализация алгоритмов линейной структуры

Цель работы: ознакомиться с принципами языка программирования Паскаль, научиться разрабатывать простейшие программы на Паскале, производить их отладку и тестирование.

Задание:

  1. Разработать алгоритмы для решения задач варианта.

  2. Записать алгоритмы на языке программирования Turbo Pascal.

  3. Произвести отладку и тестирование программы.

Краткие теоретические сведения

Программа на языке Паскаль записывается строго определенным образом и состоит из заголовка, раздела описаний и раздела операторов.

Заголовок программы состоит из ключевого слова 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 символа идентификатора, который должен начинаться с буквы и может содержать буквы, цифры и знак подчеркивания.

  • Знаки операций: |= | < | > | + | - | * | / | <= | >=|.

  • Изображения – эта группа лексем обозначает:

    1. Десятичные числа, которые записываются чаще всего в традиционном формате с фиксированной точкой: <Вещ_фикс>::=<целое>.< целое>. Кроме того применяется экспоненциальный формат (вещественное с плавающей точкой): <Вещ_эксп>::=<Вещ_фикс>E<порядок>, где <порядок>::=[+-] <целое>. Например: 7,4Е-2  7.4  10-2  0.074.

    2. Строки – последовательность любых символов из расширенного набора ASCII, заключенная в апострофы;

    3. Комментарии (изображаются серым цветом) – любая комбинация произвольных символов, заключенная либо в фигурные скобки { }, либо в комбинированные {* *}. Если за открывающейся скобкой следует знак $, комментарий интерпретируется как директива компилятора.

Между лексемами разрешено вставлять один или несколько разделителей: пробелов, комментариев, символов «конец строки» (код 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.

Порядок вычисления выражения определяется скобками, а в их отсутствие – в соответствии с приоритетом операций:

  1. Операция отрицание NOT;

  2. Мультипликативные *, /, div, mod, AND;

  3. Аддитивные +, -, OR;

  4. Простые логические операции =, <, >, <=, >=, <>.

Подробное описание операций приведено в приложении.

Стандартные функции. Результат работы функции возвращается в виде значения этой функции, и, следовательно, вызов функции может использоваться наряду с другими операндами в выражениях. В выражении функция вычисляется в первую очередь, если нет скобок.

Abs(X) – вычисляет абсолютное значение X;

Exp(X) – основание натурального логарифма возводит в степень Х;

Ln(X) – вычисляет натуральный логарифм Х;

Sqr(X) – Х возводит в квадрат;

Sqrt(X) – вычисляет квадратный корень из Х;

Sin(X), Cos(X), Arctan(X) – тригонометрические функции синус, косинус и арктангенс (аргумент задается в радианах);

Trunc(X) – определяет целую часть числа Х, тип результат Longint;

Round(X) – округляет число Х до целого;

Frac(X) – определяет дробную часть аргумента;