[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 1087

 
itum:

ICH HABE EIN PROBLEM ....

Wenn ich in den Terminaleinstellungen Mail einrichte, verwende ich unter SMTP smtp.gmail.com:25

Ich erhalte die Fehlermeldung - Mail: 530 5.7.0 Muss zuerst einen STARTTLS-Befehl eingeben. l3sm2329679fan.0

Der SMTP-Server auf dem mail.com-Server erfordert eine RFS-2554-Authentifizierung. Was ist es, ich weiß nicht - aber in der Fledermaus hatte ich zu duplizieren Passwort und Login-Box auf mail.ru, dass konnekt rollte. Ohne funktioniert es nicht mehr - vor ein paar Jahren hat es noch funktioniert, und dann haben sie dort etwas geändert. Versuchen Sie smtp.rambler.ru mit demselben Port 25 - vielleicht funktioniert es.
 

Mann, ich bin verwirrt von den Begriffen. Was ich sagen wollte, ist, dass, wenn die Hilfe uns strikt an eine Stelle in der Programmstruktur bindet, an der eine statische Variable deklariert und initialisiert werden muss, und zwar nur einmal, dann sollten alle anderen Versuche, dieser Variable einen anderen Wert zuzuweisen oder ihr überhaupt einen Wert zuzuweisen, vom Compiler als Syntaxfehler behandelt werden. Mit anderen Worten: Statische Variablen dienen gemäß den Definitionen in der Hilfe als Container für Konstanten und können während der Programmausführung nicht verändert werden. Voller Stopp. Aber leider sind wir gerade auf 2 Verstöße gegen diese Regel gestoßen. Es stellt sich heraus, dass man eine statische Variable überall deklarieren und jederzeit neu initialisieren kann. Das hätten sie in die Hilfe schreiben sollen.

Wir haben auch herausgefunden, dass diese Variable auf der Ebene des Hauptprogramms global ist, auch wenn sie in einem Unterprogramm deklariert wird.

Dies ist das erste Mal, dass ich auf die Torheit stoße, eine globale Variable innerhalb eines Unterprogramms zu deklarieren - es ist verwirrend, den Programmcode zu verstehen. Variablen, die innerhalb von Unterprogrammen deklariert werden, haben eine Lebensdauer, die gleich oder kleiner als die des Unterprogramms ist. Es ist ein Klassiker. Man kann sich nur fragen, warum die Metaquotes die Perversität benötigten, eine globale Variable innerhalb von Unterprogrammen zu deklarieren.

 
khorosh:

Im Tutorial gibt es auch ein Beispiel für die Verwendung einer statischen Variablen, aus dem hervorgeht, dass sie einmal initialisiert wird, da sonst der Tick-Zähler nicht funktionieren würde.


Der Autor des Tutorials hat die Hilfsregel gebrochen - eine statische Variable wird vor der init()-Funktion initialisiert. Die Frage ist, wie können wir eine Variable initialisieren, die noch nicht deklariert wurde? Das stimmt - das können Sie nicht. Folglich muss die statische Variable vor dem init()-Block deklariert werden. Es ist ein einfacher kategorischer Syllogismus. Wenn A, dann B. A, also B ist der Behauptungsmodus des kategorischen Syllogismus. Wenn es ein Verbot gibt, eine nicht initialisierte Variable zu initialisieren (A), dann muss sie zuerst deklariert werden (B), das Verbot besteht (A), also ist eine vorherige Deklaration der Variable notwendig (B).

Es stellt sich heraus, dass der Autor die statische Variable nicht nur nicht vor dem init()-Block initialisiert, sondern sie auch an der falschen Stelle im Programm deklariert hat, wo die Hilfe benötigt wird!

 

Scheiße, da liegt es begraben. Ich habe es gefunden! https://docs.mql4.com/ru/basis/variables/initialization

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

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

Die Autoren der Hilfe sind verwirrt über den Begriff "Initialisierung". Der erste Absatz ist richtig - der Begriff "Initialisierung" wird im Sinne einer Zuweisungsoperation verwendet - das heißt, eine Variable mit einem Wert zu initialisieren bedeutet, ihr einen Wert zuzuweisen. Im zweiten Absatz hat der Autor der Hilfe statt "Deklaration einer Variablen" ("Definition einer Variablen") fälschlicherweise den Begriff "Initialisierung" verwendet. Daher sollte das Urteil "Die Initialisierung globaler und statischer Variablen wird einmal durchgeführt." lauten: "Die Deklaration globaler und statischer Variablen wird einmal durchgeführt." Andernfalls wird das Ganze ad absurdum geführt. Wenn die Initialisierung nur einmal möglich ist, können die Werte dieser Variablen während der Laufzeit nicht geändert werden. Entwickler, bitte beheben Sie diese und die in mehreren Beiträgen oben genannten Fehler!

P.S.

Ich habe "Variableninitialisierung" mit "Variablendeklaration" verwechselt. Ich habe in den obigen Beiträgen eine Menge falscher Begriffe verwendet. :(

 
drknn:

Scheiße, da liegt es begraben. Ich habe es gefunden! https://docs.mql4.com/ru/basis/variables/initialization

Die Autoren der Hilfe sind verwirrt über den Begriff "Initialisierung". Der erste Absatz ist richtig - der Begriff "Initialisierung" wird im Sinne einer Zuweisungsoperation verwendet - das heißt, eine Variable mit einem Wert zu initialisieren bedeutet, ihr einen Wert zuzuweisen. Im zweiten Absatz hat der Autor der Hilfe statt "Deklaration einer Variablen" ("Definition einer Variablen") fälschlicherweise den Begriff "Initialisierung" verwendet. Daher sollte das Urteil "Die Initialisierung globaler und statischer Variablen wird einmal durchgeführt." lauten: "Die Deklaration globaler und statischer Variablen wird einmal durchgeführt." Andernfalls wird das Ganze ad absurdum geführt. Wenn die Initialisierung nur einmal möglich ist, können die Werte dieser Variablen während der Laufzeit nicht geändert werden. Entwickler, bitte beheben Sie diese und die in mehreren Beiträgen oben genannten Fehler!

P.S.

Ich habe "Variableninitialisierung" mit "Variablendeklaration" verwechselt. Ich habe in den obigen Beiträgen eine Menge falscher Begriffe verwendet. :(

Die Tatsache, dass die Initialisierung nur einmal durchgeführt wird, bedeutet nicht, dass eine Zuweisungsoperation, die den Wert einer statischen Variablen ändern kann, nicht während der Programmausführung durchgeführt werden kann. Der Unterschied zwischen diesen Operationen besteht darin, dass bei der Initialisierung die Deklaration des Variablentyps mit der Zuweisung ihres ursprünglichen Wertes entweder explizit oder implizit kombiniert wird. Was die Deklaration einer statischen Variablen vor init() oder innerhalb einer Funktion betrifft, so kann diese Variable nur von der Funktion aus aufgerufen werden, in der sie deklariert wurde, oder von jeder anderen Funktion aus.
 

Frohe Feiertage für alle. Hilf einem Dummkopf! Bitte beraten Sie mich über einen guten EA. Cents Konto Depo für jetzt 60$

 
khorosh:
Da die Initialisierung eine einmalige Operation ist, folgt daraus nicht, dass eine Zuweisung, die den Wert einer statischen Variablen ändern kann, nicht mitten in der Programmausführung durchgeführt werden kann. Der Unterschied zwischen diesen Operationen besteht darin, dass bei der Initialisierung die Deklaration eines Variablentyps mit der Zuweisung seines ursprünglichen Wertes kombiniert wird, entweder explizit oder implizit. Die Deklaration einer statischen Variablen vor init() oder innerhalb einer Funktion hat zur Folge, dass diese Variable nur aus der Funktion, in der sie deklariert wurde, oder aus einer anderen Funktion aufgerufen werden kann.


Verstehen Sie, dass die Konzepte der Zurechnung und der Identifizierung zwar gleichwertig sind, ihr Umfang aber derselbe ist! Das bedeutet, dass die beiden Begriffe synonym sind!!!

Gehen wir der Frage näher auf den Grund. Wir öffnen ein englisches Online-Wörterbuch. Der Versuch, den Begriff "Identifikation" zu übersetzen, führt zu nichts - er bedeutet "Identifizierung". Das Wort ist nicht muttersprachlich, so dass wir nicht verstehen können, was es im Online-Wörterbuch bedeutet. Gehen wir zu Google und laden wir das Buch "English-Russian Dictionary of Programming" von Borovsky herunter. Auf Seite 128 finden wir Folgendes: http://s2.ipicture.ru/uploads/20101230/XwOJxmkn.jpg Es bleibt nur noch zu klären, was eine Identität ist. Öffnen Sie das Wörterbuch von Ozhegov. Finden Sie den Wörterbucheintrag:

Identität, -a und Identity. -a, vgl. 1. Die völlige Ähnlichkeit, der Zufall. D. Ansichten. 2. (Identität). In der Mathematik: Gleichheit, die für alle numerischen Werte der sie bildenden Größen gilt. II Adjektiv identisch, -a, -a, und identisch, -a, -a (zum 1. Sinn). Identische algebraische Ausdrücke.

Das gilt es zu beweisen! Da der Wert der Variablen nach einer Zuweisung genau derselbe ist wie der, der ihr gerade zugewiesen wurde, können wir daraus schließen, dass die Identifizierung einer Variablen und die Identifizierung einer Variablen ein und dieselbe Operation ist, die genau der Zuweisungsoperation entspricht. Daraus ergibt sich zwangsläufig die Schlussfolgerung: Wenn eine Regel einer Variablen nur eine einzige Kennung zuweist, und zwar an einer genau festgelegten Stelle in der Programmstruktur, dann haben wir kein Recht, dieser Variablen (nach ihrer Kennung) einen anderen Wert zuzuweisen, denn der Begriff der Kennung und der Begriff der Zuweisung sind synonym! Voller Stopp.

 
drknn:


Machen Sie sich klar, dass die Konzepte der Zurechnung und der Identifizierung zwar gleichwertig sind, aber auch den gleichen Anwendungsbereich haben! Das bedeutet, dass die 2 Begriffe synonym sind!!!

Wir gehen der Frage auf den Grund, bis zu ihrer ursprünglichen Quelle. Öffnen Sie das englische Online-Wörterbuch. Der Versuch, den Begriff Identifikation zu übersetzen, führt zu nichts - er wird mit Identifikation übersetzt. Das Wort ist nicht muttersprachlich, so dass wir nicht verstehen können, was es im Online-Wörterbuch bedeutet. Sie gehen zu Google und laden das Buch "English-Russian Dictionary of Programming" von Borovsky herunter. Auf Seite 128 finden wir Folgendes: http://s2.ipicture.ru/uploads/20101230/XwOJxmkn.jpg Es bleibt nur noch zu klären, was eine Identität ist. Öffnen Sie Ozhegovs Wörterbuch. Finden Sie den Wörterbucheintrag:

Was war zu beweisen! Da der Wert der Variablen nach der Zuweisungsoperation genau derselbe ist wie der Wert, der ihr gerade zugewiesen wurde, kommen wir zu dem Schluss, dass die Identifizierung einer Variablen und die Identifizierung einer Variablen ein und dieselbe Operation sind, die genau dieselbe ist wie die Zuweisungsoperation. Daraus folgt : Wenn eine Regel einer Variablen nur eine einzige Kennung zuweist, und zwar an einer genau festgelegten Stelle in der Programmstruktur, dann können wir dieser Variablen (nach der Kennung) keinen anderen Wert zuweisen, denn das Konzept der Kennung und das Konzept der Zuweisung sind synonym! Voller Stopp.

Wollen Sie damit sagen, dass Initialisierung und Identifizierung das Gleiche sind?
 
khorosh:
Wollen Sie damit sagen, dass Initialisierung und Identifizierung das Gleiche sind?

Nein, stopp - verwirren Sie mich nicht. Warten Sie einen Moment.
 
drknn:

Nein, stopp - verwirren Sie mich nicht. Warten Sie einen Moment.
Ursprünglich sprachen Sie von Initialisierung, aber aus irgendeinem Grund sind Sie zur Identifizierung übergegangen.