Calculator γραμμένο σε C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό migf1 » 08 Ιουν 2011, 18:46

Όχι, δεν την είδα την V2... είναι σε ξεχωριστό νήμα; Πάω να τη βρω και να τη δοκιμάσω.

ΥΓ. Η fflush(stdin) καθαρίζει τη γραμμή εντολών από τυχόν απομεινάρια από το εκάστοτε προηγούμενο διάβασμα. Btw, σου έχω ποστάρει κι εγώ βελτιωμένη έκδοση που αντιμετωπίζει και τις περιπτώσεις που αντί για νούμερο της βάλεις π.χ. λέξη... για δες, σου κάνει κι εκείνη το ίδιο πράγμα με το μενού (ίσως μου έχει ξεφύγει κάνα fflush() στην 1η έκδοση).
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό UnKnown96 » 08 Ιουν 2011, 18:49

Την v2 την ενσωμάτοσα στο αρχικό post αυτού του θέματος.
Θα ελέξω την έκδοση που λες και θα σου πω τι γίνεται με εκείνη...
Άβαταρ μέλους
UnKnown96
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 370
Εγγραφή: 08 Ιουν 2010, 15:23
Τοποθεσία: Ρόδος
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό migf1 » 08 Ιουν 2011, 18:57

Μόλις δοκίμασα τη V2, μια χαρά δουλεύει! :)

Τώρα σου μένει μονάχα να αντιμετωπίζεις τις περιπτώσεις που ο χρήστης αντί για νούμερα βάζει λέξεις, γιατί όπως είναι τώρα σε τέτοια περίπτωση μπαίνει σε infinite loop.

Α και κάτι ακόμα: στη γραμμή 70, εκεί που τυπώνεις το υπόλοιπο της διαίρεσης, το %g κάντο %d (μόνο για το remainder). Μπορείς να βάλεις τον gcc να σου υποδεικνύει τέτοιου είδους προειδοποιήσεις, με την επιλογή -Wall

π.χ. gcc -Wall calc.c

ΥΓ. Στη δικιά μου version 2 έχω κι εγώ ένα θεματάκι με το %... εκεί που το τυπώνω μέσα σε printf() πρέπει να γίνει %% ατί για % που είναι τώρα (γραμμές 80 και 126)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό migf1 » 08 Ιουν 2011, 19:02

Α και κάτι ακόμα, για τη V2 σου. Ακριβώς επειδή δεν χρησιμοποιείς fflush(stdin) πριν από κάθε scanf() που κάνεις, δοκίμασε όταν σου ζητήσει να βάλεις π.χ. τον πρώτο όρο της πρόσθεσης, αντί για 1 νούμερο δώσε του 2, χωρισμένα με space. Μόλις πατήσεις ENTER θα δεις πως θα προσπεράσει την ερώτηση για 2ο όρο στη πρόσθεση, και θα έχει διαβάσει μόνο του το 2ο νούμερο που είχες βάλει στον 1ο όρο.

Αυτό ακριβώς το πράγμα αντιμετωπίζει το fflush(stdin) ;)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό UnKnown96 » 08 Ιουν 2011, 19:04

Στην δικία σου δεν μπένει σε infinite loop απλώς βγάζει αυτό το error με το menu 2 φορές πάλι :lol:
Τι να βάλω τώρα για να αποτρέψω τον άλλον να βάλει γράμματα;...
Βλέπουμε :)
Άβαταρ μέλους
UnKnown96
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 370
Εγγραφή: 08 Ιουν 2010, 15:23
Τοποθεσία: Ρόδος
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό UnKnown96 » 08 Ιουν 2011, 19:10

Έφτιαξα το θέμα με το remainder, ευχαριστώ για το κόλπο με το gcc.

migf1 έγραψε:Α και κάτι ακόμα, για τη V2 σου. Ακριβώς επειδή δεν χρησιμοποιείς fflush(stdin) πριν από κάθε scanf() που κάνεις, δοκίμασε όταν σου ζητήσει να βάλεις π.χ. τον πρώτο όρο της πρόσθεσης, αντί για 1 νούμερο δώσε του 2, χωρισμένα με space. Μόλις πατήσεις ENTER θα δεις πως θα προσπεράσει την ερώτηση για 2ο όρο στη πρόσθεση, και θα έχει διαβάσει μόνο του το 2ο νούμερο που είχες βάλει στον 1ο όρο.

Αυτό ακριβώς το πράγμα αντιμετωπίζει το fflush(stdin) ;)


Ε καλά, να πάω να βάλω ένα σορό γραμμές κώδικα για την περίπτωση που κάποιος, θέλει να ξεγελάσει το πρόγραμμα;
Ας το ξεγελάσει :D .
Άβαταρ μέλους
UnKnown96
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 370
Εγγραφή: 08 Ιουν 2010, 15:23
Τοποθεσία: Ρόδος
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό UnKnown96 » 08 Ιουν 2011, 19:18

Στην τελευταία έκδοση που μου έδωσες, δεν μπορώ να κάνω τίποτα.
Μόλις μου πει Number: ότι και να βάλω παίρνω αυτό το error:
*** error: number out of range
Άβαταρ μέλους
UnKnown96
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 370
Εγγραφή: 08 Ιουν 2010, 15:23
Τοποθεσία: Ρόδος
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό migf1 » 08 Ιουν 2011, 19:21

UnKnown96 έγραψε:Στην δικία σου δεν μπένει σε infinite loop απλώς βγάζει αυτό το error με το menu 2 φορές πάλι :lol:
Τι να βάλω τώρα για να αποτρέψω τον άλλον να βάλει γράμματα;...
Βλέπουμε :)

Είναι πολύ κουφό αυτό που λες με το διπλό μενού. Εγώ το έχω δοκιμάσει σε 3 διαφορετικούς compilers και 4 διαφορετικά shells και δουλεύει μια χαρά. Ποιος ξέρει.

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

Δοκίμασε να ξεγελάσεις τη V2 μου με όποιον τρόπο νομίζεις. Αν δεν μου έχει ξεφύγει κάτι, αντιμετωπίζει οποιαδήποτε πιθανότητα (ακόμα και την περίπτωση να του δώσεις νούμερα που ξεπερνάνε σε εύρος τις μέγιστες τιμές που μπορούν να αναπαραστήσουν οι double στην C).
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό UnKnown96 » 08 Ιουν 2011, 19:24

Τι να πω δεν ξέρω... πάντως δεν βλέπω να χρησιμοποιώ τίποτα από την τελευταία έκδοση σου στον κώδικα μου γιατί δεν καταλαβαίνω τίποτα...
Συνεχίζω το διάβασμα πάνω στην C και βλέπουμε.
:)
Άβαταρ μέλους
UnKnown96
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 370
Εγγραφή: 08 Ιουν 2010, 15:23
Τοποθεσία: Ρόδος
Εκτύπωση

Re: Calculator γραμμένο σε C

Δημοσίευσηαπό migf1 » 08 Ιουν 2011, 19:25

UnKnown96 έγραψε:Στην τελευταία έκδοση που μου έδωσες, δεν μπορώ να κάνω τίποτα.
Μόλις μου πει Number: ότι και να βάλω παίρνω αυτό το error:
*** error: number out of range

Τι στο καλό; Θα... πηδηχτώ από το παράθυρο! :lol:

Αφαίρεσε τις γραμμές 60 με 64 (όλο το if δλδ). Είναι αυτό που ελέγχει για τιμές μεγαλύτερες των double.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι