Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2012, 22:55   #1
macoman99
Новичок
Джуниор
 
Регистрация: 24.05.2012
Сообщений: 1
По умолчанию Перевод программы с Паскаля на Си

Помогите перевести программу с Паскаля на Си

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
macoman99 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод программы с Паскаля на С Saniavoznyuk Общие вопросы C/C++ 6 13.11.2014 15:39
Перевод программы из Паскаля в Delphi GoldSieg Общие вопросы Delphi 3 26.03.2012 17:09
перевод программы с паскаля на делфи с формами mr.LeX Помощь студентам 1 06.10.2011 15:50
перевод из паскаля в с++ dANIL282 Помощь студентам 2 21.01.2011 00:05
Перевод с Паскаля на С RamilFaz Общие вопросы C/C++ 3 08.04.2010 14:40