Ασκήσεις στους μονοδιάστατους πίνακες
Απαντήσεις Ασκήσεων
Παρακάτω θα βρείτε μερικές ασκήσεις στους μονοδιάστατους πίνακες, στις οποίες γίνεται χρήση των βασικών μεθοδολογιών.
1. Να πραγματοποιηθεί πρόγραμμα το οποίο θα καταχωρεί σε ένα πίνακα 200 θέσεων , 200 τυχαίους ακέραιους αριθμούς και στη συνέχεια θα υπολογίζει το πλήθος των αρτίων. ( Θεωρήστε ότι οι αριθμοί που θα εισάγει ο χρήστης θα είναι ακέραιοι).
Λύση
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π,Α[200]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 200
ΓΡΑΨΕ 'ΔΩΣΕ ΕΝΑΝ ΑΚΕΡΑΙΟ ΑΡΙΘΜΟ'
ΔΙΑΒΑΣΕ Α[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<--0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 200
ΑΝ Α[Ι] MOD 2 = 0 ΤΟΤΕ
Π<--Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΤΟ ΠΛΗΘΟΣ ΤΩΝ ΑΡΤΙΩΝ ΕΙΝΑΙ:',Π
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Λύση
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π,Α[200]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 200
ΓΡΑΨΕ 'ΔΩΣΕ ΕΝΑΝ ΑΚΕΡΑΙΟ ΑΡΙΘΜΟ'
ΔΙΑΒΑΣΕ Α[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<--0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 200
ΑΝ Α[Ι] MOD 2 = 0 ΤΟΤΕ
Π<--Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΤΟ ΠΛΗΘΟΣ ΤΩΝ ΑΡΤΙΩΝ ΕΙΝΑΙ:',Π
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
2. Δίνονται τα ονόματα 300 ατόμων τα οποία αποθηκεύονται σε κατάλληλο μονοδιάστατο πίνακα. Να δημιουργήσετε πρόγραμμα το οποίο θα εμφανίζει πόσες φορές υπάρχει το όνομα ‘Μαρία’ μέσα σε αυτόν τον πίνακα.
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[300]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΓΡΑΨΕ 'ΔΩΣΕ ΕΝΑ ΟΝΟΜΑ'
ΔΙΑΒΑΣΕ ΟΝ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<--1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΑΝ ΟΝ[Ι]='ΜΑΡΙΑ' ΤΟΤΕ
Π<--Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΤΟ ΟΝΟΜΑ ΜΑΡΙΑ ΒΡΕΘΗΚΕ:',Π, ' ΦΟΡΕΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[300]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΓΡΑΨΕ 'ΔΩΣΕ ΕΝΑ ΟΝΟΜΑ'
ΔΙΑΒΑΣΕ ΟΝ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<--1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΑΝ ΟΝ[Ι]='ΜΑΡΙΑ' ΤΟΤΕ
Π<--Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΤΟ ΟΝΟΜΑ ΜΑΡΙΑ ΒΡΕΘΗΚΕ:',Π, ' ΦΟΡΕΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
3. Δίνονται τα ονόματα 300 ατόμων τα οποία αποθηκεύονται σε κατάλληλο μονοδιάστατο πίνακα. Να δημιουργήσετε πρόγραμμα το οποίο θα ζητά από τον χρήστη να πληκτρολογήσει ένα όνομα και στη συνέχεια θα υπολογίζει και θα εμφανίζει πόσες φορές υπάρχει το όνομα αυτό μέσα σε αυτόν τον πίνακα.
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_3
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[300],ΚΕΥ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΓΡΑΨΕ 'ΔΩΣΕ ΕΝΑ ΟΝΟΜΑ'
ΔΙΑΒΑΣΕ ΟΝ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ'ΔΩΣΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣΗ ΟΝΟΜΑ'
ΔΙΑΒΑΣΕ ΚΕΥ
Π<--1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΑΝ ΟΝ[Ι]=ΚΕΥ ΤΟΤΕ
Π<--Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΤΟ ΟΝΟΜΑ:',ΚΕΥ,' ΒΡΕΘΗΚΕ:',Π, ' ΦΟΡΕΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_3
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[300],ΚΕΥ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΓΡΑΨΕ 'ΔΩΣΕ ΕΝΑ ΟΝΟΜΑ'
ΔΙΑΒΑΣΕ ΟΝ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ'ΔΩΣΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣΗ ΟΝΟΜΑ'
ΔΙΑΒΑΣΕ ΚΕΥ
Π<--1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΑΝ ΟΝ[Ι]=ΚΕΥ ΤΟΤΕ
Π<--Π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΤΟ ΟΝΟΜΑ:',ΚΕΥ,' ΒΡΕΘΗΚΕ:',Π, ' ΦΟΡΕΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
4. Να πραγματοποιηθεί πρόγραμμα το οποίο θα δέχεται τους βαθμούς και τα ονόματα 30 μαθητών και θα καταχωρεί σε κατάλληλους μονοδιάστατούς πίνακες. Στη συνέχεια θα υπολογίζει και θα εμφανίζει το όνομα και το βαθμό του καλύτερου μαθητή. (Θεωρήστε ότι δεν θα υπάρχει ισοβαθμία )
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_4
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι
ΠΡΑΓΜΑΤΙΚΕΣ: Β[30],ΜΑΧ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[30],ΟΝ_ΜΑΧ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΒΑΘΜΟ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΒΑΘ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΑΧ<--Β[1]
ΟΝ_ΜΑΧ<--ΟΝ[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 30
ΑΝ Β[Ι]>ΜΑΧ ΤΟΤΕ
ΜΑΧ<--Β[Ι]
ΟΝ_ΜΑΧ<--ΟΝ[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΤΟ ΟΝΟΜΑ ΤΟΥ ΚΑΛΥΤΕΡΟΥ ΗΤΑΝ:',ΟΝ_ΜΑΧ
ΓΡΑΨΕ 'Ο ΒΑΘΜΟΣ ΤΟΥ ΚΑΛΥΤΕΡΟΥ ΗΤΑΝ:',ΜΑΧ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_4
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι
ΠΡΑΓΜΑΤΙΚΕΣ: Β[30],ΜΑΧ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[30],ΟΝ_ΜΑΧ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΒΑΘΜΟ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΒΑΘ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΑΧ<--Β[1]
ΟΝ_ΜΑΧ<--ΟΝ[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 30
ΑΝ Β[Ι]>ΜΑΧ ΤΟΤΕ
ΜΑΧ<--Β[Ι]
ΟΝ_ΜΑΧ<--ΟΝ[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΤΟ ΟΝΟΜΑ ΤΟΥ ΚΑΛΥΤΕΡΟΥ ΗΤΑΝ:',ΟΝ_ΜΑΧ
ΓΡΑΨΕ 'Ο ΒΑΘΜΟΣ ΤΟΥ ΚΑΛΥΤΕΡΟΥ ΗΤΑΝ:',ΜΑΧ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
5. Να πραγματοποιηθεί πρόγραμμα το οποίο θα δέχεται τους βαθμούς και τα ονόματα 30 μαθητών και θα καταχωρεί σε κατάλληλους μονοδιάστατούς πίνακες. Στη συνέχεια θα υπολογίζει και θα εμφανίζει το όνομα και το βαθμό του καλύτερου μαθητή. Στην περίπτωση ισοβαθμίας μαθητών στην πρώτη θέση, θα πρέπει να εμφανίζει όλα τα ονόματα των μαθητών με την καλύτερη βαθμολογία.
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_5
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι
ΠΡΑΓΜΑΤΙΚΕΣ: Β[30],ΜΑΧ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[30]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΒΑΘΜΟ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΒΑΘ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΑΧ<--Β[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 30
ΑΝ Β[Ι]>ΜΑΧ ΤΟΤΕ
ΜΑΧ<--Β[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΑΝ Β[Ι]=ΜΑΧ ΤΟΤΕ
ΓΡΑΨΕ 'ΜΕΓΙΣΤΟ ΒΑΘΜΟ ΕΙΧΕ Ο/Η:', ΟΝ[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_5
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι
ΠΡΑΓΜΑΤΙΚΕΣ: Β[30],ΜΑΧ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[30]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΒΑΘΜΟ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΒΑΘ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΑΧ<--Β[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 30
ΑΝ Β[Ι]>ΜΑΧ ΤΟΤΕ
ΜΑΧ<--Β[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
ΑΝ Β[Ι]=ΜΑΧ ΤΟΤΕ
ΓΡΑΨΕ 'ΜΕΓΙΣΤΟ ΒΑΘΜΟ ΕΙΧΕ Ο/Η:', ΟΝ[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
6. Μία εταιρία καταγράφει τα ετήσια έσοδά της σε ένα μονοδιάστατο πίνακα με την ονομασία «ΕΣΟΔΑ» και τα έξοδά της σε έναν αντίστοιχο με την ονομασία «ΕΞΟΔΑ». Να γραφεί πρόγραμμα το οποίο θα καταχωρεί τα στοιχεία εσόδων – εξόδων για την τελευταία δεκαετία και θα υπολογίζει πόσες φορές η εταιρία παρουσίασε έλλειμμα, είχε δηλαδή έξοδα περισσότερα από τα έσοδα. Στη συνέχεια θα δημιουργεί ένα νέο πίνακα με την ονομασία «ΚΕΡΔΟΣ», όπου θα υπολογίζει και θα καταχωρεί τα κέρδη για κάθε χρονιά και θα υπολογίζει τον μέσο όρο των κερδών της εταιρίας για την τελευταία δεκαετία. Τέλος θα εμφανίζει πόσες χρονιές τα κέρδη ήταν πάνω από τον μέσο όρο.
Λύση
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_6
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π,Π2
ΠΡΑΓΜΑΤΙΚΕΣ: ΕΣΟΔΑ[10],ΕΞΟΔΑ[10],ΚΕΡΔΟΣ[10],Μ,Σ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ'ΔΩΣΕ ΤΑ ΕΣΟΔΑ ΚΑΙ ΤΑ ΕΞΟΔΑ ΤΟΥ',Ι,'ου ΧΡΟΝΟΥ'
ΔΙΑΒΑΣΕ ΕΣΟΔΑ[Ι], ΕΞΟΔΑ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<--0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΑΝ ΕΞΟΔΑ[Ι] > ΕΣΟΔΑ[Ι] ΤΟΤΕ
Π<--Π+1
ΤΕΛΟΣ_ΑΝ
ΚΕΡΔΟΣ[Ι] <-- ΕΣΟΔΑ[Ι] - ΕΞΟΔΑ[Ι]
Σ<--Σ+ΚΕΡΔΟΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Μ<--Σ/10
Π2<--0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΑΝ ΚΕΡΔΟΣ[Ι] > Μ ΤΟΤΕ
Π2<--Π2+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΠΑΡΟΥΣΙΑΣΤΙΚΕ ΕΛΛΕΙΜΑ:',Π,' ΧΡΟΝΙΕΣ'
ΓΡΑΨΕ 'ΚΕΡΔΗ ΠΑΝΩ ΑΠΟ ΤΟ ΜΕΣΟ ΟΡΟ ΕΙΧΕ:',Π2,' ΧΡΟΝΙΕΣ'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Λύση
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_6
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,Π,Π2
ΠΡΑΓΜΑΤΙΚΕΣ: ΕΣΟΔΑ[10],ΕΞΟΔΑ[10],ΚΕΡΔΟΣ[10],Μ,Σ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΓΡΑΨΕ'ΔΩΣΕ ΤΑ ΕΣΟΔΑ ΚΑΙ ΤΑ ΕΞΟΔΑ ΤΟΥ',Ι,'ου ΧΡΟΝΟΥ'
ΔΙΑΒΑΣΕ ΕΣΟΔΑ[Ι], ΕΞΟΔΑ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Π<--0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΑΝ ΕΞΟΔΑ[Ι] > ΕΣΟΔΑ[Ι] ΤΟΤΕ
Π<--Π+1
ΤΕΛΟΣ_ΑΝ
ΚΕΡΔΟΣ[Ι] <-- ΕΣΟΔΑ[Ι] - ΕΞΟΔΑ[Ι]
Σ<--Σ+ΚΕΡΔΟΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Μ<--Σ/10
Π2<--0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΑΝ ΚΕΡΔΟΣ[Ι] > Μ ΤΟΤΕ
Π2<--Π2+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΠΑΡΟΥΣΙΑΣΤΙΚΕ ΕΛΛΕΙΜΑ:',Π,' ΧΡΟΝΙΕΣ'
ΓΡΑΨΕ 'ΚΕΡΔΗ ΠΑΝΩ ΑΠΟ ΤΟ ΜΕΣΟ ΟΡΟ ΕΙΧΕ:',Π2,' ΧΡΟΝΙΕΣ'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
7. Δίνονται τα ονόματα και τα τηλέφωνα 1000 ατόμων. Να δημιουργηθεί πρόγραμμα το οποίο θα καταχωρεί τα παραπάνω στοιχεία σε δυο μονοδιάστατους πίνακες και στη συνέχεια θα τα ταξινομεί κατά αλφαβητική σειρά. Τέλος να εμφανίζει τα ονόματα και τα τηλέφωνα μετά την ταξινόμηση.
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_7
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,ΤΗΛ[1000],ΤΕMP2,J
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[1000],TEMP
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 1000
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ',Ι,'ο ΟΝΟΜΑ ΚΑΙ ΤΗΛΕΦΩΝΟ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΤΗΛ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 1000
ΓΙΑ J ΑΠΟ 1000 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1
ΑΝ ΟΝ[J]<ON[J-1] ΤΟΤΕ
TEMP<-- ΟΝ[J]
ON[J] <-- ON[J-1]
ON[J-1]<--TEMP
TEMP2<-- TΗΛ[J]
ΤΗΛ[J]<-- ΤΗΛ[J-1]
ΤΗΛ[J-1] <-- ΤEMP2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 1000
ΓΡΑΨΕ ΟΝ[Ι],ΤΗΛ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_7
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,ΤΗΛ[1000],ΤΕMP2,J
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[1000],TEMP
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 1000
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ',Ι,'ο ΟΝΟΜΑ ΚΑΙ ΤΗΛΕΦΩΝΟ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΤΗΛ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 1000
ΓΙΑ J ΑΠΟ 1000 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1
ΑΝ ΟΝ[J]<ON[J-1] ΤΟΤΕ
TEMP<-- ΟΝ[J]
ON[J] <-- ON[J-1]
ON[J-1]<--TEMP
TEMP2<-- TΗΛ[J]
ΤΗΛ[J]<-- ΤΗΛ[J-1]
ΤΗΛ[J-1] <-- ΤEMP2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 1000
ΓΡΑΨΕ ΟΝ[Ι],ΤΗΛ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
8. Δίνονται τα ονόματα και τα τηλέφωνα 1000 ατόμων. Να δημιουργηθεί πρόγραμμα το οποίο θα καταχωρεί τα παραπάνω στοιχεία σε δυο μονοδιάστατους πίνακες. Στη συνέχεια θα ζητά από το χρήστη το όνομα ενός ατόμου και θα εμφανίζει το τηλέφωνό του, στην περίπτωση που δεν υπάρχει στον πίνακα θα εμφανίζει κατάλληλο μήνυμα. (Θεωρήστε ότι οι καταχωρήσεις είναι μοναδικές).
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_9
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,POS,ΤΗΛ[1000]
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[1000],ΚΕΥ
ΛΟΓΙΚΕΣ D
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 1000
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ',Ι,'ο ΟΝΟΜΑ ΚΑΙ ΤΗΛΕΦΩΝΟ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΤΗΛ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣΗ ΟΝΟΜΑ'
ΔΙΑΒΑΣΕ ΚΕΥ
Ι<--1
POS<--0
D<-- ΨΕΥΔΗΣ
ΟΣΟ Ι<=1000 ΚΑΙ D = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
ΑΝ ΟΝ [Ι] = KEY ΤΟΤΕ
D<-- ΑΛΗΘΗΣ
POS <-- Ι
ΑΛΛΙΩΣ
Ι<--Ι+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ D = ΑΛΗΘΗΣ ΤΟΤΕ
ΓΡΑΨΕ 'ΤΟ ΤΗΛΕΦΩΝΟ ΤΟΥ/ΤΗΣ',ΚΕΥ ,' ΕΙΝΑΙ:',ΤΗΛ[POS]
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'ΔΕΝ ΒΡΕΘΗΚΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣ ΟΝΟΜΑ'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_9
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,POS,ΤΗΛ[1000]
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[1000],ΚΕΥ
ΛΟΓΙΚΕΣ D
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 1000
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ',Ι,'ο ΟΝΟΜΑ ΚΑΙ ΤΗΛΕΦΩΝΟ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],ΤΗΛ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣΗ ΟΝΟΜΑ'
ΔΙΑΒΑΣΕ ΚΕΥ
Ι<--1
POS<--0
D<-- ΨΕΥΔΗΣ
ΟΣΟ Ι<=1000 ΚΑΙ D = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
ΑΝ ΟΝ [Ι] = KEY ΤΟΤΕ
D<-- ΑΛΗΘΗΣ
POS <-- Ι
ΑΛΛΙΩΣ
Ι<--Ι+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ D = ΑΛΗΘΗΣ ΤΟΤΕ
ΓΡΑΨΕ 'ΤΟ ΤΗΛΕΦΩΝΟ ΤΟΥ/ΤΗΣ',ΚΕΥ ,' ΕΙΝΑΙ:',ΤΗΛ[POS]
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'ΔΕΝ ΒΡΕΘΗΚΕ ΤΟ ΥΠΟ ΑΝΑΖΗΤΗΣ ΟΝΟΜΑ'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
9. Μία σχολική μονάδα με 130 μαθητές επιθυμεί να δημιουργήσει δυο ομάδες μπάσκετ , μια αποτελούμενη από 10 αγόρια και μια από 10 κορίτσια για την εκπροσώπησή της στους σχολικούς αγώνες. Μοναδικό κριτήριο επιλογής είναι το ύψος των μαθητών. Να δημιουργήσετε πρόγραμμα το οποίο θα καταχωρεί σε κατάλληλους πίνακες: Το όνομα , το ύψος και το φύλο για κάθε παιδί , ελέγχοντας τη σωστή καταχώρηση του φύλου η οποία πρέπει να είναι «Α» για αγόρι και «Κ» για κορίτσι. Στη συνέχεια θα υπολογίζει και θα εμφανίζει τα ονόματα των δέκα αγοριών και των δέκα κοριτσιών που θα επιλεγούν για τις ομάδες του σχολείου.
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_9
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι,J,ΠΑ,ΠΚ
ΠΡΑΓΜΑΤΙΚΕΣ: ΤΕΜP,Υ[130]
ΧΑΡΑΚΤΗΡΕΣ ON[130],ΤΕΜP2,Φ[130],ΤΕMP3
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 130
ΓΡΑΨΕ'ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΥΨΟΣ ΤΟΥ',Ι,'ου ΠΑΙΔΙΟΥ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],Υ[Ι]
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΦΥΛΟ ΤΟΥ',Ι,'ου ΠΑΙΔΙΟΥ'
ΔΙΑΒΑΣΕ Φ[Ι]
ΜΕΧΡΙΣ_ΟΤΟΥ Φ[Ι]='Α' Η Φ[Ι]='Κ'
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 130
ΓΙΑ J ΑΠΟ 130 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1
ΑΝ Υ[J] > Y[J-1] TOTE
TEMP<--Y[J]
Y[J]<--Y[J-1]
Y[J-1]<--TEMP
TEMP2<-- ON[J]
ON[J]<--ON[J-1]
ON[J-1] <-- TEMP2
TEMP3<-- Φ[J]
Φ[J]<--Φ[J-1]
Φ[J-1]<--TEMP3
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Η ΟΜΑΔΑ ΤΩΝ ΑΓΟΡΙΩΝ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ ΤΟΥΣ ΠΑΡΑΚΑΤΩ ΜΑΘΗΤΕΣ: '
ΠΑ<--0
Ι<--1
ΟΣΟ ΠΑ<=10 ΕΠΑΝΑΛΑΒΕ
ΑΝ Φ[Ι] = 'Α' ΤΟΤΕ
ΓΡΑΨΕ ΟΝ[Ι]
ΠΑ<--ΠΑ+1
ΤΕΛΟΣ_ΑΝ
Ι<--Ι+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Η ΟΜΑΔΑ ΤΩΝ ΚΟΡΙΤΣΙΩΝ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ ΤΙΣ ΠΑΡΑΚΑΤΩ ΜΑΘΗΤΡΙΕΣ'
ΠΚ<--0
Ι<--1
ΟΣΟ ΠΚ<=10 ΕΠΑΝΑΛΑΒΕ
ΑΝ Φ[Ι] = 'Κ' ΤΟΤΕ
ΓΡΑΨΕ ΟΝ[Ι]
ΠΚ<--ΠΚ+1
ΤΕΛΟΣ_ΑΝ
Ι<--Ι+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ_9
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ι,J,ΠΑ,ΠΚ
ΠΡΑΓΜΑΤΙΚΕΣ: ΤΕΜP,Υ[130]
ΧΑΡΑΚΤΗΡΕΣ ON[130],ΤΕΜP2,Φ[130],ΤΕMP3
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 130
ΓΡΑΨΕ'ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΥΨΟΣ ΤΟΥ',Ι,'ου ΠΑΙΔΙΟΥ'
ΔΙΑΒΑΣΕ ΟΝ[Ι],Υ[Ι]
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΦΥΛΟ ΤΟΥ',Ι,'ου ΠΑΙΔΙΟΥ'
ΔΙΑΒΑΣΕ Φ[Ι]
ΜΕΧΡΙΣ_ΟΤΟΥ Φ[Ι]='Α' Η Φ[Ι]='Κ'
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 130
ΓΙΑ J ΑΠΟ 130 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1
ΑΝ Υ[J] > Y[J-1] TOTE
TEMP<--Y[J]
Y[J]<--Y[J-1]
Y[J-1]<--TEMP
TEMP2<-- ON[J]
ON[J]<--ON[J-1]
ON[J-1] <-- TEMP2
TEMP3<-- Φ[J]
Φ[J]<--Φ[J-1]
Φ[J-1]<--TEMP3
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Η ΟΜΑΔΑ ΤΩΝ ΑΓΟΡΙΩΝ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ ΤΟΥΣ ΠΑΡΑΚΑΤΩ ΜΑΘΗΤΕΣ: '
ΠΑ<--0
Ι<--1
ΟΣΟ ΠΑ<=10 ΕΠΑΝΑΛΑΒΕ
ΑΝ Φ[Ι] = 'Α' ΤΟΤΕ
ΓΡΑΨΕ ΟΝ[Ι]
ΠΑ<--ΠΑ+1
ΤΕΛΟΣ_ΑΝ
Ι<--Ι+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Η ΟΜΑΔΑ ΤΩΝ ΚΟΡΙΤΣΙΩΝ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ ΤΙΣ ΠΑΡΑΚΑΤΩ ΜΑΘΗΤΡΙΕΣ'
ΠΚ<--0
Ι<--1
ΟΣΟ ΠΚ<=10 ΕΠΑΝΑΛΑΒΕ
ΑΝ Φ[Ι] = 'Κ' ΤΟΤΕ
ΓΡΑΨΕ ΟΝ[Ι]
ΠΚ<--ΠΚ+1
ΤΕΛΟΣ_ΑΝ
Ι<--Ι+1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