Ю 4.17

Задача Ю4.17. В массиве $A(n)$ найти и напечатать номера (индексы) локальных максимумов, то есть таких $a_{i}$, что $a_{i-1} < a{i} > a_{i+1}$.

Тесты

Значения Результат
5, 3, 8, 6, 7, 2, 9, 5 2 4 6
8, 9, 1, 7, 7, 2, 3, 1, -1, 10 1 6

Код

Решение

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

Ссылка на условие задания: cpp.mazurok.com
Try Haxe

A165к

Задача. Даны действительные числа $a_{1}, a_{2},\ldots$. Известно, что $a_{1} > 0$ и что среди $a_{2}, a_{3}, \ldots$ есть хотя бы одно отрицательное число. Пусть $a_{1},\ldots,a_{n}$ – члены данной последовательности, предшествующие первому отрицательному члену ($n$ заранее неизвестно). Получить: $\left | a_{1}-a_{n} \right |$.

Тесты

Введённые данные. $\left | a_{1}-a_{n} \right |$ Комментарий.
1 2 6 4 -8 0 6 8 -7 3 Пройден.
0,65 3,2 4 0 -3 2 0,65 Пройден.
0 -5 8 9 0 Пройден.
0,8 3 6 9 7,2 0 4 -2 3,2 Пройден.
1 -3 6 0 Пройден.

Код

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

Затем нужно было найти n-ый член последовательности. Для этого было создано 2 переменные, в одной из которых хранится настоящее значение n-ого члена независимо от его знака. Если этот член — число не отрицательное, то вспомогательной переменной присваивается его значение и цикл повторяется вновь. Если же условие неравенства не выполняется, то цикл заканчивается, и у нас остаётся значение нашей вспомогательной переменной (не отрицательное).

В том случае, если первый член последовательности является в то же время и n-ым, $a_{n}$ и вспомогательной переменной присваивается значение $a_{1}$. И в этом случае модуль разницы будет равен 0.

После программа выводит модуль $\left | a_{1}-a_{n} \right |$.

Ссылка на условие задания: cpp.mazurok.com
Try Haxe

Ю3.45

Условие

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

Тесты

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

Код

Решение

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

Для того, чтобы это сделать используется 1 цикл. В нем проверяется условие (количество кроликов не превышает [latex]\frac{n}{2}[/latex]) — количество кроликов не может превышать $n/2$. Изначально переменным $k$ и $g$ присваивается значение 0. В теле цикла считаем количество гусей по формуле $(2n — 4k)/2$.

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

Ссылка на условие задания: cpp.mazurok.com
Try Haxe

Mif 17.16. Пакман

Условие

Принадлежит ли точка $(x,y)$ фигуре на рисунке?

В условии не оговаривается ни принадлежность граничных точек фигуре, ни формат записи координат точки. В своем решении я предполагаю, что граничные точки фигуре принадлежат, а значения координат могут иметь дробную часть.

Тесты

  Входные данные Выходные данные
1 0 0 YES
2 -6 0 YES
3 5.0 -2.0 YES
4 -3.33 -5 NO
5 0.12345 0.54321 NO

Код

Решение

В основе заданной фигуры лежит круг с радиусом $6$ и центром в начале системы координат $(0,0)$, из которого исключена первая четверть. Таким образом, нам нужно удостовериться, что положение заданной точки одновременно удовлетворяет следующим условиям:

  • точка расположена в пределах круга, то есть сумма квадратов координат $x^{2}+y^{2}$ меньше или равна квадрату радиуса $6^{2}=36$;
  • хотя бы одна из координат точки $(x,y)$ не превышает значения $0$ (другими словами, точка не лежит в первой четверти).

Если оба условия соблюдены, точка принадлежит фигуре. В противном же случае — нет. Такую проверку и последующий вывод ответа можно записать с помощью единственной тернарной операции:

Ссылки

Try Haxe
Ссылка на условие задания: cpp.mazurok.com

ML 22. Площадь равнобедренной трапеции

Условие

Задача взята тут

Найти площадь равнобедренной трапеции с основаниями $a$ и $b$ и углом $\alpha$ при большем основании $a$.

Тесты

a   b $\alpha$   Square
15 10 0,785398 31.25
20 5 1.0472 162.38
30 20 0.523599 72.1687

Решение

Для нахождения площади трапеции используется формула: $hm$, где $m$ средняя линия, $h$ высота. $h$ находится как $\tan \alpha \cdot \frac {(a-b)}{2}$ , $m$ находится как $\frac{(a-b)}{2}$.

Код

Решение на Try Haxe

10.2.3. Список

List — это коллекция для хранения элементов. На первый взгляд список похож на массив. Однако базовая реализация сильно отличается. Это приводит к нескольким функциональным отличиям:

  1. Невозможно индексировать список, используя квадратные скобки: [0].
  2. Невозможно инициализировать список.
  3. Списковое включение не поддерживается (в отличие от аналогичной возможности у массивов).
  4. Список может свободно изменять / добавлять / удалять элементы во время итерации

Простой пример работы со списками:

Связанный контент