Upload
george-avgeris
View
1.585
Download
0
Embed Size (px)
Citation preview
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Υλοποίηση Αλγορίθμου με υπολογιστή - Προγραμματισμός
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Τι είναι το πρόγραμμα;
Ένα πρόγραμμα είναι η αναπαράσταση ενός αλγορίθμου γραμμένη σε γλώσσα κατανοητή για έναν υπολογιστή
Ανάλυση Προγραμματισμός
Σχ. Έτος 2010-11
ΠαράδειγμαΑλγόριθμ
οςΠρόγραμμ
α(Scratch)
Τι ονομάζουμε γλώσσα
προγραμματισμού;
Οι Γλώσσες Προγραμματισμού είναι
τεχνητές γλώσσες που «καταλαβαίνουν» οι
υπολογιστές. Χρησιμοποιούνται για την επικοινωνία του ανθρώπου
με τη μηχανή
Η πρώτη γλώσσα προγραμματισμού ήταν η
γλώσσα μηχανής. Χρησιμοποιεί μόνο το 0 και
το 1.
Είναι η γλώσσα που «καταλαβαίνουν» τα
κυκλώματα του Η/Υ. Για εμάς τους ανθρώπους όμως είναι
πάρα πολύ δύσκολη
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Γλώσσα μηχανής
Υψηλού επιπέδου
Πολύ υψηλού επιπέδου
Γλώσσες Προγραμματισμού
Ταχύτητα εκτέλεσηςΚατανόηση
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Γενικής χρήσης (Pascal)
Γλώσσες προγραμματισμού συστημάτων (C, C++)
Γλώσσες ειδικών εφαρμογών (Matlab)
Παράλληλες ή κατανεμημένες γλώσσες (Java)
Γλώσσες Προγραμματισμού
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
C
C++
C# (.Net)
Java
Visual Basic
MatLab
PHP
Pascal
ΓΛΩΣΣΑ
Logo
Γλώσσες Προγραμματισμού
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Αλφάβητο
Το σύνολο των χαρακτήρων που υποστηρίζει η γλώσσα
Λεξιλόγιο
Το σύνολο των λέξεων-κλειδιών της γλώσσας
Συντακτικό
Οι κανόνες που συνδέουν τις λέξεις
Χαρακτηριστικά γλωσσών προγραμματισμού
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Λεξιλόγιο Logo
Παραδείγματα λεξιλογίου γλωσσών προγραμματισμού
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Συντακτικό Logo
Η πρώτη λέξη μιας οδηγίας Logo είναι πάντα μια εντολή.
Τα υπόλοιπα στοιχεία της οδηγίας είναι είσοδοι στην εντολή.
Κάθε είσοδος πρέπει να είναι είτε κάποιο είδος δεδομένων τα οποία απαιτούνται από συγκεκριμένη εντολή, είτε μια έκφραση της Logo για τον υπολογισμό των απαιτούμενων δεδομένων.
Κάθε εντολή ή μεταβιβαστής έχει ένα συγκεκριμένο αριθμό εισόδων, έτσι ώστε να μην χρειάζονται παρενθέσεις. Εξαίρεση σε αυτόν τον κανόνα αποτελούν οι μαθηματικές πράξεις.
Παραδείγματα γλωσσών προγραμματισμού
Σχ. Έτος 2010-11
Παράδειγμα
Πώς Προγραμματίζουμε τον υπολογιστή να εμφανίσει
την πρόταση “Ηello World”
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Παραδείγματα λεξιλογίου γλωσσών προγραμματισμού
<?php echo "Hello World!";?>
PHP
Imports System Public Module modmain Sub Main() Console.WriteLine ("Hello World!") End SubEnd Module
Visual Basic
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Παραδείγματα λεξιλογίου γλωσσών προγραμματισμού
class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); }}
Java
ΤΥΠΩΣΕ [Hello World!]
Logo
(print "Hello World!")
Lisp
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Παραδείγματα λεξιλογίου γλωσσών προγραμματισμού
program HelloWorld;
begin writeln('Hello World!');end.
Pascal
Σχ. Έτος 2010-11
section .text global _start ;must be declared for linker (ld) _start: ;tell linker entry point
mov edx,len ;message lengthmov ecx,msg ;message to writemov ebx,1 ;file descriptor (stdout)mov eax,4 ;system call number (sys_write)int 0x80 ;call kernel
mov eax,1 ;system call number (sys_exit)int 0x80 ;call kernel
…….
Assembly
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
void frame()
{ setcolor(WHITE);
setfillstyle(SOLID_FILL,8);
settextstyle(7,0,6);
outtextxy(140,3," TETTRIS ");
setcolor(WHITE);
settextstyle(2,0,7);
outtextxy(400,440,"Press 'Esc' To Exit");
settextstyle(2,0,5);
outtextxy(5,285," PRESS ");
outtextxy(5,300,"Space To Change Shape");
outtextxy(5,315,"Use Arrow Keys To Move");
rectangle(180,465,375,480);
floodfill(181,466,WHITE);
rectangle(180,90,194,480);
floodfill(181,95,WHITE);
Παραδείγματα πηγαίου Κώδικα
Tetris
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
#include "cg_local.h"
#ifdef MISSIONPACK
#include "../ui/ui_shared.h"
// used for scoreboard
extern displayContextDef_t cgDC;
menuDef_t *menuScoreboard = NULL;
#else
int drawTeamOverlayModificationCount = -1;
#endif
int sortedTeamPlayers[TEAM_MAXOVERLAY];
Int numSortedTeamPlayers;
char systemChat[256];
Παραδείγματα πηγαίου Κώδικα
Quake
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
ένας εξειδικευμένος κειμενογράφος, που χρησιμεύει για τη σύνταξη και τη διόρθωση του προγράμματος
ένα πρόγραμμα-μεταφραστής που μετατρέπει τις οδηγίες μας στη μορφή που τις καταλαβαίνει ο επεξεργαστής
Ολοκληρωμένο Προγραμματιστικό Περιβάλλον
Κύρια Εργαλεία
Αλγόριθμος
Πρόγραμμα
Μετατροπή σε
κώδικα μηχανής
Εκτέλεση στην
Κ.Μ.Ε.
Στάδια Εκτέλεσης αλγορίθμου
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Μεταγλωττιστής
Ελέγχουν όλο το πρόγραμμα για συντακτικά λάθη και μετά το μετατρέπουν όλο σε μια κατάλληλη σειρά από 0 και 1
Διερμηνέας
Ελέγχουν μία οδηγία κάθε φορά, την εκτε λούν και μετά ελέγχουν την επόμενη οδηγία.
Ολοκληρωμένο Προγραμματιστικό Περιβάλλον
Μετατροπή προγράμματος σε κώδικα μηχανής
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Συντακτικά Λάθη
Αν σε κάποια οδηγία έχουμε κάνει λάθος στο αλφάβητο, στο λεξιλόγιο ή στο συντακτικό.
Λάθη Εκτέλεσης
Είναι τα λάθη που προκύπτουν κατά την εκτέλεση του προγράμματος (π.χ. διαίρεση με το 0)
Λογικά λάθη
Όταν το πρόγραμμα δεν έχει το αναμενόμενο αποτέλεσμα τότε υπάρχουν λογικά λάθη.
Είναι λάθη στον αλγόριθμο και όχι στο πρόγράμμα.
Σχ. Έτος 2010-11
Προγραμματιστικά Λάθη
1. ΤΥΠΟΣΕ “Hello World”
2. A 0X 5 / A
3. Υπολογισμός περιφέρειας κύκλου:Περιφέρεια π*R2
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Ολοκληρωμένα Προγραμματιστικά
περιβάλλοντα - Eclipse
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Ολοκληρωμένα Προγραμματιστικά
περιβάλλοντα – MatLab
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Ολοκληρωμένα Προγραμματιστικά
περιβάλλοντα – .Net
Σχ. Έτος 2010-11
Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19
Ολοκληρωμένα Προγραμματιστικά
περιβάλλοντα – Scratch
Σχ. Έτος 2010-11