PascalABC.NET 3.3.5, сборка 1644 от 23.03.2018 Внимание! Если программа не работает, обновите версию!
begin var q:=new Queue<integer>; var n:=ReadInteger('Кол-во элементов (не менее 4):'); Randomize; var k:integer; for var i:=1 to n do begin k:=Random(-20,40); Print(k); q.Enqueue(k) end; Writeln; // очередь заполнена, выведены ее элементы var (ko,s):=(-100,0); for var i:=1 to n do begin k:=q.Dequeue; q.Enqueue(k); if k.IsOdd then ko:=k; if i=3 then s:=k end; s+=ko; q.Enqueue(s); q.Println; // искомая сумма помещена в очередь for var i:=1 to n do begin k:=q.Dequeue; if i<>4 then q.Enqueue(k) end; q.Println end.
const N = 30;
var a : array[1..N] of integer;
i, j, x : integer;
Begin
for i := 1 to N do readln(a[i]);
readln(x);
for i := 1 to N do begin //перебираем элементы массива
if a[i] = x then begin //если находим элемент равный Х то
writeln('наименьший номер элемента равного X - ', i); //выводим сообщение
exit; //и завершаем программу не завершив перебор, т.к. нам нужен только наименьший номер
end;
end;
writeln('такого элемента нет'); //если перебрав весь массив не находим совпадений то выводим сообщение
end.
Объяснение:
объяснения в комментариях программы
проверено на PascalABC
Внимание! Если программа не работает, обновите версию!
begin
var q:=new Queue<integer>;
var n:=ReadInteger('Кол-во элементов (не менее 4):');
Randomize;
var k:integer;
for var i:=1 to n do begin
k:=Random(-20,40); Print(k);
q.Enqueue(k)
end;
Writeln; // очередь заполнена, выведены ее элементы
var (ko,s):=(-100,0);
for var i:=1 to n do begin
k:=q.Dequeue; q.Enqueue(k);
if k.IsOdd then ko:=k;
if i=3 then s:=k
end;
s+=ko;
q.Enqueue(s);
q.Println; // искомая сумма помещена в очередь
for var i:=1 to n do begin
k:=q.Dequeue;
if i<>4 then q.Enqueue(k)
end;
q.Println
end.