freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Ασκηση σε γλωσσα C


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [14 Μηνύματα]      Bookmarks Tags: άσκησηγλώσσα Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
kinois


Μέλος από: 08 Σεπ 2008
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 08 Σεπ 2008 00:42    Θέμα: Ασκηση σε γλωσσα C Απάντηση με παράθεση  Mark this post and the followings unread

Γεια και χαρα φιλοι.Λοιπον εχω ενα μικρο προβληματακισε μια ασκηση,οποιος μπορει να δωσει τα φωτα του θα το εκτιμουσα ιδιαιτερως

Λοιπον η ασκηση εχει ως εξης

1)Υλοποιηση συναρτησης που θα διαβαζει απ το πληκτρολογιο την αναλυση της οθονης σε pixels με την χρηση δομης(struct)

2)Επειτα θα διαβαζει τις σιντεταγμενες ενος σημειου

3)θα ελεγχει αν το σημειο βρισκεται εντος του ορατου πεδιου της οθονης

4)Θα διαβαζει 2 αριθμους που θα προσδιοριζουν τα pixel μετατοπισης του σημειου στον αξονα x και στον αξονα y(με την χρηση δομης για την μετατοπιση)

5)θα ελεγχει αν το σημειο μετα την μετατοπιση βρισκεται εντος του ορατου σημειου της οθονης




#include


//Domi gia tin analisi tis othonis

struct points{

double lenght;
double widht;

}resolution;






//Sinartisi pou diavazei ap to pliktrologio tin analisi tis othonis se pixel


void screenresolution()
{
printf("dose to megethos ton pixels gia to mikos:\n");
scanf("%lf",&resolution.lenght);

printf("dose to megethos ton pixels gia to platos:\n");
scanf("%lf",&resolution.widht);



//Diavazoume tis sintetagmenes gia ena simeio

struct points sintetagmenes;

printf("dose tin proti sintetagmeni gia to simeio:\n");
scanf("%lf",&sintetagmenes.lenght);

printf("dose tin defteri sintetagmeni gia to simeio:\n");
scanf("%lf",&sintetagmenes.widht);


//Elegxoume an einai entos tou oratou pediou tis othonis


if(sintetagmenes.lenght <= resolution.lenght && sintetagmenes.widht <= resolution.widht)
{
printf("To simeio einai entos tou oratou pediou tis othonis\n");
}

else
{
printf("To simeio den einai entos tou oratou simeiou tis othonis\n");
}



//diavazoume 2 arithmous gia ta pixel metatopisis

printf("dose to proto simeio metatopisis:\n");
scanf("%lf",&sintetagmenes.lenght);

printf("dose to deftero simeio metatopisis\n");
scanf("%lf",&sintetagmenes.widht);


if(sintetagmenes.lenght <= resolution.lenght && sintetagmenes.widht <= resolution.widht)
{
printf("To simeio einai entos tou oratou pediou tis othonis\n");
}

else
{
printf("To simeio den einai entos tou oratou simeiou tis othonis\n");
}
}



Αν μπορει καποιος λιγο την γνωμη του γενικα και ειδικοτερα στο σημειο μετατοπισης που πρεπει να ειναι λαθος ο τροπος απλα ειναι πολυ φρεσκα για να σκεφτω κατι αλλο

Ευχαριστω
kinois


Μέλος από: 08 Σεπ 2008
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 08 Σεπ 2008 01:11    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

σαν να ξεχασα κατι ε?

int main()
{

screenresolution();
}
proghostrammer


Μέλος από: 15 Ιουν 2007
Μηνύματα: 14

View users profile Send email to user
ΜήνυμαΣτις: 08 Σεπ 2008 04:23    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Γεια σου φίλε kinois και καλώς ήρθες στο forum !

Έτυχε να είμαι ξυπνητός και να δω το πρόβλημα σου.

Λοιπόν, έτσι που βλέπω τον κώδικα είσαι σωστός και το μόνο που πρέπει να κάνεις είναι ( αν κατάλαβα σωστά την εκφώνηση της άσκησης ) να διαβάσεις τα pixels μετατόπισης σε διαφορετική μεταβλητή απο την sintetagmenes, ας πούμε σε μια μεταβλητή (τύπου points) sintetagmenes2 και μετά να προσθέσεις στο sintetagmenes το sintetagmenes2 .

Δηλαδή να γράψεις κάτι τέτοιο :
παράθεση:

//dilonoume tin kainouria metavliti

struct points sintetagmenes2 ;


//diavazoume 2 arithmous gia ta pixel metatopisis

printf("dose to proto simeio metatopisis:\n");
scanf("%lf",&sintetagmenes2.lenght);

printf("dose to deftero simeio metatopisis\n");
scanf("%lf",&sintetagmenes2.widht);

sintetagmenes.lenght += sintetagmenes2.lenght ;
sintetagmenes.widht += sintetagmenes2.widht ;


if(sintetagmenes.lenght <= resolution.lenght && sintetagmenes.widht <= resolution.widht)
{
printf("To simeio einai entos tou oratou pediou tis othonis\n");
}

else
{
printf("To simeio den einai entos tou oratou simeiou tis othonis\n");
}
}


Α!Επίσης στο #include δήλωσε την βιβλιοθήκη stdio.h { #include <stdio.h> }

Δεν έχει καμία σημασία γιατί το πρόγραμμα σου είναι έτσι και αλλιώς σωστό αλλά θα μπορούσες στο struct που δηλώνεις το height και width να είναι τύπου int και όχι double διότι τα pixels είναι ακέραια. Επίσης θα μπορούσες να έκανες και ένα επιπλέον έλεγχο για να είναι το πρόγραμμα κάπως πιο ρεαλιστικό , δηλαδή να έλεγχες οι συντεταγμένες να μην είναι αρνητικές.( Τα pixels είναι θετικά )

Στον έλεγχο θα μπορούσες να γράψεις κάτι τέτοιο :
παράθεση:

if (sintetagmenes.lenght<= resolution.lenght && sintetagmenes.lenght>0 && sintetagmenes.widht <= resolution.widht && sintetagmenes.widht > 0)
{
printf("To simeio einai entos tou oratou pediou tis othonis\n");
}
else
{
printf("To simeio den einai entos tou oratou simeiou tis othonis\n");
}



Με εκτίμηση...ελπίζω να βοήθησα.

_________________
The programming is fantastic !!!!

Last edited by proghostrammer on 11 Σεπ 2008 19:09, edited 2 times in total
kinois


Μέλος από: 08 Σεπ 2008
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 08 Σεπ 2008 10:26    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

1000 ευχαριστω εγω,και βεβαια βοηθησες,να εισαι καιλα
bxenos


Μέλος από: 18 Αυγ 2008
Μηνύματα: 53

View users profile
ΜήνυμαΣτις: 09 Σεπ 2008 03:56    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

proghostrammer ανέφερε:
θα μπορούσες στο struct που δηλώνεις το height και width να είναι τύπου int και όχι double διότι τα pixels είναι ακέραια. Επίσης θα μπορούσες να έκανες και ένα επιπλέον έλεγχο για να είναι το πρόγραμμα κάπως πιο ρεαλιστικό , δηλαδή να έλεγχες οι συντεταγμένες να μην είναι αρνητικές.( Τα pixels είναι θετικά )


γιατι να μην βαλει unsigned; ουτε ελεγχο θα χρειαστει εφοσον θα ειναι παντα >= 0.
kinois


Μέλος από: 08 Σεπ 2008
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 09 Σεπ 2008 10:18    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

σωστο και αυτο,ωραιος,thanks file
proghostrammer


Μέλος από: 15 Ιουν 2007
Μηνύματα: 14

View users profile Send email to user
ΜήνυμαΣτις: 09 Σεπ 2008 11:44    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Φίλε μου bxenos σωστό αυτό που λες ,αλλά ο τύπος unsigned δεν εξασφαλίζει ότι δεν θα πληκτρολογηθεί αρνητικός αριθμός και σε περίπτωση που πληκτρολογηθεί δεν ξέρω κατά πόσο θα μας φανεί χρήσιμος ένας τυχαίος “κουλός” θετικός αριθμός . Αν όμως είμαστε σίγουροι ότι δεν θα δώσουμε ποτέ αρνητικό αριθμό φυσικά δεν χρειάζεται κανένας έλεγχος και παράλληλα μπορούμε να χρησιμοποιήσουμε οποιοδήποτε τύπο μεταβλητής (int , short,long ,unsigned,float, double,...) διότι έτσι και αλλιώς το πρόγραμμα είναι πολύ μικρό και είναι ανούσιο να κάνουμε όσον το δυνατό καλύτερη διαχείριση της μνήμης...

Επίσης το πρόβλημα του φίλου kinois είναι εικονικό . Επομένως το σημείο-pixel που θέλει να ελέγξει αν είναι εντός της οθόνης θα μπορούσε εκτός από πάνω και δεξιά της οθόνης να είναι και κάτω και αριστερά. Αυτό θα πει ότι οι συντεταγμένες του σημείου-pixel μπορεί να είναι και αρνητικές. Σε περίπτωση βέβαια που μία από τις δύο (ή και οι δύο) συντεταγμένες είναι αρνητικές το σημείο είναι εκτός της οθόνης και άρα χρειάζεται ο έλεγχος όπως συγχρόνως και ένας τύπος διαφορετικός του unsigned.

Βέβαια όλα αυτά λίγη σημασία έχουν και ο μόνος που ξέρει τι ακριβώς χρειάζεται να κάνει και τι εξυπηρετεί καλύτερα τις ανάγκες του προβλήματος είναι ο kinois . Another pint of beer

Φιλικά μιλάω πάντα και είμαι αρχάριος για να κάνω υποδείξεις απλά εκφράζω την άποψη μου...

_________________
The programming is fantastic !!!!
kinois


Μέλος από: 08 Σεπ 2008
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 09 Σεπ 2008 15:42    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

και καλα κανεις και εκφραζεις την αποψη σου και σ ευχαριστω κιολας γι αυτο.Οποτε αν καταλαβα καλα προτεινεις εκτος απο το να το δηλωσω unsigned να κανω και ελεγχο για εισοδο αρνητικου αριθμου?
proghostrammer


Μέλος από: 15 Ιουν 2007
Μηνύματα: 14

View users profile Send email to user
ΜήνυμαΣτις: 09 Σεπ 2008 18:33    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Καταρχάς όταν δηλώνουμε μια μεταβλητή μαζί με την λέξη κλειδί unsigned τότε σημαίνει ότι η αριθμητική αυτή μεταβλητή μπορεί να πάρει μόνο θετικούς αριθμούς.
Αυτό φαίνεται και από τα παρακάτω :
παράθεση:

short int -32,768 -> +32,767
unsigned short int 0 -> +65,535
unsigned int 0 -> +4,294,967,295
unsigned 0 -> +4,294,967,295
int -2,147,483,648 -> +2,147,483,647
char -128 -> +127
unsigned char 0 -> +255


Σε μια τέτοια περίπτωση :
παράθεση:

unsigned a ;
printf(“dose arithmo:\n”) ;
scanf(“%u”,&a) ;
printf(“%u\n”,a) ;

αν πληκτρολογήσουμε αρνητικό αριθμό θα μας εμφανίσει στην οθόνη ένα θετικό άσχετο αριθμό.



Ας υποθέσουμε ότι η οθόνη μας (για λόγους πιο εύκολης κατανόησης) έχει πλάτος 10 pixel και μήκος 10 pixel .

Έτσι λοιπόν αν τρέξεις το πρόγραμμα σου θα δεις κάτι τέτοιο... ( ότι είναι σε αγκύλες δεν εμφανίζονται )
παράθεση:

dose to megethos ton pixels gia to mikos:
10
dose to megethos ton pixels gia to platos:
10
dose tin proti sintetagmeni gia to simeio:
5 { τυχαίος αριθμός }
dose tin defteri sintetagmeni gia to simeio:
12 { τυχαίος αριθμός }
To simeio den einai entos tou oratou simeiou tis othonis
dose to proto simeio metatopisis:
2 { τυχαίος αριθμός }
dose to deftero simeio metatopisis:
-3 { τυχαίος αριθμός }
{ Σε αυτό το σημείο οι μεταβλητές έχουν τις εξής τιμές :
resolution.height = 10
resolution.widht = 10
sintetagmenes.height = 5
sintetagmenes.widht = 12
sintetagmenes2.height = 2
sintetagmenes2.widht = -3
sintetagmenes.height = 7
sintetagmenes.widht = 9 }
To simeio einai entos tou oratou pediou tis othonis


