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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SKORPION13
7 / 7 / 0
Регистрация: 05.06.2011
Сообщений: 140
#1

подскажите как доделать программу - C++

09.06.2011, 21:51. Просмотров 407. Ответов 3
Метки нет (Все метки)

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
#include<iostream.h>
#include<conio.h>
#include<string.h>
using namespace std ;
 
 
 main()
{
int i=0,j=0;
string s1,s2;
char 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 ;
 
cout << "vvedite text   \n";
 cin>>s1;
transform(s1.begin(), s1.end(), s1.begin(), ::toupper);
 
i=s1[0];
int len=s1.size() ;
cout <<"vvedite key \n";
 cin>>s2;
 
transform(s2.begin(), s2.end(), s2.begin(), ::toupper);
 
while(s2.size() < s1.size())
{               s2=s2+s2;                          }
 
cout << s2<<endl<<endl;
 
j=s2[0];
 
 
 
 for( int i=s1[0];i<len;i++)
 for( int j=s2[0];j<len;j++)
{
      if (s1[i]=='D' && s2[j]=='W' ) s1[i]='Y'; 
}
 for( int i=s1[0];i<len;i++)
 for( int j=s2[0];j<len;j++)
 {
      if (s1[i]=='Z' && s2[j]=='E' ) s1[i]='D';
}
cout<<"LLIac"<<endl<<endl<<s1<<endl<<endl;
 
getch();
}

суть программы проверять введенные текст с ключем и при определенных комбинациях букв будет выводить какуюто букву .Попытался создать Шифр Виженера

проблема такая как мне цикл впихнуть в отдельную вызываемую подпрограмму чтоб не прописывать такой цикл для каждого подобного IFа
C++
1
2
3
4
 for( int i=s1[0];i<len;i++)
 for( int j=s2[0];j<len;j++)
{
      if (s1[i]=='D' && s2[j]=='W' ) s1[i]='Y'; }
Добавлено через 3 часа 24 минуты
неужели никто не знает???
хоть ссылку дайте где подобное разбиралось
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 21:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос подскажите как доделать программу (C++):

Подскажите как доделать прогу - C++
Доброго времени суток) Помогите довести до ума программу, чтобы она работала в рамках одной проги 1) Находила наибольшую нечетную цифру....

Застрял.Подскажите как доделать. - C++
Напишите программу на &quot;родном&quot; С++, которая позволит ввести неограниченное количество значений и сохранить их в массив, размещенный в...

Не понимаю как доделать программу - C++
Требования: нужно,организовать массив из тех чисел, которые входят в последовательность более одного раза. Вот я создал 2 массива,...

Объясните как доделать программу - C++
Вывести элементы последовательности целых чисел от 1 до 1000 сумма цифр в которых больше заданного значения. Фрагмент кода который удалось...

Доделать программу. - C++
Товарищи программеры, скажите что тут не так? В борланде выдает море ошибок. FUNCTION DEC2BASEN(BASE: INTEGER; DEC: LONGINT): STRING; ...

доделать программу - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; using namespace std; int main() { setlocale(LC_ALL,&quot;Russian&quot;); fstream...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
10.06.2011, 00:20 #2
Цитата Сообщение от SKORPION13 Посмотреть сообщение
неужели никто не знает???
Да знают все, знают. Но всем как всегда.

Цитата Сообщение от SKORPION13 Посмотреть сообщение
хоть ссылку дайте где подобное разбиралось
Да хоть в википедии. Гуглить.

Вот это надо? Аккуратно, без проверки на регистр символов.
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
#include <iostream>
#include <iterator>
#include <string>
 
std::string Encrypt(const std::string &source, const std::string &key) {
  std::string result;
  std::string::const_iterator key_symbol = key.begin();
  for (std::string::const_iterator source_symbol = source.begin();
    source_symbol != source.end(); ++source_symbol) {
    result.push_back(((*source_symbol + *key_symbol - 2 * 'A')
      % 26) + 'A');
    if (++key_symbol == key.end()) key_symbol = key.begin();
  }
  return result;
}
 
std::string Decrypt(const std::string &source, const std::string &key) {
  std::string result;
  std::string::const_iterator key_symbol = key.begin();
  for (std::string::const_iterator source_symbol = source.begin();
    source_symbol != source.end(); ++source_symbol) {
    result.push_back(((*source_symbol - *key_symbol + 26)
      % 26) + 'A');
    if (++key_symbol == key.end()) key_symbol = key.begin();
  }
  return result;
}
 
int main(int argc, char *argv[]) {
  std::string source = "ATTACKATDAWN";
  std::string key = "LEMON";
  
  std::cout << Encrypt(source, key) << std::endl
    << Decrypt(Encrypt(source, key), key);
  
  return 0;
}
0
SKORPION13
7 / 7 / 0
Регистрация: 05.06.2011
Сообщений: 140
10.06.2011, 00:30  [ТС] #3
ну по идеи да , только тут заранее известен текст а я хотел просто чтоб текст с клавиатуры вводился и ключ тоже с клавиатуры .Да и у вас все очень круто написано я бы до такого не додумался т.к. новичек в этом деле , для меня было через условия как то попроще . но и на этом спасибо

точней я просто хотел чтоб пояснили как написать функцию
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
10.06.2011, 00:44 #4
Цитата Сообщение от SKORPION13 Посмотреть сообщение
только тут заранее известен текст а я хотел просто чтоб текст с клавиатуры вводился и ключ тоже с клавиатуры
Ну и вводите их с клавиатуры. Никтож не запрещает.

Цитата Сообщение от SKORPION13 Посмотреть сообщение
Да и у вас все очень круто написано я бы до такого не додумался т.к. новичек в этом деле , для меня было через условия как то попроще
Не знаю, что такое "через условия", но вот вариант по-примитивней.
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
#include <stdio.h>
#include <string.h>
 
char *Encrypt(const char *source, const char *key, char *destination) {
  size_t source_length = strlen(source), key_length = strlen(key);
  size_t source_index, key_index = 0;
  for (source_index = 0; source_index < source_length; ++source_index) {
    destination[source_index] = ((source[source_index] + key[key_index] - 2 * 'A') % 26) + 'A';
    if (++key_index >= key_length) key_index = 0;
  }
  return destination;
}
 
char *Decrypt(const char *source, const char *key, char *destination) {
  size_t source_length = strlen(source), key_length = strlen(key);
  size_t source_index, key_index = 0;
  for (source_index = 0; source_index < source_length; ++source_index) {
    destination[source_index] = ((source[source_index] - key[key_index] + 26) % 26) + 'A';
    if (++key_index >= key_length) key_index = 0;
  }
  return destination;
}
 
int main(int argc, char *argv[]) {
  char string[] = "ATTACKATDAWN";
  char key[] = "LEMON";
  printf("%s\n", Encrypt(string, key, string));
  printf("%s\n", Decrypt(string, key, string));
  return 0;
}

Цитата Сообщение от SKORPION13 Посмотреть сообщение
точней я просто хотел чтоб пояснили как написать функцию
Эээ, а вот это к учебникам и справочным руководствам. На худой конец к преподу.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2011, 00:44
Привет! Вот еще темы с ответами:

Доделать программу - C++
Помогите плиз, доделать прогу. Ввести массив нецелых чисел. Те из них, которые положительны, копировать в другой массив. Затем...

Доделать программу С++ - C++
Помогите пожалуйста доделать программу. Нужно , чтобы при вводе дробных чисел программа выдавала сообщение &quot;Нужно ввести целое число&quot; ...

Доделать программу - C++
Задание : Фамилия и инициалы, должность, год поступления на работу, зарплата. Создать массив объектов. Вывести: а) список работников,...

не могу доделать программу - C++
#include &lt;iostream&gt; using namespace std; int main () { int a; int k; for (k=0;k&lt;6;k++) cin&gt;&gt;a; for (k=0;k&lt;6;k++) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.06.2011, 00:44
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru