Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
  


informatik artikel (Interpretation und charakterisierung)

Mail

Grundwissen c/c++


1. Java
2. Viren

Grundwissen
Ein C - Programm wird mit einem Editor erstellt, der Textdateien ohne eingebettete Steuerbefehle liefert. Um es dann ausführen zu können, muss es compiliert und gelinkt werden.

In einen C - Programm endet jede Zeile mit einem Semikolon ; (Achtung, es gibt auch Ausnahmen).



Ein einfaches C - Konsolenprogramm beginnt immer mit der main - Funktion. Sie ist der Einstiegspunkt ins Programm.



void main()

{


/* Hier arbeitet das Programm */


}



Innerhalb dieser geschweiften Klammern stehen dann die einzelnen C - Befehle, die ausgeführt werden sollen.



Am Anfang jedes Programms müssen sog. Include - Dateien eingefügt werden.



Syntax: #include



Elemente in C



Variablen:


Um in C eine Variable verwenden zu können, muss Sie initialisiert werden. Am Anfang des Programms steht dann

Variablentyp Variablenname = Wert;



Beispiel: int test=0;



Variablen dürfen nur mit Buchstaben beginnen, danach folgen Buchstaben oder Zahlen. Sonderzeichen und Umlaute sind nicht erlaubt. Case sensitive.



Verschiedene Variablentypen:


int: Der Variablentyp int kann nur ganze Zahlen aufnehmen, keine Kommazahlen. Er wird

vor allem zur Schleifensteuerung verwendet.

Double: Der Variablentyp double ist eine sog. Gleitpunktvariable, d.h. er kann auch mit


Kommazahlen arbeiten. Zusätzlich reicht sein Zahlenraum bis in die Milliarden.

String: Der Variable String kann eine Zeichenkette zugeordnet werden, z.b. ein kleiner Satz,

der dann später wieder ausgegeben wird. Auch Zahlen kann String aufnehmen, allerdings stehen sie dann nicht mehr Rechenoperationen zur Verfügung, da String nur die Zahl selbst aufnimmt. Für den Computer hat sie dann genau den gleichen Wert wie die Zahl als Wort geschrieben.






Standard Ein- und Ausgabe:


Ein Text kann mit dem Befehl cout auf dem Bildschirm ausgegeben werden.



Syntax: coutvariable;



Wenn das Programm auf diese Codezeile trifft, hält es an und wartet auf eine Eingabe des Users.

Die Eingabe wird dann in die variable geschrieben. Achtung: Diese Funktion ist sehr empfindlich bei falschen Eingaben. Wird einer Int - Variable eine Kommazahl zugeordnet, schmiert das Programm ab.



Rechnen in C


In C gibt es viele Möglichkeiten, mit Zahlen zu rechnen. Nachfolgend nun einige Beispiele mit verschiedenen Operatoren:

Variable = variable + 3; ® Zum aktuellen Wert von variable wird 3 addiert. Dann wird der


neue Wert zurück in die variable gerschrieben.

Variable = a * b; ® Die Werte in a und b werden miteinander multipliziert und das

Ergebnis in variable geschrieben. Die Werte in a und b werden nicht verändert.

variable++; ® Der Wert von Variable wird um 1 erhöht

variable = a % b ® Variable a wird durch Variable b geteilt. Der Rest, der dabei übrig


bleibt, wird in variable geschrieben.



Bei den ersten beiden Beispielen können die Operatoren +, -, *, / beliebig ausgetauscht werden.


Kommentare:


Kommentare können auf zwei verschiedene Arten in den C - Quellcode eingefügt werden.



1. //Alles was hinter den beiden Doppelstrichen in der selben Zeile steht, gehört zum


//Kommentar



2. /* Ab hier ist alles Kommentar, bis das entsprechende Gegenzeichen kommt. Der Kommentar kann sich auch über mehrere Zeilen erstrecken.*/



Es empfiehlt sich sehr stark, seinen Quellcode zu kommentieren! Am Anfang sieht man das vielleicht noch nicht ein, aber es hilft extrem, um sich später vor allem in größeren Codes zu orientieren. Speziell die komplizierten Stellen eines Programms sollten kommentiert sein. Nur die zweite Möglichkeit der Kommentierung ist ANSI C - Standard, deshalb sollte nur sie bei C und auch C++ - Programmen verwendet werden.




Schleifen


For - Schleife:


Syntax: for(variable=1;variableCaption = Format (\"Eingabe: %10.3f\", OPENARRAY (TVarRec, (eingabe)));



Im Label mit dem Namen "ausgabe" wird der String "Eingabe:" und dann der Inhalt der Variable "eingabe" ausgegeben. Mit der Zahl hinter dem % lässt sich die Form der Ausgabe bestimmen. Bei diesem Beispiel wird der Wert in Variable "eingabe" mit max. 10 Vorkomma- und 3 Nachkomastellen ausgegeben.


Kürzere Syntaxform:




ausgabe->Caption = eingabe;



Bei dieser Form wird einfach der Inhalt von Variable "eingabe" im Label "ausgabe" ausgegeben.



Message Box ausgeben (nur Borland C++ Builder!)

Application->MessageBox ("Dieser Teil wird in der Box ausgegeben","Dieser Teil steht im Titel", 0+16)



Die Zahlen am Schluss bestimmen, mit welchen Auswahlbuttons (Ja, Nein, Ok, Abbruch ...) und mit welchem Icon (Frage, Warnkreuz ...) die Messagebox geöffnet wird.



Inhalt eines Eingabefeldes in char umwandeln (nur Borland C++ Builder!)


StrCopy (variable1, Eingabe1->Text.c_str());



Mit diesem Syntax wird der Text oder die Zahlen im Eingabefeld "Eingabe 1" mit Hilfe des Befehls "StrCopy" in die Variable "variable1" geschrieben. Nun kann mit ihr wie mit einer normalen Char - Variable weitergearbeitet werden.



Externes Programm oder Batchfile starten



STARTUPINFO si;


PROCESS_INFORMATION pi;



CreateProcess(NULL,\"umwandlung.bat\",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);



Die ersten beiden Zeilen müssen bei den globalen Variablen eingefügt werden. Sie werden von diesem Befehl benötigt.

CreateProcess können verschiedene Parameter mitgegeben werden. Bei dem oben stehenden Beispiel wird einfach das Batchfile "umwandlung.bat" gestartet. Es muss hierbei im selben Verzeichnis liegen. Man kann natürlich jede beliebige Datei auf der Platte starten, dazu muss dann eben der absolute Pfad mit angegeben werden.


Bsp:

Wenn man ein Programm direkt im Root von C: starten möchte, gibt man einfach als zweiten Parameter "c:\\neu.exe" an. Der Doppelslash ist nötig, damit der Compiler erkennt dass hier ein Backslash und nicht ein Sonderzeichen dargestellt wird (z.B. n).

Die anderen Parameter können so wie in diesem Beispiel gelassen werden. Sie bieten noch Zusatzfunktionen an. (Genauere Informationen gibt es in der MSDN unter dem Suchwort "Create Process"). Wichtig ist nur noch der sechste Parameter: Wird ein Bachfile oder eine Konsolenapplikation gestartet, lässt sich mit dem Befehl "CREATE_NO_WINDOW" die Anzeige der schwarzen Commandbox verhindern. Das Programm läuft natürlich trotzdem durch.




Ein alternativer Befehl ist "system".




system(path_to_file);


system("xcopy *.c c:test");



Er bietet den Vorteil, dass neben ganzen Programmen auch DOS - Befehle ausgeführt werden können. "system" erstellt eine virtuelle Kommandozeile und führt den Befehl darauf aus. Allerdings ist bei "sytem" immer eine schwarze DOS - Box zu sehen, welche sich nicht unterdrücken lässt.






Microsoft Visual Studio


Debuggerfunktionen:


Callstack:


Der Callstack beinhaltet alle ausgeführten Funktionen. In ihm kann man sehen, was vom Programm nacheinander ausgeführt wurde. So lässt sich erkennen, welche Funktion welche Funktion aufgerufen hat und wie das Programm bisher abgelaufen ist.



Shortcuts:



F9: Setzt einen Breakpoint im Code

F5: Wenn während des Debuggens der Debugger an einem Breakpoint anhält, kann damit das


Programm fortgesetzt werden.

F11: Während des Debuggens kann Zeile für Zeile fortgeschritten werden. Trifft man auf eine


Funktion wird eingesteppt.

F10: Während des Debuggens kann Zeile für Zeile fortgeschritten werden. Funktionen werden


hierbei aber übersprungen.


Objektorientiertes Programmieren


Objektorientierte Programmierung ist Programmierung in C++. Es werden Klassen definiert, die ein bestimmtes Objekt beschreiben, seine Fähigkeiten und Eigenschaften festlegen. Eine Klasse ,sparkonto' besitzt zum Beispiel die Methoden ,einzahlen' und ,auszahlen'. Als Eigenschaften hat sie ein ,guthaben'.




Klassenname: Name der Klasse

Objekt: Angelegtes Objekt, welches aus der Klasse besteht. Von jeder Klasse können mehrere Objekte bestehen.

Methoden: Fähigkeiten eines Objektes, z.B. Geld abheben. Es entspricht eigentlich einer Art Funktion.

Eigenschaften: Die Eigenschaften sind Variablen, welche bestimmte Werte, Eigenschaften des Objekts aufnehmen, z.B. beim ,sparkonto' das Guthaben oder den Zinssatz.






Deklaration einer Klasse:


Eine Klasse wird im Headerfile angelegt und beinhaltet die Prototypen der Methoden und die Eigenschaften:




class sparkonto

{


public:


double einzahlen(double betrag);


double auszahlen(double betrag);


private:


double Guthaben;

};



public: Die Methoden sind meist im public - Bereich der Klasse definiert. Auf sie kann von außen zugegriffen werden.

Private: Die Eigenschaften dagegen sind meist private, da man sie von unberechtigtem Zugriff von außen schützen möchte.



Um auf eine Methode zugreifen zu können, wird die gleiche Syntax wie bei einer Struktur

verwendet. Zuerst kommt der Name des Objektes, danach ein Punkt und der Methodenname:



konto1.einzahlen(100);



konto1: Name des Objektes

einzahlen: Name der Methode

(100): Werte, die an die Methode mitgegeben werden.





Die Methoden müssen natürlich genauso wie normale Funktionen definiert werden. Nachfolgend nun ein Beispiel, wie die Methode ,einzahlen' aussehen würde:



double sparkonto::einzahlen(double betrag)

{


guthaben+=betrag;


return guthaben;


}



Der Kopf besteht aus dem Rückgabewert, dem Name der Klasse, danach dem Namen der Metode und zum Schluss noch die Parameterliste. Er muss mit der Deklaration in der Headerdatei übereinstimmen. Die Eigenschaften (in diesem Fall das ,guthaben') können ohne Deklaration direkt verwendet werden.





Nun fehlt nur noch das Anlegen eines Objektes. Dies unterscheidet sich aber nicht wesentlich vom Anlegen einer Variable:



sparkonto konto1(uebergabe);



sparkonto: Zuerst der Name der Klasse

konto1: Name des Objektes, welches angelegt werden soll.

(uebergabe): Übergabeparameter für den Konstruktur






Konstruktor und Destruktor



Konstruktor


Mit einem Konstruktor kann ein neues Objekt beim Start initialisiert werden. Es können bestimmte Werte mitgegeben werden, um die Variablen zu initialisieren. So kann z.B. vor dem Anlegen eines Sparkontos der Startwert abgefragt und dieser dann an den Konstruktor übergeben werden. Er initialisiert dann die ,Guthaben' - Eigenschaft bei der Erstellung des Objektes.



Der Konstruktor muss ebenfalls in der Headerdatei festgelegt werden. Er bekommt immer den Namen der Klasse. Da er keinen Rückgabewert hat, wird dieser Code weggelassen.




class sparkonto

{


public:


sparkonto(double uebergabe);


double einzahlen(double betrag);


double auszahlen(double betrag);


private:


double Guthaben;

};




Der Body sieht folgendermaßen aus:



sparkonto::sparkonto(double uebergabe)

{


guthaben = uebergabe;


}



Auf hier fehlt die Angabe des Rückgabewertes.



Destruktor:


Der Destruktor hat eigentlich die selbe Aufgabe wie der Konstruktor. Allerdings wird er am Ende eines Programmes aufgerufen, oder wenn ein Objekt aus dem Speicher gelöscht wird. Mit ihm können Aufgaben durchgeführt werden, die unbedingt am Ende eines Objektes erledigt werden müssen, z.B. Löschung vertraulicher Daten aus dem Speicher oder der Festplatte etc.



Deklariert wird er wieder im Header und hat ebenfalls den Namen der Klasse, allerdings mit einer vorgesetzten Tilde (~):




class sparkonto

{


public:


~sparkonto(double uebergabe);


sparkonto(double uebergabe);


double einzahlen(double betrag);


double auszahlen(double betrag);


private:


double Guthaben;

};




Der Body sieht folgendermaßen aus:




sparkonto::~sparkonto(double uebergabe)

{


guthaben = uebergabe;


}



Ein Rückgabewert ist wiederum nicht vorhanden.




Vectoren (Nur Borland C++ Builder!)


Vectoren sind erweiterte Arrays. Sie können beliebig viele Elemente einer Gruppe (z.b. nur Integerwerte) speichern. Zusätzlich gibt es Methoden, die das Bearbeiten des Vectors ermöglichen. Man kann ohne Probleme Container anhängen, bearbeiten oder aus dem Vector löschen (Bei einem Vector werden die einzelnen Speicherplätze Container genannt). Der große Vorteil von Vectoren liegt in ihrer Dynamik. Sie passen ihre Größe dynamisch während der Laufzeit an. Somit muss nicht im Vorfeld vom Programmierer definiert werden, wie viele Elemente zur Verfügung stehen.



Ein Vector kann nur unter C++ verwendet werden. Zuerst muss die Includedatei "vector" eingebunden werden. Der Vector selbst wird mit folgendem Code angelegt:



#include "vector"



vector name_des_vectors;



Das gibt den Typ der Elemente an, welche der Vector speichern soll. Es können gleich wie bei einem Array nur Elemente eines Typs gespeichert werden. name_des_vectors definiert den Namen.



name_des_vectors.push_back(50);



Mit diesem Code wird ein neuer Container ans Ende des Vectors angehängt und der Wert 50 reingeschrieben.



name_des_vectors.pop();



Das letzte Element des Vectors wird gelöscht.



name_des_vectors[10];



Zum Zugriff auf einzelne Container kommt die gleiche Syntax wie bei einem normalen Array zum Einsatz. Hier wird auf den Container mit dem Index 10 zugegriffen und sein Inhalt zurückgegeben. Alternativ kann auch der Code name_des_vectors.at[10] verwendet werden.



name_des_vectors.insert(10,50);



Dieser Code fügt einen neuen Container mit dem Inhalt 50 an Index 10 ein. Der bisher dort stehende Container wird um eine Position verschoben, sein Index erhöht sich um 1. Dementsprechend werden auch alle nachfolgenden Container um eine Position verschoben.



Programmierstile


Jeder Programmierer schreibt seinen (C -) Quellcode anders. Die einen achten penibel auf Einrückungen und übersichtliche Klammersetzung, andere packen so viel Code wie möglich in eine Zeile. Um Quellcode übersichtlich und vor allem für Andere verständlich zu halten, sollte man sich allerdings an bestimmte Programmierstile halten. Die folgenden Grundregeln stimmen nicht unbedingt mit offiziellen Dokumenten der ANSI oder anderen überein. Sie sind aber trotzdem sinnvoll, wenn man sich einheitlich daran hält.




Kommentare in klassischem C - Stil


Kommentare sollten immer in Verbindung mit folgender Syntax verwendet werden:



/* Das ist ein Kommentar */



Nur diese Kommentarzeichen gehören zum ANSI C - Standard. Zusätzlich soll nach dem Kommentarzeichen eine Leerstelle vorhanden sein.



Geschweifte Klammern


Geschweifte Klammern sollten immer gesetzt werden, auch wenn sie bei einzeiligen If - Strukturen oder Schleifen weggelassen werden können. Das erhöht die Übersichtlichkeit und Lesbarkeit des Codes. Geschweifte Klammern werden immer in eine eigene Zeile gesetzt, also in die nächste Zeile nach dem Schlüsselwort:




If (a)


{
for(i=0;i

 
 

Datenschutz
Top Themen / Analyse
indicator DATEX-P
indicator Was ist Internet?
indicator Anhang: Apple Preisliste
indicator Erklärung anhand eines Beispielprogrammes:
indicator AMD-K6
indicator MIMD
indicator Funktionsweise von Expertensystemen
indicator Interne Taktfrequenz
indicator Kommunikation für Unternehmen am Beispiel des QUIX Pagers
indicator Schlussbemerkungen


Datenschutz
Zum selben thema
icon Netzwerk
icon Software
icon Entwicklung
icon Windows
icon Programm
icon Unix
icon Games
icon Sicherheit
icon Disk
icon Technologie
icon Bildung
icon Mp3
icon Cd
icon Suche
icon Grafik
icon Zahlung
icon Html
icon Internet
icon Hardware
icon Cpu
icon Firewall
icon Speicher
icon Mail
icon Banking
icon Video
icon Hacker
icon Design
icon Sprache
icon Dvd
icon Drucker
icon Elektronisches
icon Geschichte
icon Fehler
icon Website
icon Linux
icon Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.
dsolution