άσκηση - εύρεση ψηφίων αριθμού

Ξεκίνησε από Πανάγος94, 27 Μαρ 2012, 07:51:12 ΜΜ

« προηγούμενο - επόμενο »

Πανάγος94

Δεν ξέρω εάν υπήρξε στο παρελθόν παρόμοια άσκηση, παρόλα αυτά εγώ την δημοσιεύω...

Να γραφεί αλγόριθμος που θα διαβάζει από τον χρήστη έναν αριθμό και θα βρίσκει το πλήθος των ψηφίων του. Έπειτα θα βρίσκει και θα εμφανίζει κάθε ψηφιο του.
παρατήρηση: θεωρήστε ότι ο αριθμός είναι θετικός και ακέραιος

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

Σπύρος Δουκάκης

Η αντιμετώπιση του θέματος μπορεί να γίνει και χωρίς χρήση πίνακα. Επίσης, δεν είναι απαραίτητο να είναι ο αριθμός θετικός και ακέραιος (αρκεί να έχω κάνει τις απαραίτητες ενέργειες προηγουμένως).

π.χ.

πλ <- 0
Διάβασε α
Αρχή_επανάληψης
  πλ <- πλ + 1
  Εκτύπωσε α mod 10
  α <- α div 10
Μέχρις_ότου α = 0
Εκτύπωσε πλ


Πανάγος94

ευχαριστώ για την υπόδειξη... ;D. Σε περίπτωση όμως που έλεγε επίσης:
"να ταξινομεί τα ψηφία του αριθμού σε αύξουσα/φθίνουσα σειρά και έπειτα να εμφανίζει τον αριθμό που προκύπτει". Αναγκαστικά θα έπρεπε να κρατήσουμε τα ψηφία σε πίνακα. Πιστεύω ότι ο δικός μου ο τρόπος καλύπτει οποιοδήποτε άλλο ερώτημα μπορεί να ερωτηθεί εν συνεχεία της άσκησης. Αν έχω άδικο διάψευσε με!

P.Tsiotakis

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

θα μπορούσες κάλλιστα να θεωρήσεις πως ο αριθμός είναι το πολύ δεκαψήφιος και να λυθεί το παραπάνω ζήτημα.

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

Καλή επιτυχία

Πανάγος94

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

evry

η δυναμική εκχώρηση μνήμης υπάρχει στις περισσότερες γλώσσες (C, C++, Java) αλλά δυστυχώς όχι στην δική μας ΓΛΩΣΣΑ και ούτε στην ψευδογλώσσα του βιβλίου.
Η λύση που έκανες είναι μια χαρά, απλά δεν γίνεται δεκτή στο συγκεκριμένο μάθημα, επειδή πρέπει να ακολουθούμε το βιβλίο.
Κατά τα άλλα όμως μπορείς να την υλοποιήσεις σε κάποια "πραγματική" γλώσσα.
Αν ρίξε μια ματιά στην python και στους δυναμικούς πίνακες. Θα σου αρέσει...
http://www.python-course.eu/

δες και το online μάθημα του MIT για εισαγωγή στον προγραμματισμό με την Python, είναι εξαιρετικό
MIT, A Gentle Introduction to Programming Using Python
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Πανάγος94

ευχαριστώ για το υλικό......έχω ασχοληθεί ελάχιστα με την python στο παρελθόν αλλά περισσότερο μου κέντρισε το ενδιαφέρον η C++....

evry

οκ τότε δες τα παρακάτω
πάνω αριστερά εκεί που λέει Download Course Materials  μπορείς να κατεβάσεις τα πάντα στον υπολογιστή σου (σημειώσεις, βιντεοδιαλέξεις, ασκήσεις, διαγωνίσματα, εργασίες , λύσεις κλπ)
Αν ψάχνεις να ξεκινήσεις από κάπου σε C++ είναι μια καλή αρχή

Introduction to C++
Practical Programming in C
Introduction to Algorithms

Σημείωση: Ο Rivest που διδάσκει το τελευταίο μάθημα είναι το R στον RSA.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Πανάγος94

ευχαριστώ!!...ότι ακριβώς χρειαζόμουν...