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

Почему не взяли на обучение в CQG, на сайте нашел испытательное задание, сделал и отослал. Не взяли и не объяснили почему. Хочу услышать мнения. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Печать чисел от 1 до N http://www.cyberforum.ru/cpp-beginners/thread364089.html
Здраствуйте, я новичок в с++ , прохожу учебник с++ not fear. И вот в конце темы просят сделать упражнение а я не могу понять как его сделать , помогите если не сложно. код : #include <iostream> using namespace std; int main() { int i,n;
C++ Прошу оценить свой уровень Код во вложениях http://www.cyberforum.ru/cpp-beginners/thread364082.html
Вопрос про char C++
Пожалуйста обьясните доступным языком в чем разница между объявлениями, и какие когда лучше использовать char a; char *c; char b=new char в интернете много по этому поводу есть, но их сравнения я не нашел
C++ симафор или нет?
ПРивет всем! написал программу для следующего задания с использованием симафора: Написать программу, создающую два потока. Оба потока одновременно читают один и тот же текстовый файл. Первый поток считает количество символов в файле, второй количество пробелов. После окончания потоки должны создать один файл, записать в него результаты работы и идентифицировать себя; Это правильно...
C++ Бинарный поиск http://www.cyberforum.ru/cpp-beginners/thread364028.html
Вот вроде бы всё работает только как-то не очень правильно не находит 2 позицию в массиве и пред последнею может ещё что-то не находит , я не вижу что не так. #include <iostream> #include <stdio.h> #include <conio.h> #include <ctime> using namespace std; void main(){ srand((unsigned)time(0));
C++ Работа со строками Помогите пожалуйста нужна функция копирования из одной строки в другую начиная с к символов.Вот прототип void copy(char *str1,int k,char *str2) подробнее

Показать сообщение отдельно
nikola166
 Аватар для nikola166
8 / 8 / 0
Регистрация: 18.03.2010
Сообщений: 142
10.10.2011, 16:16     Почему не взяли на обучение в CQG, на сайте нашел испытательное задание, сделал и отослал. Не взяли и не объяснили почему. Хочу услышать мнения.
/ Программа получает на вход текстовый файл и расшифровывает его первую строчку получая ключ.
//



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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include "stdafx.h"
//Запрещенные биграммы, т.е. для буквы А запрещено Q и т.д. Биграммы взяты из книги А.П.Алферов "Основы криптографии". это быиграммы запрещены для литературно текста. 
char A[1]={'Q'};
char B[15]={'B','C','D','F','G','H','K','M','N','P','Q','V','W','X','Z'};//запрещенные биграммы вида: 'BB' и т.д.
char C[11]={ 'B', 'F', 'G', 'J', 'N', 'Q',  'S', 'V', 'W', 'X','Z'};
char D[4]={  'J', 'Q',  'X', 'Z'};
char E[1]={'Z'};
char F[2]={'K','Z'};
char G[5]={'J','K','V','X','Z'};
char H[8]={'D','J','K','L','V','X','Z','Q'};
char I[4]={'I','J','W','Y'};
char J[21]={ 'B', 'C', 'D',  'F', 'G', 'H',  'J', 'K', 'L', 'M', 'N', 'P','Q', 'R', 'S', 'T',  'V', 'W', 'X', 'Y','Z'};
char K[18]={ 'B', 'C', 'D',  'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M','P','Q', 'R',  'V', 'W', 'X', 'Z'};
char L[3]={'V','X','Z'};
char M[9]={'D','F','G','J','K','L','V','X','Z'};
char N[1]={'Z'};
char O[4]={'J','K','Q','X'};
char P[12]={ 'C', 'D',  'F', 'G',  'J', 'K',  'N', 'Q',  'V', 'W',  'Y','Z'};
char Q[25]={'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P','Q', 'R', 'S', 'T',  'V', 'W', 'X', 'Y','Z'};
char R[3]={'Q','X','Z'};
char S[3]={'K','X','Z'};
char T[4]={'K','Q','X','Z'};
char U[7]={'H','J','U','W','X','Y','Z'};
char V[20]={ 'B', 'C',  'F', 'G', 'H',  'J', 'K', 'L', 'M', 'N',  'P','Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Z'};
char W[13]={'D','F','G','J','K','P','Q','R','U','V','X','Y','Z'};
char X[18]={ 'B',  'D', 'E',  'G', 'H',  'J', 'K', 'L', 'M', 'N', 'Q', 'R', 'S',  'U', 'V',  'X', 'Y','Z'};
char Y[7]={'J','K','U','V','X','Y','Z'};
char Z[24]={ 'B', 'C', 'D', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P','Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z'};             
//Английский алфавит
char EngAlphabet[26]={'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P','Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z'};
int Search1(char KOL[],int n);//функция предназначенная для отбрасывания неправильных переводов
int Search(char m);//функция для поиска индекса буквы в ангийском алфавите
int Search2(char k[], char n,int m);//функция поиска запрещеных биграм, если биграмма запрещена возвращает 1
void main()
{
        
                
        string name;//название файла
        cout<<"Enter name file"<<endl;
        cin>>name;
        FILE * shifr;
    char str[100000];
        shifr = fopen (name.c_str() , "r");
        if (shifr != NULL) //если файл открылся
        {
                fgets(str,sizeof(str),shifr); 
        
     }
        else
        {
                cout<<"File not open"<<endl;
        }
        
         
         for(int i=0;str[i];i++)
        {
                str[i]=toupper(str[i]);//преводим в верхний регистр
        }
         int n=strlen(str);
         char *rashifr=new char[n];//массив для расшифрованного текста
        for(int k=1;k<26;k++)//перебираем все возможные ключи
         {
                 for(unsigned int i=0;i<strlen(str);i++)//расшифровываем текст с ключем к
                 {
                         if(str[i]>='A'&&str[i]<='Z')
                         {
                                 int h=Search(str[i]);
                                 if(h-k<0)h+=26;
                                 int num=(h-k)%26;
                                 
                                 rashifr[i]=EngAlphabet[num];
                                 
 
                         }
                         else
                         {
                                 rashifr[i]=str[i];
                         }
                        
                 
                
                 }
                 
                if(Search1(rashifr,n)==0)//если запрещенных биграмм нет то функция возвратит 0
                {
                        cout<<"Possible variant:"<<endl;
                         for(unsigned int i=0;i<n;i++)
                                cout<<rashifr[i];//расшифровка не имеющая запрещенных биграмм
                         
                         cout<<"Key:"<<k<<endl;//возможный ключ
                }
        }
}
        
         int Search(char m)
         {
                 for(int i=0;i<26;i++)
                 {
                         if(m==EngAlphabet[i])
                         {
                                 return i;//возвращает индекс буквы m в английском алфавите
                         }
                        }
                 return -1;
         }
         int Search2(char k[], char n,int m)
         {
                
                 for(unsigned int i=0;i<m;i++)
                 {
                         if(n==k[i])//если запрещенная биграмма найдена
                         {
                                 return 1;
 
                         }
                         
                 }
                 return 0;
 
         }
         
         int Search1(char KOL[],int n)
         {
                 
                 
                        int f=0;
                 int m=0;
                 for(int i=0;i<n;i+=2)//начинаем просматривать расшифровку по биграммам
                 {
                        
                        
                        if(KOL[i+1]!=' '||KOL[i+1]!='_'||KOL[i+1]!=','||KOL[i+1]!='.'||KOL[i+1]!='?'||KOL[i+1]!='!'){//если вторая буква в биграмме не . или не , или не ! или не ? или не _
                        char name=KOL[i];//название массива
                        
                        switch(name)
                        {
                        case 'A':m=1; if(Search2(A,KOL[i+1],m)>0){f++;} break;//если в массиве А найдена запрещенная биграмма прибавляем f;
                                case 'B': m=15;if(Search2(B,KOL[i+1],m)>0){f++;} break;
                                        case 'C': m=11;if(Search2(C,KOL[i+1],m)>0){f++;}break;
                                                case 'D':m=4; if(Search2(D,KOL[i+1],m)>0){f++;}break;
                                                        case 'E':m=1; if(Search2(E,KOL[i+1],m)>0){f++;}break;
                                                                case 'F':m=2; if(Search2(F,KOL[i+1],m)>0){f++;}break;
                                                                        case 'G':m=5; if(Search2(G,KOL[i+1],m)>0){f++;} break;
                                                                                case 'I':m=4;if(Search2(I,KOL[i+1],m)>0){f++;} break;
                                                                                        case 'J':m=21;if(Search2(J,KOL[i+1],m)>0){f++;} break;
                                                                                                case 'H':m=8; if(Search2(H,KOL[i+1],m)>0){f++;;}break;
                        
                        case 'K':m=18; if(Search2(K,KOL[i+1],m)>0){f++;}break;
                                case 'L':m=3; if(Search2(L,KOL[i+1],m)>0){f++;}break;
                                        case 'M':m=9; if(Search2(M,KOL[i+1],m)>0){f++;}break;
                                                case 'N':m=1; if(Search2(N,KOL[i+1],m)>0){f++;}break;
                                                        case 'O':m=4; if(Search2(O,KOL[i+1],m)>0){f++;}break;
                                        
                        case 'P':m=12; if(Search2(P,KOL[i+1],m)>0){f++;}break;
                        case 'Q':m=25; if(Search2(Q,KOL[i+1],m)>0){f++;}break;
                                case 'R':m=3; if(Search2(R,KOL[i+1],m)>0){f++;}break;
                                        case 'S':m=3; if(Search2(S,KOL[i+1],m)>0){f++;}break;
                                                case 'T':m=4; if(Search2(T,KOL[i+1],m)>0){f++;}break;
                                                        case 'U':m=7; if(Search2(U,KOL[i+1],m)>0){f++;}break;
                                                                case 'V':m=20; if(Search2(V,KOL[i+1],m)>0){f++;}break;
                                                                        case 'W':m=13; if(Search2(W,KOL[i+1],m)>0){f++;}break;
                        case 'X':m=18; if(Search2(X,KOL[i+1],m)>0){f++;}break;
                                case 'Y':m=7; if(Search2(Y,KOL[i+1],m)>0){f++;}break;
                                        case 'Z':m=24; if(Search2(Z,KOL[i+1],m)>0){f++;}break;
                        }
 
                        }
                 }
                return f;//возвращаем количество запрещенных биграм, если таковых нет фозвращаем 0
         }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru