Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Вычисление интеграла на интервале [a, B]!

Автор: 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.

Конец

Автор: can you buy zithromax in south a 20.12.2021 9:24

prix du levitra 10 mgf