Jump to content

Besteht Interesse an einem Lua-Tutorial?


Empfohlene Beiträge

Hallo Goetz und Andy

Vielen Dank für die Erklärung , ich wollte nicht in den Tutorium von Goetz fragen stellen . Aber hier wären Fragen dann möglich  die zu stellen für LUA - Sprachen .

Deshalb habe ich einen neuen Thread an Goetz gestellt , für eine direkte Frage .

Weitere Fragen würde ich dann hier in diesen Thread stellen . Damit es ein Thema zusammen bleiben kann und nicht viele kleiner Teilstücke ( Thread ) .

OK !

Vielen Dank und viele Grüße

H:xnS

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Modellbahnfreunde und Neo

Muss man noch solange warten bis zur neuen Version 5 von 3D-MBS , oder muss man das LUA-Programm installieren um damit zu Arbeiten .

Ein bisschen habe ich das Video verstanden , Englisch habe ich noch kaum drauf - weil ich es kaum brauchte . 

Vielleicht greife ich schon soweit vor , ist aber nicht meine Absicht .

Vielen Dank und Viele Grüße

H:xnS

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke, ihr könnt hier auch gerne mal Fragen über Begriffe aus der Informatik an sich stellen. Das Fachwörterbuch der Informatik wächst ungefähr so schnell wie die Bevölkerung von Indien. Dann liest man wieder mal einen Begriff, der richtig 'in Mode' kommt, kommt sich wieder saudumm vor, informiert sich und stellt fest: Da haben sie wieder einer Programmiertechnik einen Begriff verpaßt, die man sowieso schon seit 20 Jahren so anwendet und für die es eigentlich keine gescheite Alternative gibt. Es dient alles nur dazu mit noch weniger Worten einen Sachverhalt eindeutig zu beschreiben, damit Kommunikation zwischen den Programmierer effizienter wird. Aber dieser Flut stehe ich durchaus ziemlich kritisch gegenüber.

Habe hier noch zwei Begriffe:
Compilersprache - hierbei wird ein Programmtext direkt in Maschinencode übersetzt. Dazu übersetzt erst einmal ein Parser einen (meist mehrere) vom Programmierer geschriebene Programmtexte in sogenanntet Tokens. Anschließend wird alles noch in den echten Maschinencode übersetzt. Zu einem Compiler gehört noch ein Linker, der nach dem Kompilieren noch fertige Programmbibliotheken dazu 'linkt' - d.h. dazu bindet. Am Ende hat man dann ein direkt ausführbares Programm, wie z.B. eine .exe - was dann erstmal nur auf der Maschine läuft, für die es geschrieben wurde.
Interpretersprache - hier ist der Übersetzer nach Bildung der Tokens eigentlich schon bereit für den Ablauf des Programms. Tokens sind Daten, welche die Programmstruktur darstellen und beim Ablauf des Programms hangelt sich dann der Interpreter durch diese Tokens. Ist natürlich um einiges langsamer als eine exe. Beispiele dafür wären das alte BASIC, aber auch Java. Solche Programme stehen leichter auf verschiedenen Betriebssystemen (also Windows, Linux, Android etc.) und Prozessoren zur Verfügung, da hier nur der Interpreter angepaßt werden muß. Skriptsprachen (wie Lua) fallen auch hier drunter.

Wie diese Dinge intern funktionieren, das müssen nur die wissen, die die Dinger schreiben. Aber es ist kein Nachteil mal im Groben zu wissen, wie alles funktioniert.

@Goetz - hau feste dazwischen, wenn bei meinen Erklärungen mal was ganz daneben ist. Ich will Dir damit eher Arbeit abnehmen, als zusätzliche zu produzieren.

Gruß
  Andy

Bearbeitet von Andy
typo
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 9 Minuten schrieb Reinhard:

Ich denke, du machst das auch für völlige Neulinge sehr verständlich!

Das höre ich sehr gerne, denn genau das ist mein Ziel.

Deshalb lasse ich auch für den Anfang so viele, eigentlich wichtige Informationen weg. Es erleichtert meines Erachtens den Zugang. Und wer schon Erfahrung hat, der wird in den Beispielen vieles selbst erkennen. Zum Beispiel, dass man in Lua Variablen verwenden kann, ohne sie je deklariert zu haben. Und dass es egal ist, welcher Datentyp darin gespeichert wird.

 

vor einer Stunde schrieb Andy:

Ich will Dir damit eher Arbeit abnehmen

Das weiß ich zu schätzen, Andy.
Danke :-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 14 Stunden schrieb Goetz:

 

function Multiplikation(Zahl1, Zahl2)
    print(Zahl1, "mal", Zahl2, "ist", Zahl1 * Zahl2)
end

Sehr gut. Jetzt könnt ihr die Funktion mit jedem Zahlenpaar aufrufen

Multiplikation(6, 7)

 

 

Hallo Goetz,

wo liegt da der Fehler?

 

Gruß,

Michael

Syntax Error.JPG

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb m.weber:

wo liegt da der Fehler?

Da scheint ein unsichtbares Zeichen in Zeile 3 zu stecken. Eins, welches der Interpreter nicht versteht.

Kopiere diese Codebeispiele nicht aus meinen Postings! Erstens können durch die Textformatierung dabei Zeichen mit kopiert werden, die der Interpreter nicht schluckt.  Und zweitens lernst du nichts dabei. Wirklich überhaupt nichts.

Wenn du wirklich lernen willst, wie man Lua Code schreibt, dann

  1. Lies meine Erklärungen aufmerksam durch
  2. Bemüh dich, alles im Detail zu verstehen
  3. Geh auf die Lua Demo Seite und schreibe dort aus dem Kopf das Skript rein, was du ausprobieren möchtest.
    Dazu musst du dir mein Skript nicht merken. Wenn du verstanden hast, wie man es machen muss, dann kannst du das Skript für den Zweck auf der Demo Seite selbst entwerfen. Dieser eigene Entwurf ist der Weg, über den du es lernen musst. Der zeigt dir, wo du noch Verständnislücken und Unsicherheiten hast. Wenn du nur kopierst und einfügst, dann merkst du das nicht. Dann bildest du dir nur ein, du könntest es schon.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Götz,

ich habe da mal was ausprobiert, aber einen Fehler drinn den ich nicht finde. Vieleicht könntest Du, oder ein Anderer mal draufschauen.

Meine Programierung lautet:

a=0
Funktion
  a<=10
  Print(a+1)
end
Funktion
  a==10
  Print(VOLL)
end

Als Fehlermeldung kommt:

input:3: syntax error near 'a'

HG

Wüstenfuchs

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wo hast du die Idee her, dass du in deinem Skript einfach das Wort Funktion schreiben könntest?

Noch dazu groß geschrieben und in der deutschen Schreibweise mit einem k?

Weil dieses Wort in der zweiten Zeile unsinnig ist, stellt der Lua Interpreter in der Zeile 3 fest das etwas nicht stimmen kann. Deshalb meldet er, dass in der Nähe des a in Zeile 3 ein Syntaxfehler vorliegen muss.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Minuten schrieb Wüstenfuchs:

das sollte eigendlich nur eine trennung der einzelnen Abschnitte sein

Die darfst du nicht einfach so dazwischen schreiben. Wie soll Lua denn wissen, was das sein soll?

Für solche Zwecke gibt es in Lua die Möglichkeit, eine Zeile als Kommentar zu kennzeichnen. Das habe ich aber noch nicht erklärt.

 

vor 6 Minuten schrieb Wüstenfuchs:

Wenn ich also das Wort Funktion weglasse müsste es Funktionieren?

Nein, das wird auch dann nicht funktionieren.
Ich habe das, was du für dein Vorhaben benötigst, in meinem Tutorial noch nicht erklärt.

Außerdem musst du bei den Schreibweisen besser aufpassen. Du schreibst zum Beispiel print mit einem großen P am Anfang.
Lua kennt aber keine Funktion Print().
Es kennt nur eine Funktion print()

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Wüstenfuchs

Statt dich in Geduld zu üben, lies doch bitte noch ein- (oder zwei-)mal das, was ich bisher geschrieben habe.

Du hast da manches viel zu flüchtig gelesen und nicht richtig durchschaut. Und probiere ruhig fleißig weiter. Denn nur so erkennst du - wie eben gerade - wo noch Missverständnisse sitzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Goetz,

jetzt bitte nicht lachen. Ich habe rausgefunden, das die Steuereinheit von unseren neuen Kinderkarussel Lua als Programiersprache nutzt. Wenn ich also es schaffe ein entsprechendes Skript zu schreiben, könnte ich die Steuerung selber umprogramieren und wir müssten nicht jedesmal dafür bezahlen.

Eigendlich würden wir gerne noch den Nothalt mit einer sogenannten Kurzhaltfunktion erweitern, also wenn der Nothalt ausgelöst wird fällt nicht wie bisher die Fahrzeit auf null, sondern wird (soweit noch mehr als 30s auf der Uhr sind) Pausiert (sonnst macht das Karussel max noch zwei Runden) und kann dann entweder durch drücken der Starttaste vortgesetzt werden oder durch drücken der Stoptasste abgeworfen also gelöscht werden.

HG

Wüstenfuchs

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 8 Minuten schrieb Wüstenfuchs:

jetzt bitte nicht lachen.

Ganz bestimmt nicht.

Lua ist eine weit verbreitete Skriptsprache, die in vielen Bereichen eingesetzt wird. Da ist es nicht verwunderlich, dass man sich auch an solcher stelle findet.

Aber ich möchte dir ganz dringend davon abraten, selbst in diese Steuerungssoftware einzugreifen! Das wäre verantwortungslos, weil du überhaupt nicht abschätzen kannst, welche fatalen Folgen ein Fehler haben könnte. Bitte, überlass das ausschließlich den Profis! Die bekommen aus gutem Grund Geld für ihre Arbeit.

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

@Goetz,

vor 6 Minuten schrieb Goetz:

Aber ich möchte dir ganz dringend davon abraten, selbst in diese Steuerungssoftware einzugreifen! Das wäre verantwortungslos, weil du überhaupt nicht abschätzen kannst, welche fatalen Folgen ein Fehler haben könnte. Bitte, überlass das ausschließlich den Profis! Die bekommen aus gutem Grund Geld für ihre Arbeit. 

Natürlich würde eine Änderung der Steuerung von uns erst nach einer gründlichen überprüfung eingesetzt. Das Orginalskript haben wir als bakup auf USB-Stick, also könnte dieses jederzeit wider aufgespielt werden. Bisher waren uns aber die gut 600€ für die Änderung zuviel, so dass diese bisher nicht ausgeführt wurde.

HG

Wüstenfuchs

PS: Warum kann das Heutzutage nicht mehr so einfach sein, wie bei unseren alten Aotoskooter. DA reichten vier Taster und ein par Relais für die Fahrsteuerung.:(

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Minuten schrieb Wüstenfuchs:

Bisher waren uns aber die gut 600€ für die Änderung Zuviel

Ich verstehe, dass das für euch viel Geld ist.

Aber es ist gerechtfertigt. Das müssen Könner machen und die bekommen zurecht gutes Geld für ihr Fachwissen und ihre Leistung.

Wenn du das selber machst, dann wird die Sache nur noch teurer. Denn das, was du programmierst, wird die Prüfung nicht bestehen. Und dann hast du zu den Kosten für die Änderung obendrein die Kosten für die Prüfung deines Versuchs.

Glaub mir, Wüstenfuchs: Das ist nur was für Profis.

 

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Andy,

vor 2 Minuten schrieb Andy:

...und verrat den Zusammenhang zwischen Karussell und MBS Deiner Tocher nicht, sonst macht die da eine Achterbahn draus! Gut, dass sie Pause macht... :P

mal abgesehen das sie keinen Shlüssel für den Steuerungsschrank hat, überschätzt Du da wohl ihre "Dunkle Seite".:D

HG

Wüstenfuchs

(Der sich jetzt erstmal ein par "blaue Bohnen" um die Ohren fliegen lässt.B| Bin dieses Wochenende mit den Schießwagen unterwegs.)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, Safe ist gut! Ihre Vorliebe für Geschwindigkeit kennen wir ja und ihre Fähigkeiten auch. Und sie lernt bestimmt schneller als Du. Die tuned auch noch den FU, wenn's sein muß.
Viel Spaß am Wochenende. ;)

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Götz,

so langsam habe ich es kapiert, wie ich in Lua schreiben muss. Zumindest haben meine letzten versuche keine Fehlermeldung mehr ergeben (wie schon fast üblich war Heute beim Komerz kaum was los, da konnte ich so nebenher mal einiges probierenB|).

HG

Wüstenfuchs

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Goetz,

nachdem ich mir nun Dein begonnenes Tutorial angeschaut habe, kann ich nur sagen:  TOP!  (y)
Und absolut Wiki-geeignet!

Wenn Du dann am Ende noch ein kleines Inhaltsverzeichnis voranstellst, wird das ein wirklich schönes Nachschlagewerk.

Viele Grüße
BahnLand

 

 

Bearbeitet von BahnLand
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe gerade mal die Vermischung von integer und float getestet:

a = 5
b = 1.5
c = a + b
print(c)
print(3*b)
print(a*b)
a = a*b
print(a)
print(type(a))
print(type(b))

Offensichtlich paßt er es einfach an und der Typ ist einfach 'number' für ihn.

Den Taschenrechner-Testtrick besteht er auch:

a = 10
a = a/3
a = a*3
print(a)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...