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

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

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

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

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

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

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

Αφαίρεσε τις γραμμές 60 με 64 (όλο το if δλδ). Είναι αυτό που ελέγχει για τιμές μεγαλύτερες των double.

Ή πριν το σβήσεις, δοκίμασε να αλλάξεις το if ως εξής:
Κώδικας: Επιλογή όλων

if ( errno == ERANGE ) // too big (or too small) num



αντί για: if ( errno ) που είναι τώρα.

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

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

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

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

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

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

UnKnown96 έγραψε:Ενσομάτωσα τα v1 και v2 σου στο αρχικό μου post διότι έχεις κάνει καλή δουλειά στον κώδικα.
Αν θες να τα αφαιρέσω πες μου.

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

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

Δημοσίευσηαπό UnKnown96 » 09 Ιουν 2011, 13:56

migf1 έγραψε:Ή πριν το σβήσεις, δοκίμασε να αλλάξεις το if ως εξής:
if ( errno == ERANGE ) // too big (or too small) num
αντί για: if ( errno ) που είναι τώρα.


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

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

Δημοσίευσηαπό simosx » 09 Ιουν 2011, 14:27

UnKnown96 έγραψε:
migf1 έγραψε:Ή πριν το σβήσεις, δοκίμασε να αλλάξεις το if ως εξής:
if ( errno == ERANGE ) // too big (or too small) num
αντί για: if ( errno ) που είναι τώρα.


Αυτό δούλεψε μιά χαρά αλλά το πρόβλημα με τα διπλά error παραμένει...
Πολύ παράξενο, στο δικό μου δεν βγάζει κανένα πρόβλημα, μόνο αυτό με το infinite loop που υπάρχει σε όλους, όχι μόνο στο FreeBSD.


Θα βοηθούσε πολύ αν έβαζες τον πηγαίο κώδικα σε αποθετήριο πηγαίου κώδικα, όπως GitHub.
Μπορείς να δεις πως χρησιμοποιείς αποθετήριο Git στο viewtopic.php?f=6&t=5424
Οπότε φτιάχνεις λογαριασμό στο GitHub και ανεβάζεις το πρόγραμμά σου.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

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

Δημοσίευσηαπό UnKnown96 » 09 Ιουν 2011, 14:36

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

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

Δημοσίευσηαπό clepto » 09 Ιουν 2011, 14:43

τον δικό σου...και όποιον άλλο μελοντικό γράψεις!
βοηθάει γιατί μπορούν να τον δουν άλλοι και να κάνουν διορθώσεις και παρατηρήσεις... ;)
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

Δημοσίευσηαπό simosx » 09 Ιουν 2011, 14:45

UnKnown96 έγραψε:Σε τι θα βοηθούσε;
Και ποιόν κώδικα;
Τον δικό μου ή του migf1;


Θα βοηθούσε όλους.
1. Εσένα, ώστε να καταγράψεις τις διαδοχικές εκδόσεις του προγράμματός σου, και να δεις εύκολα τις αλλαγές που έγιναν.
2. migf1, μπορεί εύκολα να κάνει προτάσεις ή βελτιώσεις, και να δεις τις διαφορές με απλό τρόπο
3. Υπόλοιπους, θα είναι σε θέση να βοηθήσουν.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

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

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

Καλησπέρα σε όλη την παρέα :)

Το Github δεν είναι λιγάκι overkill για τόσο απλά προγραμματάκια όπως με αυτό που παίζουμε εδώ; Άσε που πρέπει να εγκαταστήσω και τις αντίστοιχες εφαρμογές και στα Windows μηχάνηματα μου και να ανοίγω κι accounts στο github.com, και πόσο τα... βαριέεεεεμαιιιι :lol:

Υπάρχει βέβαια ένα θέμα με το code tag του φόρουμ, που μετατρέπει τα tabs σε spaces, δυσχεραίνοντας τη διατήρηση του style κατά την επικόλληση στο IDE, οπότε μπορούμε να χρησιμοποιούμε κάτι σαν το http://codepad.org/, που και καλό syntax-highilghting έχει και on-line compilation κάνει και για απλά προγραμματάκια βγάζει και output. Revision control για τόσο απλά προγραμματάκια νομίζω είναι περισσότερο βαβούρα παρά εξυπηρέτηση.

Όπως και να 'χει, για να επιστρέψω στο προκείμενο, θα μπορούσε κάποιο παιδί να επιβεβαιώσει/διαψεύσει το πρόβλημα που αντιμετωπίζει ο Unknown στο μενού, στη V2 μου; Από όσα έχει γράψει καταλαβαίνω πως δεν του λειτουργεί η fflush(stdin) πριν από την getchar(), με αποτέλεσμα να μην καθαρίζεται το input-buffer και σε κάθε επιλογή να "διαβάζεται" και το ENTER της προηγούμενης.

Φίλε UnKnown, ήθελα να αποφύγω να χρησιμοποιήσω string για να διαβάσω ένα μόνο χαρακτήρα, αλλά αν δεν υπάρχει άλλη λύση, δοκίμασε να αντικαταστήσεις το switch στην main() με το παρακάτω:
Κώδικας: Επιλογή όλων

switch ( tolower( *s_get(dummy, 2) ) ) // GET USER CHOICE

και να προσθέσεις στις μεταβλητές της main() το string dummy ως εξής:
Κώδικας: Επιλογή όλων

char dummy[1+1];


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

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

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

migf1 έγραψε:

Το Github δεν είναι λιγάκι overkill για τόσο απλά προγραμματάκια όπως με αυτό που παίζουμε εδώ; Άσε που πρέπει να εγκαταστήσω και τις αντίστοιχες εφαρμογές και στα Windows μηχάνηματα μου και να ανοίγω κι accounts στο github.com, και πόσο τα... βαριέεεεεμαιιιι :lol:


Αφιερώνεις μια ώρα για να το μάθεις, και μετά βοηθάει πάρα πολύ. Και βοηθάει ακόμα περισσότερο τον Unknown96 διότι τώρα μαθαίνει προγραμματισμό.
Ως γνωστό, ο άνθρωπος μαθαίνει από τα σφάλματα, όπου δεν τα επαναλαμβάνει. Με το git μπορείς να καταγράψεις όλες τις διαδοχικές εκδόσεις του προγράμματος, και μαθαίνεις τι έγινε στραβά.

Το GitHub επιτρέπει να γράφεις εύκολα και γρήγορα μικρά προγράμματα.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

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

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