DimitrisP
Νεοφερμένος
Ο Δημήτρης Παπακωνσταντίνου αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 66 ετών, Καθηγητής και μας γράφει απο Κηφισιά (Αττική). Έχει γράψει 24 μηνύματα.
24-03-09
23:32
Και να η λύση:
Code:
ΠΡΟΓΡΑΜΜΑ Ακέραιο_Μέρος
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Βηματάκι
ΠΡΑΓΜΑΤΙΚΕΣ: x ,i
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε έναν αριθμό για να υπολογίσω το ακέραιο μέρος του'
ΔΙΑΒΑΣΕ x
ΑΝ x>=0 ΤΟΤΕ
Βηματάκι <-- 1
ΑΛΛΙΩΣ
Βηματάκι <-- -1
ΤΕΛΟΣ_ΑΝ
! Ο υπολογισμός γίνεται μέσα στη επανάληψη
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ x ΜΕ ΒΗΜΑ Βηματάκι
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ x>=0 ΤΟΤΕ
ΓΡΑΨΕ 'Το ακέραιο μέρος υπολογίστηκε χωρίς τη χρήση συνάρτησης και είναι:',i-1
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Το ακέραιο μέρος υπολογίστηκε χωρίς τη χρήση συνάρτησης και είναι:',i+1
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ 'Το ακέραιο μέρος υπολογίστηκε με τη χρήση της ενσωματωμένης συνάρτησης Α_Μ() και είναι:',Α_Μ(x)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Ακέραιο_Μέρος
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DimitrisP
Νεοφερμένος
Ο Δημήτρης Παπακωνσταντίνου αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 66 ετών, Καθηγητής και μας γράφει απο Κηφισιά (Αττική). Έχει γράψει 24 μηνύματα.
24-03-09
23:29
δίνετε πινακας a[100]να βρεθούν οι διαφορετικοί αριθμοί
πχ 1<>2<>3 κτλπ
Να υποθέσω ότι εννοείς:
Να αναπτύξετε πρόγραμμα το οποίο θα διαβάζει από το πληκτρολόγιο π.χ. 500 πραγματικούς αριθμούς και θα τους καταχωρεί σε κατάλληλο πίνακα. Στη συνέχεια θα εμφανίζει το πλήθος των διαφορετικών αριθμών που εισήχθησαν και τους αριθμούς αυτούς, από μία φορά τον κάθε έναν. (Αν πχ δώσαμε τους αριθμούς 4,5,8,5,3,1,3,3,7,8 τότε θα μας δίνει για έξοδο: 6 διαφορετικοί αριθμοί οι παρακάτω: 1,3,4,5,7,8 – όχι υποχρεωτικά ταξινομημένους)
Με λύση:
Code:
ΠΡΟΓΡΑΜΜΑ Διαφορετικοί
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:i, j, c
ΠΡΑΓΜΑΤΙΚΕΣ: A[500]
ΛΟΓΙΚΕΣ: Mult[500]
ΑΡΧΗ
c <-- 0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 500
ΔΙΑΒΑΣΕ A[i]
Mult[i] <-- ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 499
ΓΙΑ j ΑΠΟ i+1 ΜΕΧΡΙ 500
ΑΝ A[i]=A[j] ΤΟΤΕ
Mult[i] <-- ΑΛΗΘΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Οι διαφορετικοί αριθμοί είναι οι παρακάτω:'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 500
ΑΝ Mult[i] = ΨΕΥΔΗΣ ΤΟΤΕ
ΓΡΑΨΕ A[i]
c <-- c +1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ '-----------'
ΓΡΑΨΕ 'Τελικά βρέθηκαν',c,'διαφορετικοί αριθμοί'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Διαφορετικοί
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DimitrisP
Νεοφερμένος
Ο Δημήτρης Παπακωνσταντίνου αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 66 ετών, Καθηγητής και μας γράφει απο Κηφισιά (Αττική). Έχει γράψει 24 μηνύματα.
15-03-09
18:08
Μια μικρή παρατήρηση, δεν χρειάζεται ο έλεγχος για το αν υπερβεί το 24 και να το αφαιρείς μετά, μπορείς απλά να το κάνεις ως Αριθμός MOD 24.
Ευχαριστώ για την παρατήρηση, είμαι σίγουρος ότι υπάρχουν μεγάλα περιθώριο βελτίωσης, το έγραψα στο πόδι...
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DimitrisP
Νεοφερμένος
Ο Δημήτρης Παπακωνσταντίνου αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 66 ετών, Καθηγητής και μας γράφει απο Κηφισιά (Αττική). Έχει γράψει 24 μηνύματα.
15-03-09
17:30
Μία βιαστική λύση σε περιβάλλον Γλωσσομάθειας.
Δεν περιλαμβάνεται το μέρος της αποκρυπτογράφησης, είναι όμως αντίστοιχης λογικής.
Δεν περιλαμβάνεται το μέρος της αποκρυπτογράφησης, είναι όμως αντίστοιχης λογικής.
Code:
ΠΡΟΓΡΑΜΜΑ Crypto
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:i, j, k, AL, AK, Αριθμός_Αρχικής[10], Αριθμός_Κλειδί[10], s, d
ΧΑΡΑΚΤΗΡΕΣ: Αρχική_Λέξη[10], Λέξη_Κλειδί[10], Τελική_Λέξη[10], Γράμμα[24]
ΛΟΓΙΚΕΣ: Check
ΑΡΧΗ
Γράμμα[1] <-- 'Α'
Γράμμα[2] <-- 'Β'
Γράμμα[3] <-- 'Γ'
Γράμμα[4] <-- 'Δ'
Γράμμα[5] <-- 'Ε'
Γράμμα[6] <-- 'Ζ'
Γράμμα[7] <-- 'Η'
Γράμμα[8] <-- 'Θ'
Γράμμα[9] <-- 'Ι'
Γράμμα[10] <-- 'Κ'
Γράμμα[11] <-- 'Λ'
Γράμμα[12] <-- 'Μ'
Γράμμα[13] <-- 'Ν'
Γράμμα[14] <-- 'Ξ'
Γράμμα[15] <-- 'Ο'
Γράμμα[16] <-- 'Π'
Γράμμα[17] <-- 'Ρ'
Γράμμα[18] <-- 'Σ'
Γράμμα[19] <-- 'Τ'
Γράμμα[20] <-- 'Υ'
Γράμμα[21] <-- 'Φ'
Γράμμα[22] <-- 'Χ'
Γράμμα[23] <-- 'Ψ'
Γράμμα[24] <-- 'Ω'
! Λέξη που θα κρυπτογραφηθεί
ΓΡΑΨΕ 'Δώσε τον αριθμό των γραμμάτων που αποτελούν τη λέξη που θέλεις να κρυπτογραφήσεις (έως 10 γράμματα)'
! Δέχεται μέχρι 10 γράμματα
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ AL
ΜΕΧΡΙΣ_ΟΤΟΥ AL<=10
ΓΡΑΨΕ 'Δώσε ένα-ένα τα γράμματα της λέξης (Ελληνικοί κεφαλαίοι χαρακτήρες)'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AL
Check <-- Ψευδής
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Γράμμα',i
ΔΙΑΒΑΣΕ Αρχική_Λέξη[i]
! Έλεγχος μόνο για κεφαλαίους Ελληνικούς χαρακτήρες
ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Αρχική_Λέξη[i]= Γράμμα[k] ΤΟΤΕ
Check <-- Αληθής
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ Check=Αληθής
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Μετατροπή των γραμμάτων σε αριθμούς για τη λέξη που θα κρυπτογραφηθεί
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AL
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Αρχική_Λέξη[i]=Γράμμα[j] ΤΟΤΕ
Αριθμός_Αρχικής[i] <-- j
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Λέξη κλειδί
ΓΡΑΨΕ 'Δώσε τον αριθμό των γραμμάτων που αποτελούν τη λέξη κλειδί (έως 10 γράμματα)'
! Δέχεται μέχρι 10 γράμματα
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ AK
ΜΕΧΡΙΣ_ΟΤΟΥ AK<=10
ΓΡΑΨΕ 'Δώσε ένα-ένα τα γράμματα της λέξης (Ελληνικοί κεφαλαίοι χαρακτήρες)'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AK
Check <-- Ψευδής
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Γράμμα',i
ΔΙΑΒΑΣΕ Λέξη_Κλειδί[i]
! Έλεγχος μόνο για κεφαλαίους Ελληνικούς χαρακτήρες
ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Λέξη_Κλειδί[i]= Γράμμα[k] ΤΟΤΕ
Check <-- Αληθής
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ Check=Αληθής
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Μετατροπή των γραμμάτων σε αριθμούς για τη λέξη κλειδί
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AK
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Λέξη_Κλειδί[i]=Γράμμα[j] ΤΟΤΕ
Αριθμός_Κλειδί[i] <-- j
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Κρυπτογράφηση
ΑΝ AL>AK ΤΟΤΕ
! Πόσες φορές θα χρησιμοποιηθεί η λέξη κλειδί
s <-- AL DIV AK
! Πόσα γράμματα περισσεύουν
d <-- AL MOD AK
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ s
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ AK
Αριθμός_Αρχικής[(s+1)*(i-1)+j] <-- Αριθμός_Αρχικής[(s+1)*(i-1)+j] + Αριθμός_Κλειδί[j]
ΑΝ Αριθμός_Αρχικής[(s-1)*(i-1)+j]>24 ΤΟΤΕ
Αριθμός_Αρχικής[(s+1)*(i-1)+j] <-- Αριθμός_Αρχικής[(s+1)*(i-1)+j]-24
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ AL+1-d ΜΕΧΡΙ AL
Αριθμός_Αρχικής[i] <-- Αριθμός_Αρχικής[i] + Αριθμός_Κλειδί[i-AK*s]
ΑΝ Αριθμός_Αρχικής[i]>24 ΤΟΤΕ
Αριθμός_Αρχικής[i] <-- Αριθμός_Αρχικής[i]-24
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AL
Αριθμός_Αρχικής[i] <-- Αριθμός_Αρχικής[i] + Αριθμός_Κλειδί[i]
ΑΝ Αριθμός_Αρχικής[i]>24 ΤΟΤΕ
Αριθμός_Αρχικής[i] <-- Αριθμός_Αρχικής[i]-24
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ 'Η κρυπτογραφημένη λέξη είναι:'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ AL
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 24
ΑΝ Αριθμός_Αρχικής[i]=j ΤΟΤΕ
Αρχική_Λέξη[i] <-- Γράμμα[j]
ΓΡΑΨΕ Αρχική_Λέξη[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DimitrisP
Νεοφερμένος
Ο Δημήτρης Παπακωνσταντίνου αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 66 ετών, Καθηγητής και μας γράφει απο Κηφισιά (Αττική). Έχει γράψει 24 μηνύματα.
15-03-09
01:24
Μάλλον η εκφώνηση εννοεί οτι θα δίνεις κατευθείαν το μήνυμα σαν αριθμούς, πχ το ΓΕΙΑ θα το δώσεις ως 3 5 10 1 σε ένα πίνακα.
Ίσως δίνεις ξεχωριστά τα γράμματα σε έναν πίνακα χαρακτήρων.
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
DimitrisP
Νεοφερμένος
Ο Δημήτρης Παπακωνσταντίνου αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 66 ετών, Καθηγητής και μας γράφει απο Κηφισιά (Αττική). Έχει γράψει 24 μηνύματα.
14-03-09
19:01
Η παραπανω ασκηση ειναι σε πιο ανεβασμενο επιπεδο απο τις ασκησεις των φροντιστηριων μας πιστευς....Οποιος μπορει να δημιουργήσει τ πρόγραμμα κ θελει ν τν μοιραστει μπορει ν την ανεβασει....!!
Η ΓΛΩΣΣΑ που χρησιμοποιεί η ΑΕΠΠ δεν υποστηρίζει χειρισμό αλφαριθμητικών, ώστε να απομονωθούν οι χαρακτήρες μιας λέξης.
Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.