Έλεγχος αν ένας πίνακας είναι ταξινομημένος

Αν σε κάποια άσκηση ζητείται να ελεγχθεί αν ένας πίνακας είναι ταξινομημένος - έστω κατ' αύξουσα σειρά - τότε στην πραγματικότητα θα πρέπει να ελεγχθεί αν υπάρχει ένα τουλάχιστον ζεύγος γειτονικών στοιχείων που δεν είναι στη σωστή σειρά. Αυτό υλοποιείται με το παρακάτω απόσπασμα αλγορίθμου για έναν πίνακα έστω 50 στοιχείων:


flag <- ΑΛΗΘΗΣ
ΓΙΑ i ΑΠΟ 50 ΜΕΧΡΙ 2 ΜΕ_ΒΗΜΑ -1
    ΑΝ Α[i] < Α[i - 1] ΤΟΤΕ
       flag <- ΨΕΥΔΗΣ
    ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ flag = 'ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'Πίνακας ταξινομημένος κατά αύξουσα σειρά'
ΤΕΛΟΣ_ΑΝ


	

Συμμετρικός μονοδιάστατος πίνακας

Επεξήγηση πότε ένας μονοδιάστατος πίνακας είναι συμμετρικός και πότε όχι (αρχείο pdf).

Εκτός από τον αλγόριθμο που παρατίθεται στο αρχείο pdf, ένας εναλλακτικός αλγόριθμος για να ελεγχθεί αν ένας μονοδιάστατος πίνακας είναι συμμετρικός ή όχι είναι ο εξής:

(Πηγή: http://users.sch.gr//paris/index.php?option=com_content&view=article&id=41:kef39monoalgor&catid=10:kef39monpin&Itemid=6)

Αλγόριθμος Συμμετρικός_πίνακας
Ίσα_στοιχεία ← 0
! Ελέγχουμε τον πίνακα μέχρι τη μέση
  Γιααπό 1 μέχρι (ν DIV 2)
    Αν Α[i] = A[ν+1-i] τότε
     Ίσα_στοιχεία ←  Ίσα_στοιχεία + 1
Τέλος_αν
  Τέλος_επανάληψης
  Αν Ίσα_στοιχεία = (ν DIV 2) τότε
    Εμφάνισε "Ο πίνακας είναι συμμετρικός."
  Αλλιώς
    Εμφάνισε "Ο πίνακας δεν είναι συμμετρικός."
Τέλος_αν
Τέλος 

Ταξινόμηση δισδιάστατου πίνακα

Ταξινόμηση των στοιχείων ενός δισδιάστατου πίνακα Π[3,4] σε αύξουσα σειρά ώστε το μικρότερο να βρίσκεται στην θέση 1,1 και το μεγαλύτερο στην θέση 3,4. https://aepp.edu.gr/eidika-themata/taksinomisi-disdiastatou-pinaka/
Ταξινόμηση των στοιχείων ενός δισδιάστατου πίνακα ανά γραμμή, ανά στήλη και με βάση τα στοιχεία μιας συγκεκριμένης στήλης.

Ασκήσεις στη δομή επιλογής

1) Χαρακτηρισμός τριγώνων
2) Υπολογισμός εμβαδού τριγώνων με τη βοήθεια του τύπου του Ήρωνα

  • Δείτε ένα παράδειγμα για το πότε 3 ευθύγραμμα τμήματα δεν αποτελούν τρίγωνο

  • Εκτελέστε τον αλγόριθμο για τον υπολογισμό του εμβαδού τριγώνου δίνοντας αρκετές τιμές για τις μεταβλητές α, β και γ. Φροντίστε ώστε να υπάρχει μία τουλάχιστον τριάδα τιμών για την οποία ο αλγόριθμος να εμφανίζει το μήνυμα ότι δεν αποτελεί τρίγωνο
3) Σε έναν αγώνα στον τελικό του άλματος εις μήκος, ο αθλητής πραγματοποιεί την τελική του προσπάθεια. Να αναπτύξετε αλγόριθμο ο οποίος:

α) διαβάζει το μήκος του άλματος του αθλητή. Θεωρήστε ότι για άκυρο άλμα δίνεται ως μήκος ο αριθμός 0.

β) Εμφανίζει το μήνυμα "Άκυρο άλμα" αν δόθηκε ως μήκος ο αριθμός 0 ή το μήνυμα "Έγκυρο άλμα" αν δόθηκε ως μήκος αριθμός διάφορος του μηδενός.

 

Άσκηση για δυαδική και σειριακή αναζήτηση

- Να γραφτεί πρόγραμμα το οποίο να διαβάζει 10 ονόματα και ισάριθμα τηλέφωνα. (Θεωρήστε ότι τα ονόματα δίνονται ταξινομημένα.)
- Να διαβάζει ένα όνομα για αναζήτηση του τηλεφώνου του.
- Να αναζητά το όνομα σειριακά.  Αν βρεθεί, να εμφανίζει το τηλέφωνό του, διαφορετικά μήνυμα ότι δεν βρέθηκε.
- Να εμφανίζει επίσης το πλήθος των αναζητήσεων που έκανε.
(Επισημαίνεται ότι επειδή ο πίνακας είναι ταξινομημένος, να σταματά όταν ξεπεράσει το ζητούμενο όνομα.)
- Να αναζητά το όνομα δυαδικά.  Αν βρεθεί, να εμφανίζει το τηλέφωνό του, διαφορετικά μήνυμα ότι δεν βρέθηκε.
- Να εμφανίζει επίσης το πλήθος των αναζητήσεων που έκανε.

(Πηγή άσκησης: http://2lyk-gerak.att.sch.gr/aepp/aepp-binary-search.htm)