1)когда найдется элемент равный заданому
2)отсекается 1 элемент
3)Произведение элементов массива, которые лежат в промежутке [40;55)
в паскале как и почти любом ЯП есть переменные,которые содержат имя и значение,например (i: =0)->имя переменной i,значение 0.Значение переменной можно изменить,имя переменной нельзя.Массивы это переменные которые хранят несколько значений.Чтобы обратиться к определенному значению масива использовать синтаксис имямасива[индексмасива],например чтоб получить 3 элемент масива a использовать a[3].repeat (expression) until(boolean) это цикл,в котором будет выполняться expression(любой код) до тех пор пока boolean не будет верно.Boolean это выражение значение которого будет равно true/false(правда/неправда).Напрмер в repeat
i:=i+1;
until (a[i]=x) or (i=10); к переменной i будет прибавляться 1 до тех пор пока a[i] не равно x или i будет меньше 10(так как в масиве всего 10 элементов,если например i будет 11 это будет выход за границу массива).Каждый блок выполнения в цикле(в нашем случае i:=i+1) называется итерацией.В цикле for(a to max) в a идет создание переменной-счетчика(в нашем случае создание переменной i со значением 0) ,потом пишется to и идет максимальное значение счетчика.И итерации этого цикла(if (a[i]=>40) and (a[i]<55) then s:=s*a[i];
).В конце каждой итерации автоматически значение счетчика увеличивается на 1.До тех пор пока счетчик меньше или равен max итерации будут выполняться.
А вообще в интернете очень много обучающих статей по данной теме
Подробнее - на -
Объяснение:
program raf105;
const
n = 10;
var
a,b,c: array[1..n] of integer;
i,j,x,max,mpos,b1,c1: integer;
begin
write('Введите максимальное число: ');
readln(x);
writeln('Заполните массив из ',n,' элементов');
for i:=1 to n do
begin
readln(a[i]);
if a[i] > x
then begin
b1:= b1+1;
b[b1]:= a[i];
end
else begin
c1:= c1+1;
c[c1]:= a[i];
end;
end;
for i:=1 to c1 do
begin
max:= -10000;
for j:=i to c1 do
if c[j] >= max
then begin
max:= c[j];
mpos:= j;
end;
c[mpos]:= c[i];
c[i]:= max;
end;
for i:=1 to b1 do
a[i]:= b[i];
for i:=1 to c1 do
a[i+b1]:= c[i];
write('Отсортированный массив: ');
for i:=1 to n do
write(a[i],' ');
end.
PascalABC 3.4.2