Cсылка на первоначальное решение тут Задача Найти объём тетраэдра три стороны которого образованы векторами $\vec {a} = \left( x_a, y_a, z_a \right)$ $\vec {b} = \left( x_b, y_b, z_x \right)$ $\vec {c} = \left( x_c, y_c, z_c \right).$ Пояснительный рисунок Входные данные Координаты векторов $\vec {a}$,$\vec {b}$, $\vec {c}$ Выходные данные Объём тетраэдра Входные данные … Continue reading
e-olymp 4. Two circles
Задача взята с сайта e-olymp.com. Условие Определить количество точек пересечения двух окружностей. Входные данные: Шесть чисел: $x_1$, $y_1$, $r_1$, $x_2$, $y_2$, $r_2$, где $x_1$, $y_1$, $x_2$, $y_2$ — координаты центров окружностей, а $r_1$, $r_2$ — их радиусы. Все числа — действительные, не превышают $10^9$, заданы не более чем с тремя знаками после запятой. Выходные данные: … Continue reading
A57в
Условие Дано действительное число $a$. Вычислить $f(a)$ если $f(x)=\left\{\begin{matrix} 0, x\leq 0 \\ x, 0< x\leq 1\\ x^{4}, x> 1 \end{matrix}\right.$ Входные данные Действительное число $a$. Выходные данные $0$ — если $a\leq 0$ $a$ — если $0 < a \leq 1$ $a^{4}$ — если $a > 1$ Тесты Входные данные Выходные данные -12.07 0 0.75 … Continue reading
ML25. Расстояние между двумя точками
Задача Вычислить расстояние между двумя точками [latex]A(x_a,y_a,z_a)[/latex] и [latex] B(x_b,y_b,z_b)[/latex] по известным координатам. Входные данные Координаты: [latex]x_a,y_a,z_a,x_b,y_b,z_b.[/latex] Выходные данные [latex]|AB|[/latex]— расстояние между точками [latex]A[/latex] и [latex]B[/latex] Тесты [latex]x_a[/latex] [latex]y_a[/latex] [latex]z_a[/latex] [latex]x_b[/latex] [latex]y_b[/latex] [latex]z_b[/latex] [latex]|AB|[/latex] 0 1 0 1 0 1 1.73205 0 0 0 0 0 0 0 6 6 4 4 2 8 6 … Continue reading
e-olymp 126. Номер квартиры
Ссылка на условие задания: e-olymp.com Условие Многоквартирный дом имеет $N$ квартир, $P$ подъездов и $Q$ этажей, причем на каждом этаже каждого подъезда имеется одинаковое количество квартир. Определить в каком подъезде и на каком этаже находится квартира с заданным номером. Входные данные. Значения $N$, $P$, $Q$, $K$, причем [latex]1 \leq K \leq N \leq 1000[/latex], [latex]P … Continue reading
6.6 Array Comprehension
Array Comprehension – это выражение, которое позволяет быстро создавать новый массив из существующего с помощью for и while, или без массива с инициализацией переменных во время итераций цикла. Простые array comprehensions:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var b = [for (i in [1,2,3]) i*i]; trace(b); //[1,4,9] var abc = [ "A", "B", "C" ]; var letter = [for (i in abc) i+i]; trace(letter); //[AA,BB,CC] var i = 0; var b = [while(i < 10) i++]; trace(b); //[0,1,2,3,4,5,6,7,8,9] var a = [for (i in 0...10) i]; trace(a); //[0,1,2,3,4,5,6,7,8,9] |
Array Comprehension с использованием if:
1 2 3 |
var years = [ 1954, 1974, 1990, 2006, 2010, 2014 ]; var before2000 = [for (year in years) if (year > 2000) year]; trace(before2000); |
Array Comprehension c использованием двух массивов:
1 2 3 4 5 |
var numbers = [ 1, 2, 3 ]; var letters = [ "a", "b", "c" ]; var cross = [for (i in numbers) for (j in letters) i+j]; trace(cross); // [ "1a", "1b", "1c", "2a", "2b", "2c", "3a", "3b", "3c" ] |
Выражение цикла могут быть любыми, включая условия и вложенные циклы, поэтому … Continue reading
e-olymp 57. Butterfly-orderly
Задача взята с сайта e-olymp.com. Условие Школьники, идя из дому в школу или наоборот – со школы домой, любят кушать конфеты. Но, как всегда, это приятное дело иногда имеет неприятные последствия – детки часто выбрасывают обертки на школьном дворе. Мурзик всегда следил за чистотой школьного двора и ему в этом с радостью помогали бабочки, благодарные … Continue reading
А34а. Максимум из трёх
Задача. Даны действительные числа [latex]x, y, z[/latex]. Получить [latex]\max\left\{x,y,z \right\}[/latex]. Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Test { static function max(x:Float, y: Float) { return if (x > y) x else y; } static function main() { var x: Float = 10; var y: Float = 5; var z: Float = 3; trace(max(x, max(y, z))); } } |
Решение. Как известно, для любых чисел [latex] x,y \in \mathbb{R} [/latex] [latex] \max\left\{x,y \right\} = x,[/latex] если [latex] x \geq y[/latex], и [latex] \max\left\{x,y \right\} = y,[/latex] в противном случае. Нетрудно доказать, что [latex] \forall x,y,z \in \mathbb{R} [/latex] [latex] \max\left\{x,y,z … Continue reading
e-olymp 935. Разложение трицифрового числа
Задача Разложить заданное трицифровое число на цифры. Входные данные В единственной строке задано целое трицифровое число. Выходные данные Вывести каждую цифру в новой строке. Порядок вывода приведён в примере. Код:
1 2 3 4 5 6 7 8 |
class Main { static function main() { var x: Int = Std.parseInt(Sys.stdin().readline()); // читаем введённую строку и переводим её в Int trace(Std.int(x/100)); trace(Std.int(x/10)%10); trace(x%10); } } |
Для получения первой цифры числа, делим входное число на 100, результат преобразуем из Float в Int с помощью Std.int(x: Float): Int Для получения второй цифры делим входное число … Continue reading
2.3.2 Наследование
Source: 2.3.2 Inheritance Как во многих объектно-ориентированных языках, классы в языке Haxe являются основной структурой данных для большинства программ. Класс объявляется с помощью ключевого слова class . В классе может быть ноль или более полей класса. Пример класса Ogr, который представляет собой создание экземпляра класса Ogr, с полем life типа Int:
1 2 3 4 5 6 7 8 9 |
class Ogr { var life : Int; public function new(life) { this.life = life; } public function toString() { return "Ogr("+life+")"; } } |
Экземпляр класса создается с … Continue reading