Fawkes Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 Καλησπέρα! Είμαι ολοκαίνουριος στην c και έχω αυτήν την εργασία. Θέλω ένα πρόγραμμα που να διαβάζει εναν αριθμό του δεκαδικού συστήματος (πχ. 9) και να δίνει ως αποτέλεσμα τον αντίστοιχο στο δυαδικό σύστημα. Ό,τι έχω σκεφτεί χρειάζεται επανάληψη την οποία δεν έχουμε μάθει ακόμα. Υπάρχει τρόπος να λυθεί χωρίς επανάληψη, πίνακα? Γενικά ψάχνω λύση με όσο το δυνατόν πιο απλές εντολές... έχω γράψει αυτόν τον κώδικα, ο οποίος βέβαια δεν είναι ολοκληρωμένος. Με μια επανάληψη απο το b=a νομίζω θα λυνόταν αλλά μπουχουχου δεν ξέρω. Υπάρχει άλλος τρόπος? >#include <stdio.h> int main () { int a,b; printf("Dose enan arithmo\n"); scanf("%d",&a); getchar(); printf ("O arithmos autos sto dyadiko susthma einai: "); getchar(); b=a; b=b%2; a=a/2; if (b==1) { printf("1\b\b"); getchar(); } else { printf ("0\b\b"); getchar(); } b=a; return 0; } Ευχαριστώ εκ των προτέρων για την βοήθεια ΥΓ. Δεν ζητάω να μου κάνετε την έργασία, ούτε θέλω να κλέψω τον χρόνο σας, απλά αν μπορουσατε να με καθοδηγήσετε.
Timonkaipumpa Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 Βασικά... είναι λάθος (εάν κατάλαβα καλά τι θες να κάνεις). Εάν εγώ σου δώσω τον 9, τι δυαδικό σύστημα λέμε; Οπότε ο αλγόριθμος πάει ως εξής: Εισαγωγή χαρακτήρων Έλεγχος εάν είναι 0 ή 1 Εάν ναι, μετατροπή σε δεκαδικό Εάν όχι, κάνε κάτι Για την μετατροπή, μπορείς είτε να υλοποιήσεις έναν bit array και απλά να τον χειριστείς ή μπορείς να κάνεις πράξεις μόνος σου (την μετατροπή δλδ).
Fawkes Δημοσ. 28 Οκτωβρίου 2011 Μέλος Δημοσ. 28 Οκτωβρίου 2011 όχι, βασικά θέλω να διαβάζει εναν αριθμό του δεκαδικού συστήματος (πχ. 9) και να δίνει ως αποτέλεσμα τον αντίστοιχο στο δυαδικό σύστημα edit: το βάζω και στο πρώτο ποστ για να μην μπερδέψει κι άλλο κόσμο. edit2: αα τώρα το είδα. Είχα βάλει στο printf "ο αριθμός στο δεκαδικό σύστημα είναι:" γι αυτό σε μπέρδεψα. Τώρα το άλλαξα. Το σωστό είναι "Ο αριθμός στο δυαδικό σύστημα είναι:"
migf1 Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 Είναι σίγουρο πως μπορεί να γίνει χωρίς επαναλήψεις (loop); Δεν μου 'ρχεται κάποια λύση χωρίς loop.
V.I.Smirnov Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 Πάλι "παλιό κρασί σε καινούρια μποτίλια"..... -
MeTaXaS4 Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 αν ήσουν για C++ θα ήταν οκ το > #include <iostream> #include <bitset> using namespace std; int main(void) { cout<<bitset<8>(10); } πάντως αυτό βρίσκω μόνο να σου κάνει(χωρίς επανάληψη) > #include<stdio.h> void printbin(int num) { int binnum; binnum=num%2; num=num/2; if (num!=0) printbin(num); printf("%d",binnum); return; } int main(void) { int posnumber,binnum; printf("Enter a positive number : "); scanf("%d",&posnumber); printbin(posnumber); printf("\n"); return 0; } //the code isn't mine //http://www.nvnews.net/vbulletin/showpost.php?p=726823&postcount=2
nilosgr Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 Μηπως ο χρηστης δινει αριθμο απ το 0 ως το 9 ;
migf1 Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 Και η αναδρομή επανάληψη δεν λογίζεται; ... πάντως αυτό βρίσκω μόνο να σου κάνει(χωρίς επανάληψη) > #include<stdio.h> void printbin(int num) { int binnum; binnum=num%2; num=num/2; if (num!=0) printbin(num); printf("%d",binnum); return; } int main(void) { int posnumber,binnum; printf("Enter a positive number : "); scanf("%d",&posnumber); printbin(posnumber); printf("\n"); return 0; } //the code isn't mine //http://www.nvnews.net/vbulletin/showpost.php?p=726823&postcount=2
MeTaXaS4 Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 ναι μπορείς να το πεις και αυτό.. βέβαια αν όντως ζητάει μόνο από 0 εώς 9 η λύση είναι απλή.
Fawkes Δημοσ. 28 Οκτωβρίου 2011 Μέλος Δημοσ. 28 Οκτωβρίου 2011 Είναι σίγουρο πως μπορεί να γίνει χωρίς επαναλήψεις (loop); Δεν μου 'ρχεται κάποια λύση χωρίς loop. Δεν γνωρίζω, ελπίζω πως ναι... αν ήσουν για C++ θα ήταν οκ το > #include <iostream> #include <bitset> using namespace std; int main(void) { cout<<bitset<8>(10); } πάντως αυτό βρίσκω μόνο να σου κάνει(χωρίς επανάληψη) > #include<stdio.h> void printbin(int num) { int binnum; binnum=num%2; num=num/2; if (num!=0) printbin(num); printf("%d",binnum); return; } int main(void) { int posnumber,binnum; printf("Enter a positive number : "); scanf("%d",&posnumber); printbin(posnumber); printf("\n"); return 0; } //the code isn't mine //http://www.nvnews.net/vbulletin/showpost.php?p=726823&postcount=2 δεν έχω πολύ χρόνο τώρα αλλά το βράδυ που θα γυρίσω θα το μελετήσω και θα σου πω. Με μια πρώτη ματιά πάντως μ'αρέσει! Μηπως ο χρηστης δινει αριθμο απ το 0 ως το 9 ; ναι μπορείς να το πεις και αυτό.. βέβαια αν όντως ζητάει μόνο από 0 εώς 9 η λύση είναι απλή. όχι δεν είπε κάτι τέτοιο. ευχαριστώ για τις απαντήσεις
V.I.Smirnov Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 Έκανα εναν υπαινιγμό στο post #5 αλλά δεν έπιασες το νόημα. Το προβληματάκι αυτό, στο παρελθόν έχει συζητηθεί εδώ επανειλημμένως και έχουν δοθεί πολλές λύσεις. Ο κάθε επίδοξος, καλό είναι πριν ανοίξει νέο θέμα, να χρησιμοποιεί και την αναζήτηση του forum που και που... Επίσης, αναρωτιέμαι πως γίνεται οι σχολές (ειδικά οι μεγάλες) να μην έχουν ένα forum της προκοπής όπου οι φοιτητές θα συζητούν όλα αυτά και άλλα σχετικά θέματα πολύ κοντύτερα στο εκπαιδευτικό τους πλαίσιο (παράδειγμα είναι το Forums.gr). - 1
nilosgr Δημοσ. 28 Οκτωβρίου 2011 Δημοσ. 28 Οκτωβρίου 2011 Επίσης, αναρωτιέμαι πως γίνεται οι σχολές (ειδικά οι μεγάλες) να μην έχουν ένα forum της προκοπής όπου οι φοιτητές θα συζητούν όλα αυτά και άλλα σχετικά θέματα πολύ κοντύτερα στο εκπαιδευτικό τους πλαίσιο (παράδειγμα είναι το Forums.gr). - Εχουν, αλλα δεν επιτρεπουν να λυνεται "δημοσια" η ασκηση. (ελπιζω να σε καλυψα)
Fawkes Δημοσ. 29 Οκτωβρίου 2011 Μέλος Δημοσ. 29 Οκτωβρίου 2011 Έκανα εναν υπαινιγμό στο post #5 αλλά δεν έπιασες το νόημα. Το προβληματάκι αυτό, στο παρελθόν έχει συζητηθεί εδώ επανειλημμένως και έχουν δοθεί πολλές λύσεις. Ο κάθε επίδοξος, καλό είναι πριν ανοίξει νέο θέμα, να χρησιμοποιεί και την αναζήτηση του forum που και που... Επίσης, αναρωτιέμαι πως γίνεται οι σχολές (ειδικά οι μεγάλες) να μην έχουν ένα forum της προκοπής όπου οι φοιτητές θα συζητούν όλα αυτά και άλλα σχετικά θέματα πολύ κοντύτερα στο εκπαιδευτικό τους πλαίσιο (παράδειγμα είναι το Forums.gr). - νόμιζα εννούσες κλασσική άσκηση, νέοι περιορισμοί για την λύση της. Το μόνο που βρήκα σχετικό όταν έκανα την αναζήτηση είναι αυτό! το οποίο δεν βοήθησε καθόλου αφού μιλάει για την αντίθετη μετατροπή. Δεν ξέρω αν υπάρχει ίδιο θέμα με αυτό που έχω ανοίξει,που δεν μου το έβγαλε στην αναζήτηση, άλλα αν υπάρχει δώσε μου το λινκ να το διαβάσω. Και τέλος θα μπορούσες να το πεις πιο ευγενικά και ξεκάθαρα και όχι με υπαινιγμούς. Όπως και να'χει έκανα αναζήτηση πριν ανοίξω το θέμα
V.I.Smirnov Δημοσ. 29 Οκτωβρίου 2011 Δημοσ. 29 Οκτωβρίου 2011 Δεν έψαξες καλά. Δες εδώ : http://www.insomnia.gr/topic/340849-decimal-to-binary-in-c/page__hl__%ce%b4%ce%b5%ce%ba%ce%b1%ce%b4%ce%b9%ce%ba%ce%bf Και υπάρχουν κι άλλα. Χώρια που με μια αναζήτηση στο google θα βρεις αμέσως αμέτρητα... -
migf1 Δημοσ. 29 Οκτωβρίου 2011 Δημοσ. 29 Οκτωβρίου 2011 Η ουσία είναι πως δεν γίνεται χωρίς επανάληψη (ή τουλάχιστον δεν έχω συναντήσει εγώ ποτέ αλγόριθμο χωρίς επανάληψη).
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα