ΕΡΩΤΗΣΗ ΣΧΕΤΙΚΑ ΜΕ ΤΗ ΣΥΝΤΑΞΗ ΑΛΓΟΡΙΘΜΩΝ-ΠΡΟΓΡΑΜΜΑΤΩΝ

Ξεκίνησε από carrie, 02 Δεκ 2009, 11:49:14 ΠΜ

« προηγούμενο - επόμενο »

carrie

Καλημέρα!!Ειμαι καινούριο μέλος της παρέας εδώ και καινούρια καθηγήτρια του μαθήματος της Ανάπτυξης.Θα ήθελα να κάνω κάποιες ερωτήσεις:
1)Η εντολή "Γράψε" μπορεί να μπει στον αλγόριθμο?Η μονο στα προγράμματα?
2)Στην εντολή "Γράψε" των προγραμμάτων βάζουμε μονά η διπλά αυτάκια σ αυτο που θέλουμε να εμφανίσουμε?
3)Στον αλγόριθμο βάζουμε τη λέξη "Αρχή"??
4)Στον αλγόριθμο οι εντολές "Διαβασε","Εμφάνισε","Εκτύπωσε" γράφονται με μικρά γράμματα ενώ στο πρόγραμμα με κεφαλαία??
5)Δεδομένα και αποτελέσματα γραφουμε????
Αυτά...Αν μπορεί κάποιος ας μου απαντήσει γιατι έχω μπερδευτεί είναι η αλήθεια... :-[

ntzios kostas

Καταρχήν Καλωσόρισες,

1)Η εντολή "Γράψε" μπορεί να μπει στον αλγόριθμο?Η μονο στα προγράμματα?
Μπορεί. Δες και σελίδα 30 τετραδίου μαθητή. Άλλωστε αλγόριθμος είναι.

2)Στην εντολή "Γράψε" των προγραμμάτων βάζουμε μονά η διπλά αυτάκια σ αυτο που θέλουμε να εμφανίσουμε?

Δεν έχει σημασία. Προς θεού.

3)Στον αλγόριθμο βάζουμε τη λέξη "Αρχή"??
Μπορείς και να βάλεις. Αλλά ποιος ο λόγος;

4)Στον αλγόριθμο οι εντολές "Διαβασε","Εμφάνισε","Εκτύπωσε" γράφονται με μικρά γράμματα ενώ στο πρόγραμμα με κεφαλαία??

Παντού μπορείς να βάλεις μικρά και παντού να βάλεις κεφαλαία.

5)Δεδομένα και αποτελέσματα γραφουμε????
Μόνο όταν το ζητάει η εκφώνηση. Για παράδειγμα με δεδομένο έναν πίνακα Ν θέσεων να γίνουν ....
γράφουμε
Αλγόριθμος δφδγφδφγ
Δεδομένα //Α,Ν//.

Από εκεί και πέρα χρησιμοποιείς τις εντολές διάβασε και γράψε-εμφάνισε-εκτύπωσε.


Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

carrie

Ευχαριστώ πάρα πολύ για την άμεση ανταπόκριση  :)

Λάμπρος Μπουκουβάλας

Παράθεση από: carrie στις 02 Δεκ 2009, 11:49:14 ΠΜ
Καλημέρα!!Ειμαι καινούριο μέλος της παρέας εδώ και καινούρια καθηγήτρια του μαθήματος της Ανάπτυξης.Θα ήθελα να κάνω κάποιες ερωτήσεις:
1)Η εντολή "Γράψε" μπορεί να μπει στον αλγόριθμο?Η μονο στα προγράμματα?
2)Στην εντολή "Γράψε" των προγραμμάτων βάζουμε μονά η διπλά αυτάκια σ αυτο που θέλουμε να εμφανίσουμε?
3)Στον αλγόριθμο βάζουμε τη λέξη "Αρχή"??
4)Στον αλγόριθμο οι εντολές "Διαβασε","Εμφάνισε","Εκτύπωσε" γράφονται με μικρά γράμματα ενώ στο πρόγραμμα με κεφαλαία??
5)Δεδομένα και αποτελέσματα γραφουμε????
Αυτά...Αν μπορεί κάποιος ας μου απαντήσει γιατι έχω μπερδευτεί είναι η αλήθεια... :-[

Καλώς ήλθες carrie στην παρέα.
Λάβε και από εμένα απάντηση:
1) η "γράψε" μπορεί να μπει και σε αλγόριθμο, αλλά το βιβλίο προτιμά τα "εμφάνισε, τύπωσε, εκτύπωσε". Γενικά στους αλγόριθμους υπάρχει σχετική ελευθερία κινήσεων, επομένως μην ανησυχείς.
2) αυτάκια να είναι και ό,τι νά'ναι...
3) η πρακτική του βιβλίου είναι να μην χρησιμοποιείται το αρχή σε αλγόριθμους, αλλά στα προγράμματα.
4) η απάντηση είναι η ίδια με το 1).
5) δεδομένα // ... //, αποτελέσματα // ... //: πρόκειται για εντολές, που χρησιμοποιούνται σε αλγόριθμους (ΟΧΙ σε προγράμματα), όταν η εκφώνηση λέει (π.χ.) "δίνεται...", "να υπολογίζει..." (ή κάτι ανάλογο), αλλά ταυτόχρονα δε λέει "να διαβάζει..." και "να εμφανίζει".
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

Ο Θουκυδίδης  (που τον διαβάζουν οι ξένοι, αλλά όχι εμείς)  έγραφε: «Αταλαίπωρος τοις πολλοίς η ζήτησις της αληθείας, και επί τα ετοίμα μάλλον τρέπονται» (Ι, 20, 3). Οι περισσότεροι δηλαδή αναζητούν αβασάνιστα την αλήθεια και στρέφονται σε ό,τι βρίσκουν έτοιμο. Δεν προβληματίζονται...

P.Tsiotakis

Το Δεδομένα πρακτικά σημαίνει πως ΠΡΕΠΕΙ να γίνει είσοδος κάποιου δεδομένου, αλλά δεν πραγματοποιείται πληκτρολόγηση (που σημαίνει Διάβασε) αλλά γίνεται "αυτόματα".

Πχ είσοδος αντιτίμου από κάρτα ΤΕΟpass διοδίων

Σπύρος Δουκάκης

Λέω στους μαθητές το εξής:
Οι τρεις εμπλεκόμενοι στη δημιουργία ενός αλγορίθμου-προγράμματος είναι
* ο δημιουργός του προγράμματος (προγραμματιστής),
* ο υπολογιστής και
* αυτός που θα το χρησιμοποιήσει (ο χρήστης)
Υπάρχουν τρεις τρόποι εισαγωγής δεδομένων στον αλγόριθμο, αλλά και στο πρόγραμμα:
Με την εντολή Διάβασε όπου ο χρήστης εισάγει δεδομένα στον υπολογιστή.
Με την εντολή εκχώρησης όπου ο προγραμματιστής προσδιορίζει και αποφασίζει για την τιμή που θα λάβει μία μεταβλητή. Ο χρήστης δεν έχει ρόλο.
Με την εντολή Δεδομένα στον αλγόριθμο και με το πέρασμα τιμών μέσω της λίστας παραμέτρων στα υποπρογράμματα, όπου ο υπολογιστής στέλνει τις τιμές από κάποιο άλλο αλγόριθμο ή πρόγραμμα και τις δέχεται ο αλγόριθμος. Ο χρήστης δεν έχει ρόλο.

ΣΔ

ntzios kostas

ΠαράθεσηΜε την εντολή Δεδομένα στον αλγόριθμο και με το πέρασμα τιμών μέσω της λίστας παραμέτρων στα υποπρογράμματα, όπου ο υπολογιστής στέλνει τις τιμές από κάποιο άλλο αλγόριθμο ή πρόγραμμα και τις δέχεται ο αλγόριθμος. Ο χρήστης δεν έχει ρόλο.

Εδώ Σπύρο και Παναγιώτη θα διαφωνήσω. Σκεφτείτε το εξής: να γίνει αλγόριθμος που για έναν δεδομένο πίνακα Ν θέσεων να υπολογίζει ας πούμε το μέγιστο. Δεν σημαίνει ότι τα στοιχεία του έρχονται με  αυτοματοποιημένο τρόπο, ούτε έρχονται από κάπου αλλού. Δηλαδή από κάπου εξωτερικά έρχεται και το μέγεθος του πίνακα; Όχι βέβαια ο πίνακας είναι στατική δομή.
Αυτό που πιστεύω είναι ότι γράφοντας δεδομένα //Α,Ν//, απλά θέλουμε να δώσουμε αλγοριθμικά τα βήματα για την επεξεργασία των στοιχείων ενός  πίνακα, που ο προγραμματιστής στη συνέχεια θα τα κάνει πρόγραμμα και θα τα εφαρμόσει στον δικό του πίνακα που θα έχει όσο μέγεθος θέλει αυτός. Δεν μας ενδιαφέρει να του περιγράψουμε την εισάγωγή των στοιχείων του, κάτι που του είναι γνωστή.
Πρέπει να έχουμε στο μυαλό μας ότι τον αλγόριθμο σε ψευδογλώσσα τον γράφουμε στο χαρτί, για κάποιον που θα τον πάρει και θα τον κάνει πρόγραμμα σε όποια γλώσσα προγραμματισμού θέλει. Δεδομένα και αποτελέσματα, λοιπόν, είναι αυτά που χρειάζεται το κομμάτι αυτό του αλγόριθμου για να δουλέψει και αυτά που το κομμάτι δίνει ως αποτελέσματα. Είναι λοιπόν μετά θέμα του προγραμματιστή αν τα δεδομένα τα ζητάει από τον χρήστη, αν τα αποτελέσματα θα τα εμφανίζει ή αν θα τα χρησιμοποιήσει σαν είσοδο σε άλλη διαδικασία.

Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

Νίκος Αδαμόπουλος

Και εγώ πάντως ΔΕΝ θεωρώ ότι το Διάβασε αφορά αποκλειστικά το χρήστη (δηλαδή πληκτρολόγηση) και τα Δεδομένα αφορούν κάποια άλλη διαδικασία εισόδου των δεδομένων!

Συμφωνώ με τον Κώστα ότι δηλώνοντας Δεδομένα στην αρχή του αλγορίθμου (μόνο εκεί μπορούμε!) αυτό σημαίνει ότι δεν μας απασχολεί η προέλευση των δεδομένων... Απλά τα θεωρούμε... δεδομένα!   :)   Μας απασχολούν τα βήματα από εκεί και πέρα! (Ομοίως και με τα Αποτελέσματα που δεν μας ενδιαφέρει πώς θα εμφανιστούν αυτά. Απλά δηλώνουμε ποια είναι...).

Από την άλλη το Διάβασε δεν μπορεί να αφορά αποκλειστικά στον χρήστη, αφού τότε πώς θα λέγαμε, π.χ., ότι από το TEOpass περνάνε συνεχώς αυτοκίνητα και ένας αισθητήρας διαβάζει... κλπ ;

Δεν μπορούμε να γράψουμε:

Όσο ..... επανάλαβε
   ...
   Δεδομένα // ΚωδΚάρτας, αντίτιμο, +++ //
   ...
Τέλος_επανάληψης

αφού τα Δεδομένα δηλώνονται από την αρχή (στη δεύτερη γραμμή του αλγορίθμου - κάτω από το Αλγόριθμος <όνομα>)! Διάβασε δεν θα πούμε και σε αυτή την περίπτωση; Δηλαδή:

Όσο ..... επανάλαβε
   ...
   Διάβασε ΚωδΚάρτας, αντίτιμο, +++
   ...
Τέλος_επανάληψης

Σπύρος Δουκάκης

#8
Δεν θα διαφωνήσω με αυτά που λέτε. Απλώς είναι η μία πλευρά και η άλλη πλευρά είναι αυτή που λέμε με τον Παναγιώτη. Απλώς το θέμα είχε αυτό το σκεπτικό για αυτό θεωρώ ότι αναφερθήκαμε σε αυτά και όχι σε αυτό που λέτε εσείς.
Βέβαια καλό είναι να ξεκαθαρίσουμε και τις δύο πλευρές μιας που έχουν ξεκαθαριστεί το θέμα των Δεδομένων και των Αποτελεσμάτων πριν από 7 χρόνια στην 6η διημερίδα για την πληροφορική στη Δευτεροβάθμια Εκπαίδευση που διοργάνωσε η ΕΠΥ.

Επιλέγω για τη συζήτηση τον αλγόριθμο της αναζήτησης, όπως και στο σχετικό άρθρο
Αλγόριθμος Σειριακή_Αναζήτηση
Δεδομένα // Ν, πίνακας, ζητούμενο //
βρέθηκε ← ψευδής
θέση ← 0
i ← 1
Όσο (βρέθηκε = ψευδής) και (i ≤ Ν) επανάλαβε
  Αν πίνακας[i] = ζητούμενο τότε
    βρέθηκε ← αληθής
    θέση ← i
  αλλιώς
    i ← i + 1
  Τέλος_αν
Τέλος_επανάληψης
Αποτελέσματα // βρέθηκε, θέση //
Τέλος Σειριακή_Αναζήτηση

Η παραπάνω σειρά ενεργειών είναι αποτελεσματική για οποιοδήποτε τύπο δεδομένων. Ο ίδιος αλγόριθμος μπορεί να χρησιμοποιηθεί για οποιοδήποτε πλήθος στοιχείων, τα οποία μπορεί να είναι είτε αλφαριθμητικά σε περίπτωση αναζήτησης ενός ονόματος μέσα σε πίνακα που περιέχει ονόματα μαθητών, είτε αριθμητικά (ακέραια ή πραγματικά) σε περίπτωση αναζήτησης ενός συγκεκριμένου ποσού μέσα σε πίνακα που περιέχει τιμές προϊόντων.
Δηλωτικές εντολές Δεδομένα και Αποτελέσματα

  • Στο παράδειγμα της σειριακής αναζήτησης εμφανίζονται οι δηλωτικές εντολές:
    Δεδομένα // Ν, πίνακας, ζητούμενο // και Αποτελέσματα // βρέθηκε, θέση //.
    Ποιος είναι ο ρόλος αυτών των εντολών; Ο αλγόριθμος δεν είναι εκτελέσιμος από υπολογιστή. Ωστόσο, κάθε αλγόριθμος χρειάζεται στοιχεία εισόδου, τα οποία ονομάζονται δεδομένα και παράγει στοιχεία εξόδου, τα οποία ονομάζονται αποτελέσματα. Όταν σε ένα πρόβλημα δεν καθορίζεται ο τρόπος εισαγωγής των δεδομένων, τότε ο συγγραφέας δεν χρειάζεται να ασχολείται με αυτόν. Στο πρόβλημα της σειριακής αναζήτησης, ο αλγόριθμος δέχεται το πλήθος των στοιχείων ενός πίνακα, τις τιμές των στοιχείων του και την τιμή που αναζητείται. Έτσι, αν η εκφώνηση προσδιορίζει "Δίνεται μη ταξινομημένος μονοδιάστατος πίνακας, Ν διαφορετικών αριθμητικών στοιχείων. Να αναπτύξετε αλγόριθμο ο οποίος...", τότε πρέπει να χρησιμοποιηθεί η δηλωτική εντολή Δεδομένα για την εισαγωγή αυτών των δεδομένων. Με αυτό τον τρόπο καθορίζεται ότι ο αλγόριθμος λαμβάνει κάποιες τιμές ως στοιχεία εισόδου.
    Αν η εκφώνηση του αλγορίθμου, υποδεικνύει τη χρήση της εντολής Δεδομένα, αλλά ο λύτης χρησιμοποιήσει την εντολή Διάβασε, τότε επιλύεται ένα διαφορετικό πρόβλημα, με διαφορετικές απαιτήσεις. Με αυτήν την επιλογή, ελλοχεύει ο κίνδυνος της τροποποίησης του τρόπου εισόδου δεδομένων που έχει επιλεχθεί από το πρόβλημα, αλλά και της αλλοίωσης των στοιχείων που θεωρεί δεδομένα ο αλγόριθμος.
  • Η χρήση των εντολών Δεδομένα και Αποτελέσματα βοηθάει και ως προς την κατανόηση των αλγορίθμων που καλούνται από άλλο αλγόριθμο. Πράγματι, αν ένας μαθητής έχει κατανοήσει ότι ένας αλγόριθμος δέχεται κάποια δεδομένα και επιστρέφει κάποια αποτελέσματα, τότε είναι εύκολο να κατανοήσει την έννοια των παραμέτρων σε άλλο αλγόριθμο. Ένας αλγόριθμος μπορεί να κληθεί από έναν άλλο αλγόριθμο με χρήση της εντολής Κάλεσε. Η επικοινωνία μεταξύ των δύο αλγορίθμων μπορεί να γίνει με τους επόμενους τρόπους: α) Με μεταβίβαση τιμών, β) Με χρήση καθολικών μεταβλητών, γ) Μεικτός τρόπος
Καταλήγοντας, λοιπόν, οι δύο δηλωτικές εντολές έχουν αξία και για αυτό που αναφέρετε, αλλά και για αυτό που αναπτύσσω παραπάνω.

Όποιος θέλει να δει το άρθρο του 2003, που φαίνεται να παραμένει επίκαιρο, αφού οι άνθρωποι και οι εποχές αλλάζουν, αλλά τα γραπτά μένουν... σας παραπέμπω στο σύνδεσμο

http://sdoukakis.wordpress.com/publications/

Θα πω όμως κάτι επιπλέον... Η ανάγκη των δύο εντολών δημιουργήθηκε και από κάτι πιο πρακτικό: Την οικονομία χώρου και χρόνου. Σκεφτείτε να έπρεπε να διαβάσουμε τον πίνακα και να εκτυπώσουμε τον πίνακα. Αντί έξι εντολών χρησιμοποιούνται δύο... και σκεφτείτε το αυτό σε ένα βιβλίο...

ΣΔ

Νίκος Αδαμόπουλος

Οκ Σπύρο, και χρήσιμα αυτά που παραθέτεις ! Και προφανώς εσύ και ο Παναγιώτης το έχετε ψάξει και το έχετε δουλέψει το όλο θέμα. Απλώς, χωρίς τα τελευταία σχόλια μπορεί να προκαλούνταν παρερμηνείες...

ntzios kostas

ΠαράθεσηΗ ανάγκη των δύο εντολών δημιουργήθηκε και από κάτι πιο πρακτικό: Την οικονομία χώρου και χρόνου. Σκεφτείτε να έπρεπε να διαβάσουμε τον πίνακα και να εκτυπώσουμε τον πίνακα. Αντί έξι εντολών χρησιμοποιούνται δύο... και σκεφτείτε το αυτό σε ένα βιβλίο...

Πάντως εκτός από το πρακτικό να ξανατονίσω, κάτι που έκανες και εσύ Σπύρο στο παραπάνω άρθρο, ότι είναι και αναγκαίο στους αλγόριθμους. Για παράδειγμα στην αναζήτηση δεν πρέπει να φτιάξω έναν αλγόριθμο εστιασμένο σε έναν πίνακα πχ 100 θέσεων αλλά αντιθέτως έναν πιο γενικό που να εφαρμόζεται σε οποιονδήποτε πίνακα θέλει ο προγραμματιστής που θα τον κάνει πρόγραμμα.

Πάντως τα δεδομένα και τα αποτελέσματα πρέπει να τονιστούν, γιατί βλέπω από πολλούς συνάδελφους ότι προτρέπουν τους μαθητές τους στην αντικατάσταση για παράδειγμα των εντολών δεδομένα //Α,Ν,Μ// στις εντολές:
διάβασε Ν, Μ
για γρ από 1 μέχρι Ν
......για στ από 1 μέχρι Μ
............διάβασε Α[γρ,στ]

που βέβαια είναι λάθος (όχι βέβαια Παναγιώτη το γρ και στ :)), αφού δεν μπορεί πλέον να γίνει πρόγραμμα.
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

P.Tsiotakis

Το δεδομένα και το Αποτελέσματα υιοθετήθηκε από τη συγγραφική ομάδα για την κλήση αλγορίθμου (ψευδοκώδικα) από αλγόριθμο (ψευδοκώδικα). Συνεπώς παίζουν το ρόλο των παραμέτρων οι μεταβλητές αυτές όπως στις διαδικασία και συνάρτηση.

Αυτό εννοώ "αυτόματη είσοδος" όπως οι τυπικές παράμετροι σε μια συνάρτηση. Προφανώς σε μια συνάρτηση ως παράμετρος περνάει το όνομα του πίνακα και οι θέσεις που χρησιμοποιούνται, ωστόσο στο τμήμα δηλώσεων περιγράφονται οι θέσεις που κρατούνται.
Στο ψευδοκώδικα δεν φαίνονται οι θέσεις που παρακρατούνται για τον πίνακα, που φυσικά είναι στατική δομή.

Κατά τη γνώμη μου η χρήση των εντολών αυτών σημαίνει πως:

"Δε θα ασχοληθώ σε αυτή τη φάση (ψευδοκώδικας) με τον τρόπο εισαγωγής των δεδομένων. Θεωρώ ότι έχουν εισαχθεί χρησιμοποιώντας τη ΔΕΔΟΜΕΝΑ και δίνω έμφαση στο τμήμα εντολών (επεξεργασία).
Ομοίως, δε θα ασχοληθώ σε αυτή τη φάση (ψευδοκώδικας) με τον τρόπο εξαγωγής των δεδομένων. Έχω πραγματοποιήσει σωστά την επεξεργασία και δημιούργησα τα επιθυμητά ΑΠΟΤΕΛΕΣΜΑΤΑ για τον αλγόριθμο. Δε θα τα στείλω σε εκτυπωτή ή οθόνη σε αυτή τη φάση, καθώς δουλεύω στο χαρτί."

Σπύρος Δουκάκης

Παράθεση από: ntzios kostas στις 03 Δεκ 2009, 09:21:04 ΜΜ

Πάντως εκτός από το πρακτικό να ξανατονίσω, κάτι που έκανες και εσύ Σπύρο στο παραπάνω άρθρο, ότι είναι και αναγκαίο στους αλγόριθμους. Για παράδειγμα στην αναζήτηση δεν πρέπει να φτιάξω έναν αλγόριθμο εστιασμένο σε έναν πίνακα πχ 100 θέσεων αλλά αντιθέτως έναν πιο γενικό που να εφαρμόζεται σε οποιονδήποτε πίνακα θέλει ο προγραμματιστής που θα τον κάνει πρόγραμμα.


Συμφωνώ απόλυτα με το παραπάνω και σε πάω λίγο παρακάτω. Όχι απλώς εστιασμένο σε έναν πίνακα 100 θέσεων, αλλά σε έναν πίνακα με αλφαριθμητικά στοιχεία ή με αριθμητικά στοιχεία ή με λογικά στοιχεία.

Παράθεση από: ntzios kostas στις 03 Δεκ 2009, 09:21:04 ΜΜ
Πάντως τα δεδομένα και τα αποτελέσματα πρέπει να τονιστούν, γιατί βλέπω από πολλούς συνάδελφους ότι προτρέπουν τους μαθητές τους στην αντικατάσταση για παράδειγμα των εντολών δεδομένα //Α,Ν,Μ// στις εντολές:
διάβασε Ν, Μ
για γρ από 1 μέχρι Ν
......για στ από 1 μέχρι Μ
............διάβασε Α[γρ,στ]

που βέβαια είναι λάθος (όχι βέβαια Παναγιώτη το γρ και στ :)), αφού δεν μπορεί πλέον να γίνει πρόγραμμα.

Στην παραπάνω σκέψη σου, θα έλεγα το εξής:
ΠΡΟΓΡΑΜΜΑ τάδε 
ΜΕΤΑΒΛΗΤΕΣ 
  ΑΚΕΡΑΙΕΣ: Ν, Μ, Π[100, 100], γρ, στ 
ΑΡΧΗ 
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 
    ΔΙΑΒΑΣΕ Ν 
  ΜΕΧΡΙΣ_ΟΤΟΥ Ν >= 1 ΚΑΙ Ν <= 100 
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 
    ΔΙΑΒΑΣΕ Μ 
  ΜΕΧΡΙΣ_ΟΤΟΥ Μ >= 1 ΚΑΙ Μ <= 100 
  ΓΙΑ γρ ΑΠΟ 1 ΜΕΧΡΙ Ν 
    ΓΙΑ στ ΑΠΟ 1 ΜΕΧΡΙ Μ 
      ΔΙΑΒΑΣΕ Π[γρ, στ] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
  ΓΙΑ γρ ΑΠΟ 1 ΜΕΧΡΙ Ν 
    ΓΙΑ στ ΑΠΟ 1 ΜΕΧΡΙ Μ 
      ΓΡΑΨΕ Π[γρ, στ] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


που ουσιαστικά, αν ξέρω το μεγαλύτερο πιθανό πλήθος στοιχείων του πίνακα, μπορώ να διαβάσω το πλήθος των γραμμών και των στηλών (Εγώ μαθαίνω πιο γρήγορα από τον Παναγιώτη και χρησιμοποίησα γρ και στ ;)).

sstergou

Παράθεση από: ntzios kostas στις 02 Δεκ 2009, 11:50:28 ΜΜ
Εδώ Σπύρο και Παναγιώτη θα διαφωνήσω. Σκεφτείτε το εξής: να γίνει αλγόριθμος που για έναν δεδομένο πίνακα Ν θέσεων να υπολογίζει ας πούμε το μέγιστο. Δεν σημαίνει ότι τα στοιχεία του έρχονται με  αυτοματοποιημένο τρόπο, ούτε έρχονται από κάπου αλλού. Δηλαδή από κάπου εξωτερικά έρχεται και το μέγεθος του πίνακα; Όχι βέβαια ο πίνακας είναι στατική δομή.
Αυτό που πιστεύω είναι ότι γράφοντας δεδομένα //Α,Ν//, απλά θέλουμε να δώσουμε αλγοριθμικά τα βήματα για την επεξεργασία των στοιχείων ενός  πίνακα, που ο προγραμμα

Το αν μια δομή είναι στατική ή όχι είναι θέμα υλοποίησης. Χρησιμοποιούμε στατικούς πίνακες όταν μας ενδιαφέρει η απόδοση.
Νομίζω δεν χρειάζεται να δικαιολογούμε τα αδικαιολόγητα. Η αναφορά σε στατικές και δυναμικές δομές είναι άστοχη αφού στην ψευδογλώσσα δεν τίθεται θέμα υλοποίησης, ούτε καν εκτέλεσης. Στο κάτω κάτω της γραφής δεν ενδιαφέρει κανέναν το πως υλοποιούνται εσωτερικά οι πίνακες.

Το Δεδομένα //Π, Ν// είναι εκτελέσιμη εντολή. Το αν η εσωτερικά ο Π είναι στατική ή δυναμική δομή δεν έχει καμία σημασία για τον αλγόριθμο. Παρ' όλα αυτά θα μπορούσε το μέγεθος του πίνακα να καθορίζεται κατά την διάρκεια της εκτέλεσης χωρίς αυτό να παραβιάζει την στατικότητά του. Απλά οι θέσεις μνήμης δεσμεύονται κατά την διάρκεια της εκτέλεσης. Το σωστό βέβαια σε αυτή την περίπτωση θα ήταν το Δεδομένα //Π[Ν]//.

Εν ολίγοις το συγκεκριμένο σημείο γράφτηκε προφανώς χωρίς πολύ ψάξιμο και τώρα καλούμαστε εμείς να δικαιολογήσουμε να αδικαιολόγητα. Προσωπικά δεν θέλω να το κάνω αυτό. Κάτι αντίστοιχο δηλαδή με την κουβέντα περί διαφορετικότητας της Για σε ΓΛΩΣΣΑ και Ψευδογλώσσα.




ntzios kostas

Δηλαδή αν έγραφα στον αλγόριθμο

Αλγόριθμος φγφγ
διάβασε πλ_μαθητών
για μαθ από 1 μέχρι πλ_μαθητών
διάβασε Β[μαθ]
τέλος_επανάληψης
......

Αν τον θεωρείς λάθος, μπορείς να μου πεις τον λόγο;

ΠαράθεσηΗ αναφορά σε στατικές και δυναμικές δομές είναι άστοχη αφού στην ψευδογλώσσα δεν τίθεται θέμα υλοποίησης, ούτε καν εκτέλεσης. Στο κάτω κάτω της γραφής δεν ενδιαφέρει κανέναν το πως υλοποιούνται εσωτερικά οι πίνακες.

Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...