Άθροισμα στοιχείων κύριας και δευτερεύουσας διαγωνίου

Ξεκίνησε από tom, 22 Μαρ 2010, 01:16:48 ΠΜ

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

tom

Έστω η παρακάτω άσκηση που "πιάνει" 10 μόρια:

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

Σημ. Εννοώ ότι θέλω ένα άθροισμα.

και δύο λύσεις:

α)
Αλγόριθμος διαγώνιοι
	Διάβασε Ν
	Για γρ από 1 μέχρι Ν
		Για στ από 1 μέχρι Ν
			Διάβασε π[γρ,στ]
		Τέλος_επανάληψης
	Τέλος_επανάληψης
	αδ← 0
	Για γρ από 1 μέχρι Ν
		Για στ από 1 μέχρι Ν
			Αν γρ=στ ή γρ=Ν-στ+1 τότε
				αδ← αδ+π[γρ,στ]
			Τέλος_αν
		Τέλος_επανάληψης
	Τέλος_επανάληψης
	Εμφάνισε αδ
Τέλος διαγώνιοι

β)
Αλγόριθμος διαγώνιοι
	Διάβασε Ν
	Για γρ από 1 μέχρι Ν
		Για στ από 1 μέχρι Ν
			Διάβασε π[γρ,στ]
		Τέλος_επανάληψης
	Τέλος_επανάληψης
	ακδ← 0
	αδδ← 0
	Για γρ από 1 μέχρι Ν
		Για στ από 1 μέχρι Ν
			Αν γρ=στ τότε
				ακδ← ακδ+π[γρ,στ]
			Τέλος_αν
			Αν γρ=Ν-στ+1 τότε
				αδδ← αδδ+π[γρ,στ]
			Τέλος_αν
		Τέλος_επανάληψης
	Τέλος_επανάληψης
	αδ← ακδ+αδδ
	Εμφάνισε αδ
Τέλος διαγώνιοι


Πόσο θα "κόβατε" από τη δεύτερη λύση;
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

ntzios kostas

Η ύπαρξη λάθους είναι ότι το 'κεντρικό' στοιχείο του πίνακα προστίθεται δύο φορές σε περίπτωση που το Ν είναι περιττός. Πιστεύω για τον λόγο αυτό θα έκοβα το 2-4 % των μορίων της άσκησης.

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

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

Ελάχιστα θα έκοβα... αφού το ζητούμενο είναι λίγο εξεζητημένο...

Κώστα γιατί θα έκοβες για το Διάβασε Ν;

gpapargi

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

gthal

Στη βαθμολόγηση θα συμφωνήσω με τον Κώστα,
αλλά κι εγώ απορώ, γιατί θα έκοβες για το Διάβασε Ν ;
Φιλικά,
Γιώργος Θαλασσινός

ntzios kostas

Ο πίνακας είναι στατική δομή και το μέγεθός του δεν ορίζεται από τον χρήστη. Αυτός ο αλγόριθμος δεν μπορεί να γίνει προγραμμα.

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

tom

Παράθεση από: ntzios kostas στις 22 Μαρ 2010, 12:23:31 ΜΜ
Ο πίνακας είναι στατική δομή και το μέγεθός του δεν ορίζεται από τον χρήστη. Αυτός ο αλγόριθμος δεν μπορεί να γίνει προγραμμα.

Θα έπρεπε να ήταν Δεδομένα //Ν//.   
Εντάξει ρε παιδιά. Αφού αυτό λύνεται αν δώσουμε ένα πολύ μεγάλο μέγιστο (π.χ. 1000 ή 10000). Γιατί να περιορίσουμε το βαθμό παραμετροποίησης ενός προγράμματος για κάτι τέτοιο. Εμένα με βολεύει να έχει Ν και να κάνω πειραματισμούς. Νομίζω και για τον μαθητή είναι παιδαγωγικά χρήσιμο κάτι τέτοιο. Του εξηγείς πως ο πίνακας είναι στατική δομή, βάζει ένα άνω φράγμα και επικεντρώνεται στα υπόλοιπα. Θα καθόμαστε και θα αλλάζουμε δείκτες τώρα...; Εξ 'άλλου και στην υλοποίηση της ψευδογλώσσας που υπάρχει, και Δεδομένα //Ν// να βάλεις, εσύ δεν θα δώσεις το Ν;  :)

Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

sstergou

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

ntzios kostas

Παράθεση από: tom στις 22 Μαρ 2010, 01:53:01 ΜΜ
Εντάξει ρε παιδιά. Αφού αυτό λύνεται αν δώσουμε ένα πολύ μεγάλο μέγιστο (π.χ. 1000 ή 10000). Γιατί να περιορίσουμε το βαθμό παραμετροποίησης ενός προγράμματος για κάτι τέτοιο. Εμένα με βολεύει να έχει Ν και να κάνω πειραματισμούς. Νομίζω και για τον μαθητή είναι παιδαγωγικά χρήσιμο κάτι τέτοιο. Του εξηγείς πως ο πίνακας είναι στατική δομή, βάζει ένα άνω φράγμα και επικεντρώνεται στα υπόλοιπα. Θα καθόμαστε και θα αλλάζουμε δείκτες τώρα...; Εξ 'άλλου και στην υλοποίηση της ψευδογλώσσας που υπάρχει, και Δεδομένα //Ν// να βάλεις, εσύ δεν θα δώσεις το Ν;  :)



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

tom

Παράθεση από: ntzios kostas στις 22 Μαρ 2010, 04:15:51 ΜΜ
Και τελικά ποια είναι η διαφορά της εντολής Δεδομένα //Ν// από το διάβασε Ν. Οι μαθητές νομίζω ότι πρέπει να την ξέρουν και να εφαρμόζουν το σωστό.

Θα σου πω, πώς το καταλαβαίνω εγώ.

Χρησιμοποιούμε την εντολή Δεδομένα //Ν// όταν θέλουμε να κερδίσουμε χρόνο από την είσοδο των δεδομένων και να επικεντρωθούμε στην ουσία του αλγορίθμου που στην προκειμένη περίπτωση είναι ο υπολογισμός του αθροίσματος. Σημαίνει πως το Ν απλά υπάρχει από "κάπου".  Εξαρτάται από τι θέλουμε να εξετάσουμε.

Στο παράδειγμα που έδωσα θα μπορούσα να πω και το εξής:

   Δεδομένα //Ν, π[Ν,Ν]// αντί να πω:

   Διάβασε Ν
   Για γρ από 1 μέχρι Ν
      Για στ από 1 μέχρι Ν
         Διάβασε π[γρ,στ]
      Τέλος_επανάληψης
   Τέλος_επανάληψης

πιο κομψό δεν είναι το πρώτο;

Λέει κάπου μέσα στο διδακτικό πακέτο πως ακριβώς ορίζεται η εντολή Δεδομένα//.... // ; :-\
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

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

Κώστα να πω ότι με μπέρδεψες!

Η άσκηση λέει ότι ο χρήστης θα δίνει το Ν. Δεν θα πρέπει να μπει εντολή Διάβασε Ν; Το Δεδομένα //Ν// δεν θα το βάζαμε αν η άσκηση έλεγε "Έστω Ν ο αριθμός ..." ή "Δίνεται αριθμός Ν..." ;;

Πράγματι οι πίνακες είναι στατικές δομές αλλά το Ν δεν σημαίνει ντε και καλά ότι θα είναι το καθορισμένο μέγεθος του πίνακα, με την έννοια που δηλώνεται π.χ. στη ΓΛΩΣΣΑ. Στην ψευδογλώσσα μάς ενδιαφέρει το μέγεθος του πίνακα;


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

Παράθεση από: tom στις 22 Μαρ 2010, 05:22:18 ΜΜ
   Δεδομένα //Ν, π[Ν,Ν]//

Είναι σωστή η παραπάνω γραφή;
Εγώ θα το έγραφα έτσι:

Δεδομένα //π, Ν//

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

tom

Παράθεση από: Νίκος Αδαμόπουλος στις 22 Μαρ 2010, 06:10:59 ΜΜ
Εγώ θα το έγραφα έτσι:

Δεδομένα //π, Ν//

Και πως θα φαίνεται ότι είναι δισδιάστατος;
Για τον πίνακα θεωρώ ότι επίσης δίνεται από τον χρήστη.
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

evry

Αν υποθέσουμε ότι τα Δεδομένα στην ψευδογλώσσα παίζουν τον ίδιο ρόλο που παίζουν οι παράμετροι εισόδου στα υποπρογράμματα τότε δεν ξέρω αν χρειάζεται να φαίνεται ότι ο πίνακας είναι 2D. Μην ξεχνάμε ότι και στον ορισμό του υποπρογράμματος δεν φαίνεται ότι η παράμετρος είναι πίνακας παρά μόνο αν κοιτάξεις το τμήμα δηλώσεων του υποπρογράμματος.

Τέλος πάντων τα συγκεκριμένα σημεία δεν είναι αυστηρά ορισμένα στο βιβλίο και μπορούμε να συζητάμε για ώρα τι σημαίνει το ένα και τι σημαίνει το άλλο. Με λίγη καλή θέληση όμως μπορούμε να καταλήξουμε κάπου.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

Πάντως το τετράδιο του μαθητή έχει παραδείγματα εισαγωγής πίνακα με την εντολή

Δεδομένα //Π//

όπου ο πίνακας Π έχει π.χ. 50 στοιχεία.

Στην ψευδογλώσσα πιστεύω ότι πρέπει να πάρουμε όλους τους τρόπους που αναφέρετε ως σωστούς.


Παράθεση από: ntzios kostas στις 22 Μαρ 2010, 12:23:31 ΜΜ
Αυτός ο αλγόριθμος δεν μπορεί να γίνει προγραμμα.   

Αυτό από που προκύπτει; Μια χαρά πρόγραμμα μπορεί να γίνει, απλά όχι στην ΓΛΩΣΣΑ.

Θα πω και κάτι άλλο και ας με πάρετε με τις ντομάτες : Δεν πρέπει να κάνουμε διάκριση μεταξύ αλγορίθμου και προγράμματος. Κάθε αλγόριθμος μπορεί να γίνει πρόγραμμα και κάθε πρόγραμμα είναι κάποιος αλγόριθμος εκφρασμένος με κάποιο τρόπο.

Keep Growing

Πάντως εγώ προτιμώ να φάω φασολάδα από τα χεράκια της μαμάκας μου.
Είναι θέμα γούστου. ;D
Ο Έρωτας (του Εκπ/κου Πληροφορικού) στ' αλώνια της καλδέρας (του υπνωτισμού).

evry

εεε, δεν το κατάλαβα ακριβώς. Τι σχέση έχει με τα προηγούμενα? κάπου το έχασα :-\

Παράθεση από: Keep Growing στις 22 Μαρ 2010, 06:57:30 ΜΜ
Πάντως εγώ προτιμώ να φάω φασολάδα από τα χεράκια της μαμάκας μου.
Είναι θέμα γούστου. ;D
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

ntzios kostas

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

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

Keep Growing

Ένα πρόβλημα προς επίλυση είναι και το μαγείρεμα της φασολάδας.

Η μητέρα μου είναι υπέροχη μαγείρισσα. Καθημερινά δημιουργεί και εκτελεί (πήρε προίκα τους αλγόριθμους από την μάνα της) φανταστικά γεύματα. Το καλύτερό της είναι η φασολάδα.

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

Εγώ τι λέω λοιπόν.

Λέω ότι προτιμώ την φασολάδα από τα χεράκια της μανούλας μου, παρά να περιμένω το "νεροζούμι".

Κάθε κατεργάρης στην "κουζίνα" του. :)
Ο Έρωτας (του Εκπ/κου Πληροφορικού) στ' αλώνια της καλδέρας (του υπνωτισμού).

ntzios kostas

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

Keep Growing

Και κάτι ακόμα μάγκες.... (και πριν αρχίσετε να μου πετάτε σωσίβια) μια και είπα "νεροζούμι" θυμήθηκα ότι σήμερα είναι η μέρα του νερού.
Ευκαιρία να ξεσκονίσουμε τους αλγόριθμους "ελεύθερης κολύμβησης", διότι όπως θα γνωρίζετε και εσείς, το κολύμπι αντίθετα στο ρεύμα, είναι όπως και να το κάνουμε, εξοντωτικό.... :)
Ο Έρωτας (του Εκπ/κου Πληροφορικού) στ' αλώνια της καλδέρας (του υπνωτισμού).

Keep Growing

....αυτό θα πει δια θεματικότητα. Ελεύθερο κολύμπι στην διαδρομή από κύρια σε δευτερεύουσα διαγώνιο δισδιάστατου πίνακα.
Με άλλα λόγια δια θεματικότητα γυμναστικής - πληροφορικής.

Σημ: Είμαι για τα σίδερα.  ;D ;D ;D
Ο Έρωτας (του Εκπ/κου Πληροφορικού) στ' αλώνια της καλδέρας (του υπνωτισμού).

sstergou

Το
Αλγόριθμος Τάδε
  Δεδομένα //Ν//

είναι αντίστοιχο του :

Συνάρτηση Τάδε(Ν)...

Κώστα εκεί που διαφωνώ είναι ότι δεν νομίζω ότι υπάρχει διαφορά μεταξύ προγραμματιστή και δημιουργού αλγορίθμου. Οι ιδιότητες του αλγορίθμου που τον καθιστούν "αλγόριθμο" είναι ακριβώς αυτές που εξασφαλίζουν την εκτέλεσή του μηχανικά.

Επίσης νομίζω ότι η εντολή Δεδομένα δεν απευθύνεται στον μελλοντικό προγραμματιστή του αλγορίθμου (που μπορεί και να μην υπάρχει ή να είναι το ίδιο πρόσωπο) αλλά όπως και όλες οι υπόλοιπες εντολές στον εκτελεστή του αλγορίθμου (ότι και να είναι αυτός).

Όσον αφορά τις φασολάδες και τις συνταγές δεν είναι αλγόριθμοι εκτός και αν οριστούν όπως ακριβώς προβλέπει και ο ορισμός και τα κριτήρια ενός αλγόριθμου. Αν αυτό γίνει τότε ο αλγόριθμος μπορεί να εκτελεστεί από ένα ρομπότ μάγειρα.  :D

Πάντως έχω βαρεθεί αυτό το παράδειγμα με την συνταγή μαγειρικής... υπάρχουν καλύτερα/σωστότερα παραδείγματα για την εισαγωγή στην έννοια του αλγορίθμου. Άντε μετά να σε πάρουν στα σοβαρά όταν αρχίσεις και μιλάς για φασολάδες και μακαρόνια...

Keep Growing

#23
Το πιο σωστό για μένα συνάδελφε (το όνομά σου;  :)) είναι να πούμε: Αλγόριθμος μπορεί να είναι και μια συνταγή μαγειρικής αρκεί να ικανοποιεί τις ιδιότητες των αλγορίθμων.
Αλλιώς οι σελίδες 178 και 179 του βιβλίου του Γυμνασίου θα πρέπει να αναθεωρηθούν.

Εξάλλου οι ιδιότητες δεν προέκυψαν από την εμπειρία;
Δίνω ένα παράδειγμα. Αν έχει ζήσει κάποιος στο εξωτερικό, (στην Ολλανδία για παράδειγμα) όταν περιμένει το λεωφορείο στην στάση, ξέρει πότε θα έρθει αυτό (το λεωφορείο) με ακρίβεια δευτερολέπτων από την ενημέρωση που έχει από τις φωτεινές ενδείξεις της στάσης.
Γιατί συμβαίνει αυτό; Όχι γιατί βρέθηκε κάποιος ξαφνικά και είπε ότι το λεωφορείο θα έρχεται ακριβώς την συγκεκριμένη ώρα, αλλά γιατί κάποια μηχανήματα έκαναν χρονομετρήσεις και στη συνέχεια με την στατιστική ανάλυση προέκυψε η ακρίβεια.
Αντίστοιχα συμβαίνουν και με την εκτέλεση και διαρκή τροποποίηση των υποψήφιων αλγορίθμων μαγειρικής από την μητέρα μου. Θα έρθει κάποτε το πλήρωμα του χρόνου που οι χρονικές και ποσοτικές και ποιοτικές απαιτήσεις των υποψήφιων αλγορίθμων θα δώσουν την ιδανική λύση. Εκεί ακριβώς είναι που γεννιέται ένας αλγόριθμος μαγειρικής. Και γιαυτό υπάρχουν όλα αυτά τα σκεύη με κλίμακες και τα χρονόμετρα που χρησιμοποιούνται στην μαγειρική.
Ο Έρωτας (του Εκπ/κου Πληροφορικού) στ' αλώνια της καλδέρας (του υπνωτισμού).

evry

Νομίζω ότι καλά  παραδείγματα αλγορίθμου είναι κάποια από τα παρακάτω

Το κλασικό πρόβλημα με τον λύκο/λάχανο/πρόβατο και τον βαρκάρη
Οι αλγόριθμοι πρόσθεσης, πολλαπλασιασμού, διαίρεσης, ΜΚΔ, κλπ

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

Ένα καλό παράδειγμα που κάνω κάθε χρόνο στο πρώτο μάθημα που κάνω στο εργαστήριο είναι το παρακάτω (δείχνω την εκτέλεση με προτζέκτορα)

ΓΙΑ Χ ΑΠΟ -100 ΜΕΧΡΙ 100
   ΑΝ F(X)=0 ΤΟΤΕ
      ΓΡΑΨΕ Χ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

όπου F(X) είναι μια συνάρτηση που έχω ορίσει παρακάτω. Βασικά τους προτείνω να μου πουν οποιοδήποτε πολυώνυμο θέλουν με ακέραιες ρίζες. Απλά ανοίγουν το βιβλίο των μαθηματικών κατεύθυνσης της Β και στη συνέχεια το πρόγραμμα εμφανίζει όλες τις ρίζες του.
  Εκεί τους εξηγώ ότι τα μαθηματικά που έκαναν πέρυσι δεν έχουν νόημα γιατί στο μάθημα αυτό θα μάθουμε πως να βάζουμε τον υπολογιστή να κάνει τη βρώμικη δουλειά για μας ώστε να λύνουμε οποιαδήποτε εξίσωση θέλουμε χωρίς καθόλου πράξεις  ;)
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Keep Growing

Ευριπίδη, δε θα το πιστέψεις, αλλά πέρσι είπα να παρακάμψω την μαγειρική και να δώσω εστίαση στον βαρκάρη.
Ξέρεις τι πετάχτηκε και μου είπε ένας μαθητής;
Έχει κάποια σχέση με τον Βαρκάρη του Αχέρωντα;
Κάποιος άλλος πετάχτηκε και είπε κάτι άλλο για βαρκάρη....και όπως φαντάζεσαι έγινε ο χαμός.


Από τότε έδωσα "όρκο" να χρησιμοποιώ την μαγειρική ως παράδειγμα. 

Πάντως αντικειμενικά συμφωνώ μαζί σου.
Ο Έρωτας (του Εκπ/κου Πληροφορικού) στ' αλώνια της καλδέρας (του υπνωτισμού).

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


ntzios kostas

Δεδομένα //Ν//
για θ από 1 μέχρι Ν
     διάβασε Α[θ]
τέλος_επανάληψης

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

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

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

Παράθεση από: ntzios kostas στις 23 Μαρ 2010, 02:09:09 ΠΜ
...ο παραπάνω αλγόριθμος εφαρμόζεται σε έναν πίνακα Ν θέσεων, ή αλλιώς χρειάζεται έναν πίνακα Ν θέσεων για να έχει νόημα...

Εγώ θα έλεγα ότι ο πίνακας πρέπει να έχει μέγεθος >=Ν. Όμως δεν νομίζω ότι στην ψευδογλώσσα θα πρέπει να μας απασχολεί τόσο πολύ αυτό το ζήτημα...

Και επιπλέον, από τη στιγμή που όντως υπάρχουν μεταξύ μας αυτές οι μικρές διαφωνίες, τότε πραγματικά δεν μπορούμε να κόψουμε από μαθητές μονάδες επειδή έγραψαν "Διάβασε Ν", αφού η ίδια η άσκηση ζήταγε κάτι τέτοιο!

ntzios kostas

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

sstergou

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

Βέβαια, η ψευδογλώσσα έχει χάσει εκ των πραγμάτων το νόημά της για πολλούς λόγους :
1) Εντολές που είναι μια άμεση μεταφορά εντολών πραγματικών γλωσσών προγραμματισμού.
2) Πανελλήνιες εξετάσεις (πρέπει να υπάρχει γενική συμφωνία στους κανόνες βαθμολόγησης)
3) Ακολουθεί η ΓΛΩΣΣΑ που είναι σχεδόν το ίδιο πράγμα.

Στο συγκεκριμένο παράδειγμα τώρα όπως και σε άλλα παρόμοια κρίνουμε μια λύση ως λάθος επειδή δεν μπορεί να εκφραστεί ακριβώς στην συγκεκριμένη ΓΛΩΣΣΑ. Είναι αυτό σωστό; Η ψευδογλώσσα δεν είναι κάτι πιο γενικό, πιο καθολικό; Μήπως θα έπρεπε να κάνουμε το αντίστροφο; Να δεχόμαστε δηλαδή λύσεις σε ΓΛΩΣΣΑ που παραβιάζουν κάποιους πρωτόγονους και άκαιρους περιορισμούς που οι συγγραφείς έδωσαν σε αυτήν αλλά που η λογική τους είναι σωστή. Γιατί θα έπρεπε η ΓΛΩΣΣΑ να επισκιάζει την αλγοριθμική σκέψη και όχι το αντίστροφο; Στο κάτω κάτω, όταν γράφεις στην υπογραφή σου, "σκοπός δεν είναι η εκμάθηση κάποιου προγραμματιστικού περιβάλλοντος" φαντάζομαι εννοείς όλα τα περιβάλλοντα, μαζί με την ΓΛΩΣΣΑ.

ntzios kostas

Παράθεση από: sstergou στις 23 Μαρ 2010, 07:11:34 ΜΜ

Στο συγκεκριμένο παράδειγμα τώρα όπως και σε άλλα παρόμοια κρίνουμε μια λύση ως λάθος επειδή δεν μπορεί να εκφραστεί ακριβώς στην συγκεκριμένη ΓΛΩΣΣΑ. Είναι αυτό σωστό; Η ψευδογλώσσα δεν είναι κάτι πιο γενικό, πιο καθολικό; Μήπως θα έπρεπε να κάνουμε το αντίστροφο; Να δεχόμαστε δηλαδή λύσεις σε ΓΛΩΣΣΑ που παραβιάζουν κάποιους πρωτόγονους και άκαιρους περιορισμούς που οι συγγραφείς έδωσαν σε αυτήν αλλά που η λογική τους είναι σωστή. Γιατί θα έπρεπε η ΓΛΩΣΣΑ να επισκιάζει την αλγοριθμική σκέψη και όχι το αντίστροφο; Στο κάτω κάτω, όταν γράφεις στην υπογραφή σου, "σκοπός δεν είναι η εκμάθηση κάποιου προγραμματιστικού περιβάλλοντος" φαντάζομαι εννοείς όλα τα περιβάλλοντα, μαζί με την ΓΛΩΣΣΑ.
Συμφωνώ με όλα αυτά, αρκεί ο αλγόριθμος να παρουσιάζεται σε ελεύθερο κείμενο ή σε φυσική γλώσσα κατά βήματα. Από την στιγμή που χρησιμοποιούμε δομές δεδομένων πρέπει να ακολουθούμε και τους κανόνες των δομών αυτών. Δεν μπορεί δηλαδή να λέω ότι χρησιμοποιώ στον αλγόριθμο μου μία δομή στοίβα και να κάνω προσπέλαση όλων των στοιχείων της. Αυτό είναι ενάντια στον ορισμό της στοίβας. Το ίδιο ισχύει και για τον πίνακα. Αν αυτή την δομή δεν την λές πίνακα αλλά δυναμικό πίνακα δεν έχω πρόβλημα. Απλά το βιβλίο την δομή πίνακα την περιγράφει ακριβώς κάτω από την παράγραφο που εξηγεί τι είναι στατική δομή. Έτσι, λοιπόν,  ο παρακάτω αλγόριθμος πρέπει να θεωρηθεί ότι αντιβαίνει στους κανόνες της στατικής δομής πίνακα και να χαρακτηριστεί ως λάθος.

Ν<-0
διάβασε χ
όσο χ >0 επανάλαβε
      Ν<-Ν+1
      Α[Ν]<-χ
      διάβασε χ
τέλος_επανάληψης

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

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

Παράθεση από: ntzios kostas στις 24 Μαρ 2010, 12:24:20 ΠΜ
... ο παρακάτω αλγόριθμος πρέπει να θεωρηθεί ότι αντιβαίνει στους κανόνες της στατικής δομής πίνακα και να χαρακτηριστεί ως λάθος.

Ν<-0
διάβασε χ
όσο χ >0 επανάλαβε
      Ν<-Ν+1
      Α[Ν]<-χ
      διάβασε χ
τέλος_επανάληψης

Αποτελέσματα //Α,Ν//

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

Δηλαδή για μένα στο παράδειγμά σου το Ν δεν δείχνει το μέγεθος του πίνακα Α, το οποίο θα μπορούσε να είναι αρκετά μεγάλο ώστε να μας καλύπτει στην χειρότερη περίπτωση (ΟΚ απαιτώντας πολλές συνεχόμενες θέσεις στη μνήμη του Η/Υ που πρέπει να έχουν δεσμευτεί εκ των προτέρων ... κλπ...κλπ). Το Ν όπως το βλέπω στο παράδειγμά σου είναι κάτι σαν το top της στοίβας...

ntzios kostas

Κάτσε ρε Νίκο ας υποθέσουμε  είχαμε την εκφώνηση: Να διαβάζει θετικούς αριθμους και να εμφανίζει το μέγιστο. Ο μαθητής λοιπόν γράφει:

Ν<-0
διάβασε χ
όσο χ >0 επανάλαβε
      Ν<-Ν+1
      Α[Ν]<-χ
      διάβασε χ
τέλος_επανάληψης
μαχ<- -1
για θ από 1 μέχρι Ν
     αν Α[θ]>μαχ τότε
         μαχ<-Α[θ]
     τέλος_αντέλος_επανάληψης
  αν Ν>0 τότε
    γράψε μαχ
τέλος_αν

Αυτό είναι σωστό;

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

Ας το δούμε και αλλιώς

Αλγόριθμος Βάζω_επιπλέον_στοιχεία_στον_Πίνακα

Δεδομένα //Α,Ν// !Ν το μέγεθος του πίνακα
διάβασε χ
όσο χ>0 επανάλαβε
      Ν<-Ν+1
      Α[Ν]<-χ
      διάβασε χ
τέλος_επανάληψης
Αποτελέσματα //Α,Ν//

Τέλος

Αυτό γίνεται;

Κακά τα ψέματα Νίκο δεν μπορούμε να λέμε στους μαθητές μας να λύνουν, όλα τα θέματα με πίνακες.

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

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

Παράθεση από: ntzios kostas στις 24 Μαρ 2010, 10:26:33 ΠΜ
Κάτσε ρε Νίκο ας υποθέσουμε  είχαμε την εκφώνηση: Να διαβάζει θετικούς αριθμους και να εμφανίζει το μέγιστο. Ο μαθητής λοιπόν γράφει:

Ν<-0
διάβασε χ
όσο χ >0 επανάλαβε
      Ν<-Ν+1
      Α[Ν]<-χ
      διάβασε χ
τέλος_επανάληψης
μαχ<- -1
για θ από 1 μέχρι Ν
     αν Α[θ]>μαχ τότε
         μαχ<-Α[θ]
     τέλος_αντέλος_επανάληψης
  αν Ν>0 τότε
    γράψε μαχ
τέλος_αν

Αυτό είναι σωστό;
Με παρεξήγησες! Στην παραπάνω άσκηση προφανώς δεν απαιτείται πίνακας ούτε και ζητείται κάτι τέτοιο. Δεν ξέρουμε πόσοι το πολύ αριθμοί θα διαβαστούν, οπότε ο πίνακας είναι μια ατυχής επιλογή! Αν βέβαια ξέραμε ότι είναι βαθμοί μαθητών μιας σχολικής τάξης τότε παρόλο που μπορεί ο προγραμματιστής να μην γνωρίζει το ακριβές πλήθος των μαθητών, ωστόσο μπορεί να δηλώσει έναν πίνακα με 40 θέσεις (ή 50 ή 60 - τέλος πάντως μπορεί να βάλει έναν μεγάλο αριθμό) κι ας μην χρησιμοποιηθούν όλες. Σε αυτήν την περίπτωση εγώ δεν θα θεωρούσα λάθος τη λύση παρόλο που θα μου άρεσε καλύτερα χωρίς πίνακα...

Παράθεση από: ntzios kostas στις 24 Μαρ 2010, 10:26:33 ΠΜ
Ας το δούμε και αλλιώς

Αλγόριθμος Βάζω_επιπλέον_στοιχεία_στον_Πίνακα

Δεδομένα //Α,Ν// !Ν το μέγεθος του πίνακα
διάβασε χ
όσο χ>0 επανάλαβε
      Ν<-Ν+1
      Α[Ν]<-χ
      διάβασε χ
τέλος_επανάληψης
Αποτελέσματα //Α,Ν//

Τέλος

Αυτό γίνεται;
Αυτό δεν έχει να κάνει με αυτά που λέγαμε πιο πριν. Εδώ δηλώνεις ότι Ν είναι το μέγεθος του πίνακα και μετά πηγαίνεις και το αυξάνεις... Εγώ σε όλα όσα έλεγα πιο πριν τόνιζα ότι δεν θεωρούσα ότι Ν είναι το μέγεθος του πίνακα. Έλεγα ότι το μέγεθος του πίνακα πρέπει να είναι καθορισμένο τόσο ώστε να είναι >= του πλήθους των στοιχείων που θα καταχωριστούν σε αυτόν. Απλά στην ψευδογλώσσα δεν είναι αναγκαίο να το καθορίσουμε - χωρίς αυτό να σημαίνει πως μπορεί να είναι όσο μεγάλο θέλουμε αφού δεν πρέπει να ξεπεράσουμε τη χωρητικότητα της RAM!

Παράθεση από: ntzios kostas στις 24 Μαρ 2010, 10:26:33 ΠΜ
Κακά τα ψέματα Νίκο δεν μπορούμε να λέμε στους μαθητές μας να λύνουν, όλα τα θέματα με πίνακες.

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

Πάντως έχουμε κατά πολύ ξεφύγει από το θέμα αυτού το topic!!!

ntzios kostas

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


ΠαράθεσηΠάντως έχουμε κατά πολύ ξεφύγει από το θέμα αυτού το topic!!!
Νομίζω ότι ο Θωμάς που άνοιξε το θέμα δεν πρέπει να ασχολείται άλλο με αυτό... :)

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

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

Παράθεση από: ntzios kostas στις 22 Μαρ 2010, 08:28:15 ΜΜ
Και να συμπληρώσω ότι για όλα αυτά φταίει η εκφώνηση. :)

Το βασικό είναι το παραπάνω. Δεν θα συζητάγαμε με τόσα μνμ το θέμα.

Το Ν μπορεί να διαβάζεται με έλεγχο εγκυρότητας ώστε να είναι συγκεκριμένου μεγέθους ή μπορεί να είναι δεδομένο.

tom

Παράθεση από: ntzios kostas στις 24 Μαρ 2010, 09:45:21 ΜΜ
Νομίζω ότι ο Θωμάς που άνοιξε το θέμα δεν πρέπει να ασχολείται άλλο με αυτό... :)
Είναι γεγονός  :)
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

tom

 :)

Έστω το παρακάτω πρόβλημα...

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

και τέσσερις λύσεις...

{1}
Αλγόριθμος αριθμοί
   Δεδομένα//Ν//
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ
        α<-α+Χ
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί

{2}
Αλγόριθμος αριθμοί
   Διάβασε Ν
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ
        α<-α+Χ
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί

{3}
Αλγόριθμος αριθμοί
   Δεδομένα//Ν, Χ πίνακας ακεραίων μεγέθους Ν//
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ[ι]
        α<-α+Χ[ι]
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί

{4}
Αλγόριθμος αριθμοί
   Διάβασε Ν
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ[ι]
        α<-α+Χ[ι]
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί


Ποια προβλήματα εντοπίζετε σε κάθε λύση λαμβάνοντας υπόψιν τα παρακάτω:

1)Οι συγκεκριμένοι αλγόριθμοι σχεδιάστηκαν με σκοπό να εκτελεστούν από υπολογιστή αφού μετατραπούν σε ΓΛΩΣΣΑ. Η απόδοση δεν μας ενδιαφέρει.
2)Οι συγκεκριμένοι αλγόριθμοι σχεδιάστηκαν με σκοπό να εκτελεστούν από υπολογιστή αφού μετατραπούν σε ΓΛΩΣΣΑ. Η απόδοση μας ενδιαφέρει.
3)Οι συγκεκριμένοι αλγόριθμοι σχεδιάστηκαν με σκοπό να εκτελεστούν από υπολογιστή αφού μετατραπούν σε κάποια εμπορική γλώσσα προγραμματισμού (.ΝΕΤ, C++,Java...)...

Αν θέλετε προσθέστε κάποιο ερώτημα προς τα εμένα.

:)
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

gthal

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

Παρόλα αυτά ούτε αυτό το επιχείρημα πείθει διότι λέγεται ότι αν ανοίξουμε τέτοια εργαλεία (δυναμικούς πίνακες και τέτοια) τότε θα χάσουν το νόημά τους οι ασκήσεις στην επανάληψη, τιμή φρουρό κλπ
Δε διαφωνώ μ' αυτό αλλά από την άλλη πάλι, για να εξυπηρετήσουμε αυτή τη σκοπιμότητα, να κρύβουμε την αλήθεια ότι ο αλγόριθμος είναι υπεράνω της υλοποίησης ; Δεν ξέρω .... προβληματίζομαι
Φιλικά,
Γιώργος Θαλασσινός

tom

{1}
Αλγόριθμος αριθμοί
   Δεδομένα//Ν//
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ
        α<-α+Χ
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί


1. Υλοποιήσιμος σε ΓΛΩΣΣΑ
2. Υλοποιήσιμος σε C++, JAVA κλπ
3. Καλή απόδοση
4. Το πλήθος των αριθμών θεωρείται δεδομένο τη στιγμή έναρξης εκτέλεσης του αλγορίθμου


{2}
Αλγόριθμος αριθμοί
   Διάβασε Ν
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ
        α<-α+Χ
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί


1. Υλοποιήσιμος σε ΓΛΩΣΣΑ
2. Υλοποιήσιμος σε C++, JAVA κλπ
3. Καλή απόδοση
4. Το πλήθος των αριθμών δίνεται από το χρήστη κατά τη διάρκεια της εκτέλεσης



{3}
Αλγόριθμος αριθμοί
   Δεδομένα//Ν, Χ πίνακας ακεραίων μεγέθους Ν//
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ[ι]
        α<-α+Χ[ι]
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί


1. ΜΗ Υλοποιήσιμος σε ΓΛΩΣΣΑ
2. Υλοποιήσιμος σε C++, JAVA κλπ
3.  Άσκοπη χρήση πίνακα, κατανάλωση πόρων
4. Το πλήθος των αριθμών δεδομένο τη στιγμή έναρξης εκτέλεσης
5. Χρήση στατικού πίνακα


{4}
Αλγόριθμος αριθμοί
   Διάβασε Ν
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ[ι]
        α<-α+Χ[ι]
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί


1. ΜΗ Υλοποιήσιμος σε ΓΛΩΣΣΑ
2. Υλοποιήσιμος σε C++, JAVA κλπ
3. Άσκοπη χρήση πίνακα, κατανάλωση πόρων
4. Το πλήθος των αριθμών δίνεται από το χρήστη κατά τη διάρκεια της εκτέλεσης
5. Χρήση δυναμικού πίνακα. Δεν θα έπρεπε να εξετάζεται και να υπάρχουν αντίστοιχα παραδείγματα στο διδακτικό πακέτο.


Άντε να τα κλείνουμε ένα ένα τα θέματα, μας έχουν μείνει τα χαρακτηριστικά αλγορίθμου κλπ. Έρχεται και καλοκαίρι  ;D
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

ntzios kostas

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

sstergou


ntzios kostas

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

sstergou

Κώστα, το πρόβλημα ήταν γνωστό εδώ και χρόνια.

Η πρώτη φορά που θυμάμαι να συζητήθηκε ήταν το 2008.
https://alkisg.mysch.gr/steki/index.php?topic=1194.0

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

Επίσης σε συζητήσεις που είχαμε σχετικά με τις ασάφειες το θέμα είχε αναφερθεί ξανά. Δεν ήταν κάτι που έπεσε από τον ουρανό την Παρασκευή.

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

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

tom

Παράθεση από: ntzios kostas στις 31 Μαΐου 2010, 03:50:31 ΜΜ
Αυτό είναι  Θωμά και Γιώργο που με προβληματιζει περισσότερο απ΄ όλα. Πριν τόσο καιρό κάναμε αυτή την κουβένται και μιλάγαμε 10 άτομα. Τώρα που το είδαμε στις εξετάσεις εμφανίστηκαν τόσοι πολλοί. Που ήταν τόσο καιρό όλος αυτός ο κόσμος;
Αν είχαμε την μισή συμμετοχή από αυτή που υπάρχει στο αντίστοιχο θέμα με τα 100 και βάλε posts, τα πράγματα θα ήταν διαφορετικά τώρα.
Δε βαριέσαι και μόνο από την όλη επιχειρηματολογία κάτι μπορεί να βγει για μας και για το μάθημα. Κάποιοι για παράδειγμα ανακάλυψαν το www.pseudoglossa.gr (Στάθη ετοίμαζε σιγά-σιγά cluster με servers) προβλέπω έκρηξη στην επισκεψιμότητα  :D


Παράθεση από: ntzios kostas στις 24 Μαρ 2010, 09:45:21 ΜΜ

Νομίζω ότι ο Θωμάς που άνοιξε το θέμα δεν πρέπει να ασχολείται άλλο με αυτό... :)


Νομίζω πάλι πας να ξεφύγεις από την ερώτηση  ;D Ντεζα βου!  :D
Πραγματικά αυτά που γράφω στις τέσσερις λύσεις σε βρίσκουν όλα σύμφωνο;
Εννοείται ότι ισχύει και για τους άλλους η ερώτηση.  :)
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

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

Παράθεση από: sstergou στις 31 Μαΐου 2010, 04:36:33 ΜΜ
Κώστα, το πρόβλημα ήταν γνωστό εδώ και χρόνια.
....
Από τότε συχνά πυκνά, όπως συνέβη στο παρών θέμα, ξανασυζητήθηκε το ίδιο ακριβώς πράγμα, με το ίδιο ακριβώς αποτέλεσμα (αδιέξοδο).

Επίσης σε συζητήσεις που είχαμε σχετικά με τις ασάφειες το θέμα είχε αναφερθεί ξανά. Δεν ήταν κάτι που έπεσε από τον ουρανό την Παρασκευή.

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

Συγγνώμη, αλλά όταν η κοινότητα διαφωνεί για κάτι, αυτό δεν πρέπει να εξετάζεται.
...

Αυτό έλεγα κι εγώ σε άλλα post μου. Τα ζητήματα αυτά κουβεντιάζονται συνεχώς στο Στέκι. Δεκτές οι διαφωνίες αλλά δεν μπορεί να πέφτει κάτι πάνω σε κάτι που απασχολεί ακόμα τους συναδέλφους. Μπορεί για κάποιους να είναι ξεκάθαρο στο μυαλό τους αλλά αυτό δεν αποδεικνύει ότι είναι και σωστό ή ότι δεν υπάρχει ασάφεια στο βιβλίο. Δεν νομίζω ότι οι επιτροπές δεν διαβάζουν το Στέκι. Υπάρχουν ενδείξεις μέσα από τα θέματα ότι το διαβάζουν και λαμβάνουν υπόψη τους τις απόψεις... Ούτε θεωρώ ότι το έκαναν επίτηδες... Για αυτό μίλησα για αστοχία του θέματος... Απλά η περιβόητη διευκρίνηση χειροτέρεψε τα πράγματα...

George

Παράθεση από: tom στις 31 Μαΐου 2010, 03:38:06 ΜΜ
{1}
Αλγόριθμος αριθμοί
   Δεδομένα//Ν//
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ
        α<-α+Χ
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί


1. Υλοποιήσιμος σε ΓΛΩΣΣΑ
2. Υλοποιήσιμος σε C++, JAVA κλπ
3. Καλή απόδοση
4. Το πλήθος των αριθμών θεωρείται δεδομένο τη στιγμή έναρξης εκτέλεσης του αλγορίθμου


{2}
Αλγόριθμος αριθμοί
   Διάβασε Ν
   α<-0
   Για ι από 1 μέχρι Ν
        Διάβασε Χ
        α<-α+Χ
   Τέλος_επανάληψης
   Εμφάνισε α
Τέλος αριθμοί


1. Υλοποιήσιμος σε ΓΛΩΣΣΑ
2. Υλοποιήσιμος σε C++, JAVA κλπ
3. Καλή απόδοση
4. Το πλήθος των αριθμών δίνεται από το χρήστη κατά τη διάρκεια της εκτέλεσης



Να υποθέσω δηλαδή οτι το ΔΕΔΟΜΕΝΑ // Ν //  σε έναν αλγόριθμο είναι αντίστοιχο του ΔΙΑΒΑΣΕ  Ν   σε ένα πρόγραμμα?
Αν η απάντησή σου είναι :
α) ΝΑΙ.   Τότε το αντίστοιχο του ΔΕΔΟΜΕΝΑ //Ν, Χ πίνακας ακεραίων μεγέθους Ν//  ποιό είναι???
β) ΟΧΙ .  Τότε τι ακριβως κάνει το ΔΕΔΟΜΕΝΑ // Ν // ??

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

Τα Δεδομένα // Ν // σχετίζονται με τα υποπρογράμματα.

Παράθεση από: George στις 01 Ιουν 2010, 10:45:46 ΠΜ
Να υποθέσω δηλαδή οτι το ΔΕΔΟΜΕΝΑ // Ν //  σε έναν αλγόριθμο είναι αντίστοιχο του ΔΙΑΒΑΣΕ  Ν   σε ένα πρόγραμμα?
Αν η απάντησή σου είναι :
α) ΝΑΙ.   Τότε το αντίστοιχο του ΔΕΔΟΜΕΝΑ //Ν, Χ πίνακας ακεραίων μεγέθους Ν//  ποιό είναι???
β) ΟΧΙ .  Τότε τι ακριβως κάνει το ΔΕΔΟΜΕΝΑ // Ν // ??

tom

Παράθεση από: George στις 01 Ιουν 2010, 10:45:46 ΠΜ
Να υποθέσω δηλαδή οτι το ΔΕΔΟΜΕΝΑ // Ν //  σε έναν αλγόριθμο είναι αντίστοιχο του ΔΙΑΒΑΣΕ  Ν   σε ένα πρόγραμμα?
Αν η απάντησή σου είναι :
α) ΝΑΙ.   Τότε το αντίστοιχο του ΔΕΔΟΜΕΝΑ //Ν, Χ πίνακας ακεραίων μεγέθους Ν//  ποιό είναι???
β) ΟΧΙ .  Τότε τι ακριβως κάνει το ΔΕΔΟΜΕΝΑ // Ν // ??

Η απάντηση είναι ΟΧΙ. Θα έλεγα το αντίστοιχο του:

Αλγόριθμος αριθμοί   
   Δεδομένα//Ν//   
   α<-0   
   Για ι από 1 μέχρι Ν        
      Διάβασε Χ        
      α<-α+Χ   
   Τέλος_επανάληψης   
   Εμφάνισε α
Τέλος αριθμοί


θα ήταν κάπως έτσι:

ΥΠΟΠΡΟΓΡΑΜΜΑ αριθμοί (Ν)
ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
   α<-0   
   ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν        
      ΔΙΑΒΑΣΕ Χ        
      α<-α+Χ   
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΓΡΑΨΕ α
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑ


Το υποπρόγραμμα μπορεί να είναι διαδικασία ή συνάρτηση ανάλογα με το ποιο είναι καταλληλότερο.

Οπότε το Δεδομένα//Ν// είναι κάτι σαν τις παραμέτρους των υποπρογραμμάτων. Τώρα αν με ρώταγες "Και αν έχουμε μόνο κυρίως πρόγραμμα"; Θα σου απαντούσα σε αυτή την περίπτωση είναι κάτι σαν τα ορίσματα της γραμμής εντολών.

Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

George

Παράθεση από: tom στις 01 Ιουν 2010, 12:52:31 ΜΜ
Η απάντηση είναι ΟΧΙ. Θα έλεγα το αντίστοιχο του:

Αλγόριθμος αριθμοί   
   Δεδομένα//Ν//   
   α<-0   
   Για ι από 1 μέχρι Ν        
      Διάβασε Χ        
      α<-α+Χ   
   Τέλος_επανάληψης   
   Εμφάνισε α
Τέλος αριθμοί


θα ήταν κάπως έτσι:

ΥΠΟΠΡΟΓΡΑΜΜΑ αριθμοί (Ν)
ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
   α<-0   
   ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν        
      ΔΙΑΒΑΣΕ Χ        
      α<-α+Χ   
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΓΡΑΨΕ α
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑ


Το υποπρόγραμμα μπορεί να είναι διαδικασία ή συνάρτηση ανάλογα με το ποιο είναι καταλληλότερο.

Οπότε το Δεδομένα//Ν// είναι κάτι σαν τις παραμέτρους των υποπρογραμμάτων. Τώρα αν με ρώταγες "Και αν έχουμε μόνο κυρίως πρόγραμμα"; Θα σου απαντούσα σε αυτή την περίπτωση είναι κάτι σαν τα ορίσματα της γραμμής εντολών.


Οπότε  μπορώ να υποθέσω οτι το ΔΕΔΟΜΕΝΑ // Ν, Χ //  είναι κάπως έτσι??


ΥΠΟΠΡΟΓΡΑΜΜΑ αριθμοί (Ν, Χ )
ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ: Ν, Χ[ ? ]
ΑΡΧΗ
   α<-0   
   ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν       
      ΔΙΑΒΑΣΕ Χ [ι]       
      α<-α+Χ [ι] 
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΓΡΑΨΕ α
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑ


tom

#51
Παράθεση από: George στις 01 Ιουν 2010, 01:08:28 ΜΜ
Οπότε  μπορώ να υποθέσω οτι το ΔΕΔΟΜΕΝΑ // Ν, Χ //  είναι κάπως έτσι??

ΥΠΟΠΡΟΓΡΑΜΜΑ αριθμοί (Ν, Χ )
ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ: Ν, Χ[ ? ]
ΑΡΧΗ
   α<-0   
   ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν       
      ΔΙΑΒΑΣΕ Χ [ι]       
      α<-α+Χ [ι] 
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΓΡΑΨΕ α
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑ

ΝΑΙ κάπως έτσι...

ΥΠΟΠΡΟΓΡΑΜΜΑ αριθμοί (Ν, Χ )
ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ: Ν, Χ[ ?N ]
ΑΡΧΗ
   α<-0   
   ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν       
      ΔΙΑΒΑΣΕ Χ [ι]       
      α<-α+Χ [ι] 
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΓΡΑΨΕ α
ΤΕΛΟΣ_ΥΠΟΠΡΟΓΡΑΜΜΑ

Ας πούνε και οι άλλοι την άποψη τους... Η ουσία είναι ότι η Δεδομένα //Ν// δεν ορίζεται επαρκώς στο βιβλίο!
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

mpoufi

Παράθεση από: Νίκος Αδαμόπουλος στις 22 Μαρ 2010, 09:13:01 ΠΜ
Ελάχιστα θα έκοβα... αφού το ζητούμενο είναι λίγο εξεζητημένο...

Κώστα γιατί θα έκοβες για το Διάβασε Ν;

πρέπει να κάψει το Ν δεν μπορεί να το διαβάσει.. δεν ειναι ένας αριθμός αλλα ειναι οι φυσικοί αριθμοί όλοι τους... στους δισδιάστατους πίνακες ο μόνος τρόπος για να διαβάσεις το Ν ειναι μεσα απο τα Δεδομένα.. δηλαδη
Δεδομενα //Α, Ν// :)