Новая Школа - онлайн-школа подготовки к ЕГЭ
Информатика · 10 класс Задача №3751711
А
Аноним
21 октября 2026 21:59 · публичный вопрос
А
Аноним

Сделай

Ответ нейросети
21 октября 2026 21:59

Кратко: во всех задачах нужен один и тот же приём — завести массив, пройти по нему циклом и накопить сумму/произведение или посчитать элементы по условию. Язык в задании не указан, ниже — программы на Python; списки в Python играют роль массивов.

1. Произведение 10 целых чисел

a = []
for i in range(10):
    a.append(int(input("Введите число: ")))

product = 1
for x in a:
    product *= x

print("Произведение:", product)

Важно: произведение начинаем с 1, а не с 0, иначе результат всегда будет 0.


2. Дневная выручка магазина

import random

purchases = [random.randint(10, 1100) for _ in range(200)]
revenue = sum(purchases)

print("Дневная выручка:", revenue, "руб.")

Здесь выручка — это сумма покупок 200 покупателей.

Если нужно вводить суммы вручную, замени строку с random на:

purchases = [int(input()) for _ in range(200)]

3. Средняя температура в августе

import random

temperatures = [random.randint(15, 30) for _ in range(31)]
average = sum(temperatures) / len(temperatures)

print(temperatures)
print("Средняя температура:", round(average, 2))

В августе 31 день, поэтому среднее считаем как сумму температур, делённую на 31.


4. Средний балл и число оценок ниже среднего

marks = []

for i in range(10):
    mark = int(input("Введите отметку: "))
    marks.append(mark)

average = sum(marks) / len(marks)

below = 0
for mark in marks:
    if mark < average:
        below += 1

print("Средний балл:", round(average, 2))
print("Отметок ниже среднего:", below)

Сначала нужно найти среднее, и только потом вторым проходом сравнивать с ним каждую отметку.


5. Сколько учеников осталось на фабрике

import random

n = int(input("N = "))
eaten = [random.randint(2, 15) for _ in range(n)]

stayed = 0
for chocolates in eaten:
    if chocolates > 10:
        stayed += 1

print("Осталось на фабрике:", stayed)

Условие «больше 10» записывается как > 10, а не >= 10.


Проверка принципа

  • Если в 1-й задаче числа 2, 3, 4, произведение равно 24.
  • Если оценки 5, 4, 3, 5, 2, 4, 5, 3, 4, 5, среднее равно 4.0, а ниже среднего — 3 оценки: 3, 2, 3.
  • Если шоколадок съедено 9, 11, 15, 10, то остались только 11 и 15, то есть 2 ученика.

Обсуждение

4 сообщения
А
Аноним

Показать это же на Паскале? Да

Нейросеть21 октября 2026 22:00

Да. Ниже те же пять задач на Pascal. Логика та же: массив → цикл → накопление суммы/произведения или подсчёт по условию. Отличаются только синтаксис и пара технических моментов.

Общие отличия от Python

  • Массив объявляется заранее с границами: array[1..10] of Integer; индексы по умолчанию начинаются с 1.
  • Random(n) даёт числа 0..n-1, поэтому нужный диапазон получают как Random(n) + a.
  • Randomize вызывают один раз в начале программы.
  • / всегда даёт Real, целочисленное деление — div.
  • Суммы и произведения лучше хранить в LongInt/Int64, чтобы не было переполнения.

1. Произведение 10 целых чисел

program Product10;
var
  a: array[1..10] of LongInt;
  i: Integer;
  product: Int64;
begin
  for i := 1 to 10 do
  begin
    Write('Введите число: ');
    ReadLn(a[i]);
  end;

  product := 1;              { начинаем с 1, а не с 0 }
  for i := 1 to 10 do
    product := product * a[i];

  WriteLn('Произведение: ', product);
end.

2. Дневная выручка магазина

program Revenue;
const
  N = 200;
var
  purchases: array[1..N] of Integer;
  i: Integer;
  revenue: LongInt;
