Τώρα είναι Πέμ 28 Μαρ 2024 01:38 pm

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 3 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
ΔημοσίευσηΔημοσιεύτηκε: Δευτ 06 Απρ 2009 11:04 pm 
Χωρίς σύνδεση

Εγγραφή: Τετ 25 Φεβ 2009 12:19 am
Δημοσιεύσεις: 8
Syntax: [ Download ] [ Hide ]
!Να γραφτεί υποπρόγραμμα που θα δέχεται ένα φυσικό αριθμό
!(του 0 συμπεριλαμβανομένου)
!και θα επιστρέφει το συμπλήρωμά του ως προς 9.
!Υπενθυμίζεται ότι το συμπλήρωμα ενός αριθμού χ ως προς 9
!είναι ένας αριθμός ψ, κάθε ψηφίο του οποίου αθροιζόμενο
!με το αντίστοιχο ψηφίο του χ δίνει αποτέλεσμα 9.
!Για παράδειγμα αν χ=265 τότε ψ=734
ΠΡΟΓΡΑΜΜΑ Συμπλήρωμα9
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:x,xΣυμπλ
ΑΡΧΗ
  ΚΑΛΕΣΕ ΕισαγωγήΦυσικού(x)
  xΣυμπλ <-- Συμπλήρωμα(x)
  ΓΡΑΨΕ 'Το συμπλήρωμα ως προς 9 του',x,'είναι',xΣυμπλ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Συμπλήρωμα9

ΔΙΑΔΙΚΑΣΙΑ ΕισαγωγήΦυσικού(x)
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ:y
  ΑΚΕΡΑΙΕΣ:x
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώστε ένα φυσικό αριθμό'
    ΔΙΑΒΑΣΕ y
    ΑΝ y<>Α_Μ(y) Η y<0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δέ δόθηκε φυσικός. Παρακαλώ ξαναδοκιμάστε'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ y=Α_Μ(y) ΚΑΙ y>=0
  x <-- Α_Μ(y)
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΕισαγωγήΦυσικού

ΣΥΝΑΡΤΗΣΗ Συμπλήρωμα(x):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:x,x1,sum,Ψηφίο,Ψηφίο2,Θέση
ΑΡΧΗ
  x1 <-- x
  sum <-- 0
  Θέση <-- 1
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    Ψηφίο <-- x1 MOD 10
    Ψηφίο2 <-- 9 - Ψηφίο
    x1 <-- x1 DIV 10
    sum <-- Θέση * Ψηφίο2 + sum
    Θέση <-- Θέση * 10
  ΜΕΧΡΙΣ_ΟΤΟΥ x1=0
  Συμπλήρωμα <-- sum
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Συμπλήρωμα
 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
ΔημοσίευσηΔημοσιεύτηκε: Δευτ 06 Απρ 2009 11:10 pm 
Χωρίς σύνδεση

Εγγραφή: Τετ 25 Φεβ 2009 12:19 am
Δημοσιεύσεις: 8
Syntax: [ Download ] [ Hide ]
!Η προηγούμενη εκδοχή είναι αρκετά περίπλοκη
!καθώς τεμχίζει τον αριθμό στα ψηφία του και
!ανασυνθέτει το συμπλήρωμά του.
!Εναλλακτικά, μπορούμε να δημιουργήσουμε μια μάσκα
!απότελούμενη αποκλειστικά από το ψηφίο 9
!και με μήκος ίσο προς το πλήθος των ψηφίων του αριθμού
!που δόθηκε, ώστε το συμπλήρωμα να προκύψει με μια απλή αφαίρεση
ΠΡΟΓΡΑΜΜΑ Συμπλήρωμα9
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:x,xΣυμπλ
ΑΡΧΗ
  ΚΑΛΕΣΕ ΕισαγωγήΦυσικού(x)
  xΣυμπλ <-- Συμπλήρωμα(x)
  ΓΡΑΨΕ 'Το συμπλήρωμα ως προς 9 του',x,'είναι',xΣυμπλ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Συμπλήρωμα9

ΔΙΑΔΙΚΑΣΙΑ ΕισαγωγήΦυσικού(x)
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ:y
  ΑΚΕΡΑΙΕΣ:x
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώστε ένα φυσικό αριθμό'
    ΔΙΑΒΑΣΕ y
    ΑΝ y<>Α_Μ(y) Η y<0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δέ δόθηκε φυσικός. Παρακαλώ ξαναδοκιμάστε'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ y=Α_Μ(y) ΚΑΙ y>=0
  x <-- Α_Μ(y)
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΕισαγωγήΦυσικού

ΣΥΝΑΡΤΗΣΗ Συμπλήρωμα(x):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:x, x1, sum
ΑΡΧΗ
  x1 <-- x
  sum <-- 0
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    x1 <-- x1 DIV 10
    sum <-- sum * 10 + 9
  ΜΕΧΡΙΣ_ΟΤΟΥ x1=0
  Συμπλήρωμα <-- sum - x
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Συμπλήρωμα
 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
ΔημοσίευσηΔημοσιεύτηκε: Δευτ 06 Απρ 2009 11:12 pm 
Χωρίς σύνδεση

Εγγραφή: Τετ 25 Φεβ 2009 12:19 am
Δημοσιεύσεις: 8
Syntax: [ Download ] [ Hide ]
!Μια ακόμη απλούστερη εκδοχή
!περιορίζεται στην καταμέτρηση του πλήθους των ψηφίων
!του αρχικού αριθμού για να φτιάξει τη μάσκα
!χωρίς την ολίσθηση που χρησιμοποιήσαμε στη δεύτερη παραλλαγή
ΠΡΟΓΡΑΜΜΑ Συμπλήρωμα9
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:x,xΣυμπλ
ΑΡΧΗ
  ΚΑΛΕΣΕ ΕισαγωγήΦυσικού(x)
  xΣυμπλ <-- Συμπλήρωμα(x)
  ΓΡΑΨΕ 'Το συμπλήρωμα ως προς 9 του',x,'είναι',xΣυμπλ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Συμπλήρωμα9

ΔΙΑΔΙΚΑΣΙΑ ΕισαγωγήΦυσικού(x)
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ:y
  ΑΚΕΡΑΙΕΣ:x
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώστε ένα φυσικό αριθμό'
    ΔΙΑΒΑΣΕ y
    ΑΝ y<>Α_Μ(y) Η y<0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δέ δόθηκε φυσικός. Παρακαλώ ξαναδοκιμάστε'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ y=Α_Μ(y) ΚΑΙ y>=0
  x <-- Α_Μ(y)
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΕισαγωγήΦυσικού

ΣΥΝΑΡΤΗΣΗ Συμπλήρωμα(x):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:x, x1, i, mask
ΑΡΧΗ
  x1 <-- x
  i <-- 0
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    x1 <-- x1 DIV 10
    i <-- i + 1
  ΜΕΧΡΙΣ_ΟΤΟΥ x1=0
  mask <-- 10^i - 1
  Συμπλήρωμα <-- mask - x
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Συμπλήρωμα
 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 3 Δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 5 επισκέπτες


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron
Προβολές: