Линейные алгоритмы и программы
Цель работы:
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