Στο παράδειγμα θέλω να προσέξεις ότι η μεταβλητή sintetagmenes2.widht παίρνει αρνητική τιμή ( -3 ) όπως επίσης και ότι ενώ το σημείο είναι αρχικά “εκτός του ορατού πεδίου” μετά το σημείο είναι “εντός του ορατού πεδίου” και αυτό γίνεται και θα γινόταν μόνο και εφόσον το sintetagmenes2.widht έπαιρνε το -2 ή και μικρότερο αριθμό (στην περίπτωση μας -3), σε οποιαδήποτε άλλη περίπτωση δεν θα ήταν μέσα στις διαστάσεις της οθόνης.
Αν λοιπόν δεν μπορεί να πάρει αρνητικές τιμές, σε μια περίπτωση όπως την παραπάνω που το σημείο είναι αρχικά “εκτός του ορατού πεδίου” θα ήταν καταδικασμένο το σημείο να μην βρεθεί σε καμία περίπτωση “εντός του ορατού πεδίου” ( Το γιατί είναι προφανές ).

Το αμέσως επόμενο συμπέρασμα είναι ότι στο struct το height & widht θα πρέπει να είναι κάποιου τύπου που να παίρνει αρνητικές τιμές , δηλαδή να μην είναι unsigned.


Θα ήθελα επίσης να πω ότι το πρόβλημα αυτό είναι μια άσκηση και στην ουσία δεν στέκει( κατά την ταπεινή μου γνώμη ) . Αν λοιπόν σκεφτούμε ότι μπορεί να υπάρξουν σημεία-pixels έξω από την οθόνη μας ( “εκτός του ορατού πεδίου” ) αυτομάτως σημαίνει ότι αυτά μπορεί να βρίσκονται σε οποιαδήποτε πλευρά της οθόνης δηλαδή πάνω, κάτω, δεξιά ή και αριστερά . Άρα το height και το widht αν έπαιρναν μόνο θετικούς αριθμούς τα σημεία-pixels έξω από την οθόνη μας θα ήταν μόνο προς τα πάνω ή προς τα δεξιά. Αυτό μπορούμε να το καταλάβουμε αν φανταστούμε ότι η αρχή των αξόνων είναι αριστερά κάτω στην οθόνη μας( όπως την βλέπουμε ). Θεωρητικά λοιπόν τα σημεία-pixels μπορεί να είναι και κάτω και αριστερά επομένως το height και το widht θα πρέπει να παίρνουν αρνητικές τιμές και για άλλον έναν λόγο εκτός και από τον παραπάνω.

Ο έλεγχος τώρα γίνεται διότι αν υπάρχει αρνητική συντεταγμένη τότε σίγουρα το σημείο είναι εκτός της οθόνης μας και κατά επέκταση το μήνυμα που πρέπει να πάρουμε είναι ότι το σημείο δεν είναι εντός του ορατού πεδίου. Ο έλεγχος δεν μας προστατεύει την μεταβλητή μας να μην πάρει αρνητική τιμή!Αν θέλαμε να κάνουμε κάτι τέτοιο θα μπορούσαμε να χρησιμοποιήσουμε κάποιο βρόχο... αλλά τέλος πάντων ξεφεύγουμε. ToolTimes at work
Πολύ απλά αν δεν υπήρχε έλεγχος τότε σε περίπτωση που έπερναν αρνητικές τιμές οι μεταβλητές sintetagmenes.height ή sintetagmenes.widht τότε το μήνυμα θα σου έλεγε ότι το σημείο είναι "εντός του ορατού πεδίου" κάτι που είναι λάθος.



Δεν ξέρω αν κατάλαβες τι θέλω να πω ... αλλά ξέρω ότι σίγουρα σε κούρασα.

Δύο κουβέντες θα σου πω που είναι ίδιες με όλα τα παραπάνω! ( )

Το height και το widht κατά την γνώμη μου μην το βάλεις unsigned αλλά βάλτο ότι άλλο θες( πχ int ή double όπως το είχες ) .Επίσης για καλό και για κακό κάνε και έλεγχο για είσοδο αρνητικού αριθμού δεν χάνεις τίποτα. το βιολί του αυτός!

Πάντως φίλε μου kinois , σαν συμβουλη στο λέω, να θυμάσαι όταν φτιάχνεις προγράμματα να προσπαθείς να τα “τρέχεις” στο μυαλό σου ή σε κάποιο χαρτί και να βλέπεις ανά πάσα στιγμή τα περιεχόμενα των μεταβλητών. Αυτό θα σε βοηθήσει να διορθώνεις τα τυχόν λάθη που αντιμετωπίζεις...

Άντε καλά προγράμματα και καλά να είμαστε! Victory!

_________________
The programming is fantastic !!!!
bxenos


Μέλος από: 18 Αυγ 2008
Μηνύματα: 53

View users profile
ΜήνυμαΣτις: 09 Σεπ 2008 22:17    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

τα γνωριζω αυτα περι εισοδου αρνητικου, αλλα και εσυ στο προγραμμα σου ελεγχεις αν ο αριθμος ειναι θετικος και εντος οριων.
αν δεν ισχυουν και οι 2 συνθηκες ταυτοχρονα, τυπωσεις ενα γενικο λαθος (εκτος οριων).

αρα αν εχει unsigned και ο χρηστης δωσει αρνητικο αριθμο, η τιμη της
μεταβλητης θα γινει
-ΑΡΝΗΤΙΚΟΣ_ΧΡΗΣΤΗ + 1 (συμπληρωμα ως προς το 2)

γενικα θα ειναι εκτος οριων (π.χ. το -1 δινει 65535 σε unsigned)
αν ο χρηστης δωσει τον μεγιστο αρνητικο (για 16bit) δξηλαδη -32768, τοτε ο unsigned
θα γινει 32767 αρα παλι εκτος οριων θα ειμαστε.
Η ΜΟΝΗ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΔΕΝ ΙΣΧΥΕΙ: αν τα ορια μας ειναι 32767 pixel οριζοντια ή καθετα για 16μπιτους αριθμους ή κατι δισεκατομυρια για 32μπιτους.

Δεν βλεπω προβλημα.

ΥΓ. αν σε ενδιαφερει αν ο πονηρος χρηστης παει να δωσει πατατα, τοτε πρεπει να παρεις string και να ελενξεις για αρνητικο, αλλιως θα δωσει ο πονηρος ενα -35345345 και αντε βρες εσυ αν ο int ή ο unsigned πηρε τι τιμη και γιατι.... τρεχα γυρευε δηλαδη.
kinois


Μέλος από: 08 Σεπ 2008
Μηνύματα: 6

View users profile
ΜήνυμαΣτις: 10 Σεπ 2008 12:22    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ειναι η πρωτη ασκηση και εστιαζει πιο πολυ στο να μαθω τι ειναι σημειο,τι ειναι αξονας,πως αναππαριστας ενα σημειο στην οθονη,πως το μετατοπιζεις κτλ κτλ αλλα παντα υποθετικα προς το παρον,δεν εχει αμεση σχεση με την οθονη και τα pixels.Ειναι πιο πολυ στο χαρτι ακομα

Ευχαριστω παντως ολους σας για τα σχολια και την βοηθεια και ελπιζω γρηγορα να επανελθω πλεον με κατι πιο ουσιαστικο και πιο αμεσο.

Παντως απ οτι μπορω να διακρινω λιγο για τα γραφικα μαλλον θα χρειαστουμε στην πορεια και καποια μαθηματικα παραπανω ε?καιρος για φρεσκαρισμα...
proghostrammer


Μέλος από: 15 Ιουν 2007
Μηνύματα: 14

View users profile Send email to user
ΜήνυμαΣτις: 10 Σεπ 2008 20:38    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Φίλε μου bxenos, δεν έχει πια σημασία και δεν έχω σκοπό να σου αλλάξω γνώμη . Σέβομαι αυτό που πιστεύεις αλλά συνεχίζω να επιμένω στην άποψη μου . Ίσως να κάνω και λάθος…


Στο προηγούμενο μου μήνυμα αιτιολόγησα για ποιους λόγους πιστεύω ότι ο τύπος που πρέπει να χρησιμοποιηθεί δεν πρέπει να είναι unsigned . Χρειαζόμαστε οι μεταβλητές να παίρνουν αρνητικούς αριθμούς…

