C für Java-Programmierer
|
|
|
- Götz Frei
- vor 9 Jahren
- Abrufe
Transkript
1 Carsten Vogt C für Java-Programmierer ISBN-10: ISBN-13: Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter sowie im Buchhandel
2 Inhalt 1 Einführung Schnelleinstieg C und Java von den Anfängen bis heute Die Entwicklung von C Der Ursprung Grundlegende Eigenschaften Standards Objektorientierte Nachfolgesprachen C Java Einsatzgebiete von C und Java C und Java im Sprachvergleich Drei Beispielprogramme Einfaches Programm mit Ausgabe Programm mit Eingabe und C-spezifischen Datentypen Programm mit einer Funktion Eigenschaften von Java vs. Eigenschaften von C Tabellarischer Vergleich Objektorientierung vs. Prozedurorientierung Interpretation vs. Übersetzung Zu diesem Buch Aufbau Benutzung Weitere Quellen Struktur und Übersetzung von C-Programmen Schnelleinstieg Aufbau von C-Programmen C-Quellcode in einer einzelnen Datei C-Quellcode in mehreren Dateien...34
3 8 Inhalt 2.2 Übersetzung von C-Programmen Phasen der Übersetzung Modularisierung Übersetzung unter Windows Übersetzung unter UNIX/Linux Anweisungen des Präprozessors #include: Einfügen von Header-Dateien #define: einfache Ersetzung von Zeichenketten #define: Makros mit Parametern #ifdef, #if: bedingte Übersetzung Übungsaufgaben Kontrollstrukturen Schnelleinstieg Blöcke Bedingte Anweisungen Schleifen Ausnahmebehandlung Übungsaufgaben Datenorganisation Schnelleinstieg Skalare Datentypen Zahlen- und Zeichentypen Wahrheitswerte Operationen Konstanten und Variablen Konstanten Definition und Initialisierung von skalaren Variablen Wertzuweisungen Arrays Eindimensionale Arrays Mehrdimensionale Arrays Zeichenketten Arrays in C Strukturen Grundlegende Eigenschaften von Strukturen Strukturtypen Schachtelung von Strukturen Unions und Bitfelder Unions Bitfelder Selbstdefinierte Wert- und Typnamen Aufzählungstypen Der typedef-operator Übungsaufgaben...79
4 Inhalt 9 5 Zeiger...81 Schnelleinstieg Java-Objektvariablen vs. C-Zeigervariablen Grundlegende Begriffe und Operatoren Speicheradressen und Zeigervariablen Adress- und Dereferenzierungsoperator Zwei Programmbeispiele Ungetypte Zeiger Adressarithmetik Operationen Adressarithmetik bei Arrays Exkurs: Zeichenkettenvariablen und -konstanten Dynamische Speicherverwaltung malloc() Objekterzeugung in Java vs. Speicherbelegung in C Definition von malloc() free() Arrays mit dynamisch bestimmter Größe Zwei Programmbeispiele Zeiger auf Strukturen Arrays mit Zeigern auf Strukturen Strukturen mit Zeigern auf Strukturen Zeiger auf Zeiger Übungsaufgaben Funktionen Schnelleinstieg Java-Methoden vs. C-Funktionen Schnittstellen Prototypen Weitere Besonderheiten von C Ausführung Ablauf Parameterübergabe Wertaufruf Referenzaufruf Übergabe von Arrays Ergebnisrückgabe Das Hauptprogramm main() Speicherklassen Lokale Variablen Automatische Variablen Statische Variablen Registervariablen Externe Variablen Programme in einer einzelnen Datei...127
5 10 Inhalt Programme in mehreren Dateien Tabellarische Zusammenfassung Funktionsbibliotheken Definition und Benutzung Die Standardbibliothek Funktionen für Zeichen und Zeichenketten Mathematische Funktionen Betriebssystemnahe Dienste Nutzungsmöglichkeiten für Fortgeschrittene Zeiger auf Funktionen Funktionen als Parameter Funktionen mit variabler Anzahl von Parametern Übungsaufgaben Ein-/Ausgabe und Dateizugriffe Schnelleinstieg Grundlegende Konzepte Datenströme in Java und in C Standarddateien Klassen von E/A-Funktionen Funktionen für die Standardein-/-ausgabe printf(): formatierte Ausgabe Grundidee Allgemeine Form Weitere Beispiele scanf(): formatierte Eingabe Grundidee Allgemeine Form Pufferung der Eingabedaten Weitere Beispiele Weitere Funktionen für Zeichen und Zeichenketten Funktionen für beliebige Datenströme Öffnen und Schließen Ein-/Ausgabe einzelner Zeichen Ein-/Ausgabe von Zeichenketten Formatierte Ein-/Ausgabe Ein-/Ausgabe beliebiger Bytefolgen Wahlfreier Zugriff Spezielle Funktionen Operationen auf dem Dateisystem Übungsaufgaben Dynamische Datenstrukturen Schnelleinstieg Dynamische Datenhaltung in Java und in C...175
6 Inhalt Listen Eigenschaften Einfach verkettete Listen Typ der Knoten Durchlaufen einer Liste Suchen von Einträgen Einfügen von Knoten Entfernen von Knoten Doppelt verkettete Listen Typ der Knoten Durchlaufen einer Liste Suchen von Einträgen Einfügen von Knoten Entfernen von Knoten Queues und Stacks Queues Stacks Hashtabellen Eigenschaften Realisierung in Java und in C Bäume Eigenschaften Binärbäume Eigenschaften und Beispiele Realisierung in C Durchlaufen eines Binärbaums Löschen eines Binärbaums Suchen eines Werts in einem Suchbaum Einfügen eines Werts in einen Suchbaum Löschen eines Werts aus einem Suchbaum Mengen Realisierung durch Listen und Bäume Grundlegende Mengenoperationen auf C-Listen Bilden der Vereinigungsmenge Bilden der Differenzmenge Bilden der Schnittmenge Realisierung durch Bitmaps Übungsaufgaben A Auswertung von Ausdrücken A.1 Implizite Typkonversionen A.1.1 Konversionen in Rechenausdrücken A.1.2 Konversionen bei Zuweisungen A.2 Sequenzpunkte A.3 Bindungsstärken und Auswertungsreihenfolgen...216
7 12 Inhalt B Vordefinierte Konstanten B.1 Wertebereiche der skalaren Typen B.2 Mathematische Konstanten C Standardbibliothek C.1 Dateizugriffe und Ein-/Ausgabe C.1.1 Thematische Übersicht über die Funktionen C.1.2 Funktionen in alphabetischer Reihenfolge C.2 Zeichen, Zeichenketten und Bytefolgen C.2.1 Test einzelner Zeichen C.2.2 Umwandlung von Zeichen C.2.3 Zeichenketten C.2.4 Bytefolgen/Arrays C.2.5 Konversionen C.3 Mathematische Funktionen C.4 Betriebssystemnahe Dienste C.4.1 Dynamische Speicherverwaltung C.4.2 Zeitfunktionen C.4.3 Weitere Funktionen D Häufig gebrauchte Tabellen D.1 ASCII D.2 Variablengrößen und Wertebereiche D.3 Bindungsstärke von Operatoren D.4 Optionen für fopen() D.5 Konversionsangaben für die Ein-/Ausgabe D.5.1 printf() D.5.2 scanf() Literatur und Internet Index
8 Carsten Vogt C für Java-Programmierer ISBN-10: ISBN-13: Leseprobe Weitere Informationen oder Bestellungen unter sowie im Buchhandel
9 1 Einführung
10 14 Schnelleinstieg: C und Java im Vergleich C ist wie Java eine imperative Programmiersprache: Ein C-Programm besteht aus Anweisungen, wie arithmetischen Operationen und Wertzuweisungen. Die Anweisungen werden, gesteuert durch Kontrollstrukturen, wie Verzweigungen und Schleifen, in einer bestimmten Reihenfolge ausgeführt. Da C über seine objektorientierte Erweiterung C++ die Entwicklung von Java beeinflusste, haben C und Java viele gemeinsame Konstrukte. C wird insbesondere hardwarenah eingesetzt, beispielsweise zur Programmierung von Mikrocontrollern sowie zur Implementierung und Nutzung von Betriebssystemen. Es kann aber auch wie Java zur problemorientierten Anwendungsprogrammierung benutzt werden. Im Laufe der Jahre wurde C mehrfach standardisiert, zunächst als Kernighan- Ritchie C, dann als ANSI-C/C89 sowie C90 (das auch heute noch weit verbreitet ist) und schließlich als C99. C ist eine prozedurale Sprache: Ein C-Programm ist meist eine Sammlung von Unterprogrammen so genannten Prozeduren oder Funktionen, die Teilprobleme lösen und sich gegenseitig aufrufen. Eine dieser Funktionen ist das Hauptprogramm main(): #include <stdio.h> /* Import der I/O-Funktionen printf/scanf */ /* Funktion zur Ermittlung des Maximums zweier float-werte */ float max(float a, float b) { if (a>b) return a; else return b; /* Hauptprogramm */ int main(void) { float x, y; printf("bitte zwei Zahlen eingeben: "); scanf("%f %f",&x,&y); /* Einlesen zweier float-werte */ printf("maximum: %f\n",max(x,y)); /* Ausgabe des Maximums */ return 0; C ist keine objektorientierte Sprache, kennt also keine Klassen und Objekte. C besitzt aber ein differenziertes Datentypkonzept: Es stellt skalare Typen, wie ganze Zahlen, Gleitkommazahlen und Zeichen, und zusammengesetzte Typen, wie Arrays oder structs (d.h. Strukturen aus mehreren Komponenten unterschiedlicher Typen), zur Verfügung. Zudem realisiert C so genannte Zeigervariablen, die Speicheradressen enthalten und damit den unmittelbaren Zugriff auf Hauptspeicherzellen ermöglichen. C-Programme werden nicht interpretiert, sondern übersetzt: Der C-Quellcode wird über Zwischenstufen in ein Maschinenprogramm übersetzt (beispielsweise eine exe-datei), das unmittelbar durch die Prozessorhardware ausgeführt werden kann. Der nächste Schnelleinstieg steht auf Seite 32.
11 15 1 Einführung C und Java gehören zu den meistverbreiteten Programmiersprachen und sind damit grundlegendes Rüstzeug für die Programmierung von Computern. Bei der Entwicklung von Java hat C, die ältere der beiden Sprachen, unmittelbar und mittelbar Pate gestanden. Man findet daher viele Eigenschaften von C in Java wieder und somit auch umgekehrt, so dass Java- Kenntnisse eine gute Basis für den Einstieg in C sind. Diese Einführung gibt zunächst einen kurzen Überblick über Geschichte, Eigenschaften und Anwendungsgebiete von C und Java. Anschließend werden, ausgehend von drei einfachen Programmbeispielen, die wichtigsten Gemeinsamkeiten und Unterschiede der beiden Sprachen aufgezeigt. Zum Abschluss findet man einen Ausblick auf die folgenden Kapitel dieses Buchs sowie eine Anleitung zur schnellen Lektüre, zum Nachschlagen und zur Vertiefung des Stoffs. 1.1 C und Java von den Anfängen bis heute Die Entwicklung von C Der Ursprung Die Anfänge der Programmiersprache C liegen fast 40 Jahre zurück: Als Dennis Ritchie und Ken Thompson um das Jahr 1970 das Betriebssystem UNIX entwickelten, benötigten sie eine Programmiersprache zu seiner Implementierung. Um UNIX portabel, also zwischen verschiedenen Rechnerplattformen übertragbar zu machen, musste diese Sprache maschinenunabhängig sein, das heißt unabhängig von der Maschinensprache eines bestimmten Prozessors. Da ein Betriebssystem unmittelbar auf die Rechnerhardware aufsetzt, musste die Sprache aber maschinennah sein, also einen leichten Zugriff auf die Komponenten der Hardware (insbesondere Speicherzellen und Prozessorregister) erlauben und sich effizient in Maschinensprache übersetzen lassen. Keine der Programmiersprachen, die damals zur Verfügung standen, erschien Ritchie und Thompson für diesen Zweck geeignet. Sie erarbeiteten daher zwei neue Sprachen: Thompson ging von der vorhandenen Sprache BCPL (= Basic Combined Programming Language) aus und entwickelte auf ihrer Grundlage die Sprache B, eine hardwarenahe Sprache mit Unterprogrammen, aber ohne differenzierte Datentypen. Ritchie wiederum entwickelte B zur Sprache C weiter (als Namen benutzte er dabei einfach den nächsten Buchstaben im Alphabet) und führte dabei unter anderem verschiedene Datentypen ein.
12 16 1 Einführung Grundlegende Eigenschaften C ist eine imperative, prozedurale Sprache: Imperativ bedeutet, dass sich ein C-Programm aus Anweisungen, wie arithmetischen Operationen und Wertzuweisungen, zusammensetzt und dass diese Anweisungen in einer bestimmten Reihenfolge, gesteuert von Kontrollstrukturen, wie Verzweigungen und Schleifen, ausgeführt werden. Prozedural bedeutet, dass Unterprogramme definiert werden können so genannte Prozeduren oder Funktionen, die (ähnlich den statischen Methoden von Java) Teilprobleme lösen und beliebig oft aufgerufen werden können. C besitzt ein differenziertes Datentypkonzept: Es stellt skalare Typen, wie ganze Zahlen, Gleitkommazahlen und Zeichen, sowie zusammengesetzte Typen, wie Arrays oder Strukturen, zur Verfügung. Zudem realisiert C so genannte Zeigervariablen, die Speicheradressen enthalten und damit den unmittelbaren Zugriff auf Hauptspeicherzellen ermöglichen. Insbesondere diese Vielfalt von Datentypen macht C derart mächtig, dass man es nicht nur zur systemnahen Programmierung einsetzen kann, sondern dass sich auch problemnahe Anwendungen wie beispielsweise Textverarbeitungs- oder Tabellenkalkulationsprogramme in C schreiben lassen Standards C verbreitete sich zusammen mit UNIX rasch, gewann dann auch unabhängig von UNIX schnell an Bedeutung und wurde im Laufe der Jahre weiterentwickelt und standardisiert: 1978 veröffentlichten Brian Kernighan und Dennis Ritchie das Buch The C Programming Language [KeRi78] und legten damit den ersten allgemeinen C-Standard fest. Die dort beschriebene C-Version wird als Kernighan-Ritchie-C (kurz K&R C) bezeichnet wurde C in einer revidierten und erweiterten Fassung durch das ANSI (American National Standards Institute) standardisiert [ANSI89]. Man bezeichnet die dort spezifizierte Fassung als ANSI-C oder auch als C übernahm die ISO (International Organization for Standardization) den ANSI- Standard [ISO90] und später dann auch das DIN (Deutsches Institut für Normung) [DIN94]. Das dort festgelegte C, das nur in wenigen Details von ANSI-C abweicht, wird C90 genannt standardisierte die ISO eine erweiterte Sprachversion [ISO99], das so genannte C99. Auch das ANSI schloss sich diesem Standard an. Obwohl C99, der neueste Standard, mittlerweile einige Jahre alt ist, wird es noch immer nicht von allen C-Programmierumgebungen unterstützt. Weit verbreitet ist noch die ANSI-/ C90-Version. Dieses Buch stellt daher beide Formen dar und weist auf Unterschiede explizit hin. In manchen Nischen findet sich sogar noch das alte Kernighan-Ritchie-C; eine seiner Besonderheiten, nämlich die Form von Funktionsköpfen, wird später ebenfalls diskutiert werden ( 6.2.2).
13 1.1 C und Java von den Anfängen bis heute Objektorientierte Nachfolgesprachen C++ Vor und während der Entstehung von C kamen objektorientierte Programmiersprachen auf zunächst in den 1960er Jahren die Sprache Simula, danach in den 1970ern die Sprache Smalltalk. Anfang der 1980er Jahre übertrug Bjarne Stroustrup die Ideen von Simula auf C und erweiterte es damit um Konzepte der objektorientierten Programmierung [Stro86]. Er nannte die resultierende Sprache C++ und spielte dabei auf den ++-Operator an, mit dem der Wert einer Variablen um eins erhöht wird. C++ ist keine rein objektorientierte, sondern eine hybride Sprache, das heißt eine Mischform: Einerseits kann man in C++ ganz ohne Klassen und Objekte programmieren, also wie in C ein Programm als Sammlung von Unterprogrammen aufbauen, zwischen denen Parameter und Rückgabewerte ausgetauscht werden. Andererseits realisiert C++ die Konzepte der objektorientierten Programmierung, so insbesondere Objekte und Klassen, Vererbung und abstrakte Klassen. Dazu kommen weitere Merkmale wie statische Methoden und das Überladen und Überschreiben von Methoden Java Die Programmiersprache Java, die es seit Anfang der 1990er Jahre gibt, geht auf ein Team der Firma Sun Microsystems um James Gosling zurück. Java ist im Gegensatz zu C++ eine rein objektorientierte Sprache (wobei man natürlich auch in Java prozedural programmieren kann, indem man Hauptprogramm und Unterprogramme als statische Methoden einer einzigen Klasse definiert und auf die Erzeugung von Objekten verzichtet). Java übernahm viele Syntaxeigenschaften und die darunter liegende Semantik von mehreren anderen Programmiersprachen, so insbesondere von C und C++. Die grundlegenden Kontrollstrukturen von C (Blöcke, bedingte Anweisungen, Schleifen), die Mehrzahl der skalaren Datentypen mit ihren Operationen sowie die Definition von Funktionen/Methoden mit Parametern und Wertrückgaben findet man in Java (bis auf geringe Abweichungen) identisch wieder. Auch gibt es eine Reihe von Übereinstimmungen zwischen C++ und Java hinsichtlich des Klassenkonzepts. Hier bestehen aber auch deutliche Unterschiede, beispielsweise in der Syntax einer Klassendefinition und hinsichtlich der Mehrfachvererbung (also des Erbens von mehreren Basisklassen), die in C++ erlaubt, in Java jedoch nicht möglich ist. Java verzichtet auf ein Zeigerkonzept, wie es C bietet, und nimmt zudem deutlich strengere Typprüfungen vor. Dies geschieht aus Sicherheitsgründen: Ein unkontrollierter Zugriff auf Variablen oder Speicherzellen und die beliebige Manipulation der dort gespeicherten Bitmuster sollen ausgeschlossen sein. Zudem werden Java-Programme nicht wie C-Programme in Maschinensprache übersetzt, sondern in die Bytecode-Zwischensprache, die durch die Java Virtual Machine interpretiert wird. Übersetzte Java-Programme sind damit im Gegensatz zu übersetzten C-Programmen portabel, können also auf unterschiedlichen Rechnerplattformen ausgeführt werden.
14 18 1 Einführung Einsatzgebiete von C und Java C wird insbesondere hardwarenah eingesetzt: Man benutzt es zur Programmierung von Mikrocontrollern, mit denen Geräte gesteuert werden, sowie zur Implementierung von Betriebssystemen, wie UNIX und Linux, und zugehörigen Systemprogrammen, wie Datenbanken und Webservern. Betriebssysteme bieten typischerweise eine C-Schnittstelle (also eine Sammlung von C-Funktionen, über die Dienste des Betriebssystems aufgerufen werden können) und damit eine Plattform, auf der ebenfalls in C Anwendungsprogramme realisiert werden. Java wird hauptsächlich im Bereich der Anwendungsprogrammierung benutzt, insbesondere auch in verteilten Systemen: Client-Server-Architekturen im Internet werden häufig in Java implementiert, so durch Java-Servlets und -Applets. Als objektorientierte Sprache mit einer Vielzahl vorgegebener Klassen und Pakete ist Java zudem zur Programmierung komplexer lokaler Anwendungen mit grafischen Benutzeroberflächen geeignet. Mit der wachsenden Leistungsfähigkeit mobiler Geräte dringt Java immer stärker in diesen Bereich vor, und auch bei der Programmierung eingebetteter Systeme gewinnt Java an Boden. In der Hochschulausbildung dienen C und Java häufig als Einstiegssprachen, werden also in einer Grundvorlesung zur Einführung in die Programmierung eingesetzt. Dabei wird aber, oft auch aus Zeitgründen, vielfach nur eine dieser Sprachen gelehrt. Im weiteren Verlauf des Studiums benötigt man jedoch beide Sprachen. C wird dann eher in den hardware- und systemnnahen Fächern, wie Technische Informatik und Betriebssysteme, aber auch Datenbanken benutzt. Java findet man eher in anwendungsnahen Bereichen, wie Softwaretechnik sowie der Programmierung grafischer Benutzeroberflächen und nebenläufiger Anwendungen, aber auch im Fach Verteilte Systeme. 1.2 C und Java im Sprachvergleich Drei Beispielprogramme Zum Einstieg in die praktische C-Programmierung sollen drei einfache C-Programmbeispiele diskutiert und mit ihren Gegenstücken in Java verglichen werden. Dabei zeigen sich schon einige Unterschiede zwischen C und Java; es wird aber auch deutlich, dass die beiden Programmiersprachen viele Gemeinsamkeiten haben Einfaches Programm mit Ausgabe Ein Programm, das die Zweierpotenzen von 1 bis 256 ausgibt, könnte in C wie folgt aussehen: #include <stdio.h> C... int main(void) { int zahl = 1; /* Schleife bis zum Erreichen der Obergrenze */
15 1.2 C und Java im Sprachvergleich 19 while ( zahl <= 256 ) { printf("zweierpotenz: %d\n",zahl); zahl = zahl * 2; return 0; Das entsprechende Java-Programm könnte wie folgt lauten: import java.io.*;... Java class ZweierPotenzen_1 { public static void main(string args[]) { int zahl = 1; // Schleife bis zum Erreichen der Obergrenze while ( zahl <= 256 ) { System.out.println("Zweierpotenz: " + zahl); zahl = zahl * 2; Die Programme sind sich offensichtlich sehr ähnlich; die Syntax vieler Programmbestandteile ist sogar identisch. Unterschiede bestehen lediglich an den folgenden Stellen: Während in Java externe Komponenten per import importiert werden, geschieht dies in C durch #include. Details zur #include-anweisung und ähnlichen Präprozessor-Instruktionen werden in 2.3 diskutiert. In Java muss das Hauptprogramm main() in einer eigenen Klasse definiert werden, in C kommt es ohne einen solchen Rahmen aus. Auch ist der main()-kopf in C deutlich einfacher; so kann man beispielsweise auf Parameter verzichten, und Ausnahmen, die geworfen werden könnten, gibt es in C generell nicht. Dafür hat das C-main() den Rückgabetyp int statt void: Mit dem Rückgabewert 0 ( return 0 ) wird der Aufrufumgebung ein fehlerfreies Programmende angezeigt; ein Rückgabewert ungleich 0 meldet einen Fehler. Der Aufbau eines C-Programms wird in 2.1 genauer beschrieben. Ein Kommentar in C90 muss stets durch /* */ geklammert sein; das Symbol // für einzeilige Kommentare ist erst im C99-Standard zugelassen. Die Java-Ausgabemethode println() erhält als einzigen Parameter eine Zeichenkette, die sich im Allgemeinen durch den +-Operator aus konstanten Zeichenketten und Variablenwerten zusammensetzt und entsprechend auf den Bildschirm ausgegeben wird. Die C-Ausgabefunktion printf() kann dagegen mehrere Parameter besitzen: Der erste Parameter ist stets eine Zeichenkettenkonstante, die Format- oder Konversionsangaben (eingeleitet mit %) enthalten kann. Diese Konversionsangaben sind Platzhalter, für die bei der Ausgabe die Werte der nachfolgenden Parameter eingesetzt werden. Der Buchstabe in einer Konversionsangabe charakterisiert den Typ des auszugebenden Werts, so z.b. %d für dezimale int-werte. Nähere Informationen zu printf() findet man in
16 20 1 Einführung Programm mit Eingabe und C-spezifischen Datentypen Das Programm wird nun so erweitert, dass der Benutzer die Obergrenze eingeben kann, bis zu der die Potenzen berechnet werden sollen. Zudem wird der Wertebereich der Ganzzahlvariablen auf nichtnegative Zahlen beschränkt. Die C-Version lautet jetzt wie folgt: #include <stdio.h> C... int main(void) { unsigned int obergrenze; unsigned int zahl = 1; printf("eingabe der Obergrenze: "); scanf("%u",&obergrenze); while ( zahl <= obergrenze ) { printf("zweierpotenz: %u\n",zahl); zahl = zahl * 2; return 0; Das erweiterte Java-Programm sieht so aus: import java.io.*;... Java class ZweierPotenzen_2 { public static void main(string args[]) throws IOException { int zahl = 1; int obergrenze; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Eingabe der Obergrenze: "); obergrenze = Integer.parseInt(in.readLine()); while ( zahl <= obergrenze ) { System.out.println("Zweierpotenz: " + zahl); zahl = zahl * 2; Hier erkennt man zwei weitere Unterschiede: C verfügt, im Gegensatz zu Java, über einen Datentyp unsigned int, dessen Wertebereich die nichtnegativen ganzen Zahlen (bis zu einem bestimmten Maximalwert) sind. Mit den Standardtypen von C beschäftigt sich 4.1. Eine Eingabeoperation ist in Java recht umständlich zu programmieren: Man muss einen BufferedReader erzeugen und auf seine Eingabe Parsing-Funktionen anwenden. Im Vergleich dazu lässt sich die C-Eingabefunktion scanf() relativ einfach handhaben: Ähnlich wie printf() verwendet sie im ersten Parameter Konversionsangaben, die Anzahl und Typen der einzugebenden Werte bestimmen. Weitere Parameter geben die Variablen an, in denen die Werte gespeichert werden sollen. Die Eingabefunktion scanf() ist Thema von
17 1.2 C und Java im Sprachvergleich 21 Wichtig ist hier zudem der &-Operator, der im Beispiel dem zweiten scanf()-parameter vorangestellt ist. Dieser Adressoperator liefert die Speicheradresse der Variablen und gibt somit die Stelle im Speicher an, an der der eingegebene Wert abgelegt werden soll. C ermöglicht einen sehr flexiblen Umgang mit solchen Adressen und erlaubt unter anderem, sie in Zeigervariablen (Pointern) zu speichern. Die Kapitel 5 und 8 befassen sich ausführlich mit dem Zeigerkonzept von C und seiner Anwendung Programm mit einer Funktion Schließlich wird noch eine einfache Funktion eingeführt, die das Doppelte eines Werts berechnet. Das C-Programm hat nun die folgende Form: #include <stdio.h> C... int doppelt(int x) { return 2*x; int main(void) { unsigned int obergrenze; unsigned int zahl = 1; printf("eingabe der Obergrenze: "); scanf("%u",&obergrenze); while ( zahl <= obergrenze ) { printf("zweierpotenz: %u\n",zahl); zahl = doppelt(zahl); return 0; In Java lautet das Programm jetzt: import java.io.*;... Java class ZweierPotenzen_2 { public static int doppelt(int x) { return 2*x; public static void main(string args[]) throws IOException { int zahl = 1; int obergrenze; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Eingabe der Obergrenze: "); obergrenze = Integer.parseInt(in.readLine()); while ( zahl <= obergrenze ) { System.out.println("Zweierpotenz: " + zahl); zahl = doppelt(zahl);
18 22 1 Einführung C-Funktionen entsprechen also den statischen (d.h. nicht auf ein bestimmtes Objekt bezogenen) Methoden von Java. Sie sind in C aber nicht einer bestimmten Klasse zugeordnet (da es in C ein Klassenkonzept überhaupt nicht gibt), sondern werden in der Programmdatei (oder auch in mehreren Dateien) ohne einen umschließenden Rahmen hintereinander definiert Eigenschaften von Java vs. Eigenschaften von C Tabellarischer Vergleich Die drei Programmbeispiele zeigten einige, aber bei weitem nicht alle Unterschiede zwischen C und Java auf. Tabelle 1.1 gibt eine knappe Gesamtübersicht über die Gemeinsamkeiten und Unterschiede von Java und C. Zudem verweist sie auf die Kapitel des Buchs, in denen die einzelnen Themenbereiche diskutiert werden. Tabelle 1.1 Vergleich zwischen Java und C Java C siehe Art der Sprache imperativ, objektorientiert imperativ, prozedurorientiert Programmaufbau Konstrukt aus Klassen, Schachtelung und Verteilung auf mehrere Dateien/Pakete möglich Sammlung von Funktionen, Schachtelung nicht möglich, Verteilung auf mehrere Dateien möglich 2.1 Ausführung von Programmen Übersetzung in Bytecode, anschließend Interpretation durch die Software der Java Virtual Machine (JVM) Vorarbeit durch Präprozessor, Übersetzung über Objektcode in Maschinensprache, anschließend Ausführung durch die Prozessor-Hardware , 2.2, 2.3 Kontrollstrukturen skalare Datentypen nahezu identische Blöcke, bedingte Anweisungen und Schleifen; nur wenige Detailunterschiede sehr ähnliche Zahlen- und Zeichentypen mit Unterschieden bezüglich Wertebereichen und Behandlung von Wahrheitswerten zusammengesetzte Datentypen Objekte, darunter auch Arrays und Collections mit zahlreichen vordefinierten Operationen Arrays, Strukturen, Unions, Bitfelder, keine vordefinierten Typen oder Operationen für Mengen, Listen usw. 4.3, 4.4, 4.5, 8 Definition weiterer Typen Klassen, Enumerationen typedef-operator, struct-typen, Enumerationen 4.4.2, 4.6 Zeiger/Pointer Objektvariablen mit Referenzen auf Objekte Zeigervariablen mit Adressen von Speicherzellen und Adressarithmetik 5
C für Java-Programmierer
Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im
C für Java- Programmierer
Carsten Vogt C für Java- Programmierer mit 59 Bildern, 36 Tabellen und 35 Aufgaben HANSER Inhalt 1 Einführung 13 Schnelleinstieg 14 1.1 C und Java von den Anfängen bis heute 15 1.1.1 Die Entwicklung von
C für Java-Programmierer
Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im Buchhandel
C für Java-Programmierer
Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im Buchhandel
Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15
Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen
Inhaltsverzeichnis. Vorwort.11
Inhaltsverzeichnis Vorwort.11 Kapitel 1 Einführung in die C-Programmierung 17 1.1 Ein erstes C-Programm 17 1.1.1 Analyse des Zinseszins-Programms 17 1.2 Compilieren und Ausführen eines Programms 24 1.3
Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage
ISO-SiMMlarcl als erste Programmiersprache Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage B.G.Teubner Stuttgart Leipzig 1999 Inhaltsverzeichnis 1.1 Algorithmen und
С als erste Programmiersprache
Joachim Goll Ulrich Bröckl Manfred Dausmann С als erste Programmiersprache Vom Einsteiger zum Profi 4., überarbeitete und erweiterte Auflage Teubner B.G.Teubner Stuttgart Leipzig Wiesbaden 1 2 3 4 5 GRUNDBEGRIFFE
Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
Die Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
Programmierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung
Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache
Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C
I Grundlagen...1 1 Grundprinzipien der Datenverarbeitung...2 1.1 Historische Entwicklung der Datenverarbeitung...2 1.1.1 Von A wie Abakus bis Z wie Zuse...2 1.1.2 Die Rechnergenerationen...3 1.1.3 Computer
Einstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
Java-Grundkurs für Wirtschaftsinformatiker
Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich
Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache
Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache Vom Einsteiger zum Fortgeschrittenen 7., überarbeitete und erweiterte Auflage Mit 35 Abbildungen STUDIUM VIEWEG+
Programmieren lernen mit Perl
Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete
Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren
Hanspeter Mössenböck Sprechen Sie Java? Eine Einführung in das systematische Programmieren 3., überarbeitete und erweiterte Auflage Tm\ dpunkt.verlag 1 Grundlagen 1 1.1 Daten und Befehle 2 1.2 Algorithmen
Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?
Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und
Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
Programmierung in C/C++
Programmierung in C/C++ Mit einer grundlegenden Einführung in die Objektorientierung Univ.-Prof. Hon.-Prof. Dr. Dieter Roller Mit 134 Bildern Kontakt & Studium Band 682 Herausgeber: Prof. Dr. Birgit Baum
Die Programmiersprache C
Die Programmiersprache C höhere Programmiersprache (mit einigen assemblerähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,
Einführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp
Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
II.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
Java als erste Programmiersprache
Joachim Göll Cornelia Heinisch Java als erste Programmiersprache Grundkurs für Hochschulen 8., überarbeitete Auflage Springer Vi eweg Inhaltsverzeichnis 1 Grundlagen der Programmierung 1 1.1 Das erste
Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen
Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18
RO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
Erste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)
Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+
Effektiv Programmieren in С und C++
Dietmar Herrmann Effektiv Programmieren in С und C++ Eine Einführung mit Beispielen aus Mathematik, Naturwissenschaft und Technik 3., vollständig überarbeitete und erweiterte Auflage 3 vieweg flffm \;i
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Herzlich willkommen!
Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: [email protected] Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in
Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2
iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
RO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
Programmieren in. Brian W. Kernighan Dennis M. Ritchie ANSIC. Mit dem C-Reference Manual in deutscher Sprache. Zweite Ausgabe
Brian W. Kernighan Dennis M. Ritchie Programmieren in Mit dem C-Reference Manual in deutscher Sprache Zweite Ausgabe ANSIC Die deutsche Ausgabe besorgten Prof. Dr. A.T. Schreiner und Dr. Ernst Janich Eine
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
II.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
Grundlagen der Programmierung
Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,
Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21
xi 1 Grundlagen 1 1.1 Daten und Befehle......................................... 2 1.2 Algorithmen............................................. 4 1.3 Variablen................................................
Ausgabe:
Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife
TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4
Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...
Praktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode
Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>
Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include int main() { printf( hello world\n ); return 0; } Peter Sobe 1 Verschiedene Sprachkonzepte
Crashkurs C++ - Teil 1
Crashkurs C++ - Teil 1 Intro Speicherverwaltung Variablen, Pointer, Referenzen Felder statische & dynamische Allozierung Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik
Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online
Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches
Vorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
Propädeutikum Programmiersprache C und Mathematik 2014
Propädeutikum Programmiersprache C und Mathematik 2014 Fakultät für Mathematik und Informatik Universität Leipzig Dipl.-Inf. Stefan Freitag, URZ & UBL Stefan Freitag Einführungsveranstaltung Ziel und Zweck
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Inhalt. Einführung in die Strukturierte Programmierung 15
Inhalt Einführung in die Strukturierte Programmierung 15 1.1 Was bedeutet Programmieren? 17 1.2 Was bedeutet Strukturierte Programmierung? 18 1.3 Was ist Pascal? 19 1.4 Was ist PS/k? 20 1.5 Warum wird
Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14
Inhaltsverzeichnis Das erwartet dich in diesem Buch 8 Kapitel 1 Aufbruch ins Programmierabenteuer 14 Das Schlimmste vorab: die binäre Logik 15 So hoch entwickelt und doch so primitiv: der Prozessor 17
2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
2. JAVA-Programmierung. Informatik II für Verkehrsingenieure
2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie
Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.
1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.
Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
Intensivübung zu Algorithmen und Datenstrukturen
Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche
Viel Erfolg bei der Bearbeitung der Aufgaben!
Musterlösung Name:... 1 2 3 4 5 Gesamt Note 12 8 10 15 11 56 Bitte tragen Sie auf dem Deckblatt Ihr Namen und Ihre Matrikelnummer ein und auf allen weiteren Seiten nur noch Ihre Matrikelnummer. Lösungen
C- Kurs 09 Dynamische Datenstrukturen
C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann [email protected] leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für
Informatik für Ingenieure
Informatik für Ingenieure Grundlagen und Programmierung in С von Prof. Dr. Axel Böttcher und Prof. Dr. Franz Kneißl Fachhochschule Regensburg Oldenbourg Verlag München Wien Inhalt Vorwort 5 1 Grundbegriffe
2.1 Fundamentale Typen
2. Elementare Typen 2.1 Fundamentale Typen C++ stellt die wichtigsten Datentypen mit passender Form der Abspeicherung und zugehörigen Rechenoperationen zur Verfügung : Boolscher Datentyp (bool) für logische
Objektorientierte Programmierung in Java
Objektorientierte Programmierung in Java 1. Auflage Taschenbuch. Paperback ISBN 978 3 8266 7414 3 Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden > Prozedurorientierte Programmierung
Einstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
Vorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
Pseudo-Programmiersprache
1 Erste Schritte in C++ 4 Beschreibungsmöglichkeiten für Algorithmen Struktogramm Das gezeigte Struktogramm enthält die elementaren Grundstrukturen Folge, Auswahl und Schleife. Diese werden in einem der
Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
Klassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
ALGOL 68 im Aspekt einer modernen Programmiersprache???
ALGOL 68 im Aspekt einer modernen Programmiersprache??? General-purpose-Programmiersprache: Ein sehr wichtiges Kriterium ist die Möglichkeit, alle Algorithmen (=Lösungsverfahren) in einer Programmiersprache
Java-Grundkurs für rtschaftsinformatiker
Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für rtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung- Fortgeschrittene Konzepte kennenlernen Betriebswirtschaftlich orientierte
Eine praktische Einführung in die Programmierung mit der Programmiersprache C
Eine praktische Einführung in die Programmierung mit der Programmiersprache C www.c-howto.de C-HowTo www.c-howto.de Inhaltsverzeichnis 1 Einführung.. 10 1:1 Wozu Programmieren? 10 1.2 Was ist ein Programm?
Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um
