Text59. Дана строка $$S$$, состоящая из $$10$$ цифр, и файл с русским текстом. Зашифровать файл, выполнив циклическую замену каждой русской буквы, стоящей на $$K$$-й позиции строки, на букву того же регистра, расположенную в алфавите на $$S_K$$-м месте после шифруемой буквы (для $$K=11$$ снова используется смещение $$S_1$$ и т. д.). Букву «ё» в алфавите не учитывать, знаки препинания и пробелы не изменять.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
program Text59; var F_in,F_out: Text; Name,S:string; C:Char; i:integer; Function Code(C,pos:char): char; var N,error:integer; i:Integer; begin val(pos,N,error); for i:=1 to N do begin if (ord(C) in [128..158,160..174,224..238]) then C:=chr(ord(C)+1) else if (ord(C)=159) then C:=chr(128) else if (ord(C)=175) then C:=chr(224) else if (ord(C)=239) then C:=chr(160); end; Code:=C; end; begin Write('S: '); Readln(S); Write('File name: '); Readln(Name); Assign(F_in,Name); Reset(F_in); Assign(F_out,'~'+Name); Rewrite(F_out); While not eof(F_in) do begin i:=-1; While not eoln(F_in) do begin inc(i); Writeln(i,' ',(i mod 10)+1); Read(F_in,C); C:=Code(C,S[(i mod 10)+1]); Write(F_out,C); end; Readln(F_in); Writeln(F_out); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,Name); end. |
Другие задачи из раздела Text можно посмотреть здесь.
Есть код на с++??
Не… пока нету.. а терпит до вторника? тогда будет 🙂
переписал строки вывода не в файл а на экран, вот что получается(совсем не то что требуется):
0 1
— 1 2
2 3
З 3 4
д 4 5
р 5 6
а 6 7
в 7 8
с 8 9
т 9 10
в 10 1
у 11 2
й 12 3
, 13 4
14 5
И 15 6
а 16 7
, 17 8
18 9
— 19 10
20 1
с 21 2
к 22 3
а 23 4
з 24 5
а 25 6
л 26 7
27 8
К 28 9
р 29 10
и 30 1
с 31 2
т 32 3
о 33 4
ф 34 5
е 35 6
р 36 7
37 8
Р 38 9
о 39 10
б 40 1
и 41 2
н 42 3
, 43 4
44 5
о 45 6
т 46 7
к 47 8
р 48 9
ы 49 10
в
0 1
д 1 2
в 2 3
е 3 4
р 4 5
ь 5 6
6 7
и 7 8
8 9
в 9 10
ы 10 1
й 11 2
д 12 3
я 13 4
14 5
н 15 6
а 16 7
17 8
д 18 9
в 19 10
о 20 1
р 21 2
. 22 3
23 4
— 24 5
25 6
К 26 7
а 27 8
к 28 9
29 10
т 30 1
ы 31 2
32 3
с 33 4
е 34 5
б 35 6
я 36 7
37 8
ч 38 9
у 39 10
в 40 1
с 41 2
т 42 3
в 43 4
у 44 5
е 45 6
ш 46 7
ь 47 8
?
0 1
— 1 2
2 3
С 3 4
н 4 5
е 5 6
г 6 7
7 8
в 8 9
с 9 10
е 10 1
11 2
и 12 3
д 13 4
е 14 5
т 15 6
, 16 7
17 8
— 18 9
19 10
м 20 1
р 21 2
а 22 3
ч 23 4
н 24 5
о 25 6
26 7
с 27 8
к 28 9
а 29 10
з 30 1
а 31 2
л 32 3
33 4
И 34 5
а 35 6
.
0 1
— 1 2
2 3
Д 3 4
а 4 5
, 5 6
6 7
д 7 8
а 8 9
.
0 1
— 1 2
2 3
И 3 4
4 5
м 5 6
о 6 7
р 7 8
о 8 9
з 9 10
.
0 1
— 1 2
2 3
Д 3 4
а 4 5
?
0 1
— 1 2
2 3
Д 3 4
а 4 5
, 5 6
6 7
— 7 8
8 9
с 9 10
к 10 1
а 11 2
з 12 3
а 13 4
л 14 5
15 6
И 16 7
а 17 8
. 18 9
19 10
— 20 1
21 2
О 22 3
д 23 4
н 24 5
а 25 6
к 26 7
о 27 8
, 28 9
29 10
— 30 1
31 2
д 32 3
о 33 4
б 34 5
а 35 6
в 36 7
и 37 8
л 38 9
39 10
о 40 1
н 41 2
, 42 3
43 4
н 44 5
е 45 6
м 46 7
н 47 8
о 48 9
г 49 10
о
0 1
п 1 2
р 2 3
о 3 4
с 4 5
в 5 6
е 6 7
т 7 8
л 8 9
е 9 10
в 10 1
, 11 2
12 3
— 13 4
14 5
з 15 6
е 16 7
м 17 8
л 18 9
е 19 10
т 20 1
р 21 2
я 22 3
с 23 4
е 24 5
н 25 6
и 26 7
й 27 8
28 9
у 29 10
30 1
н 31 2
а 32 3
с 33 4
34 5
в 35 6
36 7
п 37 8
о 38 9
с 39 10
л 40 1
е 41 2
д 42 3
н 43 4
е 44 5
е
0 1
в 1 2
р 2 3
е 3 4
м 4 5
я 5 6
6 7
н 7 8
е 8 9
9 10
б 10 1
ы 11 2
л 12 3
о 13 4
.
0 1
— 1 2
2 3
Ч 3 4
т 4 5
о 5 6
6 7
с 7 8
л 8 9
у 9 10
ч 10 1
и 11 2
л 12 3
о 13 4
с 14 5
ь 15 6
, 16 7
17 8
И 18 9
а 19 10
?
0 1
— 1 2
2 3
Н 3 4
и 4 5
ч 5 6
е 6 7
г 7 8
о 8 9
, 9 10
10 1
К 11 2
р 12 3
и 13 4
с 14 5
т 15 6
о 16 7
ф 17 8
е 18 9
р 19 10
20 1
Р 21 2
о 22 3
б 23 4
и 24 5
н 25 6
. 26 7
27 8
Н 28 9
и 29 10
ч 30 1
е 31 2
г 32 3
о 33 4
34 5
с 35 6
у 36 7
щ 37 8
е 38 9
с 39 10
т 40 1
в 41 2
е 42 3
н 43 4
н 44 5
о 45 6
г 46 7
о 47 8
.
0 1
Т 1 2
ы 2 3
, 3 4
4 5
к 5 6
о 6 7
н 7 8
е 8 9
ч 9 10
н 10 1
о 11 2
, 12 3
13 4
н 14 5
е 15 6
16 7
в 17 8
и 18 9
д 19 10
е 20 1
л 21 2
22 3
г 23 4
д 24 5
е 25 6
— 26 7
н 27 8
и 28 9
б 29 10
у 30 1
д 31 2
ь 32 3
33 4
з 34 5
д 35 6
е 36 7
с 37 8
ь 38 9
39 10
д 40 1
о 41 2
м 42 3
а 43 4
44 5
и 45 6
л 46 7
и
0 1
ч 1 2
е 2 3
г 3 4
о 4 5
— 5 6
н 6 7
и 7 8
б 8 9
у 9 10
д 10 1
ь 11 2
12 3
в 13 4
14 5
э 15 6
т 16 7
о 17 8
м 18 9
19 10
р 20 1
о 21 2
д 22 3
е 23 4
?
это 100% рабочий код для текст 59. Протестирован в PascalABC.