Ίσως να μην κατάλαβες το σκεπτικό μου διότι πιθανόν δεν το διατύπωσα όπως θα έπρεπε…


Πάντα φιλικά .

_________________
The programming is fantastic !!!!
bxenos


Μέλος από: 18 Αυγ 2008
Μηνύματα: 53

View users profile
ΜήνυμαΣτις: 11 Σεπ 2008 03:30    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

proghostrammer ανέφερε:

Ίσως να μην κατάλαβες το σκεπτικό μου διότι πιθανόν δεν το διατύπωσα όπως θα έπρεπε

εχω διαβασει τους λογους σου και τους εχω καταλαβει.
στην αρχικη εκφωνηση αναφερει ο kinois οτι θελει δομη για την αναλυση και δομη για τη μετατοπιση. δεν ζητα να ειναι ιδιες, δεν επιμενει να ειναι διαφορετικες.
kinois ανέφερε:
1)Υλοποιηση ...με την χρηση δομης(struct)
...
4)Θα διαβαζει 2 αριθμους ...(με την χρηση δομης για την μετατοπιση)


τι θαλεγες αν υπηρχαν τρεις διαφορετικες δομες;
κώδικας:

struct pixel {
      unsigned x,y;
};//οποιοδηποτε σημειο ενος viewport
struct viewport {
      unsigned width,height;
};//αναλυση οθονης ή οποιουδηποτε παραθυρου
struct movement {
      int dx,dy;
};//οποιαδηποτε οριζοντια ή κατακορυφη μετακινηση

δεν λυνονται αρκετα προβληματα validation ετσι;

παντα φιλικα



a017.gif
 Description:
 Filesize:  15.17 KB
 Viewed:  2991 Time(s)

a017.gif


proghostrammer


Μέλος από: 15 Ιουν 2007
Μηνύματα: 14

View users profile Send email to user
ΜήνυμαΣτις: 11 Σεπ 2008 17:28    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Αν υπήρχαν 3 δομές ίσως να ήταν πιο κατανοητός ο αλγόριθμος από πλευρά προγραμματιστή , αλλά από την στιγμή που μπορώ να κάνω την δουλεία μου με μια struct , εγώ θα την έκανα με μία .

Όπως και να έχει όμως η δομή pixel θα πρέπει να ήταν :
παράθεση:

struct pixel {
int x,y;
};//οποιοδηποτε σημειο ενος viewport


Αυτό μπορώ να στο εξηγήσω με μια απλή ερώτηση:

Αν υπήρχε κάποιο σημείο-pixel έξω από την οθόνη και πιο συγκεκριμένα (όπως κοιτάμε την οθόνη) προς αριστερά της πως θα το αναπαριστούσαμε με συντεταγμένες;

Θα χρησιμοποιούσαμε για τον άξονα x αρνητική συντεταγμένη.

Πχ
κώδικας:

sintetagmenes.x = -3
sibtetagmenes.y = 6 


Άρα καταλήγουμε στο συμπέρασμα ότι μπορούμε να χρησιμοποιήσουμε δύο δομές :
κώδικας:

struct pixel {
      int x,y;
};
//Για οποιοδηποτε σημειο ενος viewport &
//για οποιαδηποτε οριζοντια ή κατακορυφη μετακινηση
struct viewport {
      unsigned width,height;
};//αναλυση οθονης ή οποιουδηποτε παραθυρου


ή και τρεις άμα δεν βαριόμαστε να γράφουμε .

Αλλά και πάλι εγώ επειδή θα βαριόμουνα ( )… θα χρησιμοποιούσα μόνο μία . Καλό ε!

Αλλά εντάξει και οι δύο τρόποι σωστοί είναι και είναι δικαίωμα του κάθε ενός να χρησιμοποιήσει όποιον τρόπο θέλει έτσι και αλλιώς έχουν το ίδιο ακριβώς αποτέλεσμα .Περί ορέξεως που λένε …

Φιλικά … ελπίζω να ξανάβοηθήσουμε στην επίλυση κάποιου άλλου προβλήματος!

_________________
The programming is fantastic !!!!
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [14 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 23 Μαρ 2017 00:12 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos