Всем доброго времени суток! Помогите кто-нибудь, пожалуйста, кому не составит труда переписать код на шарп.
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
| // Перегрузка оператора для вывода русских букв
ostream& operator<<(ostream& out, const char* str)
{
char buf[100];
if(CharToOem(str, buf))
{
for(int i = 0; str[i] != 0; i++)
out << buf[i];
}
return out;
}
int main(int argc, char* argv[])
{
int column=0;
int str=0;
int i=0;
int granSlov;
const int N=3;
const int M=9;
char temp;
int kolvo=0;
int flagVhod=0;
char tableTris [N][M];
char codSlov[255];
char rezultKod[255];
char tempArray[27];
cout<<"Введите ключевое слово:"<<endl;
// заполнение массива пользователем
for(i=0; i<27; i++)
{ char c= cin.get();
if (c != 'n')
{
tempArray[i]=c;
}
else{break;}
}
granSlov=i;
// сортировка массива
for(int k=1; k<i; k++)
{
for (int j=0; j<i-k; j++){
if (tempArray[j]>tempArray[j+1]){
temp=tempArray[j];
tempArray[j]=tempArray [j+1];
tempArray[j+1]=temp;
}
}}
// удаление совпадений
for(int j=1; j<i;j++)
{
if(tempArray[j]==tempArray[j-1])
{
tempArray[j]=tempArray[j+1];
}
if(tempArray[j]==tempArray[j+1])
{
tempArray[j+1]=tempArray[j+2];
}
}
// дополнение массива алфавитом
for(char z='a'; z<='|'; z++)
{
flagVhod=0;
for(int k=0; k<27; k++)
{
if(tempArray[k]==z)
{
flagVhod+=1;
}
}
if(flagVhod==0)
{
tempArray[i]=z;
i++;
}
}
// вывод полученного массива
cout<<endl<<"Полученный массив для составление матрицы"<<endl;
for(int k=0; k<27; k++)
{
cout<<tempArray[k]<<" ";
}
// заполнение матрицы
cout<<endl;
int s=0;
for (int k=0; k<N; k++)
{
for(int j=0; j<M; j++)
{
if(tempArray[s]!='')
{
tableTris[k][j]=tempArray[s];
s++;
}
else {break;}
}
}
// вывод матрицы
cout<<endl<<"Матрица Трисемуса"<<endl;
for (int k=0; k<N; k++)
{
for(int j=0; j<M; j++)
{
cout<<tableTris[k][j]<<" ";
}
cout<<endl;
}
//------------------- кодирование---------------------------
cout<<endl<<"Введите слово для шифрования"<<endl;
for(int k=0; k<27; k++)
{
char c= cin.get();
if (c != 'n')
{
codSlov[k]=c;
kolvo++;
}
else{break;}
}
int l=0;
for(int x=0; x<kolvo; x++)
{
for (int k=0; k<N; k++)
{
for(int j=0; j<M; j++)
{
if(tableTris[k][j]==codSlov[x])
{
if(k!=2)
{
rezultKod[l]=tableTris[k+1][j];
l++;
}
else{ rezultKod[l]=tableTris[0][j];
l++;
}
}
}
}
}
cout<<"Результат шифрования"<<endl;
for(int x=0; x<kolvo; x++)
{
cout<<rezultKod[x]<<" ";
}
while(1);
return 0;
} |
|