Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.95 KB | None | 0 0
  1. var input, output: text;
  2. PocetSlov, sirka: integer;
  3. konec: boolean;
  4. riadok, NavyseSlovo, NavyseSlovo2, Zformatovany: string;
  5.  
  6. procedure Sformatovat(riadok:string; PocetSlov:integer);
  7. var dlzka, zvysok, volno, medzera, i, j: integer;
  8. znak: char;
  9. begin
  10.     if PocetSlov>1 then begin
  11.         dlzka:=length(riadok)-1;
  12.         volno:=sirka-dlzka+PocetSlov-1;
  13.         medzera:=volno div (PocetSlov-1);
  14.         zvysok:=volno mod (PocetSlov-1);
  15.  
  16.         for i:=1 to dlzka do begin
  17.             znak:=riadok[i];
  18.             if znak=' ' then begin
  19.             for j:=1 to medzera do
  20.                 write(output, ' ');
  21.                 if zvysok > 0 then begin
  22.                     write(output, ' ');
  23.                     Dec(zvysok);
  24.                 end;
  25.             end else write(output, znak);
  26.         end;
  27.     end else writeln(output, riadok);
  28.     writeln(output, '');
  29. end;
  30.  
  31. procedure Nacitajriadok(var riadok, NavyseSlovo: string; var PocetSlov: integer; NavyseSlovo2: string);
  32. var znak:char;
  33. slovo:string;
  34. begin
  35.     riadok:=''; NavyseSlovo:=''; slovo:=''; PocetSlov:=0;
  36.     if length(NavyseSlovo2)>0 then begin riadok:=NavyseSlovo2+' '; PocetSlov:=1; end;
  37.     repeat
  38.     read(input, znak);
  39.     if (znak=#10) or (znak=#13) then znak:=' ';
  40.     if (znak=' ') or (eof(input)) then begin
  41.         if length(riadok)+length(slovo)<=sirka then begin
  42.             if length(slovo)>0 then begin
  43.                 if eof(input) then riadok:=riadok+slovo+znak
  44.                 else riadok:=riadok+slovo+' ';
  45.                 Inc(PocetSlov);
  46.             end;
  47.             slovo:='';
  48.         end else begin
  49.             NavyseSlovo:=slovo;
  50.                 if eof(input) then NavyseSlovo:=NavyseSlovo+znak;
  51.                 break;
  52.             end;
  53.         end else
  54.         slovo:=slovo+znak;
  55.     until eof(input);
  56.     if eof(input) then konec:=true;
  57. end;
  58.  
  59. begin
  60.     assign(input, 'odst.in');
  61.     reset(input);
  62.     assign(output, 'odst.out');
  63.     rewrite(output);
  64.     readln(input, sirka);
  65.  
  66.     repeat
  67.         Nacitajriadok(riadok, NavyseSlovo, PocetSlov, NavyseSlovo2);
  68.  
  69.         if konec then begin
  70.             if length(NavyseSlovo)>0 then begin Sformatovat(riadok, PocetSlov); write(output, NavyseSlovo); end else
  71.                 write(output, riadok)
  72.             end
  73.         else Sformatovat(riadok, PocetSlov);
  74.         NavyseSlovo2:=NavyseSlovo;
  75.     until konec;
  76.  
  77.     close(input);
  78.     close(output);
  79. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement