Перенести из C++ в Pascal ABC

Узнай цену своей работы

Формулировка задачи:

помогите пожалуйста перенести из C++ в Pascal ABC
и буду премного благодарен если эту тоже получится перевести в pascal ABC

Решение задачи: «Перенести из C++ в Pascal ABC»

textual
Листинг программы
var
  n, i, j, k: integer;
  eps, norma, w: real;
  A: array [0..9,0..9] of real;
  B, x, xn: array [0..9] of real;
begin
  Assign(input,'input.txt'); Assign(output,'output.txt');
  Reset(input); Rewrite(output);
  ReadLn(n);
  for i:=0 to n-1 do for j:=0 to n-1 do Read(A[i,j]);
  for i:=0 to n-1 do Read(B[i]);
  ReadLn(eps,w);
  for i:=0 to n-1 do begin
    xn[i]:=0; x[i]:=0;
  end;
  repeat
    inc(k);
    norma:=0;
    for i:=0 to n-1 do begin
      x[i]:=B[i];
      for j:=0 to n-1 do
        if i<>j then x[i]:=x[i]-A[i,j]*x[j];
      x[i]:=x[i]/A[i][i];
      x[i]:=w*x[i]+(1-w)*xn[i];
      if abs(x[i]-xn[i])>norma then norma:=abs(x[i]-xn[i]);
      xn[i]:=x[i];
    end;
  until norma<=eps;
  WriteLn('Кол-во итераций: ',k);
  for i:=0 to n-1 do Write('x [',i+1,'] = ',x[i],'; ');
  WriteLn;
end.

Объяснение кода листинга программы

  1. В начале кода объявляются переменные: n, i, j, k, eps, norma, w, A, B, x, xn.
  2. Затем происходит назначение именованных переменных файлам ввода и вывода с помощью функции Assign.
  3. Функция Reset сбрасывает буфер ввода, а функция Rewrite записывает буфер вывода в файл.
  4. Далее происходит чтение значений переменных n и eps из файла ввода.
  5. Затем происходит чтение значений переменных A[i,j] и B[i] из файла ввода для каждого i и j от 0 до n-1.
  6. После этого происходит инициализация переменных xn[i] и x[i] для каждого i от 0 до n-1.
  7. Далее идет цикл, который выполняется n-1 раз. В каждой итерации цикла выполняются следующие действия:
    • x[i] устанавливается равным B[i].
    • Для каждого j от 0 до n-1, если i не равно j, то x[i] устанавливается равным разности x[i] и x[j] умноженной на A[i,j].
    • x[i] устанавливается равным x[i]/A[i][i].
    • x[i] устанавливается равным wx[i]+(1-w)xn[i].
    • Если абсолютное значение x[i] - xn[i] больше нормы, то норма устанавливается равной абсолютному значению разности x[i] и xn[i].
    • xn[i] устанавливается равным x[i].
    • Если условие abs(x[i]-xn[i])<=eps выполняется, то цикл завершается.
  8. После завершения цикла выводится количество итераций, а затем выводятся значения переменных x[i] для каждого i от 0 до n-1.
  9. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы