μάθημα 3 υλοποίηση αλγορίθμου με υπολογιστή -...

Preview:

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

Recommended