Обсуждение статьи "Изучение MQL5 — от новичка до профи (Часть II): Базовые типы данных и использование переменных"

 

Опубликована статья Изучение MQL5 — от новичка до профи (Часть II): Базовые типы данных и использование переменных:

Продолжение серии для начинающих. Здесь мы рассмотрим, как создавать константы и переменные, записывать дату, цвета и другие полезные данные. Научимся создавать перечисления вроде дней недели или стилей линий (сплошная, пунктирная и т.д.). Переменные и выражения - это база программирования. Они обязательно есть в 99% программ, поэтому понимать их критически важно. И поэтому, если вы - новичок в программировании - прошу. Уровень знания программирования: очень базовый - в пределах моей предыдущей статьи (ссылка - в начале).

Сегодня мы поговорим о том, как хранятся данные в оперативной памяти. И хранятся в памяти данные в переменных или константах.

Отличия очевидны:

  • переменные меняются, программа имеет право их перезаписывать;
  • константы всё время жизни программы остаются неизменными, и если программист попытается перезаписать их значения, он получит сообщение об ошибке компиляции.

В остальном их смысл абсолютно схож: это некоторая область оперативной памяти, которая хранит данные, а не инструкции процессора. Как правило, эти области памяти люди называют какими-то осмысленными словами, чтобы самим понимать, зачем мы "это" здесь написали.

Компилятор потом эти имена, конечно, уберёт, но, если у нас есть доступ к исходному коду (нашему текстовому файлу), мы всегда в будущем по имени сможем понять, для чего нужна та или иная переменная. Если, конечно, они описаны правильно.

В некоторых случаях константы не имеют имён. Программист просто пишет, что именно он хочет обработать (как, например, те строки, которые мы передавали функции Print). Такие безымянные константы называют литералы.

В этой статье мы подробно рассмотрим основные типы данных, способы описания переменных и констант и основные операторы, которые может использовать программист для создания своих алгоритмов. Это в свою очередь, позволит создавать более полезные программы, чем просто "Hello, World".

Автор: Oleh Fedorov

 
Спасибо за попытку... для меня лично это очередная серия абсолютно бесполезных статей, как бы я не хотел научиться...
 
Константин Сандалиди #:
Спасибо за попытку... для меня лично это очередная серия абсолютно бесполезных статей, как бы я не хотел научиться...

Не соглашусь. Нормальная статья, в которой всё подробно расписано.

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

 
Константин Сандалиди #:
Спасибо за попытку... для меня лично это очередная серия абсолютно бесполезных статей, как бы я не хотел научиться...
Константин, а можете развернуть? Почему "бесполезных"? И что нужно, чтобы наоборот? Сразу скажу, скорость выхода хочу сильно повысить. Есть что-то ещё?
 

Поддержу автора, хорошая статья. Сам прочитал с интересом просто для того, чтобы еще раз освежить в памяти то, что уже известно.

Также приходилось сталкиваться с людьми, у которых вызывало разочарование выяснение, что для овладения навыками программирования понадобится приложить гораздо больший объем усилий и временных затрат на обучение, чем им представлялось изначально. Тут успех в большей мере зависит от конкретного человека, но если не опускать руки и продолжать находить и изучать другие материалы для обучения, то всё возможно.

 
Oleh Fedorov #:
Константин, а можете развернуть? Почему "бесполезных"? И что нужно, чтобы наоборот? Сразу скажу, скорость выхода хочу сильно повысить. Есть что-то ещё?

Потому что я не смог самостоятельно освоить MQL 4, так же не могу самостоятельно освоить  MQL 5. И что бы я ни читал, не смотрел мне не понятно! Уровень моей подготовки 0!!! А все статьи для продвинутых пользователей, которые могут просто в документации посмотреть... Перечитывание непонятного по нескольку раз это тупиковая ветвь обучения (познания), "учебник" С.Ковалева я выучил наизусть как стихотворение мог рассказать, но я не понимаю про что в нем говорится (пишется)... Тем более не могу хранить в голове непонятное и использовать на практике. Возможно конечно же есть уникальные личности, которые налету все схватывают, но у меня это не так. Только фундаментальные знания могу помнить и использовать. Учиться по прежнему хочу, но не могу найти УЧИТЕЛЯ.

 
Константин Сандалиди #:

Потому что я не смог самостоятельно освоить MQL 4, так же не могу самостоятельно освоить  MQL 5. И что бы я ни читал, не смотрел мне не понятно! Уровень моей подготовки 0!!! А все статьи для продвинутых пользователей, которые могут просто в документации посмотреть... Перечитывание непонятного по нескольку раз это тупиковая ветвь обучения (познания), "учебник" С.Ковалева я выучил наизусть как стихотворение мог рассказать, но я не понимаю про что в нем говорится (пишется)... Тем более не могу хранить в голове непонятное и использовать на практике. Возможно конечно же есть уникальные личности, которые налету все схватывают, но у меня это не так. Только фундаментальные знания могу помнить и использовать. Учиться по прежнему хочу, но не могу найти УЧИТЕЛЯ.

До УЧИТЕЛЯ мне, как до Пекина ползком, но кое-что уже смогу рассказать. Сам был в такой же ситуации, несколько лет назад, когда начинал изучать язык программирования MQL5 с полного нуля.

Вопрос №1: что именно Вам не понятно в изучении языка программирования? Назовите, хотя бы, одну проблему и конкретно опишите, что в ней непонятного.

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

 
Константин Сандалиди #:

Потому что я не смог самостоятельно освоить MQL 4, так же не могу самостоятельно освоить  MQL 5. И что бы я ни читал, не смотрел мне не понятно! Уровень моей подготовки 0!!! А все статьи для продвинутых пользователей, которые могут просто в документации посмотреть... Перечитывание непонятного по нескольку раз это тупиковая ветвь обучения (познания), "учебник" С.Ковалева я выучил наизусть как стихотворение мог рассказать, но я не понимаю про что в нем говорится (пишется)... Тем более не могу хранить в голове непонятное и использовать на практике. Возможно конечно же есть уникальные личности, которые налету все схватывают, но у меня это не так. Только фундаментальные знания могу помнить и использовать. Учиться по прежнему хочу, но не могу найти УЧИТЕЛЯ.

Сколько раз убеждался, что в непонятном материале, если он излагается последовательно, обычно есть какой-то фрагмент, на котором происходит "затык": до него - всё понятно, а после - тёмный лес... Недопонятое понятие, недоусвоенная концепция...

И как только этот барьер проходится, весь материал вдруг становится кристально ясным - до нового "затыка"...

Посему задам пару вопросов, которые, естественно, можно самостоятельно развивать до бесконечности. :-)

  1. Понятно ли Вам, что делает программист в принципе? (Если нет, можно глянуть в мою первую статью этого цикла - и позадавать там вопросы в комментах по непонятным фразам).
  2. Понятно ли Вам, куда складывать текстовые файлы, которые Вы пишете? И что с ними делать после написания?
  3. Понятна ли Вам концепция функции? Концепция переменной?

Если ответы на все вопросы - "да", то уровень подготовки у Вас уже НЕ 0!!! Если хоть на один вопрос не знаете ответа или ответ "нет" - попробуйте еще раз медленно перечитать хоть начало Ковалева, хоть мои уже вышедшие статьи...

И - практикуйте! Это важно. Открывайте редактор, пишите код примеров (можно копировать, но лучше самостоятельно). Компилируйте и проверяйте, что получилось.

А после этого задавайте вопросы. Хоть в моих темах, хоть в параллельных на форуме... По запросу "вопросы новичков" поиск по сайту выдал мне 202 страницы ссылок, но никто не запретит Вам создавать свою тему, если она не дублирует существующие.

Изучение MQL5 от новичка до профи (Часть I): Начинаем программировать
Изучение MQL5 от новичка до профи (Часть I): Начинаем программировать
  • www.mql5.com
Эта статья является вводной для целого цикла статей о программировании. Здесь предполагается, что читатель вообще не сталкивался с программированием раньше. Поэтому начинаю я с самых основ. Уровень знания программирования: абсолютный новичок.
 
Превосходно. С нетерпением жду следующего выпуска
 

Мдя... Очередной копипаст справки. Что, реально за это 200$ платят?

void OnStart()
{
   Print(-1<1u);
   Print(-1*1ull);
}

Ну и кто из неофитов, после прочтения разделов о литералах и о приведении типов, сможет, без запуска этого скрипта, сказать, что будет на экран выведено?

PS. Тут никакого подвоха, просто знание литералов и правил преобразования типов.

PSS. И да, это вопрос из разряда вопросов на джунском собеседовании.

 
Vladimir Simakov #:

Мдя... Очередной копипаст справки. Что, реально за это 200$ платят?

Ну и кто из неофитов, после прочтения разделов о литералах и о приведении типов, сможет, без запуска этого скрипта, сказать, что будет на экран выведено?

PS. Тут никакого подвоха, просто знание литералов и правил преобразования типов.

PSS. И да, это вопрос из разряда вопросов на джунском собеседовании.

Кхм... Стесняюсь спросить, но придется...

  • А насколько часто такие конструкции встречаются в реальном коде MQL5?
  • "Джунское собеседование"... Значит ли это, что лично Вы встречались с большими конторами, одним из основных направлений у которых является MQL? (Лично мне до сих пор не приходилось).
  • А во всех ли с-подобных языках этот код выдаст одинаковые результаты?

Короче, а нафига неофиту настолько глубокое понимание литералов?


P.S. Я лично, хоть и далеко не неофит, провалил Ваш тест, ни на один вопрос правильно не ответив. В учебниках что-то похожее вроде встречал - то ли в Java, то ли в PHP - но это было так давно, и настолько не соответствует практическому коду, который приходилось читать или писать до сего дня... Не быть мне джуном в Вашей конторе. И... что?

P.P.S. Думаю, что если Вы напишете статью о литералах, она может оказаться полезной не только мне. ;-) Особенно если Вы поделитесь опытом, которого нет в справке... Правда, недокументированные возможности меня обычно ну очень сильно смущают, ибо слишком часто внезапно меняются в новых версиях, но, мало ли... Вдруг это будет действительно важно или хотя бы полезно?