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

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

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

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

Εγώ ,που ακόμα δεν ασχολούμαι με C :oops: , κατάλαβα για το πρόγραμμά σου:

-Στην αρχή δηλώνει 2 μεταβλητές τις οποίες μετατρέπεις σε ακέραιους.
-Δημιουργείς μια συνάρτηση στη οποία υπολογίζονται διάφορες πράξεις,λίστες,δίνεις τιμές στο i και στο p.
-Καλείς την παραπάνω συνάρτηση.
-Τυπώνει στην οθόνη "Hello World".

Αυτά από ότι κατάλαβα σύμφωνα με τις γνώσεις μου στην python. Συγχωρήστε με αν κάνω λάθος! :oops: :roll:
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 » 24 Μαρ 2011, 22:54

Qdata έγραψε:Εγώ ,που ακόμα δεν ασχολούμαι με C :oops: , κατάλαβα για το πρόγραμμά σου:

-Στην αρχή δηλώνει 2 μεταβλητές τις οποίες μετατρέπεις σε ακέραιους.
-Δημιουργείς μια συνάρτηση στη οποία υπολογίζονται διάφορες πράξεις,λίστες,δίνεις τιμές στο i και στο p.
-Καλείς την παραπάνω συνάρτηση.
-Τυπώνει στην οθόνη "Hello World".

Αυτά από ότι κατάλαβα σύμφωνα με τις γνώσεις μου στην python. Συγχωρήστε με αν κάνω λάθος! :oops: :roll:


Σωστός!!! Απλά να πώ κάτι...

το παραπάνω είναι ο κώδικας(τι βλέπουμε δηλαδή!) και όπως είπε και ο Qdata πάνω κάτω αυτό είναι...απλά εγώ θέλω να μάθω τον αλγόριθμο που εκτελεί! Με άλλα λόγια δεν μιλάω για C αλλα για τον αλγόριθμο!

@simosx αυτό που είπες δεν στέκει γιατί εάν για παράδειγμα το πάρω και ανοίξω νέο θέμα και ρωτήσω "Δεν καταλαβαίνω το πρόγραμμα μπορεί να μου το εξηγήσει κανείς; "...εκεί θα απαντήσεις...;;; Μαλλον ΝΑΙ! Οπότε;

Φιλικά linuxs...
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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 » 24 Μαρ 2011, 22:57

Qdata έγραψε:Εγώ ,που ακόμα δεν ασχολούμαι με C :oops: , κατάλαβα για το πρόγραμμά σου:

-Στην αρχή δηλώνει 2 μεταβλητές τις οποίες μετατρέπεις σε ακέραιους.
-Δημιουργείς μια συνάρτηση στη οποία υπολογίζονται διάφορες πράξεις,λίστες,δίνεις τιμές στο i και στο p.
-Καλείς την παραπάνω συνάρτηση.
-Τυπώνει στην οθόνη "Hello World".

Αυτά από ότι κατάλαβα σύμφωνα με τις γνώσεις μου στην python. Συγχωρήστε με αν κάνω λάθος! :oops: :roll:


Πριν λίγα λεπτά διόρθωσα το πρόγραμμα ώστε να λειτουργεί και σε Ubuntu 32-bit (όπως έχεις και εσύ).
Οπότε δοκίμασε ξανά, και παρατήρησε αν εμφανίζει ακόμα το μήνυμα.
προσωπικό ιστολόγιο ϗ πλανήτης 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 που εκτελείται

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

simosx έγραψε:
Qdata έγραψε:Εγώ ,που ακόμα δεν ασχολούμαι με C :oops: , κατάλαβα για το πρόγραμμά σου:

-Στην αρχή δηλώνει 2 μεταβλητές τις οποίες μετατρέπεις σε ακέραιους.
-Δημιουργείς μια συνάρτηση στη οποία υπολογίζονται διάφορες πράξεις,λίστες,δίνεις τιμές στο i και στο p.
-Καλείς την παραπάνω συνάρτηση.
-Τυπώνει στην οθόνη "Hello World".

Αυτά από ότι κατάλαβα σύμφωνα με τις γνώσεις μου στην python. Συγχωρήστε με αν κάνω λάθος! :oops: :roll:


Πριν λίγα λεπτά διόρθωσα το πρόγραμμα ώστε να λειτουργεί και σε Ubuntu 32-bit (όπως έχεις και εσύ).
Οπότε δοκίμασε ξανά, και παρατήρησε αν εμφανίζει ακόμα το μήνυμα.


Όχι, δεν μου εμφανίζει τίποτα.
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 που εκτελείται

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

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


Εξαιρετικά! Και αυτή είναι η ουσία της άσκησης, γιατί δεν εμφανίζει κάτι; Πως είναι δυνατόν;
προσωπικό ιστολόγιο ϗ πλανήτης 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 που εκτελείται

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

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


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


Χμ...Πιστεύω πως το αίτιο είναι εδώ μέσα:
Κώδικας: Επιλογή όλων
if (sizeof(int*)==8)
p[i*6+2]+=15;
else
p[i*3 + 2] += 16;


Βασικά είμαι 90% σίγουρος.Δεν μπορώ να βρω κάτι άλλο αλλού!
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 » 24 Μαρ 2011, 23:26

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


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


Χμ...Πιστεύω πως το αίτιο είναι εδώ μέσα:
Κώδικας: Επιλογή όλων
if (sizeof(int*)==8)
p[i*6+2]+=15;
else
p[i*3 + 2] += 16;


Βασικά είμαι 90% σίγουρος.Δεν μπορώ να βρω κάτι άλλο αλλού!


Δεν μπορώ να καταλάβω τι λογική...! Εδώ είναι η ουσία φίλε μου Qdata...όλα τα υπόλοιπα είναι απλά κώδικας :)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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 » 24 Μαρ 2011, 23:47

Βασικά, ο κώδικας εκεί πρέπει να λέει: Αν κάποιος από τους ακέραιους αριθμούς(το i και το p) έχουν μέγεθος ίσο με 8(προφανώς θα εννοεί τα bytes) τότε το p[i επί 6+2] θα είναι μεγαλύτερο από το 15(?) (Κάτι σαν ανίσωση;).Αλλιώς p[i επί 3 + 2] += 16 (?).Δεν κατάλαβα και πολύ αλλά πιστεύω πως κάπου μπλέκονται τα bytes τις λέξεις "Hello World!\n".

8bits=1byte
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 που εκτελείται

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

Qdata έγραψε:Βασικά, ο κώδικας εκεί πρέπει να λέει: Αν κάποιος από τους ακέραιους αριθμούς(το i και το p) έχουν μέγεθος ίσο με 8(προφανώς θα εννοεί τα bytes) τότε το p[i επί 6+2] θα είναι μεγαλύτερο από το 15(?) (Κάτι σαν ανίσωση;).Αλλιώς p[i επί 3 + 2] += 16 (?).Δεν κατάλαβα και πολύ αλλά πιστεύω πως κάπου μπλέκονται τα bytes τις λέξεις "Hello World!\n".

8bits=1byte

Δεν εμπλέκονται,παραπλανητικό είναι.
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 » 24 Μαρ 2011, 23:55

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


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


Μήπως γιατί ξέχασες τα printf ;;; :silent:
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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