→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Расшифровка сообщения матричным методом 
Автор Сообщение
Начинающий

Регистрация: 15.06.2015
Сообщения: 1

Репутация: 0 [ ? ]
Сообщение Расшифровка сообщения матричным методом
Доброго времени суток всем!
Возникла проблема, походу пустчная, но в упор не понимаю, где засела. Написл код для шивровки матричным методом, решил расшифровать это сообщение. В нем 9 трехзначных чисел.
Код компилится, выводит на экран эти цифры, забивает их в матрицу, ввожу ключ(отрицательные элементы на побочной диагонали) и после того как должно вывести текст ничего не выводит. Пожалуйста, помогите, в чем проблема? Очень нужен этот код.

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include<iostream.h>

void main()
{
int i=0,j=0,count=0,c,l,sim[20];
FILE *f1;
if ((f1=fopen("D:\\SHIFR.txt","r"))==NULL)
{
printf("Error! Cannot open file");
getch();
return;
}
while( i < sizeof( sim ) && fscanf(f1,"%d",&l) == 1 )
{
sim[i]=l;
i++;
count++;
}
c=count;
printf("\n Text dla deshufracii:\n\n");
printf(" ");
for(count=0;count<c;count++)
{
printf("%d ",sim[count]);
}
printf("\n");
fclose(f1);
printf("\n\n Kilkst simvoliv : %d\n",count);


int m,n,a[50][50],key[50][50],bukv_cifr[50][50];
char deshifr[50][50];
printf("\n\n Vvedit kilkist rjadkiv klucha m=");
scanf("%d",&m);
printf("\n Vedit vvedit kilkist stovpciv klucha n=");
scanf("%d",&n);
printf("\n");
printf(" Povidomlennya u vigladi matrici:\n");
for(i=1;i<m+1;i++)
{
printf("\n");
for(j=0;j<n;j++)
{
count=n*(i-1)+j;
a[i][j]=sim[count];
printf (" %d\t",a[i][j],",");
}
}
getch();
clrscr();

printf("\nVvedit matricu kluchiv %d na %d",m,n);
for(i=0;i<m;i++)
{
printf("\n");
for(j=0;j<n;j++)
{
printf("\nkey[%d][%d]=",i,j);
scanf("%d",&key[i][j]);
}
}
int p=0;
getch();
clrscr();
printf("\n");
for(i=1;i<m+1;i++)
{
for(j=0;j<n;j++)
{
bukv_cifr[i][j]=0;
for(p=0;p<n;p++)
{
bukv_cifr[i][j]+=a[i][p]*key[p][j];
}
}
}
for(i=1;i<m+1;i++)
{
for(j=0;j<n;j++)
{
if(bukv_cifr[i][j]==1){deshifr[i][j]='a';}
if(bukv_cifr[i][j]==2){deshifr[i][j]='b';}
if(bukv_cifr[i][j]==3){deshifr[i][j]='c';}
if(bukv_cifr[i][j]==4){deshifr[i][j]='d';}
if(bukv_cifr[i][j]==5){deshifr[i][j]='e';}
if(bukv_cifr[i][j]==6){deshifr[i][j]='f';}
if(bukv_cifr[i][j]==7){deshifr[i][j]='g';}
if(bukv_cifr[i][j]==8){deshifr[i][j]='h';}
if(bukv_cifr[i][j]==9){deshifr[i][j]='i';}
if(bukv_cifr[i][j]==10){deshifr[i][j]='g';}
if(bukv_cifr[i][j]==11){deshifr[i][j]='k';}
if(bukv_cifr[i][j]==12){deshifr[i][j]='l';}
if(bukv_cifr[i][j]==13){deshifr[i][j]='m';}
if(bukv_cifr[i][j]==14){deshifr[i][j]='n';}
if(bukv_cifr[i][j]==15){deshifr[i][j]='o';}
if(bukv_cifr[i][j]==16){deshifr[i][j]='p';}
if(bukv_cifr[i][j]==17){deshifr[i][j]='q';}
if(bukv_cifr[i][j]==18){deshifr[i][j]='r';}
if(bukv_cifr[i][j]==19){deshifr[i][j]='s';}
if(bukv_cifr[i][j]==20){deshifr[i][j]='t';}
if(bukv_cifr[i][j]==21){deshifr[i][j]='u';}
if(bukv_cifr[i][j]==22){deshifr[i][j]='v';}
if(bukv_cifr[i][j]==23){deshifr[i][j]='w';}
if(bukv_cifr[i][j]==24){deshifr[i][j]='x';}
if(bukv_cifr[i][j]==25){deshifr[i][j]='y';}
if(bukv_cifr[i][j]==26){deshifr[i][j]='z';}
if(bukv_cifr[i][j]==27){deshifr[i][j]=' ';}
}
}
printf("Deshifr:\n");
for(i=1;i<m+1;i++)
{
for(j=0;j<n;j++)
{
printf("%c",deshifr[i][j]);
}
}
getch();
FILE *f2;
f2=fopen("D:\\DESHIFR.txt","w");
for(i=1;i<m+1;i++)
{
for(j=0;j<n;j++)
{
fprintf(f2,"%c",deshifr[i][j]);
}
}
fclose(f2);
printf("\n");
getch();
}


15.06.2015 23:55
Профиль Отправить email
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
© 2013 «Форум программистов Украины»