Программирование циклических алгоритмов с заданным
Числом повторений
Первая форма счетного оператора цикла позволяет наращивать параметр цикла на единицу (+1):
FOR <параметр цикла>:= <min значение> TO <max значение> DO <оператор>;
(Для) (увеличивая к) (выполнять)
где <параметр цикла> - это переменная целого либо любого порядкового типа; <min, max значения> - это начальное и конечное значения параметра цикла (выражения того же типа, что и параметр цикла).
Вторая форма позволяет уменьшать значение параметра цикла на единицу (-1):
FOR <параметр цикла>:= <max знач.> DOWNTO <min знач.> DO <оператор>; (Для) (уменьшая к) (делать)
Пример 1. Вычислить сумму элементов s=1+1/4+1/9+1/16+... .
На основе анализа изменения параметра знаменателя определим алгоритм решения задачи и напишем программу:
PROGRAM suma;
VAR s, r: REAL;
i, N: INTEGER;
BEGIN
s:=0;
WRITELN('введите N');
READ(N);
FOR I:=1 TO N DO
begin
r:=1/sqr(i);
s:=s+r;
end;
WRITELN('Сумма=',s:6:2);
END.
Пример 2. Вычислить значения двух функций F1(x)=tg(x) и
F2(x)=sin(x) в n точках, равномерно распределенных на интервале a ≤ x ≤ b, где a=-π/4, b=π.
Для реализации данной задачи разработана следующая программа:
Program Lab3;
Const а = -pi/4; b = pi;
Var F1, F2, x, dx: real; {dx - шаг изменения х}
|
|
i, n: integer; {i - пеpеменная цикла}
Begin
writeln ('введите число точек N');
read(n);
dx: = abs(b-a)/(n-1);
x:=a;
writeln (' _____________________________');
writeln ('| I | X | F1 | F2 |');
writeln ('|---|--------------|------------|------------|');
for i:=1 to n do {опеpатоp цикла}
begin
F2:=sin(x);
F1:=F2/cos(x); {вычисление: tg x}
writeln('|', i:3,' |', x:8:3,'|', f1:8:4,' |', f2:8:4,' |');
x:=x+dx;
end;
writeln('|________________________|);
End.
Задание 2 (программа 3_2)
Вычислить значения двух функций в n равномерно распределенных в диапазо-
№ п/п | a | b | n | F1(х) | F2(х) |
1 2 3 4 5 6 7 8 9 10 11 12 | 0 1 -1 -2 0 - -1 -4 1 1 0 - | 2 2 5 5 3 4 3 4 2 | 10 12 15 14 16 12 10 12 15 10 15 18 | sin x cos x 1+2x+5 4e-|x|-1 | x+10|5 2 sin 2x +1 2-cos x 2-x/100 x3e2x 1/(1+ ) 5-3 cos x |sinx|+|cosx| | sin x + cos x -1 (x-1)3 cos x e-(x+5) (x+5)3(1+sin2x) 20/(1+x2) ex sin x x ln2 x 2x/(1-4x) |sin x| - |cos x| |
не а≤x≤b точках. Результаты оформить в виде таблицы.
Лабораторная работа 4
Программирование циклических алгоритмов с предусловием
Цель работы: научиться разрабатывать и отлаживать программы с неразветвленными и разветвленными циклами, управляемыми условиями.
Структура оператора цикла с предусловием (с предварительной проверкой условия):
|
|
WHILE <условие_выполнения> DO <оператор>;
пока делать
где <условие> - это любое логическое выражение, <оператор> - это произвольный оператор Турбо Паскаля, в том числе и составной.
Пример. Для трех значений а = 0.1, 0.2,0.3 протабулировать функцию y=a.tg(x/4) при изменении аргумента x на интервале [0.5,0.9] с шагом, равным a.
Program a4_1;
var
|
a,x,y:real;
Begin
writeln('-------------------------');
writeln(' a | x | y |');
writeln('-------------------------');
a:=0.1;
while a<=0.31 do
begin
writeln(a:5:2);
x:=0.5;
while x<=0.91 do
begin
y:=a*sin(x/4)/cos(x/4);
writeln(x:12:2,' | ', y:10:2);
x:=x+a;
end;
writeln('-------------------------');
a:=a+0.1
end;
End.
Задание 2 (программа 4_2)
Модифицировать (изменить) программу 3_2 для вычисления функций F1(x) и F2(x) с применением вместо счетного цикла оператора цикла с предусловием. Выполнить ее и сравнить результаты с полученными в предыдущей работе.
|
|
Лабораторная работа 5
Дата добавления: 2018-05-13; просмотров: 451; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!