
- •Кафедра с а п р
- •Часть 1
- •1. Алфавит языка Паскаль
- •Данные в языке Паскаль
- •2.1 Порядковые типы данных
- •2.1.1 Целые типы данных
- •2.1.2 Логический тип данных
- •Символьный тип данных
- •2.1.4 Перечислимый тип данных
- •Ограниченный тип данных
- •2.2 Вещественные типы данных
- •3. Структура программ на языке TurboPascal
- •Описание меток
- •Описание переменных
- •Var имя переменной : тип;
- •Описание типов
- •Описание простых и типизированных констант
- •Арифметические выражения
- •Логические выражения
- •Оператор присваивания
- •Составной оператор
- •Процедуры ввода и вывода данных
- •Линейные алгоритмы и программы
- •Операторы условной и безусловной передачи управления
- •Алгоритмы и программы с разветвлением
- •10. Оператор выбора
- •11. Операторы циклов
- •11.1 Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Циклические алгоритмы и программы
- •Вариант 3
- •Использование циклических алгоритмов и программ для вычисления суммы членов ряда
- •При составлении алгоритма и программы будем считать, что точность
- •Массивы и их описание
- •Var Имя_массива: Array[t1] of [t2];
- •Var Имя_массива: Имя_типа_массива;
- •12.1 Работа с одномерными массивами
- •12.2 Работа с двумерными массивами
- •Текст программы
- •Варианты заданий
- •Строковый тип данных. Операции над строками
- •Множества в Паскале, их описание. Операции над множествами
- •Var Имя множества:Set of базовый тип;
- •Var Имя множества:Имя типа;
- •Тип данных - записи, их описание и использование. Оператор присоединения
- •1. Var Имя записи:record
- •Var Имя записи:Имя типа для записи;
- •15.1 Работа с массивом из записей
- •16 Подпрограммы
- •16. 1 Процедуры. Описание процедур. Область действия имён Локальные и глобальные параметры
- •16.2 Подпрограммы типа function, их описание
- •17. Задача сортировки: алгоритмы и программы
- •Сортировка выбором
- •Обменная сортировка
- •Сортировка слиянием
- •18 Задача поиска: алгоритмы и программы
- •18.1 Линейный поиск
- •Двоичный поиск
Линейные алгоритмы и программы
Цель работы:
1. Построение схемы линейного алгоритма;
2. Изучение структуры программ на языке TurboPascal
3. Использование оператора присваивания.
4. Использование процедур ввода - вывода;
5. Использование стандартных математических функций.
Перед выполнением данной лабораторной работы необходимо изучить
разделы 1-8.
Типовой пример
Составить схему алгоритма и программу для вычисления значений функций Y и F для заданных значений переменной x и постоянных a и b. Значения переменной x>=0. Включить в программу комментарии. Вывести на экран значения F,Y для соответствующих значений x.
Схема линейного алгоритма вычислений
Текст программы
{Лабораторная работа 1}
{Студенты гр. ..... Фамилии …}
{ Пример программы с линейной структурой}
{ Раздел описания данных}
Const a=2.0; b=3.0;
Var x,Y,F: real;
{ Раздел операторов}
Begin
Writeln(' Введите x>=0 '); {Запрос на ввод x}
Readln(x); {Ввод значения x}
{Вычисление значений Y и F}
Y:= Exp (-a*x)*(x* Sin (a*x+b) -Sqrt (x)* Cos (b*x));
F:= Ln (Sqrt( Abs (a*x*x-b)))-1;
{Вывод результатов}
Writeln(' При x = ',x,' Y = ',Y,' F = ',F);
End.
Варианты самостоятельных заданий
Операторы условной и безусловной передачи управления
Условный оператор дает возможность, в зависимости от заданного в нём условия, выполнить то или иное действие, что позволяет разветвлять
вычислительный процесс.
Этот оператор имеет следующий вид:
IF <условие> Then <оператор 1> Else <оператор 2>;
где условие - логическое выражение;
оператор 1, оператор 2 - любые операторы языка ТР.
Условный оператор работает следующим образом: если <условие> принимает значение TRUE (истина), то выполняется оператор 1, а оператор 2 пропускается; если - FALSE (ложь), то оператор 1 пропускается, а выполняется оператор 2.
На месте оператора 1 или оператора 2 может стоять группа операторов, заключенных в операторные скобки (Begin ... end).
Часть Else (оператор 2) может быть опущена. Тогда при значении TRUE
условного выражения выполняется оператор 1, в противном случае выполняется оператор, стоящий за оператором IF.
Пример: Вычислить значение функции Y, в зависимости от значения x.
Условный оператор будет иметь вид:
If x>0 Then Y:=a*x+b Else Y:=a*x*x+b;
Кроме передачи управления, в зависимости от некоторого условия, порядок выполнения операторов можно изменить с помощью оператора безусловной передачи управления вида:
GOTO метка;
Действие оператора Goto состоит в передаче управления в программе
соотвествующему помеченному оператору.
При использовании меток необходимо помнить:
метка, на которую ссылается оператор Goto, должна быть описана в подразделе Label и она обязательно должна встретиться в теле программы;
метка может ставиться перед ключевым словом End, что означает переход на конец текущего блока Begin … End;
следует избегать переходов (и расстановки меток), передающих управление внутрь операторов циклов; зато выход из циклов с помощью Goto может быть использован для их досрочного завершения;
область действия оператора goto и связанных с ним меток строго локализована. Метки, описанные в основной части программы, действуют только в ней. Метки, описанные в подпрограммах, определенных программистом, действуют только внутри этих подпрограмм и поэтому передача управления извне подпрограммы на метку внутри нее невозможна.
Кроме того, ТР обладает средствами безусловного выхода из программных блоков (процедур, функций или основной программы), что позволяет завершать программу или подпрограммы без предварительных переходов по меткам. Для этого используются системные процедуры EXIT и HALT.
Вызов Exit вызывает завершение работы только того программного блока, в котором он используется.
Процедура Halt завершает выполнение всей программы.
Лабораторная работа №2