0% fanden dieses Dokument nützlich (0 Abstimmungen)
38 Ansichten69 Seiten

Einfuherung in Der Informatik - Programmieren

Das Dokument beschreibt die Inhalte eines Programmierkurses. Es werden Themen wie Computer und Logik, Programmstrukturen, Entscheidungen, Schleifen und Datenmodellierung vorgestellt. Das Ziel des Kurses ist es, das Verständnis für Programmiersprachen, Softwareentwicklung und einfache Datenhierarchien zu verbessern.

Hochgeladen von

abdelrahmanhany069
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
38 Ansichten69 Seiten

Einfuherung in Der Informatik - Programmieren

Das Dokument beschreibt die Inhalte eines Programmierkurses. Es werden Themen wie Computer und Logik, Programmstrukturen, Entscheidungen, Schleifen und Datenmodellierung vorgestellt. Das Ziel des Kurses ist es, das Verständnis für Programmiersprachen, Softwareentwicklung und einfache Datenhierarchien zu verbessern.

Hochgeladen von

abdelrahmanhany069
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Data & Knowledge Engineering Group

Programmierung

M.Sc. Afraa Ahmad Alyosef


Email: [email protected]
Universitätsplatz 2, Gebäude 29, Raum: 005
Inhalt der Lehrveranstaltung
▪ Computer und Logik
▪ Programmstrukturen
▪ Programmplanungsprozess
▪ Entscheidungen
▪ Schleifen
▪ Datenmodellierung, E-R-Modelle
▪ Relationale Datenbanken

2
Ziel: Verständnis für
▪ Programmiersprachen
▪ Softwareentwicklung
▪ Einfache Datenhierarchien
▪ Flussdiagramme (Flowcharts) und Pseudocode
▪ Variablen, -namen und Wertzuweisungen
▪ Datentypen
Programmiersprachen
▪ Maschinensprachen

▪ (Höhere) Programmiersprachen

▪ Compiler
Maschinensprachen
▪ Maschinensprachen: Befehle aus dem Sprachschatz
des Prozessors
▪ Befehle sind für den Prozessor „verständlich“ und
damit ausführbar
▪ Für den Nutzer schwer zu lesen
▪ Z.B. Integer: Ergebnis := Sum(1+2+3+4+...+100);
▪ ... aber das sind immer noch nicht die Befehle, die ein
Prozessor versteht
▪ Der Befehl muss zwei Angaben enthalten :
durchzuführende Operation (Was!) Operations-Code
▪ verwendeter Operand (Womit!) Adresse
Maschinensprachen
▪ Prozessoren können nur numerische Instruktionen
ausführen
▪ 0000 0010 0010 0100 0000 0010 0000
▪ Beispiel :
C-Code: Maschinencode(hexadezimal)
int a = 2; C7 45 FC 02
Programmiersprachen
▪ (Höhere) Programmiersprachen: Befehle aus der
englischen Sprache oder dem Anwendungsgebiet
entnommen
▪ Verständlicher als der Maschinencode
▪ WHILE, UNTIL, DO, Preis = Menge * Einzelpreis
▪ Können nicht direkt vom Prozessor verarbeitet
werden
▪ VBA, C++, C#, COBOL, Java int main() {
int a = 2;
▪ Beispiel: C-Programmiersprache:
int b = 3;
int c = a + b;
return c;
}
Compiler
Compiler bzw. Interpreter transformieren die Befehle
aus der Programmiersprache in Maschinenbefehle
▪ Compiler: Übersetzung des kompletten Programms
in Maschinencode und Speicherung für eine spätere
Ausführung
▪ Interpreter: Online-Übersetzung und sofortige
Ausführung
Programmiersprachen - Syntax
▪ Grobe Definition
Unter einer Syntax verstehen wir Regeln nach denen
Texte strukturiert werden (Grammatik).

▪ Syntax
▪ Formale Grammatik (Muster und Regeln), die erlaubte
Konstruktionen festlegt und unerlaubte ausschließt
Zur Syntax von natürlichen Sprachen
▪ Die Syntax einer natürlichen Sprache ist die Menge
an Regeln, nach denen Sätze gebildet werden
dürfen
▪ Die Bedeutung oder der Sinn der gebildeten Sätze
ist dabei unerheblich.
▪ Jede Sprache hat ihre eigene Syntax; die Syntax
verschiedener Sprachen ähneln sich aber oft.
▪ Dabei ist es nicht immer klar, ob eine Regel noch
zur Syntax gehört oder ob es schon um den Sinn
geht

Beispiel: Substantive werden groß geschrieben.


Syntax: Beobachtungen
zu einem weiteren Programmtext

Beobachtungen
▪ Der Programmtext sieht sehr kryptisch aus
▪ Trotzdem gibt es offenbar wieder Regeln
▪ So scheint einem Doppelkreuz eine Ziffer zu folgen und
Zeilen muss man offenbar mit Prozentzeichen beenden
Syntax: Beobachtungen
zu einem weiteren Programmtext

Beobachtungen
▪ Wieder gibt es Regeln, die eingehalten werden,
▪ und wieder fällt es uns schwerer, diese zu
erkennen, da wir sofort über den Sinn nachdenken
Zur Syntax von Programmiersprachen

▪ Die Syntax einer Programmiersprache ist die Menge von


Regeln nach der Programmtexte gebildet werden dürfen
▪ Die Bedeutung oder der Sinn der Programmtexte ist
dabei egal
▪ Jede Programmiersprache hat ihre eigene Syntax; die
Syntax verschiedener Sprachen ähneln sich aber oft
Programmiersprachen - Syntax
▪ Syntax
▪ Formale Grammatik (Muster und Regeln), die erlaubte
Konstruktionen festlegt und unerlaubte ausschließt
▪ Syntaktische Fehler
▪ Verstöße gegen das Regelwerk
▪ Werden durch den Compiler bzw. Interpreter
entdeckt
▪ Lassen sich dann auch beseitigen
▪ Ausführung eines Programms, wenn es syntaktisch
korrekt ist? Ja
▪ Auch schon die „richtigen“ Ergebnisse? Nein
▪ Programm muss auch logisch korrekt sein!
Übung: Zur Syntax von
Programmiersprachen
Welche der folgenden Regeln sind Syntax-Regeln?

1. Bezeichner dürfen nicht mit einer Ziffer anfangen


2. Programme müssen in endlicher Zeit ein Ergebnis
produzieren
3. Öffnende und schließende geschweifte Klammern
müssen» balanciert« sein
4. Methoden von Null-Objekten dürfen nicht
aufgerufen werden
5. Variablen müssen vor ihrer ersten Benutzung
deklariert werden
Übung: Zur Syntax von
Programmiersprachen
Welche der folgenden Regeln sind Syntax-Regeln?

1. Bezeichner dürfen nicht mit einer Ziffer anfangen


2. Programme müssen in endlicher Zeit ein Ergebnis
produzieren
3. Öffnende und schließende geschweifte Klammern
müssen» balanciert« sein
4. Methoden von Null-Objekten dürfen nicht
aufgerufen werden
5. Variablen müssen vor ihrer ersten Benutzung
deklariert werden
Programmiersprachen - Semantik

▪ Grobe Definition
Unter einer Semantik verstehen wir die Zuordnung
von Bedeutung zu Texten
▪ Semantik beschreibt die Bedeutungslehre
▪ Die Semantik stellt die Beziehung zwischen den
Zeichen und deren Bedeutung her
▪ Sie prüft auch, ob es sich um wahrheitsgetreue
Aussagen kann
▪ Syntaktische falsche Wörter / Programme haben
keine Semantik
Programmiersprachen – Laufzeitfehler
▪ Spezielle Form von logischen Fehlern
▪ Werden vom Laufzeitsystem des Programms
abgefangen
▪ Typisches Beispiel: Division durch Null
▪ Beschreibung in Pseudocode
▪ Get inputNumber1.
▪ Get inputNumber2.
▪ Compute calculatedAnswer as
inputNumber1/inputnumber2.
▪ Print calculatedAnswer.

▪ Syntaktisch korrekt
▪ Logisch korrekt?
▪ Es fehlt die Kontrolle auf den Wert von inputNumber2
Programmiersprachen - Aufgabe
Eingabe einer Zahl, Multiplikation mit 2 und Ausgabe
des Produktes

▪ Beschreibung in Pseudocode
▪ Get inputNumber.
▪ Compute calculatedAnswer as
inputNumber times 2.
▪ Print calculatedAnswer.

▪ Syntaktisch und semantisch korrekt


Beispiel: Syntax - Semantik
Typische Syntaxfehler sind im folgenden Beispielcodefragment
aufgelistet:
Beispiel: Syntax - Semantik
Das folgende Beispiel illustriert einen typischen Semantikfehler:
Logische (Semantik) Fehler
▪ Logische (Semantik) Fehler (Denkfehler beim
Programmieren) sind vielfach schwer zu entdecken
▪ Programm ist ohne syntaktische Fehler
▪ Aber:
▪ Einige Anweisungen sind nicht in der richtigen
Reihenfolge
Logische (Semantik) Fehler
▪ Logische (Semantik) Fehler (Denkfehler beim
Programmieren) sind vielfach schwer zu entdecken
▪ Aber:
▪ Einige Anweisungen sind nicht in der richtigen
Reihenfolge
▪ Einige Anweisungen fehlen
Logische (Semantik) Fehler
▪ Logische (Semantik) Fehler (Denkfehler beim
Programmieren) sind vielfach schwer zu entdecken
▪ Aber:
▪ Einige Anweisungen sind nicht in der richtigen
Reihenfolge
▪ Einige Anweisungen fehlen
▪ Einige Anweisungen betreffen nicht die gewünschte
Lösung
Logische (Semantik) Fehler
▪ Logische (Semantik) Fehler (Denkfehler beim
Programmieren) sind vielfach schwer zu entdecken
▪ Aber:
▪ Einige Anweisungen sind nicht in der richtigen
Reihenfolge
▪ Einige Anweisungen fehlen
▪ Einige Anweisungen betreffen nicht die gewünschte
Lösung

▪ Ursachen für logische Fehler: der Mensch


▪ Mangelnde Konzentration
▪ Geringe Bereitschaft zum gründlichen Nachdenken
▪ Unwissenheit
▪ Niemand kann beim Denken niemals Fehler machen
Logische (Semantik) Fehler
▪ Konsequenz
▪ Logische Fehler müssen gefunden werden
▪ Nutzung von Teststrategien
▪ Organisiere das Programmieren so, dass die
Wahrscheinlichkeit für logische Fehler möglichst
gering ist

▪ Semantische Fehler
▪ Logische Fehler werden auch als semantische Fehler
bezeichnet
▪ Verwendung eines syntaktisch korrekten Befehls, aber
dieser Befehl macht an dieser Stelle im Programm
keinen Sinn
Zwei Wahrheiten und eine Lüge
Von den folgenden Aussagen sind zwei wahr und eine ist falsch.
Erkenne die falsche Aussage und erkläre warum!

1. Als Application Software (Anwendungssoftware) werden


Programme bezeichnet, die helfen, den Computer zu
managen, wie beispielsweise Betriebssysteme.

2. Als Daten werden Texte, Zahlen und andere Informationen


bezeichnet, die vom Computer verarbeitet werden.

3. Computersprachen haben Regeln zum Gebrauch der Worte


und Satzzeichen. Diese Regeln werden als Syntax bezeichnet.
Zwei Wahrheiten und eine Lüge
Von den folgenden Aussagen sind zwei wahr und eine ist falsch.
Erkenne die falsche Aussage und erkläre warum!

1. Als Application Software (Anwendungssoftware) werden


Programme bezeichnet, die helfen, den Computer zu
managen, wie beispielsweise Betriebssysteme.

2. Als Daten werden Texte, Zahlen und andere Informationen


bezeichnet, die vom Computer verarbeitet werden.

3. Computersprachen haben Regeln zum Gebrauch der Worte


und Satzzeichen. Diese Regeln werden als Syntax bezeichnet.

wie Textverarbeitung bezeichnet.


Falsche Aussage ist eins. Mit Anwendungssoftware werden Programme zur Anwendung,
Ziel: Verständnis für
▪ Programmiersprachen
▪ Softwareentwicklung
▪ Einfache Datenhierarchien
▪ Flussdiagramme (Flowcharts) und Pseudocode
▪ Variablen, -namen und Wertzuweisungen
▪ Datentypen
Softwareentwicklung
▪ Ein gutes Computerprogramm entsteht nicht durch das direkte Einhacken
des Codes in die Tastatur.

▪ Die Entwicklung von Software ist ein komplexer Prozess, der sich in
mehrere Phasen einteilen lässt.

▪ Phasen der Softwareentwicklung (Programmierprozess)

▪ Analyse und Verständnis des Problems

▪ Planung der Logik

▪ Kodierung und Übersetzung

▪ Test des Programms

▪ Überführung in die Nutzung

▪ Wartung des Programms


Softwareentwicklung

business-wissen.de
Softwareentwicklung
Probleme von Systementwicklungen

▪ Die Entwicklung von Informationssystemen ist komplex,


teuer und mit vielen Risiken behaftet

▪ Systementwicklungen kosten häufig mehr und dauern


länger als geplant

▪ Ca. 1/3 aller komplexen Systementwicklungen werden vor


Fertigstellung abgebrochen

▪ Viele Systeme funktionieren nicht wie geplant oder werden


an den Anforderungen vorbei entwickelt
Probleme von Systementwicklungen

▪ Beispiele

▪ Denver International Airport


▪ wurde 18 Monate verspätet eröffnet
▪ jeder Tag Verzögerung verursachte ca. eine Mio. US
$ Verlust
▪ Grund: fehlerhafte Software zur
Gepäcktransportsteuerun

▪ Maut-System in Deutschland
▪ Die verspätete Inbetriebnahme verursachte
Einnahmeverluste nahezu in Milliardenhöh
Risikofaktoren bei Systementwicklungen

▪ Nicht ausreichende Präzision der Anforderungen


▪ Häufige Änderungen der Anforderungen
▪ Entwicklung der falschen Funktionalität
▪ Unrealistische Zeit- und Kostenpläne
▪ Probleme innerhalb des Projektteams:
▪ organisatorische Defizite
▪ mangelnde Qualifikation
▪ Ausscheiden wichtiger Teammitglieder
▪ Qualitätsmängel bei extern vergebenen Aufgaben
▪ Verwendung der falschen Technologien
▪ Unpassende Benutzerschnittstelle
Phase: Analyse und Problemverständnis
▪ Die schwierigste Phase
▪ Meistens können die Anwender ihre Anforderungen nicht ausreichend
artikulieren oder spezifizieren
▪ Anforderungen wechseln während des Analyse- und Erstellungsprozesses
▪ Softwareentwickler müssen die Funktionalitäten der Nutzeraufgaben
verstehen lernen
▪ Fehler beim Problemverständnis sind die häufigsten Ursachen für das
Scheitern von Projekten
▪ Durchführung der Analyse durch spezielle Analysten oder durch
Programmierer
▪ Lastenheft

▪ Was und wofür etwas gemacht werden soll (Fachkonzept)


▪ Pflichtenheft

▪ Was und womit etwas realisiert werden soll


Analyse und Problemverständnis - Beispiel
▪ Aufgabe aus der Personalabteilung

▪ Erstellung einer Einladungsliste mit allen Beschäftigen mit


mehr als 5-jähriger Zugehörigkeit
▪ Eine einfache Aufgabe? Nein
▪ Es ergeben sich für den Programmierer die folgenden Fragen

▪ Nur die Vollzeitbeschäftigten?


▪ Nur die unbefristeten Mitarbeiter
▪ Zugehörigkeit bis zum Tag der Veranstaltung?
▪ Nur Mitarbeiter, die unterbrochen im Unternehmen tätig waren?
▪ Welche Informationen sollen auf die Liste
▪ Soll die Liste in alphabetischer Reihenfolge oder in Abhängigkeit
von der Dauer der Zugehörigkeit sortiert werden?
Phase: Planung der Logik
▪ Plane die einzelnen Schritte (Steps) des
Programms
▪ Verwende Werkzeuge (Tools) zur Planung

▪ Flussdiagramme (Flowcharts)
▪ Bildhafte Repräsentation der Logik
▪ Tool: Microsoft Office Visio

▪ Kontrolliere die erstellte


Logik mittels „Walk through“
Phase: Planung der Logik
▪ Pseudocode
▪ Mischung aus natürlicher (Englischer) Sprache und einer
höheren Programmiersprache (Pascal oder C)

▪ Ist exakter als eine Beschreibung in natürlicher Sprache,


▪ Aber noch nicht so detailliert wie eine Implementation als
Computerprogramm. Pseudocode:

▪ Schrittweise Verfeinerung CurreentMax=A [0]


For i=1 to n-1 do
▪ Tool: Jana
If A [i] > CurreentMax then
CurreentMax = A [i]
Return current Max

▪ Kontrolliere die erstellte Logik mittels „Walk through“


Phase: Planung der Logik Beispiel
▪ Beispiel: Finde das größte Element in einem Array Flußdigramm
▪ Algorithmus arrayMax(A, n)
▪ Input Array A mit n Integer-Wert
▪ Output größtes Element von A

Pseudocode:
CurreentMax=A [0]
For i=1 to n-1 do
If A [i] > CurreentMax then
CurreentMax = A [i]
Return current Max
Phase: Planung der Logik Beispiel

start

Get
inputNumber
Start
get inputNumber

Compute calculatedAnswer as compute calculatedAnswer as


inputNumber times 2 inputNumber times 2
print calculatedAnswer
Stop
Print
calculatedAnswer

stop
Phase: Kodierung und Übersetzung
▪ Auswahl der Programmiersprache
▪ Schreiben der Anweisungen, Instruktionen in dieser Programmiersprache
▪ Übertrage mittels Compiler oder Interpreter diese Anweisungen in die
Maschinensprache
▪ Erstelle das syntaktisch korrekte Programm
Eingabe-
daten

Schreibe und Compiliere Nein


Syntax- Ausführbares
Korrigiere den das
fehler? Programm
Programmcode Programm

Ja

Liste mit Ergebnis


Syntaxfehlern

Erzeugen eines ausführbaren Programms


Phase: Test des Programms
▪ Test: Überprüfbarer und jederzeit wiederholbare Nachweis der Korrektheit
eines Programms; relativ zu vorher festgelegten Anforderungen
▪ Verwendung von Testfällen
▪ Test bereits Schon sehr einfache Programme benötigen für einen
vollständigen bzw. erschöpfenden eine immens hohe Anzahl von
Testfällen
▪ Verwendung eines angemessenen Tests (Stichprobe).
▪ Aus diesem Grund kann man durch einen Test nur die
Anwesenheit nicht aber die Abwesenheit von Fehlern nachweisen

▪ Ziel des Testprozesses: Minimierung des Restrisikos verbleibender Fehler


▪ Testprozess
▪ Programmausführung mit verschiedenen Testdaten
▪ Auswahl der Daten möglichst so, dass alle Programmzweige
durchlaufen werden
▪ Erkennen von logischen Fehlern und ihre Beseitigung
▪ Beispiel Liste für Personalabteilung
▪ Test des Programms nur mit Langzeitbeschäftigten? Nein
▪ Auch Beschäftigte mit „kurzer“ Beschäftigungszeit
Ziel: Verständnis für

▪ Programmiersprachen
▪ Softwareentwicklung
• Einfache Datenhierarchien
▪ Flussdiagramme (Flowcharts) und Pseudocode
▪ Variablen, -namen und Wertzuweisungen
▪ Datentypen
Einfache Datenhierarchien
▪ Ordnung der Daten nach ihrer Größe
▪ Character, Zeichen:

▪ Einzelnes Symbol (Zeichen, Buchstabe, spezielles


Symbol)
▪ Field, Feld:
▪ Gruppe von Zeichen formen ein einzelnes Feld „Tom“
▪ Record, Satz:
▪ Gruppe von zusammengehörenden Feldern
▪ Tom“;“Universität Magdeburg“, [email protected]
▪ File, Datei
▪ Gruppe von zusammenhängenden Records
▪ Datenbank
▪ Sammlung von zusammenhängenden Dateien (Tabellen)
Einfache Datenhierarchien

Ebene 0
Bit

Ebene 1

Character, Zeichen
Ebene 2
Field, Feld

Ebene 3
Record, Satz

Ebene 4 File, Datei

Ebene 5 Datenbank
Einfache Datenhierarchien-Beispiel:

Füllen Sie die leeren Blasen mit den richtigen Begriffen


(Datenhierarchien) aus!

Student
Student ID first name last name birthday
21553 Alex Paul 21.02.2002
21225 Alina Wohmann 12.06.2001
19988 Nils Thil 30.042.002

Course
Credit
Course ID Couse Name Points
251 Information Retrieval 5
901 Machine Learning 5
105 Computer Vision 6
Einfache Datenhierarchien-Beispiel:

Füllen Sie die leeren Blasen mit den richtigen Begriffen


(Datenhierarchien) aus! Datenbank

Field/ Tabelle
Feld Student /Datei
Student ID first name last name birthday
21553 Alex Paul 21.02.2002
Record
21225 Alina Wohmann 12.06.2001
/ Satz
19988 Nils Thil 30.042.002

Character/
Zeichen
Course
Credit
Course ID Couse Name Points
251 Information Retrieval 5
901 Machine Learning 5
105 Computer Vision 6
1. Computer und Logik
Ziel: Verständnis für

▪ Computerkomponenten und -operationen


▪ Programmiersprachen
▪ Softwareentwicklung
▪ Einfache Datenhierarchien
▪ Flussdiagramme (Flowcharts) und Pseudocode
▪ Variablen, -namen und Wertzuweisungen
▪ Datentypen
Regeln für Namen
▪ Identifikation von Klassen, Methoden oder Variablen über einen Namen
▪ class Hello

▪ Jede Sprache hat ihre eigenen Regeln für die Vergabe der Namen
▪ die meisten erlauben Buchstaben (A,b,…) und Ziffern (0, 1, 2, … 9)
▪ viele erlauben auch noch Sonderzeichen ($, _ , …)
▪ Für jede Programmiersprache müssen die entsprechenden Regeln erlernt
werden

▪ Länge von Namen


▪ unterschiedlich in den einzelnen Sprachen
▪ heute üblich bis zu 254 Zeichen ▪ Mnemonik
Gedächtniskunst
▪ Case Sensitive Eselsbrücken
▪ Große oder kleine Buchstaben identisch? Nein
▪ Hello , hello, HELLO drei unterschiedliche Namen

▪ Für unsere Veranstaltung


▪ Namen bestehen aus einem Wort
▪ Namen sollen eine Bedeutung widerspiegeln (Mnemonik)
Verwendung und Namen von Variablen
▪ Variable
▪ Speicherplatz im Hauptspeicher, der durch einen Namen beschrieben
wird
▪ Es wird nicht die physikalische Adresse des Speicherplatzes (zum
Programmieren) benötigt
▪ Speicherplatz kann immer wieder überschrieben werden
▪ Namen von Variablen

▪ Nutze Regeln wie für Klassen und Methoden


▪ Pseudocode (1)
▪ compute calculatedAnswer as inputNumber times 2
▪ Zwei Aktionen
▪ 1. Multipliziere den aktuellen Inhalt von Variable inputNumber mit 2
▪ 2. Speichere dieses Ergebnis in der Variable calculatedAnswer
▪ Pseudocode (2)
▪ calculatedAnswer = inputNumber * 2
▪ Zeichen „ = „ ist der Zuweisungsoperator (assignment operator)
Verwendung und Namen von Variablen
// variable defined
int marks = 10;
// assign a new value
marks = 33;

10 33

Memory spaces Memory spaces


Wertzuweisungen
➢ In der Mathematik
calculatedAnswer = 2 * inputNumber ist identisch mit

inputNumber * 2 = calculatedAnswer

➢ Zeichen “= “ bedeutet gleich, Gleichheit


➢ In der Programmierung
➢ Das Ergebnis der „rechten Seite“ vom Zuweisungsoperator wird in der
Variable (Speicherplatz) der linken Seite gespeichert.
➢ Zeichen “ = “ bedeutet Wertzuweisung
➢ calculatedAnswer = 2 * inputNumber ist möglich
➢ 2 * inputNumber = calculatedAnswer ist NICHT möglich
➢ i = i+1
➢ Konstanten
➢ Konstanten bezeichnen auch einen Speicherplatz im Hauptspeicher
➢ ABER: Der Inhalt kann nicht überschrieben werden
➢ PI = 3.142
➢ Umsatzsteuer = 0.19
Ausdrücke für Wertzuweisungen 1/4

➢ Verwendung von Operatoren

o +, -, /, *
o == , !=, AND , OR
➢ Prioritäten

o Prioritäten regeln die Reihenfolge bei der Ausführung


o Punktrechnung vor Strichrechnung, …
➢ Verwende Klammern zur besseren Strukturierung
➢ Zuweisungsoperator ‘=‘ hat die kleinste Priorität
Ausdrücke für Wertzuweisungen 2/4
Function call, scope,
1 () [] -> . ::
array/member access

! ~ - (most) unary operators,


2 + * & sizeof type sizeof and type casts
cast ++ -- (right to left)

Multiplication, division,
3 * / % MOD
modulo

4 + - Addition and subtraction

5 << >> Bitwise shift left and right

Comparisons: less-than
6 < <= > >=
and greater-than

Comparisons: equal and


7 == !=
not equal
8 & Bitwise AND
Bitwise exclusive OR
9 ^
(XOR)

Bitwise inclusive (normal)


10 |
OR
11 AND Logical AND
12 OR Logical OR
Conditional expression
13 ?:
(ternary)

= += -
Assignment operators
14 = *= /= %= &= |=
(right to left)
^= <<= >>=
Ausdrücke für Wertzuweisungen 3/4

➢ Beispiele:
➢ 𝐴 + 𝐵 ∗ 𝐶 ≡𝐴+ 𝐵 ∗ 𝐶

➢ 𝐴 𝑂𝑅 𝐵 𝐴𝑁𝐷 𝐶 ≡ 𝐴 𝑂𝑅 (𝐵 𝐴𝑁𝐷 𝐶)

➢ 𝐴 𝐴𝑁𝐷 𝐵 == 𝐶 ≡ 𝐴 𝐴𝑁𝐷 (𝐵 == 𝐶)

➢ Übung:
➢ 𝐴 − 𝐵 + C /𝐷 ∗ E ≡

➢ 𝐴 ∗ 𝐵 𝑂𝑅 𝐶 + 𝐷 𝐴𝑁𝐷 𝐸 ∗ 𝐹 ≡
Ausdrücke für Wertzuweisungen 3/4

➢ Beispiele:
➢ 𝐴 + 𝐵 ∗ 𝐶 ≡𝐴+ 𝐵 ∗ 𝐶

➢ 𝐴 𝑂𝑅 𝐵 𝐴𝑁𝐷 𝐶 ≡ 𝐴 𝑂𝑅 (𝐵 𝐴𝑁𝐷 𝐶)

➢ 𝐴 𝐴𝑁𝐷 𝐵 == 𝐶 ≡ 𝐴 𝐴𝑁𝐷 (𝐵 == 𝐶)

➢ Übung:
➢ 𝐴 − 𝐵 + C /𝐷 ∗ E ≡ 𝐴 − 𝐵 + ((C/𝐷) ∗ E )

➢ 𝐴 ∗ 𝐵 𝑂𝑅 𝐶 + 𝐷 𝐴𝑁𝐷 𝐸 ∗ 𝐹 ≡ 𝐴 ∗ 𝐵 𝑂𝑅 ( 𝐶 + 𝐷 𝐴𝑁𝐷(𝐸 ∗ 𝐹 ) )
Ausdrücke für Wertzuweisungen 4/4

➢ Übung:

Gegeben sind: 𝐴 = 8.0 B = 3.0 C = 4.0 D = 2.0 E = 1.0 und


➢ 𝐹 = 𝐴 − 𝐵 + 𝐶 Τ𝐷 *E

➢ G = (𝐴 − 𝐵) + ((𝐶 Τ𝐷) *E)

➢ 𝐻 = (𝐴 − (𝐵 + 𝐶))Τ(𝐷 *E)

➢ 𝐼 = ((𝐴 − 𝐵 + 𝐶) Τ𝐷 )*E

Rechene Sie F, G, H und I ! Welche Zuweisungen sind äquivalent!


Ausdrücke für Wertzuweisungen 4/4

➢ Übung:

Gegeben sind: 𝐴 = 8.0 B = 3.0 C = 4.0 D = 2.0 E = 1.0 und


➢ 𝐹 = 𝐴 − 𝐵 + 𝐶 Τ𝐷 *E

➢ G = (𝐴 − 𝐵) + ((𝐶 Τ𝐷) *E)

➢ 𝐻 = (𝐴 − (𝐵 + 𝐶))Τ(𝐷 *E)

➢ 𝐼 = ((𝐴 − 𝐵 + 𝐶) Τ𝐷 )*E

Rechene Sie F, G, H und I ! Welche Zuweisungen sind äquivalent!

➢ Lösung:
➢ 𝑭 = 7.0

➢ 𝑮 = 7.0

➢ 𝑯 = 0.5

➢ 𝑰 = 4.5

d.h. 𝑭 ≡ G
Zuweisungen: Richtig / Falsch

1. 𝐴 + 𝐵 = 𝑠𝑢𝑚𝐴𝐵
2. 𝑠𝑢𝑚𝐴𝐵 = 𝐴 + 𝐵
3. 23 = 𝑥
4. 𝑦 = 3 + 𝑥
5. 𝑧 = 3 ∗ 7
6. 𝑦 ∗ 5 = 6 − 𝑥
7. 𝑥 = 3 + 1
𝑦 𝑥
8. 𝑧
=9−5
Ziel: Verständnis für

▪ Programmiersprachen
▪ Softwareentwicklung
▪ Einfache Datenhierarchien
▪ Flussdiagramme (Flowcharts) und Pseudocode
▪ Variablen, -namen und Wertzuweisungen
▪ Datentypen
Einfache Datentypen

▪ Einfache Datentypen

▪ Numerische
▪ Integer (ganzzahlig)
▪ Real (reell)

▪ Zeichenketten (strings)
▪ Zahlen werden im Computer als Dual-Zahlen gespeichert
▪ Zahlendarstellung zur Basis 2 (Normal Dezimalsystem)

▪ In einem Bit können zwei Zustände (0 oder 1) gespeichert


werden

▪ Beschreibung von Zahlen als Kette von 0 und 1


▪ „Struktur“ der Kette ist unterschiedlich für ganze und reelle
Zahlen
Ganze Zahlen
Ganze Zahlen (8 Bit), 256 verschiedene Kombinationen

1 0 1 0 1 1 0 0
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
1*27 + 0*26 + 1*25 + 0*24 + 1*23 + 1*22 + 0*21 + 0*20 = 172

▪ 1 Byte = 8 Bit
▪ Üblicher Speicherbereich
▪ 1 kB = 1024
▪ 1. Bit für das Vorzeichen Byte
▪ 1 MB = 1024 kB
▪ 2 Byte, Wertebereich -32768 bis 32767
▪ 4 Byte, Wertebereich -2.147.483.648 bis 2.147.483.647
▪ Wird einer 2 Byte ganzzahliger Variablen ein Wert < 32767
zugewiesen

▪ Laufzeitfehler
▪ Überlege vorab, welche Wertebereiche benötigt werden
Reelle Zahlen
▪ Halblogarithmische Darstellung
▪ Die erste gültige Ziffer ist unmittelbar rechts vom Dezimaltrennzeichen
▪ 314,12345 wird überführt in 0,31412345 * 103
▪ Negativer oder positiver Exponent
▪ Gültige Ziffernfolge: Mantisse
▪ Durch Mantisse und Exponent ist jede reelle Zahl eindeutig
bestimmt

▪ Reelle Zahlen in 4 Byte (32 Bit)


▪ Byte 1: Vorzeichen und Exponent (einschließlich
Vorzeichen)
▪ Byte 2 bis 4: Mantisse
▪ Problem: Was ist, wenn die Mantisse nicht in 24 Bit
gespeichert werden kann?
▪ Die Stellen werden abgeschnitten
▪ Schlussfolgerung: Genauigkeit der Mantisse: 6 bis 7
(dezimale) Stellen
▪ Typische Datenformate 4, 8 oder 16 Byte
Zeichenketten
▪ Einzelnes Zeichen, Character
▪ ‘C‘ oder “C“
▪ Wird in einem Byte gespeichert
▪ character erstesZeichen
▪ character finalZeichen = ‘E‘

▪ Die Bitstruktur für die Zeichen ist standardisiert


▪ ASCII-Tabelle
▪ Mehrere zusammenhängende Zeichen, Zeichenkette, string
▪ Die Zeichen werden zusammenhängend gespeichert
▪ Wie wird das Ende eines Strings erkannt?
▪ Speichern der aktuellen Länge des Strings in einem oder
mehreren Bytes
▪ Verwendung eines speziellen Ende-Kennzeichens
Deklaration von Variablen
▪ Variablendeklaration
▪ Datentyp und Name der Variablen
▪ Entsprechend des Datentyps wird Speicherplatz allokiert
▪ Adresse wird dem Variablennamen zugeordnet
▪ Verwendung der folgenden Datentypen
▪ numeric: Ganzzahlige und reelle Daten
▪ character: Einzelnes Zeichen
▪ string: Zeichenkette
▪ Beispiel
▪ numeric taxRate
▪ character middleInitial
▪ string inventoryItem
▪ Welche Initialisierungswerte gelten für deklarierte Variablen?
▪ In den einzelnen Sprachen unterschiedlich
▪ default values: 0 für numeric
▪ garbage values: unbekannt für strings oder Objekte
Beispiele Wertzuweisungen

string lastName, firstName


character middleInitial
numeric quizScore, homeworkScore

Gültige Wertzuweisungen Ungültige Wertzuweisungen


lastName = “Parker“ lastName = Parker
firstName = “Laura“ “Parker“ = lastName
lastName = firstName lastName = quizScore
middleInitial = ‘P‘ middleInitial = P
middleInitial = ‘ ‘ middleInitial = lastName
quizScore = 86 homeworkScore = firstName
homeworkScore = quizScore homeworkScore = “92“
homeworkScore = 89 quizScore = “NERO“
quizScore = homeworkScore + 25 firstName = 23
homeworkScore = 3*10 100 = homeworkScore
Zwei Wahrheiten und eine Lüge

Von den folgenden Aussagen sind zwei wahr und eine ist falsch.
Erkenne die falsche Aussage und erkläre warum!

1. Der Datentyp einer Variablen definiert den Wertetyp und die


zulässigen Operationen für diese Variable.

2. Wenn string name , dann ist name = “TOM“ zulässig.

3. Wenn numeric salary , dann ist salary = “12.50“ zulässig.


Zwei Wahrheiten und eine Lüge

Von den folgenden Aussagen sind zwei wahr und eine ist falsch.
Erkenne die falsche Aussage und erkläre warum!

1. Der Datentyp einer Variablen definiert den Wertetyp und die


zulässigen Operationen für diese Variable.

2. Wenn string name , dann ist name = “TOM“ zulässig.

3. Wenn numeric salary , dann ist salary = “12.50“ zulässig.

vom Datentyp string zugewiesen werden


Falsche Aussage ist drei. Einer Variablen vom Datentyp numeric kann kein Wert

Das könnte Ihnen auch gefallen