fork download
  1. #include "iostream.h"
  2. #include "string.h"
  3. #include "stdio.h"
  4. #include "conio.h"
  5.  
  6. #define FIN "4_Kordan.dat" // имя текстового файла с входными данными
  7. #define MAXN 10 // максимальная размерность матрицы (решетки)
  8.  
  9. char string[MAXN * MAXN]; // строка открытого текста
  10. char kordano[MAXN][MAXN]; // решетка Кардано с шифротекстом
  11. int matrix[MAXN][MAXN]; // используемый шаблон решетки Кардано
  12. int n, m; // размерности решетки
  13.  
  14. void init() // функция вводит шаблон решетки Кардано из файла
  15. {
  16. ifstream in(FIN); // поток входного файла
  17. clrscr(); // очистка экрана консоли
  18. cout << "Шифр \"Решетка Кардано\" \n\n"; // вывод приветствия
  19. if (!in) { // если файл невозможно открыть
  20. // вывод сообщения об ошибке
  21. cout << "Невозможно открыть файл " << FIN << "! \n";
  22. getch(); // задержка до нажатия любой клавиши
  23. exit(1); // выход в систему со значением 1
  24. }
  25. in >> n >> m; // ввод размерностей решетки Кардано
  26. cout << "Вид решетки: \n"; // вывод приветствия
  27. for (int i = 0; i < n; ++i) { // цикл по всем строчкам таблицы
  28. for (int j = 0; j < m; ++j) { // цикл по всем столбцам таблицы
  29. in >> matrix[i][j]; // ввод очередного значения из файла
  30. cout << matrix[i][j] << " "; // вывод значения на экран
  31. }
  32. cout << "\n"; // вывод символа новой строки
  33. }
  34. in.close(); // закрытие потока входного файла
  35. }
  36.  
  37. void gettext() // функция вводит открытый текст
  38. {
  39. // вывод приветствия
  40. cout << "\nВведите открытый текст (не более " << m * n << " символов): ";
  41. fgets(string, MAXN, stdin); // ввод открытого текста
  42. if (string[strlen(string) - 1] == '\n') // замена символа '\n' на '\0'
  43. string[strlen(string) - 1] = '\0'; // в конце строки
  44. }
  45.  
  46. void solve() // функция кодирует сообщение
  47. {
  48. int i, j, k = 0; // выделение памяти под переменные
  49. memset(kordano, ' ', MAXN * MAXN) ; // заполнение шифротекста пробелами
  50. // заполнение решетки в исходном виде и после зеркального отражения
  51. for (i = 0; i < n; ++i) // цикл по всем строчкам таблицы
  52. for (j = 0; j < m; ++j) // цикл по всем столбцам таблицы
  53. if (matrix[i][j]) { // если есть отверствие
  54. kordano[i][j] = string[k]; // заполнение текущий клетки
  55. kordano[i][m - j - 1] = string[k + n]; // заполнение клетки,
  56. // симметричной текущей относительно вертикальной оси
  57. ++k; // увеличение значения счетчика букв в строке string
  58. }
  59. // отражение шаблона решетки вдоль центральной горизонтали
  60. for (i = 0; i < n; ++i) // цикл по всем строчкам таблицы
  61. for (j = 0; j < m; ++j) { // цикл по всем столбцам таблицы
  62. int t = matrix[i][j]; // обмен значений переменных с использованием
  63. matrix[i][j] = matrix[n - i - 1][j]; // вспомогательной переменной t
  64. matrix[n - i - 1][j] = t;
  65. }
  66. k = k + k; // изменение значения счетчика k
  67. // заполнение новой решетки в новом виде и после зеркального отражения
  68. for (i = 0; i < n; ++i) // цикл по всем строчкам таблицы
  69. for (j = 0; j < m; ++j) // цикл по всем столбцам таблицы
  70. if (matrix[i][j]) { // если есть отверствие
  71. kordano[i][j] = string[k];
  72. kordano[i][m - j - 1] = string[k]; // заполнение текущий клетки
  73. kordano[i][j] = string[k + n]; // заполнение клетки,
  74. // симметричной текущей относительно вертикальной оси
  75. ++k; // увеличение значения счетчика букв в строке string
  76. }
  77. }
  78.  
  79. void print() // функция печатает шифротекст
  80. {
  81. cout << "\nЗакодированное сообщение: \n"; // вывод приветствия
  82. for (int i = 0; i < n; ++i) { // цикл по всем строчкам таблицы
  83. for (int j = 0; j < n; ++j) // цикл по всем столбцам таблицы
  84. cout << kordano[i][j] << " "; // вывод очередной буквы
  85. cout << "\n"; // вывод символа конца строки
  86. }
  87. getch(); // ожидание нажатия любой клавиши
  88. }
  89.  
  90. int main() // функция main()
  91. {
  92. init(); // вызов функции инициализации таблицы Кардано
  93. gettext(); // вызов функции ввода открытого текста
  94. solve(); // вызов функции шифрования
  95. print(); // вызов функции печати шифротекста
  96. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cs(2,0): error CS1024: Wrong preprocessor directive
prog.cs(3,0): error CS1024: Wrong preprocessor directive
prog.cs(4,0): error CS1024: Wrong preprocessor directive
prog.cs(5,0): error CS1024: Wrong preprocessor directive
prog.cs(7,0): error CS1025: Single-line comment or end-of-line expected
prog.cs(8,0): error CS1025: Single-line comment or end-of-line expected
prog.cs(9,0): error CS1525: Unexpected symbol `char'
Compilation failed: 7 error(s), 0 warnings
stdout
Standard output is empty