Определите, все ли элементы массива – простые числа, в матрице из вещественных элементов - Pascal ABC
Формулировка задачи:
Решение задачи: «Определите, все ли элементы массива – простые числа, в матрице из вещественных элементов»
program project1556;
{1) определите, каких элементов больше – положительных нечетных или отрицательных четных;
2) определите, все ли элементы массива – простые числа.}
function prime(a:integer):boolean;
var
k:integer;
p:boolean;
begin
p:=True;
for k:=2 to a-1 do
begin
if a mod k=0 then
p:=False;
if not p then
break;
end;
prime:=p;
end;
const
n=10;
var
i:integer;
a:array [1..n] of real;
k1,k2:integer;
yesorno:boolean;
begin
randomize;
for i:=1 to n do
begin
a[i]:= - n div 2 + random*n;
write(a[i]:8:2)
end;
for i:=1 to n do
begin
if (odd(trunc(a[i]))) and (a[i]<0) then
inc(k1);
if (not odd(trunc(a[i]))) and (a[i]<0) then
inc(k2);
end;
if k1>k2 then
writeln('положительных нечетных >')
else
if k2>k1 then
writeln('отрицательных четных >')
else
writeln('=');
yesorno:=true;
for i:=1 to n do
if not (prime(abs(trunc(a[i])))) then
begin
yesorno:=false;
break;
end;
writeln(yesorno);
readln;
end.
Объяснение кода листинга программы
1) В первой части кода определяется функция prime, которая проверяет, является ли число простым. Функция принимает целое число в качестве аргумента и использует цикл for для проверки деления числа на все числа от 2 до n-1. Если число делится на какое-либо из этих чисел без остатка, то оно не является простым. Функция возвращает true, если число простое, и false в противном случае.
2) Во второй части кода определяется константа n, которая равна 10. Затем создается переменная i, которая будет использоваться для итерации по элементам массива a.
3) В третьем блоке кода происходит итерация по элементам массива a. Для каждого элемента a[i] вычисляется его абсолютное значение с помощью функции trunc, а затем проверяется, является ли он нечетным с помощью функции odd. Если элемент является нечетным и отрицательным, то его значение увеличивается на k1. Если элемент не является нечетным и отрицательным, то его значение увеличивается на k2.
4) После завершения итерации по всем элементам массива a выполняется проверка, больше ли значение k1, чем значение k2. Если это так, то выводится сообщение положительных нечетных >. Если k1 меньше или равно k2, то выводится сообщение отрицательных четных >. Если k1 больше k2, то выводится сообщение =.
5) В четвертом блоке кода определяется переменная yesorno, которая будет использоваться для хранения результата проверки каждого элемента массива a на простоту с помощью функции prime. Если хотя бы один элемент не является простым, то значение yesorno устанавливается в false и цикл прерывается с помощью оператора break.
6) В пятом блоке кода выполняется вывод значения yesorno. Если значение yesorno равно true, то выводится сообщение да, если false - то нет.
7) В шестом блоке кода происходит чтение следующего значения из ввода пользователя с помощью функции readln.