Перевод кода с 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 и выполняет следующие действия:
- Переводит функцию Arcsin из PABC в код на Turbo Pascal.
- Определяет переменные и константы для задачи.
- Вводит значения а, b и n для массивов x и y с помощью функции read.
- Находит среднее значение y с помощью формулы средней арифметической.
- Находит максимальное и минимальное значения y с помощью условных операторов.
- Записывает результаты в файл dannye.txt с помощью функции Assign и функции Rewrite.
- Выводит исходные данные и результаты на экран с помощью функции Writeln.
- Выводит значения x и y в файл dannye.txt с помощью функции Write.
- Закрывает файл dannye.txt с помощью функции Close.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д