Автор: BDS 4.06.2003 19:31
Почти такая же фигня - еще две проги:
1. Составить программу на языке Turbo Pascal 7.0 вычисления значения интеграла на интервале [a, b] для функции, заданной графически. Значение интеграла вычислить приближённо по итерационной формуле левых прямоугольников. Границы интервала вычислений a и b, радиус R, d, c, точность вычисления интеграла E - всё это вводится с экрана!
2. Вычислить среднее арифметическое значение отрицательных элементов матрицы А(К,К), К <= 70, расположенных под главной диагональю.
[hr]Сами проги у меня есть (если кому надо, могу кинуть). Но проблема в том, что их тоже надо с Ассемблерными вставками сделать! Если кто может помочь, пишите!
Автор: BDS 4.06.2003 19:39
Вот первая прога:
Код
program KKR1;
uses crt;
var
E,a,b,s,h,R,x,d,c,integ,integlast:real;
i:integer;
p:Char;
n:longint;
function func(x:real):real; {определение функции в точке x}
begin
if x<=-2*R then func:=d
else
if x<=0 then func:=sqrt(x*(-x-2*R))
else
if x>2*R then func:=c
else
func:=-sqrt(x*(-x+2*R))
end;
begin {ввод исходных данных}
ClrScr;
integ:=0;
n:=2;
repeat
repeat
write('Введите границы интервала вычислений a и b (a<b): ');readln(a,B);
until a<b;
repeat
write('Введите радиус R (R>0): ');readln®;
until r>0;
repeat
write('Введите d (d<0): ');readln(d);
until d<0;
repeat
write('Введите c (c>0): ');readln(c);
until c>0;
repeat
write('Введите точность вычисления интеграла E (E>0): ');readln(E);
until E>0;
ClrScr;
writeln(' a=',a:5:2,' b=',b:5:2,' d=',d:5:2,' c=',c:5:2,' R=',r:5:2, ' E=',E:2:4);
write('Все верно ? (y/n): ');
readln(p);
until ((p='y') or (p='Y')); {повторять ввод данных пока нет подтверждения о его правильности}
ClrScr;
writeln('Идет подсчет!');
repeat
begin
ClrScr;
writeln('n=',n);
h:=(b-a)/n; {расчет шага изменения аргумента}
s:=0;
for i:=1 to n do
begin
x:=a+i*h; {приращение аргумента}
s:=s+func(x); {сумма значений функции на отрезке [a,b]}
end;
Integlast:=Integ; {сохранение предыдущего значения интеграла}
n:=n*2;
Integ:=h*s; {расчет интеграла}
end until (abs(Integ-Integlast)<E);
ClrScr;
writeln('Значение интеграла на интервале [',a:0:2,',',b:0:2,'] для функции,');
writeln('заданной графически равно: ',Integ:0:4);
readkey;
end.
Конец
Автор: BDS 4.06.2003 19:43
Вот вторая прога:
Код
program KKR3;
uses crt;
const n=5;
var
i,j,p,m:integer;
minus:real;
A: array [1..n,1..n] of integer;
begin
ClrScr;
writeln('Программа вычисляет среднее арифметическое значение');
writeln('отрицательных элементов матрицы A(K,K), K<=70,');
writeln('расположенных под главной диагональю.');
randomize;
for i:=1 to n do
begin
writeln;
for j:=1 to n do
begin
A[i,j]:=random(120)-50;
write(A[i,j]:4);
end;
end;
writeln;
minus:=0;
m:=0;
for i:=2 to n do
for j:=1 to i-1 do
begin
if A[i,j]<0 then
begin
minus:=minus+A[i,j];
Inc(m)
end;
end;
if m<>0 then
begin
writeln;
writeln('Среднее арифметическое значение отрицательных элементов матриицы,');
writeln('расположенных под главной диагональю равно: ',minus/m:0:2);
end
else
begin
writeln('Количество отрицательных членов равно 0');
end;
readkey;
end.
Конец