THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: El Niño on May 13, 2009, 02:44:20 am



Title: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 13, 2009, 02:44:20 am
Εργασία D
Ο έλεγχος της εναέριας κυκλοφορίας στην περιοχή ενός αεροδρομίου υλοποιείται με τον ορισμό ενός συστήματος καρτεσιανών συντεταγμένων στο οποίο ο άξονας των x ταυτίζεται με τη διεύθυνση βοράς – νότος και η αρχή των αξόνων με το κέντρο της βάσης στήριξης του ραντάρ του αεροδρομίου. Σε κάθε στιγμή η θέση ενός αεροπλάνου προσδιορίζεται από την απόσταση του r από το ραντάρ και από το αζιμούθιο της θέσης του, ως αζιμούθιο ορίζεται η γωνία που σχηματίζει η ευθεία ραντάρ – αεροπλάνο με τη διεύθυνση του βορά μετρούμενη κατά την αντίστροφη φορά των δεικτών του ωρολογίου (πολικές συντεταγμένες της θέσης του αεροπλάνου ως προς το σύστημα συντεταγμένων που ορίζεται στο αεροδρόμιο). Το στίγμα (γεωγραφικό μήκος και πλάτος) του αεροπλάνου προσδιορίζεται σε μοίρες προσθέτοντας στο γεωγραφικό μήκος του ραντάρ του αεροδρομίου την τιμή 0,009y και στο γεωγραφικό πλάτος του ραντάρ την τιμή 0,009x. Όπου x και y οι καρτεσιανές συντεταγμένες σε χιλιόμετρα του αεροπλάνου σε σχέση με το σύστημα συντεταγμένων που ορίσθηκε στο αεροδρόμιο.
Ζητείται να γραφεί το πρόγραμμα στο οποίο να ορίζεται η συνάρτηση void cl_pos(…) η οποία δέχεται μέσα από τα ορίσματά της την απόσταση και το αζιμούθιο ενός αεροπλάνου και υπολογίζει το στίγμα του και τις καρτεσιανές συντεταγμένες του ως προς το σύστημα συντεταγμένων του αεροδρομίου. Η συνάρτηση main του προγράμματος να διαβάζει το στίγμα του αεροδρομίου, τον αριθμό της πτήσης, την απόσταση και το αζιμούθιο για n αεροπλάνα (Μέγιστη τιμή για το n το 30), να χρησιμοποιεί τη συνάρτηση cl_pos για να υπολογίσει το στίγμα και τις καρτεσιανές συντεταγμένες τους και να εκτυπώνει τον αριθμό της πτήσης και τα στίγματα όλων των αεροπλάνων. Ακόμη να τυπώνει τον αριθμό της πτήσης, το στίγμα και ένα προειδοποιητικό μήνυμα για όσα αεροπλάνα βρεθούν να απέχουν μεταξύ τους απόσταση μικρότερη από 10 χιλιόμετρα. Το στίγμα να τυπώνεται στην οθόνη με τη μορφή μμ.λλ.δδ . Για την μετατροπή του στίγματος σε αυτήν τη μορφή να γραφεί η συνάρτηση void cover(…) η οποία δέχεται ως όρισμα μια γωνία σε μοίρες (μορφή δεκαδικού αριθμού) και επιστρέφει τις ακέραιες μοίρες τα λεπτά και τα δευτερόλεπτα.

Βοηθητικές παρατηρήσεις
 Να μην χρησιμοποιηθούν πουθενά γενικές μεταβλητές.
Οι συναρτήσεις cl_pos και cover δε διαβάζουν τιμές και δεν τυπώνουν αποτελέσματα.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Grecs on May 13, 2009, 02:55:57 am
Οταν λεει γενικες μεταβλητες τι εννοει?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 13, 2009, 03:29:39 am
Αυτες που δηλωνονται πριν τη main και τις "βλεπει" ολο το προγραμμα.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 13, 2009, 03:42:37 am
προβλεπω να πεφτει πολυ κλαμα σε αυτην την εργασια...χαχαχαχα!!!!αρε κορτεση δοκιμιογραφε...εσυ και ο παπανουτσος!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 13, 2009, 13:29:45 pm
Οι μοιρες στο προβλημα μπορουν να παρουν τιμη maximum μεχρι 90 0 (δλδ διψηφιο αριθμο),μεχρι 3600 (δλδ τριψηφιο αριθμο) ή μπορει να παρει και τιμες μεγαλυτερες του 3600 (εως και αριθμους με παραπανω απο τρια ψηφια) ασχετο αν ανακυκλωνονται?

Βασικα μπερδευομαι στο σημειο που θελει τη μορφη και δινει στον αριθμο των μοιρων μεχρι 2 ψηφια (μμ.λλ..κτλ)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 13, 2009, 13:30:55 pm
εγω θα το κανω αρχικα για 360 και μετα αμα δω οτι κατι δεν παει καλα θα το αλλαξω!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ggpyr on May 13, 2009, 14:31:25 pm
Είναι νομίζω 0<=θ<360 αφού λεει

"ως αζιμούθιο ορίζεται η γωνία που σχηματίζει η ευθεία ραντάρ – αεροπλάνο με τη διεύθυνση του βορά μετρούμενη κατά την αντίστροφη φορά των δεικτών του ωρολογίου (πολικές συντεταγμένες της θέσης του αεροπλάνου ως προς το σύστημα συντεταγμένων που ορίζεται στο αεροδρόμιο)"



Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 13, 2009, 14:50:17 pm
ρε σεις πως κολλανε οι μοιρες με τα λεπτα και τα δευτερολεπτα??τι ακριβως πρεπει να κανω??


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: xarxarias on May 13, 2009, 15:03:03 pm
Έχεις το γεωμετρικό μήκος και πλάτος του αεροδρομίου (σε μοίρες!!) και την απόσταση-γωνία του αεροπλάνου.Βρίσκεις το στίγμα (γεωμετρικό μήκος και πλάτος) του αεροπλάνου( που θα είναι και πάλι σε μοίρες) με τον τρόπο που περιγράφεται στην άσκηση.
Στη συνέχεια η διαδικασία της μετατροπής των δεκαδικών μοιρών σε λεπτα κ δευτερόλαπτα έχει ως εξής:
1)Το ακέραιο μέρος των αρχικών μοιρών θα είναι οι μοίρες.
2)Το δεκαδικό μέρος των μοιρών το πολλαπλασιάζεις με 60.
3)Το ακέραιο μέρος του αριθμού που θα προκύψει είναι τα λεπτά και το δεκαδικό του μέρος τα δευτερόλεπτα.
 


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 13, 2009, 15:07:39 pm
τι κουφο ειναι αυτο??απο που προκυπτει αυτη η μετατροπη??


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: xarxarias on May 13, 2009, 15:13:04 pm
Πες οτι μιλάμε για χρόνο.Άμα σου έλεγα να μου πείς πόσες ώρες και πόσα λεπτά είναι 2,5 ώρες, τί θα έκανες για να τα υπολογίσεις??

Θα έλεγες.:
1)Το ακέραιο μέρος των αρχικών μοιρών θα είναι οι μοίρες.

Άρα δύο ώρες!

2)Το δεκαδικό μέρος των μοιρών το πολλαπλασιάζεις με 60.

0,5*60=...30!!!

3)Το ακέραιο μέρος του αριθμού που θα προκύψει είναι τα λεπτά και το δεκαδικό του μέρος τα δευτερόλεπτα.
Άρα 30 λεπτά και.... 0 δευτερόλεπτα!!

Συνεπώς 2,5 ώρες ειναι 2:30:00


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ggpyr on May 13, 2009, 15:17:00 pm
δλδ τα λεπτά και δευτερόλεπτα όταν μετράμε μοίρες είναι στα 60 (π.χ. 15ο στις 360 και 45΄΄ στα 60 = 15,74..)?? ^aytoxeir^


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 13, 2009, 15:17:51 pm
1)Το ακέραιο μέρος των αρχικών μοιρών θα είναι οι μοίρες.
Συμφωνω αλλα εφοσον δεν ξες τον αριθμο των ψηφιων τις γωνιας που σου δινεται με τι θα διαιρεσεις για να βρεις το ακεραιο μερος? Εκει αναφερομαι σε παραπανω post μου και ρωταω για τον αριθμο των ψηφιων που θα εχει η γωνια ωστε να διαιρεσεις με την αναλογη δυναμη του 10..
El nino δεν εχει μονο η ωρα λεπτα και δευτερολεπτα...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: xarxarias on May 13, 2009, 15:18:21 pm
δλδ τα λεπτά και δευτερόλεπτα όταν μετράμε μοίρες είναι στα 60 (π.χ. 15ο στις 360 και 45΄΄ στα 60)?? ^aytoxeir^

Ακριβώς.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: xarxarias on May 13, 2009, 15:21:30 pm
1)Το ακέραιο μέρος των αρχικών μοιρών θα είναι οι μοίρες.
Συμφωνω αλλα εφοσον δεν ξες τον αριθμο των ψηφιων τις γωνιας που σου δινεται με τι θα διαιρεσεις για να βρεις το ακεραιο μερος? Εκει αναφερομαι σε παραπανω post μου και ρωταω για τον αριθμο των ψηφιων που θα εχει η γωνια ωστε να διαιρεσεις με την αναλογη δυναμη του 10..
El nino δεν εχει μονο η ωρα λεπτα και δευτερολεπτα...

Υπάρχει μια συνάρτηση στη βιβλιοθήκη math.h που σου δίνει το δεκαδικό και το ακέραιο μέρος μιας δεκαδικής μεταβλητής.
Είναι η modf.
Για πληροφορίες δες στο
http://www.cplusplus.com/ (http://www.cplusplus.com/)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: LegalizeMe on May 13, 2009, 16:56:36 pm
Παιδες, τις συντεταγμενες του ραντάρ ακα κεντρο του συστήματος θα τις οριζει ο χρηστης απο την αρχη, έτσι ?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ggpyr on May 13, 2009, 17:14:39 pm
"Η συνάρτηση main του προγράμματος να διαβάζει το στίγμα του αεροδρομίου..."


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: LegalizeMe on May 13, 2009, 17:19:57 pm
 :-[
μαγευτηκα απο την λυρικοτητα αυτου του μικρου λογοτεχνικου αριστουργηματος και μου διεφυγε η ουσια.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 18:20:18 pm
Πως ακριβώς χρησιμοποιείται η modf?Γράφω το παρακάτω...
     float minute,second,intpart;   
     minute = modf(phase,&intpart);
     second = modf(minute,&intpart);
     printf ("To stigma tou aeroplanou einai: %f.%f.%f",phase,minute,second);
και μου βγάζει:
40     [warning]passing arg 2 of 'modf' from incompatible pointer type
41     [warning]passing arg 2 of 'modf' from incompatible pointer type
Κοίταξα στ (http://www.cplusplus.com/reference/clibrary/cmath/modf/) και κάνει ακριβώς το ίδιο πράγμα...Τι κάνω λάθος?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 18:26:19 pm
Εντάξει δεν είναι ακριβώς σωστή η ιδέα ακόμα(αφού τα μμ.λλ.δδ δεν θα εμφανίζονται σωστά),αλλά σε πρώτο στάδιο αυτό έπρεπε να δουλεύει


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 19:04:47 pm
Κάτι άλλο,όταν λέει να μην χρησιμοποιηθούν πουθενά μεταβλητές,εννοει...πουθενά πουθενα?Όλα στις συναρτήσεις θα τα κάνουμε?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 13, 2009, 19:05:55 pm
για γενικές μεταβλητές λέει


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:08:07 pm
Syntax error at end of input,και μου χτυπάει ακριβώς πριν το τελευταίο
} του προγράμματος μου.Τι μπορεί να φταίει?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 13, 2009, 22:09:38 pm
Syntax error at end of input,και μου χτυπάει ακριβώς πριν το τελευταίο
} του προγράμματος μου.Τι μπορεί να φταίει?

Κάποιο semicolon?


No code, no honey, no party. :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:09:49 pm
Αφήστε το βρήκα,είχα ξεχάσει κάπου 1 ζεύγος {}


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:13:08 pm
Ερώτηση,τις τυπικές παραμέτρους δεν μπορώ να τις αρχικοποιήσω?ΠΧ
δεν μπορώ να γράψω κάτι του στυλ: int fun(int i,int j,int flag=0); ?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 13, 2009, 22:17:54 pm
Ερώτηση,τις τυπικές παραμέτρους δεν μπορώ να τις αρχικοποιήσω?ΠΧ
δεν μπορώ να γράψω κάτι του στυλ: int fun(int i,int j,int flag=0); ?

στη c++ γίνεται, στη c δε νομίζω

γτ τι θέλεις να κάνεις?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:18:32 pm
 :(


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:20:57 pm
Κάτι του στυλ:να χρησιμοποιώ τη συνάρτηση cl_pos διαφορετικά,ανάλογα σε ποιό σημείο του προγράμματος την έχω,πχ αν την έχω κάτω από την εντολή flag=1; να μου κάνει άλλη δουλειά απ' ότι η κανονική.Αλλά αφού δεν γίνεται να έχω global parameters,μόνο σαν όρισμα μπορώ να χρησιμοποιήσω την flag


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:22:21 pm
Μήπως να χρησιμοποιούσα και 3η συνάρτηση?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Wanderer on May 13, 2009, 22:22:47 pm
Δεν έχω δει την εργασία για να ξέρω σε ποιά συνάρτηση αναφέρεσαι, αλλά αυτό:

int fun(int i,int j,int flag=0);

Είναι στην ουσία αυτό:

int fun(int i,int j) {
  int flag=0;
 blah blah
}


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:24:46 pm
Ναι,αλλά έτσι δεν θα μπορώ να κάνω αυτό που είπα πριν.Στον κώδικα που έγραψες η flag δεν εξαρτάται από εντολές εκτός του μπλοκ της συνάρτησης


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 13, 2009, 22:27:29 pm
βάλε τη flag σαν όρισμα, δε πειράζει


(στη c++ το πρόβλημα σου λύνεται πολύ πιο εύκολα)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:32:47 pm
H εντολή:
void cl_pos(double dist,double phase,double start,double *x,double *y,int flag=0);
βγάζει syntax error before'=' token
και όταν την καλώ για 1η φορά:
cl_pos(dist_num,phase_num,start,&x,&y,flag);
βγάζει flag undeclared first use this function


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 22:34:00 pm
Γμτ,πάντα ξεχνάω να γράφω τους πίνακες [ i ] στα posts και μου τα βγάζει  italicized


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 13, 2009, 22:42:55 pm
H εντολή:
void cl_pos(double dist,double phase,double start,double *x,double *y,int flag=0);
βγάζει syntax error before'=' token
και όταν την καλώ για 1η φορά:
cl_pos(dist_num,phase_num,start,&x,&y,flag);
βγάζει flag undeclared first use this function

αφού δε γίνεται να κάνεις flag=0


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 23:33:21 pm
Δλδ αν κατάλαβα καλά ρε παιδιά,αυτός θέλει να μετατρέψουμε τις πολικές συντεταγμένες που θα δίνει ο χρήστης σε καρτεσιανές,θα μετατοπίζουμε αυτές κατά σύστημα_αναφοράς(όπου σύστημα αναφοράς,είναι οι συντεταγμένες του αεροδρομίου)+0,009χ(ομοίως για ψ) με την cl_pos και μετά θα ξαναμετασχηματίζουμε τις νέες χ και ψ πάλι σε πολικές για να τις γράφουμε με την μορφή μμ.λλ.δδ με την cover?Ας μου εξηγήσει κάποιος παρακαλώ...(απόγνωση)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 13, 2009, 23:56:44 pm
Εργασία D
Ο έλεγχος της εναέριας κυκλοφορίας στην περιοχή ενός αεροδρομίου υλοποιείται με τον ορισμό ενός συστήματος καρτεσιανών συντεταγμένων στο οποίο ο άξονας των x ταυτίζεται με τη διεύθυνση βοράς – νότος και η αρχή των αξόνων με το κέντρο της βάσης στήριξης του ραντάρ του αεροδρομίου. Σε κάθε στιγμή η θέση ενός αεροπλάνου προσδιορίζεται από την απόσταση του r από το ραντάρ και από το αζιμούθιο της θέσης του, ως αζιμούθιο ορίζεται η γωνία που σχηματίζει η ευθεία ραντάρ – αεροπλάνο με τη διεύθυνση του βορά μετρούμενη κατά την αντίστροφη φορά των δεικτών του ωρολογίου (πολικές συντεταγμένες της θέσης του αεροπλάνου ως προς το σύστημα συντεταγμένων που ορίζεται στο αεροδρόμιο). Το στίγμα (γεωγραφικό μήκος και πλάτος) του αεροπλάνου προσδιορίζεται σε μοίρες προσθέτοντας στο γεωγραφικό μήκος του ραντάρ του αεροδρομίου την τιμή 0,009y και στο γεωγραφικό πλάτος του ραντάρ την τιμή 0,009x. Όπου x και y οι καρτεσιανές συντεταγμένες σε χιλιόμετρα του αεροπλάνου σε σχέση με το σύστημα συντεταγμένων που ορίσθηκε στο αεροδρόμιο.
Ζητείται να γραφεί το πρόγραμμα στο οποίο να ορίζεται η συνάρτηση void cl_pos(…) η οποία δέχεται μέσα από τα ορίσματά της την απόσταση και το αζιμούθιο ενός αεροπλάνου και υπολογίζει το στίγμα του και τις καρτεσιανές συντεταγμένες του ως προς το σύστημα συντεταγμένων του αεροδρομίου. Η συνάρτηση main του προγράμματος να διαβάζει το στίγμα του αεροδρομίου, τον αριθμό της πτήσης, την απόσταση και το αζιμούθιο για n αεροπλάνα (Μέγιστη τιμή για το n το 30), να χρησιμοποιεί τη συνάρτηση cl_pos για να υπολογίσει το στίγμα και τις καρτεσιανές συντεταγμένες τους και να εκτυπώνει τον αριθμό της πτήσης και τα στίγματα όλων των αεροπλάνων. Ακόμη να τυπώνει τον αριθμό της πτήσης, το στίγμα και ένα προειδοποιητικό μήνυμα για όσα αεροπλάνα βρεθούν να απέχουν μεταξύ τους απόσταση μικρότερη από 10 χιλιόμετρα. Το στίγμα να τυπώνεται στην οθόνη με τη μορφή μμ.λλ.δδ . Για την μετατροπή του στίγματος σε αυτήν τη μορφή να γραφεί η συνάρτηση void cover(…) η οποία δέχεται ως όρισμα μια γωνία σε μοίρες (μορφή δεκαδικού αριθμού) και επιστρέφει τις ακέραιες μοίρες τα λεπτά και τα δευτερόλεπτα.

Βοηθητικές παρατηρήσεις
 Να μην χρησιμοποιηθούν πουθενά γενικές μεταβλητές.
Οι συναρτήσεις cl_pos και cover δε διαβάζουν τιμές και δεν τυπώνουν αποτελέσματα.
[/font]
XAXA κλαίω :D


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 14, 2009, 00:01:52 am
καλα νταξει ο ανθρωπος δεν υπαρχει μιλαμε!!!ελεος!!!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: diutinus on May 14, 2009, 01:17:00 am
Ότι ξεπέρασε τον εαυτό του σε αυτό το - αξιόλογο και με ενδιαφέρον ύφος  ;D - στοχαστικό δοκίμιο, είναι αλήθεια  :D :D Πάντως το θέμα τελικά δεν νομίζω πως είναι το κομμάτι του προγραμματισμού αλλά η κατανόηση της δομής. Εγώ διαβάζοντας την εκφώνηση κράτησα σημειώσεις και οργάνωσα το πρόγραμμα ανά συνάρτηση, δλδ τι διαβάζει η κάθε μία, τι κάνει και τι δίνει. Τελικά δε βγήκε τόσο αδύνατο. Προτείνω να δείτε το πρόγραμμα 13 από τα παραδείγματα καθώς όλες οι παρατηρήσεις (και καλά βοηθητικές) είναι για να κάνουμε τη μεταφορά μεταβλητών με τους pointers όπως είπε στην τάξη (και έχει και στο προγρ. 13).

Ουσιαστικά το πρόγραμμα έχει:

cl_pos:

Δέχεται: απόσταση, αζιμούθιο
Βρίσκει: στίγμα, καρτεσιανές

main:

Διαβάζει: στίγμα ρανταρ, αρ. πτήσης, απόσταση, αζιμούθιο
Καλεί cl_pos --> βρίσκει στίγμα και καρτεσιανές
Τυπώνει: αρ. πτήσης και στίγμα για κάθε αεροπλάνο
ΑΝ: 2 αεροπλάνα απέχουν < 10 χιλ. --> δίνει: αρ. πτήσης, στίγματα, μήνυμα

cover:
μετατροπή γωνίας από δεκαδική σε μμ.λλ.δδ

Έτσι μπόρεσα να το καταλάβω εγώ τουλάχιστον  :)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 14, 2009, 12:05:05 pm
Ο έλεγχος για το αν 2 αεροπλάνα απέχουν λιγότερο από 10 χιλιόμετρα(δεδομένου ότι έχουμε τις συντεταγμένες τους),εκτός από εμφωλευμένες if πως αλλιώς μπορεί να γίνει?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 14, 2009, 14:56:31 pm
Είχε κανείς άλλος πρόβλημα με την modf?Εμένα μου βγάζει αστρονομικά νούμερα για τις μοίρες(της τάξης των δισεκατομμυρίων :o) και τα λεπτά και δευτερόλεπτα 0.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ggpyr on May 14, 2009, 18:24:54 pm
Γιατί στην συνάρτηση του math.h cos() μου το βγάζει πάντα λάθος?? γράφω απλά π.χ. x=cos(az*PI/180); (και ναι έχω ορίσει PI=3.14)
 :-\ :-\



Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ggpyr on May 14, 2009, 18:28:02 pm
Γιατί στην συνάρτηση του math.h cos() μου το βγάζει πάντα λάθος?? γράφω απλά π.χ. x=cos(az*PI/180); (και ναι έχω ορίσει PI=3.14)
 :-\ :-\



οκ το έλυσα πρέπει να ορίσω το az ως double...μόνο στην c++ δέχεται int,float, κ.τ.λ...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: diutinus on May 14, 2009, 20:08:28 pm
Αυτό είναι καθαρά γνώμη (στοχαστικότατη η εκφώνηση γαρ...  ;D ) αλλά ρωτάω... Οι αποστάσεις σε μέτρα ή χιλιόμετρα;;


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 14, 2009, 21:22:06 pm
Έτσι από περιέργεια,το έχει κάνει κανείς με την modf και να δουλεύει?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: diutinus on May 15, 2009, 00:13:34 am
Yep, και δουλεύει μια χαρά  :) Απλά θέλει κάμποσες μεταβλητές για τα διάφορα μέρη. Δες στο cplusplus πώς συντάσεται και θα το καταλάβεις.  ;)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 15, 2009, 03:12:25 am
Υπαρχει καποιος τροπος να κρατησω τα 2 πρωτα μονο ψηφια ενος δεκαδικου μορφης double?
Δηλαδη να μην μου εμφανιζει ο,τι εχει δεξια της υποδιαστολης χωρις να αλλαξω τη μορφη double γιατι μετα δεν τρεχει το προγραμμα.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Wanderer on May 15, 2009, 10:29:21 am
Εννοείς να εμφανίζει μόνο δύο ψηφία; Ναι υπάρχει και το γράφει και στις σημειώσεις εκεί που μιλάει για τις συναρτήσεις εξόδου.

