![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 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 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перевод программы с Паскаля на С | 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 |