Помогите перевести программу с Паскаля на Си
Program P1;
Var x0,x1,n,nom,N0,C1: integer;
s0,s1,sh,xt0,sm0,int0,xt1,sm1,int1, PU: real; //Описываем типы данных
function Sinus(gradus : real) : real; // Функция синуса для задания сигнала
var rad : real;
begin
rad:= gradus*Pi/180;
Sinus:= sin(rad);
end;
function integral(x:real):real; // Определенный интеграл, для использования
var //в 3 и 4 блоке структуры оптимального приема
n1,i : integer;
a,b,shag,sum,itog : real;
BEGIN
write('Начало интегрирования a = '); readln(a);
write('Конец интегрирования b = '); readln(b);
write('Количество разбиений интервала n = '); readln(n1);
shag:=(b-a)/n1;
sum:=0;
for i:=1 to n-1 do
sum := sum + sinus(shag*i+a);
sum := sum + (sinus(a)+sinus(b))/2;
itog:=(b-a)/n * sum;
Integral:=itog;
End;
Begin // Начало программы.
Randomize;
n:=Random(100); //Зададим шум, использую ГСЧ.
N0:=Random(1000);
Writeln('Ввод значения сигналов S0 и S1'); //Вводим извествые сигналы S0 и S1.
Readln(x0,x1);
s0:=sinus(x0); s1:=sinus(x1);
sh:=sinus(n);
Writeln('Предположим, что передавался сигнал:');
Readln(nom); //Будем считать что передавался либо сигнал S0, либо сигнал S1.
C1:=0; //Значение порога.
If nom=1 Then
Begin // При условии что в самом начале передавался S0.
xt0:=s0+sh; //Смесь сигнала и шума
sm0:=s0*xt0; // Результат после блока 2.
int0:=(2/N0)*integral(sm0); //Результат после блока 4.
xt1:=s1+sh; //Смесь сигнала и шума.
sm1:=s1*xt1; // Результат после блока 1.
int1:=(2/N0)*integral(sm1); //Результат после блока 3
Writeln;
PU:=s0-s1; // Блок 5.
//Пороговое устройство. Блок 6.
If PU>=C1 Then Writeln('Гипотеза Н0') //Блок 7. Гипотезы.
Else Writeln('Гипотеза Н1'); //Блок 7.
End
Else
Begin
xt1:=s1+sh; //Смесь сигнала и шума
sm1:=s1*xt1; // Результат после блока 2.
int0:=(2/N0)*integral(sm1); //Результат после блока 3
xt0:=s0+sh; //Смесь сигнала и шума
sm0:=s0*xt0; // Результат после блока 2.
int0:=(2/N0)*integral(sm0); //Результат после блока 4
Writeln;
PU:=s1-s0;
If PU>=C1 Then Writeln('Гипотеза Н0') //Блок 7. Гипотезы.
Else Writeln('Гипотеза Н1'); //Блок 7.
End;
End.
проверка на запуск:
Ввод значения сигналов S0 и S1
56 -56
Предположим, что передавался сигнал:
1
Начало интегрирования a = 0
Конец интегрирования b = 15
Количество разбиений интервала n = 1
Начало интегрирования a = 0
Конец интегрирования b = 15
Количество разбиений интервала n = 1
Гипотеза Н0