mia mikri boitheiaa!!!!

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
NTINAaa
Δημοσιεύσεις: 21
Εγγραφή: 16 Μαρ 2009 00:25

mia mikri boitheiaa!!!!

Δημοσίευση από NTINAaa » 10 Απρ 2010 00:13

καλησπέρα παιδία!!!!!έχω μια άσκηση στη c++ έχω κάνει τα περισσότερα αλλα μου βγάζει λάθος στις συναρτήσεις length kai middle !!!όποιος μπορεί ας προτείνει καμία λυση !!!!!ευχαριστώ προκαταβολικά !!!!!!

Η κλάση Point (σημείο) ορίζεται από τα ιδιωτικά δεδομένα-μέλη x και y που
αντιστοιχούν στις συντεταγμένες του σημείου στο επίπεδο. Η κλάση περιλαμβάνει
τον κατασκευαστή (constructor) :
• Point(float a, float b){x=a; y=b;}
και τις δημόσιες (public) συναρτήσεις-μέλη:
• display() : Εμφανίζει στην οθόνη τις συντεταγμένες x,y του σημείου.
• move_x(a): Μετακινεί το σημείο κατά a μετρικές μονάδες προς τον άξονα των
x (μεταβάλλει δηλαδή την τετμημένη x κατά a).
• move_y(a): Μετακινεί το σημείο κατά a μετρικές μονάδες προς τον άξονα των
y (μεταβάλλει δηλαδή την τεταγμένη y κατά a).
Αντίστοιχα, το αντικείμενο Segment (ευθύγραμμο τμήμα) ορίζεται από δύο σημεία
(του τύπου Point). Η κλάση Segment περιέχει δύο κατασκευαστές:
• Segment(Point p1, Point p2) : Το ευθ. τμήμα ορίζεται από τα σημεία p1 και
p2.
• Segment(Point p): Το ευθ. τμήμα ορίζεται από τα σημεία (0,0) και p.
Η κλάση Segment περιλαμβάνει τις δημόσιες συναρτήσεις-μέλη:
• display(): Εμφανίζει στην οθόνη τα σημεία που ορίζουν το ευθύγραμμο τμήμα
(τις συντεταγμένες τους).
• length(): Επιστρέφει το μήκος του ευθύγραμμου τμήματος.
• middle():Επιστρέφει το κέντρο του ευθύγραμμου τμήματος.
Αφού κατασκευάσετε τις κλάσεις Point και Segment σύμφωνα με τα ανωτέρω, θα
πρέπει να γίνουν οι ακόλουθες ενέργειες:
• Να ορίσετε στο κυρίως πρόγραμμα το σημείο p στη θέση (-1,2) του επιπέδου.
• Να εμφανίσετε τη θέση του σημείου στην οθόνη.
• Να γράψετε ένα βρόχο μετακίνησης του σημείου προς τα αριστερά με βήμα
0.1. Ο βρόχος θα τερματίζει ύστερα από 7 μετακινήσεις. Μετά από κάθε
μετακίνηση να εμφανίζονται στην οθόνη οι συντεταγμένες του σημείου.
• Να ορίσετε το ευθύγραμμο τμήμα (0,4), (3,0)
• Να υπολογίσετε το μήκος του
• Να βρείτε το κέντρο του
Τα ανωτέρω αποτελέσματα θα πρέπει να εμφανίζονται στην οθόνη.

Κώδικας: Επιλογή όλων


#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;

class Point 
 &#123;
      private&#58;
          float x,y;
          
      public&#58;
            Point&#40;float a, float b&#41;
          &#123;x=a; y=b;&#125;
          Point&#40;&#41; &#123;x=0;y=0;&#125;;

          float move_x&#40;float a&#41;;
          float move_y&#40;float a&#41;;
          void display&#40;&#41;;
          friend float length&#40;&#41;;
          friend float middle&#40;&#41;;
        
&#125;;
 void Point&#58;&#58;display&#40;&#41;
 &#123;
     cout <<"Oi sintetagmenes tou simeiou einai&#58; x="<<x<<"y="<<y<<endl; 
 &#125;   ;                    
 
 float Point&#58;&#58;move_x&#40; float a&#41;
 &#123;
   x=x+a;
 &#125;

float Point&#58;&#58;move_y&#40;float a&#41;
 &#123;
   y=y+a;
 &#125;
          
class Segment
 &#123; 
         Point a,b; 
          
      public&#58;
         Segment&#58;&#58; Segment&#40;Point p1,Point p2&#41;
            &#123;a=p1;b=p2;&#125;
                        
         Segment&#58;&#58;Segment&#40;Point p&#41;
         &#123;a=p;&#125;
          
          void  display&#40;&#41;;
          friend float lenght&#40;&#41;;
          friend float middle&#40;&#41;;
&#125;;


 
 void Segment&#58;&#58;display&#40;&#41;
 &#123;
    a.display&#40;&#41;;
    b.display&#40;&#41;;
&#125;
/*float lenght&#40;&#41;
&#123;
   float len;
   len=sqrt&#40;&#40;&#40;b.x&#41;^2-&#40;a.x&#41;^2&#41;+&#40;&#40;b.y&#41;^2-&#40;b.x&#41;^2&#41; &#41;
   cout<<"To mikos einai &#58;"<< len <<endl;
  return 0;
&#125;       

float middle&#40;&#41;
&#123;   Point a,b;
    float midx,midy;
    midx=&#40;a.x+b.x&#41;/2;
    midy=&#40;a.y+b.y&#41;/2;
    cout <<"to kentro einai &#58;"<<midx<<","<<midy<<endl;
    &#125;*/
 int main &#40;&#41;
&#123;
     Point p&#40;-1,2&#41;;     
    p.display&#40;&#41;;
     
     float i=0;
     while &#40;i>=-0.7&#41;  
     &#123; 
           i=i-0.1;
           p.move_x&#40;i&#41;;
           p.move_y&#40;i&#41;;
           p.display&#40;&#41;;
             
     &#125;     
       Point p1&#40;0,4&#41;;
       Point p2&#40;3,0&#41;;
       Segment Seg1&#40;p1,p2&#41;; 
      Seg1.display&#40;&#41;;                       
system&#40;"pause"&#41;;
return 0;
&#125;



Υ.Γ. εχω βάλει σαν σχόλια τις συναρτήσεις που δεν δουλεύουν !!!

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

mia mikri boitheiaa!!!!

Δημοσίευση από virxen75 » 10 Απρ 2010 02:26

μάλλον πρέπει να είναι έτσι

Κώδικας: Επιλογή όλων

#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;

class Point
 &#123;
      private&#58;
          float x,y;
         
      public&#58;
          Point&#40;float a, float b&#41;&#123;x=a; y=b;&#125;
          Point&#40;&#41; &#123;x=0;y=0;&#125;
          float getX&#40;&#41;;
          float getY&#40;&#41;;
          float move_x&#40;float a&#41;;
          float move_y&#40;float a&#41;;
          void display&#40;&#41;;
       
&#125;;

 float Point&#58;&#58;getX&#40;&#41;&#123;
   return x;
 &#125;
  float Point&#58;&#58;getY&#40;&#41; &#123;
  return y;
 &#125;
 
 void Point&#58;&#58;display&#40;&#41;
 &#123;
     cout <<"Oi sintetagmenes tou simeiou einai&#58; x="<<x<<" y="<<y<<endl;
 &#125;                
 
 float Point&#58;&#58;move_x&#40; float a&#41;
 &#123;
   x=x+a;
 &#125;

float Point&#58;&#58;move_y&#40;float a&#41;
 &#123;
   y=y+a;
 &#125;
         
class Segment&#123;
         Point a,b;
         
      public&#58;
         Segment&#58;&#58; Segment&#40;Point p1,Point p2&#41;
            &#123;a=p1;b=p2;&#125;
                       
         Segment&#58;&#58;Segment&#40;Point p&#41;&#123;
                a=p;
         &#125;
         
          void  display&#40;&#41;;
         float length&#40;&#41;;
          void middle&#40;&#41;;
&#125;;


 
 void Segment&#58;&#58;display&#40;&#41;
 &#123;
    a.display&#40;&#41;;
    b.display&#40;&#41;;
&#125;
float Segment&#58;&#58;length&#40;&#41;&#123;
   float len;
   float dx=b.getX&#40;&#41;-a.getX&#40;&#41;;
   float dy=b.getY&#40;&#41;-a.getY&#40;&#41;;
   len=sqrt&#40;dy*dy+dx*dx&#41;;
   //cout<<"To mikos einai &#58;"<< len <<endl;
  return len;
&#125;       

void Segment&#58;&#58;middle&#40;&#41;&#123; 
    //Point a,b;
    float midx,midy;
    midx=&#40;a.getX&#40;&#41;+b.getX&#40;&#41;&#41;/2.0f;
    midy=&#40;a.getY&#40;&#41;+b.getY&#40;&#41;&#41;/2.0f;
    cout <<"to kentro einai &#58;"<<midx<<","<<midy<<endl;
    &#125;
    
 int main &#40;&#41;&#123;
     Point p&#40;-1,2&#41;;     
      p.display&#40;&#41;;cout<<endl;
     int i=0;
     while &#40;i<7&#41; &#123;
           i++;
           p.move_x&#40;-0.1&#41;;
           //p.move_y&#40;i&#41;;
           p.display&#40;&#41;;  
     &#125;     
     cout<<endl;
       Point p1&#40;0,4&#41;;
       Point p2&#40;3,0&#41;;
       Segment Seg1&#40;p1,p2&#41;;
       cout<<endl;
       Seg1.display&#40;&#41;;
       cout<<"length="<<Seg1.length&#40;&#41;<<endl;
       Seg1.middle&#40;&#41;;                     
system&#40;"pause"&#41;;
return 0;
&#125;



NTINAaa
Δημοσιεύσεις: 21
Εγγραφή: 16 Μαρ 2009 00:25

mia mikri boitheiaa!!!!

Δημοσίευση από NTINAaa » 13 Απρ 2010 21:49

Ευχαριστώ πολύ !!!Να σαι καλά!:) :D

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης