girb13
11.05.2020 05:08

1. написать программу, содержащую процедуру для вычисления значе-ния функции (язык pascal)

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
SKYScraRPharaon
01.03.2021 11:45
Const
  eps = 0.001;

function Pow(p: real; n: integer): real;
// возвращает значение p^n
begin
  Pow := exp(n * ln(p))
end;

function Fact(n: integer): real;
// возвращает значение n!
var
  p: real;
  i: integer;
begin
  p := 1;
  for i := 1 to n do p := p * i;
  Fact := p
end;

var
  i: integer;
  a, ai: real;

begin
  a := 0;
  ai := 2 * eps;
  i := 0;
  while ai > eps do
  begin
    i := i + 1;
    ai := Pow(2 / i, i) * Fact(i);
    a := a + ai
  end;
  writeln('Сумма первых ',i, ' членов ряда с точностью ', eps:0:4, ' равна ', a:0:4)
end.

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

Сумма первых 32 членов ряда с точностью 0.0010 равна 12.9467
0,0(0 оценок)
Ответ:
Лалочка454545
22.10.2021 04:45
Var
  ast:array[1..30] of string;

procedure GetWord(s: string; var ib: integer; var pWord: string; var l: integer);
// Возвращает слово pWord, которое является подстрокой s
// Разделителем слов являются один и более пробелов.
// ib при вызове процедуры указывает на позицию в строке s,
// начиная с которой ведется поиск слова.
// При выходе из процедуры ib - позиция начала найденного слова,
// l- длина найденного слова, l=0 если слово не найдено.
var
  i, n: integer;
  w: string;
begin
  n := Length(s);
  l := 0;
  w := '';
  if ib >= n then begin
    ib := n;
    pWord := ''
  end
  else begin
    i := ib;
    while (s[i] = ' ') and (i < n) do i := i + 1;
    ib := i;
    w := '';
    while (s[i] <> ' ') and (i < n) do
    begin
      w := w + s[i];
      i := i + 1
    end;
    if i < n then begin
      l := i - ib;
      pWord := w
    end
    else begin
      l := i - ib + 1;
      pWord := w + s[n]
    end;
    if pWord[l]='.' then pWord:=Copy(pWord,1,l-1)
  end
end;

procedure SortWords(n:integer);
// Сортировка первых n элементов массива ast
var
  i,j:integer;
  s:string;
begin
  for i:=1 to n-1 do
    begin
    if ast[i]>ast[i+1] then
      begin
      s:=ast[i]; ast[i]:=ast[i+1]; ast[i+1]:=s;
      j:=i;
      while j>1 do
        if ast[j]<ast[j-1] then
          begin
          s:=ast[j]; ast[j]:=ast[j-1]; ast[j-1]:=s;
          j:=j-1
          end
        else j:=0
      end
    end
end;

var
  s,st:string;
  p,n,i,len:integer;
  Flag:Boolean;
begin
  st:='    aquila non captat muscas   ';
  st:=st+'dolus an   virtus quis in hoste requirat  ';
  st:=st+'de mortuis aut bene aut nihil ';
  st:=st+'esse oportet ut vivas non vivere ut edas.';
  p:=1; i:=1; len:=1; n:=0;
  while len>0 do
    begin
    GetWord(st,p,ast[i],len);
    if len>0 then begin
      p:=p+len;
      n:=n+1;
      i:=i+1
      end
    end;
  for i:=1 to n do write(ast[i],' ');
  SortWords(n);
  writeln;
  writeln;
  s:=ast[1];
  Flag:=True;
  for i:=2 to n do
    if ast[i]<>s then
      begin
      If Flag then write(s,' ')
      else Flag:=True;
      s:=ast[i];
      end
    else Flag:=False;
  if Flag then write(ast[n],' ');
  writeln
end.

Тестовое решение:
aquila non captat muscas dolus an virtus quis in hoste requirat de mortuis aut bene aut nihil esse oportet ut vivas non vivere ut edas

an aquila bene captat de dolus edas esse hoste in mortuis muscas nihil oportet quis requirat virtus vivas vivere
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота