Άσκηση C: γιατί δεν τυπώνεται το μήνυμα;

...ασύγχρονα μαθήματα γλώσσας C

Re: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό Qdata » 24 Μαρ 2011, 23:58

linuxs έγραψε:
simosx έγραψε:
Qdata έγραψε:
Όχι, δεν μου εμφανίζει τίποτα.


Εξαιρετικά! Και αυτή είναι η ουσία της άσκησης, γιατί δεν εμφανίζει κάτι; Πως είναι δυνατόν;


Μήπως γιατί ξέχασες τα printf ;;; :silent:


Εκεί είναι το θέμα!Ενώ έχει το printf σε εμένα δεν εμφανίζει τίποτα.
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: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό linuxs » 25 Μαρ 2011, 00:09

Qdata έγραψε:
Εκεί είναι το θέμα!Ενώ έχει το printf σε εμένα δεν εμφανίζει τίποτα.


αυτό δεν νομίζω πως είναι μεγάλο πρόβλμα γιατί αν δείς προσεκτικά στην συνάρτηση...
ΔΕΝ υπάρχει,
Κώδικας: Επιλογή όλων
return

που σημαίνει πως δεν επιστρέφει τίποτα η συνάρτηση που σημαίνει πως δεν επιστρέφει ποτέ πίσω στην main και δεν εκτελείται καν το printf.
έγραψε:
@Simos το αρχικό ποστ σου ήταν ερώτηση για το τί ακριβώς κάνει και πως το κάνει ;;; Όχι έτσι;;; Ελπίζω να μην κατάλαβα λάθος...
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό Qdata » 25 Μαρ 2011, 00:15

Ναι, έχεις δίκιο.

Δεν κατάλαβα πως γίνετε το:
Κώδικας: Επιλογή όλων
printf("Hello World!\n");


να εξαρτάτε από την συνάρτηση calculate.

@simosx μας έβαλες δύσκολα! :)
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: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό linuxs » 25 Μαρ 2011, 00:19

Επειδή το εξέτασα αρκετά το θέμα έχω να πω το εξής:

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

argc, argv[ ] χωρίς να τα χρησιμοποιεί είναι ανόητο!
int ως τιμή επιστροφής και χωρίς return είναι σοβαρό λάθος!
ορισμός μια συνάρτησης που δεν χρειάζεται!

οπότε δυστυχώς δεν μπορώ να δεχτώ (τουλάχιστον μέχρι να μου εξηγήσει κάποιος πως τρέχει και να διορθωθούν τα παραπάνω) οτι είναι σωστό πρόγραμμα!

Φιλικά Βασίλης...
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό Qdata » 25 Μαρ 2011, 00:30

Σωστά Βασίλη.Εγώ πάντως διότι δεν ξέρω από C δεν μπορώ να πω κάτι. :oops: Αν είναι σωστό ή όχι ακόμα δεν το γνωρίζω.
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: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό linuxs » 25 Μαρ 2011, 00:41

Qdata έγραψε:Σωστά Βασίλη.Εγώ πάντως διότι δεν ξέρω από C δεν μπορώ να πω κάτι. :oops: Αν είναι σωστό ή όχι ακόμα δεν το γνωρίζω.


Πέσαμε σε περίπτωση γιατί πρόκειται για κεφάλαιο που δεν έχω γράψει ακόμη! Τα έχω γράψει σχεδόν όλα εκτός απο τους δείκτες και συναρτήσεις! ;) Νομίζω πως είναι αρκετά σημαντικά οπότε θα συμβουλευτώ και την ροή ενός βιβλίου...για να είναι οσο το δυνατόν πιο κατανοητα!

Ήθελα να ρωτήσω κάτι για την python αλλα θα ανοίξω άλλο θέμα γιατί δεν κολλάει...
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό simosx » 25 Μαρ 2011, 01:16

linuxs έγραψε:Επειδή το εξέτασα αρκετά το θέμα έχω να πω το εξής:

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

argc, argv[ ] χωρίς να τα χρησιμοποιεί είναι ανόητο!


Αυτό δεν είναι κρίσιμο στην άσκηση. Αν δεις ξανά, τα έβγαλα.

linuxs έγραψε:int ως τιμή επιστροφής και χωρίς return είναι σοβαρό λάθος!


δεν είναι «σοβαρό λάθος». Είναι κάτι που δεν έχει σημασία στην άσκηση. Μπορείς να δοκιμάσεις να το βάλεις σε περίπτωση που αυτό είναι η λύση.

linuxs έγραψε:ορισμός μια συνάρτησης που δεν χρειάζεται!


...

linuxs έγραψε:οπότε δυστυχώς δεν μπορώ να δεχτώ (τουλάχιστον μέχρι να μου εξηγήσει κάποιος πως τρέχει και να διορθωθούν τα παραπάνω) οτι είναι σωστό πρόγραμμα!


Η άσκηση είναι να διαπιστώσεις γιατί δεν τρέχει αυτή η printf() ενώ κανονικά θα έπρεπε.
Πρέπει να διαπιστώσεις ο ίδιος τι γίνεται και πως γίνεται. Επειδή πρόκειται για άσκηση.
Είναι σημαντικό σε αυτό το σημείο να μην τα παρατήσεις, διότι ο στόχος σου είναι να μάθεις C.
προσωπικό ιστολόγιο ϗ πλανήτης 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: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό konnn » 25 Μαρ 2011, 02:02

Τίποτα δεν είναι λάθος στην άσκηση,είναι τρικ του Σίμου...
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό konnn » 25 Μαρ 2011, 02:07

Το πρώτο if έχει να κάνει με το 32βιτ σύστημα ενώ το δεύτερο else με το 64 .

Edit:
Εάν μειώσετε την τιμή 6 σε πχ 1 και την 3 σε πχ 2 δουλεύει.Γιατί;;;"Υπερχείλιση";;;Γράφεις σε θέση πίνακα που δεν υπάρχει.!!!!!
Τελευταία επεξεργασία από konnn και 25 Μαρ 2011, 02:14, έχει επεξεργασθεί 1 φορά/ες συνολικά
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Γράψιμο στη μνήμη προγράμματος C που εκτελείται

Δημοσίευσηαπό linuxs » 25 Μαρ 2011, 02:13

Εάν πατήσεις
Κώδικας: Επιλογή όλων
cd ..

θα δείς 12 Κεφάλαια σχετικά με C! Τα οποία είναι γραμμένα απο το χεράκι μου...αρα δεν νομίζω πως δεν ξέρω C. Τέτοιο κώδικα δεν έχω ξαναδεί...η ίσως έχω δεί τους πρώτους μήνες που έκανα C. Είναι μια αυστηρή γλώσσα και δεν μπορεί ο καθένας να την φέρνει όπως θέλει και μην βάλει κάποια πράγματα όπως return η να προσθέτει κάποια που δεν χρειάζονται. Ακόμη δεν έχω ακούσει κάποιο λόγο για να καταλάβω τι έχεις κάνει στο πρόγραμμα. Το μόνο που καταλαβαίνω είναι οτι προσπαθείς να με πείσεις για κάτι που...δεν τρέχει σωστά? τρέχει μόνο σε 64 bit(αρχικά)? Δεν μπορώ να σε καταλάβω...δυστυχώς!

Επίσης αφού το θέτεις ως άσκηση φτιάξε λίγο τον τίτλο like: "Άσκηση στην C - <χαρακτηρισμός της άσκησης>". Ουσιαστικά, αυτό που καταλαβαίνω είναι οτι το πρόγραμμα σου:

Καλεί μια συνάρτηση, που κανονικά επιστρέφει κάτι αλλα εσύ δεν το επιστρέφεις και θέλεις να μας δείξεις πως, όταν δεν επιστρέφεται κάτι δεν συνεχίζεται η ροή του προγράμματος στην main. Πολύ απλά... Σωστά?
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

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

Επιστροφή στο Μαθήματα C

cron