Operatoren. Programmiersprachen. Programmablaufplan und Struktogramm.



Ähnliche Dokumente
14 Schmiegeparabel und Freunde, Taylor-Reihe

8 Design Patterns. Events

Die Programmiersprache C99: Zusammenfassung

4 Vererbung, Polymorphie

9 Multithreading. 1 Idee des Multithreading

Professionelle Seminare im Bereich MS-Office

Grundlagen der Informatik

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Daten verarbeiten. Binärzahlen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Kontrollstrukturen - Universität Köln

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Anleitung über den Umgang mit Schildern

Das Leitbild vom Verein WIR

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Informationsblatt Induktionsbeweis

Was ist ein Computer? Und: Erste Schritte in C

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.

Zahlensysteme Seite -1- Zahlensysteme

4. In dem Kurs lernt sie, was zu tun ist, wenn etwas Schlimmes passiert.

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Grundbegriffe der Informatik

Informatik 1 Tutorial

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Was ist Sozial-Raum-Orientierung?

Zeichen bei Zahlen entschlüsseln

Sin-Funktion vgl. Cos-Funktion

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Primzahlen und RSA-Verschlüsselung

7 Dateien und Datenströme (Streams)

Binärdarstellung von Fliesskommazahlen

Hinweise zum Übungsblatt Formatierung von Text:

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Mediator 9 - Lernprogramm

Zahlensysteme: Oktal- und Hexadezimalsystem

1 Mathematische Grundlagen

Das Persönliche Budget in verständlicher Sprache

Arbeiten mit UMLed und Delphi

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Zwischenablage (Bilder, Texte,...)

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Statuten in leichter Sprache

Updatehinweise für die Version forma 5.5.5

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Regeln für das Qualitäts-Siegel

Wenn man nach Beendigung der WINDOWS-SICHERUNG folgendes angezeigt bekommt

Senioren ans Netz. schreiben kurze Texte. Lektion 9 in Themen aktuell 2, nach Übung 7

Alle gehören dazu. Vorwort

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

Diana Lange. Generative Gestaltung Operatoren

Binär- und Hexadezimal-Zahl Arithmetik.

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Was man mit dem Computer alles machen kann

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

Leichte-Sprache-Bilder

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Wofür braucht man eine Tabellenkalkulation? Das Programm Microsoft Excel gehört in Softwarekategorie der Tabellenkalkulationen.

Informatik I Tutorial

Java Einführung Operatoren Kapitel 2 und 3

Erklärung zu den Internet-Seiten von

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Weiterbildung und Zusatzausbildung der PHZ Luzern Interessantes und Spannendes aus der Welt der Mathematik September 2006, Dieter Ortner

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Einführung in. Logische Schaltungen

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz

Zugriff auf Daten der Wago über eine Webseite

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Diagnostisches Interview zur Bruchrechnung

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

Präprozessor, Compiler, Linker

EINFACHES HAUSHALT- KASSABUCH

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

Online-Publishing mit HTML und CSS für Einsteigerinnen

Windows 10 > Fragen über Fragen

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Version 0.3. Installation von MinGW und Eclipse CDT

2 Einfache Rechnungen

Algorithmen und Programmieren II Einführung in Python

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Studieren- Erklärungen und Tipps

Was ich als Bürgermeister für Lübbecke tun möchte

Transkript:

Operatoren. Programmiersprachen. Programmablaufplan und Struktogramm. Jörn Loviscach Versionsstand: 7. Oktober 2011, 11:16 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/de/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 1 Zahlensysteme in C C selbst versteht ab Werk Dezimalzahlen wie 123, Hexadezimalzahlen wie 0xE8 und Oktalzahlen wie 057. Die Oktalzahlen kommen eher selten vor, sind aber eine fiese Tücke: Man darf in C-Code vor Dezimalzahlen keine führende Null schreiben, sonst werden sie als Oktalzahlen verstanden! Alle Ganzzahlen werden im Rechner im Zweiersystem dargestellt. Mit den meisten Debuggern kann man sich die Inhalte von Variablen dezimal, hexadezimal und binär anzeigen lassen (Demo). Auch den Taschenrechner von Microsoft Windows kann man umschalten und für bitweise Operationen benutzen (Demo). 2 Operatoren für Ganzzahlen in C Die Sprache C macht keinen nennenswerten Unterschied zwischen Rechenoperationen (Addition, Multiplikation usw.), logischen Operationen (Oder, Und usw.) und Vergleichen (gleich, größer usw.). Hier sind einige wichtige davon: 1 1

