Помогите написать программу в Pascal!
10-11 класс
|
Дан одномерный
целочисленный массив А, состоящий из N элементов, N- заданное натуральное число, пусть max- наибольшее, min- наименьшее
значения среди элементов массива. Составить одномерный массив В из простых
чисел и сегмента [min,max],которые не являются элементами массива А, записав его
элементы в порядке неубывания. Если таких элементов нет, то выдать соответствующее
текстовое сообщение.
В целом программа рабочая, за исключением одного маленького блока, т.к. не могу прописать условие нормально:с Я указала комментарии к частям кода, в том числе и к тому самому блоку. Если кто знает, как его составить - отпишитесь:)
const n=5;
function prime(a:integer):boolean; //функция определяет, является ли число простым
var i,n:integer;
begin
prime:=false;
if (a<2) then exit;
if (not odd(a)) and (a<>2)
then exit;
for i:=3 to trunc(sqrt(a)) do
begin
if a mod i = 0 then exit;
inc(i,2);
end;
prime:=true;
end;
var a,b,c:array[1..n] of integer;
i,j,p,min,max:integer;
begin
for i:=1 to n do a[i]:=random(10); //заполняем массив
write('исходный массив: ');
for i:=1 to n do write(a[i]:5); //выводим массив на экран
writeln;
min:=a[1]; max:=a[1]; //ищем минимальное и максимальное значение
for i:=1 to n do
if (a[i]>max) then max:=a[i];
for i:=1 to n do
if (a[i]<min) then min:=a[i];
write('Минимальное: ',min,' Максимальное: ',max); //Выводим эти значения на экран
writeln;
for i:=1 to n do
if (prime(a[i])) or (a[i]=1) and (a[i]<>2) then //заполняем массив С простыми числами, которые (!) Входят в массив А
c[i]:=a[i];
write('Простые числа в массиве А: ');
for i:=1 to n do write(c[i]:5); //Выводим массив С на экран
writeln;
j:=min; //ВНИМАНИЕ!! Весь вопрос в этом небольшом блоке, заполнить массив В числами от min до max(которые уже найдены), не входящими в массив С
for i:=1 to n do begin
if (prime(j)) and (j<>c[i]) and (j<>2) then
b[i]:=j;
inc(j);
end;
for i:=n-1 downto 1 do begin //сортируем по возрастанию
for j:=1 to i do
if (b[j]>=b[j+1]) then begin
p:=b[i]; b[i]:=b[i+1]; b[i+1]:=p;
end;
end;
write('Искомый массив: ');
for i:=1 to n do write(b[i]:5); //Выводим массив В на экран
writeln;
end.
Просто все простые, которые больше мин. и меньше макс., независимо от того, есть они в массиве, или нет их там. Так?
DeSexAlex, там, если я правильно понимаю, написано "которые не являются элементами массива А"
DeSexAlex, посмотри, пожалуйста, если не трудно код внизу, мб поможешь условие написать нормально)
Там написано: из простых
чисел И сегмента [min,max],которые не являются элементами массива А, Вот на этой "И" я и вхожу в ступор))
там скорее всего "из сегмента"
Другие вопросы из категории
минимальное основание имеет система, если в ней записаны числа 124, 354, 4215?
A) Пятеричной
var a,b : array [1..10] of integer;
var c : array [0..9] of integer;
var d : array [0..10] of char;
var e : array [1..10] of integer;
Какие из следующих операторов присваивания допустимы, а какие нет и почему?
1) a[10]:=b[10] 2) a[5]:=e[5] 3) c[1]:=d[1]
4)a:=b 5)d:=c 6) e[1]:=e[1] 7) с[0]:=b[0]
8) e:=a
Задача 2. Опишите переменную типа string, под которую отводится 48 байт памяти.
этого массива после выполнения фрагмента программы?
1) 10 0 0 0 0 0 0 0 0 0 0
2) 10 2 3 4 5 6 7 8 9 10 10
3) 10 10 10 10 10 10 10 10 10 10 10
4) 10 0 1 2 3 4 5 6 7 8 9
Читайте также
рдинат. Я поняла, что нужно найти их длины (формулы я знаю), а правильно написать программу не могу
13.
Нужно написать программу на цикле с предусловием, на Паскале.
Дано натуральное число n. Написать программу вычисляющую сумму
Дан массив X(N,M). Если первый элемент массива положительный, то найти сумму элементов среди элементов четных строк массива, иначе произведение.