Вычислить функцию (перевести с Pascal) - C (СИ)
Формулировка задачи:
помогите пожалуйста перевести код с Паскаля на Си
var x, y, a, b, s_left, s_right:real; begin WriteLn('laboratornya rabota №2'); WriteLn('variant №8'); WriteLn; Write('x='); ReadLn(x); if (x>0) and (x<2) then begin if(x<1.0) then begin a:=sqrt(1.0-x*x); b:=2*arctan(a/x); s_right:=2.0*(1.0-x)-(1.0/2.0)*(b-sin(b))+pi/2.0; s_left:=2.0-s_right; y:=2.0*(1.0-a); end else if x=1 then begin y:=2; s_right:=(1.0/2.0)*pi; s_left:=2.0-s_right; end else begin y:=2.0*sqrt(1.0-(1.0-x)*(1.0-x)); B:=2*arctan(sqrt((1.0-(1.0-x)*(1.0-x))/(x-1.0))); s_right:=(1.0/2.0)*(B-sin(B)); s_left:=2.0-s_right; end; writeln('s_right=', s_right:0:2); writeln('s_left=', s_left:0:2); writeln('y=', y:0:2); end else writeln('x vne vichisleniy'); readln; end.
никто не может помочь что ли?
Решение задачи: «Вычислить функцию (перевести с Pascal)»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <stdlib.h> int main(int argc, char **argv) { double x, y, a, b, s_left, s_right; scanf("%lf", &x); if(x > 0 && x < 2) { if(x<1) { a = sqrt(1.0 - x * x); b = 2 * atan(a / x); s_right = 2.0 * (1.0 - x) - (1.0 / 2.0) * (b - sin(b)) + M_PI / 2.0; s_left = 2.0 - s_right; y = 2.0 * (1.0 - a); } else if(x == 1.0) { y = 2; s_right = (1.0 / 2.0) * M_PI; s_left = 2.0 - s_right; } else { y = 2.0 * sqrt(1.0 - (1.0 - x) * (1.0 - x)); b = 2 * atan(sqrt((1.0 - (1.0 - x) * (1.0 - x)) / ( x - 1.0))); s_right = (1.0 / 2.0) * (b - sin(b)); s_left = 2.0 - s_right; } printf("s_right = %0.2lf\n", s_right); printf("s_left = %0.2lf\n", s_left); printf("y = %0.2lf\n", y); } else { printf("out of range"); } return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: iostream.h, math.h, stdlib.h
- Задаются константы и переменные: x, y, a, b, s_left, s_right.
- С помощью функции scanf() считывается значение переменной x.
- С помощью условного оператора if() проверяется, принадлежит ли значение x определенному диапазону (0 < x < 2).
- Внутри условного оператора if() проверяется, равно ли значение x 1.
- Если значение x не равно 1, то вычисляются значения переменных a, b, s_right, s_left и y.
- Если значение x равно 1, то вычисляются значения переменных y, s_right, s_left.
- Если значение x не принадлежит диапазону (0 < x < 2), то выводится сообщение
out of range
. - Возвращается значение EXIT_SUCCESS.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д