Самообучение языку MQL5 с полного нуля - страница 39

 
MrBrooklin:

Да, скобки открытия и закрытия сходятся вертикально после "Стилизации", а вот подсветку толи не понимаю, что это такое, толи не вижу. Уровень мастерства в программировании, на данный момент, возле ноля.

С уважением, Владимир.

подсветка это горящая скобка первая после заголовка функции, должна светиться в паре с нижней, т.е. у каждой скобки должна быть пара, они подсвечены, если нет, значит не хватает скобки закрытия

 
Fast235:

подсветка это горящая скобка первая после заголовка функции, должна светиться в паре с нижней, т.е. у каждой скобки должна быть пара, они подсвечены, если нет, значит не хватает скобки закрытия

Спасибо, за подсказку. Оказывается они у меня на экране не подсвечиваются, а выделяются толщиной. Да все скобки в наличии. Сейчас, только что перенёс блок с функциями за нижнюю скобку OnStart и ошибки исчезли. Благодарю за помощь!

С уважением, Владимир.

 
MrBrooklin:

Спасибо, за подсказку. Оказывается они у меня на экране не подсвечиваются, а выделяются толщиной. Да все скобки в наличии. Сейчас, только что перенёс блок с функциями за нижнюю скобку OnStart и ошибки исчезли. Благодарю за помощь!

С уважением, Владимир.

Все функции обьявляются в глобальной области, т.е. вне пространства других функций, которое ограничено их скобками. 
 
Реter Konow:
Все функции обьявляются в глобальной области, т.е. вне пространства других функций, которое ограничено их скобками. 

Дорогой Петер, расскажи нам как тебе удалось создать свой, так называемый язык - разметки (), новичкам полезно будет, и мне нужно для развития логического мышления, которое очень важно здесь

может, что-то ел много, лазил на дерево
 
MrBrooklin:

Всем добрый вечер!

Уважаемые специалисты в области программирования, подскажите, пожалуйста, что означает в ошибке, которую выдает компилятор: "объявления функций разрешены только в глобальной области, пространстве имен или области класса", а если быть точнее, то меня интересует, что такое пространство имен и где оно должно раполагаться в скрипте?

Вопрос связан с написанием кода функции для  "Достаточно_времени" и "Достаточно_терпения".

С уважением, Владимир.

Глобальная область, область вне функций. и без разницы где, можно между функциями, надеюсь понимаете где они начинаются и заканчиваются, можно в конце делать все что можно в глобальной область, объявлять глобальные переменные, свойства или еще чего. Переменные объявленные в глобальной области видны везде, в прямом понимании этого слова. Локальная область это область от начала до конца, закрывающей фигурной скобки, функции. Переменные объявленные в локальной области видны только в ней.

При этом надо учитывать что код читается сверху вниз и слева направо. Компилятор строки не переставляет. Соответственно правило переменная объявляется всегда выше или левее обращения к ней. И только в своей области. В разных локальных областях переменные могут иметь одинаковые названия. И кстати циклы и если это тоже функции со своими областями)

 
Valeriy Yastremskiy:

Глобальная область, область вне функций. и без разницы где, можно между функциями, надеюсь понимаете где они начинаются и заканчиваются, можно в конце делать все что можно в глобальной область, объявлять глобальные переменные, свойства или еще чего. Переменные объявленные в глобальной области видны везде, в прямом понимании этого слова. Локальная область это область от начала до конца, закрывающей фигурной скобки, функции. Переменные объявленные в локальной области видны только в ней.

При этом надо учитывать что код читается сверху вниз и слева направо. Компилятор строки не переставляет. Соответственно правило переменная объявляется всегда выше или левее обращения к ней. И только в своей области. В разных локальных областях переменные могут иметь одинаковые названия. И кстати циклы и если это тоже функции со своими областями)

надо книгу писать. вместе всем нам

 
Реter Konow:
Все функции обьявляются в глобальной области, т.е. вне пространства других функций, которое ограничено их скобками. 

Спасибо, Петер! Мне уже помогли разобраться в данном вопросе.

Продолжаю изучение языка программирования MQL5 и сегодня выкладываю код скрипта, который является продолжением одного задания со стороны участников данной темы. Скрипт проверил на всех режимах. Всё работает, как положено. Входных параметров установил для начала по-минимуму.

С уважением, Владимир.

//+------------------------------------------------------------------+
//|                                                Learning_MQL5.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
#property script_show_inputs
//--- Зададим входные параметры скрипта 
input ushort Период_обучения=500; //Полный период обучения в днях
input ushort Прошло_дней=10;      //Сколько дней прошло с начала обучения
input bool   Терпение=true;       //Терпение (true - достаточно; false - не достаточно)
//--- Зададим глобальные переменные
ushort Достаточность_времени;
bool Достаточность_терпения;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   if(Достаточно_времени()==0 && Достаточно_терпения()==true)
     {
      Print("Я выучу язык MQL5!");
     }
   else
     {
      Print("Я не выучу язык MQL5!");
     }
  }
//--- Создадим функцию Достаточно_времени
ushort Достаточно_времени()
  {
   Достаточность_времени=(Период_обучения-Прошло_дней);
   return(Достаточность_времени);
  }
//--- Создадим функцию Достаточно_терпения
bool Достаточно_терпения()
  {
   Достаточность_терпения=Терпение;
   return(Достаточность_терпения);
  }
//+------------------------------------------------------------------+
 
MrBrooklin:

Спасибо, Петер! Мне уже помогли разобраться в данном вопросе.

Продолжаю изучение языка программирования MQL5 и сегодня выкладываю код скрипта, который является продолжением одного задания со стороны участников данной темы. Скрипт проверил на всех режимах. Всё работает, как положено. Входных параметров установил для начала по-минимуму.

С уважением, Владимир.

Структурно, функции написаны верно, но логика хромает. Просмотрите весь код внимательно.

Результат функции Достаточно_времени() должен быть больше нуля, что условие было логично.
 
MrBrooklin:

Спасибо, Петер! Мне уже помогли разобраться в данном вопросе.

Продолжаю изучение языка программирования MQL5 и сегодня выкладываю код скрипта, который является продолжением одного задания со стороны участников данной темы. Скрипт проверил на всех режимах. Всё работает, как положено. Входных параметров установил для начала по-минимуму.

С уважением, Владимир.

Опишите (напишите) что делает Ваш скрипт. И лучше всегда это делать вначале. Целевая, зачем. Какими задачами можно достичь цели. Как можно решить задачи, алгоритмы решения и далее код. И кстати разделение задач это и есть декомпозиция)

 
Fast235:

надо книгу писать. вместе всем нам

Это давно назревший вопрос. Для языка программирования MQL4 учебник написал Сергей Ковалёв, теперь для языка MQL5 нужно сподвигнуть ещё одного специалиста на такое благородное дело.

С уважением, Владимир.

Причина обращения: