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

Не прочитывает код - C++

Восстановить пароль Регистрация
 
Vero212
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 6
21.12.2013, 13:31     Не прочитывает код #1
Ситуация такая...в visual c++ запускается код, часть кода выполняется, но дальше не читает. Программа не вылетает, ошибку не выдает, такое чувство, что просто не видит последующие строки. (заком. только комменты) Почему может такое происходить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 13:31     Не прочитывает код
Посмотрите здесь:

Visual c++ код перевести в gcc linux код C++
C++ В чем разница между exit(код возврата) и ExitProcess (код возврата)?
C++ Не получается запустить длинный код Алгоритма Гомори, код правильный.
C++ прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши.
код, который прекрасно выполняет Code::Blocks не выполняеться в Студии, как сделатьь так чтобы Студия воспринимала этот код?? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
1908 / 1503 / 296
Регистрация: 15.12.2013
Сообщений: 5,920
21.12.2013, 13:41     Не прочитывает код #2
Скидывайте ваш код,посмотрим.
Vero212
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 6
21.12.2013, 14:20  [ТС]     Не прочитывает код #3
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
// полином
 
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <cstdlib> 
#include <fstream>
#include <string>
#include <Windows.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <ctime>
#include <math.h>
 
using namespace std;
// Объявление переменных
 
int main(){
    srand(time(NULL));
    setlocale(LC_ALL,"Russian");
    int p, v, n, dlina, k, b[1025], t, m, l, i, a[1025], j, y[1025],nesum, N = 10000;  
    int r, vvod, B[10000],masposl[100000], mposl[100000];             
    int Period = 64; //период
    fstream key("key.txt",ios::trunc|ios::out);
    ofstream posl("posl.txt",ios::trunc|ios::out);
    fstream text("text_i.txt",ios::binary);
    
    char ch, fk[64];            
    double sx=0,sy=0,sxsy=0,sxx=0,syy=0, X2,X21,X22,rrr,R,TR, Nt,NE[4];
    //float  ;          //,K,Y[1024],N1,y1[1024];
// создаем ключ
    cout<<"\n Введите m, l для функции y(x)=x^m+x^l\n";
    for(i=1;i<2;i++){
        cout<<"64>m>l\n";
        cin>>m;
        cin>>l;
        i=0;
    if (m>l&&m<64) i=1;}
    cout<<"\n Период M - последовательности T =2^m-1= ";
    Period=2;
    for(i=1;i<m;i++)
    {  
        Period=Period*2;
    }
    cout<<Period-1<<"\n";
    n = 50000;
    
//генерируем ключ и записываем его в файл
            for(i=0;i<m-1;i++){ //нач.состояние регистра
                short sr = rand()%2;
                a[i] = sr;
                key<<a[i];
            }
            a[m] = 1;
            key<<a[m];
            key.close();
            
            j=0;
            while (!key.eof()) // Пока не конец файла
        { 
            ch=(char)key.get();
            ch = ch * (-1);// Чтение посимвольно из файла key
            for (j=0; j<m; j++){
                fk[j]= ch;
            }       
            }
            nesum = 0;
        
 for(i=0; i<=n-1; i++)
    {   
        nesum=fk[m-1]^fk[l-1];
        for( j=m-1; j>=0; j--)
            if (j==0)
                fk[0]=nesum;//в первую ячейку пишем результат исключающего или
            else
                fk[j]=fk[j-1];//сдвиг ячеек
        mposl[i]=fk[m-1];
        posl<<mposl[i]<<endl;//запись последовательности в файл,записывается значение только последнего регистра
    }
    key.close();
    posl.close();//закрываем файл
 
//-------------------------------------------
            
           cout<<"Корреляционный тест"<<endl;
                for(i=0;i<(N-1);i++) {//считаем sx,sy,sx^2,sy^2,sxsy
                    sy=sy+mposl[i];
                    sx=sx+mposl[i+1];
                    sxx=sxx+mposl[i]*mposl[i];
                    syy=syy+mposl[i+1]*mposl[i+1];
                    sxsy=sxsy+mposl[i]*mposl[i+1];
                }
                rrr=((n*sxx)-(sx*sx))*((n*syy)-(sy*sy));
                R=((n*sxsy)-(sx*sy))/sqrt(rrr);//находим коэф.корреляции
                TR=1.0/(n-1)+2.0/(n-2)*sqrt((double)((__int64)n*(n-3))/(n-1));//находим теор. коэффициент корреляции
 
                cout<<"\n R = "<<R<<"\n";
                cout<<"\n TR = "<<TR<<"\n";
                
                if(R>=((-1.0)*TR) && (R<=TR)){
                    cout<<"ПСП удовлетворяет этому корреляционному тесту!";
                }else{ 
                    cout<<"ПСП не удовлетворяет этому корреляционному тесту!";
                break;
                }
                getch();
//--------------------------------------------------------------
           
               getch();
           return 0;
           }
 
}
mytilus
82 / 82 / 8
Регистрация: 04.10.2012
Сообщений: 329
21.12.2013, 18:03     Не прочитывает код #4
Где-то нарушена блочная структура. Закрывающих фигурных скобок на одну больше, чем открывающих. Также присутствует break вне цикла или блока switch. Такая программа не может быть откомпилирована.
Еще проблема с этим циклом:
C++
1
2
3
4
5
6
for(i=1;i<2;i++){
  cout<<"64>m>l\n";
  cin>>m;
  cin>>l;
  i=0;
  if (m>l&&m<64) i=1;}
i<2 всегда будет истиной, так как каждая итерация начинается с i=0 или i=1.
Дальше не смотрел.
Vero212
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 6
21.12.2013, 21:52  [ТС]     Не прочитывает код #5
Почему цикл неверный? инкремент и исключит истину i<2
Со скобками тоже все хватает. Программа компилирует, но тест не выполняет, "не видит"
S_el
1908 / 1503 / 296
Регистрация: 15.12.2013
Сообщений: 5,920
21.12.2013, 22:21     Не прочитывает код #6
Цитата Сообщение от Vero212 Посмотреть сообщение
Почему цикл неверный? инкремент и исключит истину i<2
Вам правильно говорят.Инкремент исключил бы истину,если бы дальше не шлo
C++
1
i=0
и
C++
1
i=1
в условном операторе.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2013, 22:31     Не прочитывает код
Еще ссылки по теме:

перевод десятичного вещественного в машинный код(двоичный код) C++
Перевести код программы Паскаля в код С++ C++
Нужно засунуть код инструкции в 4 char'a так, чтобы в памяти это был код инструкции. C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Vero212
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 6
21.12.2013, 22:31  [ТС]     Не прочитывает код #7
Хорошо, только проблему это не решает. но цикл я исправила
Yandex
Объявления
21.12.2013, 22:31     Не прочитывает код
Ответ Создать тему
Опции темы

Текущее время: 03:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru