Найти минимальное среди нескольких значений - страница 5

 

Нажимаем F1 и читаем:

Справочник MQL4 - Основы языка - Синтаксис

Синтаксис языка программирования торговых стратегий MQL4 синтаксически очень похож язык программирования Си, за исключением некоторых возможностей:

  • отстутствует адресная арифметика;

  • отсутствует оператор do ... while;

  • отсутствует оператор goto ...;

  • отсутствует операция [условие]?[выражение 1]:[выражение 2];

  • отсутствуют сложные типы данных (структуры);

  • невозможны сложные присваивания. Например, val1=val2=0; arr[i++]=val; cond=(cnt=OrdersTotal)>0; и т.п.;

  • вычисление логического выражения производится до конца и не прерывается досрочно.

 
SK. писал (а) >>

Я предлагаю придерживаться терминологии, указанной в учебнике.

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

В учебнике многократно упоминается понятие переменная, в том определении, которое дано в словаре терминов.

Зачастую речь идёт о присвоении переменной некоторого одного значения.

Если согласиться, что массив - это контейнер = одна переменная, то возникает терминологическое разногласие: массиву нельзя присвоить значение. Значение можно присвоить только элементу массива и в этом смысле каждый элемент массива являет отдельную переменную.

Да, нельзя, но только из-за бедности языка MQL. Впрочем.... ArrayCopy и т.п. .

Я не согласен с утверждением, что массив это набор переменных.

Переменная -- это поименованные данные. А индекс -- это положение элемента данных в общей совокупности данных переменной, в данном случае массива.

 
VBAG писал (а) >>

Нажимаем F1 и читаем:

Кстати, а где можно почитать стандарт языка MQL4?
 
TheXpert писал (а) >>

Я не согласен с утверждением, что массив это набор переменных.

Переменная -- это поименованные данные. А индекс -- это положение элемента данных в общей совокупности данных переменной, в данном случае массива.

В языке программирования (т.е. в такой области деятельности, где закон зависит от воли человека) человек может определять термины по своему усмотрению. В конце концов это дело вкуса.

Но повторяю, в Вашей терминологии не пройдут некоторые правила, содержащие фразы "переменная", "присвоение значения переменной" и т.п. В этой трактовке у читателя мгновенно возникнет вопрос: как присвоить значение массиву?

Чтобы не возникало путаницы, все термины выверены в отношении друг друга и в контексте учебника употребляются формулировки в рамках терминов, указанных в приложении (https://book.mql4.com/ru/appendix/glossary).

 
TheXpert писал (а) >>
Кстати, а где можно почитать стандарт языка MQL4?

Именно стандарт языка MQL4, я не знаю. Это к разработчикам.

Но думаю такого единого документа в природе нет, да и не будет.

 
термин "набор данных" был введен в оборот международным соглашением CODASIL
(производные - COBOL, SQL)
Bпервые в железе термин "набор данных" был реализован IBM в проекте "серия 360"
изюминка того времени состояла в том, что можно было обращаться не только к элементу набора (как к массиву),
но, главное новшество (!) можно было обратиться к байтам элемента набора как к данным.
Сравните - массив это таблица/список, а набор данных может иметь структуру, не обязательно линейную.
Например: набор данных может иметь заголовок и символы окончания..
следствие этого новшества - набор данных мог содержать элементы разной длины, более того стали возможны элементы переменной длины.
например "связные списки".
В частности: "структура" это тоже набор данных.
замечание: это было сделано до появления структурного программирования!!!! на базе развитой адресной арифметики.
и - задолго до появления языка Си.
"Контейнер" это детище "объектного подхода"
Одно из главных отличий контейнера - защита данных, yправление данными, т.е. контейнер ведет себя как объект.
Изменение данных находящихся в контейнере это не адресная арифметика, а операция транзакции или просто транзакция)))
транзакции могут быть скрыты от пользоателя, например переменные Visual Basic это контейнеры, но программист об этом не знает.
 
SK. писал (а) >>

Но повторяю, в Вашей терминологии не пройдут некоторые правила, содержащие фразы "переменная", "присвоение значения переменной" и т.п. В этой трактовке у читателя мгновенно возникнет вопрос: как присвоить значение массиву?

Ваша мысль понятна, действительно нельзя отождествлять понятие "массив" и понятие "переменная".

Но с другой стороны, в учебнике дано такое определение: "Массив - это сгруппированный по месту распределения набор значений однотипных переменных, имеющих общее название."

Но получается, что у этих переменных, о которых идет речь - то есть у элементов массива - не одно название, а разные, отличающиеся только значением индекса. Как вобщем-то и должно быть, когда речь идет переменных. Не может быть двух переменных с одинаковым названием.

Я для себя буду пользоваться таким определением: "Массив - это это сгруппированный по месту распределения набор значений однотипных переменных, имеющих в качестве названия название массива + индекс элемента".

Что скажут уважаемые мэтры? А то может опять что-нибудь не так понимаю...


 
И все же один элемент массива имеет не только такую характеристику, как значение, но еще и объем занимаемой памяти и этот размер постоянен - тоесть все признаки простой переменной. Т.о. массив это набор индексированных переменных с одинаковым именем. Что касается просто набора значений, есть еще такие структуры переменого размера, как в MIDI файлах.
 
Integer писал (а) >>
И все же один элемент массива имеет не только такую характеристику, как значение, но еще и объем занимаемой памяти и этот размер постоянен - тоесть все признаки простой переменной. Т.о. массив это набор индексированных переменных с одинаковым именем. Что касается просто набора значений, есть еще такие структуры переменого размера, как в MIDI файлах.

ну да, элемент массива - это переменная со всеми её признаками. Но название этой переменной, название другой такой же переменной и название всего массива - не одно и то же.

Название элемента массива = название массива + индекс... я так понимаю... Таким образом все элементы массива имеют разные имена, как и положено разным переменным.

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