Übungen zu c++

Diskutiere Übungen zu c++ im Programmierung Forum im Bereich Programmierung; hi leutz, also ich hätte da mal ne frage. weiss jemand von euch, ob es irgendwo im netz übungen zu c++ gibt, also ganz speziell klassen, usw...
#1
Gnoovy

Gnoovy

Threadstarter
Dabei seit
04.02.2002
Beiträge
2.178
Alter
35
hi leutz,


also ich hätte da mal ne frage. weiss jemand von euch, ob es irgendwo im netz übungen zu c++ gibt, also ganz speziell klassen, usw.




greetz
gnoovy
 
#3
Gnoovy

Gnoovy

Threadstarter
Dabei seit
04.02.2002
Beiträge
2.178
Alter
35
hi,

habe mal folgende aufgabe probiert: Roboterarm. Im prinzip halt zwei linien, die unterschiedliche winkel haben. nur möchte ich mit einem mausklick den winkel der einen linie ändern, so dass der eindruck entsteht, die linie würde sich ändern.

# include <stdio.h>
# include <stdlib.h>
# include <iostream.h>
# include <math.h>
# include "Igel.h"

// ======================================================================
/* Deklaration Klasse*/


class roboterglied
{


private:

int xi1;
int yi1;
int xi2;
int yi2;
int laenge1;
int winkel1;
int laenge2;
int winkel2;


public:


void neu1()
{int xi=0;
int yi=0;}

void neu2()
{int xi2=0;
int yi2=0;}

void setzexy1(int x1, int y1)
{

xi1=x1;
yi1=y1;
}

void setzexy2(int x2,int y2)
{
xi2=x2;
yi2=y2;
}

void setzelw1(int l1, int w1)
{

laenge1=l1;
winkel1=w1;
}


void setzelw2(int l2, int w2)
{

laenge2=l2;
winkel2=w2;
}

void berechnungarm1()
{

moveto(xi1,yi1);


xi1 = xi1 + int ( laenge1 * cos(winkel1));
yi1 = yi1 - int ( laenge1 * sin(winkel1));

lineto(xi1,yi1,10);
}


void berechnungarm2()
{

moveto(xi2,yi2);


xi2 = xi2 + int ( laenge2 * cos(winkel2));
yi2 = yi2 - int ( laenge2 * sin(winkel2));

lineto(xi2,yi2,10);
}


};



//==========================================================================

void vorher()
{
set_windowpos( 50, 50, 700, 300);

}

//==========================================================================

void zeichnung()
{
text( 100, 10, 50, SCHWARZ, NICHT_DECKEND, "Robotersimulation");

/* warten */
//wait(1000);

/* beenden */
//exit(0);

int x1=100;
int y1=100;
int l1=70;
int w1=50;

int x2=167;
int y2=118;
int l2=70;
int w2=0;


roboterglied einlesen;


einlesen.setzelw1(l1,w1);
einlesen.setzelw2(l2,w2);
einlesen.setzexy1(x1,y1);
einlesen.setzexy2(x2,y2);
einlesen.berechnungarm1();
einlesen.berechnungarm2();




}

// ======================================================================


void nachher()
{
}
 
#4
stpe

stpe

Dabei seit
14.11.2001
Beiträge
2.729
zum einen:

fueg programm-code, den Du hier postest immer in das code-tag ein (ansonsten fehlt hinterher die haelfte der source-texte), ausserdem hilft eine ordentliche dokumentation sehr(!) zu verstehen, was der source-code eigentlich machen soll ...

zum zweiten:

war das jetzt eine frage (wenn ja, dann beschreib das problem bitte genauer) oder einfach ein beispiel, das Du uns nur praesentieren wolltest? bei ersterem: was steht in der "igel.h"?
 
#5
Gnoovy

Gnoovy

Threadstarter
Dabei seit
04.02.2002
Beiträge
2.178
Alter
35
hi stpe,


ok sorry werde code in zukunft nur noch auf diese weise posten. jo es war eine frage. und zwar zeichnet mir das obrige programm zwei linien, die zusammengefügt sind. die eine linie hat jedoch einen anderen winkel, als die andere, weshalb dann das ganze ungefähr wie ein angewinkelter arm aussieht. ich möchte prinzipiell, dass ich die angewinkelte linie mit der maus nach oben oder unten bewegen kann. also ein bewegter roboterarm sozusagen. was in der igel. h steht, kann ich dir erst heute abend posten.



