Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
DeSSmO
0 / 0 / 1
Регистрация: 23.10.2015
Сообщений: 29
1

Строка: каждый символ строки S заменяются на следующий за ним символ в строке S...

28.11.2015, 15:57. Просмотров 1032. Ответов 4
Метки нет (Все метки)

Дано: в текстовом файле fin.txt находится текст на русском языке. С клавиатуры вводится число К.
Надо: написать подпрограмму, которая по заданной строке S формирует строку, полученную из S следующим способом: каждый символ строки S заменяются на следующий за ним символ в строке S, а последний символ строки заменяется на первый. Например, если дана строка «Привет, Мир!», то получим: «ривет, Мир!П»
Используя эту подпрограмму, сформировать компонентный файл fout.dat, K-ым элементом которого является строка, полученная описанным выше способом из К-ой строки файла fin.txt.
Вывести полученный компонентный файл на экран.
Я уже недели две читаю разные сайты про структуры данных, массивы, циклы и написал только вот это:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
program project1;
var f: text;
 s:string;
begin
 assign(f,'fin.txt');
 reset(f);
 while not eof(f) do
 begin
 read(f,s);
 write(s);
 end;
 readln;
end.
Помогите найти сайты или напишите пожалуйста какой-нибудь пример, что бы я выполнил это задание
Заранее Спасибо
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2015, 15:57
Ответы с готовыми решениями:

Найти пробел в строке и удалить следующий за ним символ
Помогите, пожалуйста. Как в делфи найти пробел в строке и удалить следующий за ним символ.

Преобразовать последовательность, удалив каждый символ * и повторить каждый символ, отличный от него
Приветствую вас!!! Дано натуральное число n, символы s1,…, sn Преобразовать...

Преобразовать последовательность S1...Sn, удалив каждый символ *, и повторив каждый символ, отличный от *
Дано натуральное число n. Символы S1...Sn. Преобразовать последовательность S1...Sn, удалив каждый...

Преобразовать последовательность, удалив каждый символ * и повторив каждый символ, отличный от *
Текст задачи: Даны натуральное число n, символы S1,...,Sn. Преобразовать ...

Преобразовать последовательность, удалив каждый символ '*' и повторив каждый символ, отличный от '*'
1) Даны натуральное число n, символы s1,..., sn. Выяснить, имеются ли в этой ...

4
i8085
2045 / 1430 / 276
Регистрация: 11.09.2009
Сообщений: 5,145
28.11.2015, 16:12 2
Лучший ответ Сообщение было отмечено DeSSmO как решение

Решение

Цитата Сообщение от DeSSmO Посмотреть сообщение
Помогите найти сайты...
Зачем далеко ходить?
Всё, о чём вы спрашиваете, есть на этом форуме. В разных вариантах и с примерами.
Цитата Сообщение от DeSSmO Посмотреть сообщение
Я уже недели две читаю
Тогда потратьте ещё максимум часик и найдите на этом форуме примеры "что такое циклы for while и repeat/until", чтения и записи в файлы, что такое строки и как с ними работать.
Начните с Литература Delphi
1
DeSSmO
0 / 0 / 1
Регистрация: 23.10.2015
Сообщений: 29
28.11.2015, 18:19  [ТС] 3
Спасибо
0
DeSSmO
0 / 0 / 1
Регистрация: 23.10.2015
Сообщений: 29
01.12.2015, 22:01  [ТС] 4
смотрите я вот написал но выдает ошибку в 19 и 23 строке, не знаю что такое, подскажите
Delphi
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
program project1;
 
uses Math;
 
function myfunc(s:string):string;
var L:integer;
c:char;
begin
 L:=length(s);
 c:=s[1];
 myfunc:=copy(s,2,L-1)+c;
end;
 
var f,f1: text;
s:string;
 
begin
 assign(f,'fin.txt');
 reset(f);
 while not eof(f) do
 begin
 Readln(f,s);
 write(f1,myfunc(s));
 end;
end.
0
i8085
2045 / 1430 / 276
Регистрация: 11.09.2009
Сообщений: 5,145
03.12.2015, 22:28 5
Почитайте про типы переменных.
Если работаете с файлом - ваша переменная должна быть типа File. В вашем случае файл текстовый, значит тип - TextFile.
Писать и читать в один файл для начала не стоит. Сначала освойте чтение из одного, а запись в другой файл.
И побольше читайте, как написаны чужие коды.

Исправить, наверное, надо так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
f,f1: TextFile;
s:string;
 
begin
AssignFile(f,'fin.txt');  // Связать переменную "f" с входным файлом "fin.txt"
reset(f);           // Установить указатель на начало файла
AssignFile(f1,'fout.txt');  //  Связать переменную "f" с выходным файлом "fout.txt" (по умолчанию режим "чтение и запись")
Rewrite(f1);  // Установить запись с начала файла (предыдущее содержимое будет стёрто). Если такого файла нет, он будет создан.
 while not eof(f) do  // выполнять цикл до конца входного файла
  begin
  Readln(f,s);          // прочитать очередную строку из входного файла в переменную "s"
  Writeln(f1,myfunc(s));  // записать модифицированную строку в выходной файл.
  end;
CloseFile(f)          // закрыть файл f
CloseFile(f1)        // закрыть файл f1
end.
1
03.12.2015, 22:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2015, 22:28

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

В строке произвольной длины найти символ "а" и удалить за ним 5 символов
Знаю только то , что надо делать через массив(по-другому, вроде никак).

Каждый символ строки заменить на следующий за ним, а последний символ строки заменяеть первым
я написал код но не могу разобраться. вот дано :...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru