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

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

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

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

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

medigeek έγραψε:Ορίστε ένα tutorial με C και Python κώδικα για δημιουργία gui με τη βοήθεια του glade 3: http://www.micahcarrick.com/gtk-glade-t ... art-1.html -- δώσε περισσότερη σημασία στη χρήση HBox και VBox, τα οποία βοηθάνε στη διαχώρηση του παραθυρου.
Qdata έγραψε:
UnKnown96 έγραψε:
M.Jackson έγραψε:Παίρνεις ένα IDE.

Μέχρι εδώ καλά...

M.Jackson έγραψε:Βάζεις τα αντικείμενα στη φόρμα και γράφεις κώδικα για τα αντικείμενα.

Εδώ δεν σε πιάνω... :P


Εσύ σχεδιάζεις τα αντικείμενα που θα υπάρχουν στο GUI -δηλαδή όλο το γραφικό περιβάλλον- και στη συνέχεια γράφεις τον κώδικα!Πχ πες ότι έχεις ένα κουμπί και ένα κουτί κειμένου με ονόματα button1 και textbox1 αντίστοιχα.Ο κώδικας θα έχει μορφή σαν:
Κώδικας: Επιλογή όλων
ΑΝ button1 == True ΤΌΤΕ textbox1 = "Hello World!"


Ευχαριστώ. Θα το ψάξω το θέμα και θα σας πω...
Off topic:
Ρε παιδιά γιατί τόσο διάσημη η Python στο Open Source;
Σε σύγκιση με Perl ( που την έχω δοκιμάσει ελάχιστα ) και την Ruby (αγαπημένη μου Interpreted), τη βλέπω πολύ κατώτερη και πολύ άσχημο compatibility η μία έκδοση με την άλλη...
Άβαταρ μέλους
UnKnown96
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 370
Εγγραφή: 08 Ιουν 2010, 15:23
Τοποθεσία: Ρόδος
Εκτύπωση

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

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

νόμιζα ότι το glade ήταν μόνο για python...
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 » 19 Ιουν 2011, 18:44

clepto έγραψε:νόμιζα ότι το glade ήταν μόνο για python...


Κάθε γλώσσα μπορεί να χρησιμοποιήσει τα παράθυρα που φτιάχνεις με το Glade.
Με το Glade φτιάχνεις εύκολα παράθυρα σε αρχείο XML, και η πλατφόρμα GNOME αναλαμβάνει να τα απεικονίσει όταν τα φορτώνει το πρόγραμμά σου.
προσωπικό ιστολόγιο ϗ πλανήτης 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

Δημοσίευσηαπό clepto » 19 Ιουν 2011, 19:17

ευχαριστώ για την διευκρίνηση..
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

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

UnKnown96 έγραψε:Θέλω για περιβάλλον KDE, και το πρόγραμμα μου δεν είναι γραμμένο σε Python... Δεν θα το άντεχαν τα νεύρα μου.

Για KDE μπορείς να χρησιμοποιήσεις το QTDesigner. Είναι η ίδια φιλοσοφία. Σχεδιάζεις με αυτό το περιβάλλον του προγράμματος σου και αυτό δημιουργεί ένα αρχείο XML. Το αρχείο αυτό μπορείς με την κατάλληλη συνάρτηση να το "φορτώσεις" και να έχεις έτοιμα και διαθέσιμα όλα τα αντικείμενα που δημιούργησες. Από εκεί και πέρα φτιάχνεις τις συνδέσεις μεταξύ του παραθύρου και του προγράμματος σου. Δηλαδή, συγκεκριμένα, έχεις ένα κομμάτι κώδικα που ελέγχεις αν ο χρήστης πάτησε +,-,*,/ ή =. Όταν ο χρήστης πατήσει το κουμπί + στο παράθυρο αυτό θα στείλει ένα σήμα στο πρόγραμμα σου ότι πατήθηκε το κουμπί + κ.ο.κ. Έτσι λοιπόν θα έχεις τώρα ένα κομμάτι κώδικά που θα ελέγχει αν είναι σήμα από + ή - ή * ή / ή * = κουμπί και θα κάνεις ακριβώς το ίδιο που θα έκανες αν ο χρήστης το είχε πατήσει σε γραμμή εντολών.

Off topic:
Αυτό που αναφέρεις είναι το μεγάλο debate στο open source. Και οι τρεις γλώσσες έχουν ορκισμένους εχθρούς και φίλους. Πιστεύω ότι Perl και Python έχουν τα πρωτία στον αριθμό των βιβλιοθηκών ενώ Ruby έχει έναν πιο μοντέρνο τρόπο που βλέπει τον προγραμματισμό. Πιστεύω ότι είναι καθαρά θέμα του τι θες να κάνεις και προσωπικής προτίμησης.
Programming blog
Γνώσεις ⇛ Linux: Καλά ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 10.04 64bit
Προδιαγραφές ⇛ Phenom II │ 8GB │ 2xATI 5670 │ HD Audio │ TFT 23"
Άβαταρ μέλους
sv1jsb
babeTUX
babeTUX
 
Δημοσιεύσεις: 88
Εγγραφή: 01 Ιουν 2011, 23:50
Εκτύπωση

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

Δημοσίευσηαπό Qdata » 19 Ιουν 2011, 19:22

UnKnown96 έγραψε:Ευχαριστώ. Θα το ψάξω το θέμα και θα σας πω...
Off topic:
Ρε παιδιά γιατί τόσο διάσημη η Python στο Open Source;
Σε σύγκιση με Perl ( που την έχω δοκιμάσει ελάχιστα ) και την Ruby (αγαπημένη μου Interpreted), τη βλέπω πολύ κατώτερη και πολύ άσχημο compatibility η μία έκδοση με την άλλη...


Off topic:
Η Python χρησιμοποιήτε πολύ γιατί είναι γλώσσα scripting(σαν την Ruby).Επίσης έχει πολύ απλή σύνταξη, υποστηρίζει αντικειμενοστραφή προγραμματισμό και για αυτό έχει μεγάλη θέση.Το Ubuntu την έχει προεγκατεστημένη και την χρησιμοποιεί σε πολλές "εργασίες".Πχ το Ubuntu Software Center είναι σε python γραμμένο νομίζω.
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

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

Δημοσίευσηαπό medigeek » 19 Ιουν 2011, 19:48

Qt designer στο ubuntu software center :) - ουπς, με πρόλαβαν :P
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

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

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

Ωραίο είναι, αλλά υπάρχουν προβλήματάκια.

Με πρώτο το κρασάρισμα στη διαίρεση δεκαδικών μικρότερων του 1 και μεγαλύτερων του 0 (σου έχω δώσει τη λύση σε προηγούμενο post).

Μετά, όσο χρησιμοποιείς την scanf() για να διαβάζεις το input, δυστυχώς πάντα θα έχεις πρόβλημα στην είσοδο και το πρόγραμμα δεν θα αποπνέει αέρα σοβαρής δουλειάς (π.χ. η διαχείριση του πρόωρου ENTER στην είσοδο, ή το θέμα με το line-buffer και τα απομεινάρια). Για να το ξεπεράσεις ο τρόπος είναι αυτός που επίσης σου έχω αναλύσει σε προηγούμενο post.

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

Κατόπιν, τον κώδικα τον έκανες... unreadable :( Το καθάρισμα που έκανες, αφαιρώντας στοίχιση, σχόλια, κλπ δεν κάνει απολύτως καμία διαφορά στην ταχύτητα εκτέλεσης του προγράμματος.

Και τέλος, η σήμανση των πράξεων που χρησιμοποιείς ονομάζεται Polish Notation (ή prefix notation) κι έχει νόημα να τη χρησιμοποιείς μονάχα όταν έχεις πολλούς όρους και διάφορες πράξεις, όλα σε μια γραμμή και θέλεις να αναγνωρίσεις την προτεραιότητα των πράξεων, έχει δεν έχεις παρενθέσεις, πριν ξεκινήσεις να τις υπολογίσεις.

Τόσο το Polish Notation, όσο και το Reverse Polish Notation ή αλλιώς postfix notation (που είναι και πιο συνηθισμένο) υλοποιούνται με χρήση μιας ή δυο στοιβών (stacks).

Η σωστή διαδικασία λοιπόν είναι να διαβάζεις όλες τις πράξεις σε infix notation (αυτό που χρησιμοποιεί ο άνθρωπος δηλαδή) να το μετατρέπεις εσωτερικά είτε σε prefix είτε σε postfix notation (ώστε να μη χρειάζονται παρενθέσεις για τις προτεραιότητες των πράξεων) και να κάνεις κατόπιν τις πράξεις.

UnKnown96 έγραψε:Έτοιμη και η V5!!!
Λοιπόν, σε αυτή την έκδοση έκανα:
1) ΠΟΛΎ ΚΑΘΑΡΙΣΜΑ (από 150 γραμμές περίπου, έπεσα στις 60!!!)
2) Το πρόγραμμα γράφτηκε από την αρχή με βάση το πρώτο αλλά με ένα νέο τρόπο να γίνονται οι πράξεις. ( Αυτό που έλεγε ο migf1 στο 2ο post της προηγούμενης σελίδας... περίπου....)

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

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

Δημοσίευσηαπό medigeek » 19 Ιουν 2011, 22:50

Off topic:
UnKnown96 έγραψε:
Ρε παιδιά γιατί τόσο διάσημη η Python στο Open Source;
Σε σύγκιση με Perl ( που την έχω δοκιμάσει ελάχιστα ) και την Ruby (αγαπημένη μου Interpreted),

Μάλλον η διασημότητα της οφείλεται στο ότι το όνομα το πήρε από τον monty python. :)
Δε θέλω να συγκρίνω γλώσσες, χρησιμοποιώ την κάθε μια γι' αυτό που κάνει καλύτερα. Στην περίπτωση της python, μπορώ να δημιουργήσω σχετικά εύκολα gui. Άσε που διαβάζεται εύκολα.
UnKnown96 έγραψε:τη βλέπω πολύ κατώτερη και πολύ άσχημο compatibility η μία έκδοση με την άλλη...

Πολύ κατώτερη για ποιο σκοπό; Εξαρτάται τι φτιάχνεις.
Δεν θεωρώ το compatibility άσχημο. Από την python 2.5 μέχρι την 3.0 υπάρχουν αλλαγές. Προσπαθούν να διορθώσουν τη λογική των modules, να συμπεριλάβουν τα σωστά methods/functions στα σωστά (ή πιο λογικά) modules. Αυτές οι αλλαγές σε κάθε έκδοση αναφέρονται ως deprecations και υπάρχουν οι ανάλογες προειδοποιήσεις.
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

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

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

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

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

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