Программные коды для Варианта 1.
Задание 1.
PROGRAM P1_1;
VAR TEXT,KRIPT,TEXT1:STRING;
{TEXT - VHODNOY TEXT}
{TEXT1 - TEXT BEZ PROBELOV}
{KRIPT - VYHODNOY TEXT}
N,I,M,R:INTEGER;
{R - REGIM,1 - SHIFROVANIYE, 2 - DESHIFROVANIYE}
BEGIN
WRITELN;
{VYBOR REGIMA}
REPEAT
WRITELN('VYBERITE REGIM:');
WRITELN(' 1.SHIFROVANIYE');
WRITELN(' 2.DESHIFROVANIYE');
READLN(R);
UNTIL ((R=1)OR(R=2));
{VVOD TEXTA}
IF R=1 THEN {SHIFROVANIYE}
WRITELN('VVEDITE TEXT')
ELSE {DESHIFROVANIYE}
WRITELN('VVEDITE KRIPTOGRAMMU');
READLN(TEXT);
N:=LENGTH(TEXT);{DLINA TEXTA}
M:=N MOD 3;
{DOPOLNYAEM PROBELAMI DO KRATNOGO 3M}
FOR I:=1 TO ((3-M) MOD 3) DO TEXT:=TEXT+' ';
N:=LENGTH(TEXT);
{SHIFROVANIYE/DESHIFROVANIYE}
KRIPT:='';
FOR I:=1 TO N DO
IF (I MOD 3)=1 THEN KRIPT:=KRIPT+TEXT[I+2]
ELSE IF (I MOD 3)=2 THEN KRIPT:=KRIPT+TEXT[I]
ELSE KRIPT:=KRIPT+TEXT[I-2];
{VYVOD REZULTATA}
IF R=1 THEN
WRITELN('KRIPTOGRAMMA:',KRIPT)
ELSE WRITELN('TEXT:',KRIPT);
END. Задание 2.
PROGRAM P2_1;
VAR TEXT,TEXT1,KRIPT:STRING;
{TEXT - VHODNOY TEXT}
{KRIPT - VYHODNOY TEXT}
{TEXT1 - TEXT BEZ PROBELOV}
SDVIG,I,R,KOD:INTEGER;
{R-PARAMETR SHIFROVANIYE ILI DESHIFROVANIYE}
BEGIN
WRITELN;
{VYBOR REGIMA}
REPEAT
WRITELN('VYBERITE REGIM:');
WRITELN(' 1.SHIFROVANIYE');
WRITELN(' 2.DESHIFROVANIYE');
READLN(R);
UNTIL ((R=1)OR(R=2));
{VVOD TEXTA}
IF R=1 THEN {SHIFROVANIYE}
WRITELN('VVEDITE TEXT')
ELSE {DESHIFROVANIYE}
WRITELN('VVEDITE KRIPTOGRAMMU');
READLN(TEXT);
{UBIRAEM PROBELY}
TEXT1:='';
FOR I:=1 TO LENGTH(TEXT) DO
IF TEXT[I]<>' ' THEN TEXT1:=TEXT1+TEXT[I];
{SHIFROVANIYE/DESHIFROVANIYE}
KRIPT:='';
FOR I:=1 TO LENGTH(TEXT1) DO
BEGIN
{OPREDELENIYE SDVIGA}
CASE I MOD 3 OF
0:SDVIG:=1;
1:SDVIG:=3;
2:SDVIG:=2;
END;
IF R=1 THEN KRIPT:=KRIPT+CHR(ORD(‘a’)+((ORD(TEXT1[I])+SDVIG- ORD(‘a’)) MOD 26))
ELSE BEGIN KOD:=ORD(TEXT1[I])-SDVIG;
IF KOD< ORD(‘a’) THEN KOD:=KOD+26;
KRIPT:=KRIPT+CHR(KOD);
END;
END;
{VYVOD REZULTATA}
IF R=1 THEN
WRITELN('KRIPTOGRAMMA:',KRIPT)
ELSE WRITELN('TEXT:',KRIPT);
END. Задание 3.
var a:array[1..10,1..10] of char;
i,j,n,k,f,x:integer; s:string;
begin
readln(s);k:=0;
n:=round(sqrt(length(s))); x:=length(s);
for f:=1 to n div 2+1 do begin
i:=1+k;
for j:=1+k to n-k do begin a[i,j]:=s[x];x:=x-1 end;
j:=n-k;
for i:=2+k to n-k do begin a[i,j]:=s[x]; x:=x-1 end;
i:=n-k;
for j:=n-1-k downto 1+k do begin a[i,j]:=s[x]; x:=x-1 end;
j:=1+k;
for i:=n-1-k downto 2+k do begin a[i,j]:=s[x]; x:=x-1 end;
k:=k+1 end;
for i:=1 to n do begin
for j:=1 to n do write(a[i,j],' ');writeln end;
end.
Программные коды для Варианта 2.
Задание 1.
PROGRAM P1_2;
VAR TEXT,KRIPT,TEXT1:STRING;
{TEXT - VHODNOY TEXT}
{TEXT1 - TEXT BEZ PROBELOV}
{KRIPT - VYHODNOY TEXT}
N,I:INTEGER;
BEGIN
WRITELN;
{VVOD TEXTA}
WRITELN('VVEDITE TEXT');
READLN(TEXT);
N:=LENGTH(TEXT);
KRIPT:='';TEXT1:='';
FOR I:=1 TO N DO
BEGIN
IF TEXT[I]<>' ' THEN TEXT1:=TEXT1+TEXT[I];{UBIRAEM PROBELY}
IF TEXT[N-I+1]<>' ' THEN KRIPT:=KRIPT+TEXT[N-I+1]; {SHIFRUEM}
END;
{VYVOD KRIPTOGRAMMY}
WRITELN('KRIPTOGRAMMA: ',KRIPT);
IF TEXT1=KRIPT THEN WRITELN('TEXT - PALINDROM')
ELSE WRITELN('TEXT - NE PALINDROM');
END.
Задание 2.
PROGRAM P2_2;
VAR TEXT,TEXT1,KRIPT:STRING;
{TEXT - VHODNOY TEXT}
{KRIPT - VYHODNOY TEXT}
{TEXT1 - TEXT BEZ PROBELOV}
SDVIG,I,R,KOD,N:INTEGER;
{R-PARAMETR SHIFROVANIYE ILI DESHIFROVANIYE}
{N - CHISLO SLOV}
BEGIN
WRITELN;
{VYBOR REGIMA}
REPEAT
WRITELN('VYBERITE REGIM:');
WRITELN(' 1.SHIFROVANIYE');
WRITELN(' 2.DESHIFROVANIYE');
READLN(R);
UNTIL ((R=1)OR(R=2));
{VVOD TEXTA}
IF R=1 THEN {SHIFROVANIYE}
WRITELN('VVEDITE TEXT')
ELSE {DESHIFROVANIYE}
WRITELN('VVEDITE KRIPTOGRAMMU');
READLN(TEXT);
TEXT1:='';
N:=1;
{UBIRAEM PROBELY, SCHITAEM KOLICHESTVO SLOV }
FOR I:=1 TO LENGTH(TEXT) DO
IF TEXT[I]<>' ' THEN TEXT1:=TEXT1+TEXT[I]
ELSE N:=N+1;
{VYCHISLAYEM SDVIG}
SDVIG:=ROUND(LENGTH(TEXT1)/N);
{SHIFROVANIYE/DESHIFROVANIYE}
KRIPT:='';
FOR I:=1 TO LENGTH(TEXT1) DO
BEGIN
IF R=1 THEN KRIPT:=KRIPT+CHR(ORD(‘a’)+((ORD(TEXT1[I])+SDVIG- ORD(‘a’)) MOD 26))
ELSE BEGIN KOD:=ORD(TEXT1[I])-SDVIG;
IF KOD< ORD(‘a’) THEN KOD:=KOD+26;
KRIPT:=KRIPT+CHR(KOD);
END;
END;
{VYVOD REZULTATA}
IF R=1 THEN
WRITELN('KRIPTOGRAMMA:',KRIPT)
ELSE WRITELN('TEXT:',KRIPT);
END. Задание 3.
var a:array[1..10,1..10] of char;
i,j,n,k,f,x:integer; s:string;
begin
readln(s);k:=0;
n:=round(sqrt(length(s))); x:=length(s);
for f:=1 to n div 2+1 do begin
j:=1+k;
for i:=1+k to n-k do begin a[i,j]:=s[x];x:=x-1 end;
i:=n-k;
for j:=2+k to n-k do begin a[i,j]:=s[x]; x:=x-1 end;
j:=n-k;
for i:=n-1-k downto 1+k do begin a[i,j]:=s[x]; x:=x-1 end;
i:=1+k;
for j:=n-1-k downto 2+k do begin a[i,j]:=s[x]; x:=x-1 end;
k:=k+1 end;
for i:=1 to n do begin
for j:=1 to n do write(a[i,j],' ');writeln end;
end.
Программные коды для Варианта 3.
Задание 1.
PROGRAM P1_3;
VAR TEXT,TEXT1,KRIPT,SLOVO:STRING;
{TEXT - VHODNOY TEXT}
{TEXT1 -VSPOMOGAT. PEREM}
{SLOVO - SLOVO ZASHIFROVANNOYE/DESHIFROVANNOYE}
{KRIPT - VYHODNOY TEXT}
N2,K,I,R:INTEGER;
{R - REGIM,1 - SHIFROVANIYE, 2 - DESHIFROVANIYE}
BEGIN
WRITELN;
{VYBOR REGIMA}
REPEAT
WRITELN('VYBERITE REGIM:');
WRITELN(' 1.SHIFROVANIYE');
WRITELN(' 2.DESHIFROVANIYE');
READLN(R);
UNTIL ((R=1)OR(R=2));
{VVOD TEXTA}
IF R=1 THEN {SHIFROVANIYE}
WRITELN('VVEDITE TEXT')
ELSE {DESHIFROVANIYE}
WRITELN('VVEDITE KRIPTOGRAMMU');
READLN(TEXT);
KRIPT:='';
TEXT1:=TEXT;
REPEAT
N2:=POS(' ',TEXT1); {NAHODIM VHOGDENIYE PROBELA - KONEC SLOVA}
IF N2=0 THEN N2:=LENGTH(TEXT1)+1;
SLOVO:='';
FOR I:=N2-1 DOWNTO 1 DO SLOVO:=SLOVO+TEXT1[I];
KRIPT:=KRIPT+SLOVO+' ';
TEXT1:=COPY(TEXT1,N2+1,LENGTH(TEXT1)-N2); {IZ TEXT1 UDALYAEM UGE
ZASHIFROVANNOYE SLOVO}
UNTIL TEXT1='';
{VYVOD REZULTATA}
IF R=1 THEN
WRITELN('KRIPTOGRAMMA:',KRIPT)
ELSE WRITELN('TEXT:',KRIPT);
END. Задание 2.
PROGRAM P2_3;
VAR TEXT,TEXT1,KRIPT:STRING;
{TEXT - VHODNOY TEXT}
{KRIPT - VYHODNOY TEXT}
{TEXT1 - TEXT BEZ PROBELOV}
SDVIG,I,R,KOD:INTEGER;
{R-PARAMETR SHIFROVANIYE ILI DESHIFROVANIYE}
BEGIN
WRITELN;
{VYBOR REGIMA}
REPEAT
WRITELN('VYBERITE REGIM:');
WRITELN(' 1.SHIFROVANIYE');
WRITELN(' 2.DESHIFROVANIYE');
READLN(R);
UNTIL ((R=1)OR(R=2));
{VVOD TEXTA}
IF R=1 THEN {SHIFROVANIYE}
WRITELN('VVEDITE TEXT')
ELSE {DESHIFROVANIYE}
WRITELN('VVEDITE KRIPTOGRAMMU');
READLN(TEXT);
{UBIRAEM PROBELY}
TEXT1:='';
FOR I:=1 TO LENGTH(TEXT) DO
IF TEXT[I]<>' ' THEN TEXT1:=TEXT1+TEXT[I];
{SHIFROVANIYE/DESHIFROVANIYE}
KRIPT:='';
FOR I:=1 TO LENGTH(TEXT1) DO
BEGIN
SDVIG:=I MOD 5; {VYCHISLYAEM SDVIG}
IF R=1 THEN KRIPT:=KRIPT+CHR(ORD(‘a’)+((ORD(TEXT1[I])+SDVIG- ORD(‘a’)) MOD 26))
ELSE BEGIN KOD:=ORD(TEXT1[I])-SDVIG;
IF KOD< ORD(‘a’) THEN KOD:=KOD+26;
KRIPT:=KRIPT+CHR(KOD);
END;
END;
{VYVOD REZULTATA}
IF R=1 THEN
WRITELN('KRIPTOGRAMMA:',KRIPT)
ELSE WRITELN('TEXT:',KRIPT);
END. Задание 3.
var a:array[1..10,1..10] of char;
i,j,n,k,f,x:integer; s:string;
begin
readln(s);k:=0;
n:=round(sqrt(length(s))); x:=length(s);
for f:=1 to n div 2+1 do begin
i:=1+k;
for j:=1+k to n-k do begin a[i,j]:=s[x];x:=x-1 end;
j:=n-k;
for i:=2+k to n-k do begin a[i,j]:=s[x]; x:=x-1 end;
i:=n-k;
for j:=n-1-k downto 1+k do begin a[i,j]:=s[x]; x:=x-1 end;
j:=1+k;
for i:=n-1-k downto 2+k do begin a[i,j]:=s[x]; x:=x-1 end;
k:=k+1 end;
for i:=1 to n do begin
for j:=1 to n do write(a[i,j],' ');writeln end;
end.
Дополнительные задания
Во время поездки на автобусе пассажир заменил в названии маршрута каждую букву ее номером в русском алфавите и получил запись из единиц и двоек «211221-21221». Определить, откуда и куда едет автобус. Список городов прилагается: Баку, Москва, Муром, Орел, Курск, Киев, Уфа, Тверь, Тула.
Перевертыш. Написать программу для считывания отрывка из текста, переведя его на язык Перевертыша и печати переведенного варианта по правилу: буквы, стоящие до первой гласной, передвигаются в конец слова и к вновь образованному слову добавляется окончание «циус».
Пример: кот в сапогах - откциус вциус апогахциус
Дешифровка. Дана последовательность целых чисел. Затем все элементы были изменены следующим образом: каждый элемент получил новое значение, равное количеству чисел в исходной последовательности, стоящих правее этого элемента и превышающих его значение. Восстановить эту последовательность.
Дан текст, слова которого перевернуты задом наперед. Восстановить текст.
|