Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Lab13;
- const
- N_MAX = 1000;
- type
- TArray = array[1..N_MAX] of real;
- var
- A,B,C: TArray;
- na, nb, nc : integer;
- s1, s2, s3 : real;
- FInput, FOutput : TextFile;
- procedure GetArrayFromFile(var F : TextFile; var arr : TArray; var n : integer);
- var
- i : integer;
- begin
- readln(F, n);
- for i := 1 to n do read(F, arr[i]);
- end;
- function GetSumOfInvertValues(var arr : TArray; var n : integer) : real;
- var
- sum : real;
- i : integer;
- begin
- for i := 1 to n do
- sum += (arr[i] = 0) ? 0.0 : 1.0/arr[i];
- Result := sum;
- end;
- begin
- if ParamCount < 2 then
- begin
- writeln('Не хватает параметров');
- exit();
- end;
- var INPUT_FILE : string := ParamStr(1);
- var OUTPUT_FILE : string := ParamStr(2);
- if not FileExists(INPUT_FILE) then begin
- writeln('Файл ' + INPUT_FILE + ' не найден');
- exit()
- end;
- AssignFile(Finput, INPUT_FILE); Reset(Finput);
- AssignFile(Foutput,OUTPUT_FILE); Rewrite(FOutput);
- GetArrayFromFile(Finput, A, na);
- GetArrayFromFile(Finput, B, nb);
- GetArrayFromFile(Finput, C, nc);
- s1 := GetSumOfInvertValues(A, na);
- s2 := GetSumOfInvertValues(B, nb);
- s3 := GetSumOfInvertValues(C, nc);
- writeln(Foutput, 'Наименьшая сумма обратных элементов в массиве под номером ',
- (s1 < s2) ? (s1 < s3) ? 1 : 3 : (s2 < s3) ? 2 : 3);
- CloseFile(Finput);
- CloseFile(Foutput);
- writeln('Done.');
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement