//Обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками".
var
a, b, c: array [1..100] of longint;
i, min, n, j, t: longint;
begin
//Читаем количество элементов в нашем массиве.
readln(n);
//Читаем массив.
for i := 1 to n do read(a[i]);
//Заполняем первую "половинку".
for i := 1 to n div 2 do b[i] := a[i];
//Заполняем вторую "половинку". Но раз это уже вторая "половинка" главного массива, то и
//цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце.
for i := n div 2 + 1 to n do c[i - n div 2] := a[i];
//Теперь отсортируем первую "половинку" методом выбора. Идея этого метода
//основывается на том, что мы ищем минимальный среди неотсортированных элемент,
//а затем просто swap-аем его с тем, который стоит сразу после отсортированных.
for i := 1 to (n - 1) div 2 do
begin
min := i;
for j := i + 1 to n div 2 do
if b[min] > b[j] then
min := j;
if min <> i then begin
t := b[i];
b[i] := b[min];
b[min] := t;
end;
end;
//Затем вторую точно также, только стоит обратить внимание на сравнения.
//Так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом
//будет другим.
for i := 1 to (n - 1) div 2 do
begin
min := i;
for j := i + 1 to n div 2 do
if c[min] < c[j] then
min := j;
if min <> i then begin
t := c[i];
c[i] := c[min];
c[min] := t;
end;
end;
//А теперь просто по очереди выводим готовые "половинки", не забывая ставить
//пробел после вывода каждого элемента.
for i := 1 to n div 2 do write(b[i], ' ');
for i := 1 to n - n div 2 do write(c[i], ' ');
end.
//PascalABC.NET 3.1 сборка 1200
begin
var n := ReadInteger('n=');
var a := MatrixRandom(n, n, 0, 10);
println(a);
var d := new System.Collections.Generic.Dictionary<integer, integer>();
for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
begin
if d.ContainsKey(a[i, j]) then
d[a[i, j]] += 1
else
d.Add(a[i, j], 1);
end;
var p := d.OrderByDescending(x -> x.Value).First();
println('Чаще всего встречается ' + p.Key + ', ' + p.Value + ' раз');
end.
Const N = 50;
var a: array[1..N] of integer;
sum, i: integer;
begin
sum := 0;
a[ 1 ] := 1;
for i := 2 to N do begin
a[ i ] := a[ i - 1 ] + 4;
sum := a[ i ] + sum;
end;
for i := 1 to N do
writeln('A[ ', i, ' ]: ', a[ i ]);
writeln;
writeln('Сумма элементов массива: ', sum);
writeln('Значения 10, 20, 30, 40 элементов, стоящих в нечетных позициях: ' );
writeln('A[ 13 ] = ', A[13],', A[ 25 ] = ', A[25], ', A[ 37 ] = ', A[37], ', A[ 49 ] = ', A[49]);
<span>end.</span>
Всё правильно кроме видит
3. Строим таблицу истинности и определяем что функция F принимает значение 0 только при всех трёх аргументах равных единицам. Во всех остальных случаях функция принимает значение 1. Функция F эквивалентна функции.
F = ¬(X₁X₂X₃)
4.
Таблица при которой F принимает значение 0
X₁ X₂ X₃ F
0 0 0 0
0 0 1 0
0 1 0 0
1 0 0 0
1 1 0 0