Формулировка задачи
Выполнить с помощью циклов табуляцию функции на заданном отрезке от xn до xk. Отрезок соответствует заштрихованной области.
Решение задачи
Ввести переменные Хнач, Хкон, step или количество шагов number, произвести отбор на попадание отрезка в заштрихованную область. Выполнить табуляцию.
Тестовый пример
Цикл While | Цикл Repeat | Цикл For |
Введите Xнач: 0.8 Введите Xкон: 0.9 step= 0.02 ________________________ n| x| y(x)| 1| 0.80| 0.65| 2| 0.82| 0.34| 3| 0.84| -0.34| 4| 0.86| -0.14| 5| 0.88| 0.11| ________________________ | Введите Xнач: -1 Введите Xкон: 1 step= 0.5 ________________________ n| x | y(x)| 1| -1.00| 0.00| 2| -0.50| 0.29| 3| 0.00| -0.71| 4| 0.50| -0.70| 5| 1.00| 0.22| ________________________ | Введите Xнач: 0.5 Введите Xкон: 0.6 Введите число итераций: 5 step= 0.02 ________________________ n| x| y(x)| 1| 0.50| 0.67| 2| 0.52| 0.16| 3| 0.54| 0.40| 4| 0.56| 0.06| 5| 0.58| 0.15| ________________________ |
Блок-схема
Цикл While
Цикл Repeat
Цикл For
step:=(xk-xn)/count_i
|
|
Код программы
Цикл While
program lab3;
var xk, xn, step, y, y_from, y_to:real;
i:integer;
Begin
write('Введите Xнач: ');
readln(xn);
write('Введите Xкон: ');
readln(xk);
write('step= ');
readln(step);
i:=1;
if (xn > 1) or (xn < -1) or (xk > 1) or (xk < -1) or (xk < xn) or (step > xk - xn)
then writeln('Ошибка, введенные значения не входят в заштрихованную область.')
Else
begin
writeln('________________________');
writeln('n| x| y(x)|');
while xn < xk do
begin
if xn < 0 then
begin
y_from:= -sqrt(1 - (xn * xn));
y_to:= -y_from;
end
else
begin
y_from:= -sqrt(1 - (xn * xn));
y_to:= 1;
end;
y:=random * (y_to - y_from) + y_from;
writeln(i, '|', xn:10:2, '|', y:10:2, '|');
xn:=xn+step;
i:=i+1;
end;
end;
writeln('________________________');
end.
Цикл Repeat
program lab3;
var xk, xn, step, y, y_from, y_to:real;
i:integer;
Begin
write('Введите Xнач: ');
readln(xn);
write('Введите Xкон: ');
readln(xk);
write('step= ');
readln(step);
i:=1;
if (xn > 1) or (xn < -1) or (xk > 1) or (xk < -1) or (xk < xn) or (step > xk - xn)
then writeln('Ошибка, введенные значения не входят в заштрихованную область.')
Else
begin
writeln('________________________');
writeln('n| x| y(x)|');
Repeat
begin
if xn < 0 then
begin
y_from:= -sqrt(1 - (xn * xn));
y_to:= -y_from;
end
else
begin
y_from:= -sqrt(1 - (xn * xn));
y_to:= 1;
end;
y:=random * (y_to - y_from) + y_from;
writeln(i, '|', xn:10:2, '|', y:10:2, '|');
xn:=xn+step;
i:=i+1;
end;
until xn > xk;
end;
writeln('________________________');
end.
Цикл For
program lab3;
var xk, xn, step, y, y_from, y_to:real;
i, count_i:integer;
Begin
write('Введите Xнач: ');
readln(xn);
write('Введите Xкон: ');
readln(xk);
write('Введите число итераций: ');
readln(count_i);
step:=(xk-xn)/count_i;
writeln('step= ',step:1:2);
if (xn>1) or (xn<-1) or (xk>1) or (xk<-1) or (xk<xn) or (step>xk)
then writeln('Ошибка, введенные значения не входят в заштрихованную область.')
|
|
Else
begin
writeln('________________________');
writeln('n| x | y(x)|');
for i:=1 to count_i do
begin
if xn < 0 then
begin
y_from:= -sqrt(1 - (xn * xn));
y_to:= -y_from;
end
else
begin
y_from:= -sqrt(1 - (xn * xn));
y_to:= 1;
end;
y:=random * (y_to - y_from) + y_from;
writeln(i, '|', xn:10:2, '|', y:10:2, '|');
xn:=xn+step;
end;
end;
writeln('________________________');
end.
Скриншот результатов работы программы
Цикл While
Цикл Repeat
Цикл For
Исследование
Формулировка
В условиях данной задачи нельзя вводить значения Xнач>1; Xнач<-1; Xкон>1 или Xкон<-1.
Пример
В ходе работы программы цикла While введем Xn=1.5
Скриншот результата
Для таких случаев в программе предусмотрена проверка. Мы видим, что при выходе введенного Хнач из диапазона, программа выдает ошибку.
Оглавление
Формулировка задачи. 2
Решение задачи. 2
Тестовый пример. 2
Блок-схема. 3
Цикл While. 3
Цикл Repeat 5
Цикл For 6
Код программы.. 7
Цикл While. 7
Цикл Repeat 8
Цикл For 9
Скриншот результатов работы программы.. 10
Цикл While. 10
Цикл Repeat 10
Цикл For 10
Исследование. 11
Формулировка. 11
Пример. 11
Скриншот результата. 11
Оглавление. 12