Перестановка в конец строки начала каждой строки до символа с заданным номером - Free Pascal
Формулировка задачи:
Условие задачи: Перестановка в конец строки начала каждой строки до символа с заданным номером.
Работать нужно с файлами. У меня получилось типо этого
Но программе чёто не нравится..
program lab;
var f1,f2:text;
ch,str1,str2:string;
i,n:integer;
begin
WRITE('Введите номер символа '); readln(n);
assign(f1,'ut.TXT');
reset(f1);
assign(f2,'tut.TXT');
rewrite(f2);
while not EOF(f1) do begin
for i:=1 to n do
read(f1,ch);
str1:=str1+ch;
end;
while eoln(f1) do begin
read(f1,ch);
str2:=str2+ch;
end;
writeln(f2,str2+str1);
readln(f1);
close(f2);
close(f1);
end.Решение задачи: «Перестановка в конец строки начала каждой строки до символа с заданным номером»
textual
Листинг программы
var
fi, fo: Text;
s: String;
n: Integer;
begin
Assign(fi,'input.txt'); Assign(fo,'output.txt');
Reset(fi); Rewrite(fo);
repeat Write('Введите номер символа: '); ReadLn(n); until n>0;
while not EOF(fi) do begin
ReadLn(fi,s); WriteLn(fo,Copy(s,n+1,Length(s)),Copy(s,1,n));
end;
Close(fi); Close(fo);
end.
Объяснение кода листинга программы
- Объявлены переменные:
- fi, fo: Text; - файловые переменные для работы с файлами
- s: String; - строковая переменная для работы со строками
- n: Integer; - целочисленная переменная для работы с числами
- Присвоены значения переменным fi и fo, указывающие на файлы input.txt и output.txt соответственно.
- Открыты файлы fi и fo на чтение и запись соответственно.
- Пользователю предлагается ввести номер символа, с которого необходимо переставить строки в файле.
- Числовое значение номера символа сохраняется в переменной n.
- Пока файл не пуст, выполняется цикл:
- Считывается строка из файла fi и сохраняется в переменной s.
- В файл fo записывается подстрока начиная с символа с номером n и до конца строки.
- Перед символом с номером n вставляется подстрока начиная с первого символа и до n-1 символа.
- Закрываются файлы fi и fo.