begin
  Randomize;
  for i := 1 to N do
    purchases[i] := Random(1091) + 10;   { от 10 до 1100 }

  revenue := 0;
  for i := 1 to N do
    revenue := revenue + purchases[i];

  WriteLn('Дневная выручка: ', revenue, ' руб.');
end.

Random(1091) даёт 0..1090, после +10 — 10..1100.


3. Средняя температура в августе

program AugustTemp;
const
  DAYS = 31;
var
  t: array[1..DAYS] of Integer;
  i: Integer;
  sum: LongInt;
  average: Real;
begin
  Randomize;
  sum := 0;
  for i := 1 to DAYS do
  begin
    t[i] := Random(16) + 15;   { от 15 до 30 }
    sum := sum + t[i];
    Write(t[i], ' ');
  end;
  WriteLn;

  average := sum / DAYS;
  WriteLn('Средняя температура: ', average:0:2);
end.

average:0:2 — вывод вещественного числа с двумя знаками после запятой. В августе 31 день, поэтому делим на DAYS = 31.


4. Средний балл и число оценок ниже среднего

program Marks;
const
  N = 10;
var
  marks: array[1..N] of Integer;
  i, count: Integer;
  sum: LongInt;
  average: Real;
begin
  sum := 0;
  for i := 1 to N do
  begin
    Write('Введите отметку: ');
    ReadLn(marks[i]);
    sum := sum + marks[i];
  end;

  average := sum / N;      { сначала среднее }

  count := 0;              { потом второй проход }
  for i := 1 to N do
    if marks[i] < average then
      count := count + 1;

  WriteLn('Средний балл: ', average:0:2);
  WriteLn('Отметок ниже среднего: ', count);
end.

5. Сколько учеников осталось на фабрике

program Factory;
const
  MAXN = 1000;
var
  eaten: array[1..MAXN] of Integer;
  n, i, stayed: Integer;
begin
  Randomize;
  Write('N = ');
  ReadLn(n);

  stayed := 0;
  for i := 1 to n do
  begin
    eaten[i] := Random(14) + 2;      { от 2 до 15 }
    if eaten[i] > 10 then            { строго больше 10 }
      stayed := stayed + 1;
  end;

  WriteLn('Осталось на фабрике: ', stayed);
end.

Если хочется массив ровно по N, используют динамический:

var eaten: array of Integer;
...
SetLength(eaten, n);   { индексы станут 0..n-1 }

Проверка (результаты те же, что на Python)

  • 2, 3, 4 → произведение 24.
  • Оценки 5, 4, 3, 5, 2, 4, 5, 3, 4, 5 → среднее 4.00, ниже среднего 3 оценки (3, 2, 3).
  • Шоколадки 9, 11, 15, 10 → остались 11 и 15, то есть 2 ученика.

Главная мысль, которую стоит запомнить: в Pascal массив имеет фиксированные границы и индексы с 1, поэтому цикл пишется как for i := 1 to N do, а случайное число в диапазоне [a; b] — это Random(b - a + 1) + a.

А
Аноним

Только можно без product

Нейросеть21 октября 2026 22:01

Да. Если убрать именно переменную product, произведение можно накапливать прямо в первом элементе массива:

program Product10;
var
  a: array[1..10] of Int64;
  i: Integer;
begin
  for i := 1 to 10 do
  begin
    Write('Введите число: ');
    ReadLn(a[i]);
  end;

  for i := 2 to 10 do
    a[1] := a[1] * a[i];

  WriteLn('Произведение: ', a[1]);
end.

Здесь a[1] выполняет роль накопителя: сначала там лежит первое число, потом оно последовательно умножается на остальные.

Полностью «без накопителя» не обойтись — где-то произведение всё равно должно храниться. Если запрещено только имя product, можно просто переименовать переменную:

p := 1;
for i := 1 to 10 do
  p := p * a[i];

WriteLn('Произведение: ', p);

Остальные четыре программы можно не менять.