File51. Даны три файла вещественных чисел с именами $$S_1$$, $$S_2$$ и $$S_3$$, элементы которых упорядочены по убыванию. Объединить эти файлы в новый файл с именем $$S_4$$ так, чтобы его элементы также оказались упорядоченными по убыванию.
Решение:
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 85 86 87 88 |
program File51; var S1,S2,S3,S4: String; F1,F2,F3,F4: File of Real; El1,El2,El3:Real; File1end,File2end,File3end:boolean; Function comparison(A,B,C:Real; Ba,Bb,Bc:Boolean): Boolean; begin if not(Ba) and not(Bb) and not(Bc) then if (A>=B) and (A>=C) then comparison:=true else comparison:=false else if not(Ba) and not(Bb) and Bc then if (A>=B) then comparison:=true else comparison:=false else if not(Ba) and Bb and not(Bc) then if (A>=C) then comparison:=true else comparison:=false else if not(Ba) and Bb and Bc then comparison:=true else comparison:=false; end; begin Write('S1: '); Readln(S1); Write('S2: '); Readln(S2); Write('S3: '); Readln(S3); Write('S4: '); Readln(S4); Assign(F1,S1); Assign(F2,S2); Assign(F3,S3); Assign(F4,S4); Reset(F1); Reset(F2); Reset(F3); ReWrite(F4); Read(F1,El1); Read(F2,El2); Read(F3,El3); File1end:=false; File2end:=false; File3end:=false; while (not (File1end) or not(File2end) or not(File3end)) do begin if comparison(El1,El2,El3,File1end,File2end,File3end) then begin Write(F4,El1); if not(eof(F1)) then Read(F1,El1) else File1end:=true; end else if comparison(El2,El1,El3,File2end,File1end,File3end) then begin Write(F4,El2); if not(eof(F2)) then Read(F2,El2) else File2end:=true; end else if comparison(El3,El1,El2,File3end,File1end,File2end) then begin Write(F4,El3); if not(eof(F3)) then Read(F3,El3) else File3end:=true; end; end; Close(F1); Close(F2); Close(F3); Close(F4); Readln; end. |
Другие задачи из раздела File можно посмотреть здесь.
Комментарии:
Комментарии 1