THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: c0ndemn3d on May 03, 2012, 18:29:51 pm



Title: [Δομημένος Πρ.] Εργασία D
Post by: c0ndemn3d on May 03, 2012, 18:29:51 pm
Συζήτηση και απορίες για την τέταρτη εργασία


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

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

Να γραφεί το πρόγραμμα το οποίο να διαβάζει, για κάθε ύφαλο, μια ταυτότητα, τις συντεταγμένες του και την απόσταση ασφαλείας που ορίστηκε για αυτόν. Το πρόγραμμα να διαβάζει ακόμη τις συντεταγμένες του ραδιόφαρου και την απόσταση R που ορίζει τον κύκλο επαγρύπνησης γύρο από τον ραδιόφαρο.

Στο πρόγραμμα να ορίζεται η συνάρτηση navigator η οποία να δέχεται τις συντεταγμένες της θέσης ενός πλοίου και να υπολογίζει την απόστασή του από τον πιο κοντινό ύφαλο. Αν η απόσταση αυτή είναι μεγαλύτερη από την απόσταση ασφαλείας που ορίστηκε για τον συγκεκριμένο ύφαλο η συνάρτηση να επιστρέφει την τιμή 0. Σε διαφορετική περίπτωση, αν το πλοίο βρίσκεται σε απόσταση μικρότερη ή ίση από το 70% της απόστασης ασφαλείας, να επιστρέφεται η τιμή 1 ενώ αν η απόσταση είναι μεγαλύτερη από το 70% να επιστρέφει την τιμή 2. Η συνάρτηση να επιστρέφει ακόμη, σε κάθε περίπτωση, την απόσταση του πλοίου από τον ύφαλο.

Η συνάρτηση main του προγράμματος να ορίζει μια ατέρμονα ανακύκλωση σε κάθε επανάληψη της οποίας να διαβάζονται οι συντεταγμένες της θέσης του πλοίου και εφόσον αυτό βρίσκεται στο εσωτερικό του κύκλου επαγρύπνησης που ορίζεται από τον ραδιόφαρο, να καλείται η συνάρτηση navigator. Αν η συνάρτηση επιστρέψει την τιμή 1 να εκτυπώνεται το μήνυμα «Κόκκινος συναγερμός» ενώ αν επιστρέψει την τιμή είναι 2 να εκτυπώνεται το μήνυμα «Κίτρινος συναγερμός» Σε κάθε περίπτωση να εκτυπώνεται η απόσταση του πλοίου από τον κοντινότερο ύφαλο που επέστρεψε η συνάρτηση καθώς και η ταυτότητα του υφάλου.

Να θεωρηθεί ότι το πρόγραμμα ξεκινά με την αναχώρηση του πλοίου από το λιμάνι και τερματίζεται με την επιστροφή του σε αυτό.

Σημείωση: Να μην χρησιμοποιηθούν πουθενά γενικές μεταβλητές.

Η συνάρτηση navigator να μη διαβάζει δεδομένα και να μην εκτυπώνει αποτελέσματα.

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

Οι ταυτότητες που θα δοθούν στους υφάλους να είναι string με 10 το πολύ χαρακτήρες.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: xionanthropos on May 09, 2012, 15:34:06 pm
Ο κύκλος γύρο από τον ραδιόφαρο πρέπει να περικλείει όλους τους υφάλους;


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 09, 2012, 15:52:01 pm
Ο κύκλος γύρο από τον ραδιόφαρο πρέπει να περικλείει όλους τους υφάλους;

Λογικά όχι. Απλά μόνο αν βρίσκεται το καράβι μέσα στον κύκλο γύρω από τον ραδιοφάρο θα λαμβάνει προειδοποίηση για τον κοντινότερο ύφαλο μέσω της συνάρτησης navigator...


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: xionanthropos on May 09, 2012, 16:06:02 pm
και κάτι άλλο...
όταν λέει η συνάρτηση να μην διαβάζει και να μην εκτυπώνει αποτέλεσμα εννοεί να μην υπάρχει printf και scanf μέσα στην συνάρτηση;


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 09, 2012, 16:09:11 pm
και κάτι άλλο...
όταν λέει η συνάρτηση να μην διαβάζει και να μην εκτυπώνει αποτέλεσμα εννοεί να μην υπάρχει printf και scanf μέσα στην συνάρτηση;

