0 / 0 / 0
Регистрация: 18.09.2017
Сообщений: 4
1

Переписать текст из одного файла в другой с заменой английских букв по заданному правилу

16.10.2017, 23:39. Показов 2661. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В исходном текстовом файле записаны строки, содержащие текст на английском языке. Необходимо определить количество букв в самом коротком слове файла, обозначив полученное число К (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Затем необходимо переписать строки исходного файла в результирующий файл, заменив каждую английскую букву в строке на букву, стоящую в алфавите на К букв позже (алфавит считается циклическим, то есть перед буквой А стоит буква Z), оставив другие символы неизменными. Строчные буквы при этом остаются строчными, а прописные - прописными.
Например, пусть в одной из строк исходного файла содержатся следующие символы:
Zb Ra Ca Dab Ra
в результирующем файле должно быть:
Bd Тс Ес Fсd Тс

помогите, пожалуйста с кодом.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2017, 23:39
Ответы с готовыми решениями:

Из одного файла переместить текст в другой файл с заменой текста на другой
Помогите нужно сделать вот такую вещь заготовка есть но не могу осмыслит как сделать вот это: ...

Переписать текст из одного файла в другой
всем привет:) вот имеется прога, которая из одного txt-шного файла переводит текст в другой! все...

Как переписать текст из одного файла в другой?
Скажите, каким образом можно записать текст в текстовый файл, если текст считывается с другого...

Переписать из одного файла в другой слова длиной 1, 3, 5 или 7 букв
"Прочитать текст с файла F и записать в файл g только те слова, которые имеют не парное количество...

3
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
17.10.2017, 13:44 2
Лучший ответ Сообщение было отмечено Puporev как решение

Решение

Например так.
Pascal
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
54
55
56
57
58
59
60
61
62
63
64
65
const b=['A'..'Z'];
      m=['a'..'z'];
var f,g:text;
    alf:set of char;
    bb,mb:array[0..25]of char;
    s:string;
    i,j,l,k,p:integer;
begin
for i:=0 to 25 do
 begin
  bb[i]:=chr(i+65);
  mb[i]:=chr(i+97);
 end;
alf:=m+b;
assign(f,'input.txt');
reset(f);
k:=255;
while not eof(f) do
 begin
  readln(f,s);
  s:=' '+s;
  i:=2;
  while i<=length(s) do
  if(s[i] in alf)and not(s[i-1] in alf) then
   begin
    l:=0;
    j:=i;
    while(j<=length(s))and(s[j] in alf) do
     begin
      l:=l+1;
      j:=j+1;
     end;
    if l<k then k:=l;
    i:=i+l;
   end
  else i:=i+1;
 end;
writeln('Наименьшая длина слова=',k);
assign(g,'output.txt');
rewrite(g);
reset(f);
while not eof(f) do
 begin
  readln(f,s);
  for i:=1 to length(s) do
   begin
    if s[i]in b then
     begin
      p:=0;
      while bb[p]<>s[i] do inc(p);
      s[i]:=bb[(p+k)mod 26];
     end
    else if s[i] in m then
     begin
      p:=0;
      while mb[p]<>s[i] do inc(p);
      s[i]:=mb[(p+k)mod 26];
     end;
   end;
  writeln(g,s);
 end;
close(f);
close(g);
writeln('Файл input.txt прочитан, строки зашифрованы и записаны в файл output.txt')
end.
Что непонятно, спрашивайте.
1
0 / 0 / 0
Регистрация: 18.09.2017
Сообщений: 4
19.10.2017, 22:55  [ТС] 3
Спасибо!!! А можно этот код в процедурах и функциях?
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
20.10.2017, 10:20 4
Цитата Сообщение от Tigras Посмотреть сообщение
А можно этот код в процедурах и функциях?
А можно это было написать сразу при создании темы?
Конечно можно, пишите.

Добавлено через 1 час 58 минут
Pascal
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
const b=['A'..'Z'];
      m=['a'..'z'];
      alf=m+b;
      n=26;
type mas=array[0..n-1] of char;
procedure alfavit(var bb,mb:mas);
var i:integer;
begin
for i:=0 to n-1 do
 begin
  bb[i]:=chr(i+65);
  mb[i]:=chr(i+97);
 end;
end;
function min(var f:text):integer;
var i,j,k,l:integer;
    s:string;
begin
assign(f,'input.txt');
reset(f);
k:=255;
while not eof(f) do
 begin
  readln(f,s);
  s:=' '+s;
  i:=2;
  while i<=length(s) do
  if(s[i] in alf)and not(s[i-1] in alf) then
   begin
    l:=0;
    j:=i;
    while(j<=length(s))and(s[j] in alf) do
     begin
      l:=l+1;
      j:=j+1;
     end;
    if l<k then k:=l;
    i:=i+l;
   end
  else i:=i+1;
 end;
close(f);
min:=k;
end;
procedure shifr(var f,g:text;bb,mb:mas;k:integer);
var s:string;
    i,p:integer;
begin
assign(g,'output.txt');
rewrite(g);
reset(f);
while not eof(f) do
 begin
  readln(f,s);
  for i:=1 to length(s) do
   begin
    if s[i]in b then
     begin
      p:=0;
      while bb[p]<>s[i] do inc(p);
      s[i]:=bb[(p+k)mod n];
     end
    else if s[i] in m then
     begin
      p:=0;
      while mb[p]<>s[i] do inc(p);
      s[i]:=mb[(p+k)mod n];
     end;
   end;
  writeln(g,s);
 end;
close(f);
close(g);
writeln('Файл input.txt прочитан, строки зашифрованы и записаны в файл output.txt')
end;
var f,g:text;
    bb,mb:mas;
    k:integer;
begin
alfavit(bb,mb);
k:=min(f);
writeln('Наименьшая длина слова=',k);
shifr(f,g,bb,mb,k);
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2017, 10:20
Помогаю со студенческими работами здесь

Дан текст состоящий из английских букв. Вывести все буквы входящие в текст более одного раза.
Дан текст состоящий из английских букв. Вывести все буквы входящие в текст более одного раза.

Получить из одного массива другой по заданному правилу
Добрый день, подскажите пожалуйста, как правильно применяются эти правила? Просто, эту задачу надо...

Переписать элементы одного массива в другой по правилу
В общем необходимо переписать элементы массива X, удовлетворяющие -1&lt;X&lt;1, в массив Y и подсчитать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru