1 of 14

Εισαγωγή στον προγραμματισμό

Β1§ 6.1 – 6.6

2 of 14

6.1 Η έννοια του προγράμματος

Η επίλυση ενός προβλήματος με τη χρήση υπολογιστή περιλαμβάνει τρία στάδια:

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

3 of 14

  • Ο προγραμματισμός ασχολείται με τη διατύπωση του αλγορίθμου σε μορφή κατανοητή απ’ τον υπολογιστή
  • Βασικά στοιχεία του προγράμματος είναι
    • τα δεδομένα και,
    • οι δομές δεδομένων επί των οποίων ενεργεί
  • Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα

4 of 14

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

5 of 14

Οι γλώσσες προγραμματισμού αναπτύχθηκαν με σκοπό την επικοινωνία του ανθρώπου με τη μηχανή (προγραμματιστή με υπολογιστή)

  • Να αποθηκεύει στη μνήμη ακολουθίες των δυαδικών ψηφίων και:
  • να τις ανακτά
  • να κάνει στοιχειώδεις πράξεις με αυτές
  • να τις συγκρίνει

Η έννοια του προγράμματος

6 of 14

6.3 Φυσικές και τεχνητές γλώσσες

  • Αλφάβητο
    • ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
    • αβγδεζηθικλμνξοπρστυφχψω
    • 0123456789
    • .,-;!
  • Λεξιλόγιο
    • ΓΡΑΨΕ ≠ ΡΓΕΨΑ

7 of 14

  • Γραμματική
    • Τυπικό ή τυπολογικό (accidence): σύνολο κανόνων που ορίζει τις μορφές που μια λέξη είναι αποδεκτή
    • Συντακτικό (syntax): σύνολο κανόνων που ορίζει τη νομιμότητα της διάταξης και σύνδεση των λέξεων
  • Σημασιολογία (semantics):

σύνολο κανόνων που ορίζει το νόημα των λέξεων και των εκφράσεων

8 of 14

Διαφορές φυσικών και τεχνητών γλωσσών

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

9 of 14

6.4 Τεχνικές σχεδίασης προγραμμάτων

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

  • Ιεραρχική σχεδίαση προγράμματος
  • Τμηματικός προγραμματισμός
  • Δομημένος προγραμματισμός

10 of 14

Ιεραρχική σχεδίαση προγράμματος

  • Top-down program design
  • Διαιρούμε το πρόβλημα σε μια σειρά από απλούστερα υποπροβλήματα

Πρόγραμμα Φορολογίας

Εισαγωγή Δεδομένων

Υπολογισμοί

Εκτύπωση Αποτελεσμάτων

Υπολογισμός Φορολογητέου

Υπολογισμός προπληρωμένου φόρου

Υπολογισμός Εισοδήματος

Υπολογισμός Εκπτώσεων

11 of 14

Τμηματικός προγραμματισμός

  • Υλοποιεί την ιεραρχική σχεδίαση
  • Κάθε υποπρόβλημα αποτελεί ανεξάρτητη ενότητα (module)
  • Κάθε ενότητα γράφεται ξεχωριστά απ’ τα υπόλοιπα τμήματα
  • Ο τμηματικός προγραμματισμός:
    • Διευκολύνει τη δημιουργία του προγράμματος
    • Μειώνει τα λάθη
    • Επιτρέπει την ευκολότερη παρακολούθηση, κατανόηση και συντήρηση του προγράμματος από τρίτους

12 of 14

Δομημένος προγραμματισμός

  • Στηρίζεται στη χρήση τριών και μόνο στοιχειωδών λογικών δομών ελέγχου της ροής του προγράμματος:
      • Δομή ακολουθίας
      • Δομή επιλογής
      • Δομή επανάληψης
  • Κάθε πρόγραμμα, όπως και κάθε ενότητα προγράμματος, έχει μόνο μία είσοδο και μόνο μία έξοδο

13 of 14

GOTO Το μαύρο πρόβατο του προγραμματισμού

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

14 of 14

Τα πλεονεκτήματα του δομημένου προγραμματισμού

  • Δημιουργία απλούστερων προγραμμάτων
  • Άμεση μεταφορά των αλγορίθμων σε προγράμματα
  • Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα
  • Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος
  • Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους
  • Ευκολότερη διόρθωση και συντήρηση