3 INKREMENT, DEKREMENT, VERBINDUNG MIT ZUWEISUNG 2 Die logischen Operatoren && und sind nicht nur schlicht Und und Oder, sondern haben eine besondere Raffinesse namens Short Circuit (Kurzschluss): Wenn bei a && b das a bereits falsch ist, liefert der Ausdruck sofort falsch, ohne dass b angesehen wird. Analog bei a b. (Und zwar wie?) Dieses Verhalten ist zum jetzigen Zeitpunkt aber noch nicht spannend. Diese Liste der Operatoren ist in der Reihenfolge der Präzedenz geordnet: Erst werden die Operationen oben in der Liste ausgeführt, dann die unten. Das ist Punktrechnung vor Strichrechnung, aber bis ins Kleinste für alle Operationen definiert. Mehrere Operationen auf gleicher Stufe der Liste werden mit wenigen Ausnahmen von links nach rechts ausgewertet. Das ist vor allem bei Ausdrücken wie a*b/c*d spannend. Der Ausdruck 2 ist also zu verstehen als: 3 Schreiben Sie am Anfang lieber mehr Klammern als nötig. Das ist wie Fahrradfahren mit Stützrädern: Es sieht nicht professionell aus, aber man fällt seltener auf die Nase. Diese Operationen können in C kreuz und quer gemixt werden. Neuere Sprachen wie Java und C# sind strenger bei der Unterscheidung von Zahl (z.b. int) und Wahrheitswert (bool). 3 Inkrement, Dekrement, Verbindung mit Zuweisung Oft will man ein Ergebnis derselben Variable zuweisen, aus der man gerade einen Wert geholt hat: 4 Dafür gibt es in C Schreibweisen, die kürzer und klarer sind: 5

4 ZOO DER PROGRAMMIERSPRACHEN 3 Das Erhöhen (meist um den Wert 1) heißt Inkrement, das Verringern (meist um den Wert 1) Dekrement. Dazu gibt es auch als Tätigkeit: i wird dekrementiert. In professionellen Programmen sehen Sie j++ und eher noch ++j als Teil von komplexeren Ausdrücken wie i = 2*++j. Tun Sie das nicht. Sie müssen nicht mit so etwas zeigen, für wie clever Sie sich halten. Das lohnt sich nicht schon allein wegen der erschwerten Fehlersuche. 4 Zoo der Programmiersprachen Um einen Computer zu programmieren ihm mitzuteilen, was er tun soll, muss man sich verständlich machen. Das geht bisher nicht durch gutes Zureden, sondern nur mit Hilfe streng formaler Programmiersprachen. Im Seminar haben wir bereits die ersten Schritte auf dem MSP430... in der Programmiersprache C gemacht. Das ist die klassische Programmiersprache für Mikrocontroller. Hier geht es um deren Version C99. Auch Programmiersprachen werden heute mehr oder minder häufig upgedatet. Aus C haben sich unzählige andere Programmiersprachen entwickelt, so dass man die Kenntnisse in C an vielen Stellen nutzen kann: 6 Daneben gibt es andere Familien von Programmiersprachen, zum Beispiel Pascal, aus dem Modula und Delphi hervorgegangen sind, oder BASIC (Beginner s Allpurpose Symbolic Instruction Code), der Stammvater von Visual Basic, Visual Basic.NET und VBScript. Unter Physikern ist Fortran (FORmula TRANslation) berüchtigt für jahrzehntelang gepflegte Numerikbibliotheken. In der Finanzwelt stößt man noch auf antikes COBOL (COmmon Business-Oriented Language). Je nach Anwendung ist eine andere Programmiersprache sinnvoll oder sogar nötig. Man lernt nicht eine einzige Programmiersprache und ist dann fertig! Der Job von Informatikerinnen und Informatikern ist im Zweifelsfall sogar, eine neue, für das aktuelle Problem passende Programmiersprache zu entwickeln. Ein paar Live-Beispiele, wo welche Programmiersprachen eingesetzt werden: Webseiten mit Formularen oder komplexen Bedienelementen benutzen typischerweise JavaScript.

5 ARTEN VON PROGRAMMIERSPRACHEN 4 Auf dem Web-Server laufen dabei bei kleinen Angeboten gerne Skripte in der Sprache PHP (PHP: Hypertext Processor). Die üblichen Textverarbeitungen und Tabellenkalkulationen lassen sich mit Makros in BASIC automatisieren. Die Muttersprache praktisch jeden Prozessors ist nicht C oder PASCAL oder..., sondern eine je nach Prozessortyp verschiedene, binäre Maschinensprache. Sie wird meist in einer halbwegs lesbaren Assemblersprache dargestellt. Die Sprache von MATLAB ist auf den Umgang mit Vektoren und Matrizen optimiert. Es gibt auch grafische Programmiersprachen, zum Beispiel MATLAB Simulink. Was man dort mit Kästchen und Pfeilen zusammenklickt, ist ein Programm. In wissenschaftlichen Veröffentlichungen verwendet man meist keine echte Programmiersprache, sondern Pseudocode, ein nach persönlichem Geschmack vereinfachtes Pascal oder C. 5 Arten von Programmiersprachen Die meisten heute aktuellen Programmiersprachen sind, was man als imperativ ( befehlend ) bezeichnet, manchmal auch als prozedural, was aber ein mehrdeutiger Begriff ist. Mit imperativen Sprachen schreibt man sozusagen Rezepte auf: Tue dieses, prüfe jenes usw. Dies gilt auch für die objektorientierten Programmiersprachen im nächsten Semester. Andere Arten an Programmiersprachen basieren auf dem mathematischen Funktionsbegriff (funktionale Sprachen) oder beschreiben logische Bedingungen für eine gesuchte Lösung. Eine weitere Unterscheidung kann man zwischen Skriptsprachen und vollwertigen Programmiersprachen machen. Skriptsprachen sind dazu gedacht, auf die Schnelle ohne viel Brimborium kleine Programme zu schreiben, zum Beispiel Makros für die Textverarbeitung. Vertreter dieser Gattung sind: 7 Die meisten (aber nicht alle) Sprachen der C-Familie gelten dagegen als vollwertige Programmiersprachen: 8 Diese Unterscheidung ist nicht ohne Diskussion: So ist Facebook zu großen Teilen in der Skriptsprache PHP geschrieben.

6 FLUSSDIAGRAMM 5 Skriptsprachen sind gerne dynamisch typisiert : Wo in C durch int a; festgelegt ist, dass die Variable a nur ganze Zahlen speichert, kann man etwa in MATLAB schreiben: a = 42; a = [1 2 3]; a = 'xyz'; Man könnte auch versuchen, Skriptsprachen und vollwertige Programmiersprachen zu unterscheiden, indem man interpretierte von kompilierten Sprachen trennt. Diese Unterscheidung klappt heute aber nicht mehr gut. Demnächst mehr dazu. 6 Flussdiagramm Ein imperatives Programm kann man als Programmablaufplan = Flussdiagramm [flowchart] darstellen: 9 Stadionförmige Rechtecke stehen für Start und Ende, Rechtecke für Operationen, Parallelogramme für Ein- und Ausgabe, Rauten für Verzweigungen. 7 Strukturierte Programmierung, Struktogramm Imperative Programmierung kann im Prinzip zu einem Flussdiagramm führen, das wie Spaghetti aussieht sogenannter Spaghetticode, bei dem man nur schwierig erkennen kann, was wann ausgeführt wird: 10 In BASIC und anderen Sprachen wurde/wird dies durch den Befehl GOTO gefördert.

7 STRUKTURIERTE PROGRAMMIERUNG, STRUKTOGRAMM 6 Seit Jahrzehnten arbeitet man zu Vermeidung von Spaghetti fast ausschließlich mit sauberen Blöcken wie if und while. Das heißt strukturierte Programmierung. Mit einem Struktogramm = Nassi-Shneiderman-Diagramm lässt sich das aufzeichnen: 11