Επιστρέφει τα ψηφία ενός οποιουδήποτε αριθμου

Ξεκίνησε από nikolasmer, 30 Μαρ 2017, 12:14:31 ΜΜ

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

nikolasmer

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

ssimaiof

Μπορούμε να καταχωρίσουμε τα ψηφία σε ένα πίνακα, επειδή όμως δεν γνωρίζουμε το πλήθος των ψηφίων, άρα και το ακριβές μέγεθος του πίνακα θα πρέπει στη δήλωση του πίνακα να κρατήσουμε ένα ικανό αριθμό θέσεων (που πάντως παραμένει αυθαίρετος) και να χρησιμοποιήσουμε μια μεταβλητή για τον ακριβή αριθμό των ψηφίων. Π.χ. στο παρακάτω παράδειγμα έχουμε πίνακα 10 θέσεων άρα λειτουργεί για αριθμούς μέχρι 10 ψηφία.
ΠΡΟΓΡΑΜΜΑ Ψηφία
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ψ[10], α, κ, i
ΑΡΧΗ
  ΓΡΑΨΕ 'Δώστε έναν φυσικό αριθμό :  '
  ΔΙΑΒΑΣΕ α
  ΚΑΛΕΣΕ Διαχωρισμός_Ψηφίων(α, Ψ, κ) 
  ΓΡΑΨΕ 'Πλήθος Ψηφίων : ', κ
  ΓΡΑΨΕ 'Τα ψηφία είναι :  '
  ΓΙΑ i ΑΠΟ κ ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ -1
    ΓΡΑΨΕ Ψ[i], ' '
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ Διαχωρισμός_Ψηφίων(α, Ψ, κ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ψ[10], α, κ
ΑΡΧΗ
  κ <- 0
  ΟΣΟ α <> 0 ΕΠΑΝΑΛΑΒΕ
    κ <- κ + 1
    Ψ[κ] <- α mod 10
    α <- α div 10
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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