В связи с тем что я хочу усовершенствовать предыдущие функции а также написать функцию выделения/распределения памяти я сделаю большой перерыв.
Мною планировалось написать функции увеличения и уменьшения ранга. Пример есть динамический массив mas[3][4] , далее вы хотите положить ещё один ярус mas[3][4][2] . На уменьшение ранга такая функция есть: из массива mas[3][4][2] получаем mas[3][4] . Также я хотел создать функцию, которая будет менять ранг так: из mas[3] получаем mas[2][3] , т.е. увеличиваем массив в 2 раза по вертикали, аналогично в сторону уменьшения. Также планировалось написать такие функции которые будут менять ширину многомерного динамического массива.
Если кому-то будет интересно под заказ сделаю, если нет в штатном режиме через год или более появятся.
Мною планировалось написать функции увеличения и уменьшения ранга. Пример есть динамический массив mas[3][4] , далее вы хотите положить ещё один ярус mas[3][4][2] . На уменьшение ранга такая функция есть: из массива mas[3][4][2] получаем mas[3][4] . Также я хотел создать функцию, которая будет менять ранг так: из mas[3] получаем mas[2][3] , т.е. увеличиваем массив в 2 раза по вертикали, аналогично в сторону уменьшения. Также планировалось написать такие функции которые будут менять ширину многомерного динамического массива.
Если кому-то будет интересно под заказ сделаю, если нет в штатном режиме через год или более появятся.
Тренируетесь в программировании? Или есть практическая задача, для решения которой все это нужно?
Тут вряд ли найдете поддержку.
Andrey Khatimlianskii:
Или есть практическая задача, для решения которой все это нужно?
Я буду применять это в своих торговых роботах и попутно предлагаю свои разработки другим. Честно говоря я уже на mql4 и возвращаться не хочу очень конченый язык программирования, очень плохо что разработчики закрыли доступ к памяти и действительно нормальную программу не напишешь большую часть кода придётся в библиотеке писать.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Первая рубрика, это функции которые позволяют находить размер и ранг динамического массива. Также этому правилу подчиняются и массивы mql4, специфику показываю в видео.
Если вы передаёте массивы в свои функции и не хотите передавать лишние параметры в функции, то данные функции будут вам очень полезны.
Нахождение размера.
Пример вы объявили обычную переменную
Нахождение ранга.
Предположим вы собрали многомерный динамический массив такого вида [2][3][4][5]
и запихнули его в переменную Q, далее вы передали переменную в функцию, и вам нужно узнать что ранг у этого массива равен 4ём. Вы вызываете функцию и получаете ранг из переменной Q.
Найти размер статического массива нельзя его можно только посчитать. В своих материалах я показываю как это сделать. Как показывает практика на моём опыте динамические массивы используются в 85% случаях. Что касается ранга статического массива, то статический массив со всеми своими данными и параметрами лежит в одном блоке, следовательно получить и посчитать ранг статического массива тоже не получиться. Но позже будут разработаны функции которые будут имитировать статические одноконтурные массивы.
Отправляя вам код с функциями, я отправлю вам видео, на чём основаны мои расчёты. Если вы не поленитесь, то на этих прототипах сможете сделать много интересных функций.
Прошу обратить внимание мои типы данных занимают памяти как на этом ресурсе https://metanit.com/cpp/tutorial/2.3.php т.е. откалиброваны очень тонко. Если что-то не получается пишите.
Рубрика2.
Предлагаю вам несколько функций для работы с динамическими/многоконтурными массивами, позже будет имитировано такое со статическим массивом.
1ая может создавать массив любого ранга, прописывая и выделяя память на все размеренности. Пример вам нужно создать дин. массив massiv[2][3][4][4][10], вы помещаете данные в одномерный массив описатель int opisat[]={5,2,3,4,4,10}, далее вы передаёте 2 указателя в функцию, она это переваривает и собирает вам 5ый массив.
2ая может выводить все столбцы или информацию по нужной размеренности.
3яя разрушает такой массив полностью, имеется в виду все размеренности.
Последние выводят единичные параметры: возвращают значение, присваивают его и т.д. В них вы передаёте массив любого ранга и можете управлять этим делом в цикле в ходе выполнения программы. Я в видео https://www.youtube.com/watch?v=wzDQsMQY-b4 кратко показал, как это работает. Если видео будет удалено (потому что я попадал в ситуации когда каналы блокировали) то напишите мне я отправлю вам его на почту.