Blatt 6
Bennen Sie die Klassen der letzten Stunde um.
Kreis Circle
Punkt Point
a)
Ergänzen Sie Ihre Circle-Klasse, in dem Sie neben den Radius auf einen Mittelpunkt
definieren (x,y) 2D reicht!
Ergänzen Sie die Klasse Circle um eine Methode IsOutside(...), die die x- und y-
Koordinaten eines Punktes übergeben bekommt und testet, ob der Punkt außerhalb des
Kreises liegt und in diesem Falle true zurückgibt (false sonst). Ergänzen Sie den
Konstruktor um eine einzeilige Kontrollausgabe „Kreis erzeugt“.
Hinweis: Um diese Aufgabe zu lösen, müssen Sie ausrechnen können, wie groß der Abstand
d zweier Punkte (x1, y1) und (x2, y2) ist. Verwenden Sie hierzu die Formel (sog.
Euklidischer Abstand):
d = Math.Sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
Ihre Ausgabe könnte z.B. so aussehen:
Kreis erzeugt: M = (0, 0), Radius: 3.0
Kreis erzeugt: M = (3, 0), Radius: 4.0
Kreis erzeugt: M = (0, 3), Radius: 5.0
-Punkt- -Kreis1- -Kreis2- -Kreis3-
(2, 0) INNEN INNEN INNEN
(2, 7) AUSSEN AUSSEN INNEN
(2, 9) AUSSEN AUSSEN AUSSEN
Schreiben Sie die Methoden Grow() und Move() für die Klasse Circle, die einen Kries
wachsen und bewegen lässt.
b)
Schreiben Sie eine Klasse Point, die einen einzelnen Punkt (x, y) des
Koordinatensystems beschreibt. Ein Objekt dieser Klasse besitze die privaten int-Variablen
x und y, Properties zum Setzen bzw. Lesen von x und y. Außerdem habe Point einen
Konstruktor, dem unmittelbar Werte zum Festlegen von x und y übergeben werden. Ergänzen
Sie den Konstruktor ebenfalls um eine einzeilige Kontrollausgabe (siehe a).
Erzeugen Sie in einem Hauptprogramm mindestens die drei Punkte mit den Koordinaten (2,
0), (2, 7) und (2, 9).
Die Ausgabe könnte nun etwa wie folgt aussehen:
Punkt (2, 0) erzeugt
Punkt (2, 7) erzeugt
Punkt (2, 9) erzeugt
c) Modifizieren Sie die Klasse Circle aus a) so, dass sie statt der Angabe (x, y) für einen
Punkt den Objekttyp Point verwendet:
· Speichern Sie den Mittelpunkt als Point-Objekt
· Ändern Sie den Konstruktor entsprechend
· Ändern Sie die IsOutside(..)-Methode entsprechend.
Führen Sie anschließend mindestens die gleichen Tests wie bei a) durch.
Mögliche Ausgabe:
Punkt (0, 0) erzeugt
Kreis erzeugt: M = (0, 0), Radius: 3.0
Punkt (3, 0) erzeugt
Kreis erzeugt: M = (3, 0), Radius: 4.0
Punkt (0, 3) erzeugt
Kreis erzeugt: M = (0, 3), Radius: 5.0
-Punkt- -Kreis1- -Kreis2- -Kreis3-
Punkt (2, 0) erzeugt
(2, 0) INNEN INNEN INNEN
Punkt (2, 7) erzeugt
(2, 7) AUSSEN AUSSEN INNEN
Punkt (2, 9) erzeugt
(2, 9) AUSSEN AUSSEN AUSSEN
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Geometrie
{
class Point
{
int x, y;
public Point(int x, int y)
{
xkoord = x;
ykoord = y;
durchmesser = radius * 2;
Console.WriteLine("Punkt wurde erstellt.");
}
public int X
{
get { return x; }
set { x = value; }
}
public int Y
{
get { return y; }
set { y = value; }
}
}
}
____________________
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication19
{
class Circle
{
public int x;
public int y;
public string isOutside(int x_, int y_) {
// d = Math.Sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
return "LOL";
}
public Circle(int circle_x, int circle_y)
{
x= circle_x; y=circle_y;
}
public int Durchmesser()
{
}
static void Main(string[] args)
{
int temp_x;
int temp_y;
Console.WriteLine("Neuen Kreis erstellen \n");
Console.WriteLine("X eingeben :");
temp_x = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Y eingeben :");
temp_y = Convert.ToInt32(Console.ReadLine());
Circle kreis = new Circle(temp_x, temp_y);
}
public int X {
get { return x;}
set { x = value;}
}
public int Y {
get { return y;}
set { y = value;}
}
}
}
Donnerstag, 7. Juli 2011
aufgabe 6 prg
Blatt 6
Bennen Sie die Klassen der letzten Stunde um.
Kreis Circle
Punkt Point
a)
Ergänzen Sie Ihre Circle-Klasse, in dem Sie neben den Radius auf einen Mittelpunkt
definieren (x,y) 2D reicht!
Ergänzen Sie die Klasse Circle um eine Methode IsOutside(...), die die x- und y-
Koordinaten eines Punktes übergeben bekommt und testet, ob der Punkt außerhalb des
Kreises liegt und in diesem Falle true zurückgibt (false sonst). Ergänzen Sie den
Konstruktor um eine einzeilige Kontrollausgabe „Kreis erzeugt“.
Hinweis: Um diese Aufgabe zu lösen, müssen Sie ausrechnen können, wie groß der Abstand
d zweier Punkte (x1, y1) und (x2, y2) ist. Verwenden Sie hierzu die Formel (sog.
Euklidischer Abstand):
d = Math.Sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
Ihre Ausgabe könnte z.B. so aussehen:
Kreis erzeugt: M = (0, 0), Radius: 3.0
Kreis erzeugt: M = (3, 0), Radius: 4.0
Kreis erzeugt: M = (0, 3), Radius: 5.0
-Punkt- -Kreis1- -Kreis2- -Kreis3-
(2, 0) INNEN INNEN INNEN
(2, 7) AUSSEN AUSSEN INNEN
(2, 9) AUSSEN AUSSEN AUSSEN
Schreiben Sie die Methoden Grow() und Move() für die Klasse Circle, die einen Kries
wachsen und bewegen lässt.
b)
Schreiben Sie eine Klasse Point, die einen einzelnen Punkt (x, y) des
Koordinatensystems beschreibt. Ein Objekt dieser Klasse besitze die privaten int-Variablen
x und y, Properties zum Setzen bzw. Lesen von x und y. Außerdem habe Point einen
Konstruktor, dem unmittelbar Werte zum Festlegen von x und y übergeben werden. Ergänzen
Sie den Konstruktor ebenfalls um eine einzeilige Kontrollausgabe (siehe a).
Erzeugen Sie in einem Hauptprogramm mindestens die drei Punkte mit den Koordinaten (2,
0), (2, 7) und (2, 9).
Die Ausgabe könnte nun etwa wie folgt aussehen:
Punkt (2, 0) erzeugt
Punkt (2, 7) erzeugt
Punkt (2, 9) erzeugt
c) Modifizieren Sie die Klasse Circle aus a) so, dass sie statt der Angabe (x, y) für einen
Punkt den Objekttyp Point verwendet:
· Speichern Sie den Mittelpunkt als Point-Objekt
· Ändern Sie den Konstruktor entsprechend
· Ändern Sie die IsOutside(..)-Methode entsprechend.
Führen Sie anschließend mindestens die gleichen Tests wie bei a) durch.
Mögliche Ausgabe:
Punkt (0, 0) erzeugt
Kreis erzeugt: M = (0, 0), Radius: 3.0
Punkt (3, 0) erzeugt
Kreis erzeugt: M = (3, 0), Radius: 4.0
Punkt (0, 3) erzeugt
Kreis erzeugt: M = (0, 3), Radius: 5.0
-Punkt- -Kreis1- -Kreis2- -Kreis3-
Punkt (2, 0) erzeugt
(2, 0) INNEN INNEN INNEN
Punkt (2, 7) erzeugt
(2, 7) AUSSEN AUSSEN INNEN
Punkt (2, 9) erzeugt
(2, 9) AUSSEN AUSSEN AUSSEN
Bennen Sie die Klassen der letzten Stunde um.
Kreis Circle
Punkt Point
a)
Ergänzen Sie Ihre Circle-Klasse, in dem Sie neben den Radius auf einen Mittelpunkt
definieren (x,y) 2D reicht!
Ergänzen Sie die Klasse Circle um eine Methode IsOutside(...), die die x- und y-
Koordinaten eines Punktes übergeben bekommt und testet, ob der Punkt außerhalb des
Kreises liegt und in diesem Falle true zurückgibt (false sonst). Ergänzen Sie den
Konstruktor um eine einzeilige Kontrollausgabe „Kreis erzeugt“.
Hinweis: Um diese Aufgabe zu lösen, müssen Sie ausrechnen können, wie groß der Abstand
d zweier Punkte (x1, y1) und (x2, y2) ist. Verwenden Sie hierzu die Formel (sog.
Euklidischer Abstand):
d = Math.Sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
Ihre Ausgabe könnte z.B. so aussehen:
Kreis erzeugt: M = (0, 0), Radius: 3.0
Kreis erzeugt: M = (3, 0), Radius: 4.0
Kreis erzeugt: M = (0, 3), Radius: 5.0
-Punkt- -Kreis1- -Kreis2- -Kreis3-
(2, 0) INNEN INNEN INNEN
(2, 7) AUSSEN AUSSEN INNEN
(2, 9) AUSSEN AUSSEN AUSSEN
Schreiben Sie die Methoden Grow() und Move() für die Klasse Circle, die einen Kries
wachsen und bewegen lässt.
b)
Schreiben Sie eine Klasse Point, die einen einzelnen Punkt (x, y) des
Koordinatensystems beschreibt. Ein Objekt dieser Klasse besitze die privaten int-Variablen
x und y, Properties zum Setzen bzw. Lesen von x und y. Außerdem habe Point einen
Konstruktor, dem unmittelbar Werte zum Festlegen von x und y übergeben werden. Ergänzen
Sie den Konstruktor ebenfalls um eine einzeilige Kontrollausgabe (siehe a).
Erzeugen Sie in einem Hauptprogramm mindestens die drei Punkte mit den Koordinaten (2,
0), (2, 7) und (2, 9).
Die Ausgabe könnte nun etwa wie folgt aussehen:
Punkt (2, 0) erzeugt
Punkt (2, 7) erzeugt
Punkt (2, 9) erzeugt
c) Modifizieren Sie die Klasse Circle aus a) so, dass sie statt der Angabe (x, y) für einen
Punkt den Objekttyp Point verwendet:
· Speichern Sie den Mittelpunkt als Point-Objekt
· Ändern Sie den Konstruktor entsprechend
· Ändern Sie die IsOutside(..)-Methode entsprechend.
Führen Sie anschließend mindestens die gleichen Tests wie bei a) durch.
Mögliche Ausgabe:
Punkt (0, 0) erzeugt
Kreis erzeugt: M = (0, 0), Radius: 3.0
Punkt (3, 0) erzeugt
Kreis erzeugt: M = (3, 0), Radius: 4.0
Punkt (0, 3) erzeugt
Kreis erzeugt: M = (0, 3), Radius: 5.0
-Punkt- -Kreis1- -Kreis2- -Kreis3-
Punkt (2, 0) erzeugt
(2, 0) INNEN INNEN INNEN
Punkt (2, 7) erzeugt
(2, 7) AUSSEN AUSSEN INNEN
Punkt (2, 9) erzeugt
(2, 9) AUSSEN AUSSEN AUSSEN
C# Superhelden Klassenbeispiel 2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication17
{
class Superhelden // Defenition der Klasse Superhelden
{
string name; // Deklaration von Klassen Variablen nach dem Konstruieren --> Instanzvariablen
string ebility;
int power;
static string s = "kamo"; // Defenition einer statischen Variable
public string Ability
{
get { return name; }
set { name = value; }
}
static void Main(string [] args) {
Superhelden batMan = new Superhelden("Batman","90","90");
}
public Superhelden() { } // Leerer Konstruktor (standard / default )
public Superhelden ( string Superheldenname, string Superheldenebility, string Superheldenpower) // Def eines Konstruktors
{
name = Superheldenname; ebility = Superheldenebility; power= Superheldenpower; //Instanziierung
}
public string Name //definition einer eigenschaft
{
get { return name;}
set { name = value; }
}
public string Power //definition einer eigenschaft
{
get { return power; }
set { power = value; }
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication17
{
class Superhelden // Defenition der Klasse Superhelden
{
string name; // Deklaration von Klassen Variablen nach dem Konstruieren --> Instanzvariablen
string ebility;
int power;
static string s = "kamo"; // Defenition einer statischen Variable
public string Ability
{
get { return name; }
set { name = value; }
}
static void Main(string [] args) {
Superhelden batMan = new Superhelden("Batman","90","90");
}
public Superhelden() { } // Leerer Konstruktor (standard / default )
public Superhelden ( string Superheldenname, string Superheldenebility, string Superheldenpower) // Def eines Konstruktors
{
name = Superheldenname; ebility = Superheldenebility; power= Superheldenpower; //Instanziierung
}
public string Name //definition einer eigenschaft
{
get { return name;}
set { name = value; }
}
public string Power //definition einer eigenschaft
{
get { return power; }
set { power = value; }
}
}
}
C# Superhelden Klassenbeispiel
Class Superhelden
{
string name; string ebility;
int power;
statis string s = "kamo";
public Superhelden()
{}
public Superhelden ( string Superheldenname, string Superheldenebility, string Superheldenpower)
{
name = Superheldenname; ebility = Superheldenebility; power= Superheldenpower;
}
public string Name
{
set { return name;}
return {name=value;}
}
2tes Klassenbeispiel
{
string name; string ebility;
int power;
statis string s = "kamo";
public Superhelden()
{}
public Superhelden ( string Superheldenname, string Superheldenebility, string Superheldenpower)
{
name = Superheldenname; ebility = Superheldenebility; power= Superheldenpower;
}
public string Name
{
set { return name;}
return {name=value;}
}
2tes Klassenbeispiel
// This class is mutable. Its data can be modified from // outside the class. class Customer { // Auto-Impl Properties for trivial get and set public double TotalPurchases { get; set; } public string Name { get; set; } public int CustomerID { get; set; } // Constructor public Customer(double purchases, string name, int ID) { TotalPurchases = purchases; Name = name; CustomerID = ID; } // Methods public string GetContactInfo() {return "ContactInfo";} public string GetTransactionHistory() {return "History";} // .. Additional methods, events, etc. } class Program { static void Main() { // Intialize a new object. Customer cust1 = new Customer ( 4987.63, "Northwind",90108 ); //Modify a property cust1.TotalPurchases += 499.99; } }
Montag, 4. Juli 2011
Sonntag, 3. Juli 2011
HA Geometrische Klassen C#
//Kai Milberg
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Geometrie
{
class Dreieck
{
public Point A, B, C;
public Dreieck dreieck1,
dreieck2,
dreieck3;
public Dreieck(double a, double b, double c)
{
A = a;
B = b;
C = c;
}
public void Cut()
{
Punkt AB;
Punkt BC;
Punkt CA;
AB = new Punkt((A.X + B.X) / 2, (A.Y + B.Y) / 2);
BC = new Punkt((B.X + C.X) / 2, (B.Y + C.Y) / 2);
CA = new Punkt((C.X + A.X) / 2, (C.Y + A.Y) / 2);
dreieck1 = new Dreieck(A, AB, CA);
dreieck2 = new Dreieck(AB, B, BC);
dreieck3 = new Dreieck(CA, BC, C);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Geometrie
{
class Dreieck2
{
public class Triangle
{
// Triangle members.
Point P1;
Point P2;
Point P3;
public Point Point1 {
get {
return P1;
}
set {
P1 = value;
}
}
public Point Point2 {
get
{
return P2;
}
set
{
P2 = value;
}
}
public Point Point3 {
get
{
return P3;
}
set
{
P3 = value;
}
}
public Triangle(Point point1,Point point2,Point point3) {
P1 = point1;
P2 = point2;
P3 = point3;
}
}
}
//Kai Milberg
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Geometrie
{
class Kreis
{
class Circle
{
// Felder
int XKoordinate { get; set; }
int YKoordinate { get; set; }
double radius = 0;
int countCircles;
bool counterReduced = false;
// Konstruktoren
public Circle()
{
countCircles++;
}
public Circle(double radius)
: this()
{
this.Radius = radius;
}
public Circle(double radius, int xPos, int yPos)
: this(radius)
{
XKoordinate = xPos;
YKoordinate = yPos;
}
// Destruktor
~Circle()
{
if (!counterReduced)
countCircles--;
}
// Eigenschaftsmethoden
public double Radius
{
get
{
return radius;
}
set
{
if (value >= 0)
radius = value;
else
Console.Write("Unzulässiger Wert.");
}
}
public int CountCircles
{
get { return countCircles; }
}
public void Dispose()
{
if (!counterReduced)
{
countCircles--;
counterReduced = true;
}
}
// ------ Klassenmethoden ------
public static double GetFlaeche(double radius)
{
return Math.PI * Math.Pow(radius, 2);
}
public static double GetUmfang(double radius)
{
return 2 * Math.PI * radius;
}
public static Circle Bigger(Circle kreis1, Circle kreis2)
{
if (kreis1.radius >= kreis2.radius)
return kreis1;
return kreis2;
}
public static Circle Bigger(Circle kreis1, Circle kreis2, out bool equal)
{
equal = false;
if (kreis1.radius == kreis2.radius)
equal = true;
return Circle.Bigger(kreis1, kreis2);
}
public static bool IsBigger(Circle kreis1, Circle kreis2)
{
if (kreis1.radius >= kreis2.radius)
return true;
return false;
}
// ------ Instanzmethoden ------
public double GetUmfang()
{
return 2 * Math.PI * Radius;
}
public double GetFlaeche()
{
return Math.PI * Math.Pow(Radius, 2);
}
public Circle Bigger(Circle kreis)
{
if (this.radius >= kreis.radius)
return this;
return kreis;
}
public Circle Bigger(Circle kreis, out bool equal)
{
equal = false;
if (this.radius == kreis.radius)
equal = true;
return this.Bigger(kreis);
}
}
}
}
//Kai Milberg
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Geometrie
{
class Punkt
{
public class Point3DF
{
float mX;
float mY;
float mZ;
public Point3DF(float X, float Y, float Z)
{
mX = X;
mY = Y;
mZ = Z;
}
public Point3DF()
{
mX = 0;
mY = 0;
mZ = 0;
}
public float X
{
get { return mX; }
set { mX = value; }
}
public float Y
{
get { return mY; }
set { mY = value; }
}
public float Z
{
get { return mZ; }
set { mZ = value; }
}
}
public class Angle3DF
{
private float mX;
private float mY;
private float mZ;
private bool mRad = false;
public Angle3DF(float X, float Y, float Z, bool Radial)
{
mX = X;
mY = Y;
mZ = Z;
mRad = Radial;
}
public Angle3DF()
{
mX = 0;
mY = 0;
mZ = 0;
mRad = false;
}
public float X
{
get { return mX; }
set { mX = value; }
}
public float Y
{
get { return mY; }
set { mY = value; }
}
public float Z
{
get { return mZ; }
set { mZ = value; }
}
public Angle3DF ToRadial()
{
if (mRad)
return this;
else
{
float nx = (float)(mX * Math.PI / 180);
float ny = (float)(mY * Math.PI / 180);
float nz = (float)(mZ * Math.PI / 180);
return new Angle3DF(nx, ny, nz, true);
}
}
public Angle3DF ToDegree()
{
if (!mRad)
return this;
else
{
float nx = (float)(mX * 180 / Math.PI);
float ny = (float)(mY * 180 / Math.PI);
float nz = (float)(mZ * 180 / Math.PI);
return new Angle3DF(nx, ny, nz, false);
}
}
}
}
}
//Kai Milberg
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Geometrie
{
class Punkt
{
public class Point3DF
{
float mX;
float mY;
float mZ;
public Point3DF(float X, float Y, float Z)
{
mX = X;
mY = Y;
mZ = Z;
}
public Point3DF()
{
mX = 0;
mY = 0;
mZ = 0;
}
public float X
{
get { return mX; }
set { mX = value; }
}
public float Y
{
get { return mY; }
set { mY = value; }
}
public float Z
{
get { return mZ; }
set { mZ = value; }
}
}
public class Angle3DF
{
private float mX;
private float mY;
private float mZ;
private bool mRad = false;
public Angle3DF(float X, float Y, float Z, bool Radial)
{
mX = X;
mY = Y;
mZ = Z;
mRad = Radial;
}
public Angle3DF()
{
mX = 0;
mY = 0;
mZ = 0;
mRad = false;
}
public float X
{
get { return mX; }
set { mX = value; }
}
public float Y
{
get { return mY; }
set { mY = value; }
}
public float Z
{
get { return mZ; }
set { mZ = value; }
}
public Angle3DF ToRadial()
{
if (mRad)
return this;
else
{
float nx = (float)(mX * Math.PI / 180);
float ny = (float)(mY * Math.PI / 180);
float nz = (float)(mZ * Math.PI / 180);
return new Angle3DF(nx, ny, nz, true);
}
}
public Angle3DF ToDegree()
{
if (!mRad)
return this;
else
{
float nx = (float)(mX * 180 / Math.PI);
float ny = (float)(mY * 180 / Math.PI);
float nz = (float)(mZ * 180 / Math.PI);
return new Angle3DF(nx, ny, nz, false);
}
}
}
}
}
Abonnieren
Posts (Atom)

