Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program L2_4_D;
- uses
- System.SysUtils;
- Var
- Length, Size, I, MaxR, Res : Integer;
- A : Array of Integer;
- IsCorrect : Boolean;
- Choise : String;
- Function CoutNumber(Arr : Array of Integer) : Integer;
- Begin
- Res := 0;
- MaxR := 0;
- For I := 0 To Length Do
- Begin
- If (Arr[I] = 1) Then
- Begin
- Res := Res + 1;
- End
- Else
- Begin
- If (MaxR < Res) Then
- Begin
- MaxR := Res;
- Res := 0;
- End
- Else Res := 0;
- End;
- End;
- If (MaxR < Res) Then
- Begin
- MaxR := Res;
- End;
- CoutNumber := MaxR;
- End;
- Procedure FromConsole;
- Begin
- Repeat
- IsCorrect := True;
- Write('Введите колличество элементов массива: ');
- Try
- Readln(Size);
- Except
- IsCorrect := False;
- Writeln('Неверный тип данных!');
- End;
- Until IsCorrect;
- Length := Size - 1;
- SetLength(A, Size);
- For I := 0 To Length Do
- Begin
- Repeat
- IsCorrect := True;
- Write('Введите ', I+1, ' элемент массива: ');
- Try
- Readln(A[I]);
- Except
- IsCorrect := False;
- Writeln('Неверный тип данных!');
- End;
- Until IsCorrect;
- End;
- MaxR := CoutNumber(A);
- Writeln('Максимальное количество единиц, идущих подряд: ', MaxR);
- End;
- Procedure FromFile;
- Begin
- Var
- TextFile : TextFile;
- Begin
- Writeln('При записи данных из файла, учтите, что на первой строке написано количество чисел, а далее с новой строки прописываются элементы массива.');
- AssignFile(TextFile, 'C:\Users\Рустамчик\Desktop\ЛАБА 2\Дельфи\4\input.txt');
- Reset(TextFile);
- IsCorrect := True;
- Writeln('Запись размера массива...');
- Try
- Readln(TextFile, Size);
- Except
- IsCorrect := False;
- End;
- If (Size < 1) Then
- Begin
- IsCorrect := False;
- Writeln('Ошибка! Неверный ввод размера! Измените входные данные в input.txt, затем перезапустите программу.');
- End;
- Length := Size - 1;
- SetLength(A, Size);
- For I := 0 To Length do
- Begin
- Try
- Readln(TextFile, A[I]);
- Except
- IsCorrect := False;
- Writeln(' Неверный ввод данных! Измените ', I+2, ' строку файла и повторите попытку!');
- End;
- End;
- MaxR := CoutNumber(A);
- Rewrite(TextFile);
- Writeln(TextFile, MaxR);
- Writeln('Максимальное количество единиц, идущих подряд: ', MaxR);
- Writeln('Данные записаны в файл.');
- CloseFile(TextFile);
- End;
- End;
- Begin
- Writeln('Данная программа определяет максимальное количество единиц, идущих подряд среди массива чисел.');
- Writeln('Выберите, откуда будут вводиться данные:');
- Repeat
- IsCorrect := True;
- Writeln('Напишите ONE, если с консоли. Напишите TWO, если с файла.');
- Try
- Readln(Choise);
- Except
- IsCorrect := False;
- Writeln('Неверный тип данных!');
- End;
- If ((Choise <> 'ONE') And (Choise <> 'TWO')) Then
- Begin
- IsCorrect := False;
- Writeln('Неверный тип данных!');
- End;
- Until IsCorrect;
- If Choise = 'ONE' Then
- FromConsole
- Else
- FromFile;
- Readln;
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement