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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vero212
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 6
#1

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

21.12.2013, 13:31. Просмотров 230. Ответов 6
Метки нет (Все метки)

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

C++ Объяснить почему fin.getline() прочитывает только часть строк (файловый ввод/вывод)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
2065 / 1572 / 301
Регистрация: 15.12.2013
Сообщений: 6,206
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
2065 / 1572 / 301
Регистрация: 15.12.2013
Сообщений: 6,206
21.12.2013, 22:21     Не прочитывает код #6
Цитата Сообщение от Vero212 Посмотреть сообщение
Почему цикл неверный? инкремент и исключит истину i<2
Вам правильно говорят.Инкремент исключил бы истину,если бы дальше не шлo
C++
1
i=0
и
C++
1
i=1
в условном операторе.
Vero212
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 6
21.12.2013, 22:31  [ТС]     Не прочитывает код #7
Хорошо, только проблему это не решает. но цикл я исправила
Yandex
Объявления
21.12.2013, 22:31     Не прочитывает код
Ответ Создать тему
Опции темы

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