Grundlagen der Programmierung in C Basics

Ähnliche Dokumente
Grundlagen der Programmierung in C Basics

Programmierung I Basics (in Python)

Informatik I Einführung in Python, Basics Vergleich mit C++

Informatik I Einführung in Python, Basics Vergleich mit C++

Einführung in die Programmierung Wintersemester 2008/09

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Einführung in die C-Programmierung

Programmierung I Von Python nach C++

Grundelemente von C++

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Syntax und Kontrollstrukturen

Java vs. C++: Different by Design

Tutorium Rechnerorganisation

Einführung in die C++ Programmierung für Ingenieure

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

3 Grundstrukturen eines C++ Programms anhand eines Beispiels

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

Objektorientierte Programmierung mit C++

Modul 122 VBA Scribt.docx

Deklarationen in C. Prof. Dr. Margarita Esponda

Einführung in die Programmierung

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung

Einführung in die Programmierung (EPR)

Klausur in Programmieren

Die Programmiersprache C99: Zusammenfassung

Informatik: Abschnitt 4

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in die Programmierung

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

IT-Basics 2. DI Gerhard Fließ

S. d. I.: Programieren in C Folie diese Zeichen dürfen verwendet werden in

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Einstieg in die Informatik mit Java

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Einstieg in die Informatik mit Java

Anhang I: C++ Syntax. Angewandte Informatik: Algorithmen und Programmiertechniken A1 1

Moderne C-Programmierung

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

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

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Programmierung in C. Grundlagen. Stefan Kallerhoff

Kapitel 2: Darstellung von Information Inhalt Einführung in die Informatik für Naturwissenschaftler und Ingenieure

C/C++ Programmierung

Informatik: Abschnitt 4

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

2. Semester, 2. Prüfung, Lösung

Diana Lange. Generative Gestaltung Operatoren

Übersicht Programmablaufsteuerung

Kapitel 3: Lexikalische Syntax

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Einführung in Javadoc

Kapitel 4: Lexikalische Syntax

Java-Schulung Grundlagen

Grundlagen der Informatik 2. Typen

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Computeranwendung und Programmierung (CuP)

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen

Vorkurs C++ Programmierung

Datentypen: Enum, Array, Struct, Union

Programmierkurs Java

Dr. Monika Meiler. Inhalt

Methodische Grundlagen des Software Engineering - Übung 9

Prinzipien der Softwareentwicklung S. Strahringer

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Einführung Programmierpraktikum C Michael Zwick

SE2-6. Übung Johannes Bürdek

Kontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else

Primitive Datentypen

1. Der Einstieg in Java. Was heißt Programmieren?

Zusammenfassung des Handzettels für Programmieren in C

Java Einführung Abstrakte Klassen und Interfaces

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Kurze Einführung in die Programmiersprache C++ und in Root

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Algorithmen zur Datenanalyse in C++

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

C/C++-Programmierung

Wo sind wir? Übersicht lexikale Struktur von Java

2. Programmierung in C

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Einfache Rechenstrukturen und Kontrollfluss II

Klausur in Programmieren

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Variablen, Konstanten und Datentypen

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Einführung in die Programmiersprache C

Java Kurs für Anfänger Einheit 5 Methoden

Die Programmiersprache C

Grundlagen der Modellierung und Programmierung, Übung

Transkript:

Grundlagen der Programmierung in C Basics Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Was ist ein Programm? Abstrakt: Zeichenfolge entsprechend einer formalen Grammatik Formale Grammatik besteht aus Regeln folgender Art: statement-list : ; [leeres Statement] statement ; statement-list Terminale sind Zeichen eines Alphabets Spätere Vorlesung zu formalen Sprachen Konkret: Wörter (Identifier) und Zahlen (Literals) Operatoren (+, %, &, ) Sonstige Sonderzeichen (fast jedes hat eine eigene Bedeutung) G. Zachmann Grundlagen der Programmierung in C - Basics, 2 1

Whitespace Space, Tab, oder Newline Wird vom Compiler ignoriert Siehe Obfuscated Code G. Zachmann Grundlagen der Programmierung in C - Basics, 3 Kommentare Werden vom Compiler ignoriert 2 Arten: C++-style: const int Ntries; // this is an inline comment // the rest of the line is treated like a comment C-style: const int Ntries; /* this is a multiline comment: Everything is treated like a comment. Comments can t be nested. The comment is closed with a */ G. Zachmann Grundlagen der Programmierung in C - Basics, 4 2

Identifier Anderes Wort für Name (Variablename, Funktionsname, Keywordname) Zeichenkette Zugelassen: alphanumerische Zeichen und Underscore (_) Erstes Zeichen darf nicht Ziffer sein - blub und _bla sind ok - 2pi nicht ok Kein Limit auf Länge Achtung: manche unterscheiden nur die ersten 32 Zeichen Case-sensitiv G. Zachmann Grundlagen der Programmierung in C - Basics, 5 Keywords Wörter mit spezieller Bedeutung Sind reserviert, kann man nicht als Namen verwenden keyword asm else operator throw auto enum private true bool explicit protected try break extern public typedef case false register typeid catch float reinterpret_cast typename char for return union class friend short unsigned const goto signed using const_cast if sizeof virtual continue inline static void default int static_cast volatile delete long struct wchar_t do mutable switch while double namespace template dynamic_cast new this G. Zachmann Grundlagen der Programmierung in C - Basics, 6 3

Eingebaute (built-in) Typen Jede Variable muß einen bestimmten Typ haben Muß zur Compile-Zeit feststehen und kann nicht gewechselt werden! int long int float double long double unsigned int char bool single precision integer double precision integer single precision real double precision real extended precision real unsigned integer single character (a letter) logical variables Exkurs: Smalltalk kennt keine Typen, alles wird zur Laufzeit gecheckt Viele Skript-Sprachen haben nur einen Typ (String) G. Zachmann Grundlagen der Programmierung in C - Basics, 7 Literals Numerische Literals 123 O123 0x123 int's, decimal, octal, hex 123l 123u long, unsigned A 1 \t characters, tab 3.14f 3.14 3.14L float, double, long double 3e-2 0.03 0.3e-1 scientific notation true false boolean Konstante Strings "" null string ( \0 ) "name" n a m e \0 "a \"string\"" prints: a "string" "a string " string concatenation for "spanning two lines" better readability Spezielle Zeichen (escape sequence) \a alert (bell) \\ backslash \b backspace \r carriage return \ double quote \f form feed \t tab \n newline \0 null character \ single quote \v vertical tab \101 101 octal, A \x041 hex, A G. Zachmann Grundlagen der Programmierung in C - Basics, 8 4

Strings Kein eingebauter Typ an sich String-Konstanten: wie eingebaute Typen schreiben Repräsentierung im Speicher: 'r' 'w' 't' 'h' '\0' sizeof( "rwth" ) == 5; G. Zachmann Grundlagen der Programmierung in C - Basics, 9 Deklaration Assoziiert Bedeutung (d.h. vor allem:typ) mit Identifier Exkurs: In allen compilierten Sprachen muß Identifier erst deklariert werden, bevor er benutzt werden kann Strong type checking In den meisten interpretierten Sprachen (insbesondere Skript- Sprachen) nicht notwendig/möglich Weak type checking, "run-time type" checking G. Zachmann Grundlagen der Programmierung in C - Basics, 13 5

Variablen Funktion wie in Mathematik, speichert Wert Variable = Paar (Identifier, Typ) Deklaration: T V; mit: T = bekannter Typ, V = Variablenname Beispiele: int i; // the variable 'i' float f1, f2; char c1, // comment c2; // comment G. Zachmann Grundlagen der Programmierung in C - Basics, 14 Initialisierung Deklaration kann gleichzeitig zur Belegung mit Wert fungieren: float pi = 3.1415926; // definition int seconds_per_day = 60*60*24; Sollte man (fast) immer machen! G. Zachmann Grundlagen der Programmierung in C - Basics, 15 6

Konstanten Deklaration: const type var-name = const-expression; Beispiele: const float Pi = 3.1415926; const unsigned int answer = 42; G. Zachmann Grundlagen der Programmierung in C - Basics, 16 Wertebereiche Jeder Typ hat bestimmten Wertebereich Plattform-abhängig! Symbolische Konstanten für diese Bereiche: Bekommt man durch: #include <limits> Beispiele: #include <stdlib.h> #include <stdio.h> #include <limits> using namespace std;... int a = numeric_limits<int>::max(); char c = numeric_limits<char>::min(); float eps = numeric_limits<float>::epsilon(); G. Zachmann Grundlagen der Programmierung in C - Basics, 17 7

Style Guidelines für Variablen Style Guidelines sind sehr wichtig: Lesbarkeit Wartbarkeit des Programms "Kleine" Variablen: Laufvariablen, Variablen mit sehr kurzer Lebensdauer 1-3 Buchstaben i,j,k, für int's a,b,c,x,y,z für float's "Große" Variablen: Längere Lebensdauer, größere Bedeutung Labeling names! ("Sprechende Namen") mein_alter, meinalter, determinante, G. Zachmann Grundlagen der Programmierung in C - Basics, 18 Ausdrücke Ausdruck ("expression") = mathematischer Term Beispiel: sin(x)*sin(2*x) Compiler generiert Anweisungen zur Auswertung FORTRAN (Formula Translator) war Ende der 50er Jahre die erste Programmiersprache mit dieser Fähigkeit Ausdruck setzt sich zusammen aus: Literalen (Konstanten), Variablen, Funktionen Operatoren Klammern Übliche Regeln G. Zachmann Grundlagen der Programmierung in C - Basics, 19 8

Operatoren Arithm. Operator Meaning -i +w unary + and - a*b a/b i%2 mult., div., modulo a+b a-b binary + and - i=3; a=3.0 int/float assignment Self-increment and decrement Equivalent to k = ++j; j=j+1; k=j; k = j++; k=j; j=j+1; k = --j; j=j-1; k=j; k = j--; k=j; j=j-1; Relational Operators < less than > greater than <= less or equal >= greater or equal == equals!= not equal Boolean Operators! unary not && logical and logical or Bit-wise Operators ~ i bitwise Complement i & j bitwise AND i j bitwise OR i ^ j bitwise XOR i << n left shift (n positions) i >> n right shift (n positions) Assignment operator x = y Bsp.: x -= y x /= y x &= y equivalent x = x (y) x = x - y x = x / y x = x & y G. Zachmann Grundlagen der Programmierung in C - Basics, 20 Ganzzahlarithmetik Wertebereich Siehe numeric_limits Typ. -2 31... 2 31-1 (32-bit int's) Wrap-around: max.int +1 == min.int! Kein Überlauf! Division: rundet zur 0! Beispiel: 3/2 == 1, und -3/2 == -1 Division und Modulo: (x/y)*y + x%y == x Beispiele: a = 1234 b = 99 sum = a + b #1333 prod = a * b #122166 quot = a / b #12 rem = a % b #46 G. Zachmann Grundlagen der Programmierung in C - Basics, 21 9

Beispiel: Berechnung von Schaltjahren int y = 2005; # Durch 4 teilbar, aber nicht durch 100 bool isleapyear = (y % 4 == 0) && (y % 100!= 0); # Oder durch 400 teilbar bool isleapyear = isleapyear (y % 400 == 0); G. Zachmann Grundlagen der Programmierung in C - Basics, 22 10