Массив а(20) заполнить случайными целыми числами в диапазоне от -30 до 30. найти количество n попарных произведений а(i)*а(i+1)< 0. вывести а, все попарные произведения а(i)*а(i+1), n.
//Pascal ABC.NET Версия 2.2 Сборка 790 var ar:array[1..20] of integer; N,i:integer; begin; randomize; writeln('Array:'); for i:=1 to 20 do begin; ar[i]:=random(-30,30); //или Random(61)-30 в иных реализациях write(ar[i]:4); end; writeln; writeln('Combinations:'); for i:=1 to 19 do begin; write(ar[i]*ar[i+1]:6); if ar[i]*ar[i+1]<0 then inc(N); end; writeln; write('Result N:',N); end.
// PascalABC.NET 3.0, сборка 1088 const m=20; var a:array[1..m] of integer; i,n,p:integer; begin Randomize; Writeln('Элементы массива'); for i := 1 to m do begin a[i]:=Random(61)-30; Write(a[i],' ') end; Writeln(#13#10,'Попарные произведения'); n:=0; for i:=1 to m-1 do begin p:=a[i]*a[i+1]; Write(p,' '); if p<0 then Inc(n) end; Writeln(#13#10,'Количество произведений равно ',n) end.
Тестовое решение: Элементы массива 8 0 25 -17 14 -13 -5 -3 1 29 0 2 1 27 -6 -20 -19 -28 -7 -16 Попарные произведения 0 0 -425 -238 -182 65 15 -3 29 0 0 2 27 -162 120 380 532 196 112 Количество произведений равно 5
Изменение порядка следования данных в соответствии с определенным критерием называется сортировкой. Сортировка – это одна из основных операций при работе с данными, которая позволяет упорядочить элементы в заданном наборе, чтобы их можно было обработать или отобразить в нужном порядке.
Одним из наиболее часто используемых критериев сортировки является упорядочивание элементов по возрастанию или убыванию их значений. Например, если в заданном наборе чисел нужно упорядочить их по возрастанию, то в результате сортировки наименьшее число будет стоять в начале, а наибольшее – в конце.
Существует несколько способов сортировки данных, но одним из самых простых и понятных является алгоритм сортировки пузырьком. Рассмотрим его шаги по порядку:
1. Начнем с первого элемента в наборе данных и сравним его со следующим элементом.
2. Если значение первого элемента больше значения второго элемента, то поменяем их местами, иначе оставим без изменений.
3. Перейдем к следующей паре элементов (второй и третий) и выполним сравнение их значений.
4. Продолжаем двигаться по всему набору данных, выполняя сравнение и перестановку элементов, пока не достигнем конца набора.
5. После первого прохода самый большой элемент окажется в конце набора данных.
6. Начнем второй проход, сравнивая и переставляя пары элементов до предпоследнего элемента в наборе.
7. Продолжаем выполнять проходы сравнения и перестановок до тех пор, пока все элементы не будут упорядочены.
Таким образом, при выполнении алгоритма сортировки пузырьком на каждом проходе наибольший элемент "всплывает" на правильную позицию, пока весь набор данных не будет отсортирован по выбранному критерию.
Важно отметить, что алгоритм сортировки пузырьком может быть не самым эффективным для сортировки больших наборов данных, так как требует большого количества операций сравнения и перестановки элементов. В таких случаях могут быть предпочтительны более оптимальные алгоритмы сортировки, например, быстрая сортировка или сортировка слиянием.
Давайте посмотрим на каждое слагаемое в отдельности и пошагово произведем вычисления.
1. Выражение 1010011₂ означает число, записанное в двоичной системе счисления. Чтобы перевести его в десятичную систему, мы должны умножить каждую цифру на соответствующую степень числа 2 и сложить полученные произведения:
(1 * 2⁶) + (0 * 2⁵) + (1 * 2⁴) + (0 * 2³) + (0 * 2²) + (1 * 2¹) + (1 * 2⁰) =
(1 * 64) + (0 * 32) + (1 * 16) + (0 * 8) + (0 * 4) + (1 * 2) + (1 * 1) =
64 + 0 + 16 + 0 + 0 + 2 + 1 =
83₁₀
2. Число 3228 уже записано в десятичной системе, поэтому мы можем просто сохранить его значение.
3. Выражение a₁₁₆ означает число, записанное в шестнадцатеричной системе счисления. Чтобы перевести его в десятичную систему, мы должны умножить каждую цифру на соответствующую степень числа 16 и сложить полученные произведения:
(a * 16¹) + (1 * 16⁰) =
(10 * 16¹) + (1 * 16⁰) =
(10 * 16) + 1 =
160 + 1 =
161₁₀
Теперь, когда мы знаем значения каждого слагаемого, мы можем произвести сложение:
1010011₂ + 3228 - a₁₁₆ = 83₁₀ + 3228 - 161₁₀
Чтобы вычислить это выражение, мы просто проводим арифметические операции:
83₁₀ + 3228 - 161₁₀ = 3311 - 161 = 3150
Таким образом, значение выражения 1010011₂ + 3228 - a₁₁₆ в десятичной системе равно 3150.
var ar:array[1..20] of integer;
N,i:integer;
begin;
randomize;
writeln('Array:');
for i:=1 to 20 do
begin;
ar[i]:=random(-30,30); //или Random(61)-30 в иных реализациях
write(ar[i]:4);
end;
writeln;
writeln('Combinations:');
for i:=1 to 19 do
begin;
write(ar[i]*ar[i+1]:6);
if ar[i]*ar[i+1]<0 then inc(N);
end;
writeln;
write('Result N:',N);
end.
Пример вывода:
Array: -15 -2 6 25 -10 -1 -14 5 -8 11 26 -24 17 23 -17 -1 -13 19 -21 -26
Combinations: 30 -12 150 -250 10 14 -70 -40 -88 286 -624 -408 391 -391 17 13 -247 -399 546
Result N: 10