Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2018, 15:04   #1
4inoy
 
Регистрация: 14.06.2018
Сообщений: 4
По умолчанию Шифр Цезаря [пробел]

Есть код. Работает всё верно, но пробелы между словами не ставит. Прошу помощи

Вот сам код:

Код:
var c:char;
f1,f2:text;
begin
ASSIGN(f1,'Enter.dat');
RESET(f1);
ASSIGN(f2,'Data.res');
REWRITE(f2);
While not (EOF(f1)) do

begin
read(f1,c);
if c in ['А'..'Я'] then case c of
'А':write('Д'); 
'Б':write('Е'); 
'В':write('Ж'); 
'Г':write('З'); 
'Д':write('И'); 
'Е':write('Й'); 
'Ж':write('К'); 
'З':write('Л'); 
'И':write('М'); 
'Й':write('Н'); 
'К':write('О'); 
'Л':write('П'); 
'М':write('Р'); 
'Н':write('С'); 
'О':write('Т'); 
'П':write('У'); 
'Р':write('Ф'); 
'С':write('Х'); 
'Т':write('Ц'); 
'У':write('Ч'); 
'Ф':write('Ш'); 
'Х':write('Щ'); 
'Ц':write('Ь','Ъ'); 
'Ч':write('Ы'); 
'Ш':write('Э'); 
'Щ':write('Ю'); 
'Ь','Ъ':write('Я'); 
'Ы':write('А'); 
'Э':write('Б'); 
'Ю':write('В');
'Я':write('Г');
' ':write(' ');

end;
end;
close(f1);
close(f2);
end.

Последний раз редактировалось Аватар; 14.06.2018 в 15:06.
4inoy вне форума Ответить с цитированием
Старый 14.06.2018, 15:08   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
if c in ['А'..'Я'] then case c of
сам же здесь и обходишь стороной его
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.06.2018, 15:34   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
if c in ['А'..'Я',' '] then 
  case c of ...
p.s. код ужасный...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.06.2018, 15:52   #4
4inoy
 
Регистрация: 14.06.2018
Сообщений: 4
По умолчанию

Я только как неделю начал разбираться в pascal.
4inoy вне форума Ответить с цитированием
Старый 14.06.2018, 16:30   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

if c in ['А'..'Я'] then case c of
'А':write('Д');
...
' ':write(' ');
else ;
end;
end
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 14.06.2018, 16:37   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от 4inoy Посмотреть сообщение
Я только как неделю начал разбираться в pascal.
ну, тогда ничего страшного.
есть повод улучшать и писать более красивый, короткий и надёжный код.

для примера можете посмотреть примеры реализации задачи шифрования по алгоритму Цезаря
тут - http://programmersforum.ru/showpost....1&postcount=14
или тут - http://programmersforum.ru/showpost....20&postcount=2

p.s. воспользуйтесь поиском. Найдёте много интересного и поучительного.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.06.2018, 21:29   #7
4inoy
 
Регистрация: 14.06.2018
Сообщений: 4
По умолчанию

Спасибо вам всем)))
4inoy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шифр цезаря mnmnm Общие вопросы по Java, Java SE, Kotlin 2 26.04.2016 11:47
Шифр цезаря noutiluss C# (си шарп) 0 17.03.2016 17:35
шифр цезаря Lilen Паскаль, Turbo Pascal, PascalABC.NET 5 24.10.2015 05:07
шифр Цезаря Defa4ka Помощь студентам 5 23.10.2011 13:48
Шифр Цезаря Goracio Помощь студентам 1 19.04.2010 14:53