Προγραμματισμός Ι - university of thessaly...Γλώσσα...

Post on 20-Jun-2020

12 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Προγραμματισμός Ι

Εισαγωγή

● Σκοπός του μαθήματος– Εισαγωγή στην επιστήμη των Η/Υ– Εισαγωγή στον προγραμματισμό– Μεθοδολογία αλγοριθμικής επίλυσης προβλημάτων– Χρήση της γλώσσας προγραμματισμού python

Εισαγωγή

● Αλόριθμος– Πεπερασμένη ακολουθία ενεργειών που περιγράφη τον τρόπο

επίλυσης ενός προβλήματος.– Εφαρμόζεται σε δεδομένα

● Πρόγραμμα– Ακριβής περιγραφή ενός αλγορίθμου σε τυπική γλώσσα που

ονομάζεται γλώσσα προγραμματισμού

Εισαγωγή

● Φυσική γλώσσα– Χωρίς τόσο αυστηρούς συνακτικούς περιορισμούς– Μεγάλη πυκνότητα και σημασιολογική ικανότητα

● Τεχνητή γλώσσα– Αυστηρότατη σύνταξη και σημασιολογία

Εισαγωγή

● Γλώσσα προγραμματισμού– Τεχνητή γλώσσα στην οποία μπορούν να περιγραφούν

υπολογισμοί– Εκτελέσιμη από έναν ηλεκτρονικό υπολογιστή

Εισαγωγή

● Πληροφορική

● Κεντρική έννοια– Υπολογισμός

Ηλεκτρονικοίυπολογιστές Μαθηματικά

Εισαγωγή

● Κατασκευή υπολογιστικών μηχανών– Αρχαιότητα: υπολογιστικές μηχανές, μηχανισμός των

αντικυθήρων κτλ.– 17ος αιώνας, Pascal – Leibniz, μηχανικές υπολογιστικές μηχανές,

στοιχειώδεις αριθμητικές πράξεις– Μέσα του 19ος αιώνα, Babbage, αναλυτικές μηχανές, υπολογισμό

λογαρίθμου και τριγωνομετρικές συναρτήσεις– Τέλη του 19ος αιώνα, Hollerith, μηχανή με διάτρητες κάρτες

Εισαγωγή

● Κατασκευή υπολογιστών– 1940, Zuse, ψηφιακή ηλεκτρονική υπολογιστική μηχανή, όπου

το πρόγραμμα και τα δεδομένα ήταν χωριστά– 1950, Von Neumann, μοντέλο του σύγχρονου Η/Υ, – 1950 – σήμερα, ραγδαία εξέλιξη της τεχνολογίας των

ηλεκτρονικών υπολογιστών

Εισαγωγή

● Θεμέλια της πληροφορικής– Μαθηματική λογική– Συλλογισμοί: Αριστοτέλης

Α→Β, Α Β (modus ponens)– Ευκλείδης: Αξιωματική θεωρία– Αρχές 20ου αιώνα, Hilbert, αξίωμα → θεώρημα → τυπική

απόδειξη

Εισαγωγή

● Θεμελίωση των μαθηματικών– Γλώσσα– Θεωρία– Συνεπής – πλήρης

A A

Εισαγωγή

● Γλώσσα

– Προτασιακός λογισμός x, c, , , , , – Κατηγορηματικός λογισμός ,

● Θεωρία

– Συνολοθεωρία, Cantor – Frege– Παράδοξο του Russel– Άλλες θεωρίες θεμελίωσης των μαθηματικών

Εισαγωγή

● Κλάδοι της πληροφορικής– Αλγόριθμοι και δομές δεδομένων– Γλώσσες προγραμματισμού– Αριθμητική και συμβολικοί υπολογισμοί– Τεχνητή νοημοσύνη και ρομποτική– Λειτουργικά συστήματα

Εισαγωγή

● Υπολογιστής– Επεξεργαστή– Μνήμα– Συσκευές εισόδου/εξόδου

● Ιδιότητες– Αυτόματο, χωρίς έμφυτη εξυπνάδα– Μεγάλη ταχύτητα– Ακρίβεια στις πράξεις

Γλώσσα προγραμματισμού

Ο προγραμματιστής:● Αλληλεπιδρά με το υλικό Η/Υ● Αναπτύσσει – τροποποεί – αναβαθμίζει – συντηρεί ένα

λογισμικό● Η γλώσσες προγραμματισμού αποτελούν το εργαλείο

αυτό

Γλώσσα προγραμματισμού

● Μέσω επικοινωνίας μεταξύ του ανθρώπου και της μηχανής– Ο Η/Υ εκτελεί τις πράξεις της πρόσθεσης και του

πολλαπλασιασμού– Όλες οι πράξεις γίνονται με συνδιασμό των παραπάνω

