Να γραφεί πρόγραμμα σε «ΓΛΩΣΣΑ»,
το οποίο να δέχεται από το πληκτρολόγιο έναν ακέραιο αριθμό και να ελέγχει
εάν είναι διψήφιος και θετικός. Στην περίπτωση που ισχύει, να τυπώνεται
το μήνυμα «Θετικός, Διψήφιος αριθμός»,
ενώ διαφορετικά να τυπώνονται για κάθε περίπτωση
«Μόνο θετικός» ή «Μόνο διψήφιος» ή «Ούτε θετικός, ούτε διψήφιος»
Βοηθά αρχικά να οπτικοποιήσουμε τη λύση με πραγματικά δεδομένα:
! 53 div 10 = 5, έχει δεκάδες
! 153 div 100 = 1, έχει εκατοντάδες συνεπώς είναι τριψήφιος
! ή διαφορετικά
! 153 div 10 = 15, > 9
! 03 div 10 = 0, δεν έχει δεκάδες
! 53 div 100 = 0, δεν είναι τριψήφιος
! αν υπάρχουν δεκάδες,
! δεν πρέπει να υπάρχουν εκατοντάδες
! > 0 αν είναι θετικός
! (0 μπορεί να πάει είτε στους θετικούς είτε στους αρνητικούς)
Λύση με flags | Λύση με σύνθετες λογικές συνθήκες | λύση με πολλαπλές επιλογές
ΠΡΟΓΡΑΜΜΑ parartima_a_sel_36_8_v1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: a
ΛΟΓΙΚΕΣ: θετικός, διψήφιος
ΑΡΧΗ
διψήφιος <- ΨΕΥΔΗΣ
θετικός <- ΨΕΥΔΗΣ
ΔΙΑΒΑΣΕ a
! a div 10 <> 0 είναι τουλάχιστον διψήφιος
! και
! a div 100 = 0 δεν είναι τριψήφιος
Αν a div 10 <> 0 και a div 100 = 0 τότε
διψήφιος <- ΑΛΗΘΗΣ
τέλος_αν
! α > 0 είναι θετικός
αν a > 0 τότε
θετικός <- ΑΛΗΘΗΣ
τέλος_αν
αν διψήφιος = ΑΛΗΘΗΣ και θετικός = ΑΛΗΘΗΣ τότε
Γράψε 'διψήφιος και θετικός'
τέλος_αν
αν διψήφιος = ΑΛΗΘΗΣ και θετικός = ΨΕΥΔΗΣ τότε
Γράψε 'διψήφιος'
Τέλος_αν
αν διψήφιος = ΨΕΥΔΗΣ και θετικός = ΑΛΗΘΗΣ τότε
Γράψε 'θετικός'
Τέλος_αν
αν διψήφιος = ΨΕΥΔΗΣ και θετικός = ΨΕΥΔΗΣ τότε
Γράψε 'Ούτε Διψήφιος, ούτε θετικός'
Τέλος_αν
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΠΡΟΓΡΑΜΜΑ parartima_a_sel_36_8_v2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: a
ΑΡΧΗ
ΔΙΑΒΑΣΕ a
! αν a div 10 <> 0 τότε τουλάχιστον διψήφιος
! αν a div 100 = 0 τότε δεν είναι τριψήφιος
! αν a > 0 τότε είναι θετικός
! 1η περίπτωση (διψήφιος και θετικός)
! a div 10 <> 0 είναι τουλάχιστον διψήφιος
! και
! a div 100 = 0 δεν είναι τριψήφιος
! και
! α > 0 είναι θετικός
Αν a div 10 <> 0 και a div 100 = 0 και a > 0 τότε
Γράψε 'διψήφιος και θετικός'
! 2η περίπτωση (μόνο διψήφιος - αρνητικός ή 0)
! a div 10 <> 0 είναι τουλάχιστον διψήφιος
! και
! a div 100 = 0 δεν είναι τριψήφιος
! και
! α < 0 είναι αρνητικός
Αλλιώς_αν a div 10 <> 0 και a div 100 = 0 και a < 0 τότε
Γράψε 'διψήφιος'
! 3η περίπτωση (δεν είναι διψήφιος, μόνο θετικός)
! a div 10 = 0 είναι μονοψήφιος
! ή
! a div 100 <> 0 είναι τουλάχιστον τριψήφιος
! και
! α > 0 είναι θετικός
Αλλιώς_αν a div 10 = 0 ή a div 100 <> 0 και a > 0 τότε
Γράψε 'θετικός'
Αλλιώς_αν a div 10 = 0 ή a div 100 <> 0 και a <= 0 τότε
Γράψε 'Ούτε Διψήφιος, Ούτε Θετικός'
Τέλος_αν
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΠΡΟΓΡΑΜΜΑ parartima_a_sel_36_8_v3
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: a
ΑΡΧΗ
ΔΙΑΒΑΣΕ a
! 1η περίπτωση (διψήφιος και θετικός)
Αν a >=10 και a <=99 τότε
Γράψε 'διψήφιος και θετικός'
Αλλιώς_αν a> 0 τότε
Γράψε 'μόνο θετικός, όχι διψήφιος'
Αλλιώς_αν Α_Τ(a) >= 10 και Α_Τ(a) <= 99 τότε
Γράψε 'διψήφιος'
Αλλιώς
Γράψε 'ούτε θετικός ούτε διψήφιος'
Τέλος_αν
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Πρόσφατα σχόλια