Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 30.10.2016, 00:20   #1 (permalink)
Smile188
Member
 
Регистрация: 13.10.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программа работает, но при расшифровке удаляет пробелы

Программа работает , но при расшифровке удаляет пробелы, помогите исправить(программа должна удалять символы которые не входят в алфавит, она их удаляет, но и пробелы тоже удаляются)

Код:
program zi3;
 
 
 
 
function Cesar_Crypt(s: string): string;
const
  SizeA = 34; // ?????? ????????
  RusA = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; // ???????
var
  i, P, n: integer;
  temp: string;
  flag: boolean;
  Q: string;
begin
flag:=false;
  Result := ' ';
  writeln('введите размер шага');
  readln(n);
  s := AnsiLowerCase(s);
  temp := '';
 
 //удаление символов сообщения, не входящих в наш алфавит
  for i := 1 to length(s) do
    if pos(s[i], RusA) <> 0 then
      temp := temp + s[i]
    else
      flag := true;
  if flag then
  begin
    writeln('удалить другие символы да/нет');
    readln(Q);
    if Q = 'да' then
      s := temp
    else if Q = 'нет' then
       writeln('неверный ввод. Буквы удалим ');
 
      begin
 
         s := temp
     end;
  end;
  for i := 1 to length(s) do
  begin
 
    P := pos(s[i], RusA) + n;
 
    if P > SizeA then
      P := P - SizeA;
    Result := Result + RusA[P];
 
  end;
end;
 
//Дешифрование Цезаря
function Cesar_DeCrypt(s:string):string;
const
  SizeA = 34; // 
  RusA = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя  '; // алфавит
var
  i, P, n: integer;
  temp: string;
  flag: boolean;
  Q: string;
begin
flag:=false;
  Result := ' ';
  writeln('введите размер шага');
  readln(n);
  s := AnsiLowerCase(s);
  temp := '';
 
//удаление символов сообщения, не входящих в наш алфавит
    for i := 1 to length(s) do
    if pos(s[i], RusA) <> 0 then
      temp := temp + s[i]
    else
      flag := true;
  if flag then
  begin
    writeln('удалить другие символы да/нет');
    readln(Q);
    if Q = 'да' then
      s := temp
    else if Q = 'нет' then
writeln('неверный ввод. Буквы удалим ');
 
      begin
 
         s := temp
     end;
  end;
 
for i:=1 to length(s) do
  begin
  P:=pos(s[i],RusA)-3;
  if P<=0 then
  P:=P+SizeA;
  Result:=Result+RusA[P];
  end;
end;
 
var
 aStr : String;
 bStr: string;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
writeln ('введите фразу для шифрования');
readln ( aStr );
 
 
writeln ('зашифрованный текст - ',Cesar_Crypt(aStr));
 
writeln('введите фразу для дешифрования');
readln ( bStr );
writeln ('расшифрованный текст - ',Cesar_DeCrypt(bStr));
readln;
end.
Smile188 вне форума   Ответить с цитированием

Старый 30.10.2016, 00:20
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Темы уже встречались, ознакомьтесь с информацией которую они содержат

Нужна помощь в расшифровке
Помогите удалить Avira, спец программа для ее удаления не удаляет ее
MSE по 100 раз удаляет,удаляет - да удалить не может) TrojanDownloader:Win32/Carber
Прошу помощи в расшифровке
Нужна помощь в расшифровке файлов

Старый 06.11.2016, 08:56   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Smile188 Посмотреть сообщение
Программа работает , но при расшифровке удаляет пробелы, помогите исправить(программа должна удалять символы которые не входят в алфавит, она их удаляет, но и пробелы тоже удаляются)
Сформулируйте, пожалуйста, задание ПОЛНОСТЬЮ: тут, мне кажется, легче написать свою программу, чем исправлять Вашу.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 16:14.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.