Για δύο ψηφία γράφεις printf("To apotelesma einai %0.2lf", my_double_variable);

Γίνεται και αυτόματη στρογγυλοποίηση. Αν θες π.χ.3 ψηφία, τότε γράφεις 0.3 αντί για 0.2

(Δεν θυμάμαι αν το lf δηλώνει το double, but you get my point ;) )


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: sarovios on May 15, 2009, 13:49:28 pm
Τωρα ξεκινησα την εργασια και εχω μια γενικη ερωτηση.Εξεταζει και pointers σε αυτη την ασκηση?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 15, 2009, 13:54:29 pm
Εννοείς να εμφανίζει μόνο δύο ψηφία; Ναι υπάρχει και το γράφει και στις σημειώσεις εκεί που μιλάει για τις συναρτήσεις εξόδου.

Για δύο ψηφία γράφεις printf("To apotelesma einai %0.2lf", my_double_variable);

Γίνεται και αυτόματη στρογγυλοποίηση. Αν θες π.χ.3 ψηφία, τότε γράφεις 0.3 αντί για 0.2

(Δεν θυμάμαι αν το lf δηλώνει το double, but you get my point ;) )
Ναι κατι τετοιο ηθελα,ευχαριστω! Βασικα ετσι μου εκτυπωνει μεχρι 2 ψηφια μετα την υποδιαστολη...εγω θελω να εκτυπωνει 2 ψηφια ειτε εχει υποδιαστολη ειτε οχι....παιζει να υπαρχει κατι? (στις σημειωσεις που ακριβως το ειχε???)

Τωρα ξεκινησα την εργασια και εχω μια γενικη ερωτηση.Εξεταζει και pointers σε αυτη την ασκηση?
Pointers εχει και δεν εχει....εμενα μου χρειαστηκε το κομματι που λεει κληση με αναφορα που απο οτι καταλαβα εχει σχεση με pointers αλλα ειναι πριν το αντιστοιχο κεφαλαιο.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: sarovios on May 15, 2009, 14:43:23 pm
Το στιγμα ειναι συντεταγμενες χ,y? Δηλαδη το στιγμα του ρανταρ που διαβαζει η main θα ειναι σε καρτεσιανες (0,0)?Αφου στην αρχη λεει  οτι στην αρχη των αξονων ειναι η βαση στηριξης του ρανταρ


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 15, 2009, 14:46:02 pm
Το στιγμα ειναι συντεταγμενες χ,y? Δηλαδη το στιγμα του ρανταρ που διαβαζει η main θα ειναι σε καρτεσιανες (0,0)?Αφου στην αρχη λεει  οτι στην αρχη των αξονων ειναι η βαση στηριξης του ρανταρ

http://el.wikipedia.org/wiki/%CE%93%CE%B5%CF%89%CE%B3%CF%81%CE%B1%CF%86%CE%B9%CE%BA%CE%AD%CF%82_%CF%83%CF%85%CE%BD%CF%84%CE%B5%CF%84%CE%B1%CE%B3%CE%BC%CE%AD%CE%BD%CE%B5%CF%82


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 15:39:00 pm
http://en.wikipedia.org/wiki/Geographic_coordinate_system (http://en.wikipedia.org/wiki/Geographic_coordinate_system)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 15:47:42 pm
Πάλι από wikipedia:http://en.wikipedia.org/wiki/Geographic_coordinate_conversion (http://en.wikipedia.org/wiki/Geographic_coordinate_conversion)
Κάτω ,κάτω έχει έναν αλγόριθμο για να μετατρέπεις από δεκαδικό σε μμ.λλ.δδ


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 15:54:37 pm
Αν και φαντάζομαι ότι δεν χρειάζονται όλοι αυτοί οι τύποι για να μετατρέψεις από καρτεσιανές σε γεωγραφικό μήκος/πλάτος.Απλά στο γεωγραφικό μήκος πλάτος του αεροδρομίου προσθέτεις 0.009χ και 0.009y αντίστοιχα,όπου χ και y είναι οι καρτεσιανές συντεταγμένες του αεροπλάνου,αφού τις μετατρέψεις από πολικές.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 17:00:45 pm
Ο Κορτέσης οργιάζει… 

Λοιπόν ορισμένες απορίες:

1.   ο βοράς ορίζεται στα δεξιά του άξονα χ;
2.   αρχή τον αξόνων είναι το (0,0) απ’οσο ξέρω και ‘κει βρίσκεται το ραντάρ. Η θέση του αεροπλάνου λεει ότι προσδιοριζεται από την αποσταση του από το ρανταρ και το αζιμουθιο. Όλα αυτά σε σχεση με τις πολικες συντεταγμενες της θεσης του αεροπλανου ως προς ένα συστημα που εχει ορισθει στο αεροδρομιο, δηλαδη με αρχη των νεων αξονων τη θεση του αεροδρομιου το οποιο δεν ταυτιζεται με το ρανταρ και η οποια θεση προσδιοριζεται σε μοιρες(2 αριθμοι;) σε σχεση με τι;;;;;
3.   το στιγμα του αεροπλανου τελικα πως προσδιοριζεται;


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 17:06:58 pm
Γιατί δεν δουλεύει το σκατοπρόγραμμα του κερατά γαμώωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωω ωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωω ωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωω ωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωω ωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωωω ω


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 17:11:21 pm
(http://www.opaquelucidity.com/facepalm.jpg)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 15, 2009, 17:36:17 pm
Ο Κορτέσης οργιάζει… 

Λοιπόν ορισμένες απορίες:

1.   ο βοράς ορίζεται στα δεξιά του άξονα χ;
2.   αρχή τον αξόνων είναι το (0,0) απ’οσο ξέρω και ‘κει βρίσκεται το ραντάρ. Η θέση του αεροπλάνου λεει ότι προσδιοριζεται από την αποσταση του από το ρανταρ και το αζιμουθιο. Όλα αυτά σε σχεση με τις πολικες συντεταγμενες της θεσης του αεροπλανου ως προς ένα συστημα που εχει ορισθει στο αεροδρομιο, δηλαδη με αρχη των νεων αξονων τη θεση του αεροδρομιου το οποιο δεν ταυτιζεται με το ρανταρ και η οποια θεση προσδιοριζεται σε μοιρες(2 αριθμοι;) σε σχεση με τι;;;;;
3.   το στιγμα του αεροπλανου τελικα πως προσδιοριζεται;

1. εγω δεξια τον θεωρησα αν και δεν νομιζω να εχει σημασια.
2-3. δεν βγαζω ακρη τι ρωτας ακριβως,εγω παντως καταλαβα η θεση ενος αεροπλανου στην αρχη δινεται με πολικες συντεταγμενες (το r και το αζιμουθιο),και στη συνεχεια μετατρεπεις αυτες σε καρτεσιανες,και μετα μεσω των καρτεσιανων συντεταγμενων υπολογιζεις το γεωγραφικο μηκος και το γεωγραφικο πλατος (συμφωνα με το τροπο που σου λεει στην εκφωνηση). Ο συνδιασμος του γεωγραφικου μηκους και πλατους ειναι το στιγμα (ειναι δηλαδη δυο αριθμοι και μαλιστα καθε αριθμος ειναι γωνια σε μοιρες).

Αυτο καταλαβα...αν καποιος εχει αλλη γνωμη ας το πει μην μπερδευω και αδικα αλλους.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 17:49:05 pm
να το θεσω αλλιως... το στιγμα αεροδρομιου τι χρειαζεται; ;D


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Andre on May 15, 2009, 18:10:02 pm
να το θεσω αλλιως... το στιγμα αεροδρομιου τι χρειαζεται; ;D

Για να φαίνεται πού βρίσκεται το αεροδρόμιό μας φυσικά! Σε ποιά περιοχή της υδρογείου.
Μπορεί να κάνω λάθος, αλλά μήπως μπερδεύεις τη θέση του αεροδρομίου με το στίγμα?
Η θέση του είναι x=0, y=0 ή αν θες r =0, φ=0. Το στίγμα του μπορεί να είναι οποιοδήποτε.
Επί τη ευκαιρία, το στίγμα του αεροδρομίου είναι λογικά δική μας επιλογή, έτσι?
Άκυρο, για να το διαβάζει η main σημαίνει ότι εμείς το ορίζουμε! :P

Πάντως με αυτό μπερδεύτηκα στην αρχή.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 18:14:28 pm
ααααα!!!!!!!
ποοο... μου λυσες τα χερια αδερφε.... ειχα σκαλωσει τοση ωρα!
να σαι καλα! :)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 18:28:06 pm
να το θεσω αλλιως... το στιγμα αεροδρομιου τι χρειαζεται; ;D

Για να φαίνεται πού βρίσκεται το αεροδρόμιό μας φυσικά! Σε ποιά περιοχή της υδρογείου.
Μπορεί να κάνω λάθος, αλλά μήπως μπερδεύεις τη θέση του αεροδρομίου με το στίγμα?
Η θέση του είναι x=0, y=0 ή αν θες r =0, φ=0. Το στίγμα του μπορεί να είναι οποιοδήποτε.
Επί τη ευκαιρία, το στίγμα του αεροδρομίου είναι λογικά δική μας επιλογή, έτσι?
Πάντως με αυτό μπερδεύτηκα στην αρχή.
Εγώ πάντως κατάλαβα ότι το στίγμα του αεροδρομίου το διαβάζει από τον χρήστη(είναι 2 αριθμοί,γ.μήκος και γ. πλάτος),και μετά το χρησιμοποιεί για να βρει το στίγμα του αεροπλάνου από μία σχέση του στυλ: γ_μήκος_αεροπλάνου=γ_μήκος_αεροδρομίου+0.009*χ (το χ είναι η τετμημένη του αεροπλάνου) και γ_πλάτος_αεροπλάνου=γ_πλάτος_αεροδρομίου+0.009*y(το y είναι η ταταγμένη του αεροπλάνου).Αυτά αφού μετασχηματίσει πρώτα τις πολικές συντεταγμένες(αζιμούθιο και απόσταση) που δίνει ο χρήστης.Ας επιβεβαιώσει κάποιος μπας και βγάλουμε καμιά άκρη...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 18:32:31 pm
συμφωνω μαζι σου... ;)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Andre on May 15, 2009, 18:37:44 pm
να το θεσω αλλιως... το στιγμα αεροδρομιου τι χρειαζεται; ;D

Για να φαίνεται πού βρίσκεται το αεροδρόμιό μας φυσικά! Σε ποιά περιοχή της υδρογείου.
Μπορεί να κάνω λάθος, αλλά μήπως μπερδεύεις τη θέση του αεροδρομίου με το στίγμα?
Η θέση του είναι x=0, y=0 ή αν θες r =0, φ=0. Το στίγμα του μπορεί να είναι οποιοδήποτε.
Επί τη ευκαιρία, το στίγμα του αεροδρομίου είναι λογικά δική μας επιλογή, έτσι?
Πάντως με αυτό μπερδεύτηκα στην αρχή.
Εγώ πάντως κατάλαβα ότι το στίγμα του αεροδρομίου το διαβάζει από τον χρήστη(είναι 2 αριθμοί,γ.μήκος και γ. πλάτος),και μετά το χρησιμοποιεί για να βρει το στίγμα του αεροπλάνου από μία σχέση του στυλ: γ_μήκος_αεροπλάνου=γ_μήκος_αεροδρομίου+0.009*χ (το χ είναι η τετμημένη του αεροπλάνου) και γ_πλάτος_αεροπλάνου=γ_πλάτος_αεροδρομίου+0.009*y(το y είναι η ταταγμένη του αεροπλάνου).Αυτά αφού μετασχηματίσει πρώτα τις πολικές συντεταγμένες(αζιμούθιο και απόσταση) που δίνει ο χρήστης.Ας επιβεβαιώσει κάποιος μπας και βγάλουμε καμιά άκρη...

Τις σχέσεις τις βρίσκω κι εγώ σωστές.

Ο χρήστης εισάγει τις πολικές συντεταγμένες τίνος πράγματος?
Αφού το πρόγραμμα διαβάζει το στίγμα του αεροδρομίου, αυτό εμείς εισάγουμε.
Δηλαδή θα πληκτρολογήσουμε τα μμ.λλ.δδ για γεωγρ. μήκος και το ίδιο για πλάτος.
Νο?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 18:51:47 pm
απλα οπως το βλεπω εγω, θα καλεσεις τη συναρτηση cover μια για να σου πει το πλατος και μια το μηκος σε αυτη τη μορφη, αφου το στιγμα αποτελειται απο δυο αριθμους....



Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Andre on May 15, 2009, 19:03:10 pm
Τα ξαναβλέπω και μάλλον Merlin τα έχεις καλά όλα.
Δίνεις το στίγμα σε μμ.λλ.δδ δύο φορές (γεωγρ. μήκος και πλάτος).
Δίνεις και ρ,θ για κάθε αεροπλάνο.
Μετασχηματίζεις σε x,y και μέσω αυτών βρίσκεις τα στίγματα για κάθε αεροπλάνο μέσω των τύπων που έχεις.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 19:13:17 pm
τελικα αυτη ειναι η λιγοτερο ασαφης εκφωνηση του Κορτεση... ;D


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Andre on May 15, 2009, 19:15:42 pm
απλα οπως το βλεπω εγω, θα καλεσεις τη συναρτηση cover μια για να σου πει το πλατος και μια το μηκος σε αυτη τη μορφη, αφου το στιγμα αποτελειται απο δυο αριθμους....

Άρα εισάγουμε το γεωγραφικό μήκος σαν μία γωνία (από 0 έως 180 μοίρες) σε μορφή δεκαδικού. Το ίδιο και για το πλάτος.
Στην εξίσωση:
γ._μήκος_αεροπλάνου=γ._μήκος_αεροδρομίου+0.009*x ,
το γ. μήκος του αεροπλάνου είναι η γωνία σε μοίρες, όπως την εισάγαμε από το πληκτρολόγιο?
Οπότε βρίσκει το γ. μήκος του αεροπλάνου σε μοίρες επίσης.
Η cover θα χρειαστεί μόνο για τη μετατροπή από απλή γωνία σε μμ.λλ.δδ στο τέλος για εκτύπωση του στίγματος όπως το θέλει ο δάσκαλος.
Καλά τα λέω?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 19:17:15 pm
το γ μηκος το βγαζει η cl_pos....

η cover θα επιστρεψει τη μορφη μμ.λλ.δδ χωρις να την τυπωση η ιδια


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 19:21:09 pm
Eσείς πως κάνατε την μετατροπή από δεκαδικό σε μμ.λλ.δδ?Εμένα η modf μου βγάζει λάθος αποτέλεσμα,μάλλον κάνω κάτι λάθος...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 19:23:39 pm
γενικα εχω προσπερασει προς το παρον αυτο το κομματι.:P
υπαρχει νομιζω ετοιμος αλγοριθμος για την ολη διαδικασια.
στις προηγουμενες σελιδες υπαρχει το λινκ.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 19:24:44 pm
Ναι,δικό μου ήταν το λινκ,απλά βαριέμαι να το μετατρέψω σε κώδικα της C :P.Απλά δεν κατααβαίνω γτ δν βγάζει σωστό αποτέλεσμα η modf.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 19:28:20 pm
κατι ασχετο...
η cl_pos δεχεται συμφωνα με την εκφωνηση μονο την αποσταση και το αζιμουθιο.
πως λοιπον μεσα σ'αυτη θα βρουμε το στιγμα του αεροπλανου με τους παραπανω τυπους οταν δεν εχει εισαχθει το στιγμα αεροδρομιου; :D :D :D


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Andre on May 15, 2009, 19:38:48 pm
κατι ασχετο...
η cl_pos δεχεται συμφωνα με την εκφωνηση μονο την αποσταση και το αζιμουθιο.
πως λοιπον μεσα σ'αυτη θα βρουμε το στιγμα του αεροπλανου με τους παραπανω τυπους οταν δεν εχει εισαχθει το στιγμα αεροδρομιου; :D :D :D

Το εισάγεις λογικά στην αρχή της main.
Και την τιμή που δίνεις τη χρησιμοποιεί στη συνάρτηση.

Στην εξίσωση:
γ._μήκος_αεροπλάνου=γ._μήκος_αεροδρομίου+0.009*x
τα γ. μήκη είναι σε μοίρες έτσι? Δηλαδή η μετατροπή σε μμ.λλ.δδ γίνεται μετά.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 19:40:09 pm
οντως το διαβαζει η main, ομως δεν προβλεπεται ως ορισμα της cl_pos....  :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 19:49:54 pm
Έλα ρε μην κολάς στο τι προβλέπεται και τι όχι.Εδώ η εκφώνηση έχει λογικά σφάλματα,πως γίνεται ας πούμε η cl_pos να ετυπώνει ξέρω γω προειδοποιητικό μύνημα και τα στίγματα των αεροπλάνων και στην υποσημείωση κάτω να λέει ότι οι συναρτήσεις cl_pos και cover να μην τυπώνουν αποτελέσματα?Εγώ πάντως τις χρησιμοποίησα μόνο για να βρίσκουν τα στίγματα και τα μμ.λλ.δδ και τους έδωσα extra ορίσματα με το στίγμα του αεροδρομίου.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 19:51:05 pm
ετσι θα το κανω και γω και δε γαμει.... 8)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 15, 2009, 19:53:02 pm
Εδώ η εκφώνηση έχει λογικά σφάλματα,πως γίνεται ας πούμε η cl_pos να ετυπώνει ξέρω γω προειδοποιητικό μύνημα και τα στίγματα των αεροπλάνων και στην υποσημείωση κάτω να λέει ότι οι συναρτήσεις cl_pos και cover να μην τυπώνουν αποτελέσματα?
Η main το τυπωνει...ειναι καπως τα υποκειμενα και τα ρηματα αλλα το εκτυπωνει παει στο main στην εκφωνηση.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 19:55:15 pm
Memo: να ξαναπαρακολουθήσω Έκφραση-Έκθεση


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 19:57:20 pm
δηλωση συναρτησης:
float cl_pos(float r,float azimuth,float *geografiko_mikos_aeroplanu,float *geografiko_platos_aeroplanu,float *x,float *y);

στη main:
cl_pos(r1,azimuth1,&geografiko_mikos_aeroplanu,&geografiko_platos_aeroplanu,&x,&y);

και μου πεταει το εξης σφαλμα:

E:\Documents and Settings\john\Desktop\D\main.c|27|error: cannot convert `float (*)[30]' to `float*' for argument `3' to `float cl_pos(float, float, float*, float*, float*, float*)'|






Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 15, 2009, 20:00:51 pm
δηλωση συναρτησης:
float cl_pos(float r,float azimuth,float *geografiko_mikos_aeroplanu,float *geografiko_platos_aeroplanu,float *x,float *y);

στη main:
cl_pos(r1,azimuth1,&geografiko_mikos_aeroplanu,&geografiko_platos_aeroplanu,&x,&y);

και μου πεταει το εξης σφαλμα:

E:\Documents and Settings\john\Desktop\D\main.c|27|error: cannot convert `float (*)[30]' to `float*' for argument `3' to `float cl_pos(float, float, float*, float*, float*, float*)'|
To γ.μηκος,το γ.πλατος και το x και το y τα χεις σαν πινακες?? Αν ναι οταν καλεις την cl_pos δεν θελουν &.
Και νομιζω χρειαζεται να μεταφερεις το i...int i δηλαδη.

Memo: να ξαναπαρακολουθήσω Έκφραση-Έκθεση
Nαι...περσι τετοια εποχη ελεγα την ξεφορτωθηκα...αλλα φαινεται ποτε δεν πεθαινει...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 20:02:31 pm
Βασικά checkαρε αν στις εκφράσεις που χρησιμοποιέις το γ_μήκος έχεις βάλει το αστεράκι.Επίσης η cl_pos θέλει να είναι void,άλλα το πρόβλημά σου είναι στο γ_μήκος(είναι pointer)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 20:06:36 pm
βασικα πως καταλαβαινει σε ποιο στοιχειο του πινακα βρισκομαι η συναρτηση; ::) ::)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 20:08:02 pm
Μπορείς να την καλέσεις μέσα σε μία for loop με όρισμα το [ i ] -στο στοιχείο του πίνακα.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 20:12:20 pm
δηλωση συναρτησης:
float cl_pos(float r,float azimuth,float *geografiko_mikos_aeroplanu,float *geografiko_platos_aeroplanu,float *x,float *y);

στη main:
cl_pos(r1,azimuth1,&geografiko_mikos_aeroplanu,&geografiko_platos_aeroplanu,&x,&y);

και μου πεταει το εξης σφαλμα:

E:\Documents and Settings\john\Desktop\D\main.c|27|error: cannot convert `float (*)[30]' to `float*' for argument `3' to `float cl_pos(float, float, float*, float*, float*, float*)'|
To γ.μηκος,το γ.πλατος και το x και το y τα χεις σαν πινακες?? Αν ναι οταν καλεις την cl_pos δεν θελουν &.
Και νομιζω χρειαζεται να μεταφερεις το i...int i δηλαδη.

Memo: να ξαναπαρακολουθήσω Έκφραση-Έκθεση
Nαι...περσι τετοια εποχη ελεγα την ξεφορτωθηκα...αλλα φαινεται ποτε δεν πεθαινει...
Έχω την εντύπωση ότι αυτό που λες με τα & στους πίνακες δεν ιχύει γενικά όταν θέλεις να καλέσεις ένα όρισμα με ανάφορα,ακόμα κιαν το όρισμα είναι στοιχείο του πίνακα.Πρέπει να το θέλει το &.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 20:16:10 pm
το θελει το & του... ;D


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 15, 2009, 20:16:29 pm
Δεν ετρεχε σε μενα και σε ενα παραδειγμα που εχει στις σημειωσεις του Κορτεση εκει στη παραγραφο για Μεταβιβαση πινακα μιας διαστασης σε συναρτηση οταν καλει σε συναρτηση ενα πινακα k που εχει δημιουργησει δεν βαζει &.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 20:18:09 pm
Ίσως εκεί δεν ήθελε να μεταβάλλεται το στοιχείο του πίνακα παρά μόνο στο αντίγραφό του μέσα στην συνάρτηση.Εξαρτάται και από το πρόγραμμα,αν θα βάλεις η όχι &


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 20:19:27 pm
+1 Merlin....

το κομμα για τα δεκαδικα ειναι , ή .;


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 15, 2009, 20:21:45 pm
Ισως δεν ξερω. Απλα δοκιμαστε! Το .


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 20:26:12 pm
μου πεταει πρωτοτυπα σφαλματα σημερα.....

*geografiko_mikos_aeroplanu=geografiko_mikos_aerodromiu+(0,009*x);

και σφαλμα για την εκφραση:
E:\Documents and Settings\\Desktop\D\main.c|35|invalid digit "9" in octal constant|

το ιδιο και με κομμα και τελεια


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 20:27:50 pm
Είναι η τελεία(.).Με το , γενικά ξεχωρίζει μεταβλητές του ίδιου τύπου


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 15, 2009, 20:30:04 pm
Δοκίμασε να βγάλεις τις παρενθέσεις.Για κάποιο λόγο θεωρεί το 0.009*χ στο οκταδικό σύστημα :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 15, 2009, 20:30:34 pm
επρεπε να γραφει ως 0.009*(*χ):P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Wanderer on May 16, 2009, 00:17:01 am
Εννοείς να εμφανίζει μόνο δύο ψηφία; Ναι υπάρχει και το γράφει και στις σημειώσεις εκεί που μιλάει για τις συναρτήσεις εξόδου.

Για δύο ψηφία γράφεις printf("To apotelesma einai %0.2lf", my_double_variable);

Γίνεται και αυτόματη στρογγυλοποίηση. Αν θες π.χ.3 ψηφία, τότε γράφεις 0.3 αντί για 0.2

(Δεν θυμάμαι αν το lf δηλώνει το double, but you get my point ;) )
Ναι κατι τετοιο ηθελα,ευχαριστω! Βασικα ετσι μου εκτυπωνει μεχρι 2 ψηφια μετα την υποδιαστολη...εγω θελω να εκτυπωνει 2 ψηφια ειτε εχει υποδιαστολη ειτε οχι....παιζει να υπαρχει κατι? (στις σημειωσεις που ακριβως το ειχε???)

Χμ δεν σε καταλαβαίνω, θες δλδ από τον αριθμό 34.56789 να εκτυπώνει.. 34 και όχι και κάποια δεκαδικά;; :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Andre on May 16, 2009, 00:43:53 am
..Η συνάρτηση main του προγράμματος να διαβάζει το στίγμα του αεροδρομίου, ..
Με ποια μορφή εισάγετε το στίγμα του αεροδρομίου?
Πληκτρολογείτε μια γωνία (δεκαδικός αριθμός) σε μοίρες ,πχ. 97.465 για γεωγρ. μήκος και μιαν άλλη για πλάτος σε δύο scanf?
Ή με τη μορφή μμ.λλ.δδ ?? (ή κάτι άλλο?)

EDIT: Τελικά το βρήκα! Αφού το στίγμα του αεροπλάνου προσδιορίζεται σε μοίρες από τον τύπο που μας δίνει άρα θα εισάγουμε σε μοίρες το στίγμα του αεροδρομίου.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: gate4 on May 16, 2009, 01:56:18 am
Έτσι από περιέργεια,το έχει κάνει κανείς με την modf και να δουλεύει?

bgazei warning passing arg 2 of............... alla paizei


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 16, 2009, 02:37:29 am
Χμ δεν σε καταλαβαίνω, θες δλδ από τον αριθμό 34.56789 να εκτυπώνει.. 34 και όχι και κάποια δεκαδικά;; :P
Για παραδειγμα στον 34.56789 θελω να εκτυπωνει 34, στον 7.53202 να εκτυπωνει 7.5 και στον 5 να εκτυπωνει 05.
Προς το παρων κανω τη δουλεια μου με αυτο: %.0lf αλλα νομιζω δεν ειναι αυτο που θελω ακριβως...
Και επισης το μοιρες πως μπορει να εκτυπωθει? Μαλλον θα εχει το %e αλλα το 0 θα ειναι σε "0",σε '0' ή σκετο ή κατι αλλο?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Wanderer on May 16, 2009, 11:25:23 am
Αυτό που λες μπορείς να το κάνεις με if-else. Δλδ

Θεωρώντας ότι η τιμή σου είναι θετικός αριθμός:

if(variable<10) {
  if(  (variable - (double) ( (int)variable))>=0.1 ) { //αν το πρώτο δεκαδικό ψηφίο δεν είναι ίσο με μηδέν
    printf("Apotelesma: %0.1lf", variable);
  }

  else {
    printf("Apotelesma: 0%0.0lf", variable);
  }
}
else {
  printf("Apotelesma: %0.0lf", variable);
}


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 16, 2009, 12:18:21 pm
Σωστο ειναι αυτο που λες αλλα ( :D) εχω τρεις μεταβλητες που πρεπει να περασουν απο τα τρια if και επισης εχω 6 printf....
Αυτο σημαινει οτι πρεπει να γραψω 18 φορες την ομαδα εντολων που με εστειλες! Δεν λεω οτι δεν γινεται αλλα μηπως ειναι too much?? Δεν παιζει κατι συντομοτερο που να γραφει 2 ψηφια ο κοσμος να χαλασει?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: xarxarias on May 16, 2009, 15:39:50 pm
Σωστο ειναι αυτο που λες αλλα ( :D) εχω τρεις μεταβλητες που πρεπει να περασουν απο τα τρια if και επισης εχω 6 printf....
Αυτο σημαινει οτι πρεπει να γραψω 18 φορες την ομαδα εντολων που με εστειλες! Δεν λεω οτι δεν γινεται αλλα μηπως ειναι too much?? Δεν παιζει κατι συντομοτερο που να γραφει 2 ψηφια ο κοσμος να χαλασει?
Βασικά τζάμπα πεδεύεσαι..(Το γράφω εδώ για να το δει κ άλλος κόσμος..)
Άν υποθέσουμε οτί καταλάβαμε πως λειτουργεί η modf  και την εφαρμόσαμε σωστα, θα πρεπει να έχουμε ως αποτέλεσμα συνολικά 3 άριθμους περασμένους σε μεταβλητές τύπου double.Η μια θα είναι οι μοίρες, η άλλη τα λεπτά κ η τρίτη τα δευτερόλεπτα.Επειδή ζητά μονο ακέραιους αριθμούς στην επισρτοφή, μπορούμε απλά να έχουμε στη συνάρτηση μετατροπής 3 ακέραιες μεταβλητές (Ή έναν πινακα ακεραίων 3 θέσεων..) και να κάνουμε τη μετατροπή:
integer_variable=(int)double_variable;
Η integer παίρνει απ ΄ευθείας την ακέραια τιμή του double.Ενδέχεται βέβαια η μεταβλητή με τα δευτερόλεπτα να προκύπτει πάντα στη μορφή 0.362...(δηλαδή αριθμός < 1) , το οποίο απλούστατα σημαίνει οτι για να ισχύει ο παραπάνω μετασχηματισμός, θα πρέπει να πούμε

deuterolepta_variable*=100;..

Τώρα για την εκτύπωση του στυλ 06 αντί για 6, κάνε ότι πρότεινε ο Wanderer..Προσωπικά δε το θεωρώ και τόσο σημαντικό..


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Wanderer on May 16, 2009, 15:47:53 pm
Σωστο ειναι αυτο που λες αλλα ( :D) εχω τρεις μεταβλητες που πρεπει να περασουν απο τα τρια if και επισης εχω 6 printf....
Αυτο σημαινει οτι πρεπει να γραψω 18 φορες την ομαδα εντολων που με εστειλες! Δεν λεω οτι δεν γινεται αλλα μηπως ειναι too much?? Δεν παιζει κατι συντομοτερο που να γραφει 2 ψηφια ο κοσμος να χαλασει?
Όχι βρε δεν είναι έτσι όπως τα λες :P

Κάνε μια καινούργια συνάρτηση void myprint(lf var) που μέσα θα έχει τις εντολές που σου έδωσα και τελείωσες!.

Έτσι αν έχεις να διαβάσεις τρεις μεταβλητές απλά γράφεις myprint(my_variable); τρεις φορές!

Δλδ απλά αντί για printf χρησιμοποιείς τη myprint.
...............

Τονίζω ότι δεν ξέρω τί θες να κάνεις και αν αυτό που κάνεις λύνει την άσκηση σωστά. Εγώ σου απαντάω μόνο στο πώς γίνεται αυτό που θες.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 16, 2009, 16:17:30 pm
Τι να συμπεράνω όταν μία εντολή του στυλ:
printf("\nPthsh %d : thesh gps : %f , %f\nKartesianes: %f , %f",fly_num,longt,latt,x,y);
μου βγάζει στην κονσόλα το εξής αποτέλεσμα?:
Pthsh 2 :thesh gps : -1.#QNANO, -1.#QNANO
Kartesianes: -1.#QNANO , -1.#QNANO


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 16, 2009, 16:19:09 pm
printf("\nPthsh %d : thesh gps : %f , %f\nKartesianes: %f , %f",fly_num[ i ],longt[ i ],latt[ i] ,x[ i ],y[ i] );
Ξαναpostαρα την εντολή γτ μαλακίζεται όταν γράφω τους πίνακες με [ i ] νομίζει ότι θέλει italic


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Wanderer on May 16, 2009, 16:22:46 pm
Είδα λίγο τί λέει η άσκηση, κάποιες παρατηρήσεις:

1.Δεν λέει υποχρεωτικά να είναι double οι μεταβλητή με τις μοίρες, μπορείτε να βάλετε και float.

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

Για τις μοίρες moires=(int)arxiki

Για τα λεπτά: lepta=(int)(60* (arxiki - (double)moires))

Για τα δευτερόλεπτα: deuterolepta= (int)(60*(60* (arxiki - (double)moires) - (double)lepta)) //Παίρνω δεκαδικό του λεπτού, το πολλαπλασιάζω επι 60 και το κάνω ακέραιο.

3.Έτσι Hurin η τελικά το μόνο που χρειάζεται και για τη μορφοποίησή σου είναι:

if(variable<10) {
  printf("Apotelesma 0%d", variable);
}
else {
  printf("Apotelesma %d", variable);
}

4.Για τις μοίρες, λογικά πρέπει να βγαίνουν μικρότερες από 360. Π.χ.

while(moires>=360) {
  moires=moires-360
}
............

Ελπίζω να βοήθησα.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Wanderer on May 16, 2009, 16:27:01 pm
Μέρλιν νομίζω στον Dev αν έβαζες \n εν τω μέσω μιας πρότασης είχε προβλήματα, δοκίμασε να το σπάσεις σε δύο printf μήπως διορθωθεί..

Σίγουρα είναι float και όχι double οι μεταβλητές σου?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 16, 2009, 16:33:33 pm
Βασικά είναι όλες double,επειδή μάλλον έχασα επεισόδια,τι παίζει με αυτές?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Wanderer on May 16, 2009, 16:36:35 pm
Τί να παίξει; τπτ :P

Μήπως επειδή είναι double και όχι float πρέπει να βάλεις %lf και όχι %f για να σου τις εμφανίσει σωστά.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 16, 2009, 16:38:44 pm
Οk nvm άκυρη ερώτηση,thx πάντως,τώρα φαίνεται τέλειο :)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: timon on May 16, 2009, 17:11:25 pm
3.Έτσι Hurin η τελικά το μόνο που χρειάζεται και για τη μορφοποίησή σου είναι:

if(variable<10) {
  printf("Apotelesma 0%d", variable);
}
else {
  printf("Apotelesma %d", variable);
}

4.Για τις μοίρες, λογικά πρέπει να βγαίνουν μικρότερες από 360. Π.χ.

while(moires>=360) {
  moires=moires-360
}
............

Ελπίζω να βοήθησα.
Οντως λεει ακεραιες μοιρες,λεπτα και δευτερολεπτα!
Βοηθησες και με το παραπανω Wanderer!  Thanx again!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 16, 2009, 21:41:10 pm
Μια τελευταία ερώτηση για επιβεβαίωση.Εφόσον η συνάρτηση cover δεν τυπώνει αποτελέσματα,πρέπει να καλέσουμε τα ορίσματά της με αναφορά ούτως ώστε  να επιστρέφουν στην main και να τυπώνονται από κει,άρα τα ορίσματα της cover είναι pointers σωστά?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Salvation on May 16, 2009, 21:56:17 pm
Μια τελευταία ερώτηση για επιβεβαίωση.Εφόσον η συνάρτηση cover δεν τυπώνει αποτελέσματα,πρέπει να καλέσουμε τα ορίσματά της με αναφορά ούτως ώστε  να επιστρέφουν στην main και να τυπώνονται από κει,άρα τα ορίσματα της cover είναι pointers σωστά?

Σωστά. Τη συγκεκριμένη άσκηση να την προσέξετε πολύ. Ο Κορτέσης έχει κόλλημα με κάτι τέτοιες (κλήση με αναφορά κτλ). Πάντα βάζει μια τέτοια στο τέλος. Ακούστε και κανά παλιο 8)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: diutinus on May 17, 2009, 01:54:00 am
Και στο μάθημα αν δεν κάνω λάθος είπε "Προσέξτε την κλήση με αναφορά! Είναι σημαντική!" (#include <hintOleOle.h>  :D)  :)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Mr K on May 17, 2009, 12:21:30 pm
Οταν λέμε στίγμα εννοουμε οτι θα διαβαζει 2 αριθμους(γεωγραφικο πλατος αεροδρομιου και γεωγραφικο μηκος αεροδρομιου)?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 17, 2009, 12:40:13 pm
η ασκηση θελει οπωσδηποτε ποιντερς για να λυθει???δεν υπαρχει αλλος τροπος??


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Mr K on May 17, 2009, 12:40:53 pm
Ακυρη η απορια ξαναδιαβασα το φορουμ


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 13:56:13 pm
for(i=0;i<N-1;i++){
    printf("Dose arithmo ptisis gia to %d aeroplano.\n",i+1)
    scanf("%d",&flight);
    printf("Dose apostasi apo aerodromio kai azimouthio gia to %d aeroplano.\n",i+1)
    scanf("%f%f",&r,&az);
    int cl_pos(r,az);
    printf("To %d aeroplano exei arithmo ptisis %d kai stigma %f, %f.\n",i+1,flight,sx,sy);
  }
 
 
 
             
                         
                                     
                                                 
                                                             
                                                                         
                                                                                     
                                                                                                 
                                                                                                             
                                                                                                                         
int cl_pos(float r,float az){
  float y,x,sx,sy;
  y=cos(az)*r;
  x=sin(az)*r;
  sx=portx+0,009*x;
  sy=porty+0,009*y;
  }     
  return 0;
}   



Παιδιά θέλω κάποιον να μου εξηγήσει πως να χρησιμοποιήσω σωστά τη 2η συνάστηση μεσα στην main.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 17, 2009, 14:03:14 pm
for(i=0;i<N-1;i++){
    printf("Dose arithmo ptisis gia to %d aeroplano.\n",i+1)
    scanf("%d",&flight);
    printf("Dose apostasi apo aerodromio kai azimouthio gia to %d aeroplano.\n",i+1)
    scanf("%f%f",&r,&az);
    int cl_pos(r,az);
    printf("To %d aeroplano exei arithmo ptisis %d kai stigma %f, %f.\n",i+1,flight,sx,sy);
  }
 
 
 
             
                         
                                     
                                                 
                                                             
                                                                         
                                                                                     
                                                                                                 
                                                                                                             
                                                                                                                         
int cl_pos(float r,float az){
  float y,x,sx,sy;
  y=cos(az)*r;
  x=sin(az)*r;
  sx=portx+0,009*x;
  sy=porty+0,009*y;
  }     
  return 0;
}   



Παιδιά θέλω κάποιον να μου εξηγήσει πως να χρησιμοποιήσω σωστά τη 2η συνάστηση μεσα στην main.

Πρέπει η συνάρτηση να γίνει με κλήση με αναφορά (αν έχετε κάνει) ή να αποθηκεύεις τις τιμές σε ένα πίνακα και μετά να επιστρέφεις στο τέλος τον πίνακα με return , ώστε να έχεις τις τιμές και στη main.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 14:05:56 pm
Θα μπορούσες να κάνεις έναν έλεγχο με εμφωλευμένες for όπως έκανα εγώ για να checkάρεις ,αν 2 αεροπλάνα απέχουν <10km χρησιμοποιώντας τον πίνακα, με τις καρτεσιανές τους συντεταγμένες με τον γνωστό τύπο για την απόσταση 2 σημείων, με μία εντολή if η οποία αν αληθεύει να καλείς την cover.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 14:06:52 pm
Για την cover δεν ρώτησες?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 14:07:23 pm
Προσπάθω να καταλάβω την κλήση με αναφορά μέσα απο τις σημειώσης και έχει σταματήσει το μυαλό μου. Μπορέις να με βοηθήσεις για το συγκεκριμένο παράδειγμα? Ο 2ος τρόπος που προτείνεις απαγορεύεται γιατί η cl_pos πρέπει να είναι void.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 14:08:25 pm
Για την cover δεν ρώτησες?
Όχι φίλε, για την main και την cl_pos.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 14:13:50 pm
Γενικά με την κλήση με αναφορά στην συνάρτηση δεν περνάνε μόνο αντίγραφα των μεταβλητών αλλά οι ίδιες οι διευθύνσεις τους,έτσι ώστε ότι μεταβολές γίνονται στο block της συνάρτησης να επηρρεάζουν και  τις μεταβλητές που δώθηκαν ως ορίσματα από την main.Στο συγκεκριμένο παράδειγμα θέλεις κλήση με αναφορά απλά και μόνο επειδή οι συναρτήσεις δεν πρέπει να τυπώνουν αποτελέσματα.Για να κάνεις κλήση με αναφορά δηλώνεις τις τυπικές παραμέτρους ως pointers ως εξής:
void cl_pos(.......float *x,float *y); //το πρότυπο της συνάρτησης
cl_pos(......&x,&y);//κλήση
void cl_pos(.....float *x,float *y){.....}//σώμα συνάρτησης


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 17, 2009, 14:17:53 pm
κληση με αναφορα με απλα λογια:

οταν δηλωνεις πριν τη main τη συναρτηση και οταν γραφεις το σωμα της μετα τη συναρτηση main, τοτε βαζεις στα ορισματα το * για να επιστρεψεις τιμες στη main.
επισης στις θεσεις που βρισκεται ορισμα που θα υποστει  αλλαγη τιμης εκ της καλουμενης συναρτησεως, θα βαζεις μπροστα το &.

πχ:
#include......
void blabla(int papaki, float babulas, int *k);
main()
{
int ayto_tha_dosei_timi_sto_k, avakas;
float taleporos;
...
blabla(avakas, taleporos,&ayto_tha_dosei_timi_sto_k);
}
void blabla(int papaki, float babulas, int *k)
{
papaki=babulas+(*k)
*k=babulas^babulas
...
}

Στο παρανω παραδειγμα θελουμε η ayto_tha_dosei_timi_sto_k να παρει την τιμη που επιστρεφει η συναρτηση blabla
γραφουμε οταν οριζουμε τη συναρτηση πανω και κατω απο τη main τη μεταβλητη k με το συμβολο *
οταν την καλουμε χρησιμοποιουμε το συμβολο & στην αντιστοιχη θεση.
επισης οταν στη συναρτηση που γραψαμε εχουμε εντολες με μια μεταβλητη με το συμβολο *, παντα το χρησιμοποιουμε


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 17, 2009, 14:21:23 pm
Για την cover δεν ρώτησες?
Όχι φίλε, για την main και την cl_pos.

στείλε με pm ότι έχεις γράψει για να καταλάβω καλύτερα τι θέλεις


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 14:29:34 pm
#include <stdio.h>
#include <math.h>
void cl_pos(float *r[30],float *az[30]);
int main(){
  float y[30],x[30],sx[30],sy[30];
  float portx,porty;
  float az[30],r[30];
  int flight[30];
  int N,i;
  printf("Dose stigma aerodromiou, x kai y.");
  scanf("%f%f",&portx,&porty);
  if(portx<0||porty<0){
    printf("Prepei na doseis thetikes times gia x kai y!!!");
  }
  printf("Gia posa aeroplana theleis na doulepseis? Apo 1 mexri 30");
  scanf("%d",&N);
  for(i=0;i<N-1;i++){
    printf("Dose arithmo ptisis gia to %d aeroplano.\n",i+1);
    scanf("%d",&flight);
    printf("Dose apostasi apo aerodromio kai azimouthio gia to %d aeroplano.\n",i+1);
    scanf("%f%f",&r,&az);
    cl_pos(&r[30],&az[30]);
    printf("To %d aeroplano exei arithmo ptisis %d kai stigma %f, %f.\n",i+1,flight,sx,sy);
  }

 
void cl_pos(float *r[30],float *az[30]){
  float y[30],x[30],sx[30],sy[30];
  y=cos(*az)*(*r);
  x=sin(*az)*(*r);
  sx=portx+0,009*x;
  sy=porty+0,009*y;
}     

Ευχαριστώ πολύ, μου λύσατε τον εγκεφαλο! :o Η cl_pos πως γίνεται να βλέπει τα i?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 14:32:17 pm
Μπορείς να το βάλεις σαν όρισμα της.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 14:32:40 pm
Γιατί να το βλέπει όμως?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 14:37:20 pm
Aφού τη χρησιμοποιώ μέσα στην επανάληψη.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 14:39:35 pm
#include <stdio.h>
#include <math.h>
void cl_pos(float *portx,float *porty,int *i,float *r[30],float *az[30]));
int main(){
  float y[30],x[30],sx[30],sy[30];
  float portx,porty;
  float az[30],r[30];
  int flight[30];
  int N,i;
  printf("Dose stigma aerodromiou, x kai y.");
  scanf("%f%f",&portx,&porty);
  if(portx<0||porty<0){
    printf("Prepei na doseis thetikes times gia x kai y!!!");
  }
  printf("Gia posa aeroplana theleis na doulepseis? Apo 1 mexri 30");
  scanf("%d",&N);
  for(i=0;i<N-1;i++){
    printf("Dose arithmo ptisis gia to %d aeroplano.\n",i+1);
    scanf("%d",&flight);
    printf("Dose apostasi apo aerodromio kai azimouthio gia to %d aeroplano.\n",i+1);
    scanf("%f%f",&r,&az);
    cl_pos(float &portx,float &porty,int &i,&r[30],&az[30]);
    printf("To %d aeroplano exei arithmo ptisis %d kai stigma %f, %f.\n",i+1,flight,sx,sy);
  }

 
void cl_pos(float *portx,float *porty,int *i,float *r[30],float *az[30]){
  float y[30],x[30],sx[30],sy[30];
  y=cos(*az)*(*r);
  x=sin(*az)*(*r);
  sx=*portx+0,009*x;
  sy=*porty+0,009*y;
}     
 
             
Αυτό είναι μια βελτιωμένη έκδοση :) Μπορείς να μου πεις τι λάθη έχει? sy sx y και x είναι πίνακες. Σάλατα τα έκανα!                         


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 14:47:19 pm
Στο πρόγραμμα που έγραψες η cl_pos δεν χρησιμοποιεί το i πουθενά,φαντάζομαι το βλέπεις,άρα δεν υπάρχει λόγος να το βάλεις σαν όρισμά της :).Επίσης τον έλεγχο για θετικές τιμές στο διάβασμα των portx porty καλό είναι να τις κάνεις με while.Με την if θα κάνει μόνο μια φορά τον έλεγχο και αν δώσεις 2η φορά πάλι αρνητική τιμή θα το αγνοήσει


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 14:49:50 pm
Το i βρίσκεται στους πίνακες που ανέφερα παραπάνω.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 14:59:51 pm
Στην συνάρτησή σου περνάς το i-στο στοιχείο του πίνακα,όχι το ίδιο το i.Δεν υπάρχει κανένας απολύτως λόγος να περάσεις και το i αφού δεν χρησιμεύει σε καμία εκφραση από αυτές που είναι μέσα στο block της συνάρτησης


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 15:05:34 pm
Eχεις δίκαιο φίλε, και γενικά είσαι δυνατός παίχτης προγραμματιστής.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 15:06:39 pm
(redface) :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 17, 2009, 15:10:09 pm
Νομίζω μετά απο πολύ σκέψη ότι δε χρειάζεται κλήση με αναφορά στο προηγούμενο ποστ.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 15:29:02 pm
Αν εννοείς το:
void cl_pos(float *portx,float *porty,int *i,float *r[30],float *az[30]){
  float y[30],x[30],sx[30],sy[30];
  y=cos(*az)*(*r);
  x=sin(*az)*(*r);
  sx=*portx+0,009*x;
  sy=*porty+0,009*y;
}
τα r[ i ] και az[ i ] δεν χρειάζονται αναφορά αφού ούτως η άλλως δεν μεταβάλλεται η τιμή τους.Ούτε τα portx και porty θέλουν.Όσο για τα sx,sy ,αυτά θέλουν κλήση με αναφορά γτ η συνάρτηση τα υπολογίζει μέσα από τις εκφράσεις της.(σκέψου το και έτσι:πριν καλέσεις την συνάρτηση τα sx και sy δεν έχουν τιμή,επομένως περιμένουν μια τιμή από την συνάρτηση ως τυπικές παράμετροι.Επίσης μόλις είδα ότι καλείς τα r[ i ] και az[ i ] με αριθμούς.Αυτό είναι λάθος επειδή στην συνάρτηση θα μεταφερθούν μόνο τα r[30] και az[30],και τα άλλα θα μείνουν ως έχουν.Να το κάνεις κάπως έτσι:void cl_pos(float *portx,float *porty,int *i,float *r[ i ],float *az[ i ])


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 15:30:40 pm
Χωρίς το int i φυσικά... :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 15:32:00 pm
Επίσης μιας και το πρόγραμμα θέλει να τυπώνει και καρτεσιανές συντεταγμένες αν θυμάμαι καλά,καλό θα είναι να έχεις και τα x και y με αναφορά...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 15:33:56 pm
Άκυρο,ξαναδιάβασα την εκφώνηση και δεν θέλει απαραίτητα να τυπώνει τις καρτεσιανές συντεταγμένες,μόνο να τις υπολογίζει,επομένως αυτές αν θες αφησέ τες έτσι.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Captain Mixos on May 17, 2009, 17:01:53 pm
το ερωτημα που ζηταει την αποσταση αναμεσα σε δυο αεροπλανα δεν υλοποιειται αφου παιζει ρολο το τεταρτημοριο στο οποιο βρισκεται το καθε αεροπανο αλλα κ η γωνια του με τον αξονα....θελει πολυ δουλεια για να λυθει.....


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 17:04:47 pm
Μπορείς να το κάνεις με τις καρτεσιανές τους συντεταγμένες,όχι απαραίτητα με τις πολικές(αν πιάνω ακριβώς αυτό που θες να πεις)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Rocket on May 17, 2009, 17:23:06 pm
Εγω παντως νομιζω πως θα επρεπε να πουμε στον κ.Κορτέση να βαζει πιο "φυσιολογικά" προγραμματα....
Δεν έλεγε πως και καποιος που να μη ξερει τιποτα απο προγραμματισμο θα μαθει και να μην ανυσηχει? :'(


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Captain Mixos on May 17, 2009, 17:25:43 pm
με τις καρτεσιανες το κανω αλλα σκεψου μπορει δυο αεροπλανα να εχουν ακριβως ιδια αποσταση απο το ρανταρ κ το ενα να βρισκεται το πρωτο τεταρτημοριο ενω το αλλο στο δευτερο....η αποσταση τους βγαινει ιση με 0...τι σημαινει οτι συγκρουστηκαν? οχι αφου υπαρχει μεταξυ τους κ μια γωνια φ....με πιανεις?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: il capitano on May 17, 2009, 17:28:24 pm
Δεν κατάλαβες.
Μπορείς να μετατρέψεις τις πολικές σε καρτεσιανές με τους γνωστους τύπους:
x=r*cosθ
y=r*sinθ
και τώρα παίρνεις κανονικά την απόσταση τους οπότε ο μόνος τρόπος για να συγκρουστούν είναι να είναι στο ίδιο σημείο


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 17, 2009, 17:30:33 pm
με καρτεσιανες δεν υπαρχει τετοιο θεμα, με πολικες πιστευω οτι θα ειναι πολυ πιο δυσκολο. Πονηρα: ζηταει καρτεσιανες να υπολογιστουν...οποτε τις εχεις και απο κει και περα ειναι λιγες γραμμες... ;)
βρισκεις απλα την αποσταση τους και κοιτας αν ειναι <10... αυτο...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Captain Mixos on May 17, 2009, 17:32:36 pm
οκ υπηρχε κι αλλος τροπος να το κανω το σκεφτομουν καπως πολυπλοκα...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 18:23:44 pm
με καρτεσιανες δεν υπαρχει τετοιο θεμα, με πολικες πιστευω οτι θα ειναι πολυ πιο δυσκολο. Πονηρα: ζηταει καρτεσιανες να υπολογιστουν...οποτε τις εχεις και απο κει και περα ειναι λιγες γραμμες... ;)
βρισκεις απλα την αποσταση τους και κοιτας αν ειναι <10... αυτο...
Μικρότερη από 10 ή 10000?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Captain Mixos on May 17, 2009, 19:18:35 pm
με καρτεσιανες δεν υπαρχει τετοιο θεμα, με πολικες πιστευω οτι θα ειναι πολυ πιο δυσκολο. Πονηρα: ζηταει καρτεσιανες να υπολογιστουν...οποτε τις εχεις και απο κει και περα ειναι λιγες γραμμες... ;)
βρισκεις απλα την αποσταση τους και κοιτας αν ειναι <10... αυτο...
Μικρότερη από 10 ή 10000?
απο 10....αφου τις συντεταγμενες τις δινουμε σε klm


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΚΗΜΜΥ on May 17, 2009, 19:41:42 pm
επειδη εχω κολλησει τελειως...
τι συνθηκη παιρνουμε για την αποσταση <10??


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: il capitano on May 17, 2009, 19:44:19 pm
d=sqrt((x1-x2)^2+(y1-y2)^2)<10

Όπου x1 y1 x2 y2 οι καρτεσιανές συντεταγμένες των αεροπλάνων ως προς το αεροδρόμιο


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΚΗΜΜΥ on May 17, 2009, 19:45:24 pm
ευχαριστω πολυ!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 17, 2009, 20:02:49 pm
Ουσιαστικά το πρόγραμμα έχει:

cl_pos:

Δέχεται: απόσταση, αζιμούθιο
Βρίσκει: στίγμα, καρτεσιανές

main:

Διαβάζει: στίγμα ρανταρ, αρ. πτήσης, απόσταση, αζιμούθιο
Καλεί cl_pos --> βρίσκει στίγμα και καρτεσιανές
Τυπώνει: αρ. πτήσης και στίγμα για κάθε αεροπλάνο
ΑΝ: 2 αεροπλάνα απέχουν < 10 χιλ. --> δίνει: αρ. πτήσης, στίγματα, μήνυμα

cover:
μετατροπή γωνίας από δεκαδική σε μμ.λλ.δδ
Ποιος θα μου τα εξηγησει; :D :D :D :D :D :D :D :D


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 17, 2009, 20:05:28 pm
διαβασε προηγουμενες σελιδες...κατι θα καταλαβεις λογικα!!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΚΗΜΜΥ on May 17, 2009, 20:08:56 pm
το πραμα θελει πολύ σκέψη....
διαβασε 2 φορες την εκφωνηση, ασ'το να ωριμασει
κ ελα σε καμια ωρα να καταλαβεις περισσοτερα    :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 17, 2009, 21:07:54 pm
d=sqrt((x1-x2)^2+(y1-y2)^2)<10

Όπου x1 y1 x2 y2 οι καρτεσιανές συντεταγμένες των αεροπλάνων ως προς το αεροδρόμιο

Το "^" είναι XOR για bits, θυμίζω. ::)

Υπάρχει η POW της math.h :)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 17, 2009, 21:09:37 pm
αυτο εννοουσε, τον ξερω 8)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 17, 2009, 21:41:43 pm
Aπο εκφωνηση
Quote
να χρησιμοποιεί τη συνάρτηση cl_pos για να υπολογίσει το στίγμα και τις καρτεσιανές συντεταγμένες τους και να εκτυπώνει τον αριθμό της πτήσης και τα στίγματα όλων των αεροπλάνων
το υπογραμμισμενο θα γινεται στην main ή στην cl_pos??? :???:


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Merlin on May 17, 2009, 22:02:19 pm
Στην main


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: nasia!! on May 17, 2009, 23:10:33 pm
d=sqrt((x1-x2)^2+(y1-y2)^2)<10

Όπου x1 y1 x2 y2 οι καρτεσιανές συντεταγμένες των αεροπλάνων ως προς το αεροδρόμιο

Για να  το κάνω αυτό,σημαίνει πως θα έχω κάπου κρατημένες τις τιμές αυτές,και για να το κάνω αυτό,θέλει να έχω οπωσδήποτε πίνακες..πως θα κάνω πίνακες την στιγμή που αυτός λεει πως δεν μπορούμε πουθενα να χρησιμοποιήσουμε γενικες μεταβλητές? :???:


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 17, 2009, 23:12:02 pm
 ^tomato^ ^tomato^
Δεν εννοει οτι δε μπορεις να χρησιμοποιησεις πινακες 8)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: nasia!! on May 17, 2009, 23:12:44 pm
^tomato^ ^tomato^
Δεν εννοει οτι δε μπορεις να χρησιμοποιησεις πινακες 8)

Σκάσε ρε,εγώ αυτό κατάλαβα..και πού τους δηλώνεις τους πίνακες δηλαδή?μέσα στην μαιν?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 17, 2009, 23:13:34 pm
Εεεεεεεεδω
1-0
 ^kaloe^ ^kaloe^ ^kaloe^ ^kaloe^


Ε, προφανως μεσα στην main ;)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 17, 2009, 23:55:13 pm
"Γενικές μεταβλητές" είναι μάλλον η Κορτέσια μετάφραση των Global Variables...
Απλά περνάτε ό,τι θέτε με ορίσματα.


Ο Κορτέσης έκανε ιδιαίτερα στον Stallman (http://en.wikipedia.org/wiki/Richard_Stallman), το ξέρετε;


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: erotokritos on May 18, 2009, 00:06:25 am
cl_pos(float portx,float porty,float &az,float &r);
 
και μου βγαζει μηνυμα σφαλμα
expected primary expression before float

εχεισ κανεισ καμια ιδεα?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 18, 2009, 00:07:19 am
Μήπως πρέπει να βάλεις *az και *r;


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: erotokritos on May 18, 2009, 00:10:38 am
εδω καλω την συναρτηση και νομιζω οτι οταν την καλεισ πρεπει να βαζεισ &

στο τελοσ οπου εχω την συναρτηση βαζω *
void cl_pos(float portx,float porty,float *AZ,float *R){
  float y[30],x[30],sx[30],sy[30];
  int i;
  y=cos(*AZ)*(*R);
  x=sin(*AZ)*(*R);
  sx=portx+0,009*x;
  sy=porty+0,009*y;

}       


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: erotokritos on May 18, 2009, 00:12:50 am
εχω κανει ενα πινακα (μεσα στην main) οπου αποθηκευονται το r και το az.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 18, 2009, 00:13:18 am
Α, εκεί την καλείς. :)


Χαζή ερώτηση, αλλά την έχεις ορίσει και πριν την main την συνάρτησή σου, έτσι;
Και σου σκάει στην γραμμή που την καλείς; :-\
Αυτό δεν το 'χω ξαναδει και λίγο που γκούγκλαρα έπεσα σε κάτι περίεργα της C++ :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: erotokritos on May 18, 2009, 00:16:19 am
ναι την εχω ορισει και πριν την main . καποιο λαθοσ πρεπει να εχω εδω
cl_pos(float portx,float porty,float &az,float &r);
αλλα δε ξερω τι αλλο να κανω!!!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: erotokritos on May 18, 2009, 00:18:22 am
χρειαζεται να βαλω ποιντερ μπροστα απο το portx kai porty? νομιζω οτι ειναι σταθερα οποτε καθε φορα ειναι τα ιδια


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 18, 2009, 00:20:24 am
α, λολ, όχι ρε συ, τώρα το 'δα.

Μπορείς να την καλέσεις έτσι:

Code:
cl_pos(portx, porty, &az, &r);


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


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: erotokritos on May 18, 2009, 00:45:56 am
το az και το r ειναι πινακεσ ..γι αυτο νομιζω οτι πρεπει να τουσ δηλωσω καπωσ ετσι
cl_pos(float portx,float porty,float &az,float &r);


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: erotokritos on May 18, 2009, 00:47:36 am
λαθοσ το προηγουμενο νομιζω!
συτο νομιζω ειναι πιο σωστο
cl_pos(float portx,float porty,float &az [ i ],float & r[ i ]);


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 18, 2009, 00:56:21 am
το az και το r ειναι πινακεσ ..γι αυτο νομιζω οτι πρεπει να τουσ δηλωσω καπωσ ετσι
cl_pos(float portx,float porty,float &az,float &r);

ΟΙ δηλώσεις των τύπων γίνονται στις δηλώσεις των συναρτήσεων, όχι στην κλήση τους.

Επίσης με το az περνάς ένα στοιχείο του az, όχι όλο τον πίνακα.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Anastacia on May 18, 2009, 01:00:40 am
Το βιβλίο που μας έδωσαν για τη C είναι πολυ καλό (κ πολύ ωραία δομημένο). Εγώ δεν είχα ίδεα (όχι μόνο από C, αλλά κ από προγραμματισμό γενικότερα) κ στα τεχνικά ζητήματα μέχρι τώρα με έχει καλύψει πλήρως. Ουδεμία απορία.
Διαβάστε το (όχι όλο-ό,τι σας ενδιαφέρει κάθε φορά).


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Anastacia on May 18, 2009, 01:05:22 am
Σελίδα 465 Συναρτήσεις κ Μονοδιάστατοι Πίνακες


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 18, 2009, 01:34:14 am
Το βιβλίο που μας έδωσαν για τη C είναι πολυ καλό (κ πολύ ωραία δομημένο). Εγώ δεν είχα ίδεα (όχι μόνο από C, αλλά κ από προγραμματισμό γενικότερα) κ στα τεχνικά ζητήματα μέχρι τώρα με έχει καλύψει πλήρως. Ουδεμία απορία.
Διαβάστε το (όχι όλο-ό,τι σας ενδιαφέρει κάθε φορά).
για ποιο βιβλιο μιλαμε...το c για μηχανικους η το μαθετε την c++ απο το 0?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 18, 2009, 01:51:52 am
Code:
#include <stdio.h>
#include <math.h>
#define MAX 30

void cover(float azim, int *moires, int *lepta, int *deuterolepta);
void cl_pos (float apos, float azi, float *platos, float *mhkos, float gewm_pl_aerodr, float gewm_mhk_aerodr, float *X, float *Y)
   
void main ()
{
     int .......................

και μου λεει

C:\Users\user\Desktop\D.c In function `cl_pos':
C:\Users\user\Desktop\D.c syntax error before '{' token

WTF??


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 18, 2009, 11:04:51 am
Code:
void cl_pos (float apos, float azi, float *platos, float *mhkos, float gewm_pl_aerodr, float gewm_mhk_aerodr, float *X, float *Y)

Ξέχασες ένα semicolon. ^tomato^

:)


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: tsolarion on May 18, 2009, 13:16:51 pm
μπορει να δωσει καποιος μια βοηθεια για την cover?το μοναδικο ορισμα της θα ειναι ο αζ?και πως θα γινει η μετατροπη εφοσον δεν ξερουμε ποσα δεκαδικα θα εχει ο αριθμος(και αρα δεν ξερουμε με τι να διαιρεσουμε...)??


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 18, 2009, 13:33:51 pm
Αφού είναι ακέραιες οι μοίρες, τα λεπτά και τα δευτερόλεπτα θα ορισθούν ως int. Κατα τη γνώμη μου δεν χρειάζεται μπλέξιμο με modf ή τπτ άλλο.

Για τις μοίρες moires=(int)arxiki

Για τα λεπτά: lepta=(int)(60* (arxiki - (double)moires))

Για τα δευτερόλεπτα: deuterolepta= (int)(60*(60* (arxiki - (double)moires) - (double)lepta)) //Παίρνω δεκαδικό του λεπτού, το πολλαπλασιάζω επι 60 και το κάνω ακέραιο.
ορισματα θα εχει αζ, μοιρες, λεπτα, δευτερολεπτα


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: tsolarion on May 18, 2009, 13:59:56 pm
Αφού είναι ακέραιες οι μοίρες, τα λεπτά και τα δευτερόλεπτα θα ορισθούν ως int. Κατα τη γνώμη μου δεν χρειάζεται μπλέξιμο με modf ή τπτ άλλο.