● Η γλώσσα μηχανής– Δύσκολη από την άνθρωπο– Απαιτεί μεγάλο χρόνο εκπαιδευσης

Γλώσσα προγραμματισμού

● Γλώσσα μηχανής● 0110110001101● Διεύθυνση εντολή

● Συμβολική γλώσσα● Label:add ax, bx

Διεύθυνση πράξη δεδομένα

● Γλώσσες υψηλού επιπέδου

Οι γλώσσες υψηλού επιπέδου:● Ενδιάμεσω επίπεδο με την εφαρμοφή και την γλώσσα

μηχανής● Κάνουν τον προγραμματισμό εύχρηστο, μειώνοντας το

κόστος ανάπτυξης των εφαρμογών● Μπορούν να εκτελεστούν σε διαφορετικές μηχανές

Ένα πρόγραμμα μέσα στο οποία γράφετε ένα άλλο πρόγραμα

Μεταγλωτιστής

Διερμηνευτής

Γλώσσα προγραμματισμού

● Οι γλώσσες που χρησιμοποιούν μεταγλωτιστή είναι πολύ γρηγορότερες σε σχέση με τις γλώσσες που χρησιμοποιούν διερμηνευτή (C/C++, C#, FORTRAN))

● Οι γλώσσες που βασίζονται στον διερμηνευτή μπορούν να είναι περισσότερο διαδραστηκές και ο χρήστης να κάνει περισσότερους ελεγχους (Python, Prolog, JAVA, BASIC)

Σφάλματα προγραμματισμού

● Συντακτικά σφάλματα

Ανιχνεύονται από τον compiler/interpreter● Σφάλματα κατά την εκτέλεση

Ανιχνεύονται από τον interpreter● Σφάλματα λογικής

Ανιχνεύονται από τον προγραμματιστή

Διαχωρισμός Γλωσσών

● Γλώσσες χαμηλού επιπέδου οι γλώσσες που είναι πιο κοντά στη γλώσσα μηχανής (BASIC)

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

Αντικειμενοστραφείς Προγραμματισμός

● C● Pascal● FORTRAN)

● C++● C#● JAVA● Python

Διαχωρισμός Γλωσσών

Δομημένος Προγραμματισμός Αντικειμενοστραφείς Προγραμματισμός

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

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

Python

● Αναπτύχθηκε από τον Ολλανδό Guido van Rossum● στις αρχές της δεκαετίας του '90: Python 0.9.0 – February

1991● Python 2.0 – Οκτώμβριο, 2000● Python 3.0 – Δεκέμβριο, 2008 ● Υποστηρίζεται από πλήθος προγραμματιστών και

οργανισμών, είναι γλώσσα ανοιχτού κώδικα

Ιστορικά είναι η πρώτη γλώσσα προγραμματισμού που σπάει την προς τα πίσω συμβατότητα με προηγούμενες εκδόσεις.

Python

● Γλώσσα προγραμματισμού υψηλού επιπέδου● Υποστηρίζει Αντικειμενοστραφή και Διαδικαστικό

Προγραμματισμό● Interpreted κατά το run-time (very high-level language)● Εκτελείται:

– Είτε ανά εντολή (στο Python Shell)– Είτε σαν πλήρες αρχείο προγράμματος με κατάληξη .py

Python

● Δυναμική γλώσσα στον ορισμό τύπου των μεταβλητών● Εύκολη στην σύνταξη και στην εκμάθηση, κατανόηση,

ανάγνωση● Υποχρεωτικό Indentation, όχι μόνο για μορφοποίηση● Δημιουργία μικρότερων σε μέγεθος προγραμμάτων σε

σχέση με άλλες γλώσσες προγραμματισμού● Πληθώρα IDEs: IDLE, IPython, PythonAnywhere

Πρόγραμμα σε Python

print('Hello word!')

x = 99

print(x)

---------------------------------------------------------------------------------------------------------------# Get the user's first name.

first_name = input('Please give your first name: ')

---------------------------------------------------------------------------------------------------------------# Get the user's last name.

last_name = input('Please give your last name: ')

---------------------------------------------------------------------------------------------------------------# Print a greeting to the user.

print('Hello', first_name, last_name)

Πρόγραμμα σε Python

● Διαδραστική Λειτουργία– Εκκινώντας το Python

Python 3.2.5 (default, May 15 2013, 23:07:10) [MSC v.1500 64 bit

(AMD64)] on win32

Type "copyright", "credits" or "license()" for more information.

>>>

– Και με συγγραφή εντολής μετά το >>> και Entrer αυτή διερμηνεύεται και εκτελείται

– Πριν εκτελεστεί κάποια εντολή ελέγχεται για συντακτικά σφάλματα

top related