Задача 1.1.
Условие
Записать по правилам программирования заданную формулу. Составить программу вычисления значения по ней для Х, принадлежащего отрезку [0,1:0,6] по формуле
Листинг
program project1;
uses
SysUtils, things, math;
var
Calculated: boolean;
Value, y: extended;
a: extended = 0.1;
b: extended = 0.6;
s: string;
begin
while not Calculated do
begin
Value := RequestNumber('Введите число, принадлежащее отрезку [0.1; 0.6]:');
writeln();
if (Value >= 0.1) and (Value <= 0.6) then
begin
y := 1.8 + ln( abs( 30/7 - tan( sin ( Value * 5/3 ) ) ) );
s := Format('Результат: %.3f', [y]);
writeln(s);
Calculated := true;
end
else
writeln('Введённое число не принадлежит заданному отрезку.');
end;
readln();
end.
Результаты работы программы
Блок-схема
Переменные
Класс |
Имя |
Тип |
Структура |
Назначение |
Исходные данные |
Value |
Число с плавающей запятой |
Переменная |
Значение аргумента |
Исходные данные |
b |
Число с плавающей запятой |
Переменная |
Конец отрезка |
Исходные данные |
a |
Число с плавающей запятой |
Переменная |
Начало отрезка |
Итоговые данные |
y |
Число с плавающей запятой |
Переменная |
Значение функции |
Задача 1.2.
Условие
Составить алгоритм и программу вычисления значений функции f(x) из задачи 1.1 для N значений аргумента Х, равномерно распределенных на отрезке [A,B]. Для проверки программы задать N=10;A=0,55;B=1.
Листинг
program project1;
uses
SysUtils, things, math;
var
N, i: integer;
A, B, x, y, Step: extended;
s: string;
begin
A := RequestNumber('Введите точку A:');
B := RequestNumber('Введите точку B:');
N := abs(round(RequestNumber('Введите число шагов N:')));
x := A;
Step := (B - A)/N;
for i:=1 to N do
begin
y := 1.8 + ln( abs( 30/7 - tan( sin ( x * 5/3 ) ) ) );
s := Format('Точка %d: (x: %.3f, y: %.3f)', [i, x, y]);
writeln(s);
x += Step;
end;
readln();
end.
Результаты работы программы
Блок-схема
Переменные
Класс |
Имя |
Тип |
Структура |
Назначение |
Исходные данные |
N |
Целый |
Константа |
Число шагов |
Промежуточные данные |
x |
Число с плавающей запятой |
|
Значение аргумента |
Промежуточные данные |
Step |
Число с плавающей запятой |
|
Величина шага |
Исходные данные |
А |
Число с плавающей запятой |
|
Начало отрезка |
Исходные данные |
В |
Число с плавающей запятой |
|
Конец отрезка |
Промежуточные данные |
i |
Целый |
|
Счетчик |
Итоговые данные |
у |
Число с плавающей запятой |
|
Значение функции |
Задача 1.3.2.
Условие
Составить циклический алгоритм и программу для вычисления результатов по формуле .
Для проверки программы задать x=0.5, n=20.
Листинг
program project1;
uses
SysUtils, things, math;
var
X, x1, x2, a: extended;
N, i: integer;
s: string;
begin
X := RequestNumber('Введите X:');
N := abs(round(RequestNumber('Введите N:')));
x1 := X*Pi()/N;
x2 := 1;
for i:=1 to N do
begin
x2 *= (ln(sqrt(exp(i*0.1) + X)))/(1/3 + abs(tan(sin(i*X/3))));
end;
a := x1 + x2 + 0.5;
s := Format('Результат: %.3f', [a]);
writeln(s);
readln();
end.
Блок-схема
Результаты работы программы
Переменные
Класс |
Имя |
Тип |
Структура |
Назначение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|