Για τις μοίρες moires=(int)arxiki

Για τα λεπτά: lepta=(int)(60* (arxiki - (double)moires))

Για τα δευτερόλεπτα: deuterolepta= (int)(60*(60* (arxiki - (double)moires) - (double)lepta)) //Παίρνω δεκαδικό του λεπτού, το πολλαπλασιάζω επι 60 και το κάνω ακέραιο.
ορισματα θα εχει αζ, μοιρες, λεπτα, δευτερολεπτα
σ ευχαριστω!θα το παλεψω!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: astakos on May 18, 2009, 14:06:25 pm
Αυτο εδω τι σημαινει???????????? [linker error] undefined reference to `cl_pos'
Μπορει να βοηθησει καποιος?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: MaGill on May 18, 2009, 14:08:18 pm
Για να λέμε τα πράγματα με το όνομα τους βέβαια.... Σε καμία περίπτωση δεν αρκούν οι παραδώσεις του Κορτέση ώστε να γράψει κάποιος ένα τετοιου είδους πρόγραμμα.


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: El Niño on May 18, 2009, 14:09:40 pm
με τιποτα...εγω την ανεβασα λαθος...δεν λειτουργει ολοσωστα!


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Emfanever on May 18, 2009, 14:10:40 pm
Αυτο εδω τι σημαινει???????????? [linker error] undefined reference to `cl_pos'
Μπορει να βοηθησει καποιος?

