Заданы две очереди элементами которых являются целые числа.сформулировать на их основе новую очередь элементами который будут по убыванию или возрастанию (достигается выбором соответствующего пункта меню).
// PascalABC.NET 3.2, сборка 1427 от 24.04.2017 // Внимание! Если программа не работает, обновите версию!
begin var s1:=SeqRandom(ReadInteger('n1='),-50,50); var s2:=SeqRandom(ReadInteger('n2='),-50,50); var p:=ReadInteger('0-по неубыванию, иное- по невозрастанию:'); var q1:=new Queue<integer>; foreach var m in s1 do q1.Enqueue(m); Write('Очередь 1: ',q1); Writeln; var q2:=new Queue<integer>; foreach var m in s2 do q2.Enqueue(m); Write('Очередь 2: ',q2); Writeln; // очереди сформированы var q:=new Queue<integer>; var a:=(q1.ToArray+q2.ToArray); var s:sequence of integer; if p=0 then s:=a.OrderBy(i->i) else s:=a.OrderByDescending(i->i).ToArray; foreach var m in s do q.Enqueue(m); Write('Очередь-результат: ',q); Writeln; end.
Пример n1= 10 n2= 7 0-по неубыванию, иное- по невозрастанию: 1 Очередь 1: [-26,6,26,-48,-21,-29,27,-39,5,-40] Очередь 2: [50,36,37,46,18,41,-39] Очередь-результат: [50,46,41,37,36,27,26,18,6,5,-21,-26,-29,-39,-39,-40,-48]
Количество информации определяется величиной, показывающей насколько уменьшилось наше незнание в вопросе. 1. Если на светофоре горит желтый свет и мы не знаем, какой свет горел на нем до желтого, то возможны два исхода - зеленый свет и красный свет. Какой бы из них потом не загорелся, мы получим выбор 1 из 2 возможных. А этому соответствует один бит информации. 2. Если на светофоре горит красный свет и это "нормальный светофор", то мы ЗНАЕМ, что после красного света всегда следует желтый. Поэтому при зажигании желтого света наше незнание не меняется, следовательно, мы получаем ноль бит информации.
Давай попробуем рассуждать логически. Если бы сад состоял из двух деревьев, то было бы два варианта садов: 100+99 и 100+101. Если бы досадили третье дерево, то каждый из предыдущих садов удвоил бы число вариантов: первый 100+99+98 и 100+99+100, и так же второй 100+101+100 и 100+101+102. Подмечаем закономерность: каждое добавляемое дерево удваивает количество вариантов. А сад из одного дерева имеет лишь один вариант.
// Внимание! Если программа не работает, обновите версию!
begin
var s1:=SeqRandom(ReadInteger('n1='),-50,50);
var s2:=SeqRandom(ReadInteger('n2='),-50,50);
var p:=ReadInteger('0-по неубыванию, иное- по невозрастанию:');
var q1:=new Queue<integer>;
foreach var m in s1 do q1.Enqueue(m);
Write('Очередь 1: ',q1); Writeln;
var q2:=new Queue<integer>;
foreach var m in s2 do q2.Enqueue(m);
Write('Очередь 2: ',q2); Writeln;
// очереди сформированы
var q:=new Queue<integer>;
var a:=(q1.ToArray+q2.ToArray);
var s:sequence of integer;
if p=0 then s:=a.OrderBy(i->i)
else s:=a.OrderByDescending(i->i).ToArray;
foreach var m in s do q.Enqueue(m);
Write('Очередь-результат: ',q); Writeln;
end.
Пример
n1= 10
n2= 7
0-по неубыванию, иное- по невозрастанию: 1
Очередь 1: [-26,6,26,-48,-21,-29,27,-39,5,-40]
Очередь 2: [50,36,37,46,18,41,-39]
Очередь-результат: [50,46,41,37,36,27,26,18,6,5,-21,-26,-29,-39,-39,-40,-48]