Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung"...

56
Abschnitt V Dr.-Ing. Peter Ijewski 1/56

Transcript of Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung"...

Page 1: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

Abschnitt V

Dr.-Ing. Peter Ijewski 1/56

Page 2: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

Kontrollfragen

17:13 Informationsverarbeitung Abschnitt V

Aufgaben des letzten Praxisteils

2/56

Vom Algorithmus zum Programm

Software Engineering

Programmiersprachen

Praxisteil

Page 3: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

3/56

Page 4: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 4/56 Informationsverarbeitung Abschnitt V

• Was ist Boolesche Algebra?

• Warum ist die Boolesche Algebra so wichtig für die Informatik?

• Welche „elementare Gleichungen“ kennen sie?

• Welches sind die sechs Eigenschaften eines Algorithmus?

• Was ist ein Pseudocode?

• Welche Aufgabe hat ein Pseudocode?

• Welche Alternative gibt es zum Pseudocode?

Page 5: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

5/56

Page 6: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

10:13 6/56 Informationsverarbeitung Abschnitt V

• Drücken Sie die „Ampelaufgabe“ in Form eines Booleschen Terms aus.

p= (¬r˄¬e˄ g)

˅ (¬r˄ e˄¬g)

˅ ( r˄¬e˄¬g)

˅ ( r˄ e˄¬g)

¬p= (¬r˄¬e˄¬g)

˅ (¬r˄ e˄ g)

˅ ( r˄¬e˄ g)

˅ ( r˄ e˄ g)

Page 7: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

11:39 7/56 Informationsverarbeitung Abschnitt V

p = ( r*~e* g)

+ (~r* e*~g)

+ ( r*~e*~g)

+ ( r* e*~g)

~p= (~r*~e*~g)

+ (~r* e* g)

+ ( r*~e* g)

+ ( r* e* g)

Ausmultipliziert: ~r~eg+~re~g+r~e~g+re~g

Sortierung => ~eg~r+e~g~r+~e~gr+e~gr

Axiom 9': e~g~r + e~gr = e~g => ~eg~r+e~g+~e~gr

Axiom 9x': ~e~gr + e~g =~gr + e~g => ~eg~r+e~g+~gr

Ergebnis: p=~eg~r+e~g+~gr

Ausmultipliziert: ~r~e~g+~reg+r~eg+reg

Sortierung => ~e~g~r+eg~r+~egr+egr

Axiom 9': eg~r + egr = eg => ~e~g~r+eg+~egr

Axiom 9x': ~egr + eg = gr + eg => ~e~g~r+eg+gr

Ergebnis: ~p=~e~g~r+eg+gr

p=~e*g*~r+e~g+~g*r

~p=~e*~g*~r+e*g+g*r

~~p=~(~e*~g*~r+e*g+g*r) Ergebnis: p=~gr+e~g+~eg~r

p=(~e*g*~r+e~g+~g*r)*(~gr+e~g+~eg~r) Ergebnis: p=~gr+e~g+~eg~r

p=(¬g ˄ r)˅(e ˄ ¬g)˅(¬e ˄ g ˄ ¬r)

Siehe auch: http://www.elektroniker-bu.de/boolesche.htm

Page 8: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

11:26 8/56 Informationsverarbeitung Abschnitt V

• Beschreiben Sie den Vorgang des Aufstehens am Sonntag (Sie haben vergessen den Wecker auszuschalten!)

function sonntag()

{

schlafe bis auf weiteres

{

falls der Wecker klingelt

{

falls nicht ausreichend Schlaf

{

Schlummertaste bedienen

}

anderenfalls

{

beende schlafen

}

}

falls selbstständiges Aufwachen

{

beende schlafen

}

}

Aufstehen

Waschen

Anziehen

Frühstücken

}

Page 9: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:17 9/56 Informationsverarbeitung Abschnitt V

• Beschreiben Sie die Aufgabe „Solange würfeln bis eine sechs fällt“ in Pseudocode.

function würfeln()

{

wiederhole bis eine 6 fällt

{

würfle eine Zahl

}

}

function würfeln()

{

wiederhole

{

würfle eine Zahl

falls (Zahl==6)

{

beende Schleife

}

}

}

Page 10: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

10/56

Page 11: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 11/56 Informationsverarbeitung Abschnitt V

Begriffsdefinition

Algorithmus

Programm (Software)

• Grundlage jeglicher maschineller Informationsverarbeitung

• Beispiele aus dem Alltag: • Kochrezepte, Bedienungsanleitungen, Aufbauvorschriften • Mathematische Berechnungsverfahren

• (endliche) Folge von (eindeutigen) Anweisungen an einen Rechner => Handlungsvorschrift

Page 12: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 12/56 Informationsverarbeitung Abschnitt V

Vorgehensweise

Problem

Algorithmus

Programm

Entwicklung eines geeigneten Algorithmus für die Problemlösung

Notation in der gewählten Programmiersprache

„handwerkliche“ Leistung

„künstlerische“ intellektuelle Leistung

Page 13: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 13/56 Informationsverarbeitung Abschnitt V

Begriffsdefinition

Programmieren

Unter „Programmieren“ versteht man • das Notieren • eines zuvor erarbeiteten Algorithmus • in einer für den gewählten Rechner • lesbaren und ausführbaren Form.

Page 14: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

11:45 14/56 Informationsverarbeitung Abschnitt V

Beispiel

Problemstellung

Berechne zu einer gegebenen Anfangs- und Endezeit einer Fernsehsendung ihre Dauer in Minuten. Voraussetzung: keine Sendung dauert länger als 24 Stunden.

Page 15: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 15/56 Informationsverarbeitung Abschnitt V

Beispiel

Modellbildung

Eingangs-Information

Daten

Ausgangs-Information

Daten Maschinelle Datenverarbeitung

Repräsentation Interpretation

Page 16: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 16/56 Informationsverarbeitung Abschnitt V

Beispiel

Modellbildung

• Abstraktion, geeigneten Ausschnitt der realen Welt bilden

• Erstellen des rechnerinternen Modells der realen Welt

• Fragestellungen - Was ist wie zu verarbeiten?

EVA - Prinzip

Eingabe: Anfangszeit (z. B.: 20:15), Endezeit (z. B.: 21:35)

Ausgabe: Dauer der Sendung (z. B.: 80 min)

Verarbeitung: Umwandung der Eingabedaten in Ausgabedaten

Page 17: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 17/56 Informationsverarbeitung Abschnitt V

Beispiel

Pseudocode function SendungsDauer

{

input hA, mA, hE, mE falls (Sendung geht nicht über Mitternacht)

{

Dauer der Sendung = (hE * 60 + mE) – (hA * 60 + mA);

}

anderenfalls

{

Dauer der Sendung = ((hE + 24) * 60 + mE) – (hA * 60 + mA);

}

output Dauer der Sendung

}

Page 18: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 18/56 Informationsverarbeitung Abschnitt V

Alternative Darstellungsformen

Ablaufdiagramm Quelle: Bundesministerium der Finanzen

Page 19: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 19/56 Informationsverarbeitung Abschnitt V

Alternative Darstellungsformen

Nassi-Shneidermann-Diagramm Quelle: www.mathematik.net

Page 20: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 20/56 Informationsverarbeitung Abschnitt V

Exaktheit. Die Funktion f kann präzise auf formale Weise beschrieben werden.

Finitheit. Die Beschreibung von f ist endlich lang.

Eigenschaften

Vollständigkeit. Die Beschreibung von f umfasst alle vorkommenden Fälle.

Effektivität. Die Einzelschritte sind elementar und real ausführbar.

Terminierung. Die Funktion f hält nach endlich vielen Schritten an und liefert ein Resultat.

Determinismus. Die Funktion f liefert bei gleichen Eingabewerten stets das gleiche Ergebnis, wobei die Folge der Einzelschritte für jeden Eingabewert genau festgelegt ist.

Page 21: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 21/56 Informationsverarbeitung Abschnitt V

Beispiel

Pseudocode function SendungsDauer

{

input hA, mA, hE, mE Anfang_min = hA * 60 + mA; Ende_min = hE * 60 + mE; falls (Ende_min < Anfang_min)

{

Ende_min = Ende_min + 24 *60;

}

Dauer der Sendung = Ende_min - Anfang_min;

output Dauer der Sendung

}

Page 22: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 22/56 Informationsverarbeitung Abschnitt V

Beispiel