μάλλον δεν έχεις δηλώσει σωστά τη συνάρτηση στην αρχή του προγράμματος


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΡΕΣΑΛΤΟ on May 18, 2009, 14:46:13 pm
Το βιβλίο που μας έδωσαν για τη C είναι πολυ καλό (κ πολύ ωραία δομημένο). Εγώ δεν είχα ίδεα (όχι μόνο από C, αλλά κ από προγραμματισμό γενικότερα) κ στα τεχνικά ζητήματα μέχρι τώρα με έχει καλύψει πλήρως. Ουδεμία απορία.
Διαβάστε το (όχι όλο-ό,τι σας ενδιαφέρει κάθε φορά).

+1

Για να λέμε τα πράγματα με το όνομα τους βέβαια.... Σε καμία περίπτωση δεν αρκούν οι παραδώσεις του Κορτέση ώστε να γράψει κάποιος ένα τετοιου είδους πρόγραμμα.

προφανώς οχι.... ;D
απ'οσο μπορω να θυμηθω τουλαχιστον....


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: gt on May 18, 2009, 18:05:23 pm
Ρε παιδια η αντιστροφη sin k cos πως οριζεται κ πως συντασσεται...?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 18, 2009, 18:07:00 pm
Γιατι κανεις τα ευκολα δυσκολα; :(


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: gt on May 18, 2009, 18:10:34 pm
Μα μεσα απο την cl_pos βρισκω το στιγμα του αεροπλανου σε καρτεσιανες σωστα...η αυτο που βρισκω οταν προσθετω 0.009x κτλ ειναι σε μοιρες?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 18, 2009, 18:12:31 pm
Ρε παιδια η αντιστροφη sin k cos πως οριζεται κ πως συντασσεται...?

http://opengroup.org/onlinepubs/007908775/xsh/math.h.html

Την έχει η math.h.
Ψάξε. :P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: il capitano on May 18, 2009, 18:14:04 pm
Μα μεσα απο την cl_pos βρισκω το στιγμα του αεροπλανου σε καρτεσιανες σωστα...η αυτο που βρισκω οταν προσθετω 0.009x κτλ ειναι σε μοιρες?

Ναι σε μοίρες είναι απλά είναι σε δεκαδική μορφή και με την cover πρέπει να το μετατρέψεις σε μμ.λλ.δδ


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: gt on May 18, 2009, 18:16:58 pm
Ρε παιδια η αντιστροφη sin k cos πως οριζεται κ πως συντασσεται...?

http://opengroup.org/onlinepubs/007908775/xsh/math.h.html

Την έχει η math.h.
Ψάξε. :P
Thanks a lot....Την βρηκα...


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: sarovios on May 18, 2009, 18:54:01 pm
Code:
void cl_pos(float airport_x , float airport_y , float distance , float azimouthio , float *plane_x , float *plane_y , float *splane_x , float *splane_y)
{
   *plane_x = distance * cos(azimouthio);
   *plane_y = distance * sin(azimouthio);
   *splane_x = airport_x + 0.009 * (*plane_x);
   *splane_y = airport_y + 0.009 * (*plane_y);
}   

Αυτη ειναι η συναρτηση που εγραψα και ετσι την καλω:
Code:
cl_pos(airport_x , airport_y , distance[i] , azimouthio[i] , &plane_x , &plane_y , &splane_x , &splane_y);

Μπορει να μου πει καποιος που κανω λαθος?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Andre on May 22, 2009, 17:11:01 pm
Γιατί δεν έχει ανεβάσει ακόμα τη λύση της εργασίας D?
Ανέφερε τίποτα γι' αυτό?


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: Γιώργος on May 22, 2009, 17:12:13 pm
Γιατί δεν έχει ανεβάσει ακόμα τη λύση της εργασίας D?

Γιατί δεν την γνωρίζει.


:P


Title: Re: [Δομ. Προγρ.] Εργασία D
Post by: ΚΗΜΜΥ on May 22, 2009, 17:15:22 pm
Γιατί δεν έχει ανεβάσει ακόμα τη λύση της εργασίας D?

Γιατί δεν την γνωρίζει.


:P

ωραιος