• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Посмотрите пожалуйста, как делать?

  • Автор темы Автор темы Анел
  • Дата начала Дата начала

Анел

Ученик
Регистрация
2 Окт 2010
Сообщения
2
Реакции
0
Баллы
0
Посмотрите пожалуйста, как делать?

1. составить программу на языке паскаль для вычисления корней уравнения методом половинного деления
Точность вычислений 10 (в -3 степени)

3х-0,9*Cosx-1=0


2. составить программу на языке паскаль для вычисления определенного интеграла методом трапеций
Точность вычислений 10 (в -3 степени)

интеграл (от 0 до П/2) (Cosx+2) dx
 
1. составить программу на языке паскаль для вычисления корней уравнения методом половинного деления
Точность вычислений 10 (в -3 степени)

3х-0,9*Cosx-1=0
Вроде бы так... вычисляет функцию на интервале от a до b
Код:
program mdp;

function f(x: real): real;

begin

f:=3*x-0.9*cos(x)-1;

end;

var

a, b, e, c, x: real;

begin

a:=0;

b:=1;

e:=0.001;

c:=(a+b)/2;

while abs(b-a)>e do

begin

if f(a)*f(c)<0 then

b:=c

else

a:=c;

c:=(a+b)/2;

end;

x:=(a+b)/2;

writeln ('x=',x:3:3,' f(x)=',f(x):4:4);

readln;

end.
 
2. составить программу на языке паскаль для вычисления определенного интеграла методом трапеций
Точность вычислений 10 (в -3 степени)

интеграл (от 0 до П/2) (Cosx+2) dx
Например, так:
Код:
CONST
 Xmin=0.0;
 Xmax=Pi/2;
 Eps=0.0001;
VAR
 h,Sbef,Saft,Rel:Real;

FUNCTION f(Xf:Real):Real;
 begin
  f:=Cos(Xf)+2;
 end;

FUNCTION SUM(Hs:Real):Real;
 Var
  Ns,i:Integer;
  SM:Real;
 begin
  Ns:=ROUND((Xmax-Xmin)/Hs);
  SM:=0;
  For i:=0 to Ns-1 do
   SM:=SM+Hs/2*(f(Xmin+Hs*i)+f(Xmin+Hs*(i+1)));
  SUM:=SM;
 end;

BEGIN
 h:=Xmax-Xmin;
 Sbef:=SUM(h);
 Repeat
  h:=h/2;
  Saft:=SUM(h);
  Rel:=ABS((Saft-Sbef)*2/(Saft+Sbef));
  Sbef:=Saft;
 Until Rel<Eps;
 WriteLn('        Result: ',Sbef:6:4);
 WriteLn('Accurate value: ',(1.0+Pi):6:4);
 ReadLn;
END.
 
2. составить программу на языке паскаль для вычисления определенного интеграла методом трапеций
Точность вычислений 10 (в -3 степени)

интеграл (от 0 до П/2) (Cosx+2) dx
Чуток не успел :) ну да ладно хоть ответ проверил
Код:
program Integral;
uses
Crt, Dos;
var
dx,x1,x2,e,i:real;
function Fx(x:real):real;
begin
Fx:=cos(x)+2;
end;

procedure CountViaTrap;
var
xx1,xx2,xx3:real;
c:longint;
begin
writeln('Iterations:',round(abs(x2-x1)/e));
i:=0;
for c:=1 to round(abs(x2-x1)/e) do begin
write('Iteration ',c,chr(13));
xx1:=Fx(x1+c*e);
xx2:=Fx(x1+c*e+e);
if xx2>xx1 then xx3:=xx1 else xx3:=xx2;
i:=i+abs(xx2-xx1)*e+abs(xx3)*e;
end;
writeln('integral = ',i);
end;

begin
writeln('x1= 0 '); x1:=0;
writeln('x2=pi/2 '); x2:=pi/2;
writeln('e=0.001 '); e:=0.001;
CountViaTrap;
ReadLn;
end.
 
Огромное спасибо за быстрое решение!!! :)
 
Назад
Сверху