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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2011, 18:49   #1
Аселек
Новичок
Джуниор
 
Регистрация: 12.04.2011
Сообщений: 1
Сообщение Текстовой файл

Пламенный салют форумчане!!! Прошу очень помочь отредактировать программу, чтобы работала, вот условие в помощь: дана строка К, состоящая из 10 цифр, и файл с русским текстом. Зашифровать файл, выполнив цикличческую замену каждой русской буквы, стоящей на i-й позиции строки, на букву того же регистра, расположенную в алфавите на К[i]-м месте, после шифруемой буквы (символы строки К также перебираются циклически: для i=11 снова используется смещение К[1] и т.д.). Букву "ё" в алфавите не учитывать, знаки препинания и пробелы не изменять.

Сама программа полу готовая вот, только ё учтена, но не работает, помогите умоляю отредактировать:
Uses
CRT;
Const
s3='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭ ЮЯ';
s4='абвгдеёжзийклмнопрстуфхцчшщъыьэ юя';
Var
i,k:integer;
s,s2:string;
f,f2,f3:text;
begin
assign(f,'D:\isch.txt');
reset(f);
assign(f2,'D:\shifr.txt');
rewrite(f2);
s:='';
while not eof(f) do
begin
readln(f,s);
//шифруем
s2:='';
for i:=1 to length(s) do
begin
if i mod 10=0 then k:=10
else k:=i mod 10;
if s[i] in ['А'..'Я','Ё'] then s2:=s2+s3[1+(pos(s[i],s3)+k-1) mod 33]
else
if s[i] in ['а'..'я','ё'] then s2:=s2+s4[1+(pos(s[i],s4)+k-1) mod 33]
else s2:=s2+s[i];
end;
writeln('Зашифрованная строка: ',s2);
writeln(f2,s2)
end;
textcolor(5);
writeln('Файл зашифрован.Смотри файл shifr.txt');
Close(f);
textcolor(0);
writeln;
reset(f2);
assign(f3,'D:\deschifr.txt');
rewrite(f3);
k:=0;
s2:='';
while not eof(f2) do
begin
readln(f2,s2);
//дешифруем
s:='';
for i:=1 to length(s2) do
begin
if i mod 10=0 then k:=10
else k:=i mod 10;
if s2[i] in ['А'..'Я','Ё'] then s:=s+s3[1+(pos(s2[i],s3)+length(s3)-k-1) mod 33]
else
if s2[i] in ['а'..'я','ё'] then s:=s+s4[1+(pos(s2[i],s4)+length(s3)-k-1) mod 33]
else s:=s+s2[i];
end;
writeln('Расшифрованная строка: ',s);
writeln(f3,s)
end;
textcolor(5);
writeln('Файл дешифрован.Смотри файл deschifr.txt.');
Close(f2);
Close(f3);
end.
Аселек вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текстовой файл Katia123 Паскаль, Turbo Pascal, PascalABC.NET 5 23.06.2010 10:14
Создать текстовой файл и подсчитать количество символов в нём. GN_ Паскаль, Turbo Pascal, PascalABC.NET 4 26.05.2010 19:45
текстовой файл Work Group Помощь студентам 0 27.12.2009 19:35
Паскаль, текстовой файл. Alexey_HvaranG Помощь студентам 2 08.12.2009 08:19
Текстовой файл Stanislav Общие вопросы Delphi 3 26.12.2007 14:31