Να μην υπάρχει οποιαδήποτε συνάρτηση input/output, οπως πχ η scanf και η printf...


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Niobe on May 09, 2012, 22:56:12 pm
γινεται να υπαρχει return που να επιστρεφει δυο τιμες??
plus αν κανω κληση με αναφορα της αποστασης και επιστρεφω την τιμη 0/1/2 τη συναρτηση τη βαζω int ??


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 09, 2012, 23:00:09 pm
γινεται να υπαρχει return που να επιστρεφει δυο τιμες??
plus αν κανω κληση με αναφορα της αποστασης και επιστρεφω την τιμη 0/1/2 τη συναρτηση τη βαζω int ??

Όχι, δε γίνεται να επιστρέψεις δύο τιμές με return. Άμα οι τιμή που θα επιστραφεί με return είναι ακέραιος τότε δηλώνεις την συνάρτηση ως int.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Niobe on May 09, 2012, 23:01:59 pm
γινεται να υπαρχει return που να επιστρεφει δυο τιμες??
plus αν κανω κληση με αναφορα της αποστασης και επιστρεφω την τιμη 0/1/2 τη συναρτηση τη βαζω int ??

Όχι, δε γίνεται να επιστρέψεις δύο τιμές με return. Άμα οι τιμή που θα επιστραφεί με return είναι ακέραιος τότε δηλώνεις την συνάρτηση ως int.

ντανκεσεν


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: New_Entry on May 09, 2012, 23:09:04 pm
όταν λέει να μη χρησιμοποιηθούν πουθενά γενικές μεταβλητές τι εννοεί;; να μην υπάρχουν μεταβλητές στη main;;


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 09, 2012, 23:19:41 pm
Να μη
όταν λέει να μη χρησιμοποιηθούν πουθενά γενικές μεταβλητές τι εννοεί;; να μην υπάρχουν μεταβλητές στη main;;

Γενικές μεταβλητές είναι οι μεταβλητές που δηλώνονται πριν τη συναρτηση main() και επομένως ισχύουν για την εκτέλεση όλου του προγράμματος (main και οποιασδήποτε άλλης συνάρτησης). Τέτοιου είδους μεταβλητές είναι που, η εκφώνηση λέει ότι, δε πρέπει να χρησιμοποιηθούν...


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Αιμιλία η φτερωτή χελώνα on May 09, 2012, 23:26:00 pm
ηρθε η ωρα να χρησιμοποιησετε pointer!
επιτελους γινατε ηλεκτρολογοι!


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: New_Entry on May 09, 2012, 23:40:21 pm
Να μη
όταν λέει να μη χρησιμοποιηθούν πουθενά γενικές μεταβλητές τι εννοεί;; να μην υπάρχουν μεταβλητές στη main;;

Γενικές μεταβλητές είναι οι μεταβλητές που δηλώνονται πριν τη συναρτηση main() και επομένως ισχύουν για την εκτέλεση όλου του προγράμματος (main και οποιασδήποτε άλλης συνάρτησης). Τέτοιου είδους μεταβλητές είναι που, η εκφώνηση λέει ότι, δε πρέπει να χρησιμοποιηθούν...

Merci!!!!  :D


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 09, 2012, 23:40:48 pm
ηρθε η ωρα να χρησιμοποιησετε pointer!
επιτελους γινατε ηλεκτρολογοι!

What sorcery is this?!


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: New_Entry on May 09, 2012, 23:50:00 pm
ηρθε η ωρα να χρησιμοποιησετε pointer!
επιτελους γινατε ηλεκτρολογοι!

What sorcery is this?!

How many wonderful things we learn here, in Hogwarts School of Witchcraft and Wizardry...!!!!  ;)


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Σαλτιμπάγκος on May 10, 2012, 12:59:02 pm
"η ταυτοτητα" ειναι καποιο ονομα που θα δωσουμε στον καθε υφαλο;;


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: autos.gr on May 10, 2012, 15:41:16 pm
pointers που θα χρειαστουν?  :-\


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: c0ndemn3d on May 10, 2012, 17:06:34 pm
"η ταυτοτητα" ειναι καποιο ονομα που θα δωσουμε στον καθε υφαλο;;

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

pointers που θα χρειαστουν?  :-\

Στη συνάρτηση navigator πρέπει να επιστρέψεις 2 τιμές. Η return μπορεί να σου επιστρέψει μόνο μια τιμή.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Utrion on May 10, 2012, 18:09:38 pm
Για τους pointers αν δεν κάνω λάθος τους θέλουμε για να μπορεί να διαβάσει/αλλάξει και η navigator() τα στοιχεία που έχουμε εισάγει στην main().


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Niobe on May 10, 2012, 19:55:26 pm
"η ταυτοτητα" ειναι καποιο ονομα που θα δωσουμε στον καθε υφαλο;;

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

βασικα τα string δεν ειναι μονοδιαστατοι συμφωνα με ντον κορτεσιονε ?? επομενως Ν επι μονοδιαστατες ταυτοτητες ??


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: zidan on May 10, 2012, 22:39:56 pm
Στις ταυτοτητες δηλαδη βαζουμε :scanf("%s",&s) ???


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Niobe on May 10, 2012, 23:09:48 pm
Στις ταυτοτητες δηλαδη βαζουμε :scanf("%s",&s) ???

ναι και μετα κανεις απο κατω strcpy(id,s); οπου id ο πινακας 11 θεσεων(10 το πολυ για το στρινγκ και μια για το \0)
στην ουσια σκανφ τη μεταβλητη και αντιγραφεις το περιεχομενο της στον πινακα...

εδιτ: ξερει κανεις αν γινεται να βαλω στρινγκ σε δυδιαστατο πινακα ?? διλαδη να εχω id[N][11] στην δηλωση μεταβλητων ??? και αν γινεται πως συντασσεται η strcpy??


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: zidan on May 10, 2012, 23:26:41 pm
 μηπως strcpy(id) μονο???


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 10, 2012, 23:42:13 pm
ξερει κανεις αν γινεται να βαλω στρινγκ σε δυδιαστατο πινακα ?? διλαδη να εχω id[N][11] στην δηλωση μεταβλητων ??? και αν γινεται πως συντασσεται η strcpy??
Γίνεται κανονικότατα. Εγώ αυτό έκανα και έκανε compile/run μια χαρά. Για την σύνταξη όπου θα έβαζες πριν μόνο το όνομα του string, τώρα θα βάλεις το όνομα του string μαζί με την πρώτη διάσταση...
Για παράδειγμα:
Code:
scanf("%s",id[1]);
ΥΣ: Για την strcpy δεν είμαι 100% σίγουρος, αλλά λογικά ισχύει αυτό που είπα πιο πάνω. Αν και προσωπικά δε μου χρειάστηκε πουθενά αυτήν την συνάρτηση...

μηπως strcpy(id) μονο???
http://www.cplusplus.com/reference/clibrary/cstring/strcpy/


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: c0ndemn3d on May 11, 2012, 00:17:07 am
Για ποιο λόγο να διαβάσεις ένα string σε μια μεταβλητή s και μετά να το καταχωρίσεις στον πίνακα; Αφού μπορείς να το κάνεις κατευθείαν.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Niobe on May 11, 2012, 00:43:09 am
Για ποιο λόγο να διαβάσεις ένα string σε μια μεταβλητή s και μετά να το καταχωρίσεις στον πίνακα; Αφού μπορείς να το κάνεις κατευθείαν.

οκ μην βαρατε στις σημειωσεις του κορτεση το ειδα...   peace!! ^beer^

επισης η navigator δεχεται εκτος απο αυτα που λεει στην εκφωνηση ταυτοτητες και συντεταγμενες υφαλων right ??


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 11, 2012, 00:47:10 am
οκ μην βαρατε στις σημειωσεις του κορτεση το ειδα...   peace!! ^beer^
:o

επισης η navigator δεχεται εκτος απο αυτα που λεει στην εκφωνηση ταυτοτητες και συντεταγμενες υφαλων right ??

Τις ταυτότητες όχι απαραίτητα. Μπορεί να επιστρέφει μόνο το νούμερο του κοντινότερου υφάλου και να εκτυπώνεται η ταυτότητα στην main() έχοντας το νούμερο του, από την συνάρτηση.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: manos on May 11, 2012, 11:52:38 am
Δομές μπορούμε να χρησιμοποιήσουμε?Και αν γίνεται τότε αν τις δηλώσουμε πριν την συνάρτηση main θεωρούνται γενικές μεταβλητές?


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: c0ndemn3d on May 11, 2012, 12:28:48 pm
Άμα δηλώσεις κάτι έξω από συνάρτηση θεωρείται γενική μεταβλητή.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Σαλτιμπάγκος on May 11, 2012, 15:14:29 pm
μπορει καποιος να εξηγησει πως θα παρουμε την απόσταση του πλοίου από τον κοντινότερο ύφαλο ;;εγω μεσα στη navigator εχω τρια if τα οποια επιστρεφουν 0,1,2 αναλογα με τις αποστασεις. Τωρα την αποσταση πως θα την παρω;; με pointers;; Κ αν ναι, πως θα το κανω αυτο;;


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: απλυτος on May 12, 2012, 01:01:41 am
η navigator εκτος απο x, y δεν πρεπει με καποιο τροπο να δεχεται και συντεταγμενες υφαλων για να υπολογισεις αποστασεις??
(γιατι στην εκφωνηση δεν αναφερει κατι τετοιο)


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 12, 2012, 01:05:28 am
η navigator εκτος απο x, y δεν πρεπει με καποιο τροπο να δεχεται και συντεταγμενες υφαλων για να υπολογισεις αποστασεις??
(γιατι στην εκφωνηση δεν αναφερει κατι τετοιο)

Ναι, προφανώς και θα πρέπει...


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: 4emonas on May 12, 2012, 01:42:22 am
ο ραδιοφαρος τι ακριβως κανει??? ^suspicious^


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 12, 2012, 01:49:53 am
ο ραδιοφαρος τι ακριβως κανει??? ^suspicious^

Ενημερώνει το πλοίο για τον κοντινότερο του ύφαλο. Στην ουσία απλά ελέγχεις κατά πόσο το πλοίο βρίσκεται στην εμβέλεια του φάρου, και αν ναι τότε τρέχεις την συνάρτηση navigator και εμφανίζεις τα ανάλογα μηνύματα...


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: απλυτος on May 12, 2012, 04:11:38 am
πως πρεπει να το συνταξω ωστε η strcpy να βαζει το ονομα του υφαλου σε δυσδυαστατο πινακα [n][11]?
(αν το εβαζα σε μονοδιαστατο θα εκανα strcpy(id,s), για δυδσυαστατο γινεται το αντιστοιχο?)


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: απλυτος on May 12, 2012, 04:18:15 am
κι επισης, αν
-στη navigator βαλω εναν *pointer στις τυπικες μεταβλητες
-οταν την καλω, στην αντιστοιχη θεση του *pointer βαλω μια μεταβλητη στη μορφη &ονομα
-εντος της navigator εχω εντολη, *pointer=a

τοτε αν στο κυριως προγραμμα κανω printf τη μεταβλητη ονομα, θα εμφανισει το a??

(σορρυ για τη δαιδαλωδη ερωτηση αλλα δεν ηξερα πως αλλιως να το πω..)


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 12, 2012, 12:26:22 pm
κι επισης, αν
-στη navigator βαλω εναν *pointer στις τυπικες μεταβλητες
-οταν την καλω, στην αντιστοιχη θεση του *pointer βαλω μια μεταβλητη στη μορφη &ονομα
-εντος της navigator εχω εντολη, *pointer=a
τοτε αν στο κυριως προγραμμα κανω printf τη μεταβλητη ονομα, θα εμφανισει το a??
(σορρυ για τη δαιδαλωδη ερωτηση αλλα δεν ηξερα πως αλλιως να το πω..)
Ναι

πως πρεπει να το συνταξω ωστε η strcpy να βαζει το ονομα του υφαλου σε δυσδυαστατο πινακα [n][11]?
(αν το εβαζα σε μονοδιαστατο θα εκανα strcpy(id,s), για δυδσυαστατο γινεται το αντιστοιχο?)
Λογικά θα είναι (εάν id[n][11] ο 2D πίνακας με τα strings) strcpy(id[0],s),strcpy(id[1],s) κοκ. Δοκίμασε το, όμως, για να μην σε πάρω στο λαιμό μου...


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: 4emonas on May 12, 2012, 14:04:44 pm
ο ραδιοφαρος τι ακριβως κανει??? ^suspicious^

Ενημερώνει το πλοίο για τον κοντινότερο του ύφαλο. Στην ουσία απλά ελέγχεις κατά πόσο το πλοίο βρίσκεται στην εμβέλεια του φάρου, και αν ναι τότε τρέχεις την συνάρτηση navigator και εμφανίζεις τα ανάλογα μηνύματα...

α οκ καταλαβα.... thnx  ;D


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: 4emonas on May 12, 2012, 14:13:29 pm

ο ραδιοφαρος τι ακριβως κανει??? ^suspicious^

Ενημερώνει το πλοίο για τον κοντινότερο του ύφαλο. Στην ουσία απλά ελέγχεις κατά πόσο το πλοίο βρίσκεται στην εμβέλεια του φάρου, και αν ναι τότε τρέχεις την συνάρτηση navigator και εμφανίζεις τα ανάλογα μηνύματα...

α οκ καταλαβα.... thnx  ;D

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


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 12, 2012, 14:16:56 pm
ο ραδιοφαρος τι ακριβως κανει??? ^suspicious^
Ενημερώνει το πλοίο για τον κοντινότερο του ύφαλο. Στην ουσία απλά ελέγχεις κατά πόσο το πλοίο βρίσκεται στην εμβέλεια του φάρου, και αν ναι τότε τρέχεις την συνάρτηση navigator και εμφανίζεις τα ανάλογα μηνύματα...
α οκ καταλαβα.... thnx  ;D
και κατι αλλο... τι ακριβως ειναι η ταυτοτητα?? κατι σαν ονομα του υφαλου?και αν ναι, ονομαζεται με γραμματα η με αριθμους?(ρωταω για τη δηλωση του πινακα)

Ταυτότητα του υφάλου είναι το string 10 χαρακτήρων που αναφέρει η εκφώνηση...


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: autos.gr on May 12, 2012, 15:21:18 pm
Άμα δηλώσεις κάτι έξω από συνάρτηση θεωρείται γενική μεταβλητή.


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


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: απλυτος on May 12, 2012, 20:13:55 pm
πως πρεπει να το συνταξω ωστε η strcpy να βαζει το ονομα του υφαλου σε δυσδυαστατο πινακα [n][11]?
(αν το εβαζα σε μονοδιαστατο θα εκανα strcpy(id,s), για δυδσυαστατο γινεται το αντιστοιχο?)
Λογικά θα είναι (εάν id[n][11] ο 2D πίνακας με τα strings) strcpy(id[0],s),strcpy(id[1],s) κοκ. Δοκίμασε το, όμως, για να μην σε πάρω στο λαιμό μου...
[/quote]
μπα, νομιζω δεν κανει compile ή κανει, αλλα οταν το τρεχω βγαζει ο,τι να ναι.. το λεω γιατι και γω ετσι το εκανα στην αρχη.. αν ξερει καποιος σιγουρα, να μας δωσει τα φωτα του


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: zidan on May 12, 2012, 20:14:24 pm
με τα return πως θα το κανουμε???ΣΟΣ................


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: c0ndemn3d on May 12, 2012, 20:19:55 pm
Για τις γενικές μεταβλητές νομίζω εννοεί πως δεν θέλει μεταβλητές που έχουν δημιουργηθεί με define.Για τα στοιχεία του υφάλου κι εγώ με δομή σκέφτηκα να τα κάνω , είναι λάθος?

Εννοεί να μην δηλώσεις μεταβλητές έξω από συνάρτηση. Με define δεν ορίζεις μεταβλητή, αλλά σταθερά.
--------------------------------------
Εγώ όρισα τον πίνακα με τις ταυτότητες έτσι:
char ID[N][11]; (βάζω μήκος 11 γιατί χρειαζόμαστε ακόμα ένα byte για το \0)

και μετά διάβαζα τα στοιχεία έτσι:
for(k=0;k<N;k++){
    scanf("%s",&ID[k][0]);
}


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: απλυτος on May 12, 2012, 20:43:13 pm
Εγώ όρισα τον πίνακα με τις ταυτότητες έτσι:
char ID[N][11]; (βάζω μήκος 11 γιατί χρειαζόμαστε ακόμα ένα byte για το \0)

