Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program Lab2_4;
- Uses
- System.SysUtils;
- Type
- TArray = Array Of Integer;
- Var
- CountOfPrimeNumbers: Integer;
- ArrA: Array Of Integer;
- Function ReadNum(Min, Max: Integer): Integer;
- Var
- Num: Integer;
- IsCorrect: Boolean;
- Begin
- Repeat
- IsCorrect := True;
- Try
- Readln(Num);
- Except
- Write('Некорректный ввод! Введите значение еще раз: ');
- IsCorrect := False;
- End;
- If (IsCorrect) And ((Num < Min) Or (Num > Max)) Then
- Begin
- Write('Недопустимое значение! Введите значение еще раз: ');
- IsCorrect := False;
- End;
- Until (IsCorrect);
- ReadNum := Num;
- End;
- Procedure InputDataFromConsole(Var Arr: Array Of Integer);
- Var
- ArrayLength, I, Buf: Integer;
- Const
- MIN_ARRAY_LENGTH = 1;
- MAX_ARRAY_LENGTH = 20;
- MIN_VALUE = 1;
- MAX_VALUE = 100;
- Begin
- Writeln('Введите количесво элементов массива от ', MIN_ARRAY_LENGTH, ' до ', MAX_ARRAY_LENGTH, ': ');
- ArrayLength := ReadNum(MIN_ARRAY_LENGTH, MAX_ARRAY_LENGTH);
- SetLength(Arr, ArrayLength);
- Writeln('Введите элементы массива', #10, 'Каждый элемент массива - натуральное число от ', MIN_VALUE, ' до ', MAX_VALUE);
- For I := 0 To High(Arr) Do
- Begin
- Buf := ReadNum(MIN_VALUE, MAX_VALUE);
- Arr[I] := Buf;
- End;
- End;
- Function InputDataFromFile(): TArray;
- Begin
- End;
- Procedure InputData(Var Arr: Array Of Integer);
- Var
- Choice: Integer;
- Begin
- Writeln('Выберите вариант ввода:', #10, '1. Ввод из консоли', #10, '2. Ввод из файла', #10, 'Использовать вариант: ');
- Choice := ReadNum(1,2);
- If Choice = 1 Then
- InputDataFromConsole(Arr)
- Else
- InputDataFromFile;
- End;
- Procedure OutputDataToConsole(Count: Integer);
- Begin
- If Count = 0 Then
- Writeln('Среди элементов массива нет простых чисел')
- Else
- Writeln('Среди элементов массива ', Count, ' простых чисел');
- End;
- Procedure OutputDataToFile(Count: Integer);
- Begin
- End;
- Procedure OutputData(Count: Integer);
- Var
- Choice: Integer;
- Begin
- Writeln('Выберите вариант ввода:', #10, '1. Ввод из консоли', #10, '2. Ввод из файла', #10, 'Использовать вариант: ');
- Choice := ReadNum(1,2);
- If Choice = 1 Then
- OutputDataToConsole(Count)
- Else
- OutputDataToFile(Count);
- End;
- Function CheckNumber(Num: Integer): Boolean;
- Var
- I: Integer;
- NumRoot: Real;
- Begin
- NumRoot := Sqrt(Num);
- I := 1;
- Repeat
- Inc(I);
- Until ((Num Mod I = 0) Or (I > NumRoot));
- CheckNumber := (I > NumRoot);
- End;
- Function GetСountOfPrimeNumbers(Var Arr: Array Of Integer): Integer;
- Var
- I, Count: Integer;
- IsPrimeNumber: Boolean;
- Begin
- Count := 0;
- For I := 0 To High(Arr) Do
- Begin
- IsPrimeNumber := CheckNumber(Arr[I]);
- If IsPrimeNumber Then
- Inc(Count);
- End;
- GetСountOfPrimeNumbers := Count;
- End;
- Begin
- Writeln('Данная программа вычислит количество простых чисел в массиве');
- InputData(ArrA);
- CountOfPrimeNumbers := GetСountOfPrimeNumbers(ArrA);
- OutputData(CountOfPrimeNumbers);
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement