русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-06-12; просмотров: 730; Нарушение авторских прав


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

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

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

а) Десятичные числа, которые записываются чаще всего в традиционном формате с фиксированной точкой: <Вещ_фикс>::=<целое>.< целое>. Кроме того применяется экспоненциальный формат (вещественное с плавающей точкой): <Вещ_эксп>::=<Вещ_фикс>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.

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

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) – определяет дробную часть аргумента;

Int(X) – определяет дробную часть аргумента, тип результат Real;

Random(X) – равномерное псевдослучайное число 0£ I < X, при отсутствии Х интервал чисел от 0 до I.

Математические функции, не представленные в языке Паскаль в явном виде:

Десятичный логарифм Lg(X) = Ln(X)/Ln(10);

Возведение в степень Y = Mn ® Y:= Exp(n*Ln(M)), A = 146 ® A := Exp(6*Ln(14));

Тангенс угла Tg(X) = Sin(X)/Cos(X); котангенс угла Ctg(X) = Cos(X)/ Sin(X); секанс угла Sc(X) = 1/ Cos(X); косеканс угла Csc(X) = 1/ Sin(X); арксинус числа Arcsin(X) = Arctan(X/Sqrt(1-X*X)); арккотангенс числа Arcctg(X) = Pi/2 - Arctan(X); арккосинус числа Arccos(X) = Pi/2 - Arctan(X/Sqrt(1-X*X)).

Для перевода из градусов в радианы и наоборот используются соотношения: 1 радиан = 180°/Pi = 57°17’45” 1 градус = Pi/180 радиана = 0,0174 радиана.

Операторы – это единицы действия языка (синонимы – предложения, утверждения, инструкции). Операторы могут быть выполняемые и невыполняемые. Выполняемые производят вычисления и управляют процессом вычислений. Невыполняемые содержат сведения о структуре и организации данных, их свойствах и размещении данных в памяти. Операторы также могут быть пустые и составные. Составной оператор – это последовательность произвольных операторов программы, заключенная в операторные скобки Begin ... End. Пустой оператор не содержит никаких действий, просто в программу добавляется лишняя точка с запятой. В основном пустой оператор используется для передачи управления в конец составного оператора.

Оператор присваивания вызывает выполнение выражений и присваивание значения имени результата: <имя переменной> := <выражение>. Например C := A/B; D := 54 *S +(21 +n)/g); P := P*i.

Операторы ввода-вывода. В Паскале используются стандартные процедуры. Процедура – это некоторая последовательность операторов языка, к которой можно обратиться по имени.

Для ввода данных используются следующие операторы обращения к встроенной стандартной процедуре ввода данных:

Read (A, B, C); где A, B, C – имена переменных, значения которых подлежат вводу для запоминания в оперативной памяти.

Readln (A, B, C); после окончания ввода курсор перемещается к началу новой строки.

Readln; означает ожидание нажатия клавиши <Enter>.

Для вывода данных на экран монитора используется оператор обращения к стандартной процедуре вывода данных:

Write(список имен);. Например: Write(‘a=’, a:7:3, ‘_b=’, b:6:3) – число после первого двоеточия означает количество позиций, выделяемых для вывода значения численной переменной, включая знак, целую часть, десятичную точку и цифры после запятой, цифра после второго двоеточия означает количество цифр после десятичной запятой. Лишние позиции будут заменены пробелами перед целой частью числа и нулями после дробной части. В приведенном операторе ввода при a = 3,14744 и b = -3,4 на экране выведется a = __3.147 b = -3.400.

Writeln(список имен); - после вывода курсор переводится к началу новой строки.

Writeln; - означает пропуск одной строки и переход к началу новой строки.

Для вывода данных на печатающее устройство необходимо переопределить вывод, для чего в списке вывода задается имя устройства LST. Например: Writeln(lst, x1, x2);.

Примеры решения задач

Пример 1. Вычислить площадь круга и длину окружности по заданному радиусу.

Решение: Схема алгоритма представлена рис.3.1. Напишем программный код:

program circle;

const pi := 3.14159;

var r, s, l : real;

begin

writeln (‘введите радиус’); readln (r);

s:= pi*r*r; l:= 2*pi*r;

writeln (‘площадь круга =’, s:8:4);

writeln (‘длина окружности =’, l:8:4);

end.

Пример 2. Вычислить высоты сторон треугольника, если известны длины сторон треугольника. Для вычисления использовать формулу Герона.

Решение:Схема алгоритма рассматривается рис.3.2. Напишем программный код:

program primer2;

var a, b, c, p, t, ha, hb, hc: real;

begin

writeln (‘введите длины сторон треугольника a, b, c’); readln (a, b, c);

p:= (a + b + c)/2; p:= 2*sqrt(p * (p – a) * (p – b) * (p – c));

ha:= t/a; hb:= t/b; hc:= t/c;

writeln (‘ha =’, ha:8:4);

writeln (‘hb =’, hb:8:4);

writeln (‘hc =’, hc:8:4); end.

Рис.3.1. Алгоритм вычисления площади круга и длины окружности Рис. 3.2. Схема алгоритма вычисления высот треугольника

 



<== предыдущая лекция | следующая лекция ==>
Валютная система и валютный контроль в экономике РБ | Задачи для самостоятельной работы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.774 сек.