Advertisement
green1ant

2_1

Oct 17th, 2018
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.96 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 data';
  10.    InputFileName = 'input.txt';
  11.  
  12. procedure InputN(var N : Integer);
  13. var
  14.    IsCorrect : Boolean;
  15.    Input : string;
  16. begin
  17.    IsCorrect := False;
  18.    repeat
  19.       try
  20.          Writeln('Enter N - the number of days');
  21.          Readln(Input);
  22.          N := StrToInt(Input);
  23.          if(N < 28) or (N > 31) then
  24.             Writeln(EnterError)
  25.          else
  26.             IsCorrect := True
  27.       except
  28.          on E : EConvertError do
  29.             Writeln(EnterError);
  30.       end;
  31.    until IsCorrect;
  32. end;
  33.  
  34. procedure InputFromFile(N : Integer; var Days : TArray);
  35. var
  36.    InputFile : TextFile;
  37.    i, LastIndex : Integer;
  38. begin
  39.    if FileExists(InputFileName) then
  40.       try
  41.       AssignFile(InputFile, InputFileName);
  42.       Reset(InputFile);
  43.       SetLength(Days, N);
  44.       LastIndex := N - 1;
  45.       for i := 0 to LastIndex do
  46.          Read(InputFile, Days[i]);
  47.  
  48.       for i := 0 to LastIndex do
  49.          Write(Days[i], ' ');
  50.  
  51.       finally
  52.          CloseFile(InputFile);
  53.       end
  54.    else
  55.       Writeln(FileError);
  56. end;
  57.  
  58. procedure Output(Amount : Integer);
  59. begin
  60.    Writeln('');
  61.    if FileExists(InputFileName) then
  62.       Writeln('There are ', Amount, ' days with < 0 degrees');
  63. end;
  64.  
  65. function GetAmountOfColdDays(var Days : TArray) : Integer;
  66. var
  67.    Counter, i, LastIndex : Integer;
  68. begin
  69.    Counter := 0;
  70.    LastIndex := High(Days);
  71.    for i := 0 to LastIndex do
  72.       if Days[i] < 0 then
  73.          Inc(Counter);
  74.    GetAmountOfColdDays := Counter;
  75. end;
  76.  
  77. procedure Main();
  78. var
  79.    N : Integer;
  80.    Days : TArray;
  81. begin
  82.    Writeln('This program can cal how many times temperature was below 0 degrees');
  83.    InputN(N);
  84.    InputFromFile(N, Days);
  85.    Output(GetAmountOfColdDays(Days));
  86.    Readln;
  87. end;
  88.  
  89. begin
  90.    Main();
  91. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement