Лабораторная работа №3. Табулирование функций
Цель работы
- получение навыков в решении отдельных фрагментов инженерных задач с использованием Turbo-Pascal;
- получение навыков в использовании операторов цикла при решении практических задач;
- получение навыков в написании, отладке и тестировании программ.
Краткие теоретические сведения
При решении практических задач часто требуется вычислять значения функций, которых нет в списке стандартных, или требуется получить значение функции с заранее заданной точностью.
Пусть необходимо вычислить значения функции , если аргумент изменяется на отрезке с постоянным шагом h. Согласно условию задачи необходимо для значения аргумента вычислить значение функции , затем изменить аргумент и снова вычислить значение функции , затем изменить аргумент и снова вычислить значение функции и так до тех пор, пока значение аргумента не превысит значение .
Описанная задача называется задачей табулирования функции.
При написании программы для решения подобных задач необходимо использовать оператор цикла.
Формат
Repeat
< оператор 1>;
. . . . . . . . . . . . . . .
< оператор n>;
until <выражение >;
. . . . . . . . . . . . . . .
В данной структуре < оператор 1>, < оператор 2>, …, < оператор n> -выполняемые операторы, составляющие тело цикла; <выражение >- булевское выражение, истинность которого проверяется в конце цикла.
Оператор цикла repeat . . . until называют оператором цикла с постусловием.
Оператор цикла repeat . . . until организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла, состоящее из операторов < оператор 1>, < оператор 2>, …, < оператор n>,выполняется хотя бы один раз.Выход из цикла осуществляется при истинности булевского выражения[2].
Формат
while <выражение > do < оператор>;
. . . . . . . . . . . . . . . . . . . . . . . . .
Оператор цикла while . . . do организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если булевское <выражение > окажется ложным, т.е. примет значение логической константы False. Так как истинность булевского выражения проверяется в начале цикла, то тело цикла может не выполниться ни разу.
Оператор цикла while . . . do называют оператором цикла с предусловием.
Если в теле цикла необходимо выполнить два и более операторов, то они заключаются в операторные скобки begin . . . end; .
Пример программы на Pascal
Задача 3.
Вычислить значения функции для всех , если значение аргумента изменяется с шагом .
Program st3;
Var
x,y,x0,xk,h:real;
Begin
read(x0,xk,h);
writeln(’ x0=’,x,’ xk=’,xk,’ h=’,h);
x:=xo;
Repeat
y:=x*x;
writeln(‘x=’,x, ‘ y=’,y);
x:=x+h;
until x>xk;
End.
Задача 4.
Вычислить значения функции для всех , если значение аргумента изменяется с шагом .
Program st3;
Var
x,y,x0,xk,h:real;
Begin
read(x0,xk,h);
writeln(’ x0=’,x,’ xk=’,xk,’ h=’,h);
x:=xo;
while x<=xk do
Begin
if x<>0 then
Begin
y:=1/x ;
writeln(‘x=’,x ,‘ y=’,y);
End
else write(‘решений нет’);
x:=x+h;
end;
End.
3.3. Содержание задания
Задание 3
- разработать блок-схему алгоритма циклической структуры для вычисления функции в соответствии с вариантом задания (см. приложение В, таб. В.1);
- написать и отладить программу в соответствии с блок-схемой;
- поставить программу на выполнение, отладить и протестировать ее;
- сравнить результаты ручного и машинного счета;
- задачи для самостоятельного решения представлены в приложении Д.
Содержание отчета
- цель работы;
- задание;
- блок-схема алгоритма решения задачи;
- текст программы;
- результаты ручного и машинного счета;
- выводы.
3.5. Контрольные вопросы
- Что такое цикл. Приведите пример алгоритма циклической структуры.
- Объясните работу циклического оператора Pascal repeat . . . until. Дайте рекомендации по его использованию.
- Объясните работу циклического оператора Pascal while . . . do. В чем особенности его использования в программе.
- Объясните суть задачи табулирования функции.