Задачник по MQL5 (с ответами) - страница 2 12 Новый комментарий TheXpert 2013.01.07 11:07 #11 Mathemat: Да можно ей пользоваться - для целочисленных данных. Никаких сюрпризов не будет.А смысл? Для целочисленных есть a % b. Sceptic Philozoff 2013.01.07 14:40 #12 TheXpert: А смысл? Для целочисленных есть a % b.Да никакого. Абсолютно дурацкая функция (если для float/double). Sergey Pavlov 2013.01.26 06:39 #13 Задача Вопрос Ответ 1 Вариант#define ARRMAX 100 double a[ARRMAX]; //--- void OnTick() { for(int i=0; i<ARRMAX; i++) a[i]=i; } 2 Вариант#define ARRMAX 100 double a[ARRMAX]; //--- void OnTick() { for(uint i=0; i<ARRMAX; i++) a[i]=i; } Как Вы думаете, какой код быстрее? (1) Причём, скорость первого варианта на ~45% выше второго! Для других целочисленных типов такого различия в быстродействии нет. Sergey Pavlov 2013.01.26 07:13 #14 Задача Вопрос Ответ double a[MAX]; Какой максимальный размер статического массива можно задать? (MAX=268435455)При компиляции проверяется общий размер секции переменных, поэтому MAX может иметь значение как больше, так и меньше! Dmitry Fedoseev 2013.01.26 07:21 #15 DC2008: (MAX=268435455) Ответ неверный. Проверяется общий размер секции переменных. Sergey Pavlov 2013.01.26 07:30 #16 Integer:Ответ неверный. Проверяется общий размер секции переменных.Приведите пример, в котором задаётся больший размер статического массива. Документация по MQL5: Основы языка / Типы данных / Объект динамического массива www.mql5.com Основы языка / Типы данных / Объект динамического массива - Документация по MQL5 Dmitry Fedoseev 2013.01.26 07:35 #17 DC2008: Приведите пример, в котором задаётся больший размер статического массива.#define MAX 268435456int a[MAX]; Sergey Pavlov 2013.01.26 07:41 #18 Integer:Ответ неверный. Проверяется общий размер секции переменных.Вы правы, исправлю ответ. Dmitry Fedoseev 2013.01.26 07:45 #19 DC2008: Вы правы, исправлю ответ.Да здесь как бы вообще о размере массива не может быть разговора. Общий размер секции проверяется.Так пройдет: #define MAX 268435455 double a[MAX]; Добавим еще переменную и будет ошибка: #define MAX 268435455 double a[MAX]; double b; 12 Новый комментарий
Да можно ей пользоваться - для целочисленных данных. Никаких сюрпризов не будет.
1 Вариант
2 Вариант
Причём, скорость первого варианта на ~45% выше второго! Для других целочисленных типов такого различия в быстродействии нет.
double a[MAX];При компиляции проверяется общий размер секции переменных, поэтому MAX может иметь значение как больше, так и меньше!
DC2008:
(MAX=268435455)
Ответ неверный. Проверяется общий размер секции переменных.
Приведите пример, в котором задаётся больший размер статического массива.
int a[MAX];
Ответ неверный. Проверяется общий размер секции переменных.
Вы правы, исправлю ответ.
Да здесь как бы вообще о размере массива не может быть разговора. Общий размер секции проверяется.
Так пройдет:
Добавим еще переменную и будет ошибка: