Die Programmiersprache C Eine Einführung

Ähnliche Dokumente
Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Vorkurs Informatik WiSe 16/17

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Vorkurs Informatik WiSe 17/18

Angewandte Mathematik und Programmierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

RO-Tutorien 3 / 6 / 12

Intensivübung zu Algorithmen und Datenstrukturen

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

2 Programmieren in Java I noch ohne Nachbearbeitung

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Kompilieren Datentypen Operatoren. Überblick. 1 Kompilieren. 2 Datentypen. const static volatile. 3 Operatoren. Alexander Batoulis

RO-Tutorien 15 und 16

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Anweisungen zur Ablaufsteuerung

Einführung in die Programmierung Wintersemester 2011/12

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Grundlagen der Modellierung und Programmierung, Übung

Welche Informatik-Kenntnisse bringen Sie mit?

2. Programmierung in C

Einführung in C. EDV1-04C-Einführung 1

Martin Unold INFORMATIK. Geoinformatik und Vermessung

PIC16 Programmierung in HITECH-C

6. Grundlagen der Programmierung

Grundlagen der Programmierung

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

JAVA-Datentypen und deren Wertebereich

4.2 Programmiersprache C

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

C- Kurs 03 Ausdrücke und Operatoren

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Primitive Datentypen

Javakurs für Anfänger

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Einführung in die Programmierung

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

8. Ausdrücke, Operatoren (einfache Typen)

Ausdrücke der Programmiersprache Java

2. Programmierung in C

2 Eine einfache Programmiersprache

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Herzlich willkommen!

Objektorientierte Programmierung OOP Programmieren mit Java

Erste Java-Programme (Scopes und Rekursion)

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Tag 8 Repetitorium Informatik (Java)

Ausdrücke (1) Grundlegende Eigenschaften

Java I Vorlesung Imperatives Programmieren

Java Anweisungen und Ablaufsteuerung

Tutorium Rechnerorganisation

Einführung Programmierpraktikum C Michael Zwick

Funktionales C++ zum Ersten

Repetitorium Informatik (Java)

Informatik I Programmieren in C

2. Programmierung in C

2 Eine einfache Programmiersprache

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

einlesen n > 0? Ausgabe Negative Zahl

Algorithmen zur Datenanalyse in C++

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

2 Eine einfache Programmiersprache

Übungspaket 9 Logische Ausdrücke

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

Javakurs für Anfänger

3. Einführung in C Programmierung Einführung in C Programmierung

Java Ablaufsteuerung (Beispiele)

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Grundlagen der Programmierung

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Transkript:

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 vs imperativ Operatoren Verzweigungen Funktionen Komplexe Datentypen 3 Beispielcode Fakultät (Rekursiv) 4 Zusammenfassung 5 Quellen

Einführung Einführung Quelle: http://commons.wikimedia.org/wiki/user:rezonansowy

Einführung Entstehungsgeschichte Geschichtlicher Abriss

Einführung Entstehungsgeschichte Geschichtlicher Abriss Entwickelt in der Zeit von 1969-73 von Dennis Ritchie

Einführung Entstehungsgeschichte Geschichtlicher Abriss Entwickelt in der Zeit von 1969-73 von Dennis Ritchie Weiterentwicklung der Sprache B

Einführung Entstehungsgeschichte Geschichtlicher Abriss Entwickelt in der Zeit von 1969-73 von Dennis Ritchie Weiterentwicklung der Sprache B 1978 erste Auflage The C programming language

Einführung Entstehungsgeschichte Geschichtlicher Abriss Entwickelt in der Zeit von 1969-73 von Dennis Ritchie Weiterentwicklung der Sprache B 1978 erste Auflage The C programming language Kommittee zur Normierung der Sprache 1989 ANSI.X3.159-1989

Einführung Entstehungsgeschichte Geschichtlicher Abriss Entwickelt in der Zeit von 1969-73 von Dennis Ritchie Weiterentwicklung der Sprache B 1978 erste Auflage The C programming language Kommittee zur Normierung der Sprache 1989 ANSI.X3.159-1989 Heute ISO/IEC 9899 (C99) bzw. C11 Norm

Einführung Verwendung Hauptanwendungsgebiete von C

Einführung Verwendung Hauptanwendungsgebiete von C Systemprogrammierung; einschl. Betriebssysteme

Einführung Verwendung Hauptanwendungsgebiete von C Systemprogrammierung; einschl. Betriebssysteme eingebettete Systeme

Einführung Verwendung Hauptanwendungsgebiete von C Systemprogrammierung; einschl. Betriebssysteme eingebettete Systeme Anwendungssoftware

Einführung Verwendung Hauptanwendungsgebiete von C Systemprogrammierung; einschl. Betriebssysteme eingebettete Systeme Anwendungssoftware Compiler, Programmbibliotheken und Interpreter anderer höherer Programmiersprachen oftmals in C (bspw. Java)

Einführung Verwendung Hauptanwendungsgebiete von C Systemprogrammierung; einschl. Betriebssysteme eingebettete Systeme Anwendungssoftware Compiler, Programmbibliotheken und Interpreter anderer höherer Programmiersprachen oftmals in C (bspw. Java) Zwischencode

Vergleich zweier Programmierparadigmen

Objektorientiert vs imperativ Vergleich zweier Programmierparadigmen Objektorientiert Alles ist ein Objekt Objekte kommunizieren miteinander Objekte haben eigenen Speicher Jedes Objekt ist ein Exemplar einer Klasse Die Klasse modelliert das gemeinsame Verhalten Programm wird ausgeführt, indem dem ersten Objekt die Kontrolle übergeben wird

Objektorientiert vs imperativ Vergleich zweier Programmierparadigmen Objektorientiert Alles ist ein Objekt Objekte kommunizieren miteinander Objekte haben eigenen Speicher Jedes Objekt ist ein Exemplar einer Klasse Die Klasse modelliert das gemeinsame Verhalten Programm wird ausgeführt, indem dem ersten Objekt die Kontrolle übergeben wird Imperativ Festlegung in welcher Reihenfolge was zu tun ist und wie Schrittweises Fortschreiten der Befehle Steuerung der Befehlsausführung über Kontrollstrukturen (Sequenzen, Schleifen, Verzweigungen)

Operatoren Operatoren in C

Operatoren Operatoren in C Arithmetische Operatoren

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement Zuweisungen

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement Zuweisungen Relationale Operatoren

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement Zuweisungen Relationale Operatoren Logische Operatoren

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement Zuweisungen Relationale Operatoren Logische Operatoren Bitmanipulation

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement Zuweisungen Relationale Operatoren Logische Operatoren Bitmanipulation Zeigeroperatoren

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement Zuweisungen Relationale Operatoren Logische Operatoren Bitmanipulation Zeigeroperatoren Adressoperator &

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement Zuweisungen Relationale Operatoren Logische Operatoren Bitmanipulation Zeigeroperatoren Adressoperator & Verweisoperator

Operatoren Operatoren in C Arithmetische Operatoren Addition, Subtraktion, Multiplikation, Division, Modulo Inkrement, Dekrement Zuweisungen Relationale Operatoren Logische Operatoren Bitmanipulation Zeigeroperatoren Adressoperator & Verweisoperator 1 int a; 2 int * zeiger ; 3 zeiger = & a; // Zeiger verweist nun auf a 4 * zeiger = 10; // setzt den Wert von a auf 10

Verzweigungen If, else Anweisungen

Verzweigungen If, else Anweisungen Verhalten analog zu Java

Verzweigungen If, else Anweisungen Verhalten analog zu Java 1 if( a > 0 ){ 2 printf (" positiv "); 3 } else if( a < 0 ){ 4 printf (" negativ "); 5 } else { 6 printf (" null "); 7 }

Verzweigungen Switch

Verzweigungen Switch Wird verwendet, wenn unter vielen Bedingungen ausgewählt werden soll

Verzweigungen Switch Wird verwendet, wenn unter vielen Bedingungen ausgewählt werden soll break-anweisung notwendig

