Hochschule Darmstadt Prof.Dr. H.P.Weber. Informatik 1. 2006 Pearson Education, Inc. All rights reserved.



Ähnliche Dokumente
Hochschule Darmstadt Prof.Dr. H.P.Weber. Programmieren Pearson Education, Inc. All rights reserved.

Informatik. Kap 0 Organisation

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.

Programmieren. Kap 0 Organisation

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Historischer Abriss Fortran Backus (IBM) Formula Translator Algol 60 Naur et al. Algorithmic Language

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Einleitung und Organisatorisches

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Grundlagen der Informatik

Einführung in PHP. (mit Aufgaben)

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Programmiersprachen und Programmierkonzepte

Version 0.3. Installation von MinGW und Eclipse CDT

Kapitel 1: Einführung

Adressen der BA Leipzig

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Installation und Inbetriebnahme von Microsoft Visual C Express

Informationsblatt zu den Seminaren am Lehrstuhl. für Transportsysteme und -logistik

C++ mit. Microsoft Visual C Richard Kaiser. Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.

Programmieren I. Überblick. Institut für Angewandte Informatik

Software Engineering:

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Leichte-Sprache-Bilder

Installation und Inbetriebnahme von SolidWorks

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Einführung in die Informatik II

Beruflichen Schule in Nidda

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Algorithmen mit Python

FB Informatik Prof. Dr. R.Nitsch. Programmieren 1. Reiner Nitsch 06151/ Homepage: Raum: D14/0.

Anleitung zum neuen Überaumbuchungssystem der Hochschule für Musik und Tanz Köln

0. Einführung. C und C++ (CPP)

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Anleitung für die Hausverwaltung

Anmelden und Vorträge einreichen auf der JBFOne-Website Inhalt

Robot Karol für Delphi

Gezielt über Folien hinweg springen

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

PROFIS Software Lösungen

Upgrade von Windows Vista auf Windows 7

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Anlegen eines DLRG Accounts

Das -Postfach für Studierende. Informationen und Anleitung zur Nutzung

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Impulse Inklusion Selbst-bestimmtes Wohnen und Nachbarschaft

Java Script für die Nutzung unseres Online-Bestellsystems

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Schritt 1. Anmelden. Klicken Sie auf die Schaltfläche Anmelden

VBA-Programmierung WS 2008/09

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

SWE12 Übungen Software-Engineering

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Über den Link erreichen Sie unsere Einstiegsseite:

Grundlagen der Programmierung UE

Kontaktlinsen über die neue Website bestellen eine Kurzanleitung

FH D Fachhochschule Düsseldorf University of Applied Sciences. FB 3 Fachhochschule Düsseldorf University of Applied Sciences

Programmieren was ist das genau?

my.ohm Content Services Autorenansicht Rechte

Anleitung Office 365 / ausführliche Version. Bestellungs- und Installationsanleitung für Office 365

WordPress. Dokumentation

1 Vom Problem zum Programm

Updatehinweise für die Version forma 5.5.5

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Vorkurs Informatik WiSe 15/16

ALEMÃO. Text 1. Lernen, lernen, lernen

Studieren- Erklärungen und Tipps

Installieren von Microsoft Office Version 2.1

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

VB.net Programmierung und Beispielprogramm für GSV

FAQ. Hilfe und Antworten zu häufig gestellten Fragen

Anbindung des eibport an das Internet

LSF-Anmeldungen zu Studien- und Prüfungsleistungen in der Philosophischen Fakultät

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Übungen zu C++ Kapitel 1

DreamSpark - Schritt für Schritt

Umstellung und Registrierung Release

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

MetaQuotes Empfehlungen zum Gebrauch von

Objektorientierte Analyse und Design

Shellfire L2TP-IPSec Setup Windows XP

Lernziele Ablauf Übungsaufgaben Formalitäten. Programmierpraktika. Einführung in das Programmieren und Weiterführendes Programmieren

Schumacher, Chris Druckdatum :11:00

Visual Basic Express Debugging

e-books aus der EBL-Datenbank

Kurzanleitung MAN E-Learning (WBT)

WINDOWS 10 Upgrade. Beispiel: Desktop-Ausschnitt von vorhandenem WIN 8.1 (rechte Ecke der Taskleiste)

Digitaler Semesterapparat

Informatik 1 Tutorial

Transkript:

1 Inf 1 Hochschule Darmstadt Prof.Dr. H.P.Weber Informatik 1

2 Inhalt von Informatik 1 1 Einführung 2 Grundelemente der C Programmierung 3 Kontrollanweisungen: Teil 1 4 Kontrollanweisungen: Teil 2 5 Funktionen und eine Einführung in Rekursion 6 Arrays, Suchen und Sortieren 7 Zeiger 8 Strukturierte Datentypen (struct) 9 Dateiverarbeitung

3 1 Einführung

4 1.1 Organisatorisches 1.2 Programmiersprachen 1.3 Geschichte von C und C++ 1.4 C/C++ Standardbibliothek 1.5 Typische C/C++ Entwicklungsumgebung

5 1.1 Organisatorisches Stellung von Informatik 1 im Studium 1. Semester: Informatik 1 Prozedurale und strukturierte Programmierung Programmiersprache C 2. Semester: Informatik 2 Objektorientierte und generische Programmierung Programmiersprache C++

6 1.1 Organisatorisches Literatur H.M.Deitel,P.J.Deitel: C How To Program,7th ed (oder auch: 6th-5th ed); Prentice-Hall; 2013/2009/2006 Basistext der Vorlesung, deshalb primär empfohlen. Goll, Dausmann: C als erste Programmiersprache, 8. Auflage; Springer Vieweg; 2014 Deutschsprachiges Standardwerk zu Sprachsyntax und -nutzung. Außerdem: www.cplusplus.com Gute Referenz für die Bearbeitung der Aufgaben im Praktikum.

7 1.1 Organisatorisches Software Für eingeschriebene Studenten der Hochschule Darmstadt sind im Rahmen des Microsoft DreamSpark -Programms die professionellen Versionen von Visual Studio 2015 oder 2013 kostenlos erhältlich. Quelle: Anmelden im Intranet der h_da: https://intranet.h-da.de Dort navigieren zu: Hochschule -> Servicebereiche -> IT-Dienste -> Software -> Microsoft DreamSpark Microsoft Visual Studio 2013 Professional ist auch auf den Rechnern im Praktikum vorhanden

8 1.1 Organisatorisches Vorlesung, Praktikum, individuelles Üben Programmieren ist ein Handwerk, das geübt werden muss. Üben heißt zunächst: Sich allein mit Aufgabenstellung und Entwicklungsumgebung um eine Lösung bemühen. Teamarbeit macht erst Sinn, wenn jeder für sich die Aufgabe im wesentlichen gelöst hat. Das gilt uneingeschränkt für die Programmierausbildung; in der beruflichen Praxis sind durchaus andere Modelle möglich ( pair-programming ).

9 1.1 Organisatorisches Vorlesung, Praktikum, individuelles Üben Kalkulieren Sie ausreichend Zeit zum individuellen Üben in Ihren Zeitplan ein in der Vorlesung ist dafür keine Zeit und im Praktikum nur eingeschränkt. Notebooks in der Vorlesung sind nicht verboten, aber erfahrungsgemäß (außer bei großer Selbstdisziplin) eher kontraproduktiv.

10 1.1 Organisatorisches Vorlesung, Praktikum, individuelles Üben In der Vorlesung wird der Stoff systematisch zunächst begrifflich und dann an konkreten Beispielen dargestellt. Für Studenten mit wenig Programmiererfahrung drei Phasen: Vorbereitung der Vorlesung anhand der vorher bereitgestellten Folien Vorlesung mit Möglichkeit zur Diskussion der Begriffe und Beispiele Nachbereitung durch eigenes Üben und Bearbeiten der Praktikumsaufgaben

11 1.1 Organisatorisches Ablauf eines Praktikumstermins Ausgabe der Aufgabenstellung (Download von meiner Website) ca. 14 Tage vor Praktikumstermin Vorbesprechung in der Vorlesung Zu Hause: Programmcode entwerfen und eintippen Am besten schon mit Visual Studio 2015 oder 2013 Code für komplettes Projekt ins Praktikum mitbringen Im Praktikum: Übersetzung, Inbetriebnahme mit Visual Studio, Testen, evtl. mit Praktikumspartner durchsprechen / abgleichen (Zeitrahmen: maximal 90 Minuten) Abnahme/Testierung durch Betreuer

12 1.1 Organisatorisches Regeln zum Praktikum 5 von 5 möglichen Testaten sind Pflicht für erfolgreiche Praktikumsteilnahme Testate gibt es grundsätzlich nur zum jeweiligen Termin Bewertung: teilgenommen als Eintrag im QIS Dies ist die Voraussetzung für die Zulassung zur Klausur. Gruppeneinteilung für das Praktikum beim ersten Vorlesungstermin Termine und Aufgabenstellungen auf meiner Website Durchführung in Zweiergruppen

13 1.1 Organisatorisches Praktikum / Netzzugang Studierende setzen ihr Passwort für Labor und WLAN im OBS ('Online-Belegsystem') des FB Informatik Laborzugang vor dem ersten Praktikum von zu Hause aus aktivieren Dazu im OBS einloggen mit Matrikelnummer und Geburtsdatum als Initialpasswort; dann bei 'Passwort ändern' ein 'Passwort für Labors' eingeben 'Passwort für Labors' merken und beim Praktikumstermin zum Einloggen in Laborrechner verwenden https://obs.fbi.h-da.de/obs/

14 1.1 Organisatorisches Leistungsnachweis Klausur (90 Minuten) Zulassungsvoraussetzung: 5 Testate Inhalt: 'Papierklausur' mit Fragen zur Vorlesung und einzelnen Aspekten der Programmieraufgaben aus dem Praktikum

15 1.2 Programmiersprachen Maschinensprachen prozessorabhängige Codierung von Befehlen, Adressen und Daten als Bitmuster Maschinenorientierte Programmiersprachen (Assembler-Sprachen) prozessorabhängige mnemonische Codierung von Befehlen, Adressen und Daten; ein Assembler-Befehl ergibt einen Maschinenbefehl Problemorientierte Programmiersprachen den zu bearbeitenden (z.b. nummerischen, kommerziellen, technischen,...) Problemen angepasste Formulierung von Programmen eine Anweisung ergibt viele Maschinenbefehle portabel, da prozessorunabhängig

16 1.2 Programmiersprachen Problemorientierte Programmiersprachen An englischer Umgangssprache orientiert Benutzen übliche mathematische Schreibweise Beispiel: area = PI * radius * radius; Einzelne Anweisungen bewältigen substanzielle Aufgaben. Müssen durch Übersetzungsprogramme in Maschinensprache übersetzt werden ( Compiler ) Das komplett übersetzte Programm wird dann ausgeführt. Andere Möglichkeit: Interpreter Führen Hochsprachen-Programme direkt (d.h. Anweisung für Anweisung) aus Ausführung ist langsamer als bei compiliertem Programm

17 1.2 Programmiersprachen Prozedurale Programmiersprachen: FORTRAN (FORmula TRANslator) COBOL (COmmon Business Oriented Language) ALGOL (ALGOrithmic Language) PASCAL C Funktionale Programmiersprachen: LISP, Haskell, ML Scala, F# Logische Programmiersprachen: PROLOG

18 1.2 Programmiersprachen Objektorientierte Programmiersprachen: SMALLTALK EIFFEL C++ Java C# Skriptsprachen: Perl (Practical Extraction and Report Language) Python PHP (Hypertext Preprocessor, Personal Home Page Tools) Javascript Ruby

19 1.3 Geschichte von C und C++ Geschichte von C Entstanden aus CPL ( Combined Programming Language, Cambridge und London, Anfang der 1960er) Über BCPL ( Basic CPL, Martin Richards, 1967) und B (Ken Thompson, 1970) Ungetypte Sprachen Entwickelt von Dennis Ritchie (Bell Laboratories, 1972) Ergänzung von Datentypen Sprache, in der UNIX entwickelt wurde Unabhängig von der eingesetzten Hardware portable Programme können geschrieben werden ANSI und ISO Standard für C wurde 1990 veröffentlicht und 1999 sowie 2011 ergänzt ( C99, C11 )

20 1.3 Geschichte von C und C++ Geschichte von C++ Erweiterung von C Entwickelt von Bjarne Stroustrup (Bell Laboratories) seit Anfang der 1980er Stellt neue Eigenschaften zur Verfügung, um C auf ein höheres Niveau zu heben Ergänzung: objektorientierte Programmierung Objekte: wiederverwendbare Softwarekomponenten Modellieren Dinge der realen Welt Ergänzung: generische Programmierung Parametrisierte Funktionen und Datentypen Im August 2011 wurde ein in vielen Punkten erweiterter und ergänzter ISO Standard für C++ verabschiedet ( C++ 11 ). Die aktuelle Version ( C++ 14 ) gilt seit Ende 2014 und unterscheidet sich von C++11 nur durch kleinere Korrekturen und Ergänzungen.

21 1.4 C/C++ Standardbibliothek C/C++ Programme Aufgebaut aus Teilen, die Funktionen und Klassen (im Fall von C++) genannt werden C/C++ Standardbibliothek Reichhaltige Sammlung von existierenden Funktionen und Klassen Wiederverwendbar in neuen Anwendungen

22 Betrachtung zum Software Engineering Verwende einen Baukasten -Ansatz, um Programme zu schreiben. Vermeide, das Rad neu zu erfinden. Benutze vorhandene Teile, wann immer möglich. Diese sogenannte Wiederverwendung von Software ist ein zentrales Element der prozeduralen, objektorientierten und generischen Programmierung.

23 Betrachtung zum Software Engineering Beim Programmieren in C/C++ werden üblicherweise die folgenden Bausteine benutzt: Funktionen und Klassen der C/C++ Standardbibliothek, Funktionen und Klassen der verschiedensten Fremdanbieter, selbstdefinierte Funktionen und Klassen.

24 Tipp zur Performanz Die Nutzung von Funktionen und Klassen der C/C++ Standard-Bibliothek anstelle des Schreibens von eigenen Versionen wird meist die Performanz des Programms verbessern, da die Standardbibliothek auf Effizienz optimiert wurde. Diese Vorgehensweise verkürzt auch die Entwicklungszeit für ein Programm.

25 Portabilitäts-Tipp Die Nutzung von Funktionen und Klassen der C/C++ Standard-Bibliothek anstelle von eigenen Versionen verbessert die Portabilität des Programms, da die Standardbibliothek Bestandteil jeder C/C++ Implementierung ist.

26 Betrachtung zum Software Engineering Umfangreiche Klassenbibliotheken wiederverwendbarer Softwarekomponenten sind im Internet verfügbar. Viele dieser Bibliotheken sind kostenlos: -.NET-Klassenbibliothek - Qt-Klassenbibliothek - Boost-Klassenbibliothek (Teile davon sind zukünftige Erweiterungen des C++-Standards)

1.5 Typische C/C++ Entwicklungsumgebung C/C++ Programme werden in 6 Phasen entwickelt Editieren Programmierer schreibt Programm (und speichert Quellcode auf Festplatte) Präprozessor Ergänzungen und Ersetzungen auf Textebene Compilieren Compiler übersetzt C/C++ Programm in Maschinensprache Linken Objektcode mit weiteren Funktionen und Daten verbinden Laden Übertragen des ausführbaren Programms in den Arbeitsspeicher Ausführen Das (Maschinensprachen-)Programm Befehl für Befehl ausführen 27

28 Fig. 1.1 TypischeC/C++ Entwicklungsumgebung.

29 Praxis-Tipp C/C++ Programme sollten auf möglichst einfache und unkomplizierte Weise geschrieben werden. Man spricht vom KISS-Prinzip ( keep it small and simple ). Die Programmiersprache sollte nicht durch bizarre Verwendungen und Konstruktionen überansprucht werden.

30 Praxis-Tipp Es ist wichtig, die Dokumentation für die Version von C/C++ zu lesen, die man verwendet. Man sollte dies möglichst häufig tun, um ein Gefühl für die Möglichkeiten von C/C++ und den korrekten Gebrauch dieser Möglichkeiten zu bekommen.

31 Praxis-Tipp Rechner und Compiler sind gute Lehrer: Falls man nach dem Studium der C/C++-Dokumentation noch nicht sicher ist, wie eine Eigenschaft von C/C++ funktioniert, sollte man mit einem kleinen Testprogramm experimentieren und schauen was passiert. Jede Compilermeldung sollte genau studiert werden und mit Hilfe des Debuggers die Zusammenhänge klargemacht werden.