Форум программистов, компьютерный форум CyberForum.ru

Генератор "старт-стоп"_реализация В С++, проверьте правильность написания - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что такое forward декларация функции? http://www.cyberforum.ru/cpp-beginners/thread805203.html
Вот в этом примере узнал об этом : struct S { static int i; S() { ++i; } S(const S&) { ++i; } }; int S::i = 0; int main() { S v(S());
C++ Как искать в файле и записать его в новый файл? Здравствуйте вот не могу никак решить проблему и за ранее спс кто откликнется и поможет в это нелегкой задачке не понимаю как искать в файле и записать его в новый файл уже третий день сижу кто сможет помогите Дан текстовый файл. Записать в новый текстовый файл все строки исходного файла, которые в качестве фрагмента содержат строку Str. int main() { setlocale(LC_ALL,""); http://www.cyberforum.ru/cpp-beginners/thread805201.html
C++ указатели на функцию
Доброго времени суток! Вот читал про указатели на функцию, и столкнулся с такой проблемой... Допустим, есть такой код: #include "stdafx.h" #include <iostream> using namespace std; void print(const char *temp) { wcout << temp;
Структура: Организовать поиск элемента и проверку на совпадение его с минимальным элементом списка. C++
Задачи программы. На входе задано линейный список М из n целых чисел. Известно, что большинство элементов этого списка равны нулю. Организовать связано краткое хранения этого списка, функцию поиска i-ого элемента и проверить совпадает он с минимальным элементом списка.
C++ Алгоритм Брезенхэма http://www.cyberforum.ru/cpp-beginners/thread805178.html
Разбираюсь с принципом использования Алгоритма Брезенхэма, при написании программы на С++ возникают ошибки, не могу понять по какой причине они появляются.Подскажите в чем ошибка Ниже приведен листинг программы: #include<iostream> using namespace std; void drawLine(int x1, int y1, int x2, int y2) { const int deltaX = abs(x2 - x1); const int deltaY = abs(y2 - y1); const int...
C++ Определить суму аскии кодов Ввести любую последовательность символов. Определить суму ASCII-кодов гласных и произведение ASCII-кодов согласных латинских символов заданной последовательности. подробнее

Показать сообщение отдельно
Игорь_777
0 / 0 / 0
Регистрация: 26.09.2010
Сообщений: 21
11.03.2013, 00:59     Генератор "старт-стоп"_реализация В С++, проверьте правильность написания
Доброго времени суток. Можете проверить правильность работы программы для данного задания. Заранее огромное спасибо!
программа для чередующегося генератора «стоп-пошел», псевдослучайной последовательности, с генерированной, в последовательность равную периоду генератора.
значения LFSR:
(7,1,0);
(23,5,0);
(17,6,0).



Листинг:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
#include<cstdlib.h>
#include<time.h>
using namespace std;
 
int LFSR_1(int*A,int n); //прототип функции, описывающей 1-ый ЛРСР(передается начальный массив и его размер)
int LFSR_2(int*A,int n); //прототип функции, описывающей 2-ый ЛРСР
int LFSR_3(int*A,int n); //прототип функции, описывающей 3-ый ЛРСР
void main()
{
//начальные регистры/массивы и их размерность
srand(time(0)); // Инициализируем генератор текущим временем.
const int n=22;
const int m=8;
const int c=10;
 
int A[n];
for (int i=0; i<n; i++) 
{ A[i] = rand()%2; }
 
int B[m];
for (int i=0; i<m; i++) 
{ B[i] = rand()%2; }
 
int C[c];
for (int i=0; i<c; i++) 
{ C[i] = rand()%2; }
 
//Выведем предварительно сгенерированные последовательности массивов
cout << "Ishodnue registri: \nMassiv A[" << n <<"] = {";
for (int i=0; i<n; i++) 
{ cout << A[i]; }
cout << "}\n";
 
cout << "Massiv B [" << m <<"] = {";
for (int i=0; i<m
; i++) 
{ cout << B[i]; }
cout << "}\n";
 
cout << "Massiv C [" << c <<"] = {";
for (int i=0; i<c; i++) 
{ cout << C[i]; }
cout << "}\n \n";
 
 
double Q;//переменная, принимающая значение, равное размеру последовательности в Мб
cout<<"Vvedi jelaemuyj razmer v MB? = ";
cin>>Q;
//создание потоков файлового вывода
ofstream fout;
ofstream fout;
//файлы для записи выходной последовательности
const char * Ofile="rand.dat";
const char * Ofile_2="text.txt";
unsigned char k, z;
//открытие потоков файлового ввода/вывода
fout.open (Ofile, ios::out | ios::binary);
fout.open (Ofile_2, ios::out);
for (int i=0; i< (1024*1024)*Q; i++)
{
k=0;
for (int i=7; i>=0; i--)
{
int z1=LFSR_1(B,m); //значение на выходе 1-го ЛРСР
int z2=LFSR_2(C,c); //значение на выходе 2-го ЛРСР
int z3=LFSR_3(A,n); //значение на выходе 3-го ЛРСР
z=((z1&&z2) ^ ((!z1&&z3))); //значение на выходе генератора
Fout << int(z); //запись значения в текстовый файл
//преобразование в биты
if(z==1)
k|=1<<i;
}
fout.write((char*)&k, sizeof(k)); //запись в бинарный файл
}
//закрытие файловых потоков вывода
fout.close();
fout.close();
cout<<endl<<"Vupolneno!"<<endl<<"Rezultat zapisan v "<<Ofile<<" I "<<Ofile_2 << "\n";
 
}
 
//функция, описывающая работу 1-го ЛРСР
int LFSR_1 (int*A, int n) 
{
int z;
//сложение по модулю два битов, находящихся под номерами 7,1,0
int ShiftRegister = (A [n-7-1] ^A [n-1-1] ^A [n-1]);
z=A[n-1];//значение подаваемое на выход регистра
//смещение всех битов регистра на один вправо
for (int i= (n-1); i>0; i--)
{
A[i]=A[i-1];
}
//помещение полученного бита на нулевую последовательность
A[0]=ShiftRegister;
return z;
}
 
 
//функция, описывающая работу 2-го ЛРСР
int LFSR_2 (int*A, int n) 
{
//сложение по модулю два битов, находящихся под номерами 23,5,0
int ShiftRegister = (A [n-23-1] ^A [n-5-1] ^A [n-1]);
z=A [n-1];
for (int i= (n-1); i>0;i--)
{
A[i] =A [i-1];
}
A [0] =ShiftRegister;
return z;
}
 
//функция, описывающая работу 3-го ЛРСР
int LFSR_3 (int*A, int n) 
{
int z;
//сложение по модулю два битов, находящихся под номерами 17,6,0
int ShiftRegister = (A [n-17-1] ^A [n-6-1] ^A [n-1]);
z=A [n-1];
for (int i= (n-1); i>0; i--)
{
A[i] =A [i-1];
}
A [0] =ShiftRegister;
return z;
Миниатюры
Генератор "старт-стоп"_реализация В С++, проверьте правильность написания  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru