## Δημιουργία σχήματος «δέντρου» που αποτελείται από X αριθμό γραμμών, με χρήση ενός χαρακτήρα (κάθετη γραμμή «|»).

Διδακτικοί στόχοι

Στόχος της δραστηριότητας αυτής είναι να μάθετε:

§ Να δημιουργείτε τον αλγόριθμο για το σχεδιασμό ενός παραμετροποιημένου γραφικού σχήματος.

§ Να χρησιμοποιείτε τις εντολές εκχώρησης αποτελέσματος αριθμητικών πράξεων σε μεταβλητές, καθώς και τις εμφωλευμένες εντολές επανάληψης.

Ζητούμενο

Να δημιουργηθεί ο αλγόριθμος και στη συνέχεια ο ψευδοκώδικας του προγράμματος που σχηματίζει ένα δέντρο X γραμμών από το χαρακτήρα pipeline «|». Αποθηκεύστε το πρόγραμμα με το όνομα Ask_3.elp. Εκτελέστε το και δείτε τα αποτελέσματα.

Υπόδειξη

Όπως είδαμε στις προηγούμενες δραστηριότητες, για να δημιουργηθεί μια νέα γραμμή στο παράθυρο των Αποτελεσμάτων, χρησιμοποιούμε την εντολή:

-Εμφάνισε ( .. ) και άλλαξε γραμμή

Κάθε φορά που γίνεται αλλαγή γραμμής, αυτό που συμβαίνει στην πραγματικότητα είναι η εισαγωγή στο τέλος της γραμμής ενός συγκεκριμένου κρυφού χαρακτήρα, του χαρακτήρα «αλλαγής γραμμής» (carriage return).

Με την παραπάνω εντολή το πρόγραμμα γράφει στην τρέχουσα γραμμή τα δεδομένα που επιστρέφει το όρισμα της εντολής (δηλαδή ό,τι έχει εισαχθεί στο κενό της) και στη συνέχεια προσθέτει το χαρακτήρα αλλαγής γραμμής. Την επόμενη φορά που θα εκτελεστεί κάποια εντολή εμφάνισης αποτελεσμάτων το πρόγραμμα θα αρχίσει να γράφει από εκεί που είχε σταματήσει, δηλαδή στην αρχή της νέας αυτής γραμμής που δημιουργήθηκε προηγουμένως, η οποία θεωρείται πλέον ως η τρέχουσα γραμμή. Για να κάνουμε μόνο αλλαγή γραμμής χωρίς να εξάγουμε κατ’ ανάγκη αποτελέσματα, αρκεί να εισάγουμε ως όρισμα της εντολής την κενή συμβολοσειρά “”:

-Εμφάνισε ( “” ) και άλλαξε γραμμή

Ανάλυση του προβλήματος

Αν είναι x ο αριθμός των γραμμών του δέντρου, για να σχηματιστεί το δέντρο γραμμή γραμμή, πρέπει σε κάθε γραμμή να γράφονται (x-i) συνεχόμενα κενά, όπου i ο αριθμός της τρέχουσας γραμμής και στη συνέχεια στην ίδια γραμμή να γράφονται (2*i-1) συνεχόμενοι χαρακτήρες «|». Ακολουθεί ο χαρακτήρας αλλαγής γραμμής (carriage return). Η εγγραφή συνεχόμενων και όμοιων χαρακτήρων είναι επαναληπτική διαδικασία που υλοποιείται με εντολές επανάληψης.

Αλγόριθμος

Ø Διάβασε και βάλε στη μεταβλητή Χ το πλήθος των γραμμών που θα σχηματίσουν το δέντρο.

Ø Ξεκινώντας από το 1, επανάλαβε Χ φορές τα παρακάτω βήματα:

o Βάλε στη μεταβλητή KENA το αποτέλεσμα της πράξης Χ-1.

o Βάλε στη μεταβλητή CHARACTERS το αποτέλεσμα της πράξης 2*I-1, όπου I ο μετρητής της επαναληπτικής διαδικασίας.

o Ξεκινώντας από το 1, επανάλαβε τόσες φορές όσες το περιεχόμενο της μεταβλητής KENA τα παρακάτω βήματα:

q Εμφάνισε το χαρακτήρα του κενού.

o Ξεκινώντας από το 1, επανάλαβε τόσες φορές όσες το περιεχόμενο της μεταβλητής CHARACTERS τα παρακάτω βήματα:

q Εμφάνισε το χαρακτήρα «|» (pipeline).

o Άλλαξε γραμμή.