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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
NeRRouZ
4 / 4 / 0
Регистрация: 19.12.2010
Сообщений: 54
#1

задача C4 по информатике - C++

24.12.2011, 18:50. Просмотров 1065. Ответов 1
Метки нет (Все метки)

Было решено закодировать файлы.Для этого придумали следующий алгоритмю
Каждая строка файла кодируется отдельною
В каждой строке ищутся отдельные слова, и все символы слова сдвигаються по алфавиту циклически вправо на длину слова.
Словом считается любая последовательность подряд идущих символов латинского алфавита, строчных и прописных.
Циклический сдвиг символа по алфавиту вправо на Х - замена символа на символ, стоящий в алфавите на Х позиций дальше.Если при этом происходит выход за пределы алфавита, счет начинается с начала алфавита. Пример циклического сдвига символов на 3 позиции: буква "Е" превращается в букву "Н",буква"t" -в букву "w",буква "Y" - в букву "В".
Напишите эффективную в том числе и по используемой памяти программу которая должна закодировать строку по указанному алгоритму.
На вход подается строка, состоящая из не более чем 250 символов латинского алфавита,пробелов,знаков препинания разного рода скобок,кавычек и других символов. Строка заканчивается символом "#".Других символов "#" в строке нет.
Программа должна вывести закодированную по указанному алгоритму строку.
Пример входных данных:
Day, mice. "Year" - a mistake#
Пример выходных данных:
Gdb, qmgi. "Ciev" - b tpzahrl#

Как это сделать?? мыслей по самому алгоритму практически нет подскажите.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2011, 18:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос задача C4 по информатике (C++):

Задача по информатике - C++
Ползователь вводит числа к примеру: 1 500 700 -2000, программа должна вывести сумму, что делать с пробелами и вообще как это реализовать,...

лабораторная по информатике - C++
подскажите как делать, через циклы, плиз!)

программы по информатике - C++
задачки

лабораторная по информатике - C++
помогите с задачками, пожалуйста! 1. Поменять местами максимальный и последний отрицательный элементы массива А (40). ...

ЕГЭ по информатике - C++
Извините если не в ту тему написал, не могу понять куда лучше это написать. На каком языке сдавать ЕГЭ по информатике? Я знаю только...

Лаба по информатике - C++
Завтра сдавать лабораторную, а я в программировании на Си++ практически ноль. Было всего пару лекций на его изучение. Задача:...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Persk
Модератор
Эксперт Windows
7361 / 3199 / 198
Регистрация: 25.10.2010
Сообщений: 12,819
24.12.2011, 20:31 #2
Очень смахивает на алгоритм шифра Цезаря
У меня есть кое что подобное, ну может не совсем
Исходник сыроват, т.е. не до конца обработан, если поможет, то подредактируйте сами
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
47
48
49
50
51
52
53
54
55
56
57
58
/*Программа шифрования кодом Цезаря*/
#include <stdio.h>//необходимо для printf
#include <conio.h>//необходимо для getch
#include <string.h>//необходимо для puts
int main()
{
/*инициализируем переменные*/
int i=0, n=0, k;
int d;
char alf[] = "abcedfghijklmnopqrstuvwxyz0123456789#!@$%^&*-+=";//словарь
char buf[10];//массив для ввода сообщения
char decod[10];//массив для ввода сообщения
/*Процедура шифрования ввод*/
printf("\n***Shifrovanie***");
printf("\nVvedite slovo ili tsifrj :");
scanf("%s",&buf);//ввод слова или цифр
printf("\nVvedite tzifrovoj cluch, (shag ot 1 do 10):  ");
scanf("%i",&k);//вводим ключ
for (n=0; n < 10; n++)
{
for (i = 0; i < 47; i++)
{
if (buf[n] == alf[i])
{
if (i >= 47)
buf[n] = alf[i-47];
else
buf[n] = alf[i+k];//сдвигаем вправо на показания шага ключа
break;//принудительно выходим из цикла
}
}
}
printf("\nVash shefr= %s\n", buf);//выводим полученный шифр
/*Процедура дешифрования ввод*/
printf("\n--Deshifrovanie---\n");
printf("\nVvedite vash shifr : ");
scanf("%s",&decod);//вводим шифр
printf("\nVvedite tzifrovoj cluch, (shag ot 1 do 10): ");
scanf("%i",&d);//вводим ключ
for (n=0; n < 10; n++)
{
for (i = 0; i < 47; i++)
{
if (decod[n] == alf[i])
{
if (i >= 47)
decod[n] = alf[i-47];
else
decod[n] = alf[i-d];//сдвигаем влево на показания шага ключа
break;//принудительно выходим из цикла
}
}
}
printf("\nShefr= ");
puts (decod);//выводим код
getch();//задержка программы
return 0;
}//конец
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2011, 20:31
Привет! Вот еще темы с ответами:

Задание по информатике - C++
Помогите на с++ Сгенерировать матрицу случайных чисел размера M на М и повернуть полученную матрицу относительно главной диагонали.

Олимпиада по информатике - C++
Вечер добрый! Кто, что может посоветовать для подготовки, может задачники какие или еще что? И по поводу городских олимпиад, можно ли...

РГР по информатике - C++
#include&lt;stdio.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; int main(){ double S=1,x,a; printf(&quot;Введите x и a\n&quot;); scanf(&quot;%lf...

Задание по информатике. - C++
Всем привет. Помогите плиз решить задачку, только программа должна быть без указателей: Ввести несколько строк и проверить, может ли...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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