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

Шифрование методом перестановки - C++

Восстановить пароль Регистрация
 
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
10.02.2012, 21:48     Шифрование методом перестановки #1
люди помогите пожалуйста я сделал программу на Си "шифт перестановки" а препад говорит что ему только на С++ сдавать а я С++ вообще не знаю
вот код
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
main ()
{
int i,t,l, a[100];
char S[100]=” “, k[100]=” “, c[100]=” “;
clrscr();
puts(“vvedite:\n\n ”);
gets(S);
l=strlen(S);
printf(“\n dlina=%d”,l);
printf(“\n\n”);
for(i=0;i<l;i++)
{a[i]=rand()%l;
for(t=0;t<i;i++)
if (a[i]==a[t])
{i--;
break;
}}
puts(“\n klush shifrovanie:\n\n”);
for(i=0;i<l;i++)
printf(%d”,a[i]);
puts(“\n shifrovanie:\n\n”);
for(i=0;i<l;i++)
{c[i]=S[a[i]];
printf(%c”,c[i]);}
puts(“\n deshifrovanie:\n\n”);
for(i=0;i<l;i++)
{k[a[i]]=c[i];
}
puts(k);
getсh();
}
заранее благодарю

Добавлено через 1 час 12 минут
люди пожалуйста помогите!

Добавлено через 11 секунд
люди пожалуйста помогите!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 22:20     Шифрование методом перестановки #2
Цитата Сообщение от Huk Посмотреть сообщение
люди пожалуйста помогите!
- ну зчем так кричать, сейчас переведём
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
#include <iostream>
#include <ctime>
using namespace std;
 
int main ()
{
    time_t t;//Надо для генерации!
    int i,t,l, a[100];
    char S[100]={0}, k[100]={0}, c[100]={0};
    system("cls");//Зачем надо чистить єкран в самом начале одному вам известно???
    cout<<"vvedite S:\n";
    cin.getline(S,100);
    l=strlen(S);
    cout<<"dlina = "<<l<<endl;
    srand(time(&t));//Так можно будет генерировать не повторяющиеся от запуска к запуску числа
    for(i=0;i<l;i++)
    {
        a[i]=rand()%l;
        for(t=0;t<i;i++)
        if (a[i]==a[t])
        {
            i--;
            break;
        }
    }
    cout<<"klush shifrovanie:\n";
    for(i=0;i<l;i++)
        printf("%d",a[i]);
    cout<<"\nshifrovanie:\n";
    for(i=0;i<l;i++)
        cout<<(c[i]=S[a[i]]);
    cout<<"\n deshifrovanie:\n\n";
    for(i=0;i<l;i++)
        k[a[i]]=c[i];
    cout<<k<<endl;
    system("pause");
    return 0;
}
PS:Алгоритм у вас корявый!
Посмотрите сюда
Шифрование методом перестановки
Huk
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 79
11.02.2012, 04:32  [ТС]     Шифрование методом перестановки #3
-=ЮрА=-
спс но почему у тебя t обьявленно 2 раза? а если 1 раз обьявить то каша какая то получается
-=ЮрА=-
Заблокирован
Автор FAQ
11.02.2012, 10:53     Шифрование методом перестановки #4
Цитата Сообщение от Huk Посмотреть сообщение
-=ЮрА=-
спс но почему у тебя t обьявленно 2 раза? а если 1 раз обьявить то каша какая то получается
- да запарился, перебил код компильнул увидел что t 2 раза объявлено исправил, но у себя не здесь, балда яЧтоб всё заработало, предлагаю простое решение

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
time_t T;//Надо для генерации!
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
srand(time(&T));
PS:По поводу кривизны кода душой не кривил, где-то в коде есть выход за пределы отведенной под строку памяти, судя из exeption-а, котрый вылетает после ввода в консоли. Я не стал вникать, т.к. по моему линку есть нормальный код...
Yandex
Объявления
11.02.2012, 10:53     Шифрование методом перестановки
Ответ Создать тему
Опции темы

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