Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » C Klasse erstellen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
eulerscheZahl

Mal 'nen Kasten, schreib' oben Saugroboter hin, dann eine waagrechte Linie, Eigenschaften (x, y, winkel, durchmesser), noch eine Waagrechte, dann die Funktionen.
Jason

Hast du tipps wie ich das für meine Aufgabe darstellen kann ?
eulerscheZahl

Wo hängt es denn beim Klassendiagramm?
Weißt du, wie so etwas prinzipiell aufgebaut wird?
-> Wirf z.B. einen Blick in die Wikipedia, wenn danach noch Fragen sind, kann ich sie gerne beantworten.
Oder sucht du nur nach Software, um das Diagramm am PC zu erstellen?
Für Windows, 30-Tage Demo: Enterprise Architect
Für Linux/Windows, Open Source: TOPCASED
Jason

Weißt du wie ich das UML Klassendiagramm machen kann ?

Weil so was habe ich noch nie gemacht.

Nach der Aufgabenstellung soll ich ja auch keinen Code schreiben oder )
eulerscheZahl

Das ist deine Aufgabe, nicht meine.
Du kannst hier gerne einen Vorschlag bringen, auf den ich dann einen Blick werfen kann. Aber ich werde dir die Arbeit nicht abnehmen.
Jason

Wie soll denn jetzt genau mein komplettes Program aussehen ?
eulerscheZahl

eclipse ist auch gut.
Du solltest damit erkannt haben, dass dein Code nicht ausgeführt werden kann.

Ich dachte an so etwas (nicht getestet, ich muss gleich weg):
code:
1:
2:
3:
4:
5:
void bewegen(double laenge)
{
    x += laenge * cos(winkel);
    y += laenge * sin(winkel);
}
Jason

ich muss eclipse benutzen.

Wie berechne ich das mit sin und cos ?

Echt kompliziert.
eulerscheZahl

Was du machen sollst, nennt sich objektorientierte Programmierung, das geht nicht in C.
Ich zitiere aus deinem ersten Beitrag:
Zitat:
#include< iostream>
using namespace std;
class Saugroboter

Das ist C++.

Zum Bewegen/Drehen:
du brauchst bei den Variablen der Klasse einen zusätzlichen Eintrag:
code:
1:
2:
3:
4:
private:
	float durchmesser;
	double x, y;
	double winkel; //speichert ab, in welche Richtung der Roboter gedreht ist

Für das Drehen brauchst du eine eigene Funktion:
code:
1:
2:
3:
4:
void drehen(double winkel)
{
    this->winkel += winkel;
}


Das Bewegen des Roboters ändert die Werte x und y:
Für einen Winkel=0 bewegt der Roboter sich in positiver x-Richtung, bei 90°=Pi/2 in y-Richtung, bei z.B. 45° in x- und y-Richtung.
Allgemein lässt sich das durch sinus und cosinus berechnen.

Zitat:
if( x == +){

x = +;

else{

x = -;
}


}

Hattest du vorher schon irgendetwas mit Programmieren zu tun? Das ist noch nicht mal annährend korrekte Syntax.

Hast du einen Compiler um dein Programm auszuführen oder dich auf Fehler hinweisen zu lassen? Ohne wirst du es schwer haben, programmieren zu lernen.
Hier mögliche Entwicklungsumgebungen:
Visual Studio (unter Visual Studio Express 2013 für Windows Desktop)
Nur für Windows, Registrierung innerhalb von 30 Tagen erforderlich. Bringt einen guten Debugger(für Fehlersuche) mit.

Code::Blocks
Ist Open-Source und somit kostenlos.

Einige meiner Kommilitonen nutzen Dev-C++, dazu kann ich aber nichts sagen.
Jason

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
#include <iostream>
#include <sstream>
using namespace std;


class Saugroboter
{
private:
	float durchmesser;
	double x, y;

public:
	Saugroboter() //Konstruktor, wird beim Erstellen einer Instanz aufgerufen
	{
		this->x = 0; this->y = 0; //es geht auch: x = 0; y = 0;
	}

	void bewegen(double laenge)
	{
		this->x += laenge;
		//hier ist eine Rechnung in Abhängigkeit vom Winkel nötig
		
		if( x == +){
			
			x = +;
			
			else{
				
				x = -;
			}
			
			
		}
		
		
		
		
	}

	string getPosition()
	{
		stringstream s;
		s << this->x << "/" << this->y;
		return s.str();
	}
};

int main()
{
	Saugroboter saugi1;
	saugi1.bewegen(3.4);
	cout << saugi1.getPosition();
//Für VisualStudio folgende Zeile verwenden:
//system("PAUSE");
}


Der Saugroboter kann sich um einen angegebenen Winkel drehen (um seine Mitte). Ein positiver
Wert entspricht dabei einer Drehung gegen den Uhrzeigersinn, ein negativer Wert einer Drehung
im Uhrzeigersinn.

Habe ich diesen Teil ein wenig richtig programiert ?

Mit der if Bedingung ?

P:s Ich muss in C programieren.

Kann man da auch so programieren?
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.