Το ξέρω ότι σε έστησα, αλλά δεν σε ξέχασα.
Απλώς αυτά που είχα να κάνω τελικά μου πήραν παραπάνω απ' ότι υπολόγιζα και δεν πρόλαβα να ασχοληθώ.
Πάλι, δεν έφτασα μέχρι το τέλος, αλλά την έχω σαφώς σημαζέψει.
Θα ήθελα, αν μπορεί κάποιος να μου επικυρώσει 2 πράγματα, για να συνεχίσω την άσκσηση.
1) Η χρήση της έτοιμης συνάρτησης Α_Μ(x) μπορεί να γίνει κανονικά σε πρόγραμμα;
2) Αυτό που κάνω στο τέλος είναι αποδεκτό; Δηλαδή η δημιουργία δισδιάστατου πίνακα με διαφορετικό αριθμό στηλών (αφού δεν γνωρίζω πόσα ψηφία έχει κάθε αριθμός που διάβασα);
Spoiler
Code:
ΔΙΑΒΑΣΕ Ψ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Ψ<>Α_Μ(Ψ) ΤΟΤΕ
ΓΡΑΨΕ 'ΕΔΩΣΕΣ ΜΗ ΑΚΕΡΑΙΟ'
ΔΙΑΒΑΣΕ Ψ
ΑΛΛΙΩΣ_ΑΝ Ψ<0 Ή Ψ>9 ΤΟΤΕ
ΓΡΑΨΕ 'ΕΔΩΣΕΣ ΑΡΙΘΜΟ ΕΚΤΟΣ ΟΡΙΩΝ'
ΔΙΑΒΑΣΕ Ψ
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ Ψ=Α_Μ(Ψ) ΚΑΙ Ψ>=0 ΚΑΙ Ψ<=9
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΔΙΑΒΑΣΕ Τ[i]
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Τ[i]<>Α_Μ(Τ[i]) ΤΟΤΕ
ΓΡΑΨΕ 'ΕΔΩΣΕΣ ΜΗ ΑΚΕΡΑΙΟ'
ΔΙΑΒΑΣΕ T[i]
ΑΛΛΙΩΣ_ΑΝ Τ[i]<0 Ή Τ[i]>999999 ΤΟΤΕ
ΓΡΑΨΕ 'ΈΔΩΣΕΣ ΑΡΙΘΜΟ ΕΚΤΟΣ ΟΡΙΩΝ'
ΔΙΑΒΑΣΕ Τ[i]
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ Τ[i]=Α_Μ(Τ[i]) ΚΑΙ Τ[i]>=0 ΚΑΙ T[i]<=999999
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ντ←Τ[i]
Α[i]←0
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Α[i]←Α[i] + 1
ντ←ντ mod 10
ΜΕΧΡΙΣ_ΟΤΟΥ ντ=0
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Τώρα έχεις σε κάθε στοιχείο του πίανακα Α τον αριθμό των ψηφίων καθενός από τους 3 αριθμούς
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Α[i]
Ψ[i,j]← Τ[i] mod 10
Τ[i]← Τ[i] div 10
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Στην παραπάνω επανάληψη δημιουργούμε έναν δισδιάστατο πίνακα. Σε κάθε γραμμή του, υπάρχουν τα ψηφία του 3ψήφιου αριθμού που διαβάσαμε, ένα σε κάθε στήλη.
Edit1: μέχρι να απαντήσει κάποιος, δίαβασε την άσκηση μέχρι εδώ και πες μου αν δεν κατάλαβες κάτι ή αν εντοπίσεις κάποιο λάθος.
Edit2: Τελείωσα την 2η. Πιθανολογώ (όπως είπα, δεν είναι και αρκετά σαφείς οι εκφωνήσεις), πως μπορεί να θέλουν πίνακα, αφού δίνει τον περιορισμό των 172 γραμμάτων ανά λέξη, αλλά εφ' όσον ζητά "να τις βρίσκει", δεν είναι λάθος έτσι όπως το έκανα. Αν θες, μπορώ να στο γράψω και με πίνακα.
Code:
ΔΙΑΒΑΣΕ Γ !ΔΙΑΒΑΖΩ ΓΡΑΜΜΑ
P←0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 !ΘΑ ΔΙΑΒΑΣΕΙ 5 ΛΕΞΕΙΣ
ΠΛ←0
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ !ΔΙΑΒΑΖΩ ΓΡΑΜΜΑΤΑ ΜΕΧΡΙ ΝΑ ΤΕΛΕΙΩΣΕΙ Η ΛΕΞΗ
ΔΙΑΒΑΣΕ ΓΡ
ΑΝ ΓΡ=Γ ΤΟΤΕ !ΕΛΕΓΧΟΣ ΑΝ ΤΟ ΓΡΑΜΜΑ ΤΗΣ ΛΕΞΗΣ ΕΙΝΑΙ ΙΔΙΟ ΜΕ ΤΟ ΓΡΑΜΑ ΠΟΥ ΔΙΑΒΑΣΕ ΑΡΧΙΚΑ
ΠΛ←ΠΛ+1 !ΑΝ ΕΙΝΑΙ, ΑΥΞΑΝΩ ΤΟ ΠΛΗΘΟΣ (ΠΛΗΘΟΣ ΓΙΑ ΚΑΘΕ ΛΕΞΗ)
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΌΤΟΥ ΓΡ='*'
ΓΡΑΨΕ ΠΛ !ΕΜΦΑΝΙΖΩ ΤΟ ΠΛΗΘΟΣ ΠΟΥ ΕΝΤΟΠΙΣΤΗΚΕ ΤΟ ΓΡΑΜΜΑ ΣΤΗ ΛΕΞΗ
ΑΝ ΠΛ<>0 ΤΟΤΕ !ΑΝ ΕΧΕΙ ΒΡΕΘΕΙ ΕΣΤΩ ΚΑΙ ΜΙΑ ΦΟΡΑ ΤΟ ΓΡΑΜΜΑ ΣΤΗ ΛΕΞΗ
P←P+1 !ΑΥΞΑΝΩ ΤΟ ΠΛΗΘΟΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ P !ΕΜΦΑΝΙΖΩ ΣΕ ΠΟΣΕΣ ΑΠΟ ΤΙΣ 5 ΛΕΞΕΙΣ ΕΜΦΑΝΙΣΤΗΚΕ ΤΟ ΓΡΑΜΜΑ
Edit3: Έτοιμη και η 3η άσκηση. Τώρα μένει να δουλέψω την 1η μέχρι το τέλος, αλλά για την ώρα δεν προλαβαίνω. Αν εντοπίσει κάποιος κάποιο λάθος ας μου πει.
Code:
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
ΔΙΑΒΑΣΕ Τ[i] !ΔΙΑΒΑΖΩ ΤΟΥΣ 20 ΑΡΙΘΜΟΥΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΌ 2 ΜΈΧΡΙ 20 !ΤΟΥΣ ΤΑΞΙΝΟΜΩ
ΓΙΑ j ΑΠΌ 20 ΜΕΧΡΙ i ΜΕ_ΒΉΜΑ -1
ΑΝ Τ[j-1]>T[j] TOTE !ΚΑΤΑ ΑΥΞΟΥΣΑ ΣΕΙΡΑ
temp←Τ[j-1]
Τ[j-1]←Τ[j]
Τ[j]←temp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20 !ΤΟΥΣ ΕΜΦΑΝΙΖΩ ΤΑΞΙΝΟΜΗΜΕΝΟΥΣ
ΓΡΑΨΕ Τ[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Θ←0 !ΠΛΗΘΟΣ ΘΕΤΙΚΩΝ
Μ←0 !ΠΛΗΘΟΣ ΜΗΔΕΝΙΚΩΝ
Α←0 !ΠΛΗΘΟΣ ΑΚΕΡΑΙΩΝ
ΓΙΑ i ΑΠΟ 1 ΜΈΧΡΙ 20
ΑΝ Α_Μ(Τ[i])=Τ[i] ΤΟΤΕ
Α←Α+1
ΤΕΛΟΣ_ΑΝ !ΈΝΑΣ ΑΚΕΡΑΙΟΣ ΜΠΟΡΕΊ ΝΑ ΕΊΝΑΙ ΘΕΤΙΚΌΣ Ή ΑΡΝΗΤΙΚΌΣ, ΟΠΌΤΕ ΜΠΑΊΝΕΙ ΣΕ ΞΕΧΩΡΙΣΤΌ ΑΝ
ΑΝ Τ[i]>0 ΤΟΤΕ !ΑΝ ΕΙΝΑΙ ΘΕΤΙΚΟΣ
Θ←Θ+1
ΑΛΛΙΩΣ_ΑΝ Τ[i]=0 ΤΟΤΕ !ΑΝ ΔΕΝ ΕΙΝΑΙ ΘΕΤΙΚΟΣ, ΑΛΛΑ ΕΙΝΑΙ ΜΗΔΕΝ
Μ←Μ+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Α, Θ, Μ, 20-(Θ+Μ) !ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΤΗΣ ΠΡΑΞΗΣ 20-(Θ+Μ) ΜΟΥ ΔΙΝΕΙ ΤΟ ΠΛΗΘΟΣ ΤΩΝ ΑΡΝΗΤΙΚΩΝ. Θ+Μ ΕΙΝΑΙ ΤΟ ΠΛΗΘΟΣ ΤΩΝ ΜΗ ΑΡΝΗΤΙΚΩΝ ΑΡΙΘΜΩΝ.