η πληροφορικη

στην εκπαιδευση


Υλικό για μαθητές και εκπαιδευτικούς

Για να διαβάσετε θεωρητικές έννοιες του μαθήματος "Προγραμματισμός Η/Υ", της ειδικότητας Τεχνικός Η/Υ του ΙΕΚ κάνετε κλικ εδώ.

Συγγραφείς

Σιδερίδης Αλέξανδρος, Γιαλούρης Κωνσταντίνος,
Μπακογιάννης Σπυρίδων, Σταθόπουλος Κωνσταντίνος

Λίγα λόγια για το βιβλίο

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

Το βιβλίο χωρίζεται σε 4 ενότητες:

Η πρώτη ενότητα, Ανάλυση προβλήματος, αναφέρεται στον καθορισμό και την κατανόηση του προβλήματος, στη δομή του και στον καθορισμό των απαιτήσεών του.

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

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

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

Η τέταρτη ενότητα, Αξιολόγηση - Τεκμηρίωση προγράμματος, αναφέρεται στην Τεκμηρίωση του προγράμματος καθώς και στην Αξιολόγηση, τη Βελτιστοποίηση και την Επέκταση του προγράμματος.

Το προγραμματιστικό περιβάλλον που επιλέχθηκε είναι αυτό της Turbo Pascal.

Περιεχόμενα

Βιβλίο Μαθητή

Πρόλογος  (pdf - 1.991KB), 
Ενότητα 1  (pdf - 2.258KB), 
Ενότητα 2  (pdf - 5.955KB),
Ενότητα 3 (σελ 51 - 128)  (pdf - 19.861KB),
Ενότητα 3 (σελ 129 - 212) (pdf - 19.493KB),
Ενότητα 4  (pdf - 3.792KB),
Παράρτημα, Γλωσσάριο, Βιβλιογραφία (pdf - 3.554KB)

Έκδοση Ο.Ε.Δ.Β.

Σχετικά

 

To PAME αποτελεί ένα ολοκληρωμένο περιβάλλον ανάπτυξης προγραμμάτων σε PASCAL απευθυνόμενο σε μαθητές.

