SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

SOFTWARE
Typenbezeichnung oder eine Typenbeschreibung ist. Die Konvention, alle verwendeten Bezeichnungen am Anfang eines Programms zu vereinbaren, hat zudem den großen Vorteil, daß ein Compiler bei jeder im Programm vorkommenden Bezeichnung prüfen kann, ob sie überhaupt vereinbart ist. Im negativen Fall, der z. B. durch Schreibfehler verursacht wird, kann der Compiler durch eine entsprechende Fehlermeldung auf den Lapsus aufmerksam machen. Die zusätzliche Redundanz wird also wiederum zur Erhöhung der Programmiersicherheit ausgenutzt. Wie werden Datentypen in einem Programm eingeführt, und welche Wertbereiche können durch Computer zweckmäßig dargestellt werden? Vorerst sei bemerkt, daß es üblich ist, Datentypen in verschiedene Arten einzuteilen. Das wesentliche Merkmal eines Typs ist die Struktur seiner Werte. Ist ein Wert unstrukturiert, also nicht in einzelne Komponenten zerlegbar, so wird er - und damit auch sein Typ - als skalar bezeichnet. Ist er dagegen in einzelne Komponenten zerlegbar, nennt man ihn strukturiert.

Konstante

Konstante sind Datenwerte, die direkt in der Anweisungsfolge eines Programms eingetragen werden können (Standardbezeichnung, z. B. Zahlen). Als Konstante bezeichnet man üblicherweise auch Namen für Datenwerte (frei wählbare Bezeichnung). Durch die Vereinbarung von Konstanten-Namen wird ein ganz bestimmter Datenwert mit einem Namen versehen und ist über diesen Namen jederzeit zugreifbar. Der Wert einer Konstanten kann nicht geändert werden. Konstante dienen der Übersichtlichkeit und Lesbarkeit von Programmen; z. B.:

                                       Pi = 3,1415 
                                       Maximum = 10000 
                                       Autor = "Johann Wolfgang von Goethe" 
                                       

Bei der Programmiersprache C findet man zwei Varianten der Konstantenvereinbarungen:

                                       const float Pi = 3.1415
                                       #define Pi 3.1415
                                       

Die erste Form entspricht dem aktuellen ANSI-Standard und ist zu bevorzugen. Die zweite Variante ist älter und definiert eigentlich nur ein Makro. Vor der eigentlichen Übersetzung wird im gesamten Text die Zeichenkette "Pi" durch "3.1415" ersetzt.

Variablen

Anstelle der behandelten Datengrößen werden im Programm Namen eingesetzt, die als variable Größen oder kurz als "Variablen" bezeichnet werden. Jede Variable besitzt also einen Namen und einen Wert. Sie stellt somit einen "Behälter" für ihren Wert dar. Der Compiler reserviert entsprechend dem Typ eine bestimmte Menge Speicherplatz für den "Behälter". Die Variable kann als Benennung von einem oder mehreren Speicherworten aufgefaßt werden.

In C gibt es zwei verschiedene Arten von Vereinbarungen, Definitionen und Deklarationen.Der Begriff der Vereinbarung umfasst sowohl die Definition als auch die Deklaration.

Definitionen

  • legen die Art der Variablen fest:
    • den Typ,
    • die Speicherklasse,
    • Typ-Attribute (type qualifier) wie const und volatile fest
  • sorgen gleichzeitig für die Reservierung des Speicherplatzes.
Deklarationen legen nur die Art der Variablen bzw. die Schnittstelle der Funktionen, d. h. die Funktionsköpfe, fest. Während Definitionen von Variablen und Funktionen dazu dienen, Datenobjekte bzw. Funktionen im Speicher anzulegen, machen Deklarationen Datenobjekte bzw. Funktionen bekannt, die in anderen Übersetzungseinheiten definiert werden oder in derselben Übersetzungseinheit erst nach ihrer Verwendung definiert werden.

Eine Deklaration umfasst stets den Namen eines Objektes und seinen Typ. Damit weiß der Compiler, mit welchem Typ er einen Namen verbinden muß. Kurz ausgedrückt:

Definition = Deklaration + Reservierung des Speicherplatzes

Die Zuweisung eines Wertes an eine Variable ist eine fundamentale Operation in Computerprogrammen. Eine Variable zeigt eine Verhaltensweise, die einer Wandtafel ähnlich ist: Sie kann jederzeit gelesen werden (sie liefert den Wert) andererseits ausgewischt und überschrieben werden. In fast allen höheren Programmiersprachen müssen Variablen vor ihrer Verwendung deklariert werden - so auch in C. Es wird dabei der Typ der Variablen (siehe unten: Datentypen) und ein Bezeichner angegeben. Z. B.:

                                       int Anzahl, Summe, I, J;
                                       float DM_Betrag;
                                       

Die Zuweisung eines Wertes an eine Variable wird im allgemeinen durch das Operatorzeichen = bezeichnet (zur Unterscheidung vom Gleichheitszeichen verwenden manche Programmiersprachen auch einen Linkspfeil oder ":="):

Wichtig ist die Unterscheidung zwischen Wertzuweisung und Gleichung im mathematischen Sinn. So würde die mathematische Gleichung

X = X + 1

wenig Sinn machen (es gibt nämlich keine Lösung), in einer Programmiersprache bedeutet der Ausdruck jedoch "Addiere 1 zum Wert von X und speichere das Ergebnis wieder in X" oder kürzer "Erhöhe X um 1". Noch ein Beispiel:

In C ist eine Wertzuweisung auch bei der Definition erlaubt. Es handelt sich um ein sehr sinnvolles Feature, denn eine Variable besitzt nach der Deklaration noch keinen definierten Wert. Nicht initialisierte Variablen (d. h. Variablen ohne Anfangswert) sind oft die Ursache von Programmfehlern. Beispiel:

                                       int I = 0, Anzahl = 111;
                                       float X = 0.0;
                                       
Merke: Steht die Variable auf der rechten Seite einer Zuweisung, bezeichnet sie ihren Inhalt. Steht die Variable auf der linken Seite einer Zuweisung bezeichnet Sie einen Behälter.

Ausdrücke

Ein Ausdruck (engl. Expression) ist eine Formel (eine Rechenregel), die stets einen (Resultat-)Wert liefert. Der Ausdruck besteht aus Operanden (Konstante, Variablen und Funktionen) und Operatoren. Operatoren werden üblicherweise eingeteilt in
  • monadische Operatoren = einstellige Operatoren
    (z. B. Vorzeichen +/- vor Zahlen, NOT-Operator vor Binärwerten)
  • dyadische Operatoren = zweistellige Operatoren
    (z. B. die Operatoren der Grundrechenarten ( + - * / ), AND, OR bei Binärwerten)

Sofern Ausdrücke mit mehr als einem Operator vorkommen, ist die Reihenfolge ihrer Ausführung eindeutig festzulegen. Dies kann durch drei Möglichkeiten erfolgen:

  • Reihenfolge der Aufschreibung von links nach rechts
  • allgemeine Vorrangregeln (beim Rechnen "Punkt vor Strich")
  • Klammerung um die einzelnen Operanden

Die Hierarchie nimmt in der oben aufgeführten Liste von oben nach unten zu, d. h. Klammern binden stärker als Vorrangregeln und diese stärker als die Reihenfolge. Der Begriff "Ausdruck" beschränkt sich nicht auf arithmetische Ausdrücke (z. B. a * y + b), es gibt auch logische oder mengentheoretische Ausdrücke oder Ausdrücke, die Zeichen, Zeichenfolgen oder Speicheradressen zum Ergebnis haben.

Ausdrücke und Anweisungen

Anweisungen und Ausdrücke sind nicht das Gleiche. Sie unterscheiden sich durch den Rückgabewert:
  • Ausdrücke haben immer einen Rückgabewert. Sie können damit Teil eines größeren Ausdrucks sein.
  • Anweisungen können keinen Rückgabewert haben. Sie können damit nicht Teil eines größeren Ausdrucks sein.
Was ist aber nun genau der Rückgabewert? Das soll anhand des Ausdrucks 13 + 16.5 erklärt werden. Durch die Anwendung des Additionsoperators + auf seine Operanden 13 und 16.5 ist der Rückgabewert des Ausdrucks eindeutig festgelegt. Aus den Typen der Operanden ergibt sich auch der Typ des Rückgabewertes. Werden wie in diesem Beispiel unterschiedliche Datentypen in einem Ausdruck verwendet, führt der Compiler eine sogenannte implizite Typumwandlung nach vorgegebenen Regeln durch. Als erstes prüft der Compiler die Typen der Operanden. Der eine Operand ist vom Typ int, der andere vom Typ float. Damit ist eine Addition zunächst nicht möglich. Es muß zuerst vom Compiler eine für den Programmierer unsichtbare sogenannte implizite Typumwandlung der Zahl 13 in den Typ float (also zu 13.0) durchgeführt werden. Erst dann ist die Addition möglich. Der Rückgabewert der Addition ist die Zahl 19.5 vom Typ float. Jeder Rückgabewert hat also auch einen Typ.

In C gibt es

  • Selektionsanweisungen,
  • Iterationsanweisungen,
  • Sprungananweisungen und
  • Ausdrucksanweisungen.
Die ersten drei Anweisungen werden im Kapitel 2 ausführlich behandelt, auf die letze Form wird hier eingegangen.In C kann man durch Anhängen eines Semikolons an einen Ausdruck erreichen, daß dieser zu einer Anweisung wird. Man spricht dann von einer sogenannten "Ausdrucksanweisung". In einer solchen Ausdrucksanweisung wird der Rückgabewert eines Ausdruckes nicht verwendet. Lediglich wenn Seiteneffekte zum Tragen kommen, ist eine Ausdrucksanweisung sinnvoll. Dazu ein Beispiel:
                                       int i = 0;            /* Zuweisung eines Anfangswertes an die Variable    */
                                       
                                       5 * 5;                /* zulaessig, aber nicht besonders sinnvoll         */
                                                             /* Der Rueckgabewert von 5 * 5 wird nicht verwendet */
                                       
                                       i++;                  /* Sinnvoll - i wird um 1 erhoeht (siehe spaeter)   */
                                       
Generell gilt:

In C kann jeder Ausdruck eine Anweisung werden und einen Rückgabewert haben.

Bezeichner

Wie haben gesehen, daß man Konstante und Variablen mit frei wählbaren Bezeichnungen (Namen) versehen kann. Daneben gibt es in jeder Programmiersprache noch Bezeichner für Unterprogramme (Prozeduren und Funktionen, siehe später) und sogenannte Standardbezeichner, welche die Schlüsselworte (reserved Words) der Programmiersprache und vordefinierte Unterprogramme (Standardfunktionen, Standardprozeduren) benennen und die in der Regel nicht anderweit verwendet werden dürfen.

L-Werte und R-Werte

Ausdrücke habe eine unterschiedliche Bedeutung, je nachdem, ob sie links oder rechts vom Zuweisungsoperator stehen. Wie schon erwähnt steht beim Ausdruck a = b die rechte Seite für einen Wert, während der Ausdruck auf der linken Seite die Stelle angibt, an der der Wert zu speichern ist. Wenn wir das Beispiel noch etwas modifizieren, wird der Unterschied noch deutlicher:
                                       a = a + 5*c
                                       
Beim Namen a ist rechts vom Zuweisungsoperator der Wert gemeint, der in der Speicherzelle a gespeichert ist, und links ist die Adresse der Speicherzelle a gemeint, in der der Wert des Gesamtausdrucks auf der rechten Seite gespeichert werden soll. Aus dieser Stellung links oder rechts des Zuweisungsoperators wurden auch die Begriffe L-Wert und R-Wert abgeleitet.

Ein Ausdruck stellt einen L-Wert ("lvalue" oder "left value") dar, wenn er sich auf ein Speicherobjekt bezieht. Ein solcher Ausdruck kann links und rechts des Zuweisungsoperators stehen.

Ein Ausdruck, der keinen L-Wert darstellt, stellt einen R-Wert ("rvalue" oder "right value") dar. Er darf nur rechts des Zuweisungsoperators stehen. Einem R-Wert kann man also nichts zuweisen.

Es gilt:

  • Ein Ausdruck, der einen L-Wert darstellt, darf auch rechts vom Zuweisungsoperator stehen. In diesem Fall wird dessen Namen bzw. Adresse benötigt, um an der entsprechenden Speicherstelle den Wert der Variablen abzuholen. Dieser Wert wird dann zugewiesen.
  • Links des Zuweisungsoperators muss immer ein L-Wert stehen, da man den Namen bzw. die Adresse einer Variablen braucht, um an der entsprechenden Speicherstelle den zugewiesenen Wert abzulegen.
  • Weiter wird zwischen modifizierbarem und nicht modifizierbarem L-Wert unterschieden. Ein nicht modifizierbarer L-Wert ist z.B. eine Konstante oder der Name eines Arrays. Dem Namen entspricht zwar eine Adresse. Diese ist jedoch konstant und kann nicht modifiziert werden. Auf der linken Seite einer Zuweisung darf also nur ein modifizierbarer L-Wert stehen.
  • Bestimmte Operatoren können nur auf L-Werte angewandt werden. So kann man den Inkrementoperator ++ oder den Adressoperator & nur auf L-Werte anwenden. 5++ ist falsch, i++ ist korrekt (sofern i eine Variable ist).

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere