Kap 1. Programmentwicklung

Ähnliche Dokumente
Informatik für Elektrotechnik und Informationstechnik

5. Elementare Befehle und Struktogramme

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

FB Informatik. Fehler. Testplan

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme

Grundlagen der Programmentwicklung

Einführung in die Programmierung Wintersemester 2011/12

6. Programmentwicklung

1.8 Kontrollstrukturen 73. default : ziffer = 0; if (ziffer > 0) { cout << "Ziffer = " << ziffer; else { cout << "keine römische Ziffer!

4 Schleifen und Dateien

Aktivitäten in C# /.NET umsetzen

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Kap 4. Befehle und Struktogramme

Grundstruktur eines C-Programms

Grundlagen. Kapitel 1

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Programmieren in C/C++ und MATLAB

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

BKTM - Programmieren leicht gemacht.

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

C++ Teil 1. Sven Groß. 9. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 1 9. Apr / 19

2.4 Das erste C++-Programm *

Einführung in die Programmierung

Programmierung und Angewandte Mathematik

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

Angewandte Mathematik und Programmierung

GI Vektoren

Klausur in Programmieren

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

Algorithmus: Kochrezept

Grundlagen der Informatik - 6. Praktikum

Kapitel 1: Einführung

Einführung in die Programmierung

Entwurf von Algorithmen - Kontrollstrukturen

Elementare Datentypen in C++

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Programmieren für Physiker: C++ SS 2016

Praktikum Ingenieurinformatik. Termin 2. Mein erstes C-Programm

Praktikumstermin B-07: make & Makefiles

Das erste C++ Programm

Klausur in Programmieren

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

Assoziative Container in C++ Christian Poulter

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

Werkzeuge zur Programmentwicklung

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Programmieren für Physiker: C++

Projektverwaltung Problem Lösung: Modulare Programmierung

Übungspaket 23 Mehrdimensionale Arrays

Grundlagen der Informatik

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Extrem kurzer Einstieg in die Programmierung mit Java

L4. Erster Schritt zum Programmieren

Überladen von Operatoren

Zusammengesetzte Datentypen -- Arrays und Strukturen

Grundlagen der C++ - Programmierung für das MiniBoard von qfix 1

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

Einführung in die C-Programmierung

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Grundlagen der Informatik I (Studiengang Medieninformatik)

Einführung in die Programmierung mit VBA

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Objektorientierung Grundlagen

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

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

Hydroinformatik I: Hello World

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Klausur in Programmieren

Schleifen in C/C++/Java

Informatik I (D-MAVT)

Kapitel 3. Mein erstes C-Programm

C++ - Lernen und professionell anwenden

Informationsverarbeitung

Vergleich verschiedener OO-Programmiersprachen

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/

Variablen und Datentypen

Die Programmiersprache C

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Einführung in die Informatik

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Programmierung in C. Grundlagen. Stefan Kallerhoff

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Annehmende Schleife do while

Übungen zu C++ Kapitel 1

Programmieren in C/C++ und MATLAB

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Schleifenanweisungen

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Einführung in die Informatik I (autip)

SWE1 / Übung 2 ( )

Informatik. Kap 0 Organisation

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration

Transkript:

Kap 1. Programmentwicklung Dr. Norbert Spangler / Programmieren I 30.09.2013 1

1.1 Programme Ein Programm ist ein in einer Programmiersprache formulierter Algorithmus. -> Was ist eine Programmiersprache? hier C++ Sie ist beschrieben durch Syntax = Regeln/Grammatik zur Festlegung der Form von Anweisungen Semantik = Festlegung der Wirkungsweise der Anweisung -> Was ist ein Algorithmus? Ein Algorithmus ist eine formalisierte Angabe der vorzunehmenden endlich vielen Anweisungen zur Lösung eine Klasse von Aufgabenstellungen. Ein Programm besteht also aus Anweisungen, die in einer Programmiersprache formuliert sind, zur Lösung einer Klasse von Aufgabenstellungen. Unser Ziel ist es aber auch, gute Programme zu schreiben -> Was ist ein gutes Programm? Sicht des Programmierers <-> Sicht des Benutzers Dr. Norbert Spangler / Programmieren I 30.09.2013 2

1.2 Beurteilungskriterien für ein Programm (Auswahl) Programmierersicht (Technik) Flexibilität leicht änderbar Adaptibilität leicht erweiterbar Portabilität plattformunabhängig Benutzersicht (Nutzen) Benutzerfreundlichkeit Gute Hilfe, übersichtlich, brauchbar verständliche Fehlermeldungen leicht erlernbar (ohne Handbuch!) Qualität korrekt, robust, ausfallsicher effektiv (verwendete Mittel) effizient (erzielter Nutzen) konfigurierbar, skalierbar Wirtschaftlichkeit preiswert, termingerecht, langlebig Dr. Norbert Spangler / Programmieren I 30.09.2013 3

// Wurzel berechnen #include <iostream> //Praeprozessordirektiven #include <cmath> using namespace std; void main() { const double genauigkeit=1.0e-3; double x,a; int schritte=0; //Eingabe cout <<"\n a eingeben "; cin>>a; //Plausibilitaetskontrolle if ( a<=0 )// unzulaessige Eingabe cout <<"\n a muss > 0 sein "; else { //Verarbeitung x=a; while ( abs (x*x-a)>genauigkeit )//Wiederholungsbedingung { x=x-(x*x-a)/(2*x); schritte++; } // Ende Wiederholung (Schleife) } } //Ergebnis cout <<"\n Wurzel von "<<a<<" = "<<x; cout<<" nach "<<schritte<<" Schritten"<<endl; 1.3 Beispielprogramm Kommentar Praeprozessordirektive Praeprozessordirektive using Direktive Funktion main Klammer auf Deklaration einer Konstanten Deklaration von a und b vom Typ double Deklaration von schritte vom Typ int Kommentar Ausgabe eines Textes Eingabe von a Kommentar Befehl: Bedingung + Kommentar Ausgabe eines Textes else Klammer auf + Kommentar Befehl. (um)speichern Befehl Wiederholung + Kommentar Befehl: rechnen und speicherm Befehl: Wiederholung + rechnen+ Funktionswert Befehl: schritt hochzählen Klammer zu Wiederholungsbedingung Kommentar Ausgabe Text+Zahlen Ausgabe text+zahl+neue Zeile Klammer zu Klammer zu Dr. Norbert Spangler / Programmieren I 30.09.2013 4

Wesentliche Programmmerkmale Verwendung vorhandener Resourcen cmath, iostream Unterschiedliche Typen von Daten double, int konstant, änderbar Formeln mit Rechenoperatoren und Klammern x-(x*x-a)/(2*x) Vergleiche a>0 Kommentare // Semikolon ; Lesbare Anweisungen, gruppiert mit Klammern Bedingungen if (Bedingung) { } else { } Wiederholungen while (Bedingung) { } Speichern x=a; x=formel; Einfache Ein-/Ausgabe mit Tastatur/Bildschirm cin>> cout<< Programme haben eine klassische Struktur: EVA-Prinzip Direktiven - Deklarationen Eingabe Verarbeitung - Ausgabe Dr. Norbert Spangler / Programmieren I 30.09.2013 5

1.4 Programmentwicklung (Problem)Analyse Prinzipieller Ablauf nach dem Wasserfallmodell Entwurf Einteilung in 5 Phasen Implementierung Test Betrieb Dr. Norbert Spangler / Programmieren I 30.09.2013 6

Phase 1:Problemanalyse/Anforderungen Ermittlung der Anforderungen (Kundensicht!) Erhebung erforderlicher Daten und Funktionen Auswahl an Algorithmen/Entscheidungskriterien Einsatzbereich Machbarkeitsstudien Testplan.. Beispiel: Wurzel einer Zahl a> 0 näherungsweise mit den Grundrechenarten + - * / berechnen Daten: a, Ergebnis, Genauigkeit, Anzahl der Schritte Algorithmus: Newtonverfahren durch Lösen der Gleichung x 2 a = 0 Genauigkeit vorgeben (z.b. 3 Stellen) Dr. Norbert Spangler / Programmieren I 30.09.2013 7

Aufstellen eines Testplans (-> Übungsblatt) Fall Beschreibung Ausgangsdaten (Eingabe) Erwartetes Ergebnis 1 Normalfall 1.1 Quadratzahl 4 2.00 1.2 Quadratzahl ( Ergebnis=Zahl) 1 1.00 1.3 Zahl<1 0.5 0.707 1.4 Zahl>1 2 1.41 2 Sonderfall 2.1 Große Zahl 1000001 1000 2.2 Kleine Zahl 0.000001 0.001 3 Grenzfall 0 Meldung 4 Unzulässige Daten 4.1 Negative Zahl -1 Meldung 4.2 Keine Zahl a Nicht festgelegt Problem: Für möglichst alle Fälle ein typisches Beispiel finden. Beispiele ohne neue Erkenntnis (=neue Beschreibung) ->weglassen Dr. Norbert Spangler / Programmieren I 30.09.2013 8

Phase 2: Entwurf (Übung: Laboreinführung) 3 Symbole Erstellung eines dokumentierten Entwurfs für das System und die einzelnen Komponenten Ein-/Ausgabe Einfacher Befehl Abfrage Wurzel berechnen Eingabe a Ja a muss >0 sein a <= 0 x=a Nein Solangex*x-a ungenau Die Inhalte der Symbole sind frei wählbar Wiederholung x*x-a x = x - ------- 2x Formel/Berechnung Ausgabe x Dr. Norbert Spangler / Programmieren I 30.09.2013 9

Phase 3: Implementierung Siehe Laboreinführung Bedienungsanleitung Visual Studio auf der Homepage Visual Studio Projekt anlegen -> projektname Programmdatei anlegen -> main.cpp Editor Programm eingeben -> main.cpp +Headerdateien (z.b. Musterprogramm) #include C++ Compiler Programm übersetzen -> main.obj +andere.obj + Bibl. Linker Anwendung erzeugen -> projektname.exe Dr. Norbert Spangler / Programmieren I 30.09.2013 10

Phase 4: Test Fehlersuche/-beseitigung Syntaxfehler (Tippfehler) Semantikfehler(logische /Denkfehler) ->Compiler mit Zeilenangabe ->Debug/einzelne Befehle ansehen Komponententest (einzelne Funktionen) Systemtest/Integrationstest (alle Funktionen zusammen) Test: Abarbeitung Testplan Testprotokoll Dr. Norbert Spangler / Programmieren I 30.09.2013 11

Test/Testprotokoll Fall Beschreibung Ausgangsdate n (Eingabe) Erwartetes Ergebnis Ergebnis 1 Normalfall 1.1 Quadratzahl 4 2.00 2.00 1.2 Quadratzahl(Zahl=Ergebnis) 1 1.00 1 1.2 Zahl<1 0.5 0.707 0.707108 1.3 Zahl>1 2 1.41 1.41422 2 Sonderfall 2.1 Große Zahl 1000001 1000 1000 2.2 Kleine Zahl 0.000001 0.001 0.0312607 3 Grenzfall 0 Meldung a muss>0 sein * 4 Unzulässige Daten 4.1 Negative Zahl -1 Meldung a muss>0 sein 4.2 Keine Zahl a Nicht festgelegt a muss>0 sein * Abweichungen genauer dokumentieren Datum Unterschriften Dr. Norbert Spangler / Programmieren I 30.09.2013 12

Phase 5: Betrieb Programmeinführung Betrieb inkl. Wartung und Pflege Beseitigung von Fehlern -> sofort Sammeln von Wünschen -> für spätere Versionen Nächste Version Dr. Norbert Spangler / Programmieren I 30.09.2013 13