- •Введение
- •ЗАДАНИЕ 1 Организация Ввода-вывода
- •ЗАДАНИЕ 3 Целочисленные выражения
- •ЗАДАНИЕ 4 Решение уравнений и неравенств
- •ЗАДАНИЕ 5 Символьная обработка
- •ЗАДАНИЕ 6 Обработка одномерных массивов
- •ЗАДАНИЕ 8 Вычисление определенного интеграла
- •ЗАДАНИЕ 9 Электронные таблицы Excel
- •ЗАДЕНИЕ 11 Метод Рунге-Кутты решения дифференциальных уравнений
- •Задание 12 Математический пакет Mathcad
- •Литература
34
2.Сформировать массив из 15 элементов, разность между элементами которого случайная величина, меньшая А=10 и переставить в начало все элементы меньшие В=5.
3.Сформировать массив из 20 элементов и удалить все отрицательные эле-
менты.
4.Сформировать массив случайных чисел из 20 элементов меньших В=100
иотсортировать в порядке возрастания.
5.Сформировать массив из 10 элементов, и переставить в начало все положительные элементы.
6.Сформировать массив из 30 случайных элементов, и переставить в начало все элементы меньшие В=45.
7.Сформировать массив из 15 элементов, разность между элементами которого меньше А=35 и переставить в начало все элементы меньшие В=30.
8.Организовать ввод из файла массива20 вещественных чисел и удалить из него все элементы большие В=25.
9.Организовать ввод из файла массива30 вещественных чисел и удалить из него всех элементы меньшие В=-5.
10.Организовать ввод из файла массива10 целых чисел и удалить из него все элементы большие В=15.
11.Организовать ввод из файла массива18 вещественных чисел и удалить из него все элементы большие В=-10.
12.Организовать ввод из файла массива15 целых чисел и удалить из него все элементы большие В=-15.
ЗАДАНИЕ 8 Вычисление определенного интеграла
Цель задания
1.Получение навыков в написании процедур, имеющих в заголовке параметрыфункции.
2.Знакомство с алгоритмами численных методов интегрирования.
Постановка задачи
Задана функция. Требуется найти с точностью до10-4 определенный интеграл в заданных пределах тремя методами: прямоугольников, трапеций и по формуле Симпсона.
Содержание отчета
1.Постановка задачи.
2.Описание численных методов интегрирования.
3.Текст программы и результаты ее выполнения.
Методические указания
Вычисление интеграла каждым из методов оформить процедурой с параметромфункцией, а вычисление значений подынтегральной функции– функцией с директивой дальнего вызова.
35
Пример программы, которая вычисляет интеграл от функции y = 3- x +1 sin( x ×p / 3 ) ;
для вводимых с клавиатуры пределов интегрирования: program Opr_int;
uses Crt; type
Ft=function(X:real):real; {$F+}
var
H,E,A,B,S: real;
function Func1(X:real):real; begin
Func1:=exp((-X+1)*ln(3))*Sin(X*3.14/3); end;
procedure Int(A,B:real;Func:Ft); {Метод прямоугольников} label 1;
const N:integer=4;
var I:integer; S1,X: real; begin
for I:=1 to 10 do begin
S1:=0.; H:=(B-A)/N; X:=A+H/2.; while (X<B) do begin
S1:=S1+H*Func(X);
X:=X+H;
end;
N:=N*2;
S:=0.; H:=(B-A)/N; X:=A+H/2.; while (X<B) do begin
S:=S+H*Func(X);
X:=X+H;
end;
Writeln(S:10:5,N:6); if (abs(S1-S))<E then goto 1;
end;
36
Writeln('Требуемая точность не достигнута при числе шагов равном ', N);
1:
end;
procedure Int1(A,B:real;Func:Ft); {Метод трапеций } label 1;
const N:integer=4;
var J,Nn,I:integer; S1,X: real; begin
for I:=1 to 10 do begin
S1:=0.; H:=(B-A)/N; X:=A; Nn:=N-1;
S1:=Func(A)+Func(B); for J:=2 to Nn do begin
X:=X+H;
S1:=S1+2*Func(X);
end;
S1:=S1*H/2;
N:=N*2;
S:=0.; H:=(B-A)/N; X:=A; Nn:=N-1;
S:=Func(A)+Func(B); for J:=2 to Nn do begin
X:=X+H;
S:=S+2*Func(X);
end;
S:=S*H/2;
Writeln(S:10:5,N:6); if (abs(S1-S))<E then goto 1;
end;
Writeln('Требуемая точность не достигнута при числе шагов равном ', N);
1:
end;
37
procedure Int2(A,B:real;Func:Ft); {Метод Cимпсона } label 1;
const N:integer=4;{четное}
var C,J,Nn,I:integer; S1,X: real; begin
for I:=1 to 10 do begin
S1:=0.; H:=(B-A)/N; X:=A; C:=1; Nn:=N-1;
S1:=Func(A)+Func(B); for J:=2 to Nn do begin
X:=X+H;
S1:=S1+(3+C)*Func(X); C:=-C;
end;
S1:=S1*H/3;
N:=N*2;
S:=0.; H:=(B-A)/N; X:=A; C:=1; Nn:=N-1;
S:=Func(A)+Func(B); for J:=2 to Nn do begin
X:=X+H;
S:=S+(C+3)*Func(X); C:=-C;
end;
S:=S*H/3;
Writeln(S:10:5,N:6); if (abs(S1-S))<E then goto 1;
end;
Writeln('Требуемая точность не достигнута при числе шагов равном ', N);
1:
end;
38
begin ClrScr;
Write('Введите пределы интегрирования: '); Readln(A,B);
Write(' Введите величину погрешности: '); Readln(E);
Writeln;
writeln(' Метод прямоугольников'); Int(A,B,Func1);
Writeln(' шаг интегрирования равен ',H); Writeln(' Интеграл от функции на участке от ', A:4:2,' до ',B:4:2,' равен ',S:8:4);
Writeln;
Writeln( 'Метод трапеций'); Int1(A,B,Func1);
Writeln(' шаг интегрирования равен ',H); Writeln(' Интеграл от функции на участке от ', A:4:2,' до ',B:4:2,' равен ',S:8:4);
Writeln;
Writeln( 'Метод Симпсона'); Int2(A,B,Func1);
Writeln(' шаг интегрирования равен ',H);
Writeln(' Интеграл от функции на участке от ', A:4:2,' до ',B:4:2,' равен
',S:8:4);
end.