C++ Основы.pptx
- Количество слайдов: 8
C++ Пишем лозунговый шифр
Знания, которые понадобятся для выполнения задания № 1 1. 2. 3. 4. 5. Условные операторы (if(){}…else{}) Операторы циклов (for(){}, while(){}) Функции ввода и вывода строк (cin, cout) Работа с массивами Функция strlen
Условные операторы If (__УСЛОВИЕ__) { ◦ // Код, который будет выполнен, если условие истинно }else{ ◦ // Код, который будет выполнен, если условие ложно }
Оператор цикла for(start, condition, iterationoperation){ } Start – начальное значение Condition – условие выхода из цикла Iterationoperation – оператор, выполняющийся на каждой итерации цикла Пример: For(int i=0; i<10; i++){ } ◦ ◦ // // Операторы внутри цикла будут выполнены 10 раз. В первый раз значение I будет =0 Во второй – 1 В десятый - 9
Массивы Массив – это набор объектов Строка – это массив символов Объявление массива: int s[10]; - массив из 10 целых чисел Объявление массива символов: char stroka[100]; массив из 100 символов (строка из 100 символов) Для того, чтобы обратиться к какому-либо элементу массива, необходимо использовать следующий синтаксис: char stroka[11]=“strokaaaaa”; // Объявление cout << stroka[5]; // Выведет «а»
Логика программы 1. Пользователь вводит текст и лозунг 2. По введенному пользователем лозунгу определяется таблица замены – ключ ◦ 2. 1 В цикле проходим по каждому элементу лозунга. Если такого элемента в нашем ключе еще нет – дописываем ◦ 2. 2 В цикле проходим по алфавиту. Если символа алфавита в ключе нет, дописываем 3. В соответствии с таблицей замены буквы текста замещаются на другие буквы 4. Шифртекст выводится на экран
Код программы int result. Key. Offset=0; bool is. Key. Symbol. Exists=false; // Формируем ключевой алфавит // Проходим по каждому символу ключа for (int i=0; i<strlen(key); i++){ is. Key. Symbol. Exists=false; //И по каждому символу нашего result. Key for(int j=0; j<strlen(result. Key); j++){ // Если символ в строке с нашим ключом совпадает с символом в лозунге, то запоминаем это. . . if(result. Key[j]==key[i]){ is. Key. Symbol. Exists=true; break; } } // Если символ не встречался, то дописываем его в конце нашего ключа if(!is. Key. Symbol. Exists){ result. Key[result. Key. Offset++]=key[i]; } }
Задача: Дописать генерацию ключа (таблицы окончательной замены). ◦ Дополните ключ символами алфавита таким образом, чтобы не было повторных Напишите шифрование ◦ Замените буквы исходного текста на буквы шифртекста в соответствие с ключом
C++ Основы.pptx