Вопрос задан 01.08.2023 в 00:51. Предмет Информатика. Спрашивает Богданов Дима.

Заполнить очередь случайными числами из интервала [-20; 40]. Найти сумму последнего нечетного

элемента и третьего элемента очереди. Результат поместить в очередь. Удалить 4 элемент из очереди. После выполнения каждой операции выводить содержимое очереди на экран. (ЧЕРЕЗ ПРОЦЕДУРЫ)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Пак Диана.
PascalABC.NET 3.3.5, сборка 1650 от 01.04.2018
Внимание! Если программа не работает, обновите версию!

type
  tQ=queue<integer>;

procedure ЗаполнениеОчереди(q:tQ; n:integer);
begin
  Randomize;
  loop n do begin
    var k:=Random(-20,40);
    q.Enqueue(k)
    end;
end;

procedure СуммаНужныхЭлементов(q:tQ; var s:integer);
begin
  var ko,k:integer;
  for var i:=1 to q.Count do begin
    k:=q.Dequeue; q.Enqueue(k);
    if k.IsOdd then ko:=k;
    if i=3 then s:=k
    end;
  s+=ko  
end;

procedure УдалитьЭлемент(q:tQ; p:integer);
begin
  for var i:=1 to q.Count do begin
    var k:=q.Dequeue;
    if i<>p then q.Enqueue(k)
    end
end;

begin
  var MyQ:=new tQ;
  var n:=ReadInteger('Кол-во элементов (не менее 4):');
  ЗаполнениеОчереди(MyQ,n);
  MyQ.Println;
  var s:integer;
  СуммаНужныхЭлементов(MyQ,s);
  MyQ.Enqueue(s); // искомая сумма помещена в очередь
  MyQ.Println;
  УдалитьЭлемент(MyQ,4);
  MyQ.Println
end.

Пример
Кол-во элементов (не менее 4): 13
-7 12 -18 4 23 -1 15 -11 9 12 5 3 2
-7 12 -18 4 23 -1 15 -11 9 12 5 3 2 -15
-7 12 -18 23 -1 15 -11 9 12 5 3 2 -15
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для выполнения данной задачи, мы можем создать следующие процедуры:

  1. fill_queue: заполнение очереди случайными числами из интервала [-20; 40].
  2. sum_and_enqueue: нахождение суммы последнего нечетного элемента и третьего элемента очереди, помещение результата в очередь.
  3. remove_4th_element: удаление 4-го элемента из очереди.
  4. print_queue: вывод содержимого очереди на экран.

Давайте реализуем эти процедуры на языке Python:

python
import random from collections import deque def fill_queue(queue, size): for _ in range(size): queue.append(random.randint(-20, 40)) def sum_and_enqueue(queue): last_odd = None third_element = None # Перебираем очередь, чтобы найти последний нечетный элемент и третий элемент for element in queue: if element % 2 != 0: last_odd = element if queue.index(element) == 2: third_element = element if last_odd is not None and third_element is not None: queue.append(last_odd + third_element) def remove_4th_element(queue): if len(queue) >= 4: queue.remove(queue[3]) def print_queue(queue): print("Очередь:", list(queue)) def main(): queue = deque() queue_size = 10 fill_queue(queue, queue_size) print("Исходная очередь:") print_queue(queue) sum_and_enqueue(queue) print("Очередь после нахождения суммы последнего нечетного элемента и третьего элемента:") print_queue(queue) remove_4th_element(queue) print("Очередь после удаления 4-го элемента:") print_queue(queue) if __name__ == "__main__": main()

Обратите внимание, что мы используем модуль collections.deque для реализации очереди. Это упрощает операции добавления и удаления элементов из начала и конца очереди. В результате выполнения скрипта, вы увидите последовательный вывод содержимого очереди после каждой операции.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос