Transcript
Page 1: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Υλοποίηση Αλγορίθμου με υπολογιστή - Προγραμματισμός

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Σχ. Έτος 2010-11

Page 2: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Τι είναι το πρόγραμμα;

Ένα πρόγραμμα είναι η αναπαράσταση ενός αλγορίθμου γραμμένη σε γλώσσα κατανοητή για έναν υπολογιστή

Ανάλυση Προγραμματισμός

Σχ. Έτος 2010-11

Page 3: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

ΠαράδειγμαΑλγόριθμ

οςΠρόγραμμ

α(Scratch)

Page 4: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Τι ονομάζουμε γλώσσα

προγραμματισμού;

Page 5: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Οι Γλώσσες Προγραμματισμού είναι

τεχνητές γλώσσες που «καταλαβαίνουν» οι

υπολογιστές. Χρησιμοποιούνται για την επικοινωνία του ανθρώπου

με τη μηχανή

Page 6: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Η πρώτη γλώσσα προγραμματισμού ήταν η

γλώσσα μηχανής. Χρησιμοποιεί μόνο το 0 και

το 1.

Είναι η γλώσσα που «καταλαβαίνουν» τα

κυκλώματα του Η/Υ. Για εμάς τους ανθρώπους όμως είναι

πάρα πολύ δύσκολη

Page 7: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Γλώσσα μηχανής

Υψηλού επιπέδου

Πολύ υψηλού επιπέδου

Γλώσσες Προγραμματισμού

Ταχύτητα εκτέλεσηςΚατανόηση

Σχ. Έτος 2010-11

Page 8: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Γενικής χρήσης (Pascal)

Γλώσσες προγραμματισμού συστημάτων (C, C++)

Γλώσσες ειδικών εφαρμογών (Matlab)

Παράλληλες ή κατανεμημένες γλώσσες (Java)

Γλώσσες Προγραμματισμού

Σχ. Έτος 2010-11

Page 9: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

C

C++

C# (.Net)

Java

Visual Basic

MatLab

PHP

Pascal

ΓΛΩΣΣΑ

Logo

Γλώσσες Προγραμματισμού

Σχ. Έτος 2010-11

Page 10: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Αλφάβητο

Το σύνολο των χαρακτήρων που υποστηρίζει η γλώσσα

Λεξιλόγιο

Το σύνολο των λέξεων-κλειδιών της γλώσσας

Συντακτικό

Οι κανόνες που συνδέουν τις λέξεις

Χαρακτηριστικά γλωσσών προγραμματισμού

Σχ. Έτος 2010-11

Page 11: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Λεξιλόγιο Logo

Παραδείγματα λεξιλογίου γλωσσών προγραμματισμού

Σχ. Έτος 2010-11

Page 12: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Συντακτικό Logo

Η πρώτη λέξη μιας οδηγίας Logo είναι πάντα μια εντολή.

Τα υπόλοιπα στοιχεία της οδηγίας είναι είσοδοι στην εντολή.

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

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

Παραδείγματα γλωσσών προγραμματισμού

Σχ. Έτος 2010-11

Page 13: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Παράδειγμα

Πώς Προγραμματίζουμε τον υπολογιστή να εμφανίσει

την πρόταση “Ηello World”

Page 14: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Παραδείγματα λεξιλογίου γλωσσών προγραμματισμού

<?php echo "Hello World!";?>

PHP

Imports System Public Module modmain Sub Main() Console.WriteLine ("Hello World!") End SubEnd Module

Visual Basic

Σχ. Έτος 2010-11

Page 15: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Παραδείγματα λεξιλογίου γλωσσών προγραμματισμού

class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); }}

Java

ΤΥΠΩΣΕ [Hello World!]

Logo

(print "Hello World!")

Lisp

Σχ. Έτος 2010-11

Page 16: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ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

Page 17: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ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

Page 18: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ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

Page 19: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

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

ένα πρόγραμμα-μεταφραστής που μετατρέπει τις οδηγίες μας στη μορφή που τις καταλαβαίνει ο επεξεργαστής

Ολοκληρωμένο Προγραμματιστικό Περιβάλλον

Κύρια Εργαλεία

Αλγόριθμος

Πρόγραμμα

Μετατροπή σε

κώδικα μηχανής

Εκτέλεση στην

Κ.Μ.Ε.

Στάδια Εκτέλεσης αλγορίθμου

Σχ. Έτος 2010-11

Page 20: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

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

Ελέγχουν όλο το πρόγραμμα για συντακτικά λάθη και μετά το μετατρέπουν όλο σε μια κατάλληλη σειρά από 0 και 1

Διερμηνέας

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

Ολοκληρωμένο Προγραμματιστικό Περιβάλλον

Μετατροπή προγράμματος σε κώδικα μηχανής

Σχ. Έτος 2010-11

Page 21: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Συντακτικά Λάθη

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

Λάθη Εκτέλεσης

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

Λογικά λάθη

Όταν το πρόγραμμα δεν έχει το αναμενόμενο αποτέλεσμα τότε υπάρχουν λογικά λάθη.

Είναι λάθη στον αλγόριθμο και όχι στο πρόγράμμα.

Σχ. Έτος 2010-11

Προγραμματιστικά Λάθη

Page 22: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

1. ΤΥΠΟΣΕ “Hello World”

2. A 0X 5 / A

3. Υπολογισμός περιφέρειας κύκλου:Περιφέρεια π*R2

Page 23: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Ολοκληρωμένα Προγραμματιστικά

περιβάλλοντα - Eclipse

Σχ. Έτος 2010-11

Page 24: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Ολοκληρωμένα Προγραμματιστικά

περιβάλλοντα – MatLab

Σχ. Έτος 2010-11

Page 25: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Ολοκληρωμένα Προγραμματιστικά

περιβάλλοντα – .Net

Σχ. Έτος 2010-11

Page 26: μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός

Γιώργος Αυγέρης - Καθηγητής Πληροφορικής ΠΕ19

Ολοκληρωμένα Προγραμματιστικά

περιβάλλοντα – Scratch

Σχ. Έτος 2010-11


Recommended