Задача Ю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
Код
1
2
3
4
5
6
7
8
9
10
classTest{
staticfunctionmain(){
varx=[5,3,8,6,7,2,9,5];
for(jin1...x.length-1){
if((x[j]>x[j+1])&&(x[j]>x[j-1])){
trace(j+" ");
}
}
}
}
Решение
Для решения данной задачи зададим массив. После этого создадим цикл, в котором будем каждую итерацию проверять, удовлетворяет ли новое значение нашему условию и если да, то выводить на печать его номер.
Задача. Даны действительные числа $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
Пройден.
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
classTest{
staticfunctionmain(){
vara:Float;// a - первый член последовательности, который мы должны запомнить.
varb0:Float;//b0 и b1 последующие члены соответственно.
Так как в данной формуле присутствует первый член последовательности, который, согласно условию, всегда больше 0, он был вынесен из общего ряда, поэтому его ввод осуществляется вне цикла.
Затем нужно было найти n-ый член последовательности. Для этого было создано 2 переменные, в одной из которых хранится настоящее значение n-ого члена независимо от его знака. Если этот член — число не отрицательное, то вспомогательной переменной присваивается его значение и цикл повторяется вновь. Если же условие неравенства не выполняется, то цикл заканчивается, и у нас остаётся значение нашей вспомогательной переменной (не отрицательное).
В том случае, если первый член последовательности является в то же время и n-ым, $a_{n}$ и вспомогательной переменной присваивается значение $a_{1}$. И в этом случае модуль разницы будет равен 0.
После программа выводит модуль $\left | a_{1}-a_{n} \right |$.
Ю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
2
3
4
5
6
7
8
9
10
11
12
classTest{
staticfunctionmain(){
varg:Int=0;// гусей
vark:Int=0;//кроликов
varn:Int=5;
while(k<=n/2){
g=(2*n-4*k)>>1;
trace("Гусей - "+g+" Кроликов - "+k);
k++;
}
}
}
Решение
По условию задачи необходимо вывести все возможные варианты сочетаний количества кроликов и гусей.
Для того, чтобы это сделать используется 1 цикл. В нем проверяется условие (количество кроликов не превышает [latex]\frac{n}{2}[/latex]) — количество кроликов не может превышать $n/2$. Изначально переменным $k$ и $g$ присваивается значение 0. В теле цикла считаем количество гусей по формуле $(2n — 4k)/2$.
Если условие выполнено успешно, то на экран выводится один из вариантов сочетаний. После чего цикл повторяется с заданным инкрементом и выводится следующий вариант сочетаний.
В условии не оговаривается ни принадлежность граничных точек фигуре, ни формат записи координат точки. В своем решении я предполагаю, что граничные точки фигуре принадлежат, а значения координат могут иметь дробную часть.
В основе заданной фигуры лежит круг с радиусом $6$ и центром в начале системы координат $(0,0)$, из которого исключена первая четверть. Таким образом, нам нужно удостовериться, что положение заданной точки одновременно удовлетворяет следующим условиям:
точка расположена в пределах круга, то есть сумма квадратов координат $x^{2}+y^{2}$ меньше или равна квадрату радиуса $6^{2}=36$;
хотя бы одна из координат точки $(x,y)$ не превышает значения $0$ (другими словами, точка не лежит в первой четверти).
Если оба условия соблюдены, точка принадлежит фигуре. В противном же случае — нет. Такую проверку и последующий вывод ответа можно записать с помощью единственной тернарной операции:
Найти площадь равнобедренной трапеции с основаниями $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}$.
List — это коллекция для хранения элементов. На первый взгляд список похож на массив. Однако базовая реализация сильно отличается. Это приводит к нескольким функциональным отличиям:
Невозможно индексировать список, используя квадратные скобки: [0].