Verzweigungen Switch Wird verwendet, wenn unter vielen Bedingungen ausgewählt werden soll break-anweisung notwendig 1 int x; 2 scanf ("%d", &x); 3 switch (x) { 4 case 1: y = 1; 5 break ; 6 case 2: y = 4; 7 break ; 8 case 3; y = 9; 9 break ; 10. 11. 12 default : y = 0; 13 }

Funktionen Beispiel: Flächeninhaltsfunktion

Funktionen Beispiel: Flächeninhaltsfunktion 1 double flaeche_ inhalt ( double a, double b){ 2 double flaeche ; 3 flaeche = a * b; 4 return ( flaeche ); 5 } 6 7 int main ( void ){ 8 double a = 5; 9 double b = 3; 10 flaeche_inhalt (a,b); 11 }

Komplexe Datentypen Strukturen

Komplexe Datentypen Strukturen Zusammenfassen mehrerer primitiver oder komplexer Datentypen

Komplexe Datentypen Strukturen Zusammenfassen mehrerer primitiver oder komplexer Datentypen Variablen dürfen unterschiedliche Datentypen besitzen

Komplexe Datentypen Strukturen Zusammenfassen mehrerer primitiver oder komplexer Datentypen Variablen dürfen unterschiedliche Datentypen besitzen 1 struct datum { 2 int tag ; 3 char monat [12]; 4 int jahr ; 5 } geburtstag, feiertag ; // Variablen vom Typ datum werden erzeugt 6 7 struct datum geburtstag = {19, " Januar ", 1994} 8 feiertag. jahr = 1989;

Komplexe Datentypen Aufzählungen

Komplexe Datentypen Aufzählungen Definition vieler Konstanten, die miteinander verwandt sind

Komplexe Datentypen Aufzählungen Definition vieler Konstanten, die miteinander verwandt sind werden als Integer interpretiert

Komplexe Datentypen Aufzählungen Definition vieler Konstanten, die miteinander verwandt sind werden als Integer interpretiert 1 enum woche {Mo =1, Di, Mi, Do, Fr, Sa, So };

Beispielcode Programmbeispiel

Beispielcode Fakultät (Rekursiv) Rekursive Fakultät programmiert in C 1 # include <stdio.h> 2 3 int fak ( int n){ 4 int erg ; 5 if(n == 0){ 6 erg = 1; 7 } else { 8 erg = n * fak (n -1) ; 9 } 10 return ( erg ); 11 } 12 int main ( void ){ 13 int n; 14 printf (" Bitte eine Zahl eingeben!\n"); 15 scanf ("%d", &n); 16 printf ("%d!=% d\n", n, fak (n)); 17 }

Beispielcode Fakultät (Rekursiv) Vergleich von C und Java Programmbeispiel in C Programmbeispiel in Java 1 # include <stdio.h> 2 3 int fak ( int n){ 4 int erg ; 5 if(n == 0){ 6 erg = 1; 7 } else { 8 erg = n * fak (n -1) ; 9 } 10 return ( erg ); 11 } 12 int main ( void ){ 13 int n; 14 printf (" Bitte eine Zahl eingeben!\n"); 15 scanf ("%d", &n); 16 printf ("%d!=% d\n", n, fak (n)); 17 } 1 public class Fakultaet { 2 3 public static int fak ( int n){ 4 int erg ; 5 if(n == 0){ 6 erg = 1; 7 } else { 8 erg = n * fak (n -1) ; 9 } 10 return erg ; 11 } 12 public static void main ( String args []) { 13 14 System.out. println (fak (5) ); 15 } 16 17 }

Zusammenfassung Zusammenfassung

Zusammenfassung Zusammenfassung C wurde seit den 70ern oftmals überarbeitet und standardisiert

Zusammenfassung Zusammenfassung C wurde seit den 70ern oftmals überarbeitet und standardisiert C und Java haben starke syntaktische Übereinstimmungen

Zusammenfassung Zusammenfassung C wurde seit den 70ern oftmals überarbeitet und standardisiert C und Java haben starke syntaktische Übereinstimmungen Wer Java bereits kennt hat meist einen leichten Umstieg auf C

Quellen Quellenangabe Vorlesung: Einführung in die Informatik I (Technikorientiert) - Prof. Dr.-Ing. Olaf Hellwich http://de.wikibooks.org/wiki/c-programmierung