===== PascalABC.NET =====
begin
var n := ReadInteger('n =');
var a := ArrRandom(n, -99, 99);
a.Println;
var s := a.Where(p -> p.InRange(-2, 19));
Writeln('Сумма ', s.Sum, ', кол-во ', s.Count)
end.
Короче. Вот код.
def matrix_gen(gen, n, m): Matrix = []; for i in range(n): a = []; for j in range(m): a.append(gen[j]); Matrix.append(a); return Matrix;Объяснение
Сначало ты инициализируешь функицю с названием "matrix_gen", которая принимает 3 параметра, 'gen' -- это генератор которые ты будешь использовать. 'n' & 'm' это размер матрицы.
Второй строчкой ты инициалихируешь пустой массив, которые похже заполнишь. Третей строчкой ты в for цикле обходишь все строки матрицы, они же подмассивы массива Matrix, просто 'a'. Делаем мы это 'n' раз.
Четвётрой строчкой ты инициализируешь массив(ы, мы в цикле) 'a', и следующей строчкой заполняешь уже его. Так же в for цикле. Всего в нём будет 'm' элементов.
Надеюсь решение правильное. Честно говоря у тебя вопрос очень странно поставлен.
Вот несколько разных формул, которые для каждого указанного в вашей таблице диапазона значений среднего чека выдают указанное в вашей таблице число (форма оплаты), а для чисел вне диапазонов таблицы- дают на выходе -1 (ниже диапазона) и +1 (выше диапазона), либо просто 0 (выше или ниже диапазона).
1) куча обычных ЕСЛИ (громоздко и запутанно):
=ЕСЛИ(E2<3200;-1;ЕСЛИ(E2<3300;70;ЕСЛИ(E2<3400;80;ЕСЛИ(E2<3500;90;ЕСЛИ(E2<3600;100;1)))))
2) новая функция ЕСЛИМН (довольно удобно, но визуально не очень):
=ЕСЛИМН(E2<3200;-1;E2<3300;70;E2<3400;80;E2<3500;90;E2<3600;100;1=1;1)
3) логические значения и вычисления с ними (как с числами 1 и 0):
=-(E2<3200)*70-(E2<3300)*10-(E2<3400)*10-(E2<3500)*10+(E2<3600)*100
4) сумма логических значений (как чисел 1 и 0) и функция ВЫБОР (длинновато, но визуально хорошо всё видно):
=ВЫБОР(1+(E2>=3200)+(E2>=3300)+(E2>=3400)+(E2>=3500)+(E2>=3600);-1;70;80;90;100;1)
5) функция ПРОСМОТР- задание диапазонов в отдельной маленькой табличке (очень удобно и универсально):
=ПРОСМОТР(E2;A$19:A$24;B$19:B$24)
А вот формулы только для диапазона с 3300 (включительно) до 3400 (не включая само число 3400). Для чисел, не входящих в этот диапазон, формулы дают на выходе ноль.
1) две функции ЕСЛИ:
=ЕСЛИ(E2>=3300;ЕСЛИ(E2<3400;80;0))
2) функция ЕСЛИ с функцией И:
=ЕСЛИ(И(E2>=3300;E2<3400);80;0)
Также, внизу приложил таблицу, в которой все эти формулы есть (для примера там по несколько чисел из каждого диапазона в таблице), а также скрин этой таблицы:
const
N = 10;
var
mas: array [1..N] of integer;
sum,count,i:integer;
begin
for i:=1 to N do begin
mas[i] := random(51)-10;
end;
writeln('Массив: ');
for i:=1 to N do begin
write(mas[i] + ' ');
end;
writeln();
for i:=1 to N do begin
if (mas[i] > -3) and (mas[i] < 20) then begin
sum += mas[i];
count+=1;
end;
end;
writeln('Сумма элементов массива, значение которых больше -3 но меньше 20 = ' + sum);
writeln('Их количество = ' + count);
end.
Объяснение:
Pascal.