PascalABC.NET
begin
var a := ArrGen(10, i -> i in [0, 2, 6] ? 2 * (i + 1) + 10 :
(i - 7) * 3);
Writeln('массив');
var m := a.Println.Where(p -> p.IsEven).Average;
Write('sr=', m)
end.
begin
var a := ArrGen(10, i -> (i + 1) mod 3 = 0 ? -i : Sqr(i + 2));
Writeln('массив');
var s := a.Println.Sum;
Writeln('sr=', s);
a.Transform(p -> p < 0 ? s : p);
Writeln('новый массив');
a.Print
end.
begin
var a := ArrGen(15, i -> i < 7 ? i * (i + 6.1) + 5.1 : i - 4.7);
Writeln('массив');
foreach var k in a do
Write(k:7:2);
Writeln;
var p := 1.0;
for var i := 2 to 4 do
p *= a[i];
Write('p= ', p:0:3)
end.
Индексы в массивах PascalABC.NET идут не от единицы, а от нуля, как во всех современнных языках программирования. Поэтому исходные формулы пришлось немного преобразовать.
Примеры вывода не показаны, поскольку они точно совпадают с заданными.
1. открой поисковик
2. вбей данные из "как сгенерировать идеальный бесконечный лабиринт в с++"
3.посмотри видео и всё поймёшь
желаю удачи!!
Объяснение:
Предисловие
На написание статьи меня сподвигло практически полное отсутствие материалов на русском языке про алгоритмы генерации лабиринтов. На Хабре, из того, что вообще есть по теме, можно отметить две статьи: раз и два. Ценность и пользу из которых несет лишь вторая. В первой – просто перевод формального алгоритма и небольшое его пояснение. Что, конечно, неплохо, но очень скудно и не вызывает желания изучать тему дальше.
Если моя статья Вам понравится, я продолжу писать о различных алгоритмах. Мы рассмотрим два самых примитивных и простых случая – генерация двоичного дерева и Сайдвиндер, который, по своей сути, просто чуть измененная версия двоичного дерева с одним заметным плюсом. ОСТОРОЖНО ТРАФИК.
Дам один совет – не подглядывайте в код до тех пор, пока вы не напишите свою реализацию. Вы получите гораздо больше удовольствия и пользы от исправления багов и поиска ошибок, чем если просто переведете с одного языка на другой.
Серьезно. Прислушайтесь к совету. Вы, верно, потратите больше времени, но оно стоит стоит. У меня, например, из-за пары ошибок появился очень забавный генератор «инопланетных» текстов, который можно использовать в различных Sci-Fi играх для создания текста. Надеюсь, Вы изучаете тему для себя и никуда не спешите.
P.S.:
Я буду использовать термин «смещение», предполагая английский bias. Т.е. пристрастие алгоритма к направленности в какую-либо сторону. Например, правое смещение – алгоритм генерирует лабиринты с длинными правыми проходами.
Раскраска лабиринтов происходит относительно расстояния от крайнего левого угла поля до некоторой клетки. Чем дал�ше от начальной координаты – тем темнее будет цвет.
Идеальный лабиринт – такой лабиринт, в котором одна клетка связана с другой одним единственным путем. Иначе говоря, остовное дерево.
Про Lua
Алгоритм двоичного дерева..........................................................................................
Объяснение:
2. 3)Иерархические структуры (деревья)
3. 2)Файл
4. 3)Ячейка
5. 4)Многоуровневая (иерархическая)
6. 3)Алгоритм
7. 4)Массовость
8. 2)Текстовая 4)На языке программирования 5)Графическая
9. 4)Блок-схема
10. Блок-схема
11. 1)язык программирования 4)транслятор 5)библиотеку программ
12 синтаксис
13 3)Семантика
14 равно
15 program
16 -
17 2)While<условие выполнения>Do <тело цикла>
18 ;(точка с запятой)