greetz
gnoovy
 
#6
Gnoovy

Gnoovy

Threadstarter
Dabei seit
04.02.2002
Beiträge
2.178
Alter
35
hier der ausschnitt der igel.h, hoffentlich habe ich das jetzt richtig geschnallt und den code richtig abgebildet:

[# ifndef IGEL_H
# define IGEL_H

# define SCHWARZ 0
# define WEISS 1
# define ROT 2
# define GELB 3
# define GRUEN 4
# define BLAU 5
# define GRAU 6
# define BRAUN 7

# define NICHT_DECKEND 0
# define DECKEND 1

# define LINKS 1
# define RECHTS 2
# define MITTE 3

extern void pixel( int x, int y, int c);
extern void moveto( int x, int y);
extern void lineto( int x, int y, int c);
extern void text( int x, int y, int siz, int c, int mode, char *fmt, ...);
extern void textbox( int x1, int y1, int x2, int y2, int siz, int tf, int rf, int ff, int mode, char *fmt, ...);
extern void rectangle( int x1, int y1, int x2, int y2, int c1, int c2);
extern void ellipse( int x1, int y1, int x2, int y2, int c1, int c2);
extern void rframe( int x1, int y1, int x2, int y2, int c);
extern void eframe( int x1, int x2, int y1, int y2, int c);
extern void fill( int x, int y, int c1, int c2);

extern void get_windowsize( int *x, int *y);
extern void set_windowpos( int x, int y, int b, int h);

# define MBTN_LEFT 1
# define MBTN_MIDDLE 2
# define MBTN_RIGHT 3
# define MBTN_SHIFTLEFT 4
# define MBTN_SHIFTMIDDLE 5
# define MBTN_SHIFTRIGHT 6

extern int mouseclick( int *x, int *y);
extern int checkmouse();

extern void wait( unsigned int msecs);

extern void vorher();
extern void zeichnung();
extern void nachher();

# endif]
 
#8
Gnoovy

Gnoovy

Threadstarter
Dabei seit
04.02.2002
Beiträge
2.178
Alter
35
hi leutz,


@stpe kannst du mir nun helfen?



greetz
gnoovy
 
#9
Gnoovy

Gnoovy

Threadstarter
Dabei seit
04.02.2002
Beiträge
2.178
Alter
35
Hi leutz,


habe nun erfolgreich den Mausklick implementieren können. doch wie kann ich nun die zufor "gezeichneten" striche wieder löschen, hier nochmal das überarbeitete programm:

[# include <stdio.h>
# include <stdlib.h>
# include <iostream.h>
# include <math.h>
# include "Igel.h"

// ======================================================================
/* Deklaration Klasse*/


class roboterglied
{


private:

int xi1; //xi1 und yi1 sind fuer die erste linie
int yi1;
int xi2; //xi2 und yi2 sind fuer die zweite Linie
int yi2;
int laenge1; //Hier ebenfalls
int winkel1; //erste Linie
int laenge2; //Hier ebenfalls
int winkel2; //zweite Linie


public:


void neu1()
{int xi=0;
int yi=0;}

void neu2()
{int xi2=0;
int yi2=0;} //Funktionen der Klasse Roboterglied
//inkl. Berechnung der zwei Linien
void setzexy1(int x1, int y1)
{

xi1=x1;
yi1=y1;
}

void setzexy2(int x2,int y2)
{
xi2=x2;
yi2=y2;
}

void setzelw1(int l1, int w1)
{

laenge1=l1;
winkel1=w1;
}


void setzelw2(int l2, int w2)
{

laenge2=l2;
winkel2=w2;
}

void berechnungarm1()
{

moveto(xi1,yi1);


xi1 = xi1 + int ( laenge1 * cos(winkel1)); //Berechnung der Linie1
yi1 = yi1 - int ( laenge1 * sin(winkel1));

lineto(xi1,yi1,10);

}


void berechnungarm2()
{

moveto(xi2,yi2);


xi2 = xi2 + int ( laenge2 * cos(winkel2)); //Berechnung der Linie2
yi2 = yi2 - int ( laenge2 * sin(winkel2));

lineto(xi2,yi2,10);
}


};



//==========================================================================

void vorher()
{
set_windowpos( 50, 50, 700, 300);

}

//==========================================================================

//Beginn Hauptprogramm

void zeichnung()
{
text( 100, 10, 50, SCHWARZ, NICHT_DECKEND, "Robotersimulation");

/* warten */
//wait(1000);

/* beenden */
//exit(0);

//==================

//Fuer Linie1

int x1=100;
int y1=100;
int l1=70;
int w1=50;
//==================

//Fuer Linie2

int x2=167;
int y2=118;
int l2=70;
int w2=0;

//==================


//Fuer Mausclick

int taste=0;

//================




roboterglied einlesen; //Deklaration der Robotergliedvariablen

einlesen.setzexy1(x1,y1);
einlesen.setzelw1(l1,w1);
einlesen.berechnungarm1();



//Schleife füer Mausklick

do
{

int x=0;
int y=0;

taste=mouseclick(&x,&y);

einlesen.setzexy2(x2,y2);
einlesen.setzelw2(l2,w2);

moveto(x2,y2);
lineto(x,y,10);




einlesen.berechnungarm2();



}while(taste==1);




}

// ======================================================================

//Ende Hauptprogramm



void nachher()
{
}]
 
#10
stpe

stpe

Dabei seit
14.11.2001
Beiträge
2.729
zum ersten: bitte fueg Deinen source-code bitte innerhalb des code-tags ein. einfach vorher auf den button code klicken, und nach der eingabe der source nochmal auf den button code. danke.

zum zweiten: um eine linie wieder zu loeschen kannst Du doch einfach folgendermassen vorgehen:

- vor der neuberechnung der position der linie die aktuellen koordinaten wegspeichern
- die koordinaten der linie neu berechnen
- mit den zwischengespeicherten koordinaten mit hintergrundfarbe die gleiche linie noch einmal malen
- die neue linie malen und deren koordinaten wieder wegspeichern
- die koordinaten der linie neu berechnen
- mit den zwischengespeicherten koordinaten mit hintergrundfarbe die gleiche linie noch einmal malen
- die neue linie malen und deren koordinaten wieder wegspeichern
- die koordinaten der linie neu berechnen
- mit den zwischengespeicherten koordinaten mit hintergrundfarbe die gleiche linie noch einmal malen
- die neue linie malen und deren koordinaten wieder wegspeichern
- die koordinaten der linie neu berechnen
:hehe :D
 
#11
B

BS

Gast
Was für includes muss ich einbinden, um das Beispiel zum Laufen zu bringen ?

Woher kommt moveto, lineto ?

BS
 
Thema:

Übungen zu c++

Übungen zu c++ - Ähnliche Themen

  • update fehlgeschlagen-Fehler Code 643-Sicherheitsupdate für Microsoft Visual C++2008 Service Pack 1-Redistributable Package (KB 2538243)Frage: Was ist

    update fehlgeschlagen-Fehler Code 643-Sicherheitsupdate für Microsoft Visual C++2008 Service Pack 1-Redistributable Package (KB 2538243)Frage: Was ist: Was ist zu tun?
  • Insider Version 18252 Microsoft Visual C++ 2005 Redistributable schlägt fehl!

    Insider Version 18252 Microsoft Visual C++ 2005 Redistributable schlägt fehl!: Hallo, ich habe auf meinem Laptop die Windows 10 Pro Insider Preview Build 18252.rs_prerelease.180929-1410 installiert, und mir ist aufgefallen...
  • Fehlermeldung C:\Users\User.DESKTOP VNK22cs\cnmss,wird nicht gefunden

    Fehlermeldung C:\Users\User.DESKTOP VNK22cs\cnmss,wird nicht gefunden: Fehlermeldung! dill-datei
  • Übung macht den Meister.. Nur Wie ?*nachdenk*

    Übung macht den Meister.. Nur Wie ?*nachdenk*: nabend liebe Leute bei einer solch Harten Wärme, Montag ( also in einer woche ) Fange ich meinen Autoführerschein an. . Endlich.. Wie jeder...
  • Mathe-übungen

    Mathe-übungen: hi leutz, weiss, oder besser gesagt hat mir vielleicht jemand übungen incl. lösungen wäre natürlich bombastisch im Mathematikbereich...
  • Ähnliche Themen

    Oben