Задачник по MQL5 (с ответами) - страница 2

 
Mathemat:

Да можно ей пользоваться - для целочисленных данных. Никаких сюрпризов не будет.

А смысл? Для целочисленных есть a % b.
 
TheXpert: А смысл? Для целочисленных есть a % b.
Да никакого. Абсолютно дурацкая функция (если для float/double).
 
Задача Вопрос Ответ

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% выше второго! Для других целочисленных типов такого различия в быстродействии нет. 

 
Задача Вопрос Ответ
double a[MAX];
Какой максимальный размер статического массива можно задать? (MAX=268435455)
При компиляции проверяется общий размер секции переменных, поэтому MAX может иметь значение как больше, так и меньше!
 

DC2008:

(MAX=268435455)  


Ответ неверный. Проверяется общий размер секции переменных.
 
Integer:
Ответ неверный. Проверяется общий размер секции переменных.
Приведите пример, в котором задаётся больший размер статического массива.
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
DC2008:
Приведите пример, в котором задаётся больший размер статического массива.
#define MAX 268435456
int a[MAX];
 
Integer:
Ответ неверный. Проверяется общий размер секции переменных.
Вы правы, исправлю ответ.
 
DC2008:
Вы правы, исправлю ответ.

Да здесь как бы вообще о размере массива не может быть разговора. Общий размер секции проверяется.

Так пройдет: 

#define MAX 268435455
double a[MAX]; 

Добавим еще переменную и будет ошибка: 

#define MAX 268435455
double a[MAX]; 
double b; 
Причина обращения: