profile
Размещено 6 лет назад по предмету Информатика от vKulakov09

помогите создать собственную таблицу .Закодировать сообщение: Носит Сеня в сени сено,спать на сене будет Сеня.

  1. Ответ на вопрос
    Ответ на вопрос дан hesed

    Не пользуйся одной таблицей, это не безопасно. :) Я советую создавать отдельную таблицу для каждой сессии.

    Извини, если код будет плохо читаться. Этот сайт не поддерживает табуляцию и не умеет обрабатывать код.


    /* only for windows */

    #include <stdio.h>

    #include <stdlib.h>

    #include <stdbool.h>

    #include <string.h>

    #include <time.h>

    #include <conio.h>

    #include <windows.h>

    #define ALPH_SIZE 67

    #define STR_SIZE_MAX 256

    #define RANDOM_MIN 33

    #define RANDOM_MAX 126

    int main(void) {

    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

     

    SetConsoleCP(1251);

    SetConsoleOutputCP(1251);

    srand(time(NULL)); /* for "visible" random */

    char str[STR_SIZE_MAX];

    printf("Введите строку: ");

    scanf("%[^n]s", str);

    printf("n");

    /* encode only these symbols */

    char alph[ALPH_SIZE] = "абвгежзиклмнопрстуфхцчшщъыьэюя"

     "АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ .,!?";

     

    char genAlph[ALPH_SIZE];

     

    int i;

    for (i = 0; i < ALPH_SIZE; i++) {

     /* for beauty */

     if ((i % 5 == 0) && (i != 0)) {  

      printf("n");  

     }

     

     genAlph[i] = RANDOM_MIN + rand() % (RANDOM_MAX - RANDOM_MIN + 1);

     

     /* that don't use goto */

     if (i > 0) {

      if (genAlph[i - 1] == genAlph[i]) {

       while (genAlph[i - 1] == genAlph[i]) {

        genAlph[i] = RANDOM_MIN + rand() % (RANDOM_MAX - RANDOM_MIN + 1);

       }

      }

     }

     

     SetConsoleTextAttribute(handle, 10 | 0); /* set symbol color to green */

     printf("%c", alph[i]);

     SetConsoleTextAttribute(handle, 7 | 0); /* set symbol color to white */

     

     printf(" = %c; ", genAlph[i]);

    }

     

    printf("nn");

     

    char buf[STR_SIZE_MAX] = "";

     

    for (i = 0; i < (int) strlen(str); i++) {

     bool coded = false;

     

     int j;

     for (j = 0; j < ALPH_SIZE; j++) {

      if (str[i] == alph[j]) {

       buf[i] = genAlph[j];

       coded = true;

      }

     }

     

     if (!coded) {

      buf[i] = str[i];

     }

    }

     

    printf("Закодированная строка: %s", buf);

     

    getch();

    return 0;

    }


    Пример из программы:


    Введите строку: Носит Сеня в сени сено,спать на сене будет Сеня.

    а = }; б = `; в = ~; г = 8; д = ^;

    е = Q; ж = 6; з = >; и = m; к = *;

    л = ?; м = V; н = m; о = S; п = };

    р = &; с = p; т = S; у = ; ф = $;

    х = h; ц = ]; ч = g; ш = n; щ = 0;

    ъ = Y; ы = [; ь = i; э = 5; ю = I;

    я = u; А = n; Б = ; В = S; Г = _;

    Д = k; Е = 5; Ж = #; З = c; И = g;

    К = ~; Л = <; М = /; Н = t; О = 6;

    П = t; Р = '; С = i; Т = D; У = E;

    Ф = 0; Х = O; Ц = w; Ч = Q; Ш = ';

    Щ = 6; Ъ = h; Ы = /; Ь = h; Э = a;

    Ю = [; Я = ';   = H; . = J; , = w;

    ! = }; ? = @;

    Закодированная строка: tSpmSHiQmuH~HpQmmHpQmSwp}}SiHm}HpQmQH`^QSHiQmuJ


    Таблица даётся только на время сессии и теряет свой смысл после завершения программы. :)

    1. Ответ на вопрос
      Ответ на вопрос дан hesed
      Пропустил букву 'д' в определении массива. Добавь, если понадобится.
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.