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. |
|
|