Χαρακτηριστικά:

  • Είναι πολυγλωσσικό, περιλαμβάνοντας ελληνικό και αγγλικό user interface (διεπαφή χρήστη).
  • Επίσης εμφανίζει σωστά τα ελληνικά (ή αλλής γλώσσας) strings στα εκτελέσιμα προγράμματα κονσόλας. Ώς αποτέλεσμα δεν απαιτείται πλέον από τους μαθητές η χρήση greeklish στα προγράμματα.
  • Τα μηνύματα λάθους (και γενικότερα εκτέλεσης του μεταγλωττιστή) είναι και αυτά (κατ' επιλογή) στα ελληνικά.
  • Λόγω του οτι απευθυνεται σε μαθητές και αρχάριους, έχει όσο το δυνατόν απλούστερο αλλά λειτουργικο interface.
  • Περιλαμβάνει editor, compiler και debugger δίνοντας πλέον στον μαθητή τη δυνατότητα βηματικής εκτέλεσης των προγραμμάτων και παρακολούθησης τιμών μεταβλητών.
    Δυνατότητα που δεν υποστηριζόταν στην προηγούμενη έκδοση του PAME.
  • Υποστηρίζει αυτόματες ενημερώσεις μεσω Internet.

Τεχνικά χαρακτηριστικά:

  • Βασίζεται (όπως και το παλιό PAME) στον σύγχρονο και δημοφιλη μεταγλωττιστή FreePascal.
  • Μπορει να χρησιμοποιήσει είτε τον ενσωματωμένο FreePascal compiler είτε μια εξωτερική εγκατάσταση της FreePascal.
  • Παρ'οτι ο installer ειναι ένας (για πρακτικούς λόγους), το PAME, ανάλογα με το που έχει εγκατασταθεί, τρέχει είτε σε 64-bit είτε σε 32-bit χωρις εξομοίωση.

 

Τεχνικές Απαιτήσεις

 

Για την εγκατάσταση και σωστή λειτουργία του PAME απαιτούνται:

  • Δικαιώματα διαχειριστή κατά την εγκατάσταση.
  • Windows PC με Windows XP Service Pack 2 και άνω. Windows 2000 δεν υποστηρίζονται λόγω περιορισμών του .Net framework 4.
  • .Net Framework 4.0. Αν δεν είναι ήδη εγκατεστημένο θα σας ζητηθεί από την εγκατάσταση του PAME. Εναλλακτικά μπορείτε να το εγκαταστήσετε και μόνοι σας από εδώ: http://go.microsoft.com/fwlink/?LinkID=186913

 

Εικόνες

 


Μεταγλώττιση

Εκτέλεση

Βηματική εκτέλεση
 

Βηματική εκτελεση με
εμφανή στα αριστερά
τα "Στοπς" (Breakpoints)

Ανάδραση με
On Screen Display

Ρυθμίσεις
εφαρμογής
 

 

Κατέβασμα και Εγκατάσταση

 

Κατεβάστε το πακέτο εγκατάστασης της τελευταίας έκδοσης του PAME απο εδω. Στη συνέχεια εκτελέστε το αρχειο Setup.msi και ακολουθήστε τις οδηγίες.

Σημειώσεις:

  1. Μετά την εγκατάσταση, αν θέλετε να αλλάξετε τη γλώσσα της γραφικής διεπαφής (user interface), πηγαίνετε στο μενού Tools→ Options και στην επιλογή Language επιλέγετε τη γλώσσα που θέλετε. Τελος, κλείνετε και ξανά-ανοίγετε τo PAME.
  2. Για να εμφανίζονται τα μηνύματα λάθους του μεταγλωττιστή στα Αγγλικά και όχι στα Ελληνικά (που είναι και η προεπιλογή),  πηγαίνετε στο μενού Tools→ Options και στην επιλογή Flags μεταγλωττιστή FreePascal αλλάζετε τη γραμμή:

    -gp -vb -Fr"$(AppDir)\fpc.el.msg"
    σε:
    -gp -vb

 

Συχνές Ερωτήσεις (F.A.Q.)

 

Κατά καιρους λαμβάνω e-mails χρηστών με απορίες ή προβλήματα σχετικά με το PAME. Τα πιο σημαντικά ή χρήσιμα από αυτά βρίσκονται εδώ:

1. Εμφάνιση ελληνικών κατά την εκτέλεση προγράμματος απο τα Windows

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

Απάντηση:

Όταν ένα πρόγραμμα εκτελείται απευθείας απο τα Windows (δηλ. με διπλό κλικ) και όχι μέσω του PAME, δεν ενεργοποιειται το ελληνικο Windows codepage (δηλ. το 1253) αλλα και η σωστη γραμματοσειρα (που πρεπει να ειναι τυπου TrueType όπως η Lucida Console, και όχι Raster), πραγμα που κανει αυτοματα το PAME πριν εκτελεσει το προγραμμα Pascal. Το αποτελεσμα είναι να εμφανίζονται ακατανόητοι χαρακτηρες εξοδου στην κονσολα (στα writeln για παραδειγμα) όταν προκειται για ελληνικα.

Για να εμφανιζονται σωστα τα ελληνικα στη περιπτωση που το προγραμμα εκτελειται απευθειας από τα Windows (και όχι μονο μεσω του PAME), πρεπει να γίνουν καποιες γενικες ρυθμισεις στο registry για τη κονσολα (command prompt) των Windows. Συγκεκριμενα να προσθέσετε στο κλειδι: ”HKEY_CURRENT_USER\Console” τις τιμες:

 "FaceName"="Lucida Console" και "CodePage"=dword:000004e5.

Μπορείτε να κατεβάσετε το αρχείο registry 1253_lucida_console.zip που κανει αυτοματα αυτή τη δουλεια. Σημειώστε όμως να έχετε δικαιωματα διαχειριστη κατά την εκτελεση και το user access control απενεργοποιημενο στα Windows 7 ή στα Vista.

Αν και λογικά δεν υπάρχει λόγος να γίνει κάτι τέτοιο, αν θέλετε μελλοντικά να διαγράψετε τις 2 αυτές τιμές που προσθέσατε στο κλειδι ”HKEY_CURRENT_USER\Console”, μπορείτε να χρησιμοποιήσετε τον Registry Editor των Windows (regedit.exe).

 

Τεχνικά Θέματα

 

Το PAME αποθηκεύει στον φάκελλο "c:\users\<όνομα χρήστη>\" (στα 7 και Vista) ή στον "c:\Documents and Settings\<όνομα χρήστη>\" στα XP το αρχείο Pame.log που περιέχει το τεχνικό log της εφαρμογης για το συγκεκριμένο χρήστη. Το αρχέιο αυτό μεγαλώνει το πολύ μέχρι 4MB και μετά ανακυκλώνεται. Σε περίπτωση που θέλετε να στείλετε μήνυμα με κάποιο πρόβλημα που εντοπίσατε κατά τη χρήση της εφαρμογής, θα βοηθούσε να στέλνατε και αυτό το αρχείο (δεν χρειάζεται όλο, οι τελευταίες 100 γραμμές είναι αρκετές).

 

Η Υλοποίηση

 

Το PAME είναι υβριδικό, γραμμμένο σε C# με λιγα κομμάτια κωδικα σε C++, κυρίως για χαμηλου επιπέδου process και console management.

Επειδή οι εφαρμογές .Net τρέχουν αυτόματα είτε σε 32 είτε σε 64 bit mode, αναλογα με το host machine, τα Native τμηματα του PAME σε C++ (που δεν έχουν αυτή τη δυνατότητα) εγιναν compile και για χ86 και για χ64 αρχιτεκτονικη. Το PAME αναλογως με την πλατφορμα που τρεχει, επιλεγει είτε τα 32-bit είτε τα 64-bit native dlls κι έτσι τρέχει πάντα xωρίς εξομοιώσεις. Εναλλακτικα βέβαια, θα μπορουσε να τρέχει πάντα σε 32 bit, με ειδική ρύθμιση στο .Net framework, ομως για λόγους κομψότητας αλλά και performance κάτι τέτοιo δεν προτιμήθηκε.

Ένα σημαντικό πρόβλημα στην ανάπτυξη του debugger για το PAME, ηταν με ποιόν τρόπο θα επικοινωνεί το GUI με τον GDB debugger, που είναι και ο μονος debugger ο οποίος συνεργάζεται καλά με την FreePascal. O GDB δεν προσφέρει καποιο API/βιβλιοθήκη (για χρήση απο άλλα προγράμματα), παρα μονο το command-line interface για χρήση από άνθρωπο μέσω κονσόλας. Επισης, ο GDB στοχεύει σε POSIX περιβάλλον και δεν γίνεται compile απευθείας με compilers της Microsoft, ενώ ο κώδικας του είναι αρκετά περιπλεγμένος για να μπορέσει να αναλυθεί σε τέτοιο επίπεδο ούτως ώστε να δημιουργηθεί αυτό το API (που δεν υπάρχει) από κάποιον τρίτο. Η λύση φαινόταν να είναι μονο το command-line interface του GDB. Ομώς η επικοινωνία μεταξύ εφαρμογών σε τέτοιο επίπεδο (text-mode) είναι απιστευτα περίπλοκη και error-prone. Για να εξασφαλιστεί η αξιοπιστία της υλοποίησης, η λύση ήταν ή ανάλυση του  GDB/MI command-line interface του GDB σε γραμματική BNF ή οποία σε συνδυασμο με έναν recogniser φτιαγμένο από parser generator θα έδινε μια αξίοπιστη βάση για την ανάπτυξη του API. O parser generator που χρησιμοποιήθηκε ήταν ο ANTRL ο οπόιος και έδωσε τους recognisers για το GDB/MI. Πάνω σε αυτούς χτίστηκε ένα robust API για το GDB.

 

Πηγαίος Κώδικας

 

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

 

Πηγή: http://samartzidis.github.io/