А137б

Нарусевич Никита Мирославович
Нарусевич Никита Мирославович

Latest posts by Нарусевич Никита Мирославович (see all)

Задача: Даны натуральное [latex]n[/latex], действительные числа [latex]a_{1},…,a_{n}[/latex]. Вычислить: [latex]a_{1}^{2},a_{1}a_{2},…,a_{1}a_{n};[/latex]

Значения Результат
53 4 6 -1 1.2 8 0 9 9 12 18 -3 3.6

 

Для решения этой задачи воспользуемся циклом for. Сначала прочитаем n. После этого  прочитаем первую переменную и напечатаем ее квадрат. Далее будет цикл, в котором буду читаться остальные n переменных и печататься их произведения на первую переменную.

Ю3.7

Карагяур Мілан Сергійович
Карагяур Мілан Сергійович

Latest posts by Карагяур Мілан Сергійович (see all)

Задача: Время обслуживания. Для каждого посетителя парикмахерской (с одним мастером) известны следующие величины: [latex]t[/latex] — момент его прихода и [latex]\tau[/latex] — продолжительность его обслуживания. Сколько клиентов обслужит мастер за смену продолжительностью [latex]T[/latex]? Сколько рабочего времени он потратит на обслуживание?

 [latex]T[/latex] t1 t2 k T1
600 200 210 500 550 50 300 10 50 4  410
600 50 100 200 498 550 30 50 200 10 40  5  330
 600 0 80 100 367 680 20 30 20 30 50  4 100
Используем цикл while, который останавливается при достижении конца файла (input). С начала проверяем пришел ли текущий клиент во время обслуживания предыдущего, если да, то обслуживание этого клиента начнется с момента окончания предыдущего. Потом проверяем не выходит ли момент прихода клиента и сумма времени прихода клиента и время его обслуживания за рамки смены парикмахера. После запоминаем текущие t1 (момент прихода клиента) и t2 (время обслуживания) в новые переменные, чтобы в последующем шаге цикла проверить первое условие. Считаем общее время обслуживание прибавляя на каждом шаге цикла t2. В каждом шаге цикла прибавляем к переменной k +1, что и будет количеством обслуженных клиентов.

Ideone.

Ю3.44

Іванов Вячеслав Володимирович
Іванов Вячеслав Володимирович

Latest posts by Іванов Вячеслав Володимирович (see all)

Задача: Леспромхоз ведёт заготовку деловой древесины. Первоначальный объем её на территории леспромхоза составлял [latex]p[/latex] кубометров. Ежегодный прирост составляет [latex]k[/latex]%. Годовой план заготовки — [latex]t[/latex] кубометров. Через сколько лет в бывшем лесу будут расти одни опята?

  1. Тесты:
[latex]p[/latex] [latex]k[/latex]% [latex]t[/latex] [latex]years[/latex] Комментарий
111.50 14.57 16 Никогда Пройден: прирост компенсирует вырубку
0 0 0 0 Пройден: абстрактный случай, но результат верный
20 10 30 1 Пройден
200 30 61 16 Пройден
  1. Программный код:
  1. Формализация задачи:
    Дано начальное значение [latex]p \ge 0[/latex]. На [latex]i[/latex]-м шаге оставшийся объем древесины вычисляется из рекуррентного соотношения: [latex]p_{i} = p_{i-1} (1 + \frac {k}{100})-t[/latex]. (*)
    Определить шаг [latex]i[/latex] такой, что [latex]p_{i}<0[/latex].

  2. Алгоритм решения:
    Шаг 1: Проверка условия [latex]p_{1}[/latex] меньше [latex]p[/latex]. В случае, если если естественный прирост не компенсирует вырубку, начать рассчет. В противном случае лес никогда не опустеет, так как прирост и убыль скомпенсированы.
    Шаг 2: До тех пор, пока [latex]p_{i}>0[/latex], рассчитывать [latex]p_{i}[/latex] по соотношению (*), где [latex]i[/latex] — количество прошедших лет.

  3. Детали реализации:
    В задаче используются два типа данных: целочисленный и с плавающей точкой двойной точности. Выбор продиктован отсутствием указания на конкретный тип входных данных в условии задачи. Протестировать работу программы можно по ссылке.
    Реализация на Java: http://ideone.com/fyuDTg