Programm (C#) using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

// Variablendeklaration

int h_anfang=0;

int min_anfang=0;

int h_ende=0;

int min_ende=0;

int Anfang_min=0;

int Ende_min=0;

int Dauer=0;

// Hole Eingabewerte

Console.WriteLine("Anfangszeit [h]");

h_anfang= Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Anfangszeit [min]");

min_anfang=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Endezeit [h]");

h_ende=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Endezeit [min]");

min_ende=Convert.ToInt32(Console.ReadLine());

// Rechne Zeitangaben in Minuten um

Anfang_min = h_anfang * 60 + min_anfang;

Ende_min = h_ende * 60 + min_ende;

if (Ende_min < Anfang_min) Ende_min = Ende_min + 24 *60;

Dauer = Ende_min - Anfang_min;

// Ausgabe auf der Konsole

Console.WriteLine("Dauer: "+Dauer);

Console.ReadLine();

}

}

}

Page 23: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

23/56

Page 24: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 24/56 Informationsverarbeitung Abschnitt V

Begriffsdefinition

„Zielorientierte Bereitstellung und systematische Verwendung von • Prinzipien, • Methoden • und Werkzeugen für die • arbeitsteilige, • ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen.“ Quelle: Helmut Balzert: Lehrbuch der Software-Technik. Bd.1. Software-Entwicklung

Page 25: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 25/56 Informationsverarbeitung Abschnitt V

Kernprozesse

1. Planung • Anforderungserhebung • Lastenheft (Anforderungsdefinition) • Pflichtenheft (Mit technischen Ansätzen verfeinertes Lastenheft) • Aufwandsschätzung • Vorgehensmodell

2. Analyse • Auswertung • Mock-up • Prozessanalyse / Prozessmodell • Systemanalyse • Strukturierte Analyse (SA) • Objektorientierte Analyse (OOA)

Page 26: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 26/56 Informationsverarbeitung Abschnitt V

Kernprozesse

3. Entwurf • Softwarearchitektur • Strukturiertes Design • Objektorientiertes Design

• Fundamental Modeling Concepts

4. Programmierung • Normierte Programmierung

• Strukturierte Programmierung • Objektorientierte Programmierung (OOP)

• Funktionale Programmierung

Page 27: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 27/56 Informationsverarbeitung Abschnitt V

Kernprozesse

5. Validierung und Verifikation • Modeless (Low-Level-Test) • Integrationstests (Low-Level-Test) • Systemtests (High-Level-Test) • Akzeptanztests (High-Level-Test)

Page 28: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 28/56 Informationsverarbeitung Abschnitt V

Unterstützungsprozesse

6. Anforderungsmanagement 7. Projektmanagement 8. Qualitätsmanagement 9. Konfigurationsmanagement 10. Softwareeinführung 11. Dokumentation

• Die genannten Teilschritte werden nicht bei jedem Projekt komplett durchlaufen.

• Vielmehr werden die erforderlichen Prozesse spezifisch für die jeweilige Anforderung gewählt.

• Dies ist schon aus Sicht der Kosten- und Verwaltungsreduzierung dringend erforderlich.

Page 29: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 29/56 Informationsverarbeitung Abschnitt V

Gründe

Eine Studie der Standish Group (1994) zeigte auf, dass

• nur 16% aller Softwareprojekte erfolgreich (hinsichtlich Zeit-, Budget und Funktionsvorgaben) abgeschlossen werden.

• Rund 53% der Softwareprojekte werden mit erheblichen Defiziten zu Ende gebracht.

• und 31% der Projekte scheitern gänzlich!

Page 30: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 30/56 Informationsverarbeitung Abschnitt V

Teufelsquadrat für IT-Projekte nach Sneed

Qualität

Kosten

Funktionalität

Zeit

Konzentration auf ein Ziel erzwingt bei gleichen Rahmenbedingungen die Vernachlässigung mindes-tens eines anderen Ziels. (Verbesserung im Bild bedeutet ziehen des Schwerpunkts in diese Richtung.)

generelle Verbesserung nur durch Verbesserung der Rahmenbedingungen (z.B. der Prozesse).

Quelle: Stephan Kleuker, Grundkurs Software Engineering mit UML

Page 31: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 31/56 Informationsverarbeitung Abschnitt V

Prinzipien bei der Entwicklung von Softwaresystemen

Abstraktion Hervorhebung des Wesentlichen, absehen von speziellen, untergeordneten Details, erkennen gleicher Merkmale

Hierarchisierung Anordnung der Elemente in einer Rangordnung. Elemente gleicher Rangordnung stehen auf derselben Stufe und bilden eine Schicht oder Ebene. Grundsatz: Innerhalb der Hierarchie dürfen keine zirkulären Beziehungen auftreten

Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere der Erzeugung überschaubarer Systeme, deren Komponenten unter Umständen auch in anderen Systemen wiederverwendet werden können. Auf die Softwareentwicklung angewandt fordert dieses Prinzip die Aufteilung des Systems in überschaubare Teile, mit klar definierten Schnittstellen. Dabei sollen einzelne Module ausgetauscht oder geändert werden können, ohne dass Veränderungen im übrigen System erforderlich sind.

Lokalität Alle wichtigen Informationen, die zu derselben Situation gehören, sind an einem Platz vorhanden. Optimale Lokalität liegt vor, wenn die jeweils benötigten Informationen auf einer Seite stehen. Lokalität ist damit auch ein Strukturierungsprinzip.

integrierte Dokumentation

Ein Software-System besteht aus "Programmcode und Dokumentation" und ist letztlich nur so gut wie diese. Die Dokumentation muss integraler Bestandteil der Softwareentwicklung sein.

Quelle: www.spolwig.de/is/softwareprojekte/prinzipien.htm

Page 32: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

32/56

Page 33: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 33/56 Informationsverarbeitung Abschnitt V

Programmiersprachen

Auf einem Rechner wird ein Betriebssystem (Windows, Linux, Unix, etc.) installiert, um dem Anwender bei der Lösung seiner Aufgaben zu unterstützen.

Aufbauend auf der Betriebssystemschnittstelle müssen dazu Anwendungsprogramme bereit gestellt werden.

Die Erstellung derartiger Anwendungsprogramme (wie auch des Betriebssystems und anderer Softwarekomponenten ) erfolgt mittels Programmiersprachen.

Unter einer Programmiersprache versteht man eine formale Sprache, mit der eine auf einer Hardware ablauffähige Software entwickelt werden kann.

Beispiele: Java, C++, C#, Pascal, Cobol, Visual Basic, PHP, u.v.m.

Page 34: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 34/56 Informationsverarbeitung Abschnitt V

Aufbau von Programmiersprachen

Eine Programmiersprache ist eine formale Sprache zur Formulierung von: • Datenstrukturen • und Algorithmen, d. h. von Rechenvorschriften, die von einem Computer ausgeführt werden können.

Sie setzen sich aus Anweisungen nach einem vorgegebenen Muster zusammen, der sogenannten Syntax.

Page 35: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 35/56 Informationsverarbeitung Abschnitt V

Aufbau von Programmiersprachen

Die ersten Programmiersprachen orientierten sich sehr an den Eigenschaften der jeweiligen Rechner (Maschinensprachen).

Heute verwendet man meistens problemorientierte Sprachen, sogenannte Hochsprachen.

Diese erlauben grundsätzlich eine abstraktere und (für den Menschen) besser verständliche Ausdrucksweise.

In diesen Hochsprachen geschriebene Programme werden automatisiert in Maschinensprache übersetzt.

Page 36: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 36/56 Informationsverarbeitung Abschnitt V

Entwicklung der Programmiersprachen

Quelle: goessner.net

Page 37: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 37/56 Informationsverarbeitung Abschnitt V

Klassen von Programmiersprachen

• Maschinensprache, Assemblersprachen oder C (C++, C#) erlauben eine hardwarenahe Programmierung.

• CNC-Programmiersprachen (z. B. SPS, Sinumerik Operate) dienen der Erzeugung von Steuerungsinformationen für Werkzeugmaschinen.

• Datenbanksprachen (z. B. SQL) sind für den Einsatz in und die Abfrage von Datenbanken gedacht.

Page 38: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 38/56 Informationsverarbeitung Abschnitt V

Klassen von Programmiersprachen

• Sprachen mit visuellen Programmierumgebungen (Visual Studio, etc.) erleichtern oder ermöglichen gar erst die graphische Gestaltung von Benutzeroberflächen.

• Skriptsprachen (cmd.exe, VBScript, sh, Perl, etc.) dienen zur einfachen Steuerung von Rechnern, wie bei der Stapelverarbeitung.

• Esoterische Programmiersprachen sind experimentelle Sprachen mit teilweise interessanten Konzepten.

Quelle: Wikipedia

• oder auch im WWW serverseitig (PHP, etc.) und clientseitig (JavaScript, etc.) zur Erstellung dynamischer Webseiten.

Page 39: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 39/56 Informationsverarbeitung Abschnitt V

Übersetzungsprozess

In Hochsprachen geschriebene Programme werden automatisiert in Maschinensprache übersetzt.

• Kompilierende Programmiersprachen (Fortran, C, Pascal, etc.) Der Programmtext wird in Maschinensprache übersetzt und kann dann ausgeführt werden.

• Halbkompilierende Programmiersprachen (Java, C#, etc.) Der Quelltext wird in einen zunächst prozessorunabhängigen Zwischencode übersetzt und innerhalb einer Laufzeitumgebung (JVM, etc.) interpretierend ausgeführt.

• Interpretierende Programmiersprachen (JavaScript, Python, VBScript, etc.) Der Programmtext wird von einem Programm, dem sog. Interpreter schrittweise übersetzt und ausgeführt.

Page 40: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 40/56 Informationsverarbeitung Abschnitt V

Übersetzungsprozess, vereinfachte Darstellung

Quelle: www.s-line.de

Page 41: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 41/56 Informationsverarbeitung Abschnitt V

Übersetzungsprozess

• Der Quelltext (source code) als Anweisungsfolge wird in eine Datei geschrieben.

• Ein Compiler oder Interpreter übersetzt den Text in ausführbaren Maschinencode (Objekt-, Binärcode).

• Ein Binder (Linker) fügt ggfs. weitere Programmbibliotheken hinzu und rechnet relative in absolute Adressen um.

• Ein Lader (loader) als Dienst der jeweiligen Laufzeitumgebung (z.B. Betriebssystem) lädt das Programm in den Hauptspeicher und führt es aus.

Quelle: goessner.net

Page 42: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 42/56 Informationsverarbeitung Abschnitt V

Vielfältige Programmiersprachen

www.99-bottles-of-beer.net one program in 1500 variations

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. . . . 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.

Page 43: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 43/56 Informationsverarbeitung Abschnitt V

Elemente einer Programmiersprache

Quelle: www.s-line.de

Variablen Zuweisen, Auslesen und Ändern von Speicherinhalten

Mathematische Operationen zumindest die vier Grundrechenarten

Verzweigungen

Abhängig von einer Bedingung wird ein anderer Programmfluss ausgewählt

Schleifen Wiederholen von Programmsequenzen

Blockbildung Zusammenfassung mehrerer Befehle

nicht mathematische Elemente

z. B. Text, Bilder, Video, Sound, etc.

Kommentare Kommentare beeinflussen den Programmablauf nicht. Sie dokumentieren den Quellcode.

Page 44: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 44/56 Informationsverarbeitung Abschnitt V

Variablen

Im allgemeinsten Sinne ist eine Variable ein Behälter für Rechen-größen , die im Verlauf eines (Rechen-)prozesses auftreten.

Jede Variable ist gekennzeichnet durch:

• einen Namen • einen Datentyp

• eine Größe • den Inhalt

Die Wahl von Variablennamen bleibt im Allgemeinen völlig dem Programmierer überlassen.

Aber: Zur Vereinfachung der Nachvollziehbarkeit empfiehlt es sich dringend, möglichst selbsterklärende Variablennamen zu verwenden.

Oft verwendet man die sog. Ungarische Notation.

{Datentyp} {Bezeichner} z. B.: nStunde, cBezeichnung

Page 45: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:13 45/56 Informationsverarbeitung Abschnitt V

Variablentypen

Präfix Datentyp Beispiel

n Integer nSize

b Boolean bBusy

sz null-terminierter String szLastName

p Zeiger pMemory

a Array aCounter

ch char chName

dw Double Word, 32 Bit dwNumber

w Word, 16 Bit wNumber

Page 46: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:14 46/56 Informationsverarbeitung Abschnitt V

Initialisierung von Variablen

Variablen müssen vor Verwendung initialisiert werden.

// Variablendeklaration

int h_anfang=0;

int min_anfang=0;

int h_ende=0;

int min_ende=0;

int Anfang_min=0;

int Ende_min=0;

int Dauer=0;

Page 47: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:14 47/56 Informationsverarbeitung Abschnitt V

Scope von Variablen

Quelle: wikipedia

Page 48: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:14 48/56 Informationsverarbeitung Abschnitt V

Mathematische Operationen

In jeder Programmiersprache sind mindestens die vier Grundrechenarten verfügbar.

nWerta = nWertb+1;

nWerta = nWertb-1;

nWerta = nWertb*2;

nWerta = nWertb/3;

nWerta++;

nWerta--;

Page 49: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:14 49/56 Informationsverarbeitung Abschnitt V

Verzweigungen

Abhängig von einer Bedingung wird durch Verzweigung ein anderer Programmfluss ausgewählt.

if (Ende_min < Anfang_min) Ende_min = Ende_min + 24 *60;

if (Ende_min < Anfang_min)

{

Ende_min = Ende_min + 24 *60;

}

Page 50: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:14 50/56 Informationsverarbeitung Abschnitt V

Wiederholungen

Wiederholen von Programmsequenzen werden durch verschiedene Schleifenkonstrukte erreicht.

Dauer=0;

for (i=0; i<6; i++)

{

Dauer++;

//Ausgabe auf der Konsole

Console.WriteLine("Dauer:

"+Dauer);

}

Dauer=0;

i=0;

while (i<6)

{

i++;

Dauer++;

//Ausgabe auf der Konsole

Console.WriteLine("Dauer:

"+Dauer);

}

Page 51: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:15 51/56 Informationsverarbeitung Abschnitt V

Blockbildung

Wiederholen von Programmsequenzen werden durch verschiedene Schleifenkonstrukte erreicht.

Dauer=0;

for (i=0; i<6; i++)

{

Dauer++;

//Ausgabe auf der Konsole

Console.WriteLine("Dauer:

"+Dauer);

}

if (Ende_min < Anfang_min)

{

Ende_min = Ende_min + 24 *60;

}

Page 52: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:15 52/56 Informationsverarbeitung Abschnitt V

Bearbeitung nicht mathematischer Elemente

Hierzu gehören die Bearbeitung von Texten, Bildern, etc.

h_anfang= Convert.ToInt32(Console.ReadLine());

nLength = chName.Length;

private void button1_Paint(object sender, PaintEventArgs e) {

Bitmap bmp = new Bitmap(255, 255);

for (int i = 0; i < 255; i++)

for (int j = 0; j < 255; j++)

bmp.SetPixel(j, i, Color.FromArgb(i, 0, j));

e.Graphics.DrawImage(bmp, 0, 0);

}

Page 53: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:15 53/56 Informationsverarbeitung Abschnitt V

Kommentare

Kommentare beeinflussen den Programmablauf nicht. Sie dokumentieren den Quellcode. // Hole Eingabewerte

Console.WriteLine("Anfangszeit [h]");

h_anfang= Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Anfangszeit [min]");

min_anfang=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Endezeit [h]");

h_ende=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Endezeit [min]");

min_ende=Convert.ToInt32(Console.ReadLine());

// Rechne Zeitangaben in Minuten um

Anfang_min = h_anfang * 60 + min_anfang;

Ende_min = h_ende * 60 + min_ende;

if (Ende_min < Anfang_min) Ende_min = Ende_min + 24 *60;

Dauer = Ende_min - Anfang_min;

// Ausgabe auf der Konsole

Console.WriteLine("Dauer: "+Dauer);

Page 54: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

54/56

Page 55: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:15 55/56 Informationsverarbeitung Abschnitt V

Aufgabe • Starten von Visual Studio (C#) • Erstellen des ersten Programms „Hello World“ • Programm „SendungsDauer“ • Programm „99 bottles of beer”

Page 56: Einführung in die Informationsverarbeitung - ijewski.de V.pdf · Modularisierung "Modularisierung" ist ein allgemeines Prinzip aus den Ingenieur-wissenschaften und dient insbesondere

17:15 56/56 Informationsverarbeitung Abschnitt V

Danke für heute!