maryana070803
05.03.2020 16:42

9 задание , задание в ленте ​


9 задание , задание в ленте ​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ffbhhb
18.09.2022 12:10
Const
  {константы десятиточечного метода Гаусса}
  g10c1 = 0.9739065285 / 6.2012983932;
  g10c2 = 0.8650633667 / 6.2012983932;
  g10c3 = 0.6794095683 / 6.2012983932;
  g10c4 = 0.4333953941 / 6.2012983932;
  g10c5 = 0.1488743390 / 6.2012983932;
  g10x1 = 0.0666713443 / 6.2012983932;
  g10x2 = 0.1494513492 / 6.2012983932;
  g10x3 = 0.2190863625 / 6.2012983932;
  g10x4 = 0.2692667193 / 6.2012983932;
  g10x5 = 0.2955242247 / 6.2012983932;

function f(x: real): real;
begin
  f := x * sqr(1 - x)
end;

function gsc(a, b: real): real;
{получение суммы для метода Гаусса}
var
  p, q, s, s1, s2, s3, s4, s5: real;
begin
  p := (b + a) / 2; q := (b - a) / 2;
  s1 := g10c1 * (f(p + q * g10x1) + f(p - q * g10x1));
  s2 := g10c2 * (f(p + q * g10x2) + f(p - q * g10x2));
  s3 := g10c3 * (f(p + q * g10x3) + f(p - q * g10x3));
  s4 := g10c4 * (f(p + q * g10x4) + f(p - q * g10x4));
  s5 := g10c5 * (f(p + q * g10x5) + f(p - q * g10x5));
  s := s1 + s2 + s3 + s4 + s5;
  Result := s * (b - a)
end;

function Gauss(a, b, eps, gs: real): real;
{рекурсивная ф-ция подсчета с заданной точностью eps}
{gs - интеграл на (a,b), получать заранее}
var
  m, ia, ib: real;
begin
  m := (a + b) / 2;
  ia := gsc(a, m);
  ib := gsc(m, b);
  if abs(ia + ib - gs) > eps then
  begin
    ia := gauss(a, m, eps / 2, ia); {рекурсия для первой половинки}
    ib := gauss(m, b, eps / 2, ib){рекурсия для второй половинки}
  end;
  Result := ia + ib
end;

function Intg(a, b, eps: real): real;
begin
  Result := Gauss(a, b, eps, gsc(a, b));
end;

var
  a, b, eps, y1, y2: real;

begin
  a := 0;
  b := 1;
  eps := 1e-6;
  y1 := Intg(a, b, eps);
  y2:=sqr(b)*(sqr(b)/4-2*b/3+0.5);
  writeln('Значение интеграла по методу Гаусса: ', y1:0:8);
  writeln('Значение интеграла по формуле: ', y2:0:8);
  writeln('Абсолютная погрешность составляет: ', abs(y2-y1):0:8);
  writeln('Относительная погрешность составляет: ', abs((y2-y1)/y1)*100:0:6,'%');
end.

Тестовое решение:

Значение интеграла по методу Гаусса: 0.08333337
Значение интеграла по формуле: 0.08333333
Абсолютная погрешность составляет: 0.00000004
Относительная погрешность составляет: 0.000044%
0,0(0 оценок)
Ответ:
Mandarini123443
04.02.2020 11:35
1)

const
  n=40;
var
  a:array [1..n] of integer;
  i,k:integer;
begin
  Randomize;
  k:=0;
  Writeln('Исходный массив');
  for i:=1 to n do begin a[i]:=random(63)+20; Write(a[i],' ') end;
  Writeln; Writeln('Четные элементы, кратные 3');
  for i:=1 to n do
    if a[i] mod 6=0 then begin Inc(k); Write(a[i],' ') end;
  Writeln; Writeln('Отобрано элементов: ',k)
end.

Пример
Исходный массив
43 49 27 45 57 20 54 22 74 79 57 64 30 41 67 58 36 68 79 46 28 74 61 21 80 57 50 24 80 36 27 57 38 38 41 71 50 69 39 48
Четные элементы, кратные 3
54 30 36 24 36 48
Отобрано элементов: 6

2)

const
  n=20;
var
  a:array [1..n] of integer;
  i,imin:integer;
begin
  Randomize;
  Writeln('Исходный массив');
  imin:=1;
  for i:=1 to n do begin
    a[i]:=random(351)+20;
    Write(a[i],' ');
    if a[i]<a[imin] then imin:=i
    end;
  Writeln;
  Writeln('Минимальный элемент a[',imin,']=',a[imin])
end.

Пример
Исходный массив
292 54 248 310 181 210 263 284 255 156 177 340 173 39 108 144 270 40 318 155
Минимальный элемент a[14]=39
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота