Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.51 KB | None | 0 0
  1. program Lab13;
  2.  
  3. const
  4.   N_MAX = 1000;
  5.  
  6. type
  7.   TArray = array[1..N_MAX] of real;
  8.  
  9. var
  10.   A,B,C: TArray;
  11.   na, nb, nc : integer;
  12.   s1, s2, s3 : real;
  13.   FInput, FOutput : TextFile;
  14.  
  15. procedure GetArrayFromFile(var F : TextFile; var arr : TArray; var n : integer);
  16. var
  17.   i : integer;
  18.  
  19. begin
  20.   readln(F, n);
  21.   for i := 1 to n do read(F, arr[i]);
  22. end;
  23.  
  24.  
  25. function GetSumOfInvertValues(var arr : TArray; var n : integer) : real;
  26. var
  27.   sum : real;
  28.   i : integer;
  29. begin
  30.   for i := 1 to n do
  31.     sum += (arr[i] = 0) ? 0.0 : 1.0/arr[i];
  32.   Result := sum;
  33. end;
  34.  
  35. begin
  36.   if ParamCount < 2 then
  37.   begin
  38.     writeln('Не хватает параметров');
  39.     exit();
  40.   end;
  41.  
  42.   var INPUT_FILE : string := ParamStr(1);
  43.   var OUTPUT_FILE : string := ParamStr(2);
  44.  
  45.   if not FileExists(INPUT_FILE) then begin
  46.     writeln('Файл ' + INPUT_FILE + ' не найден');
  47.     exit()
  48.   end;
  49.  
  50.   AssignFile(Finput, INPUT_FILE); Reset(Finput);
  51.   AssignFile(Foutput,OUTPUT_FILE); Rewrite(FOutput);
  52.  
  53.   GetArrayFromFile(Finput, A, na);
  54.   GetArrayFromFile(Finput, B, nb);
  55.   GetArrayFromFile(Finput, C, nc);
  56.   s1 := GetSumOfInvertValues(A, na);
  57.   s2 := GetSumOfInvertValues(B, nb);
  58.   s3 := GetSumOfInvertValues(C, nc);
  59.   writeln(Foutput, 'Наименьшая сумма обратных элементов в массиве под номером ',
  60.                     (s1 < s2) ? (s1 < s3) ? 1 : 3 : (s2 < s3) ? 2 : 3);
  61.  
  62.   CloseFile(Finput);
  63.   CloseFile(Foutput);
  64.  
  65.   writeln('Done.');
  66. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement