ݺߣ

ݺߣShare a Scribd company logo
Υλοποίηςη Αλγορίθμου με υπολογιςτή - Προγραμματιςμόσ
Τι εύναι το πρόγραμμα;
Ένα πρόγραμμα είναι η αναπαράςταςη ενόσ αλγορίθμου γραμμένη ςε
γλώςςα κατανοητή για έναν υπολογιςτή

Ανϊλυςη

Προγραμματιςμόσ
Παρϊδειγμα
Αλγόριθμοσ

Πρόγραμμα
(Scratch)
Τι ονομϊζουμε
γλώςςα
προγραμματιςμού;
Οι Γλώςςεσ Προγραμματιςμού
εύναι τεχνητϋσ γλώςςεσ που
«καταλαβαύνουν» οι υπολογιςτϋσ.
Χρηςιμοποιούνται για την
επικοινωνύα του ανθρώπου με τη
μηχανό
Η πρώτη γλώςςα
προγραμματιςμού όταν η
γλώςςα μηχανήσ. Χρηςιμοποιεύ
μόνο το 0 και το 1.

Είναι η γλώζζα ποσ
«καηαλαβαίνοσν» ηα
κσκλώμαηα ηοσ Η/Υ. Για εμάς
ηοσς ανθρώποσς όμως είναι
πάρα πολύ δύζκολη
Γλώςςεσ Προγραμματιςμού
Ταχύτητα εκτέλεςησ

Κατανόηςη

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

Υψηλού επιπϋδου
Πολύ υψηλού επιπϋδου
Γλώςςεσ Προγραμματιςμού

Γενικόσ χρόςησ (Pascal)
Γλώςςεσ προγραμματιςμού ςυςτημϊτων (C, C++)
Γλώςςεσ ειδικών εφαρμογών (Matlab)
Παρϊλληλεσ ό κατανεμημϋνεσ γλώςςεσ (Java)
Γλώςςεσ Προγραμματιςμού
C
 C++

 C# (.Net)
 Java
 Visual Basic
 MatLab
 PHP
 Pascal
 ΓΛΩΣΣΑ
 Logo
Χαρακτηριςτικϊ γλωςςών
προγραμματιςμού
Αλφάβητο
Το ςύνολο των χαρακτήρων που υποςτηρίζει η
γλώςςα
Λεξιλόγιο
Το ςύνολο των λέξεων-κλειδιών τησ γλώςςασ
Συντακτικό
Οι κανόνεσ που ςυνδέουν τισ λέξεισ
Παραδεύγματα λεξιλογύου γλωςςών
προγραμματιςμού
Λεξιλόγιο Logo
Παραδεύγματα γλωςςών
προγραμματιςμού
Συντακτικό Logo
 Η πρώτη λέξη μιασ οδηγίασ Logo είναι πάντα μια εντολή.
 Τα υπόλοιπα ςτοιχεία τησ οδηγίασ είναι είςοδοι ςτην εντολή.
 Κάθε είςοδοσ πρέπει να είναι είτε κάποιο είδοσ δεδομένων τα οποία
απαιτούνται από ςυγκεκριμένη εντολή, είτε μια έκφραςη τησ Logo
για τον υπολογιςμό των απαιτούμενων δεδομένων.
 Κάθε εντολή ή μεταβιβαςτήσ έχει ένα ςυγκεκριμένο αριθμό
ειςόδων, έτςι ώςτε να μην χρειάζονται παρενθέςεισ. Εξαίρεςη ςε
αυτόν τον κανόνα αποτελούν οι μαθηματικέσ πράξεισ.
Παράδειγμα
Πώσ Προγραμματύζουμε τον
υπολογιςτό να εμφανύςει την
πρόταςη
“Ηello World”
Παραδεύγματα λεξιλογύου γλωςςών
προγραμματιςμού
PHP
<?php
echo "Hello World!";
?>

Visual Basic
Imports System
Public Module modmain
Sub Main()
Console.WriteLine ("Hello World!")
End Sub
End Module
Παραδεύγματα λεξιλογύου γλωςςών
προγραμματιςμού
Java
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

Logo
ΤΥΠΩΣΕ [Hello World!]

Lisp
(print "Hello World!")
Παραδεύγματα λεξιλογύου γλωςςών
προγραμματιςμού
Pascal
program HelloWorld;
begin
writeln('Hello World!');
end.

Assembly
section
.text
global _start

;must be declared for linker (ld)

_start:

;tell linker entry point
mov
mov
mov
mov
int

;message length
;message to write
;file descriptor (stdout)
;system call number (sys_write)
;call kernel

mov
int
…….

edx,len
ecx,msg
ebx,1
eax,4
0x80
eax,1
0x80

;system call number (sys_exit)
;call kernel
Παραδεύγματα πηγαύου Κώδικα
void frame()

Tetris

{ 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);
Παραδεύγματα πηγαύου Κώδικα
#include "cg_local.h"

Quake
#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];
Ολοκληρωμϋνο Προγραμματιςτικό
Περιβϊλλον
Κύρια Εργαλεία
 ϋνασ εξειδικευμϋνοσ κειμενογρϊφοσ, που χρηςιμεύει για τη ςύνταξη
και τη διόρθωςη του προγρϊμματοσ

 ϋνα πρόγραμμα-μεταφραςτόσ που μετατρϋπει τισ οδηγύεσ μασ ςτη
μορφό που τισ καταλαβαύνει ο επεξεργαςτόσ

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

Πρόγραμμα

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

Εκτέλεςη
ςτην Κ.Μ.Ε.
Ολοκληρωμϋνο Προγραμματιςτικό
Περιβϊλλον
Μετατροπή προγράμματοσ ςε κώδικα μηχανήσ
Μεταγλωττιςτήσ
Ελέγχουν όλο το πρόγραμμα για ςυντακτικά λάθη και
μετά το μετατρέπουν όλο ςε μια κατάλληλη ςειρά από 0
και 1
Διερμηνέασ

Ελέγχουν μία οδηγία κάθε φορά, την εκτε­λούν και μετά
ελέγχουν την επόμενη οδηγία.
Προγραμματιςτικϊ Λϊθη
Συντακτικά Λάθη
Αν ςε κϊποια οδηγύα ϋχουμε κϊνει λϊθοσ ςτο
αλφϊβητο, ςτο λεξιλόγιο ό ςτο ςυντακτικό.
Λάθη Εκτέλεςησ
Εύναι τα λϊθη που προκύπτουν κατϊ την εκτϋλεςη
του προγρϊμματοσ (π.χ. διαύρεςη με το 0)
Λογικά λάθη
Όταν το πρόγραμμα δεν ϋχει το αναμενόμενο
αποτϋλεςμα τότε υπϊρχουν λογικϊ λϊθη. Εύναι
λϊθη ςτον αλγόριθμο και όχι ςτο πρόγρϊμμα.
1. ΤΥΠΟΣΕ “Hello World”
2. A  0
X5/A
3. Υπολογισμός περιφέρειας
κύκλοσ:
Περιφέρεια  π*R2
Ολοκληρωμϋνα Προγραμματιςτικϊ
περιβϊλλοντα - Eclipse
Ολοκληρωμϋνα Προγραμματιςτικϊ
περιβϊλλοντα – MatLab
Ολοκληρωμϋνα Προγραμματιςτικϊ
περιβϊλλοντα – .Net
Ολοκληρωμϋνα Προγραμματιςτικϊ
περιβϊλλοντα – Scratch

More Related Content

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