Перевод кода с 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д