А137б

Задача: Даны натуральное [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 переменных и печататься их произведения на первую переменную.

Related Images:

Ю3.44

Задача: Леспромхоз ведёт заготовку деловой древесины. Первоначальный объем её на территории леспромхоза составлял [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

Related Images:

Ю3.45

Ю3.45. Гуси и кролики. У гусей и кроликов вместе [latex]2n[/latex] лап. Сколько может быть гусей и кроликов (вывести все возможные сочетания)?

[latex]n[/latex] Гусей. Кроликов. Комментарий.
4 0, 2, 4 2, 1, 0 Тест пройден.
3 1, 3 1, 0 Тест пройден.
 0  0  0 Тест пройден.
 7  1, 3, 5, 7 3, 2, 1, 0 Тест пройден.

Код программы (C++):

Второй вариант с 1 циклом (C++):

Java:

 

По условию задачи необходимо вывести все возможные варианты сочетаний количества кроликов и гусей.

Для того, чтобы это сделать, программа использует 2 цикла. В первом исследуется количество гусей: изначально переменной присваивается значение 0, затем следует условие продолжения (количество гусей не должно превышать [latex]n[/latex], то есть количество лап, делённое на 2).

После запуска первого цикла программа проверяет условие продолжения вложенного второго цикла (количество кроликов не превышает [latex]\frac{n}{2}[/latex]), в котором переменной [latex]k[/latex] также изначально присваивается значение 0. В случае выполнения условий обоих циклов программа проверяет, действительно ли количество лап гусей и кроликов в сумме даёт [latex]2n[/latex], заданных по условию задачи пользователем.

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

Для тестов выбраны не слишком большие значения [latex]n[/latex], так как посчитать их вручную достаточно проблематично.

Протестировать решение можно по ссылкам: первое, второе (C++) и на Java.

Related Images: