Пятница, 22 Ноября 2024, 19:33

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
CrystalZДата: Вторник, 15 Января 2013, 22:23 | Сообщение # 1 | Тема: Pascal помогите в учении)
уже был
Сейчас нет на сайте
Здраствуйте дорогие форумчане, довольно таки недавно начал изучать ЯП Pascal. Буду выкладывать здесь плоды моих трудов, хочется наставлений от более опытных в программировании на Pascal людей, чтобы как говорится тыкнули носом в те места которые нужно дороботать и как эти места можно дороботать. Первое за что я взялся, это небольшой шифратор текста, поддержывает пока правда только англ, но все впереди)
Шифруется текст по методу Цезаря, тобиш считывается символ, получаем его порядковый номер по алфавиту, затем прибавляем три к номеру и заменяем символом под этим порядковым номером.
Вот текст программы:

PROGRAM file_code;
USES crt;
TYPE
BLiters='A'..'Z';
SLiters='a'..'z';
crypt = object
f_pars();

end;

VAR
VFI,VFO:text;//file's vars
in_file,out_file,SFE:string;//in and out filenames
iFt_k:boolean;
i:integer;
procedure text_cript(var SFE:string);
var
ABC: array [1..26] of char;
abc_: array [1..26] of char;
j:integer;
begin
ABC[1]:='A';
ABC[2]:='B';
ABC[3]:='C';
ABC[4]:='D';
ABC[5]:='E';
ABC[6]:='F';
ABC[7]:='G';
ABC[8]:='H';
ABC[9]:='I';
ABC[10]:='J';
ABC[11]:='K';
ABC[12]:='L';
ABC[13]:='M';
ABC[14]:='N';
ABC[15]:='O';
ABC[16]:='P';
ABC[17]:='Q';
ABC[18]:='R';
ABC[19]:='S';
ABC[20]:='T';
ABC[21]:='U';
ABC[22]:='V';
ABC[23]:='W';
ABC[24]:='X';
ABC[25]:='Y';
ABC[26]:='Z';
ABC_[1]:='a';
ABC_[2]:='b';
ABC_[3]:='c';
ABC_[4]:='d';
ABC_[5]:='e';
ABC_[6]:='f';
ABC_[7]:='g';
ABC_[8]:='h';
ABC_[9]:='i';
ABC_[10]:='j';
ABC_[11]:='k';
ABC_[12]:='l';
ABC_[13]:='m';
ABC_[14]:='n';
ABC_[15]:='o';
ABC_[16]:='p';
ABC_[17]:='q';
ABC_[18]:='r';
ABC_[19]:='s';
ABC_[20]:='t';
ABC_[21]:='u';
ABC_[22]:='v';
ABC_[23]:='w';
ABC_[24]:='x';
ABC_[25]:='y';
ABC_[26]:='z';
for i:=1 to Length(SFE) do
begin
if(SFE[i] in ['A'..'Z']) then
begin
for j:=1 to 26 do
begin
if ABC[j]=SFE[i] then
begin
if j+3>26 then
begin
Delete(SFE,i,1);
Insert(ABC[j+3-26],SFE,i);

end
else begin
Delete(SFE,i,1);
Insert(ABC[j+3],SFE,i);

end;
break;

end;

end;
end;
if(SFE[i] in ['a'..'z']) then
begin
for j:=1 to 26 do
begin
if ABC_[j]=SFE[i] then
begin
if j+3>26 then
begin
Delete(SFE,i,1);
Insert(ABC_[j+3-26],SFE,i);

end
else begin
Delete(SFE,i,1);
Insert(ABC_[j+3],SFE,i);
end;
break;

end;

end;
end;

end;

writeln(VFO,SFE);

end;

BEGIN
clrscr;
writeln('Программа шифрует текстовый файл.');
writeln('Внимание!! Файл должен находится в одной директории с программой!');

repeat
iFt_k:=true;
{$I-}
writeln('Введите имя входного файла!');
readln(in_file);
assign(VFI,in_file);
reset(VFI);
{$I+}
if (IOResult<>0) or (in_file='') then
begin
writeln('Не удалось открыть файл ',in_file,' нажмите Enter для завершения');
iFt_k:=false;
end;

until iFt_k=true;
{$I-}
writeln('Введите имя выходного файла!');
readln(out_file);
assign(VFO,out_file);
rewrite(VFO);
{$I+}
while (not Eof(VFI)) do
begin
readln(VFI,SFE);

text_cript(SFE);
end;
close(VFO);
readln();

END.


Сообщение отредактировал CrystalZ - Вторник, 15 Января 2013, 22:26
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг