Vergleich verschiedener OO-Programmiersprachen
|
|
- Katja Glöckner
- vor 8 Jahren
- Abrufe
Transkript
1 Vergleich verschiedener OO-Programmiersprachen - Schnellumstieg in 15 Minuten - C++ Java Visual C++ C# Programmbeispiel in Visual C++, C#, Java und C++ Dr. Ehlert, Juni
2 Inhaltsverzeichnis 1. Problemstellung bzw. Datenmodellierung Programmbeispiel in Visual C++ (C++/CLI) Programmbeispiel in C# Programmbeispiel in Java Programmbeispiel in C Quelle: 2
3 1. Problemstellung bzw. Datenmodellierung Problemstellung: Ein Mensch (mit einem bestimmten Namen) kann viele Fahrräder besitzen. Ein Fahrrad (mit einer bestimmten Farbe) hat keinen oder genau einen Besitzer. Ein Mensch kann verheiratet sein. Datenmodellierung: hat Ehepartner 0..1 Mensch name: String - ehepartner: Mensch - anzahlfahrraeder: int - fahrraeder: Fahrrad[] + Mensch() + Mensch(String) + setname(string): void + getname(): String + getanzahlfahrraeder(): int + heirate(mensch): void + kaufe(fahrrad): void + getehepartner(): Mensch + getfahrrad(int): Fahrrad - farbe: String Fahrrad + Fahrrad() + Fahrrad(String) + setfarbe(string): void + getfarbe(): String 0..1 besitzt 0..n 3
4 2. Programmbeispiel in Visual C++ (C++/CLI) // Dr. Ehlert / Juni 2012 // MenschFahrradVisualCPP.cpp: Hauptprojektdatei. // Visual Studio 2010 #include "stdafx.h" #include "Mensch.h" #include "Fahrrad.h" using namespace System; int main(array<system::string ^> ^args) Mensch^ erstermensch = gcnew Mensch("Klaus"); Mensch^ zweitermensch = gcnew Mensch(); Mensch^ drittermensch = gcnew Mensch(); Mensch^ viertermensch = gcnew Mensch(); zweitermensch->setname("harald"); drittermensch->setname("susi"); Fahrrad^ erstesfahrrad = gcnew Fahrrad("rot"); Fahrrad^ zweitesfahrrad = gcnew Fahrrad(); Fahrrad^ drittesfahrrad = gcnew Fahrrad("blau"); erstermensch->kaufe(zweitesfahrrad); drittermensch->kaufe(erstesfahrrad); drittermensch->kaufe(drittesfahrrad); zweitermensch->heirate(drittermensch); drittermensch->heirate(zweitermensch); zweitesfahrrad->setfarbe("gruen"); drittesfahrrad->setfarbe("gelb"); Console::WriteLine(ersterMensch->GetName()); Console::WriteLine(zweiterMensch->GetEhepartner()->GetName()); int anzahl = drittermensch->getanzahlfahrraeder(); for (int i = 0; i < anzahl; i++) Console::WriteLine(i+1 + ". Fahrrad: " + drittermensch->getfahrrad(i)->getfarbe()); Console::WriteLine(vierterMensch->GetName()); Console::ReadLine(); return 0; 4
5 // Mensch.h #include "Fahrrad.h" using namespace System; ref class Mensch private: public: String^ name; Mensch^ ehepartner; int anzahlfahrraeder; array<fahrrad^>^ fahrraeder; Mensch() this->name = "Janine"; this->anzahlfahrraeder = 0; fahrraeder = gcnew array<fahrrad^>(100); Mensch(String^ name) this->name = name; this->anzahlfahrraeder = 0; fahrraeder = gcnew array<fahrrad^>(100); void SetName(String^ name) this->name = name; String^ GetName() return this->name; int GetAnzahlFahrraeder() return this->anzahlfahrraeder; void Heirate(Mensch^ einmensch) this->ehepartner = einmensch; void Kaufe(Fahrrad^ einfahrrad) this->fahrraeder[anzahlfahrraeder] = einfahrrad; this->anzahlfahrraeder++; Mensch^ GetEhepartner() return this->ehepartner; Fahrrad^ GetFahrrad(int i) return fahrraeder[i]; ; 5
6 // Fahrrad.h #pragma once using namespace System; ref class Fahrrad private: public: ; String^ farbe; Fahrrad() this->farbe = ("unbekannt"); Fahrrad(String^ farbe) this->farbe = farbe; void SetFarbe(String^ farbe) this->farbe = farbe; String^ GetFarbe() return this->farbe; 6
7 3. Programmbeispiel in C# // Dr. Ehlert / Juni 2012 // MenschFahrradTest.cs // Visual Studio 2010 using System; namespace MenschFahrradCS class MenschFahrradTest static void Main(string[] args) Mensch erstermensch = new Mensch("Klaus"); Mensch zweitermensch = new Mensch(); Mensch drittermensch = new Mensch(); Mensch viertermensch = new Mensch(); zweitermensch.setname("harald"); drittermensch.setname("susi"); Fahrrad erstesfahrrad = new Fahrrad("rot"); Fahrrad zweitesfahrrad = new Fahrrad(); Fahrrad drittesfahrrad = new Fahrrad("blau"); erstermensch.kaufe(zweitesfahrrad); drittermensch.kaufe(erstesfahrrad); drittermensch.kaufe(drittesfahrrad); zweitermensch.heirate(drittermensch); drittermensch.heirate(zweitermensch); zweitesfahrrad.setfarbe("gruen"); drittesfahrrad.setfarbe("gelb"); Console.WriteLine(ersterMensch.GetName()); Console.WriteLine(zweiterMensch.GetEhepartner().GetName()); int anzahl = drittermensch.getanzahlfahrraeder(); for (int i = 0; i < anzahl; i++) Console.WriteLine(i+1 + ". Fahrrad: " + drittermensch.getfahrrad(i).getfarbe()); Console.WriteLine(vierterMensch.GetName()); Console.ReadLine(); 7
8 // Mensch.cs using System; namespace MenschFahrradCS class Mensch private String name; private Mensch ehepartner; private int anzahlfahrraeder; private Fahrrad[] fahrraeder; public Mensch() this.name = "Janine"; this.anzahlfahrraeder = 0; fahrraeder = new Fahrrad[100]; public Mensch(String name) this.name = name; this.anzahlfahrraeder = 0; fahrraeder = new Fahrrad[100]; public void SetName(String name) this.name = name; public String GetName() return this.name; public int GetAnzahlFahrraeder() return this.anzahlfahrraeder; public void Heirate(Mensch einmensch) this.ehepartner = einmensch; public void Kaufe(Fahrrad einfahrrad) this.fahrraeder[anzahlfahrraeder] = einfahrrad; this.anzahlfahrraeder++; public Mensch GetEhepartner() return this.ehepartner; public Fahrrad GetFahrrad(int i) return fahrraeder[i]; 8
9 // Fahrrad.cs using System; namespace MenschFahrradCS class Fahrrad private String farbe; public Fahrrad() this.farbe = ("unbekannt"); public Fahrrad(String farbe) this.farbe = farbe; public void SetFarbe(String farbe) this.farbe = farbe; public String GetFarbe() return this.farbe; 9
10 4. Programmbeispiel in Java /** * Programm in Java mit JavaEditor (bzw. Eclipse) / MenschFahrradTest.java 1.0 vom Dr. Ehlert */ public class MenschFahrradTest public static void main(string[] args) Mensch erstermensch = new Mensch("Klaus"); Mensch zweitermensch = new Mensch(); Mensch drittermensch = new Mensch(); Mensch viertermensch = new Mensch(); zweitermensch.setname("harald"); drittermensch.setname("susi"); Fahrrad erstesfahrrad = new Fahrrad("rot"); Fahrrad zweitesfahrrad = new Fahrrad(); Fahrrad drittesfahrrad = new Fahrrad("blau"); erstermensch.kaufe(zweitesfahrrad); drittermensch.kaufe(erstesfahrrad); drittermensch.kaufe(drittesfahrrad); zweitermensch.heirate(drittermensch); drittermensch.heirate(zweitermensch); zweitesfahrrad.setfarbe("gruen"); drittesfahrrad.setfarbe("gelb"); System.out.println(ersterMensch.getName()); System.out.println(zweiterMensch.getEhepartner().getName()); int anzahl = drittermensch.getanzahlfahrraeder(); for (int i = 0; i < anzahl; i++) System.out.println(i+1 + ". Fahrrad: " + drittermensch.getfahrrad(i).getfarbe()); System.out.println(vierterMensch.getName()); 10
11 // Mensch.java public class Mensch private String name; private Mensch ehepartner; private int anzahlfahrraeder; private Fahrrad[] fahrraeder; public Mensch() this("janine"); public Mensch(String name) this.name = name; this.anzahlfahrraeder = 0; fahrraeder = new Fahrrad[100]; public void setname(string name) this.name = name; public String getname() return this.name; public int getanzahlfahrraeder() return this.anzahlfahrraeder; public void heirate(mensch einmensch) this.ehepartner = einmensch; public void kaufe(fahrrad einfahrrad) this.fahrraeder[anzahlfahrraeder] = einfahrrad; this.anzahlfahrraeder++; public Mensch getehepartner() return this.ehepartner; public Fahrrad getfahrrad(int i) return fahrraeder[i]; 11
12 // Fahrrad.java public class Fahrrad private String farbe; public Fahrrad() this.farbe = ("unbekannt"); public Fahrrad(String farbe) this.farbe = farbe; public void setfarbe(string farbe) this.farbe = farbe; public String getfarbe() return this.farbe; 12
13 5. Programmbeispiel in C++ // Dr. Ehlert / Juni 2012 // main.cpp // mit Dev-C++ (bzw. Visual Studio 2010) #include <cstdlib> #include <iostream> #include "Mensch.h" #include "Fahrrad.h" using namespace std; int main(int argc, char *argv[]) Mensch* erstermensch = new Mensch("Klaus"); Mensch* zweitermensch = new Mensch(); Mensch* drittermensch = new Mensch(); Mensch* viertermensch = new Mensch(); zweitermensch->setname("harald"); drittermensch->setname("susi"); Fahrrad* erstesfahrrad = new Fahrrad("rot"); Fahrrad* zweitesfahrrad = new Fahrrad(); Fahrrad* drittesfahrrad = new Fahrrad("blau"); erstermensch->kaufe(zweitesfahrrad); drittermensch->kaufe(erstesfahrrad); drittermensch->kaufe(drittesfahrrad); zweitermensch->heirate(drittermensch); drittermensch->heirate(zweitermensch); zweitesfahrrad->setfarbe("gruen"); drittesfahrrad->setfarbe("gelb"); cout << erstermensch->getname() << endl; cout << zweitermensch->getehepartner()->getname() << endl; int anzahl = drittermensch->getanzahlfahrraeder(); for (int i = 0; i < anzahl; i++) cout << i+1 << ". Fahrrad: " << drittermensch->getfahrrad(i)->getfarbe() << endl; cout << viertermensch->getname(); cin.get(); return EXIT_SUCCESS; 13
14 // Mensch.h #pragma once #include <string> #include "Fahrrad.h" using namespace std; class Mensch private: string name; Mensch* ehepartner; int anzahlfahrraeder; Fahrrad *fahrraeder[100]; public: Mensch(); Mensch(string name); void setname(string name); string getname(); int getanzahlfahrraeder(); void heirate(mensch* einmensch); void kaufe(fahrrad* einfahrrad); Mensch* getehepartner(); Fahrrad* getfahrrad(int i); ; 14
15 // Mensch.cpp #include <string> #include "Mensch.h" using namespace std; Mensch::Mensch() this->name = "Janine"; this->anzahlfahrraeder = 0; Mensch::Mensch(string name) this->name = name; this->anzahlfahrraeder = 0; void Mensch::setName(string name) this->name = name; string Mensch::getName() return this->name; int Mensch::getAnzahlFahrraeder() return this->anzahlfahrraeder; void Mensch::heirate(Mensch* einmensch) this->ehepartner = einmensch; void Mensch::kaufe(Fahrrad* einfahrrad) this->fahrraeder[anzahlfahrraeder] = einfahrrad; this->anzahlfahrraeder++; Mensch* Mensch::getEhepartner() return this->ehepartner; Fahrrad* Mensch::getFahrrad(int i) return fahrraeder[i]; 15
16 // Fahrrad.h #pragma once #include <string> using namespace std; class Fahrrad private: string farbe; public: Fahrrad(); Fahrrad(string farbe); void setfarbe(string farbe); string getfarbe(); ; // Fahrrad.cpp #include <string> #include "Fahrrad.h" using namespace std; Fahrrad::Fahrrad() this->farbe = ("unbekannt"); Fahrrad::Fahrrad(string farbe) this->farbe = farbe; void Fahrrad::setFarbe(string farbe) this->farbe = farbe; string Fahrrad::getFarbe() return this->farbe; 16
Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
Mehrvirtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; };
C++ für Anfänger des Programmierens Rieckeheer GSO-Hochschule Nürnberg März 2008 174 a neu Vor Kapitel 24 ist folgender Text einzufügen. Das folgende Programm variiert das Programm VIRTfunktion3.cpp und
MehrKurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt
MehrProgrammieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden
Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige
Mehr0. Einführung & Motivation
0. Einführung & Motivation Ansatz: "C++ für Java-Kenner" Konzentration auf semantische Unterschiede 'gleichartiger' Konzepte Erörterung der C++ -spezifischen Konzepte (Overloading, Templates) Anspruch
MehrThemen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente
Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden
MehrBeispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging
Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit
MehrAufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 {
Hochschule Harz Programmierung1 Aufgabe 10: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Hashing und Generische Klassen Versuchsziele Kenntnisse
Mehr1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrÜberblick. Peter Sobe 1
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen
Mehr8a. Exkurs.NET. 8a.1.NET Architektur
8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++
Mehrc) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.
Klausur OOP SS2001 (Gampp) ufgabe 1 (22 Punkte) a) Während einer bargeldlosen Giro-ank Transaktion können eträge zwischen Währungen konvertiert werden. Eine Klasse Transaktion soll solche uchungen beschreiben
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 9-1 Studentendatei Sie sollen ein Programm zur Verwaltung von Studenten (Büchern, Autos, Supermarktartikeln, etc...) schreiben.
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen This semester s menu... Imperative Programmierung
MehrWebPoint. Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen. Maria C. Raabe Daniel Woithe Vorlage: Torsten Walter. 16.
Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen Maria C. Raabe Daniel Woithe Vorlage: Torsten Walter 16. Oktober 2006 Gliederung Datenverwaltung 1 Datenverwaltung 2 Problemstellung Java
MehrTCP/IP Programmierung. C# TimeServer Java6 TimeClient
TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7
Mehr7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor
7.2 Dynamischer Speicher in Objekten/Kopierkonstruktor Das Programmbeispiel aus dem letzten Abschnitt läßt sich bisher nicht zufriedenstellend zu Ende bringen. Unerklärliche Abstürze und Fehlverhalten
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrVersuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.
Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse
MehrEin kleiner Blick auf die generische Programmierung
TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen
MehrAufgabe 5: Die Paderbox
25. Bundeswettbewerb Informatik Seite A5-1/20 Aufgabe 5: Die Paderbox Lösungsidee Eine knifflige Aufgabe! Und vor allem eine Aufgabe, die man mehrmals liest und immer noch nicht verstanden hat doch die
MehrAuswahlen (Selektionen)
1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrS7ComRaspi. Schönberger Thomas 2016 Schönberger Thomas
Schönberger Thomas info@schoenbergerthomas.jimdo.com 2016 Schönberger Thomas Inhalt 1 Allgemein... 2 2 Voraussetzungen... 2 3 Lieferumfang... 2 4 S7Com... 3 4.1 S7Com Klasse... 3 4.2 Konstruktor S7Com...
MehrZeiger, Arrays und Strings in C und C++
Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für
MehrVererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz
Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.
MehrPraxisorientierte Einführung in C++ Lektion: "Namespaces"
Praxisorientierte Einführung in C++ Lektion: "Namespaces" Christof Elbrechter Neuroinformatics Group, CITEC May 28, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ May 28, 2014 1 / 15 Table
MehrLösung der OOP-Prüfung WS12/13
2.1.2013 Lösung der OOP-Prüfung WS12/13 1. Aufgabe a) Da der Konstruktor im protected-bereich steht, können keine eigenständigen Objekte der Klasse angelegt werden. Durch den protected-konstruktor wird
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU, Sommersemester 2008 4-1 Übung Aufgabe: Berechnen Sie für die Klimastation Schleswig des Deutschen Wetterdienstes
MehrProblemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.
Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrAufgabe 1. Universität Duisburg-Essen Fachbereich Mathematik Dr. O. Rheinbach
Universität Duisburg-Essen SS09 Fachbereich Mathematik Dr. O. Rheinbach 21.04.2009 Aufgabe 1 Öffnen Sie Visual Studio 2008 und wählen unter Datei Neu Projekt im Dialogfenster erst Win32 und dann rechts
MehrLösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02
Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02 Prof. Dr.-Ing. Holger Vogelsang (FH-Karlsruhe) Dipl.-Inform. (FH) Gudrun Keller (FH-Karlsruhe) Dipl.-Inform. Mathias Supp (.riess
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und
MehrKlausur: Programmieren II
Klausur: Programmieren II Diplomstudiengang Allgemeine Informatik SS07 Erlaubte Hilfsmittel: dokumentenechter Stift. Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrMusterlösungen zur Klausur Informatik 3
Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus
MehrBildverarbeitung mit C++
Bildverarbeitung mit C++ Lösung zum Übungsblatt 2 Dr. Stefan Florczyk 2003 #include #include class camera char* name; double abmessungen[3]; // Array zum Abspeichern von // Höhe,
MehrVorlesungsprüfung Programmiersprache 1
Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,
Mehr'($)*'+ $, *$+*$'- $..$+/, 01.2$, 2*$0, - $'($)*'+ $, *$+*$
!"# $ % & # ... 4 "... 5 '($)*'+ $, *$+*$'- $..$+/, 01.2$, 2*$0, - $'($)*'+ $, *$+*$ 3+'0+1$+/, 0... 5 "" $0+4, - $*$2*'1/25 1.... 6 " 4$+26 *... 8 Objektorientierung... 8 Kontrollstrukturen... 9 Projekt...
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrEinführung in die Programmierung
: Inhalt 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 - mit / ohne Parameter - mit / ohne Rückgabewerte
Mehr3 Dateien 5. 4 Aufgaben 5. 5 Ausblick 6. Wir wenden uns der Implementierung von Datenstrukturen mittels objekt-orientierter Programmierung
Contents 1 Ziele dieser Uebung 1 2 Eine Matrix-Klasse 1 3 Dateien 4 Aufgaben Ausblick 6 1 Ziele dieser Uebung 1.1 Einleitung Wir wenden uns der Implementierung von Datenstrukturen mittels objekt-orientierter
MehrEinführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrDelegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein
Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16
Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier
MehrBildverarbeitung mit C++
Bildverarbeitung mit C++ Lösung zum Übungsblatt 1 Dr. Stefan Florczyk 2003 // Aufgabe 2 #include #include double factorial(double d) double erg = 1; for (int i = 1; i
MehrDer Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, 27.03.2014, Ingo Josopait
Der Goopax Compiler GPU-Programmierung in C++ AMD R9 290X: 5.6 TFLOPS (SP MulAdd) Programmierung ~10000 Threads Entwicklungsumgebungen Entwicklungsumgebungen CUDA, OpenCL Compiler: kernel GPU Maschinencode
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrZiel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind
Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt
Mehr0. Einführung & Motivation
0. Einführung & Motivation Ansatz: "C++ für Java-Kenner" Konzentration auf semantische Unterschiede 'gleichartiger' Konzepte Erörterung der C++ -spezifischen Konzepte (Overloading, Templates) Anspruch
MehrC/C++ - Programmierung. Vererbung Seite 1 von 6. Eine einfache Klasse für eine Personenbeschreibung hat die folgende UML: CPerson.
Vererbung Seite 1 von 6 Eine einfache Klasse für eine Personenbeschreibung hat die folgende UML: CPerson char Nachname[30] char Vorname[30] CPerson() void setnachname() void setvorname() void getname()
MehrGUI Programmierung mit Qt
GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech
MehrGrundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes
MehrEinführung in die Informatik und Programmierung (Informatik I)
BERGISCHE UNIVERSITÄT GESAMTHOCHSCHULE WUPPERTAL GAUSS-STRASSE 20 42097 WUPPERTAL (Korrespondenzanschrift) 42119 WUPPERTAL (Lieferanschrift) TELEX 8 592 262 bughw TELEFAX (0202) 439-2901 TELEFON (0202)
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrDer C++ Crashkurs v1.0
Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der
MehrSoftware Entwicklung II (SS12)
Prof. Dr. P. Liggesmeyer Dipl.-Inf. K. Bizik M.Sc. K. Nehring TU Kaiserslautern Fachbereich Informatik AG Software Engineering: Dependability Software Entwicklung II (SS12) Übung 5 Ausgabe: 04.06.2012
MehrVon Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-dortmund.de
Von Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-.de Von Java nach C++, Lehrstuhl Informatik VII, TU Dortmund 1 Übersicht Einleitung Literatur
MehrMusterlösung zur 6. Übung
Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Hans-Peter Lenhof Dipl. Inform. Andreas Hildebrandt Programmierung II, SS 2003 Musterlösung zur 6. Übung Aufgabe 1: Faire Münzen (10 Punkte) Offensichtlich
MehrKapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät
MehrC++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!
Hello world! Java class HelloWorld { static public void main(string args) { System.out.println("Hello World!"); } } C #include main() { printf("hello World!\n"); } C++ #include using
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrAbend 4 Übung : Erweitern von Klassen durch Vererbung
Abend 4 Übung : Erweitern von Klassen durch Vererbung Ziel, Inhalt Wir erweitern die Klassen, die wir zum Zeichnen mit TsuZeichnen verwenden. Dabei wenden wir die Vererbung an um die Klassen zu spezialisieren
MehrSpezifikation DPD und primetime WebService Shopfinder Gültig für Paketversender in Österreich. Version 3.3.0
Spezifikation DPD und primetime WebService Shopfinder Gültig für Paketversender in Österreich Version 3.3.0 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis... 2 2 Allgemein... 3 2.1 Beschreibung... 3 3 Softwaretechnische
MehrBetriebssysteme: Konzepte, Dienste, Schnittstellen (Betriebssysteme und betriebssystemnahe Programmierung)
BERGISCHE UNIVERSITÄT WUPPERTAL GAUSS-STRASSE 20 42119 WUPPERTAL TELEFAX (0202) 439-2901 TELEFON (0202) 439-0 WWW www.uni-wuppertal.de Fachbereich C MATHEMATIK UND NATURWISSENSCHAFTEN Fachgruppe Mathematik
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrAngewandte Mathematik in OOP WS 2011/12. Abschluss-Test
Angewandte Mathematik in OOP WS 2011/12 Abschluss-Test 012 6 5 4 5 6 Aufgabe 1 (9 Punkte 1 Punkt je Antwort) Bitte jeweils eine Antwort ankreuzen (je nach Fragestellung die richtige oder falsche): a.)
MehrVon Java nach C++ Frank Weichert, Heinrich Müller Informatik VII Universität Dortmund http://ls7-www.cs.uni-dortmund.de
Von Java nach C++ Frank Weichert, Heinrich Müller Informatik VII Universität Dortmund http://ls7-www.cs.uni-dortmund.de Von Java nach C++, LS VII, Universität Dortmund, SS 2006 1 Übersicht Einleitung Literatur
MehrTipps und Hinweise zum Bezug der Beitragssatzdatei V5.0
Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0 Die Beitragssatzdatei in der Version 5.0 wird nur über https Download auf einer frei zugänglichen Webseite auf den folgenden Seiten bereitgestellt.
MehrZusammenfassung. Mit bjam und ein paar Zeilen in einem Jamroot oder Jamfile lässt sich das Kompilieren und Linken einfach automatisieren
Zusammenfassung Deklaration einer Klasse im Header-File /.h-file Header-Files mit #pragma once vor double inclusion schützen möglichst Vorwärts-Deklarationen verwenden statt include-files einzubinden mindestens
MehrFakultät IV Elektrotechnik/Informatik
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrVorlesung Objektorientierte Programmierung Probeklausur
Prof. Dr. Stefan Brass 04. März 2013 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Probeklausur Name: Matrikelnummer: Studiengang:
Mehr3. Semester : 1. Prüfung
3. Semester : 1. Prüfung Name : Die gesamte Prüfung bezieht sich auf die!! Prüfungsdauer: 90 Minuten mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter geschrieben werden
MehrCORBA Implementierung von Client und Server
CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung
MehrC# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung
C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung 1. "Hai!" [Konsolenanwendung] Console.WriteLine("Hai, wie geht's?"); 2. Muktiplikation mit sich selbst [Konsolenanwendung] // Ausgabe
Mehr12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
MehrC++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek
C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage
MehrPraxisorientierte Einführung in C++ (Variadische Funktionen)
Praxisorientierte Einführung in C++ (Variadische Funktionen) Christoph Elbrechter, Florian Paul Schmidt Universität Bielefeld April 12, 2012 Christoph Elbrechter, Florian Paul Schmidt Praxisorientierte
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
MehrÜbung HP Musterlösung zu Aufgabe 9:
Musterlösung zu Aufgabe 9: 1. Aufteilung in Cpp und H: CPP: Enthält die Klassenimplementation und die Hauptmethode /*Autor: Nicola Greth * Uebung 8 * Klasse Cis_wstring */ #include #include
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 1
3D Programmierpraktikum: Einführung in C++ - Teil 1 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 27. April 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrAusnahmebehandlung. (exceptionhandling) in C++
Ausnahmebehandlung (exceptionhandling) in C++ Diese Folien basieren auf Kapitel 19 in Herbert Schildt, C++ ENT-PACKT, mitp. Weiterführende Informationen zu diesem Themengebiet sind insbesondere dort zu
Mehr