και μετά διάβαζα τα στοιχεία έτσι:
for(k=0;k<N;k++){
    scanf("%s",&ID[k][0]);
}

κι ετσι π.χ. για κ=0, εστω οτι βαζω για ταυτοτητα υφαλου τη λεξη "αλφα", θα καταχωρησει το "α" στο ID[0][0], το "λ" στο ID[0][1] κλπ???


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: c0ndemn3d on May 12, 2012, 20:45:33 pm
Εγώ όρισα τον πίνακα με τις ταυτότητες έτσι:
char ID[N][11]; (βάζω μήκος 11 γιατί χρειαζόμαστε ακόμα ένα byte για το \0)

και μετά διάβαζα τα στοιχεία έτσι:
for(k=0;k<N;k++){
    scanf("%s",&ID[k][0]);
}

κι ετσι π.χ. για κ=0, εστω οτι βαζω για ταυτοτητα υφαλου τη λεξη "αλφα", θα καταχωρησει το "α" στο ID[0][0], το "λ" στο ID[0][1] κλπ???
Ασφαλώς. Και στο 5ο στοιχείο θα μπει το \0


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: απλυτος on May 12, 2012, 20:48:18 pm
Εγώ όρισα τον πίνακα με τις ταυτότητες έτσι:
char ID[N][11]; (βάζω μήκος 11 γιατί χρειαζόμαστε ακόμα ένα byte για το \0)

και μετά διάβαζα τα στοιχεία έτσι:
for(k=0;k<N;k++){
    scanf("%s",&ID[k][0]);
}

κι ετσι π.χ. για κ=0, εστω οτι βαζω για ταυτοτητα υφαλου τη λεξη "αλφα", θα καταχωρησει το "α" στο ID[0][0], το "λ" στο ID[0][1] κλπ???
Ασφαλώς. Και στο 5ο στοιχείο θα μπει το \0
θενκσ


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: zidan on May 12, 2012, 21:17:41 pm
οκ μην βαρατε στις σημειωσεις του κορτεση το ειδα...   peace!! ^beer^
:o

επισης η navigator δεχεται εκτος απο αυτα που λεει στην εκφωνηση ταυτοτητες και συντεταγμενες υφαλων right ??

Τις ταυτότητες όχι απαραίτητα. Μπορεί να επιστρέφει μόνο το νούμερο του κοντινότερου υφάλου και να εκτυπώνεται η ταυτότητα στην main() έχοντας το νούμερο του, από την συνάρτηση.
ΠΩΣΣΣΣΣΣ?


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: c0ndemn3d on May 12, 2012, 22:50:09 pm
οκ μην βαρατε στις σημειωσεις του κορτεση το ειδα...   peace!! ^beer^
:
επισης η navigator δεχεται εκτος απο αυτα που λεει στην εκφωνηση ταυτοτητες και συντεταγμενες υφαλων right ??
Τις ταυτότητες όχι απαραίτητα. Μπορεί να επιστρέφει μόνο το νούμερο του κοντινότερου υφάλου και να εκτυπώνεται η ταυτότητα στην main() έχοντας το νούμερο του, από την συνάρτηση.
ΠΩΣΣΣΣΣΣ?
Ορισε μια μεταβλητη n και αρχικοποίησέ την 0. Ορισε και μια μεταβλητη min και αρχικοποίησέ την ως την απόσταση του πρώτου υφάλου από το πλοίο. Μπες σε μια for και έλεγξε κάθε φορά αν η απόσταση του πλοίου είναι μικρότερη από την min, και αν ισχύει βάλε εκείνη την απόσταση ως min και τη θέση του υφάλου στον πίνακα ως n. Το n θα το ορίσεις από τη main και στη συνάρτηση navigator θα περνάς τη διεύθυνση του n στη μνήμη.

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


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Utrion on May 12, 2012, 22:53:34 pm
οκ μην βαρατε στις σημειωσεις του κορτεση το ειδα...   peace!! ^beer^
:o

επισης η navigator δεχεται εκτος απο αυτα που λεει στην εκφωνηση ταυτοτητες και συντεταγμενες υφαλων right ??

Τις ταυτότητες όχι απαραίτητα. Μπορεί να επιστρέφει μόνο το νούμερο του κοντινότερου υφάλου και να εκτυπώνεται η ταυτότητα στην main() έχοντας το νούμερο του, από την συνάρτηση.
ΠΩΣΣΣΣΣΣ?


int navigator( int *p)
kai otan thn καλεσεις θα βαλεις για αυτη την εισοδο την μεταβλτη που θα εχεις ορίσει στην main() ασπουμε Reef και έτσι οταν βρεις μεσα στην navigator ποιος υφαλος ειναι πιο κοντα (ασπουμε ο i) κανεις ενα *p=i   και ετσι η navigator μπορει να αλλαζει τα δεδομενα που εχουν εισηχθεί στην main μέσα απο τις διευθυνσεις τους.    


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Xleboniaris on May 13, 2012, 18:09:46 pm
Ας εξηγήσει λίγο κάποιος το τελευταίο,  είναι το σημείο που δεν μου βγαίνει στην άσκηση. Όπως κατάλαβα θα δώσω στην navigator τον δείκτη int *p ( navigator(int *p)). Έπειτα έχω βρει για παράδειγμα τον ύφαλο  j για τον οποίο η απόσταση από το πλοίο είναι ελάχιστη και δίνω  την τιμή *p=j. Πως όμως θα πάρω την τιμή του j στην συνάρτηση main;
Έχω βάλει την navigator  να γυρίζει τις τιμές 0,1,2. Βασικά δεν κατάλαβα εκείνο που είπε για την μεταβλητή Reef.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: A.N. on May 13, 2012, 18:14:07 pm
Ας εξηγήσει λίγο κάποιος το τελευταίο,  είναι το σημείο που δεν μου βγαίνει στην άσκηση. Όπως κατάλαβα θα δώσω στην navigator τον δείκτη int *p ( navigator(int *p)). Έπειτα έχω βρει για παράδειγμα τον ύφαλο  j για τον οποίο η απόσταση από το πλοίο είναι ελάχιστη και δίνω  την τιμή *p=j. Πως όμως θα πάρω την τιμή του j στην συνάρτηση main;
Έχω βάλει την navigator  να γυρίζει τις τιμές 0,1,2. Βασικά δεν κατάλαβα εκείνο που είπε για την μεταβλητή Reef.

+1


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Xleboniaris on May 13, 2012, 19:04:17 pm
Βασικά κατάλαβα πως θα το κάνω , είδα ένα παράδειγμα στο e-thmmy, στο υλικό μαθήματος.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Thunderjohn on May 13, 2012, 20:10:41 pm
Ξέρει κανείς πως γίνεται αν δοθεί ταυτότητα μεγαλύτερη από 10 chars να το κόβει στο δέκατο γράμμα η να βγάζει αντίστοιχο μήνυμα? Γιατί όταν του δίνω μεγαλύτερα απο 10 μου φαίνεται πως παίρνει θέσεις από τις επόμενες σειρές και μετά βγαίνουν καπως μπερδεμένα τα πράματα :D.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: c0ndemn3d on May 13, 2012, 20:28:50 pm
Ξέρει κανείς πως γίνεται αν δοθεί ταυτότητα μεγαλύτερη από 10 chars να το κόβει στο δέκατο γράμμα η να βγάζει αντίστοιχο μήνυμα? Γιατί όταν του δίνω μεγαλύτερα απο 10 μου φαίνεται πως παίρνει θέσεις από τις επόμενες σειρές και μετά βγαίνουν καπως μπερδεμένα τα πράματα :D.
Δεν χρειάζεται να κάνεις έλεγχο. Υποθέτουμε ότι ο χρήστης θα δίνει έγκυρες εισόδους.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: manos on May 13, 2012, 23:31:29 pm
Παιδιά μπορεί κανείς να μου πει αναλυτικά πως θα δηλώσω τον πίνακα με τις ταυτότητες των υφάλων?Επείγει.


Title: Re: [Δομημένος Πρ.] Εργασία D
Post by: Exomag on May 13, 2012, 23:50:14 pm
Παιδιά μπορεί κανείς να μου πει αναλυτικά πως θα δηλώσω τον πίνακα με τις ταυτότητες των υφάλων?Επείγει.

char reef_id[N][11], όπου Ν το μέγιστο πλήθος υφάλων για το οποίο δουλεύει το πρόγραμμα...