Ασφαλής προγραμματισμός σε γλώσσα C

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Ασφαλής προγραμματισμός σε γλώσσα C"

Transcript

1 Ασφαλής προγραμματισμός σε γλώσσα C Πάτροκλος Αργυρούδης Δημήτρης Γλυνός IT security research, development and services {argp, Συνέδριο Δημιουργών ΕΛ/ΛΑΚ Ιουνίου 2009 census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

2 Εισαγωγή 1 Κενά ασφάλειας στη γλώσσα C 2 Κατηγορίες σφαλμάτων 3 Επικίνδυνες συναρτήσεις 4 Σφάλματα σε σύγχρονο λογισμικό 5 Θωράκιση λογισμικού 6 Συμπεράσματα census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

3 Κενά ασφάλειας στη γλώσσα C Η γλώσσα C έχει σχεδιαστεί με βάση τη φιλοσοφία της παροχής ελευθερίας στον προγραμματιστή κατά τη διαδικασία ανάπτυξης λογισμικού Αυθαίρετες μετατροπές μεταξύ τύπων δεδομένων Πλήρης έλεγχος κατά τη δέσμευση και αποδέσμευση μνήμης Αναφορές σε αυθαίρετες θέσεις μνήμης Χρήση αυθαίρετων δεικτών σε πίνακες Εκτέλεση κώδικα από αυθαίρετες θέσεις μνήμης Η λανθασμένη χρήση αυτής της ελευθερίας οδηγεί συχνά σε προγραμματιστικά σφάλματα Από τα οποία προκύπτουν κενά ασφάλειας census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

4 Κατηγορίες σφαλμάτων census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

5 Υπερχείλιση μνήμης στη στοίβα Πολύ γνωστό και κατανοητό πρόβλημα, υπερχείλιση τοπικών μεταβλητών από αντιγραφή δεδομένων χωρίς έλεγχο ορίων Κορυφή στοίβας ESP Χαμηλές διευθύνσεις local_buffer local_char δείκτης π λαισίου στοίβας (SFP) EBP - 4 EBP Ροή επ έκτασης δεδομένων Ροή επ έκτασης στοίβας διεύθυνση επιστροφής arg_1 EBP + 4 arg_2 EBP + 8 Προηγούμενες συναρτήσεις, π χ main void func(int arg_1, char *arg_2) { char local_char; char local_buffer[512]; strcpy(local_buffer, arg_2); } Υψηλές διευθύνσεις Καταχωρητές census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

6 Υπερχείλιση μνήμης στο σωρό Επικάλυψη δυναμικών δομών > Κενά ασφάλειας: εξαρτώμενα από την εφαρμογή Δείκτες συναρτήσεων Σημαντικά δεδομένα για τη λογική της εφαρμογής, πχ σημαίες ταυτοποίησης (authentication flags) Επικάλυψη δομών διαχείρισης του σωρού > Κενά ασφάλειας: εξαρτώμενα από την υλοποίηση του σωρού glibc: διπλά συνδεδεμένη λίστα για τη διαχείριση της μνήμης που δεσμεύει (και αποδεσμεύει) ένα πρόγραμμα Αλλοίωση των δομών της λίστας οδηγεί σε αυθαίρετη επικάλυψη μνήμης κατά τη διαγραφή κόμβων από τη λίστα census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

7 Παρά-ένα λάθη (off-by-one) Λάθη κατά τα οποία ο υπολογισμός μεγέθους μίας περιοχής μνήμης είναι ανακριβής για ένα byte Συνήθεις αιτίες Τα strings στη C απαιτούν ένα byte επιπλέον για να τερματιστούν Παρανόηση του τρόπου με τον οποίο λειτουργούν οι πίνακες Παρουσιάζονται στη στοίβα και στο σωρό Η εκμετάλλευσή τους (σε i386 και στη στοίβα) εξαρτάται από το αν η προβληματική περιοχή μνήμης βρίσκεται ακριβώς μετά από τον αποθηκευμένο δείκτη πλαισίου (SFP) census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

8 Παράλειψη προσδιοριστή μορφής (format string) Παράλειψη του προσδιοριστή μορφής ``%s'' σε συναρτήσεις της οικογένειας printf(3) (αλλά και σε άλλες, όπως πχ syslog(3)) Η προβληματική συνάρτηση αναζητά τους παραλειπόμενους προσδιοριστές στη στοίβα Επιτρέπει την αυθαίρετη διαμόρφωση του προσδιοριστή μορφής Μπορεί να έχει ως αποτέλεσμα τη διαρροή δεδομένων από τη στοίβα (διευθύνσεις, τιμές μεταβλητών, κτλ), την αυθαίρετη επικάλυψη μνήμης census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

9 Υπερχείλιση ακέραιων μεταβλητών Οι ακέραιες μεταβλητές έχουν τη δυνατότητα να αποθηκεύσουν τιμές συγκεκριμένου εύρους -INT_MAX-1 <= int <= INT_MAX, INT_MAX == <= unsigned int <= UINT_MAX, UINT_MAX == Αν ξεπεραστεί η μέγιστη τιμή, πχ ως αποτέλεσμα κάποιας πρόσθεσης ή πολλαπλασιασμού, έχουμε αναδίπλωση Γενικά δεν είναι εκμεταλλεύσιμο σφάλμα, δεν υπάρχει άμεση επικάλυψη μνήμης από την υπερχείλιση Συχνά όμως ο προβληματικός ακέραιος χρησιμοποιείται ως θέση στοιχείου σε πίνακα ή κατά τη δυναμική δέσμευση μνήμης Υπερχείλιση ή/και αυθαίρετη επικάλυψη μνήμης census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

10 Σφάλματα προσήμου (signedness) Στα σφάλματα προσήμου μία μεταβλητή δίχως πρόσημο (unsigned) ερμηνεύεται σαν να έχει πρόσημο (signed) Και το αντίστροφο Παρουσιάζονται σε περιπτώσεις όπου ακέραιοι με πρόσημο χρησιμοποιούνται σε συγκρίσεις, χρησιμοποιούνται σε αριθμητικές πράξεις, συγκρίνονται με ακέραιους δίχως πρόσημο, υπερχειλίζουν, αναδιπλώνονται και αλλάζουν πρόσημο Η εκμετάλλευσή τους από κακόβουλους χρήστες δεν είναι πάντα απλή Η τιμή -1 όταν ερμηνευτεί δίχως πρόσημο είναι (~4GB) census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

11 Άλλες κατηγορίες σφαλμάτων Διαρροή ευαίσθητων δεδομένων Συνθηματικών, κλειδιών κρυπτογράφησης, εσωτερικών δομών και διαδικασιών της εφαρμογής Μπορεί να επιτρέψει την παρά πέρα εκμετάλλευση σφαλμάτων Συνθήκες ανταγωνισμού Η υλοποίηση μίας εννοιολογικά αδιαίρετης διαδικασίας διασπάται σε τμήματα επιτρέποντας εξωτερικές παρεμβάσεις Κάποιο αντικείμενο του συστήματος (πχ πόροι, προνόμια) αλλάζει κατάσταση μεταξύ του ελέγχου και της χρήσης του Προσωρινά αρχεία census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

12 Επικίνδυνες συναρτήσεις census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

13 Επικίνδυνες συναρτήσεις της βασικής βιβλιοθήκης gets(3), scanf(3), sprintf(3), strcpy(3), strcat(3), char *strncpy(char *dest, const char *src, size_t n); Προτρέπει σε παρά-ένα λάθη τον προγραμματιστή που δεν έχει υπολογίσει προσεκτικά τη τιμή της παραμέτρου n Δεν τερματίζει αυτόματα το dest με NULL με αποτέλεσμα να έχει διαφορετικό μέγεθος από αυτό που πιστεύει ο προγραμματιστης Λανθασμένη χρήση του τελεστή sizeof buffer[sizeof(buffer)] = NULL; if(strlen(str_input) > sizeof(buffer)) census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

14 Σφάλματα σε σύγχρονο λογισμικό census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

15 Mac OS X 1039: bsd/kern/sysv_semc CVE : Σφάλμα προσήμου στη semop(2) int semop(struct proc *p, struct semop_args *uap, register_t *retval) { int semid = uap->semid; int nsops = uap->nsops; struct sembuf sops[max_sops]; if (nsops > MAX_SOPS) { if ((eval = copyin(uap->sops, &sops, nsops * sizeof(struct sembuf)))!= 0) { Διόρθωση (patch) - if (nsops > MAX_SOPS) { + if (nsops < 0 nsops > MAX_SOPS) { census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

16 FreeBSD 71: kern/kern_timec CVE : Σφάλμα προσήμου στην itimer_find() static struct itimer * itimer_find(struct proc *p, int timerid) { struct itimer *it; if ((p->p_itimers == NULL) (timerid >= TIMER_MAX) (it = p->p_itimers->its_timers[timerid]) == NULL) { return (NULL); } Διόρθωση (patch) - if ((p->p_itimers == NULL) (timerid >= TIMER_MAX) + if ((p->p_itimers == NULL) + (timerid < 0) (timerid >= TIMER_MAX) census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

17 WU-FTPD 262: realpathc CVE : Παρά-ένα λάθος στην fb_realpath() char * fb_realpath(const char *path, char *resolved) { struct stat sb; int fd, n, rootd, serrno; char *p, *q, wbuf[maxpathlen]; if (resolved[0] == '/' && resolved[1] == NULL) rootd = 1; else rootd = 0; if (*wbuf) { if (strlen(resolved) + strlen(wbuf) + rootd + 1 > MAXPATHLEN) { errno = ENAMETOOLONG; } if (rootd == 0) (void) strcat(resolved, "/"); (void) strcat(resolved, wbuf); } Διόρθωση (patch) - if (strlen(resolved) + strlen(wbuf) + rootd + 1 > MAXPATHLEN) { + if (strlen(resolved) + strlen(wbuf) +!rootd + 1 > MAXPATHLEN) { census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

18 OpenBSD 28: libexec/ftpd/ftpdc CVE : Παρά-ένα λάθος στη replydirname() replydirname(const char *name, const char *message) { char npath[maxpathlen]; int i; for (i = 0; *name!= NULL && i < sizeof(npath) - 1; i++, name++) { npath[i] = *name; if (*name == '"') npath[++i] = '"'; } npath[i] = NULL; Διόρθωση (patch) + p = npath; + ep = &npath[sizeof(npath) - 1]; census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

19 OpenSolaris 10: uts/common/os/aioc CVE : Υπερχείλιση ακέραιας μεταβλητής στη aiosuspend() aiosuspend(void *aiocb, int nent, struct timespec *timout, int flag, { aiop = curproc->p_aio; if (aiop == NULL nent <= 0) return (EINVAL); if (model == DATAMODEL_NATIVE) ssize = (sizeof (aiocb_t *) * nent); #ifdef _SYSCALL32_IMPL else ssize = (sizeof (caddr32_t) * nent); #endif /* _SYSCALL32_IMPL */ cbplist = kmem_alloc(ssize, KM_NOSLEEP); Διόρθωση (patch) - if (aiop == NULL nent <= 0) + if (aiop == NULL nent <= 0 nent > _AIO_LISTIO_MAX) census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

20 FreeBSD 60: net80211/ieee80211_ioctlc CVE : Διαρροή δεδομένων στην ieee80211_ioctl_getchanlist() static int ieee80211_ioctl_getchanlist(struct ieee80211com *ic, struct ieee80211req *ireq) { if (sizeof(ic->ic_chan_active) > ireq->i_len) ireq->i_len = sizeof(ic->ic_chan_active); return copyout(&ic->ic_chan_active, ireq->i_data, ireq->i_len); } Διόρθωση (patch) - if (sizeof(ic->ic_chan_active) > ireq->i_len) + if (sizeof(ic->ic_chan_active) < ireq->i_len) census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

21 Θωράκιση λογισμικού census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

22 Κατά τη μεταγλώττιση (1) Χρήση του GNU C Compiler (gcc), της βιβλιοθήκης GNU libc και του GNU linker (ld) gcc -D_FORTIFY_SOURCE=2 -O2 Ανίχνευση (απλών) σφαλμάτων υπερχείλισης μνήμης Αντικατάσταση συναρτήσεων από εναλλακτικές με ελέγχους (πχ sprintf => sprintf_chk) gcc -Wformat=2 Έλεγχος προσδιοριστών μορφής (format strings) gcc -fstack-protector ή -fstack-protector-all SSP: Προστασία δεδομένων της στοίβας με canary Αλλαγή των θέσεων των τοπικών μεταβλητών στη στοίβα census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

23 Κατά τη μεταγλώττιση (2) gcc -pie -fpie Δημιουργία εκτελέσιμων που ο κώδικας τους μπορεί να φορτωθεί σε τυχαία διεύθυνση μνήμης (position independent executables) ld -z relro -z now ή gcc -Wl,-z,relro,-z,now Προστασία πεδίων GOT και PLT σε ELF εκτελέσιμα census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

24 Κατά την εκτέλεση (1) Address Space Layout Randomisation Τυχαιοποίηση των διευθύνσεων των σελίδων μνήμης: της στοίβας του σωρού αυτών που δεσμεύονται με mmap(2) (βιβλιοθήκες, malloc(3), κοινή μνήμη κα) του κώδικα μιας εφαρμογής (σε position independent executables) Τυχαιοποίηση της κορυφής της στοίβας (top of stack) Στο Linux η τυχαιοποίηση παραμετροποιείται μέσω του αρχείου /proc/sys/kernel/randomize_va_space ως εξής: 2: τυχαιοποίηση παντού (stack, top of stack, heap, mmap, brk) 1: τυχαιοποίηση παντού εκτός από τη διεύθυνση του σωρού (brk) 0: καμμία τυχαιοποίηση census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

25 Κατά την εκτέλεση (2) Μη εκτελέσιμες σελίδες μνήμης Υλοποίηση στο hardware AMD NX (No execute) bit Intel XD (execute Disable) bit Υλοποίηση με λογισμικό ExecShield W ^ X Θωράκιση του περιβάλλοντος εκτέλεσης της εφαρμογής παροχή τυχαίων canaries από τo loader και τη libc πολιτική μεταγλώττισης εφαρμογών και βιβλιοθηκών του λειτ συστήματος με γνώμονα την ασφάλεια περιορισμός του περιβάλλοντος εκτέλεσης της εφαρμογής (Solaris zones, BSD jails, Linux containers κλπ) θωράκιση του πυρήνα (CONFIG_CC_STACKPROTECTOR=Y στο Linux) census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

26 Συμπεράσματα Η ανάπτυξη λογισμικού σε C απαιτεί μεγάλη προσοχή και καλή γνώση των ``σκοτεινών'' σημείων εξαιτίας των ελευθεριών που παρέχει η γλώσσα Προσοχή στο input/output, στη διαχείριση προσωρινής μνήμης και στις πράξεις με ακέραιους Αξιοποίηση των βιβλιοθηκών δυναμικής σύνδεσης Στατικά συνδεδεμένα προγράμματα μένουν απροστάτευτα κατά τις αναβαθμίσεις του συστήματος Χρήση θωρακισμένου λογισμικού Τακτικός έλεγχος πηγαίου κώδικα από τρίτους census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

27 Παραπομπές Phantasmal Phantasmagoria The malloc maleficarum: glibc malloc exploitation techniques MallocMaleficarumtxt, 2005 klog The frame pointer overwrite Phrack, Volume 9, Issue 55, 1999 blexim Basic integer overflows Phrack, Volume 0x0b, Issue 0x3c, 2002 David A Wheeler Secure Programming for Linux and Unix HOWTO Secure-Programs-HOWTO, v3010, 2003 Mark Dowd, John McDonald and Justin Schuh The art of software security assessment Addison-Wesley, 2006 Debian Wiki Debian hardening options census, inc (wwwcensusgr) Ασφαλής προγραμματισμός σε C 20 Ιουνίου / 27

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Αλφαριθμητικά και Αρχεία Αλφαριθμητικά (strings) Αρχεία (files) τα βασικά στοιχεία Αλφαριθμητικά της C Συμβολοσειρές (= ακολουθίες

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

Διαβάστε περισσότερα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

Διαβάστε περισσότερα

Ασφάλεια και ΕΛ/ΛΑΚ. Πάτροκλος Αργυρούδης Δημήτρης Γλυνός Νίκος Τσαγκαράκης

Ασφάλεια και ΕΛ/ΛΑΚ. Πάτροκλος Αργυρούδης Δημήτρης Γλυνός Νίκος Τσαγκαράκης Ασφάλεια και ΕΛ/ΛΑΚ Πάτροκλος Αργυρούδης Δημήτρης Γλυνός Νίκος Τσαγκαράκης IT security research, development and services {argp, dimitris, ntsag}@censusgr Ημερίδα ΕΛ/ΛΑΚ, Σχολή Ικάρων 23 Οκτωβρίου 2009

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 10 η Αλφαριθμητικά Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

Διαβάστε περισσότερα

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

Διαβάστε περισσότερα

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 4: Τύποι Δεδομένων και τελεστές Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Πολλαπλά Αρχεία Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πολλαπλά Αρχεία Όταν γράφουμε μεγάλα προγράμματα θέλουμε να έχουμε ανεξάρτητα κομμάτια κώδικα

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 14 Δυναμική διαχείριση μνήμης Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Στατική δέσμευση μνήμης Με τη δήλωση απλών μεταβλητών

Διαβάστε περισσότερα

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

Διαβάστε περισσότερα

Στοίβες με Δυναμική Δέσμευση Μνήμης

Στοίβες με Δυναμική Δέσμευση Μνήμης ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές

Διαβάστε περισσότερα

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

Διαβάστε περισσότερα

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

Διαβάστε περισσότερα

Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές)

Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 10-1 Περιεχόμενο Διάλεξης

Διαβάστε περισσότερα

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4)

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4) Κεφάλαιο 2.1-2.4: Εισαγωγή στην C (Διαλέξεις 3-4) Περιεχόμενα Εισαγωγή στην C: Σύνταξη και Σημασιολογία σχόλια μεταβλητές και σταθερές τύποι δεδομένων Μετά αυτές τις δυο διαλέξεις θα μπορείτε να γράψετε

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ψευδοτυχαίοι Αριθμοί Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Ψευδοτυχαίοι Αριθμοί Μια γεννήτρια ψευδοτυχαίων αριθμών είναι

Διαβάστε περισσότερα

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.1-2.4: Εισαγωγή στην C ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγή στην C: Σύνταξη και Σηµασιολογία σχόλια µεταβλητές και σταθερές τύποι δεδοµένων Μετά αυτές τις δυο διαλέξεις

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

Διαβάστε περισσότερα

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

Διαβάστε περισσότερα

Δομές δεδομένων (2) Αλγόριθμοι

Δομές δεδομένων (2) Αλγόριθμοι Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

Διαβάστε περισσότερα

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

Διαβάστε περισσότερα

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C 1 Εισαγωγή Ο προγραμματισμός είναι μια διαδικασία επίλυσης προβλημάτων με χρήση Η/Υ. Ένα πρόγραμμα είναι ένα σύνολο εντολών κάποιας γλώσσας προγραμματισμού,

Διαβάστε περισσότερα

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης Γλώσσες Προγραμματισμού Εργαστήριο 2ο Τύποι Δεδομένων - Είσοδος / Έξοδος Εργαστήριο 2ο Περίγραμμα Εργαστηριακής Άσκησης Εργαστήριο 2ο...1 Θεωρία εργαστηρίου...2 Τύποι δεδομένων...2 Η συνάρτηση printf()...3

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αλφαριθμητικά Αλφαριθμητικά (strings) Ένα αλφαριθμητικό είναι μια ακολουθία αλφαβητικών

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

Διαβάστε περισσότερα

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

Διαβάστε περισσότερα

Εντολές γλώσσας μηχανής

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης ΥΠΟΡΟΥΤΙΝΕΣ ΕΡΓΑΣΤΗΡΙΟ 6 Οι υπορουτίνες αποτελούν αυτόνομα τμήματα κώδικα που διεκπεραιώνουν μία συγκεκριμένη εργασία και μπορούμε να τα καλούμε

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

Διαβάστε περισσότερα

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java 1 ο & 2 o ΕΠΙΠΕΔΟ Αναλυτικό Πρόγραμμα Εξετάσεων Σελίδα: 1/20 Απρίλιος 2011 Γλωσσών Προγραμματισμού

Διαβάστε περισσότερα

Συλλογές, Στοίβες και Ουρές

Συλλογές, Στοίβες και Ουρές Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει

Διαβάστε περισσότερα

Χpήσιµες Βιβλιοθήκες της γλώσσας C

Χpήσιµες Βιβλιοθήκες της γλώσσας C Χpήσιµες Βιβλιοθήκες της γλώσσας C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συναρτήσεις Επεξεργασίας Συµβολοσειρών (strings) που Παρέχονται από τη Βιβλιοθήκη Συναρτήσεις Ελέγχου

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 3 ο Συνδεδεµένες Λίστες Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση ΟΑΤ λίστα Ακολουθιακή λίστα Συνδεδεµένη λίστα

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

Διαβάστε περισσότερα

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

Διαβάστε περισσότερα

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

Διαβάστε περισσότερα

Κεφάλαιο 3 Μέθοδοι αντιμετώπισης των Buffer Overflow Exploits

Κεφάλαιο 3 Μέθοδοι αντιμετώπισης των Buffer Overflow Exploits Κεφάλαιο 3 Μέθοδοι αντιμετώπισης των Buffer Overflow Exploits 31 Γενικά Στο A Μέρος της πτυχιακής παρουσιάσθηκε αναλυτικά το πώς μπορεί ένα κακόβουλος χρήστης(blackhat) να εκμεταλλευτεί(exploit) την αδυναμία(vulnerability)

Διαβάστε περισσότερα

Κεφάλαιο 2: Μεταφραστές

Κεφάλαιο 2: Μεταφραστές Κεφάλαιο 2: Μεταφραστές Αρχές Γλωσσών και Προγραμματισμού Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ ΥΛΟΠΟΙΗΣΗΣ ΜΕΤΑΦΡΑΣΤΗ (Implementation) L Y ΤΕΛΙΚΗ ΓΛΩΣΣΑ (Target) L T Αρχικό Πρόγραμμα

Διαβάστε περισσότερα

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 1. Structural Programming

ΑΣΚΗΣΗ 1. Structural Programming ΑΣΚΗΣΗ 1 Structural Programming Στην άσκηση αυτή θα υλοποιήσετε σε C ένα απλό πρόγραµµα Βάσης εδοµένων το οποίο θα µπορούσε να χρησιµοποιηθεί από την γραµµατεία ενός πανεπιστηµίου για την αποθήκευση και

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

Νήµατα. Πολύ σηµαντικό

Νήµατα. Πολύ σηµαντικό Νήµατα Πολύ σηµαντικό 1 Νήµατα (συν.) Σηµαντικό 2 Νήµατα vs ιεργασίες Νήµατα ιεργασίες Χώρος εδοµένων Περιγραφητές Αρχείων fork exit exec Σήµατα Κοινός. Ότι αλλάζει το 1 νήµα το βλέπουν/ αλλάζουν και τα

Διαβάστε περισσότερα

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

Διαβάστε περισσότερα

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων (union) τι και γιατί Συσκευές με μικρή μνήμη => ανάγκη εξοικονόμησης πόρων Παρατήρηση: αχρησιμοποίητη μνήμη. Έστω

Διαβάστε περισσότερα

Διάλεξη 17: Έλεγχος Λογισμικού

Διάλεξη 17: Έλεγχος Λογισμικού Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 17: Έλεγχος Λογισμικού (Κεφάλαιο 24.1-24.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 17-1 Μεγάλης

Διαβάστε περισσότερα

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

Διαβάστε περισσότερα

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 15-1 Περιεχόμενο

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

Διαβάστε περισσότερα

ΠαράδειγµαΠρογραµµατισµού

ΠαράδειγµαΠρογραµµατισµού Προγραµµατισµός Η/Υ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Μεθοδολογία Προγραµµατισµού Αφαιρετικότητα Ροή Ελέγχου/ εδοµένων Βιβλίο µαθήµατος: Chapter 1,, Sec. 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (Ι)

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

Συµβολοσειρές - Strings

Συµβολοσειρές - Strings Συµβολοσειρές - Strings 1 Συµβολοσειρέςστην C/C++ 2 Χαρακτήρες 'a', 'z', '0', Χαρακτήρες σαν int 'z' επίσης αναπαριστά την ακεραία τιµή του χαρακτήρα z Strings-Συµβολοσειρές Σειρές από χαρακτήρες σαν µια

Διαβάστε περισσότερα

Η αξία της έρευνας ευπαθειών στις δοκιμές παρείσδυσης. Δρ Πάτροκλος Αργυρούδης argp@census.gr / Ερευνητής Ασφάλειας Η/Υ

Η αξία της έρευνας ευπαθειών στις δοκιμές παρείσδυσης. Δρ Πάτροκλος Αργυρούδης argp@census.gr / Ερευνητής Ασφάλειας Η/Υ Η αξία της έρευνας ευπαθειών στις δοκιμές παρείσδυσης Δρ Πάτροκλος Αργυρούδης argp@census.gr / Ερευνητής Ασφάλειας Η/Υ Λίγα λόγια για τη Census Παροχή εξειδικευμένων υπηρεσιών ασφάλειας Η/Υ που απαιτούν

Διαβάστε περισσότερα

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

Διαβάστε περισσότερα

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Απλές Λίστες CS100, 2015-2016 1 / 10 Δομές δεδομένων Ορισμός:

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 12 Δομές (Structures) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αφαιρετικότητα Με τις συναρτήσεις επιτυγχάνουμε αφαιρετικότητα

Διαβάστε περισσότερα

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

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

Υλοποίηςη Αλγορίθμου με υπολογιςτή - Προγραμματιςμόσ Υλοποίηςη Αλγορίθμου με υπολογιςτή - Προγραμματιςμόσ Τι εύναι το πρόγραμμα; Ένα πρόγραμμα είναι η αναπαράςταςη ενόσ αλγορίθμου γραμμένη ςε γλώςςα κατανοητή για έναν υπολογιςτή Ανϊλυςη Προγραμματιςμόσ Γλώςςεσ

Διαβάστε περισσότερα

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης III Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

Διαβάστε περισσότερα

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές

Διαβάστε περισσότερα

Visual Basic Βασικές Έννοιες

Visual Basic Βασικές Έννοιες Visual Basi Βασικές Έννοιες «Είδα στον ύπνο µου ότι η ζωή είναι χαρά. Ξύπνησα και είδα ότι είναι χρέος. Αγωνίστηκα και είδα ότι τo χρέος είναι χαρά.» Ραµπριτανάθ Ταγκόρ Κουλλάς Χρίστος www.oullas.om oullas

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C Ιανουάριος 2013 Τι είναι ένα πρόγραμμα; Πρόγραμμα είναι μία σειρά από οδηγίες που δίνουμε στον υπολογιστή προκειμένου αυτός να κάνει κάποια συγκεκριμένη εργασία Πώς

Διαβάστε περισσότερα

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επιλογής Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επιλογής (Απόφασης) Εκτέλεση υπό συνθήκη IF THEN IF THEN ELSE IF THEN

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα