Advertisement
green1ant

2_1 (1)

Oct 18th, 2018
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.30 KB | None | 0 0
  1. program Project2;
  2. {$APPTYPE CONSOLE}
  3. uses
  4.    System.SysUtils;
  5. type
  6.    TArray = array of Integer;
  7. const
  8.    EnterError = 'Error! N should be natutal number from 28 to 31';
  9.    FileError = 'Error! Check file name and file data';
  10.    InputFileName = 'input.txt';
  11.    MaxDays = 31;
  12.    MinDays = 28;
  13.  
  14. procedure InputN(var N : Integer);
  15. var
  16.    IsCorrect : Boolean;
  17.    Input : string;
  18. begin
  19.    IsCorrect := False;
  20.    repeat
  21.       try
  22.          Writeln('Enter N - the number of days');
  23.          Readln(Input);
  24.          N := StrToInt(Input);
  25.          if(N < MinDays) or (N > MaxDays) then
  26.             Writeln(EnterError)
  27.          else
  28.             IsCorrect := True
  29.       except
  30.          on E : EConvertError do
  31.             Writeln(EnterError);
  32.       end;
  33.    until IsCorrect;
  34. end;
  35.  
  36. procedure InputFromFile(N : Integer; var Days : TArray);
  37. var
  38.    InputFile : TextFile;
  39.    i, LastIndex : Integer;
  40.    Name : string;
  41.    IsValidName : Boolean;
  42. begin
  43.  
  44.    repeat
  45.       Writeln('Enter name of file with your measurements: ');
  46.       Readln(Name);
  47.       IsValidName := False;
  48.  
  49.       if FileExists(Name) then
  50.          try
  51.             AssignFile(InputFile, Name);
  52.             Reset(InputFile);
  53.             SetLength(Days, N);
  54.             LastIndex := N - 1;
  55.             for i := 0 to LastIndex do
  56.                Read(InputFile, Days[i]);
  57.  
  58.             for i := 0 to LastIndex do
  59.                Write(Days[i], ' ');
  60.             IsValidName := True;
  61.          finally
  62.             CloseFile(InputFile);
  63.          end
  64.  
  65.       else
  66.          Writeln(FileError);
  67.  
  68.    until IsValidName;
  69.  
  70. end;
  71.  
  72. procedure Output(Amount : Integer);
  73. begin
  74.    Writeln('');
  75.    if FileExists(InputFileName) then
  76.       Writeln('There are ', Amount, ' days with < 0 degrees');
  77. end;
  78.  
  79. function GetAmountOfColdDays(var Days : TArray) : Integer;
  80. var
  81.    Counter, i, LastIndex : Integer;
  82. begin
  83.    Counter := 0;
  84.    LastIndex := High(Days);
  85.    for i := 0 to LastIndex do
  86.       if Days[i] < 0 then
  87.          Inc(Counter);
  88.    GetAmountOfColdDays := Counter;
  89. end;
  90.  
  91. procedure Main();
  92. var
  93.    N : Integer;
  94.    Days : TArray;
  95. begin
  96.    Writeln('This program can cal how many times temperature was below 0 degrees');
  97.  
  98.    InputN(N);
  99.    InputFromFile(N, Days);
  100.    Output(GetAmountOfColdDays(Days));
  101.    Readln;
  102. end;
  103.  
  104. begin
  105.    Main();
  106. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement