Die Skriptsprache Lua. Uwe Berger
|
|
|
- Ralf Reuter
- vor 8 Jahren
- Abrufe
Transkript
1 Uwe Berger
2 Uwe Berger Beruf: Softwareentwickler Freizeit: u.a. mit Hard- und Software rumspielen Linux seit ca BraLUG e.v. Uwe Berger;
3 Meine Motivation... Uwe Berger;
4 Etwas Geschichte Erste Version: 1993 Aktuelle Version: Computer Graphics Technology Group der Päpstlichen Katholischen Universität von Rio de Janeiro Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo Lizenz: bis Version 4 eigene BSD-Lizenz ab Version 5 MIT-Lizenz Webseite: Uwe Berger;
5 Was ist Lua, wer benutzt es? Eine Scriptsprache mit folgen Eigenschaften: Erweiterbar Einfach Effizient Portabel Lua-Benutzer benutzen... Lua als C-Bibliothek Lua als Erweiterungssprache in Anwungen: Lua als eigenständige Skriptsprache Uwe Berger;
6 Wer mitmachen möchte... Browser: Kommandozeile: $ lua Lua Copyright (C) Lua.org, PUC-Rio > print("lua ist cool") Lua ist cool! ^C $ $ lua hello_world.lua Hello World! $ Uwe Berger;
7 Einige Code-Beispiele... Lua-Manual: Ausgewählte Skript-Beispiele: Uwe Berger;
8 Einige lexikalische Konventionen Bezeichner: [a-za-z_][a-za-z_0-9]* Lua arbeitet case-sensitive Reservierte Schlüsselwörter sind: and elseif function local repeat until break goto nil return while do false if not then else for in or true Kommentare: -- Das ist ein einzeiliger Kommentar... --[[...und dies hier ist ein mehrzeiliger Kommentar --]] Uwe Berger;
9 Variablentypen Lua ist eine dynamisch typisierte Sprache Grundtypen sind nil, boolean, number, string, function, table, thread, userdata Ermittlung des (momentanen) Typs type() print(type(a)) a = 42 print(type(a)) a = "Antwort "..a print(type(a)) a = (a==a) print(type(a)) a=42; a=tostring(a) print(type(a)) - nil - number - string - boolean - string Uwe Berger;
10 Operatoren Aritmetische Operatoren: +, -, *, /, ^, %, - (als Negation) Vergleichsoperatoren: <, >, <=, >=, ==, ~= Logische Operatoren: and, or, not Zusammensetzung:.. (Doppelpunkt) Längenoperator: # Vorrangregeln sind die Üblichen, wie bei anderen Sprachen... (Ausnahmen? RTFM) Uwe Berger;
11 Zuweisung a=1 b=a - b=1 c=a+b - c=2 s="hallo" t=s.." Welt!" - t="hallo Welt!" t=t.." "..a - t="hallo Welt! 1" - mal etwas cooles... a, b, c = 1, 2, 3 - a=1, b=2, c=3 a, b, c = 1, 2 - a=1, b=2, c=nil a, b, c = 0 - Achtung! a=0, b=nil, c=nil a, b = 1, 2, 3 - die 3 wird "vergessen" a=1 b=2 a, b = b, a - a=2, b=1 Uwe Berger;
12 Tabellen, Arrays, Listen Tabellen ist der Mechanismus zur Darstellung von Daten (Arrays, Mengen, Datensätze, -strukturen etc.) Tabellen werden durch assoziative Arrays dargestellt Assoziative Arrays werden durch Zahlen, Strings u.ä. indiziert Tabellen sind interne Lua-Objekte; Variablen verwalten nur Referenzen auf diese Objekte Existiert keine gültige Referenz mehr, gibt Lua automatisch den entsprechen Speicher frei... RTFM Uwe Berger;
13 Tabellen, Arrays, Listen a={} z={5, 4, 3, 2, 1} zw={"eins", "zwei", "drei", "vier"} print(z[2], zw[#zw]) - 4 vier a={1, 2, 3, 4} b=a a[3]=nil print(b[3]) - nil a={null=0} a["eins"]=1 a.zwei=2 print(a.null, a.eins, a["zwei"]) a={x=12, y=34} c={a, 42} print(c[1].x, c[2]) b={xy=a, z=56} print(b.xy.x, b["xy"].y, b.z) Uwe Berger;
14 Kommandozeile als Tabelle > lua script.lua aaa bbb -- script.lua print(a[-1]) --> lua print(a[0]) --> script.lua print(a[1]) --> aaa print(a[2]) -> bbb ---> uebergabeparameter.lua ( Uwe Berger;
15 Kontrollstrukturen - if then - (elseif) - else -- if val == 42 then print("das ist die Antwort!") if val ~= 42 then print(val.." ist ungleich 42") else print(val.. "ist gleich 42") if val == nil then print(val.." hat keinen Wert.") elseif val == 42 then print(val.." ist die Antwort!") elseif val == 0 then print("der Wert ist Null.") else print("war es alles nicht...!") - Achtung... if val then print("val ist nicht nil false!") Uwe Berger;
16 Kontrollstrukturen - - while - do -- a={"eins", "zwei", "drei", "vier"} i=1 while a[i] do print(a[i]) i=i repeat - until - x=42 repeat x=x/3 print(x) until x<1 Uwe Berger;
17 Kontrollstrukturen - - numerisches for -- for i=1, 10 do print(i) for i=10, 1, -1 do print(i) a={"eins", "zwei", "drei", "vier"} for i=1, #a, 1 do print(a[i] - undefiniert, da Schleifenvariablen nur am Anfang gesetzt werden! for i=1, 10, 1 do i=i+2 - ebenfalls Achtung...! i=42 for i=1, 10 do print(i) print(i) - 42, da i in for-schleife lokal ist! Uwe Berger;
18 Kontrollstrukturen - - generisches for -- z={eins=1, zwei=2, drei=3, vier=4, fuenf=5} for k, v in pairs(z) do print(k, v) wt={"so", "Mo", "Di", "Mi", "Do", "Fr", "Sa"} for i, v in ipairs(wt) do print(i, v) - weitere Iterations-Funktionen in der Standardbibliothek: - io.lines - string.gmatch (siehe nächste Folie) oder selbst schreiben, z.b. closure_generisches_for.lua Uwe Berger;
19 Iterations-Funktion string.gmatch() t = "Das ist ein Text" for s in string.gmatch(t, "%s+") do print(s) End -- Das -- ist -- ein -- Text Pattern: Möchte jemand ein wenig damit rumspielen? Uwe Berger;
20 Kontrollstrukturen - break i=42 while true do i=i/2 if i<1 then break print(i) - return function f(v) return v, v/2, v/3, v/4 print(f(42)) - goto i=42 do ::anfang:: i=i/2 print(i) if i>1 then goto anfang Uwe Berger;
21 Kontrollstrukturen Es gibt kein switch case in Lua Einfachste Alternative: if...then...elseif...else......oder man spielt ein wenig rum z.b. mit Tabellen Uwe Berger;
22 Übung: 99 bottles of beer > 99 bottles of beer on the wall, 99 bottles of beer. Take one down and pass it around, 98 bottles of beer on the wall. 98 bottles of beer on the wall, 98 bottles of beer. Take one down and pass it around, 97 bottles of beer on the wall. 2 bottles of beer on the wall, 2 bottles of beer. Take one down and pass it around, 1 bottle of beer on the wall. 1 bottle of beer on the wall, 1 bottle of beer. Take one down and pass it around, no more bottles of beer on the wall. No more bottles of beer on the wall, no more bottles of beer. Go to the store and buy some more, 99 bottles of beer on the wall. ---> hq9plus/99bottle.lua Uwe Berger;
23 Funktionen - klassisch... function incr (x) return x+1 print(incr(42)) - 43 print(incr(42, 21)) - 43, zweites Argument wird irgnoriert - geht auch incr=function(x) return x+1 print(incr(42)) mehrere Rueckgabewerte function foo (x) return x+1, x+2, x+3 print(foo(42)) a, b, c = foo(42) Uwe Berger;
24 Funktionen - variadische Funktionen function sum(...) local summe = 0 for i, v in ipairs{...} summe=summe+v return summe print(summe(1, 2, 3, 4, 5)) benannte Argumente function rename(args) return os.rename(args.old, args.new) rename{new="neue.txt", old="alt.txt") - Funktionsdefinitionen ueberschreiben old_print=print function print(v) old_print("neues print: "..v) print(42) - neues print: 42 Uwe Berger;
25 Global und Lokal Variablen und Funktionen können entweder global oder lokal gelten Global Geltungsbereiche für lokale Variablen/Funktionen: programm.lua, modul.lua function() while do..., repeat until, if then else do Lokale Deklarationen erleichtern Lua die interne, automatische, zyklische Speicherbereinigung Uwe Berger;
26 Global und Lokal function f () local a=42 return a/3 a=1 print(f()) - 14 print(a) - 1 a=42 if true then local a=1 print(a) - 1 print(a) - 42 a=42 do local a=a+23 print(a) - 65 print(a) - 42 Uwe Berger;
27 Closure Beschreibt eine Funktion, die Zugriff auf ihren Erstellungskontext (Speicher, Zustand) enthält, der wiederum von extern nicht sichtbar ist, außer über eine weitere interne Funktion... - Closure function counter() local i=0 return function() i=i+1; return i c1=counter() print(c1()) - 1 print(c1()) - 2 c2=counter() print(c2()) - 1 print(c1(), c2()) > closure_generisches_for.lua Uwe Berger;
28 Übung: HQ9+ - Interpreter mit Lua HQ9+: eine esoterische Programmiersprache Syntax: H Hello World Q Quine 9 99 Bottles of beer... + ein internes Register um 1 erhöhen Aufgabe: Aufruf: lua hq9plus.lua <hq9+ - code> Syntax überprüfen Wenn Syntax i.o., dann HQ9+ - Code ausführen hq9plus/hq9plus.lua Uwe Berger;
29 Nebenbei: ein paar echte Lua-Quines ---> a="a=%c%s%c;io.write(string.format(a,34,a,34))"; io.write(string.format(a,34,a,34)) ---> s="s=%q;print(string.format(s,s))";print(string.format(s,s)) Uwe Berger;
30 load(), loadstring(), loadfile(), dofile() load(), loadstring(): einen String, welcher Lua-Code enthält, vorübersetzen, aber nicht ausführen loadfile(): dito, aber Lua-Code steht in einer Datei dofile(): wie loadfile(), aber Code wird auch ausgeführt - Dateiinhalt test.lua function() print("hallo FrosCon2017!") - eigentliches Programm test.lua laden hallo=loadfile("test.lua") hallo() - Hallo FrosCon2017! i=0 f=load("i=i+1") f(); print(i) - 1 f(); print(i) - 2 Uwe Berger;
31 Nochmal loadstring() -- Beispiel Lua-Tabelle von einem String einlesen... s = "{v1=11, v2=42, v3=23}" local f = assert(loadstring("return "..s)) tab = f() =tab.v =tab.v =tab.v > ---> mqtt2oled.lua ---> Funktion: fill_lists() Uwe Berger;
32 Module Module Bibliotheken können in Lua, aber auch als C-Bibliothek, vorliegen - Dateiinhalt modul.lua local M={} function M.incr(v, w) if w ~= nil then return v + w else return v eigentliches Programm modul.lua laden my=require "modul" print(my.answer) print(my.incr(42, 2)) - 44 M.answer = 42 return M Uwe Berger;
33 LuaRocks Paketverwaltungssystem für Lua-Module $ sudo apt-get install luarocks... $ sudo luarocks install lua-cjson... $ luarocks list Installed rocks: lua-cjson (installed) - /usr/local/lib/luarocks/rocks $ lua > require "cjson" Uwe Berger;
34 Performance Lua ist schnell...! f = 20 c = function fact(n) if n <= 1 then return n x 20! C ~ 0,070s Lua ~ 0,115s Tcl ~ 7s else return (n * fact(n-1)) print (fact(f)) ts_begin = os.clock() for i = 1, c, 1 do fact(f) ts_ = os.clock() print(c.." x "..f.."!") print((ts_ - ts_begin).."s") Uwe Berger;
35 Noch eine Übung: Kommando wc in Lua wc gibt (ohne weitere Optionen) für eine Textdatei aus: Anzahl Zeilen Anzahl Wörter Anzahl Zeichen Tipp: -- Datei einlesen local f = assert(io.open(arg[1], "r")) local text = f:read("*all") f:close() Uwe Berger;
36 Was heute nicht angesprochen wurde... Die letzten Feinheiten zu Strings, Tabellen etc. Metatabellen, Metamethoden Koroutinen und Threads Objektorientierte Programmierung Environments und _G Standardbibliotheken Debug-Interface C-API...und einiges mehr RTFM Uwe Berger;
37 Weiterführe Informationsquellen Programmieren in Lua ; Ierusalimschy, Roberto; Open Source Press, September 2006; ISBN Uwe Berger;
38 Ende! Uwe Berger;
Die Skriptsprache Lua. Uwe Berger
Uwe Berger [email protected] Uwe Berger Beruf: Softwareentwickler Freizeit: u.a. mit Hard- und Software rumspielen Linux seit ca. 1995 BraLUG e.v. [email protected] Uwe Berger; 2017 2 Meine Motivation...
Programmieren in Lua
Roberto lerusalimschy Programmieren in Lua 3. Auflage Open Source Press Inhaltsverzeichnis Vorwort 13 I Die Sprache 21 1 Einführung 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale
Lua Grundlagen Einführung in die Lua Programmiersprache
Lua Grundlagen Einführung in die Lua Programmiersprache 05.05.2014 Ingo Berg [email protected] Automatisierungstechnik Voigt GmbH Die Lua Programmiersprache Was ist Lua? freie Programmiersprache speziell
Roberto lerusalimschy. Programmieren mit Lua
Roberto lerusalimschy Programmieren mit Lua \ Vorwort 13 1 Die Sprache 21 1 Einführung/ 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale Variablen 27 1.4 DerStand-alone-Interpreter
Tutorium für Fortgeschrittene
Tutorium für Fortgeschrittene Stroop Aufgabe: Die Farbe gesehener Wörter ist zu klassifizieren. Es gibt 4 Farben (rot, blau, gelb, grün) In Eprime: red, blue, yellow and green. Jeder Farbe ist einer Taste
Lua. June 9, 2015. Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua )
Lua Marcus Brenscheidt Marcin Golkowski Dynamische Programmiersprachen June 9, 2015 June 9, 2015 1 / 15 Geschichte I Entwickelt von Roberto Ierusalimschy, Luiz Henrique und Waldemar Celes Mitglieder der
javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.
javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. Inhalts-Verzeichnis 1. Allgemeine Richtlinien...1 1.1 Anzahl
Die Programmiersprache Lua. Philipp Hoppermann
Die Programmiersprache Lua Philipp Hoppermann Die Programmiersprache Lua Einleitung Sprachumfang Datentypen und -strukturen Kontrollstrukturen Funktionen Exceptions Coroutinen Metatables und Metamethoden
Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
Einführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
Web-basierte Anwendungssysteme PHP-Einführung
Web-basierte Anwendungssysteme PHP-Einführung Prof. Dr. Armin Lehmann ([email protected]) Fachbereich 2 Informatik und Ingenieurwissenschaften Wissen durch Praxis stärkt Seite 1 Prof. Dr. Armin Lehmann
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/
Programmieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
Python Programmierung. Dipl.-Ing.(FH) Volker Schepper
Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013
FEMAG-Anwendertreffen 18. November 2009
FEMAG-Anwertreffen 18. November 2009 FEMAG-Script - Einführung in Lua Jens Krotsch, ebm-papst Mulfingen GmbH & Co. KG Gliederung 1. Lua im Überblick 2. Aufbau des FEMAG-Script-Interpreters 3. Funktionsbibliotheken
Einführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
Programmierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz
Arithmetik in der tcsh
Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3
Eine praktische Einführung in die Programmierung mit der Programmiersprache C
Eine praktische Einführung in die Programmierung mit der Programmiersprache C www.c-howto.de C-HowTo www.c-howto.de Inhaltsverzeichnis 1 Einführung.. 10 1:1 Wozu Programmieren? 10 1.2 Was ist ein Programm?
JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut
Mathematisches Institut [email protected] 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php
Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung
Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache
Lua - Erste Schritte in der Programmierung
Lua - Erste Schritte in der Programmierung Knut Lickert 7. März 2007 Dieser Text zeigt einige einfache Lua-Anweisungen und welchen Effekt sie haben. Weitere Informationen oder eine aktuelle Version dieses
Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014
Python 2! Vorlesung Computerlinguistische Techniken Alexander Koller! 28. Oktober 2014 Listen Sequenz von beliebigen Werten. Literale: [], [1,2,3], [ hallo, True, -5.0] Hinten an Liste anhängen: L.append(27)
Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben
18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (
LUA-Bot Coding. Schwarmtheorie in der Praxis. Fabian Haupt
LUA-Bot Coding Schwarmtheorie in der Praxis Fabian Haupt Fachschaft Mathematik / Informatik Institut für Mathematik und Informatik Universität Würzburg 24. Oktober 2006 1 / 44 1 2 3 4 2 / 44 Die Welt Die
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
Ruby. Programmieren mit Zucker. Thomas Kühn
Ruby Programmieren mit Zucker Thomas Kühn Gliederung Geschichte Philosophie Syntax mit Zucker Sprachkonzepte Pakete und Frameworks Ausblick Beispiele Yukihiro Matz Matsumoto Geboren am 14.April 1965 Geschichte
string: Beispiele: Test, test, `Seitentitel: ${document.title}`
JS Crashkurs Einige JavaScript spezifische Dinge zusammengefasst. Datentypen Javascript kennt folgende primitiven Datentypen: undefined number: Beispiele: 1 1.0.0 1. 0x1 1e0 boolean: true oder false string:
Programmieren von Webinformationssystemen
Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup
Programmierung in Python
Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P
Multimedia im Netz Wintersemester 2011/12
Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt 24.03.2014 ORGANISATORISCHES [email protected] 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber später in den Übungen!
Übung zur Vorlesung Multimedia im Netz
Übung zur Vorlesung Multimedia im Netz Doris Hausen Ludwig-Maximilians-Universität München Wintersemester 2009/2010 Ludwig-Maximilians-Universität München Multimedia im Netz Übung 1-1 Organisatorisches
Einführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
Einführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
1 Einführung... 13. 2 Erste Schritte... 19. 3 Programmierkurs... 33. 4 Datentypen... 81. 5 Weiterführende Programmierung... 139
Auf einen Blick 1 Einführung... 13 2 Erste Schritte... 19 3 Programmierkurs... 33 4 Datentypen... 81 5 Weiterführende Programmierung... 139 6 Objektorientierte Programmierung... 191 7 Verschiedene Module...
Programmieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper
Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester 2017 Dipl.-Ing. (FH) Volker Schepper 1 Kommentar Kommentare sollen/müssen unbedingt verwendet werden. Sinnvolle Kommentare verwenden.
Einführung in die Computerlinguistik
Einführung in die Computerlinguistik Übung 2 Laura Kallmeyer Sommersemester 204, Heinrich-Heine-Universität Düsseldorf Offizielle Python Seite, auf der man jede Menge Dokumentation findet: http://www.python.org/
PHP. M.Sc. Nadine Preuß Geographische Analyse- und Darstellungsmethoden WS 15/
PHP M.Sc. Nadine Preuß Geographische Analyse- und Darstellungsmethoden WS 15/16 1. PHP PHP = Personal Homepage Tools Scriptsprache, Standardsprache im Web Open Source Software z.b. um Besucherzähler oder
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"
S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert
Crashkurs Python und Sage U23 Krypto-Mission
Crashkurs Python und Sage -Mission florob Simon e.v. http://koeln.ccc.de 4. Oktober 2015 Anfang Übersicht Sage Computer-Algebra-System, wie MatLab oder Mathematica sagemath.org Python interpretierte Programmiersprache
Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50
Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine
Bash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 13.06.2012 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
Welche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen
Programmieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A
2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,
Dynamische Webseiten mit PHP. Oder: LAMP - The open way
Dynamische Webseiten mit PHP Oder: LAMP - The open way Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$ Überblick Dynamische Webseiten
Unterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
PIC16 Programmierung in HITECH-C
PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden
1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
RO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr
Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:
Algorithmen zur Datenanalyse in C++
Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
Programmieren lernen mit Visual Basic
Programmieren lernen mit Visual Basic Teil 5: Fallunterscheidungen (Teil 1) Ein paar Operatoren fehlen noch. Zum einen logische Operatoren, die mit Wahrheitswerden arbeiten. Die folgenden drei verwenden
C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
RO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)
II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
Inhaltsverzeichnis. Vorwort.11
Inhaltsverzeichnis Vorwort.11 Kapitel 1 Einführung in die C-Programmierung 17 1.1 Ein erstes C-Programm 17 1.1.1 Analyse des Zinseszins-Programms 17 1.2 Compilieren und Ausführen eines Programms 24 1.3
Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!
!!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! Erste Zeile eines PERL-Scripts: #! /usr/bin/perl Variablen in PERL: Normale Variablen beginnen mit einem $-Zeichen Array-Variablen beginnen mit
Modul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
Kurzeinführung in C99
Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2
THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic
THE GO PROGRAMMING LANGUAGE Part 1: Michael Karnutsch & Marko Sulejic Gliederung Geschichte / Motivation Compiler Formatierung, Semikolons Variablen, eigene Typen Kontrollstrukturen Funktionen, Methoden
Funktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Deklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
Programmieren von Webinformationssystemen
Programmieren von Webinformationssystemen Nikolaus Krismer Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 PHP Ursprünglich:
Grundlagen der Programmierung
Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,
VBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke
JavaScript Das umfassende Referenzwerk David Flanagan Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke O'REILLY Cambridge Köln Paris Sebastopol Tokyo Vorwort xiii 1: Einführung in
Vorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
Ausdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI
Ausdrücke in Scala Funktionale Programmierung Christoph Knabe FB VI 17.10.2014 Inhalt Einfache Ausdrücke Infix-Notation für Methodenaufruf Sonderzeichen in Bezeichnern Schlüsselwörter Konstanten Variablen
Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
Linux Prinzipien und Programmierung
Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 25 2 / 25 Pipes Die Bash kennt drei Standard-Dateideskriptoren: Standard In (stdin) Standard-Eingabe,
PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.
PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. Allgemein Ein Einzug sollte aus 4 Leerzeichen bestehen.
JAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Algorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
Vorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND
Grundlagen von C# - 1
Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften
Grundlagen. Wie sind PHP-Dateien aufgebaut?
Grundlagen PHP und MySQL PHP läuft serverseitig!! Wie sind PHP-Dateien aufgebaut? PHP-Dateien fangen mit an und hören mit auf. Sie müssen die Dateiendung *.php haben echo "So könnte eine Datei aussehen\n";
Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. [email protected]. Hochschule Darmstadt -Fachbereich Informatik-
Informatik Studiengang Chemische Technologie Michael Roth [email protected] Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik
JavaScript und PHP-Merkhilfe
JavaScript und PHP-Merkhilfe David Vajda 10. November 2016 1 JavaScript 1. Einbinden von JavaScript in das HTML-Dokument
FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung
C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen
II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Der Lua Skripteditor Lua in der Messtechnik
Der Lua Skripteditor Lua in der Messtechnik 02.08.2014 Ingo Berg [email protected] Automatisierungstechnik Voigt GmbH Lua in der Messtechnik Was ist Lua? freie Programmiersprache speziell entwickelt für
