Решить 2 . 1) массив состоит из 20 целых чисел от -10 до 10. посчитать сумму и произведение элементов массива 2) массив состоит из 30 целых чисел от -10 до 10. посчитать сколько среди них положительных, отрицательных и нулевых значений.
Для того, чтобы узнать, не встречалось ли 20-е число раньше, надо помнить, какие числа были до этого. Так что без массива с меньшим размером, чем 19, не обойтись (на самом деле это так, только если в каждом элементе массива хранить только одно число. Но мы так и будем делать).
Алгоритм для решения задачи выберем простой: записываем все предыдущие числа в массив и для каждого следующего числа проходим по массиву.
var a: array[1..19] of byte; i, j, t: byte;
begin for i := 1 to 20 do begin read(t); if i < 20 then a[i] := t; for j := 1 to i - 1 do if a[j] = t then t := 0; if t > 0 then write(t, ' '); end; end.
begin var n := ReadlnInteger('n = '); var m := ReadlnInteger('m = '); var rand := ReadlnInteger('Для ручного ввода нажмите 0');
if rand = 0 then begin a := new integer[m, n]; for var i := 0 to m-1 do for var j := 0 to n-1 do a[i, j] := ReadlnInteger('a[' + i + ',' + j + '] = '); end else a := MatrixRandom(m, n, 1, 100); Println(a);
var b := ArrGen(n, x -> 1); for var i := 0 to m-1 do for var j := 0 to n-1 do if j mod 2 = 0 then b[j] := b[j] * a[i, j];
b.Where((x, i)-> i mod 2 = 0).SortedDescending().Println(); end.
Алгоритм для решения задачи выберем простой: записываем все предыдущие числа в массив и для каждого следующего числа проходим по массиву.
var
a: array[1..19] of byte;
i, j, t: byte;
begin
for i := 1 to 20 do
begin
read(t);
if i < 20 then a[i] := t;
for j := 1 to i - 1 do
if a[j] = t then
t := 0;
if t > 0 then write(t, ' ');
end;
end.
Пример ввода:
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10
Пример вывода:
1 2 3 4 5 6 7 8 9 10