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

Форум программистов: 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 сообщение ] 


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

Зарегистрированные пользователи: нет зарегистрированных пользователей


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

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