Перевод кода с PABC - Turbo Pascal

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

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

Люди добрые, помоги пожалуйста. Написал 2 программы ( 2 программу писал не сам ) только сейчас узнал, что нужно написать на turbo pascal, но сколько ТП я скачивал, выдают несовместимость с системой. Прошу, можете мои программы скинуть, на ТП?

Решение задачи: «Перевод кода с PABC»

textual
Листинг программы
function Arcsin (x : real) : real;
begin
  Arcsin := Arctan(x/Sqrt(1-sqr(x)));
end;
 
function Power (number, exponent : real) : real;
begin
  Power := Exp(exponent*Ln(number));
end;
 
var
  x: Array [1..10] of real;
  y: Array [1..10] of real;
  a, b, n, i, k: integer;
  h, y1min, y2min, y1max, y2max, sry, M, D: real;
  dannye: text;
 
begin
  writeln('y= (x^3)/((x[i]+1)*(x[i]+2)))+(arcsin(1-x[i])/(1-ln(x[i])^1/3))');
  writeln('a:', ' b:', ' n:'); {// Ввод а, b, n}
  read(a, b, n);
  h := (b - a) / (n + 1); {// Нахождение h}
  writeln('Массив x');
  for i := 1 to (n) do
  begin
    x[i] := a + (i - 1) * h; {// Нахождение x[i]}
    write( x[i]:10:3);
  end;
  writeln;
  writeln;
 
  writeln(' Массив y');
  for i := 1 to (n) do
  begin
    {// Нахождение y[i]}
    y[i] := (power(x[i], 3) / ((x[i] + 1) * (x[i] + 2)))
             + (arcsin(1 - x[i]) / (power(1 - ln(x[i]), 1 / 3)));
    write(y[i]:10:3);
  end;
 
  writeln;writeln;
  y1min := y[1];
  y2min := y[2];
  for i := 2 to (n) do
 
    if y[i] < y1min then y1min := y[i]; {//Нахождение y1min}
 
  if (y[i] < y2min) and (y2min <> y1min) then {//Нахождение y2min}
    y2min := y[i];
 
  
  writeln('y1min:', y1min:10:3);
  writeln('y2min:', y2min:10:3);
  writeln;writeln;
  
  y1max := y[1];
  y2max := y[2];
  
  for i := 2 to (n) do
  begin
    if y[i] > y1max then y1max := y[i]; {//Нахождение y1max}
 
    if ((y2max <> y1max) and (y[i] > y2max)) then {//Нахождение y2max}
      y2max := y[i];
  end;
  writeln('y1max:', y1max:10:3);
  writeln('y2max:', y2max:10:3);
  sry := 0;
  for i := 1 to (n) do
    sry := sry + y[i]; {// //Нахождение среднего значения y}
  writeln('sry:', sry / (n + 1):10:3);
  M := 0;
  for i := 1 to (n) do
  begin
    M := M + (sqr(y[i] - sry)) / (n + 1); {// Нахождение М}
    D := sqrt(M); {// Нахождение D}
  end;
  writeln('M:', M:10:3, ' D:', D:10:3);
 
  Assign(dannye, 'dannye.txt'); {// Запись результатов в файл}
  rewrite(dannye);
  writeln(dannye, 'Исходные данные');
  writeln(dannye, 'f(x)=(x^3)/((x[i]+1)*(x[i]+2)))+(arcsin(1-x[i])/(1-ln(x[i])^1/3))');
  writeln(dannye, 'Massiv X');
  for i := 1 to 5 do
    write(dannye, x[i]:10:3, '');
  writeln(dannye, '');
  for i := 6 to 10 do
    write(dannye, x[i]:10:3, '');
  writeln(dannye, '');
  writeln(dannye, 'Massiv Y');
  for i := 1 to 5 do
    write(dannye, y[i]:10:3, '');
  writeln(dannye, '');
  for i := 6 to 10 do
    write(dannye, y[i]:10:3, '');
  writeln(dannye, '');
  writeln(dannye, ' y1min:', y1min:5:3, ' y2min:', y2min:5:3);
  writeln(dannye, ' y1max:', y1max:5:3, ' y2max:', y2max:5:3);
  close(dannye); {// Закрытие файла и сохранение}
end.

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

Этот код написан на языке Turbo Pascal и выполняет следующие действия:

  1. Переводит функцию Arcsin из PABC в код на Turbo Pascal.
  2. Определяет переменные и константы для задачи.
  3. Вводит значения а, b и n для массивов x и y с помощью функции read.
  4. Находит среднее значение y с помощью формулы средней арифметической.
  5. Находит максимальное и минимальное значения y с помощью условных операторов.
  6. Записывает результаты в файл dannye.txt с помощью функции Assign и функции Rewrite.
  7. Выводит исходные данные и результаты на экран с помощью функции Writeln.
  8. Выводит значения x и y в файл dannye.txt с помощью функции Write.
  9. Закрывает файл dannye.txt с помощью функции Close.

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


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

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

7   голосов , оценка 4.286 из 5