Записать строки файла f в файл g, поменяв порядок их следования на противоположный — Pascal(Паскаль)

При этом, если строка короче 50 символов, удлинить её, вставляя равномерно между всеми словами пробелы, пока длина не достигнет 50 символов.

program PascalGuru;

uses crt;

var
  f, g: text;
  str: string;

  { -------------------------------------------- }
procedure insert_probel(var s: string);
label 1;
var
  i: integer;
begin
1:
  i := 1;
  repeat
    if (s[i] = ' ') and (s[i + 1] <> ' ') then
    begin
      insert(' ', s, i + 1);
      inc(i);
    end;
    inc(i);

    if length(s) > 50 then
      exit;
  until i > 50;
  { --- }
  if length(s) < 50 then
    goto 1;
end;

{ -------------------------------------------- }
function exchange(s: string): string;
var
  i: integer;
  x: string;
begin
  x := '';
  For i := 1 to length(s) do
    x := s[i] + x;
  exchange := x;
end;

{ -------------------------------------------- }
begin
  clrscr;
  assign(f, 'f.txt');
  reset(f);
  assign(g, 'g.txt');
  rewrite(g);

  while not eof(f) do
  begin
    readln(f, str);
    if length(str) < 50 then
      insert_probel(str)
    else
      str := exchange(str);
    writeln(g, str);
  end;

  writeln('Fail "g.txt" uspeshno zapisan...');

  close(f);
  close(g);
  readln;

end.

Leave a Comment

76 + = 79