Nico Maas, 30.10.2008 NetworkCalculator. 2 / 15 Nico Maas, 30.10.2008 Inhalt Überblick über die Software / Struktogramm Überblick über die Software /

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Ein- und Ausgabe von Dateien
Forschungszentrum caesar
Timm Grams Hochschule Fulda Fachbereich Elektrotechnik und Informationstechnik Rekursive Funktionen in C © Timm Grams, Fulda, (korr.: )
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
der Universität Oldenburg
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
C.M. Presents D.A.R. und Ein Bisschen dies und das!
Gliederung des Inhalts
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Dynamisches Array als "verkettete Liste". Ein Vergleich.
Dynamischer Speicher und Struktur
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Processing: Arrays & Laden von Dateien Aufbauend auf dem Beispiel: File I/O LoadFile1.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 5 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EXCAVE ein 3D-Modell eines archäologischen Grabungsquadranten
Das erste Programm (Folie 16)
Der C-Präprozessor EDV1 - 04Präprozessor.
Einführung in Visual C++
14StrukturKlasse1 Von der Struktur zur Klasse von C zu C++ Von Jens Hoffmann
Einführung in die Programmiersprache C 1
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Aus-drücke, arithmetische Operatoren.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
Vom Kontext zum Projekt V Carina Berning Sabrina Gursch Pierre Streicher Intelligente Dateisysteme.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Java Programmierung.
DAS C ++ PROGRAMM Emine Birol. Erste Version: C with classes In 1985, in 1990 und in 1994 hatte C++ Versionen, die weiterzuentwickeln. Der Standart ist.
Arrays / Felder Themen: Arrays / Felder / Vektoren Was soll das eigentlich? Erstellen von Arrays Arrays auslesen. Wie sie verwaltet werden.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
early binding (frühe Bindung) late binding (späte Bindung)
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
1 // Laengste Zeile bestimmen // // Liest die Eingabe Zeichen fuer Zeichen, bis // das erscheint. // Die laengste Zeile wird ausgegeben (bei.
1 // 6_1_KKarte als Struct // // demonstriert structs // Bei Behandlung von "Randfällen" nicht robust. // Fehlerhaft !? #include const char ZeilenEnde.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
1 // 9_1_Datei_IO //Elementare Verwendung von Dateien // Vorsicht: nicht robust, #include const int maxLen = 70; void Schreiben(char *, ofstream *); void.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
1 // Verkettete Liste 2 // demonstriert verkettete Listen und // Rekursion // (Einfügen am "Fuß") // #include struct Liste { int Element; Liste *weiter;
Pointer. Precompiled Header  Vorübersetzung eingebundener Dateien häufig genutzt, selten geändert  Projekttyp „Win32 Console Application“
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Das Internet – Was ist das? Das Internet - ein Datenfresser?
Allgemeine Technologien 2
Programmieren in C Wie speichert C
Durchschnitt (verbal)
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
 Präsentation transkript:

Nico Maas, NetworkCalculator

2 / 15 Nico Maas, Inhalt Überblick über die Software / Struktogramm Überblick über die Software / Struktogramm Aufschlüsselung & Erklärung des Quellcodes Aufschlüsselung & Erklärung des Quellcodes Quellenverzeichnis Quellenverzeichnis

3 / 15 Nico Maas, Struktogramm

4 / 15 Nico Maas, Beschreibung /* // Programmname: NetworkCalculator // Autor: Nico Maas // Revision: 1.0 // Erstellungsdatum: // Datum der letzten Änderung: // Zweck: Zeigt die Adressklasse und Standardsubnetzmaske einer IP Adresse an */ In dem Beschreibungsheader werden Notizen über die Software niedergelegt. In dem Beschreibungsheader werden Notizen über die Software niedergelegt.

5 / 15 Nico Maas, Header Dateien #include #include Die Header Dateien werden hinzugefügt um die Funktionen, welche in selbigen hinterlegt sind, im eigenen Programmcode benutzen zu können. Die Header Dateien werden hinzugefügt um die Funktionen, welche in selbigen hinterlegt sind, im eigenen Programmcode benutzen zu können.

6 / 15 Nico Maas, Variablen initialisieren int iptri1, iptri2, iptri3, iptri4; char punkt; Durch die Initalisation werden für die Variablen Platz im Speicher belegt, damit diese später Daten aufnehmen können. Durch die Initalisation werden für die Variablen Platz im Speicher belegt, damit diese später Daten aufnehmen können.

7 / 15 Nico Maas, Programmstart int main() { cout << "########## NetworkCalculator ##########" << endl; cout << "# Geben Sie bitte eine IP Adresse ein #" << endl; cout << "######### Format: #########" << endl; cout << "Eingabe: "; Beim Programmstart gibt die Software einen Begrüßungsbildschirm aus und fordert zur Eingabe einer IP auf. Beim Programmstart gibt die Software einen Begrüßungsbildschirm aus und fordert zur Eingabe einer IP auf. Um den Nutzer zu unterstützen, wird das erwartete Format für die Eingabe erklärt- Um den Nutzer zu unterstützen, wird das erwartete Format für die Eingabe erklärt-

8 / 15 Nico Maas, Einlesen der IP Adresse cin >> iptri1 >> punkt >> iptri2 >> punkt >> iptri3 >> punkt >> iptri4; Mit dem oben stehenden Befehl wird die IP Adresse eingelesen und direkt in die passenden Triplets gespeichert. Mit dem oben stehenden Befehl wird die IP Adresse eingelesen und direkt in die passenden Triplets gespeichert. Durch die Variable Punkt wird der Punkt welche die IP Triplets trennt aus der gesamt Adresse herausgefiltert. Durch die Variable Punkt wird der Punkt welche die IP Triplets trennt aus der gesamt Adresse herausgefiltert.

9 / 15 Nico Maas, Überprüfung auf Adressklasse if (iptri1 > 0 & iptri1 0 & iptri1 < 128) { cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Adressklasse A: Subnetmask "; cout << "Adressklasse A: Subnetmask "; } else else Die Überprüfung wird durch geschachtelte IF Abfragen erfüllt. Wir beginnen mit der Abfrage ob das erste entscheidende Triplet zwischen 0 und 128 liegt. Die Überprüfung wird durch geschachtelte IF Abfragen erfüllt. Wir beginnen mit der Abfrage ob das erste entscheidende Triplet zwischen 0 und 128 liegt.

10 / 15 Nico Maas, Überprüfung auf Adressklasse if (iptri1 > 126 & iptri1 126 & iptri1 < 193) { cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Adresseklasse B: Subnetmask "; cout << "Adresseklasse B: Subnetmask "; } else else In der nachfolgenden Abfrage wird auf die Übereinstimmung mit der B Adressklasse, also erstes IP Triplet zwischen 127 und 192 überprüft. In der nachfolgenden Abfrage wird auf die Übereinstimmung mit der B Adressklasse, also erstes IP Triplet zwischen 127 und 192 überprüft.

11 / 15 Nico Maas, Überprüfung auf Adressklasse if (iptri1 > 191 & iptri1 191 & iptri1 < 224) { cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Adressklasse C: Subnetmask "; cout << "Adressklasse C: Subnetmask "; } In der letzten Überprüfung wird erkannt, ob die Range zwischen 192 und 223 liegt. In der letzten Überprüfung wird erkannt, ob die Range zwischen 192 und 223 liegt.

12 / 15 Nico Maas, Überprüfung der Adressklasse else { cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "keiner erfassten Adressklasse oder ist ungueltig"; cout << "keiner erfassten Adressklasse oder ist ungueltig"; } Wenn alle Abfragen fehlschlagen, ist die Adressklasse entweder falsch erfasst oder die IP Eingabe ungültig (Eingabe von Buchstaben wird damit nicht abgefangen, Verbesserungsmöglichkeit). Wenn alle Abfragen fehlschlagen, ist die Adressklasse entweder falsch erfasst oder die IP Eingabe ungültig (Eingabe von Buchstaben wird damit nicht abgefangen, Verbesserungsmöglichkeit).

13 / 15 Nico Maas, Ende des Programms getchar();} Am Ende wird noch einmal getchar aufgerufen um das Fenster nach vollendeter Ausgabe und Ende des Programms offen zu halten, bzw. das Programm in Erwartung einer Eingabe offen zu halten / am laufen. Am Ende wird noch einmal getchar aufgerufen um das Fenster nach vollendeter Ausgabe und Ende des Programms offen zu halten, bzw. das Programm in Erwartung einer Eingabe offen zu halten / am laufen.

14 / 15 Nico Maas, Quellenverzeichnis Zur Erstellung des Struktogramms wurde die Freeware StrukEd32 in der 32 bit Version benutzt Zur Erstellung des Struktogramms wurde die Freeware StrukEd32 in der 32 bit Version benutzt Als technische Unterlagen zur Adressklasse diente das Unterrichsmaterial Als technische Unterlagen zur Adressklasse diente das Unterrichsmaterial

Nico Maas, Ende