Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program laba22;
- {$APPTYPE CONSOLE}
- uses
- SysUtils,
- Windows;
- const
- Max = 2147483647;
- Min = - 2147483647;
- type
- MyArray = array of Integer;
- //ïðîöåäóðà äëÿ íàõîæäåíèÿ äâóõ íîâûõ ïîñëåäîâàòåëüíîñòåé
- procedure newArrays (var newFirst, newSecond: MyArray; firstArr, secondArr: MyArray; n:Integer);
- var
- i:Integer;
- begin
- for i := 0 to n-1 do
- if firstArr[i] > secondArr[i] then
- begin
- newFirst[i] := firstArr[i];
- newSecond[i] := secondArr[i];
- end
- else
- begin
- newFirst[i] := secondArr[i];
- newSecond[i] := firstArr[i];
- end;
- end;
- //ïðîöåäóðà äëÿ ïðîâåðêè ïðàâèëüíîñòè èìåíè ôàéëà
- procedure enterCorrectName (var fileName: String);
- var
- correctName: Boolean;
- begin
- repeat
- begin
- readln(fileName);
- if FileExists(fileName) then
- correctName := True
- else
- begin
- Writeln('Èìÿ ôàéëà áûëî ââåäåíî íåêîððåêòíî. Ïîïðîáóéòå åùå ðàç.');
- correctName := False;
- end;
- end;
- until correctName;
- end;
- // ïðîöåäóðà ïðîâåðÿåò îøèáêè, ñâÿçàííûå ñ ÷òåíèåì èç ôàéëà (â òîì ÷èñëå, ïóñòîé ôàéë èëè íåò)
- procedure resetMyFile (var input: TextFile);
- var
- fileName:String;
- begin
- try
- reset(input);
- if Eof (input) then
- begin
- writeln('Ôàéë ïóñòîé. Îòêðîéòå äðóãîé ôàéë');
- closeFile(input);
- enterCorrectName(fileName);
- assignFile(input, fileName);
- resetMyFile(input);
- end;
- except
- writeln('Íå óäàåòñÿ îòêðûòü ôàéë äëÿ ÷òåíèÿ. Îòêðîéòå äðóãîé ôàéë');
- closeFile(input);
- enterCorrectName(fileName);
- assignFile(input, fileName);
- resetMyFile(input);
- end;
- end;
- //Ïðîöåäóðà äëÿ âûâîäà ìàññèâà íà ýêðàí è çàïèñè â ôàéë
- procedure output(var newFirst, newSecond: MyArray; n: Integer);
- var
- i: Integer;
- output: TextFile;
- begin
- writeln('Ðåçóëüòàò âûïîëíåíèÿ ïðîãðàììû: ');
- assignFile(Output, 'output.txt');
- rewrite(Output);
- i := 0;
- while i < n do
- begin
- write(newFirst[i], ' ');
- write(Output, newFirst[i], ' ');
- inc(i);
- end;
- writeln(' ');
- writeln(output, ' ');
- i := 0;
- while i < n do
- begin
- write(newSecond[i], ' ');
- write(Output, newSecond[i], ' ');
- inc(i);
- end;
- closeFile(Output);
- end;
- //ôóíêöèÿ äëÿ ÷òåíèÿ öåëûõ ÷èñåë èç ôàéëà
- function readNumberFromFile(var input: TextFile; var fileName: String; var isValidInput: Boolean; isPositive: Boolean): Integer;
- var
- n: Integer;
- begin
- try
- read(input, n);
- if (n < 0) and isPositive then
- begin
- writeln('Äàííîå ÷èñëî íå ìîæåò áûòü îòðèöàòåëüíûì. Íóæíî èçìåíèòü äàííûå â ôàéëå èëè îòêðûòü äðóãîé ôàéë');
- isValidInput := false;
- end;
- except
- writeln('Â ôàéëå íåêîððåêòíàÿ âåðõíÿÿ ãðàíèöà. Íóæíî èçìåíèòü äàííûå â ôàéëå èëè îòêðûòü äðóãîé ôàéë');
- isValidInput := false;
- end;
- readNumberFromFile := n
- end;
- function countAmount(var input: TextFile; var n: Integer): Boolean;
- var
- temp, lenArr1, lenArr2: Integer;
- isValidArr1, isValidArr2: Boolean;
- begin
- isValidArr1 := true;
- isValidArr2 := false;
- lenArr1 := 0;
- lenArr2 := 0;
- while (not eoln(input)) and isValidArr1 do
- begin
- try
- read(input, temp);
- inc(lenArr1);
- except
- writeln('Äàííûå â ôàéëå íåêîððåêòíûå. Îòêðîéòå íîâûé ôàéë.');
- isValidArr1 := false;
- end;
- end;
- readln(input);
- if isValidArr1 then
- begin
- isValidArr2 := true;
- while (not eoln(input)) and isValidArr2 do
- begin
- try
- read(input, temp);
- inc(lenArr2);
- except
- writeln('Äàííûå â ôàéëå íåêîððåêòíûå. Îòêðîéòå íîâûé ôàéë.');
- isValidArr2 := false;
- end;
- end;
- end;
- if (lenArr1 = lenArr2) and isValidArr2 then
- begin
- countAmount := isValidArr2;
- n := lenArr1;
- end
- else
- begin
- writeln('Ïîñëåäîâàòåëüíîñòè äîëæíû èìåòü îäèíàêîâîå êîëè÷åñòâî ýëåìåíòîâ');
- countAmount := isValidArr2;
- closeFile(input);
- end;
- end;
- var
- firstArr, secondArr, newFirst, newSecond: MyArray;
- n, i: Integer;
- input: TextFile;
- fileName: String;
- isValidInput: Boolean;
- begin
- setConsoleCP(1251);
- setConsoleOutputCP(1251);
- writeln('Äàííàÿ ïðîãðàììà ôîðìèðóåò äâå íîâûå ïîñëåäîâàòåëüíîñòè èç çàäàííûõ, ýëåìåíòû êîòîðûõ âû÷èñëÿþòñÿ ïî ñëåäóþùåìó ïðàâèëó: ai = max(ai,bi), bi = min(ai,bi)');
- writeln('Ââåäèòå èìÿ ôàéëà, â êîòîðîì íàõîäÿòñÿ äàííûå');
- repeat
- n := 0;
- enterCorrectName(fileName);
- assignFile(input, fileName);
- resetMyFile(input);
- isValidInput := countAmount(input, n);
- until isValidInput;
- reset(input);
- setlength(firstArr, n);
- setLength(secondArr, n);
- setlength(newFirst, n);
- setLength(newSecond, n);
- for i := 0 to n-1 do
- read(input, firstArr[i]);
- for i := 0 to n-1 do
- read(input, secondArr[i]);
- closeFile(input);
- newArrays(newFirst, newSecond,firstArr, secondArr, n);
- output (newFirst, newSecond, n);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement