ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

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

Download "ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές"

Transcript

1 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό. Για το λόγο αυτό θα μάθουμε: o Να διαχειριζόμαστε την ηλεκτρονική μας αλληλογραφία μέσω της ιστοσελίδας διαχείρισης ηλεκτρονικής αλληλογραφίας webmail. o Να εγγραφούμε στο ηλεκτρονικό φόρουμ του μαθήματος. o Να συνδεόμαστε απομακρυσμένα στα μηχανήματα της σχολής μέσω του προγράμματος PuTTY. o Να εκτελέσουμε τις πρώτες μας εντολές σε περιβάλλον Unix. 1. Το περιβάλλον διαχείρισης ηλεκτρονικής αλληλογραφίας webmail Το webmail είναι ένα περιβάλλον διαχείρισης της ηλεκτρονικής μας αλληλογραφίας μέσω ιστοσελίδας για το που έχουμε από τη σχολή. Εδώ θα δούμε πως μπορούμε να στείλουμε ένα μήνυμα, να διαβάσουμε τα μηνύματα που λαμβάνουμε και να απαντήσουμε σε αυτά. Ενώ είμαστε συνδεδεμένοι στο Internet, ανοίγουμε ένα παράθυρο φυλλομετρητή (browser) και πληκτρολογούμε την διεύθυνση οπότε και εμφανίζεται στην ιστοσελίδα η προτροπή για εισαγωγή των στοιχείων μας. 1 Ευχαριστίες στους συνεργάτες του μαθήματος Δημήτρη Ψούνη, Στέφανο Σταμάτη, Νίκο Ποθητό, Μάνο Καρβούνη, Γιώργο Καστρίνη, Βασίλη Αναστασίου και στον Δρ. Ιωάννη Χαμόδρακα για τη συνεισφορά τους στη συγγραφή των εργαστηριακών φυλλαδίων του μαθήματος. σελ. 1 / 12

2 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές Πληκτρολογούμε το όνομα χρήστη sdixxyyyyy και τον κωδικό μας και πατάμε το κουμπί «Σύνδεση». Στο πάνω μέρος της οθόνης εμφανίζεται ένα σύνολο από εικονίδια, που αντιστοιχούν στις διαθέσιμες επιλογές για την διαχείριση της ηλεκτρονικής μας αλληλογραφίας. Στο κάτω μέρος της σελίδας υπάρχει μία λίστα με τα μηνύματα του ηλεκτρονικού μας ταχυδρομείου. Θα δούμε σε επόμενη ενότητα, πώς μπορούμε να τα διαχειριστούμε. Με την επιλογή «Σύνθεση» μπορούμε να δημιουργήσουμε ένα νέο μήνυμα. Πατώντας το κουμπί εμφανίζεται ένα νέο παράθυρο (βλέπε επόμενη οθόνη) στο οποίο συμπληρώνουμε το μήνυμά μας: o Προς: Συμπληρώνουμε την ηλεκτρονική διεύθυνση του αποδέκτη, ή τις ηλεκτρονικές διευθύνσεις χωρισμένες με κόμματα (εφόσον θέλουμε να το αποστείλουμε σε πολλαπλούς αποδέκτες). o Κοινοπ.: Συμπληρώνουμε τις ηλεκτρονικές διευθύνσεις αυτών στους οποίους κοινοποιείται το μήνυμα. o Κρυφ. Κοινοπ.: Συμπληρώνουμε τις ηλεκτρονικές διευθύνσεις αυτών που θέλουμε να λάβουν το μήνυμα χωρίς να εμφανίζονται οι διευθύνσεις τους σε αυτούς που λαμβάνουν το μήνυμα. o Θέμα: Συμπληρώνουμε το θέμα του μηνύματος. o Στο ορθογώνιο πλαίσιο συμπληρώνουμε το κείμενο του μηνύματος. o Συνημμένα: Για την επισύναψη στο μήνυμα κάποιου αρχείου, κάνουμε κλικ στο Browse και επιλέγουμε το αρχείο που θέλουμε. σελ. 2 / 12

3 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές Αφού συμπληρώσουμε όσα από τα παραπάνω στοιχεία μας ενδιαφέρει, πατάμε το κουμπί «Αποστολή». Ανάγνωση Εισερχόμενης Αλληλογραφίας Για να διαβάσουμε ένα εισερχόμενο μήνυμα, κάνουμε κλικ στο θέμα του, οπότε και εμφανίζεται το μήνυμα σε αναλυτική μορφή. Εδώ υπάρχουν οι διαθέσιμες επιλογές, από τις οποίες πιο ενδιαφέρουσες είναι οι εξής: o «Απάντηση» με την οποία απαντάμε στο τρέχον μήνυμα. Εμφανίζεται μία οθόνη αντίστοιχη με αυτή της σύνθεσης νέου μηνύματος, μόνο που τα στοιχεία του παραλήπτη, του θέματος και του κειμένου του μηνύματος εμφανίζονται αρχικοποιημένα με τα στοιχεία του τρέχοντος μηνύματος. o «Προώθηση» με την οποία προωθούμε το τρέχον μήνυμα σε άλλους παραλήπτες. Εμφανίζεται η οθόνη σύνθεσης μηνύματος, που επαναλαμβάνει το τρέχον μήνυμα, στην οποία πληκτρολογούμε τις ηλεκτρονικές διευθύνσεις των παραληπτών. o «Διαγραφή» με την οποία διαγράφουμε το τρέχον μήνυμα και επαναφερόμαστε στην αρχική σελίδα με την εισερχόμενη αλληλογραφία. Μόλις ολοκληρώσουμε τη διαχείριση της ηλεκτρονικής μας αλληλογραφίας, πατάμε το κουμπί «Αποσύνδεση» που βρίσκεται στο πάνω μέρος της οθόνης, ώστε να αποσυνδεθούμε από την εφαρμογή. Εναλλακτικά, για να διαχειρίζεστε την ηλεκτρονική αλληλογραφία σας, μπορείτε να εγκαταστήσετε στον προσωπικό σας υπολογιστή ένα πρόγραμμα-πελάτη ηλεκτρονικής αλληλογραφίας (mail client), όπως, για παράδειγμα, το Thunderbird ( Θα πρέπει στο πρόγραμμα αυτό να ορίσετε κάποιες παραμέτρους, ώστε να είναι σε θέση να διαχειρίζεται την ηλεκτρονική σας αλληλογραφία (παραλαβή και αποστολή μηνυμάτων). Αναλυτικές οδηγίες μπορείτε να βρείτε στον σύνδεσμο σελ. 3 / 12

4 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές 2. Εγγραφή στο Forum του μαθήματος Όπως ήδη έχετε ενημερωθεί, στο μάθημα υπάρχει ηλεκτρονικό φόρουμ συζήτησης, μέσω του οποίου θα μπορούμε να ανταλλάσσουμε απόψεις για θέματα προγραμματισμού, για τις εργασίες του μαθήματος κ.λ.π. Στην ενότητα αυτή θα δούμε πως μπορούμε να γραφτούμε στο φόρουμ του μαθήματος. Ανοίγουμε έναν browser και πληκτρολογούμε την ηλεκτρονική διεύθυνση: Στο μενού που εμφανίζεται πάνω αριστερά, επιλέγουμε «Εγγραφή» αφού διαβάσουμε τις σχετικές οδηγίες. Θα εμφανιστεί μία οθόνη με τους όρους χρήσης του φόρουμ, τους οποίους διαβάζουμε αναλυτικά: σελ. 4 / 12

5 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές Πατώντας το κουτί επιλογής ότι διαβάσαμε και συμφωνούμε τους όρους χρήσης του forum και κάνοντας κλικ στο κουμπί «Εγγραφή», εμφανίζεται η οθόνη εισαγωγής των στοιχείων μας: Υπενθυμίζουμε εδώ, ότι τα στοιχεία που μπορούμε να εισαγάγουμε για την εγγραφή μας στο φόρουμ είναι αυστηρά προκαθορισμένα: σελ. 5 / 12

6 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές o o o στο όνομα χρήστη εισάγουμε το sdixxyyyyy στον κωδικό εισάγουμε λεκτικό της επιλογής μας στην διεύθυνση (και στην επιβεβαίωση αντίστοιχα) εισάγουμε την ηλεκτρονική διεύθυνση που μας έχει δοθεί από το τμήμα Αφού συμπληρώσουμε τα στοιχεία, πατάμε το κουμπί στο τέλος της σελίδας «Ολοκλήρωση Εγγραφής», οπότε μεταφερόμαστε στην ακόλουθη σελίδα: Εδώ ενημερωνόμαστε από το σύστημα ότι ένα έχει αποσταλεί στον λογαριασμό μας, με οδηγίες για την ενεργοποίηση του λογαριασμού μας στο φόρουμ. Το που θα έχουμε λάβει εμπεριέχει έναν σύνδεσμο τον οποίο θα πρέπει να ακολουθήσουμε. Η ιστοσελίδα που εμφανίζεται μας πληροφορεί ότι η διαδικασία εγγραφής στο φόρουμ ολοκληρώθηκε με επιτυχία. σελ. 6 / 12

7 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές Πλέον στην πάνω αριστερά γωνία μπορούμε να εισαγάγουμε τα στοιχεία μας, ώστε να συνδεθούμε με το σύστημα πατώντας το κουμπί «Σύνδεση». Αν συνδεόμαστε από τον προσωπικό μας υπολογιστή (π.χ. στο σπίτι μας), είναι καλή ιδέα να επιλέξουμε και το κουτί «Αυτόματη Σύνδεση», έτσι ώστε την επόμενη φορά που θα συνδεθούμε να μην χρειάζεται να πληκτρολογήσουμε ξανά το όνομα και τον κωδικό μας. Αν όμως συνδεόμαστε από δημόσιο υπολογιστή (π.χ. στη σχολή), να μην επιλέξουμε το κουτί αυτό, γιατί τότε ο επόμενος χρήστης που θα δουλέψει στο συγκεκριμένο υπολογιστή ενδέχεται να συνδεθεί στο φόρουμ με τα δικά μας στοιχεία, κάτι που, κατά πάσα πιθανότητα, δεν θέλουμε. Αν πληκτρολογήσαμε σωστά τα στοιχεία μας, τότε εμφανίζεται το ακόλουθο επιβεβαιωτικό μήνυμα: Πλέον είμαστε έτοιμοι να χρησιμοποιήσουμε το φόρουμ του μαθήματος. Μία καλή αρχή για την κατανόηση της λειτουργίας του φόρουμ είναι το με αναλυτικές οδηγίες χρήσης για την λειτουργία του φόρουμ, του τρόπου με τον οποίο θα πρέπει να το χρησιμοποιήσετε, πως να αποστείλετε μηνύματα κ.λ.π. σελ. 7 / 12

8 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές 3. Η εφαρμογή PuTTY Εξοικείωση με το Unix Το PuTTY είναι πρόγραμμα απομακρυσμένης σύνδεσης, δηλαδή μέσω αυτού μπορούμε να συνδεόμαστε σε απομακρυσμένους υπολογιστές και να δουλεύουμε σαν να καθόμασταν μπροστά σε αυτούς! Έτσι, μπορούμε να συνδεθούμε και να δουλέψουμε στα συστήματα Linux της σχολής. Πατάμε στα Windows 2, Start->Run και στο παράθυρο που εμφανίζεται: Γράφουμε putty και πατάμε ΟΚ. H οθόνη που εμφανίζεται είναι η ακόλουθη: 2 Μπορούμε να χρησιμοποιήσουμε το PuTTY και από τον υπολογιστή του σπιτιού μας, ώστε να συνδεόμαστε στους υπολογιστές της σχολής μέσω Internet. Θα πρέπει να κατεβάσουμε το εκτελέσιμο αρχείο putty.exe από την ηλεκτρονική διεύθυνση: σελ. 8 / 12

9 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές Το σημαντικό κουτάκι είναι το «Host Name» στο οποίο συμπληρώνουμε το όνομα του υπολογιστή που θέλουμε να συνδεθούμε. Τα μηχανήματα που μπορούμε να συνδεθούμε έχουν ένα όνομα ακολουθούμενο από το.di.uoa.gr (το οποίο σημαίνει ότι βρίσκονται στη σχολή μας). Για τις ανάγκες του μαθήματος, μία λίστα με τους υπολογιστές που μπορούμε να χρησιμοποιήσουμε είναι η ακόλουθη: linux01.di.uoa.gr linux02.di.uoa.gr linux03.di.uoa.gr linux28.di.uoa.gr linux29.di.uoa.gr Επιλέγουμε λοιπόν ένα από αυτά (π.χ. linux08.di.uoa.gr) και πατάμε το Open. Γίνεται προτροπή να εισαγάγουμε το όνομα χρήστη μας (login as) όπου και πληκτρολογούμε το sdixxyyyyy. Πατάμε Enter και βλέπουμε την προτροπή για εισαγωγή του κωδικού μας. Για λόγους ασφαλείας, όσο πληκτρολογούμε τον κωδικό μας, δεν εμφανίζεται κάτι στην οθόνη, οπότε μόλις το πληκτρολογήσουμε πατάμε Enter. Αν όλα έχουν πάει καλά τότε θα δούμε στην οθόνη μας κάτι σαν το εξής: σελ. 9 / 12

10 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές που σημαίνει ότι είμαστε στον κατάλογο που έχει τα αρχεία μας. 4. Περιήγηση στο περιβάλλον του Unix Το λειτουργικό σύστημα είναι τώρα έτοιμο να αλληλεπιδράσει μαζί μας, περιμένοντας τις εντολές μας για να δράσει αναλόγως. Για το λόγο αυτό, πληκτρολογούμε στην γραμμή εντολών: ls Βλέπουμε τα περιεχόμενα του καταλόγου που στον οποίο βρισκόμαστε. Για να δούμε εκτενέστερες πληροφορίες για αυτά πληκτρολογούμε: ls l Το αποτέλεσμα που θα δούμε στην οθόνη μας θα είναι κάτι σαν το εξής: Ας δούμε λίγο πιο αναλυτικά τι σημαίνουν αυτά που βλέπουμε στην οθόνη μας: o Το πρώτο γράμμα (d ή -) υποδηλώνει αν το αντικείμενο είναι κατάλογος ή αρχείο αντίστοιχα. o Τα επόμενα 9 γράμματα ορίζουν τα δικαιώματα χρήσης του καταλόγου ή του αρχείου (θα επανέλθουμε σε αυτό σε επόμενο εργαστήριο). o Ακολουθεί η πληροφορία του ιδιοκτήτη του αρχείου και η ομάδα στην οποία ανήκει. o Το μέγεθος του. o Η ημερομηνία και ώρα τελευταίας τροποποίησης. o Το όνομα του αρχείου ή του καταλόγου αντίστοιχα. σελ. 10 / 12

11 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές Για να εισέλθουμε σε έναν κατάλογο πληκτρολογούμε: cd ονομα_καταλόγου Ας μπούμε τώρα στον κατάλογο Mail και να ελέγξουμε τα περιεχόμενα του. Πληκτρολογούμε: cd Mail ls -l Για να επιστρέψουμε στον αρχικό κατάλογό μας, γράφουμε: cd.. Στο επόμενο εργαστήριο θα μάθουμε ένα υποσύνολο εντολών του Unix, που θα μας φανούν χρήσιμες για να μπορούμε να διαχειριζόμαστε τα αρχεία μας και να εκτελούμε ενέργειες επί αυτών, ώστε να είναι δυνατό να γράψουμε τα πρώτα μας προγράμματα σε γλώσσα C σε περιβάλλον Unix. 5. Ο κειμενογράφος pico (ή nano) Εδώ θα φτιάξουμε ένα αρχείο κειμένου, θα γράψουμε κάτι σε αυτό και θα το αποθηκεύσουμε στον λογαριασμό μας. Το πρόγραμμα που θα χρησιμοποιήσουμε είναι ο κειμενογράφος pico. Πληκτρολογούμε στο prompt pico Ανοίγει το περιβάλλον του pico, το οποίο φαίνεται στην ακόλουθη οθόνη: σελ. 11 / 12

12 Εργαστήριο 1: Εισαγωγή, Χρήσιμες Εφαρμογές Εδώ μπορούμε να πληκτρολογήσουμε κάποιο κείμενο και να το επεξεργαστούμε. Στο κάτω μέρος της οθόνης φαίνονται οι διαθέσιμες επιλογές που έχουμε, όπως για παράδειγμα να σώσουμε το κείμενο, να αναζητήσουμε σε αυτό, να βγούμε από το περιβάλλον του pico κ.λ.π. Οι πιο ενδιαφέρουσες επιλογές είναι οι εξής: Ctrl+O Ctrl+X Ctrl+Υ Ctrl+V Αποθήκευση Κειμένου. Εμφανίζει μία προτροπή για εισαγωγή του ονόματος του αρχείου Έξοδος. Αν δεν έχουν αποθηκευτεί οι τελευταίες αλλαγές, τότε εμφανίζει μήνυμα για την αποθήκευση αυτών. Μετάβαση στην προηγούμενη σελίδα Μετάβαση στην επόμενη σελίδα Για παράδειγμα ας ακολουθήσουμε την διαδικασία για την αποθήκευση ενός μικρού κειμένου σε ένα αρχείο. 1. Πληκτρολογούμε ένα σύντομο κείμενο 2. Πατάμε Ctrl+O. Μας εμφανίζεται στο κάτω μέρος της οθόνης η προτροπή να δώσουμε ένα όνομα στο αρχείο που δημιουργήσαμε. 3. Πληκτρολογούμε ένα όνομα (π.χ. file.txt) και πατάμε Enter. 4. Πατάμε Ctrl+X για να βγούμε από το περιβάλλον του pico. Για να τυπώσουμε στην οθόνη τα περιεχόμενα του αρχείου που δημιουργήσαμε, πληκτρολογούμε: cat file.txt σελ. 12 / 12

13 Εργαστήριο 2: Unix Tutorial ΕΡΓΑΣΤΗΡΙΟ 2: Unix Tutorial Σκοπός του εργαστηρίου αυτού είναι να έλθουμε σε επαφή με βασικές εντολές του Unix και την μεταγλώττιση προγραμμάτων C (με χρήση του μεταγλωττιστή gcc). Για να οργανώσουμε τα αρχεία μας, τα τοποθετούμε σε καταλόγους. Κάθε κατάλογος μπορεί να περιέχει είτε αρχεία, είτε άλλους καταλόγους που τους λέμε και υποκαταλόγους του αρχικού. Όλα ξεκινούν από έναν αρχικό κατάλογο που λέγεται και ρίζα /. Για παράδειγμα, η δόμηση του συστήματος αρχείων στο μηχάνημα που έχετε συνδεθεί είναι ως εξής: / usr home etc... appl users... takis psounis std Όταν εργαζόμαστε σε ένα σύστημα, βρισκόμαστε σε έναν κατάλογο που θεωρείται ο τρέχων κατάλογος. Για παράδειγμα όταν συνδεόμαστε σε ένα μηχάνημα μέσω του Putty, αυτόματα βρισκόμαστε στον αρχικό μας κατάλογο: /home/users/stdxxyyy. Για να αναφερθούμε τώρα σε κάποιον άλλο κατάλογο έχουμε δύο τρόπους: o o Είτε με απόλυτο μονοπάτι, ξεκινώντας από την ρίζα, για παράδειγμα: /home/users/std06342 Είτε με σχετικό μονοπάτι, σε σχέση με τον τρέχοντα κατάλογο. Για παράδειγμα, αν ο τρέχων κατάλογος είναι ο /home, τότε σχετικό μονοπάτι σε αυτόν είναι το users/std Επίσης σε σχέση με τον τρέχοντα κατάλογο, υπάρχουν και οι ειδικοί κατάλογοι:.. : Είναι συνώνυμο του γονικού καταλόγου (Για παράδειγμα, αν τρέχων κατάλογος είναι ο /home/users/std06342, τότε με.. αναφερόμαστε στον κατάλογο /home/users).. : Είναι συνώνυμο του τρέχοντος καταλόγου Εδώ να τονίσουμε ότι τα ονόματα που χρησιμοποιούνται στους καταλόγους και στα αρχεία είναι casesensitive, δηλαδή το όνομα καταλόγου «Psounis» είναι διαφορετικό από το όνομα καταλόγου «psounis». Αυτό είναι ένα γενικότερο χαρακτηριστικό του Unix, βέβαια. Όλα τα ονόματα που χρησιμοποιούμε, όχι μόνο για καταλόγους και αρχεία, αλλά και για εντολές του λειτουργικού ή εντολές μέσα σε διάφορα βοηθητικά προγράμματα (π.χ. κειμενογράφους) είναι case-sensitive. σελ. 1 / 6

14 Εργαστήριο 2: Unix Tutorial Θα μελετήσουμε τώρα ένα πακέτο εντολών του Unix, που θα μας φανεί χρήσιμο για να διαχειριστούμε τα αρχεία μας, να γράψουμε προγράμματα C, να τα μεταγλωττίσουμε και να τα εκτελέσουμε. Για τον λόγο αυτό θα διαβάζουμε την σύνταξη των εντολών 1 και θα τις χρησιμοποιούμε αναλόγως με το ζητούμενο στόχο. Ακολουθήστε βήμα-βήμα το παρακάτω σενάριο: 1. Εμφανίστε τα περιεχόμενα του καταλόγου /usr/include. Η εντολή ls εμφανίζει τα περιεχόμενα καταλόγων. Σύνταξη: o ls : Εμφανίζει τα περιεχόμενα του τρέχοντος καταλόγου o ls ονομα_καταλόγου: Εμφανίζει τα περιεχόμενα του καταλόγου με όνομα ονομα_καταλόγου, που έχει δοθεί είτε απόλυτα (από root) είτε σχετικά (από τρέχοντα κατάλογο) Χρήσιμες επιλογές: o a : Εμφανίζει τα κρυφά αρχεία (αρχεία που αρχίζουν από τελεία) o l : Εμφανίζει εκτεταμένες πληροφορίες για τα περιεχόμενα του καταλόγου (δικαιώματα, μέγεθος, ημερομηνία τροποποίησης κ.λ.π.) Χρήση μεταχαρακτήρων (ταιριάζουν τμήμα ονόματος αρχείου ή καταλόγου με τα διαθέσιμα) o * : Ταιριάζει με κανέναν ή περισσότερους χαρακτήρες o? : Ταιριάζει με ακριβώς έναν χαρακτήρα Παραδείγματα χρήσης μεταχαρακτήρων: o ls *t : Εμφάνισε τα αρχεία ή περιεχόμενα καταλόγων που το όνομα τους τελειώνει σε t. o ls??z8 : Εμφάνισε τα αρχεία ή περιεχόμενα καταλόγων που το όνομά τους έχει 4 γράμματα και τα δύο τελευταία είναι z8 2. Εμφανίστε το πλήρες όνομα του τρέχοντος καταλόγου. Η εντολή pwd εμφανίζει το πλήρες όνομα του τρέχοντος καταλόγου. 3. Δημιουργήστε κάτω από τον τρέχοντα κατάλογο ένα νέο κατάλογο με όνομα mywork. Η εντολή mkdir δημιουργεί τον κατάλογο που της δίνουμε σαν παράμετρο. Συνταξη: mkdir ονομα_καταλόγου 1 Ένα ιδιαίτερα χρήσιμο κείμενο, με περαιτέρω τρόπους σύνταξης εντολών, πέρα από αυτές που θα αξιοποιήσουμε σήμερα, μπορούν να βρεθούν εδώ: σελ. 2 / 6

15 Εργαστήριο 2: Unix Tutorial 4. Μεταβείτε σε αυτόν τον νέο κατάλογο. Η εντολή cd χρησιμοποιείται για την μετάβαση σε έναν κατάλογο. Σύνταξη: o cd cat_name: Μεταβαίνει στον κατάλογο cat_name κάτω από τον τρέχοντα κατάλογο o cd cat_path: Μεταβαίνει στον κατάλογο που ορίζεται από το απόλυτο ή σχετικό μονοπάτι cat_path Ειδική χρήση: o cd : Μεταβαίνει στον αρχικό μας κατάλογο 5. Αντιγράψτε στον κατάλογο αυτό το πηγαίο αρχείο ~iphw/samples/mysin.c Η εντολή cp χρησιμοποιείται για την αντιγραφή αρχείων ή καταλόγων Σύνταξη: cp όνομα νέο_όνομα cp όνομα κατάλογος_προορισμού Επιλογές: o i : Εμφανίζει ένα μήνυμα ελέγχου, όταν το αρχείο υπάρχει ήδη στον προορισμό και πρέπει να αντικατασταθεί. o R : Αντιγράφει τον κατάλογο όνομα μαζί με όλα τα περιεχόμενα του (αρχεία, υποκαταλόγους) σε κατάλογο με όνομα νέο_ονομα. 6. Δημιουργήστε το εκτελέσιμο αρχείο mysin από το πηγαίο αρχείο που μόλις αντιγράψατε. Ο μεταγλωττιστής gcc χρησιμοποιείται για τη μεταγλώττιση πηγαίων αρχείων σε εκτελέσιμα. Σύνταξη: gcc o εκτελέσιμο πηγαίο_αρχείο Επιλογές: o lm : Ενσωμάτωση της μαθηματικής βιβλιοθήκης 7. Τρέξτε το εκτελέσιμο αυτό. 8. Αντιγράψτε στον τρέχοντα κατάλογο το πηγαίο αρχείο ~iphw/samples/mymain.c 9. Αντιγράψτε στον τρέχοντα κατάλογο το αντικειμενικό αρχείο ~iphw/samples/myfunct.o 10. Μεταγλωττίστε το πηγαίο αρχείο mymain.c στο αντίστοιχο αντικειμενικό αρχείο. σελ. 3 / 6

16 Εργαστήριο 2: Unix Tutorial Ο μεταγλωττιστής gcc χρησιμοποιείται για την μεταγλώττιση πηγαίων αρχείων σε αντικειμενικά Σύνταξη: gcc c πηγαίο_αρχείο.c : Παράγει το αντικειμενικό αρχείο με όνομα πηγαίο_αρχειο.o 11. Συνδέστε το αντικειμενικό αρχείο που κατασκευάσατε και το αντικειμενικό αρχείο myfunct.o δημιουργώντας το εκτελέσιμο αρχείο myprog. Ο μεταγλωττιστής gcc χρησιμοποιείται για την σύνδεση αντικειμενικών αρχείων σε ένα εκτελέσιμο Σύνταξη: gcc o εκτελέσιμο αντικ_αρχείο1 αντικ_αρχείο Εκτελέστε το myprog και ακολουθήστε τις οδηγίες που θα εκτυπωθούν. 13. Διαγράψτε όλα τα αρχεία που δημιουργήσατε καθώς και τον κατάλογο mywork. Η εντολή rm χρησιμοποιείται για τη διαγραφή αρχείων ή καταλόγων Σύνταξη για διαγραφή αρχείων: rm όνομα_αρχείου (χρήση και μεταχαρακτήρων) Σύνταξη για διαγραφή καταλόγων (μαζί με όλα τα περιεχόμενά τους): rm r ονομα_καταλόγου Επιλογές: o i : Εμφανίζει μήνυμα επιβεβαίωσης διαγραφής του αρχείου ή του καταλόγου. 14. Αντιγράψτε στον τρέχοντα κατάλογο το αρχείο stdio.h από τον κατάλογο /usr/include 15. Μετονομάστε το αρχείο που αντιγράψατε σε Mystdio.h Η εντολή mv χρησιμοποιείται για τη μετονομασία ή μετακίνηση αρχείων ή καταλόγων Σύνταξη: mv αρχικό_ονομα τελικό_όνομα mv αρχικό_όνομα καταλογος_προορισμού Επιλογές: o i : Εμφανίζει μήνυμα ελέγχου εφόσον υπάρχει ήδη το αρχείο στον προορισμό και πρέπει να αντικατασταθεί. 16. Εμφανίστε στην οθόνη τα περιεχόμενα του αρχείου αυτού. σελ. 4 / 6

17 Εργαστήριο 2: Unix Tutorial Η εντολή cat χρησιμοποιείται για την εμφάνιση των περιεχομένων αρχείων Σύνταξη: cat όνομα_αρχείου Επιλογές: o n : Εμφανίζει αρίθμηση στις γραμμές του αρχείου 17. Δημιουργήστε στον τρέχοντα κατάλογο ένα κενό αρχείο με όνομα.my_file (προσέξτε την τελεία στην αρχή του ονόματος). Η εντολή touch χρησιμοποιείται για τη δημιουργία κενών αρχείων. Σύνταξη: touch όνομα_αρχείου 18. Εμφανίστε τα δικαιώματα προστασίας του αρχείου αυτού και ό,τι άλλες χρήσιμες πληροφορίες μας δίνει το λειτουργικό σύστημα για αυτό. 19. Αλλάξτε τα δικαιώματα προστασίας έτσι ώστε εσείς (ο ιδιοκτήτης του) να έχει όλα τα δικαιώματα προστασίας (ανάγνωσης, εγγραφής και εκτέλεσης), τα μέλη της ομάδας στην οποία ανήκει το αρχείο να έχουν δικαιώματα ανάγνωσης και εκτέλεσης και οι υπόλοιποι να έχουν μόνο δικαίωμα ανάγνωσης. Η εντολή chmod χρησιμοποιείται για τον καθορισμό των δικαιωμάτων προστασίας ενός αρχείου Σύνταξη: chmod XYZ όνομα_αρχείου όπου X, Y, Z είναι οκταδικοί αριθμοί από το 0 έως το 7 που καθορίζουν τα δικαιώματα του ιδιοκτήτη, της ομάδας και των υπολοίπων αντίστοιχα. Τα δικαιώματα προκύπτουν αν γράψουμε τον αριθμό σε δυαδική μορφή, όπου το 1 ο bit καθορίζει το δικαίωμα ανάγνωσης, το 2 ο bit το δικαίωμα εγγραφής και το 3 ο bit το δικαίωμα εκτέλεσης. 20. Εμφανίστε πάλι τα δικαιώματα προστασίας του αρχείου.my_file (και τις άλλες πληροφορίες). 21. Εμφανίστε όλα τα αρχεία του τρέχοντος καταλόγου, μαζί με τα δικαιώματα προστασίας (και τις άλλες πληροφορίες), μη συμπεριλαμβανομένων των αρχείων που το όνομά τους αρχίζει από τελεία. 22. Το ίδιο με το προηγούμενο, αλλά να συμπεριληφθούν και τα αρχεία που το όνομά τους αρχίζει από τελεία. 23. Μέσω της εντολής man ενημερωθείτε σχετικά με τις δυνατότητες της εντολής grep. σελ. 5 / 6

18 Εργαστήριο 2: Unix Tutorial Η εντολή man εμφανίζει πληροφορίες για την σύνταξη εντολών. Σύνταξη: man όνομα_εντολής 24. Χρησιμοποιείστε την εντολή grep για να βρείτε μέσα στο αρχείο /usr/include/stdlib.h τις γραμμές που περιλαμβάνουν το κείμενο size. 25. Επαναλάβετε την προηγούμενη εντολή αλλά να κάνετε ανακατεύθυνση της εξόδου της στο αρχείο grepout.txt Η ανακατεύθυνση εξόδου σε αρχείο γίνεται με την ακόλουθη σύνταξη: Εντολή > ονομα_αρχείου 26. Συνδυάστε με κάποιον τρόπο τις εντολές ls και grep για να βρείτε στον τρέχοντα κατάλογο αρχεία στα οποία ο ιδιοκτήτης έχει δικαιώματα ανάγνωσης και εγγραφής, αλλά όχι εκτέλεσης και όλοι οι υπόλοιποι δεν έχουν κανένα δικαίωμα. Η σωλήνωση της εξόδου ενός προγράμματος στην είσοδο ενός άλλου, γίνεται με την ακόλουθη σύνταξη: Πρόγραμμα Πρόγραμμα 27. Αντιγράψτε στον τρέχοντα κατάλογο το πηγαίο αρχείο ~iphw/samples/capitalize.c δημιουργήστε το αντίστοιχο εκτελέσιμο και τρέξτε το με ανακατεύθυνση της εισόδου από το ίδιο το πηγαίο αρχείο capitalize.c στέλνοντας την έξοδο (πάλι με ανακατεύθυνση) στο αρχείο CAPITALIZE.c Η ανακατεύθυνση εισόδου και εξόδου γίνεται με την ακόλουθη σύνταξη: Εντολή < Αρχείο_για_είσοδο > Αρχείο_για_έξοδο 28. Δοκιμάστε να μεταγλωττίσετε το αρχείο CAPITALIZE.c. Μην ανησυχείτε όμως αν δεν μπορεί να μεταγλωττιστεί (γιατί άραγε;) σελ. 6 / 6

19 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον Linux, και το περιβάλλον ανάπτυξης Dev-C++ για Windows. Επίσης, θα χρησιμοποιήσουμε και το πρόγραμμα WinSCP για να μεταφέρουμε αρχεία από υπολογιστές Windows στον λογαριασμό μας στην σχολή (και αντίστροφα). Τέλος, θα ασχοληθούμε με το πρώτο πρόγραμμα μας σε γλώσσα C, το οποίο θα μεταγλωττίσουμε, θα εκτελέσουμε και θα πειραματιστούμε με την έξοδό του. 1. Το περιβάλλον προγραμματισμού Dev-C++ Στους λογαριασμούς των Windows συστημάτων της σχολής είναι διαθέσιμο το IDE Dev-C++, ένα γραφικό περιβάλλον ανάπτυξης κώδικα που απλοποιεί τη διαδικασία συγγραφής και μεταγλώττισης κώδικα ( αποκρύπτοντάς μας την ύπαρξη και λειτουργία του gcc μεταγλωττιστή). Μπορούμε να το εγκαταστήσουμε στον προσωπικό μας υπολογιστή, κατεβάζοντας την τελευταία έκδοση από εδώ: Γράφουμε Dev-C++ και εκτελούμε στην έναρξη ή επιλέγουμε το σχετικό εικονίδιο από το μενού προγραμμάτων για να ανοίξουμε το περιβάλλον προγραμματισμού Dev-C++. Για να δημιουργήσουμε ένα νέο αρχείο κώδικα, κάνουμε κλικ στο File -> New -> Source File, ή στο εικονίδιο. Στο κέντρο της οθόνης δημιουργείται ένα κενό αρχείο με όνομα καρτέλας Untitled1 στο οποίο μπορούμε να πληκτρολογήσουμε τον κώδικα του πρώτου προγράμματός μας! Ας γράψουμε εδώ λοιπόν, το πρώτο μας πρόγραμμα C: /* File: helloworld.c */ #include <stdio.h> main() { } printf("hello world\n"); σελ. 1 / 10

20 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Αφού ολοκληρώσουμε την πληκτρολόγηση, πρέπει να αποθηκεύσουμε το αρχείο κώδικα στον δίσκο μας (το αστέρι στα αριστερά της καρτέλας υποδηλώνει πως έχουν γίνει αλλαγές που δεν έχουν σωθεί). Για να το αποθηκεύσουμε, επιλέγουμε File -> Save ή το κουμπί, ώστε να ανοίξει το σχετικό παράθυρο διαλόγου. Εκεί, πρώτα πηγαίνουμε στη λίστα Save as type και επιλέγουμε C source files (*.c). Έπειτα, πλοηγούμαστε στη τοποθεσία (π.χ. Επιφάνεια Εργασίας) όπου μας ενδιαφέρει να αποθηκεύσουμε το αρχείο. Τέλος, δίνουμε ένα κατάλληλο όνομα στο αρχείο (π.χ. helloworld.c) και αποθηκεύουμε. Για να μεταγλωττίσουμε το πρόγραμμα μας, επιλέγουμε Execute -> Compile ή πατάμε το F9, ή πατάμε το εικονίδιο. Αν το πρόγραμμα μας έχει συντακτικά λάθη ή επισημάνσεις, τότε στο κάτω μέρος της οθόνης θα εμφανίζονται σχετικά μηνύματα του μεταγλωττιστή, τα οποία περιγράφουν τη φύση του προβλήματος και μας καθοδηγούν για την επίλυσή του. Αφού εκτελέσουμε το μεταγλωττιστή, τότε θα εμφανιστούν μηνύματα όπως στην ακόλουθη εικόνα. Το πλαίσιο μας πληροφορεί για την ύπαρξη συντακτικού λάθους στην γραμμή 6, πριν το δεξί άγκιστρο. Όντως, πριν από αυτό το άγκιστρο έχουμε ξεχάσει να πληκτρολογήσουμε το ερωτηματικό για να δηλώσουμε το τέλος της εντολής. Υπάρχει περίπτωση, όπως με παλαιότερη έκδοση του λογισμικού, να δούμε πιο γενικά μηνύματα λαθών, όπως απλά Syntax error before } token. Αμέσως λοιπόν μετά από μία επιτυχή μεταγλώττιση, για να εκτελέσουμε το πρόγραμμά μας, επιλέγουμε Execute -> Run. Τότε, ανοίγει ένα παράθυρο του κελύφους εντολών των Windows (cmd.exe) στο οποίο περιέχονται οι εκτυπώσεις εκτέλεσης του προγράμματός μας. Αφού το πρόγραμμα ολοκληρώνεται με την εκτέλεση του μηνύματος, υπό κανονικές συνθήκες το παράθυρο σελ. 2 / 10

21 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C θα έκλεινε αυτόματα και άμεσα. Το Dev-C++ παρέχει τη δυνατότητα εισαγωγής παύσης μετά το τερματισμό του προγράμματος, μέχρι να πατηθεί οποιοδήποτε πλήκτρο. Το Dev-C++ παρέχει πληθώρα διευκολύνσεων, όπως τη δημιουργία project για τη διαχείριση πολλαπλών αρχείων πηγαίου κώδικα, οπτική αποσφαλμάτωση του προγράμματός μας, προτάσεις αυτόματης συμπλήρωσης κλπ, τα οποία θα δούμε σε επόμενα εργαστήρια. σελ. 3 / 10

22 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C 2. Η εφαρμογή WinSCP για μεταφορά αρχείων Θα χρησιμοποιήσουμε την εφαρμογή WinSCP για την μεταφορά αρχείων από υπολογιστές Windows στους υπολογιστές των εργαστηρίων UNIX της σχολής. Με τον τρόπο αυτό, μπορούμε να χρησιμοποιούμε τον υπολογιστή μας, ή τους υπολογιστές του εργαστηρίου Windows για να γράφουμε τα προγράμματά μας, να μεταφέρουμε τα αρχεία μας στο Unix και τελικά να ελέγχουμε την ορθή λειτουργία τους με χρήση του μεταγλωττιστή gcc, που είναι και η επίσημη πλατφόρμα εξέτασης του μαθήματος. Για να εκτελέσουμε το WinSCP, κάνουμε στα εργαστήρια της σχολής Start->Run και πληκτρολογούμε WinSCP. Από το σπίτι μας, μπορούμε να κατεβάσουμε το πρόγραμμα από την διεύθυνση: Εκτελώντας το πρόγραμμα βλέπουμε την ακόλουθη οθόνη: όπου πληκτρολογούμε τα στοιχεία σύνδεσης μας δηλαδή: Τον υπολογιστή που θα συνδεθούμε ( Το όνομα χρήστη Τον κωδικό μας Και πατάμε το πλήκτρο Login οπότε και εμφανίζεται η ακόλουθη οθόνη: σελ. 4 / 10

23 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο αριστερό μέρος της οθόνης φαίνονται τα περιεχόμενα του τοπικού καταλόγου μας και στο δεξί μέρος της οθόνης φαίνονται τα περιεχόμενα του λογαριασμού μας της σχολής. Έτσι, για να μεταφέρουμε αρχεία από τον υπολογιστή μας, στον λογαριασμό της σχολής, επιλέγουμε πρώτα τα αρχεία από το αριστερό μέρος της οθόνης και έπειτα πατάμε το πλήκτρο Copy ή πατάμε το πλήκτρο για συντόμευση F5. Εμφανίζεται τότε το ακόλουθο μήνυμα: Με αυτό το μήνυμα ζητείται η επιβεβαίωση μας για την μεταφορά του αρχείου από τον τοπικό κατάλογο στον χώρο του λογαριασμού μας της σχολής. Αν πατήσουμε Copy το αρχείο μεταφέρεται στον λογαριασμό μας. σελ. 5 / 10

24 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Βεβαίως είναι εφικτό να ακολουθήσουμε και την αντίστροφη διαδικασία, για να αντιγράψουμε αρχεία από τον λογαριασμό μας στην σχολή, στον τοπικό δίσκο. Για να το κάνουμε αυτό επιλέγουμε το αρχείο που μας ενδιαφέρει από το δεξί τμήμα της οθόνης και πατάμε το κουμπί «Copy». Και πατάμε «Copy» στο επιβεβαιωτικό παράθυρο που εμφανίζεται: Το WinSCP μας παρέχει και άλλες πρόσθετες δυνατότητες που φαίνονται στο κάτω μέρος της οθόνης: όπως μετονομασία των αρχειων, δημιουργία καταλόγων, διαγραφή αρχείων και καταλόγων κ.λ.π. Όταν ολοκληρώσουμε τις εργασίες μας, πατάμε το κουμπι «Disconnect» για να αποσυνδεθουμε. σελ. 6 / 10

25 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C 3. Μεταγλώττιση προγραμμάτων σε περιβάλλον Unix Κάνουμε login σε περιβάλλον Unix, όπου θα πρέπει να υπάρχει το αρχείο helloworld.c που μόλις μεταφέραμε χρησιμοποιώντας το πρόγραμμα WinSCP. 1. Μεταγλωττίστε το αρχείο helloworld.c με χρήση του gcc, ώστε να παραγάγετε το εκτελέσιμο αρχείο helloworld. 2. Εκτελέστε το πρόγραμμα helloworld. Ας ρίξουμε τώρα μια πιο εκτενή ματιά στο πρόγραμμα helloworld.c. /* File: helloworld.c */ #include <stdio.h> main() { printf("hello world\n"); } Επεξηγήσεις: Η συνάρτηση printf() εμφανίζει στην οθόνη την συμβολοσειρά που δέχεται σαν όρισμα. Το \n είναι ο χαρακτήρας αλλαγής γραμμής. 4. Τροποποιείστε την συμβολοσειρά που δέχεται η printf() σαν όρισμα, ώστε η έξοδος που εμφανίζεται στην οθόνη να είναι: Hello world 5. Χρησιμοποιείστε μία δεύτερη printf() για να έχετε την εξής έξοδο στο πρόγραμμά σας: Hello world at d.i.t. σελ. 7 / 10

26 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΠΑΡΑΡΤΗΜΑ: Αποσφαλμάτωση προγραμμάτων (Πράξη 1 η ) Όταν καλούμαστε να δημιουργήσουμε ένα πρόγραμμα για τη λύση ενός προβλήματος είναι σχεδόν απίθανο να είναι σωστό εξ αρχής. Οποιοσδήποτε, όσο έμπειρος κι αν είναι, θα έχει στο πρόγραμμά του λάθη, τα ονομαζόμενα bugs, τα οποία μπορεί να μην επιτρέπουν τη μεταγλώττιση του προγράμματος ή/και να το κάνουν να μη δουλεύει με τον επιθυμητό τρόπο. Στο σημερινό εργαστήριο θα εστιάσουμε στα συντακτικά λάθη, τα οποία αποτελούν μία μορφή τέτοιων σφαλμάτων, και θα δούμε χρήσιμες τεχνικές για την εύρεση και τη διόρθωσή τους. Συντακτικά λάθη Ένα συντακτικό λάθος είναι, όπως υπαγορεύει και το όνομά του, ένα λάθος στη σύνταξη του προγράμματός μας. Για να καταλάβει ο μεταγλωττιστής τα προγράμματά μας πρέπει να είναι γραμμένα με έναν πολύ αυστηρό τρόπο. Οποιαδήποτε παράλειψη σε αυτόν τον αυστηρό τρόπο σύνταξης θα έχει ως αποτέλεσμα την αποτυχία της μεταγλώττισης. Συχνά συντακτικά λάθη είναι η παράλειψη κάποιας παρένθεσης, το μη κλείσιμο κάποιας αγκύλης, η χρήση μιας μεταβλητής που δεν έχουμε δηλώσει, κλπ. Ας δούμε ένα παράδειγμα: #include <stdio.h> main() { printf( Hello world!\n); } Αν δώσουμε τον παραπάνω κώδικα προς μεταγλώττιση θα πάρουμε το εξής σφάλμα 4 missing terminating " character 5 syntax error before '}' token Αυτό μας πληροφορεί ότι υπάρχει ένα σφάλμα στη γραμμή 4, το οποίο είναι ότι λείπει ένας χαρακτήρας, καθώς και ότι υπάρχει ένα συντακτικό λάθος στη γραμμή 5 πριν το }. Ας δούμε πρώτα το σφάλμα στη γραμμή 4. Με βάση αυτό, έχουμε παραλείψει ένα χαρακτήρα. Όντως, αν το κοιτάξουμε καλά, λείπει το κλείσιμο του στη συμβολοσειρά Hello world!\n. Φτιάχνοντας αυτό, αυτόματα φεύγει και το δεύτερο λάθος, το οποίο φανταστήκαμε ότι σχετίζεται με το πρώτο, αφού πριν το } στη γραμμή 5 είναι η γραμμή 4, στην οποία ήδη έχουμε υπόψη μας ένα σφάλμα. Πειραματιστείτε με το παραπάνω πρόγραμμα για να δείτε τα διάφορα συντακτικά λάθη που μπορεί να δημιουργηθούν. Αφαιρέστε το τελικό ερωτηματικό στη συνάρτηση printf, αφαιρέστε το f απ' το printf, γράψτε λάθος το όνομα της main, ξεχάστε το # στο include και ό,τι άλλο σκεφτείτε. Δείτε τα μηνύματα που σας δίνει ο μεταγλωττιστής και προσπαθήστε να καταλάβετε πως σχετίζονται με αυτό που κάνατε. Ήταν όλα τα μηνύματα που σας έβγαλε κατατοπιστικά; Τεχνικές εύρεσης και διόρθωσης συντακτικών λαθών Όπως είδαμε και στο προηγούμενο παράδειγμα, τα συντακτικά λάθη είναι εύκολο να τα ανακαλύψουμε αν διαβάσουμε τα μηνύματα του μεταγλωττιστή. Αυτή είναι και η βασική τακτική που χρησιμοποιούμε για να τα εντοπίσουμε και να τα διορθώσουμε. Κάθε μήνυμα του μεταγλωττιστή θα αναφέρει τη γραμμή όπου υπάρχει το συντακτικό λάθος καθώς και μια περιγραφή του. Από αυτά τα δύο στοιχεία μπορούμε, τις περισσότερες φορές, να βρούμε το συντακτικό λάθος. σελ. 8 / 10

27 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Ας δούμε όμως, το επόμενο παράδειγμα: #include <stdio.h> main() { printf( Hello world!\n ); Αν δώσουμε τον παραπάνω κώδικα προς μεταγλώττιση θα πάρουμε το εξής σφάλμα 4 syntax error at end of input Το οποίο μας λέει ότι υπάρχει ένα συντακτικό λάθος στη γραμμή 4 χωρίς καμία επιπλέον υπόδειξη. Το λάθος είναι ότι δεν έχουμε κλείσει την αγκύλη της main, οπότε ίσως να αναμέναμε κάτι σαν syntax error, bracket needed. Οπότε, είναι εμφανές ότι το να βασιζόμαστε μόνο στα μηνύματα του μεταγλωττιστή για να διορθώσουμε τα συντακτικά λάθη δεν είναι μια τακτική που αποδίδει πάντα. Αυτό που χρειάζεται είναι εμπειρία ώστε να αποκτηθεί εξοικείωση με τα διάφορα συντακτικά λάθη, αλλά και προσοχή κατά τη συγγραφή του κώδικα ώστε να αποφεύγουμε επιπολαιότητες. σελ. 9 / 10

28 Εργαστήριο 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C σελ. 10 / 10

29 Εργαστήριο 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Στο εργαστήριο αυτό, θα εξοικειωθούμε με τους τύπους δεδομένων που μας παρέχει η γλώσσα C, θα χρησιμοποιήσουμε τις δομές επανάληψης (for, while, do...while), την δομή ελέγχου (if...else) και θα μάθουμε πώς να διαχειριζόμαστε την έξοδο του προγράμματος μας, μέσω της συνάρτησης printf(). Άσκηση 1: Υπολογισμός σειράς 1.1. Γράψτε πρόγραμμα C που να υπολογίζει το άθροισμα της σειράς i 1 και να το εκτυπώνει στην οθόνη. Να χρησιμοποιηθεί η δομή επανάληψης do...while. 100 i Δομές επανάληψης while και do...while: WHILE while (E 2 ) {... } Ε 2 : Συνθήκη Εισόδου και Συνέχισης Επανάληψης DO...WHILE do {... } while (E 2 ); Ε 2 : Συνθήκη Συνέχισης Επανάληψης H δομή επανάληψης for: FOR for(e 1 ; E 2 ; E 3 ) {... } Όπου Ε 1 : Εντολή Αρχικοποίησης Ε 2 : Συνθήκη Εισόδου και Συνέχισης Επανάληψης (εφόσον ισχύει, εισερχόμαστε στον βρόχο ή επαναλαμβάνεται ο βρόχος) Ε 3 : Εντολή Επανάληψης (εκτελείται στο τέλος της κάθε επανάληψης και πριν αρχίσει η επόμενη) Ισοδύναμη δομή while με την δομή for: FOR for(e 1 ; E 2 ; E 3 ) {... } E 1 ; while (E 2 ) {... E 3 ; } WHILE σελ. 1 / 8

30 Εργαστήριο 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Τύποι Δεδομένων int (ακέραιος, συνήθως με 4 bytes) long (ακέραιος, τουλάχιστον με 4 bytes) (βλέπε και σημειώσεις μαθήματος, σελ. 31) H συνάρτηση printf() μπορεί να εκτυπώσει την τιμή μεταβλητών που δέχεται σαν όρισμα. Σύνταξη: printf( %y, var); όπου y είναι σύμβολο που αντιστοιχεί στον τύπο δεδομένων της μεταβλητής var. d: int ld: long f: float, double 1.2. Τροποποιήστε το πρόγραμμά σας, ώστε να υπολογίζει το άθροισμα: και να το εκτυπώνει στην οθόνη. 100 i 1 1 i 2 Υπόδειξη: Χρησιμοποιείστε μία ενδιάμεση μεταβλητή για να αποθηκεύετε προσωρινά τον τρέχοντα όρο της σειράς. Τύποι Δεδομένων float (πραγματικός αριθμός, συνήθως με 4 bytes) double (πραγματικός αριθμός, συνήθως με 8 bytes) 1.3. Αν γνωρίζετε ότι 6 i 1 1 i 2 τροποποιήστε το πρόγραμμα σας, ώστε να υπολογίσετε το π μέσω των πρώτων 100 όρων της σειράς. double sqrt(double): Επιστρέφει την τετραγωνική ρίζα του αριθμού που δέχεται σαν όρισμα. Απαιτείται η ενσωμάτωση του αρχείου επικεφαλίδας math.h. Στην μεταγλώττιση με τον gcc απαιτείται και η επιλογή -lm. σελ. 2 / 8

31 Εργαστήριο 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης 1.4. Παρατηρήστε ότι οι όροι που προστίθενται στην σειρά ολοένα και γίνονται πιο μικροί, με αποτέλεσμα από ένα σημείο και μετά να είναι αρκούντως μικροί για να μην επηρεάζουν το αποτέλεσμα, αφού χρησιμοποιούμε αριθμητική πεπερασμένης ακρίβειας. Αλλάξτε το κριτήριο τερματισμού του υπολογισμού, ώστε ο υπολογισμός να σταματάει όταν ο τρέχων όρος που προστίθεται στην σειρά είναι μικρότερος από Τροποποιήστε το πρόγραμμά σας, ώστε να εκτυπώνεται στην οθόνη το αποτέλεσμα με ακρίβεια 8 δεκαδικών ψηφίων. H συνάρτηση printf() μπορεί να εκτυπώσει την τιμή πραγματικών μεταβλητών που δέχεται σαν όρισμα με επιθυμητή μορφοποίηση. Σύνταξη: printf( %a.bf, var); a: Ορίζουμε το πλήθος των θέσεων που θα γίνει η εκτύπωση. b: Ορίζουμε το πλήθος των ψηφίων μετά την υποδιαστολή που θα εκτυπωθούν. 1.6 Τροποποιήστε το πρόγραμμα σας, ώστε να υπολογίζει την σειρά: S Επαναλάβετε και για τις σειρές που εμφανίζονται στις σημειώσεις του μαθήματος, σελ σελ. 3 / 8

32 Εργαστήριο 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Άσκηση 2: Υπολογισμός ριζών τριωνύμου 2.1 Γράψτε πρόγραμμα C που να παράγει τρεις τυχαίους πραγματικούς αριθμούς στο διάστημα [0,1] και να τους αποθηκεύει στις μεταβλητές τύπου double a, b και c, τις οποίες στη συνέχεια να εκτυπώνει. int rand() Απαιτείται ενσωμάτωση του αρχείου επικεφαλίδας stdlib.h Επιστρέφει έναν ψευδο-τυχαίο ακέραιο από 0 έως RAND_MAX (συμβολική σταθερά που ορίζεται στο αρχείο επικεφαλίδας stdlib.h) srand(unsigned int seed) Απαιτείται ενσωμάτωση του αρχείου επικεφαλίδας stdlib.h Αρχικοποιεί την γεννήτρια ψευδο-τυχαίων αριθμών με βάση τον αριθμό/φύτρα seed. Συνήθως χρησιμοποιούμε σα φύτρα την τρέχουσα ώρα, όπως επιστρέφεται από την κλήση της συνάρτησης time(null) (απαιτείται ενσωμάτωση του αρχείου επικεφαλίδας time.h) 2.2 Γράψτε πρόγραμμα C που να υπολογίζει τις πραγματικές ρίζες ενός τριωνύμου. Τα δεδομένα εισόδου (συντελεστές του τριωνύμου) θα είναι τυχαίες πραγματικές μεταβλητές a, b, c στο διάστημα [0,1]. Αν το τριώνυμο δεν έχει πραγματικές ρίζες, να εκτυπώνεται ένα σχετικό μήνυμα ενημέρωσης. Οι ρίζες να εκτυπώνονται με ακρίβεια 3 δεκαδικών ψηφίων. H δομή ελέγχου if... else if (C) E 1 else E 2 Εάν η συνθήκη C είναι αληθής, τότε εκτελείται η εντολή (ή μπλοκ εντολών) Ε 1, αλλιώς η εντολή (ή block εντολών) E Ενσωματώστε στο πρόγραμμά σας και την περίπτωση το τριώνυμο να έχει μιγαδικές ρίζες, οπότε θα πρέπει να τις υπολογίζει. σελ. 4 / 8

33 Εργαστήριο 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Άσκηση 3: Υπολογισμός ημέρας μίας δεδομένης ημερομηνίας Ο ακόλουθος αλγόριθμος υπολογίζει την ημέρα που αντιστοιχεί σε μία δεδομένη ημερομηνία: Έστω η ημερομηνία DD / MM / YYYY Αν MM 2 τότε NYYYY YYYY NMM 0 Αν MM 2 τότε NYYYY YYYY 1 4* MM 23 NMM 10 NYYYY 3 NYYYY IDAY 365* YYYY DD 31*( MM 1) NMM * Αν IDAY mod 7 0 τότε DAY Saturday Αν IDAY mod 7 1 τότε DAY Sunday... Αν IDAY mod 7 6 τότε DAY Friday Με x συμβολίζουμε τον μέγιστο ακέραιο αριθμό που δεν είναι μεγαλύτερος του αριθμού x. Γράψτε πρόγραμμα C που να βρίσκει τι ημέρα γεννηθήκατε (ενσωματώστε την ημερομηνία γέννησής σας μέσα στο πρόγραμμα). σελ. 5 / 8

34 Εργαστήριο 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης ΠΑΡΑΡΤΗΜΑ: Αποσφαλμάτωση προγραμμάτων (Πράξη 2 η ) Στο προηγούμενο εργαστήριο είδαμε την μέθοδο για να ανιχνεύουμε και να διορθώνουμε συντακτικά λάθη. Στο παρόν εργαστήριο θα συνεχίσουμε τη συζήτηση για την αποσφαλμάτωση προγραμμάτων, εστιάζοντας αυτή τη φορά στα λάθη λογικής. Λογικά λάθη Ένα λογικό λάθος είναι ένα λάθος που, ενώ επιτρέπει την επιτυχή μεταγλώττιση και εκτέλεση του προγράμματος, τελικά κάνει τα αποτελέσματά του να μην είναι σωστά. Αυτό μπορεί να οφείλεται είτε σε κάποιο λάθος στην αρχική μας σκέψη για το πως θα λύσουμε το πρόβλημα, είτε ακόμα και στη λανθασμένη υλοποίηση μιας σωστής σκέψης. Για παράδειγμα ας θεωρήσουμε το πρόβλημα να υπολογίσουμε το άθροισμα για τους πρώτους 20 όρους. Ένα πρόγραμμα που ευελπιστεί να κάνει αυτή τη δουλειά είναι το εξής #include <stdio.h> #define N 20 main() { int S=0, a=1; while (a<=n) { S = S+a; a = a+2; } printf("%d\n", S); } Το προηγούμενο πρόγραμμα μεταγλωττίζεται με απόλυτη επιτυχία και εμφανίζει αποτελέσματα. Το πρόβλημα είναι ότι το αποτέλεσμα που εμφανίζει, το 100, δεν είναι σωστό. Εμείς θα αναμέναμε το 400. Άρα στο πρόγραμμά μας υπάρχει κάποιο λογικό λάθος το οποίο πρέπει να αναζητήσουμε και να διορθώσουμε. Τεχνικές εύρεσης και διόρθωσης λογικών λαθών Τα λογικά λάθη είναι, κατά γενική ομολογία, πολύ δύσκολο να εντοπιστούν. Ενώ με τα συντακτικά λάθη μπορούμε να αντλήσουμε πολύτιμες πληροφορίες από τα μηνύματα του μεταγλωττιστή, με τα λογικά λάθη όλα θα λειτουργούν σωστά, με εξαίρεση ότι τελικά θα παίρνουμε λανθασμένα αποτελέσματα (ή και καθόλου αποτελέσματα). Όταν αντιμετωπίζουμε ένα λογικό λάθος το πρώτο που πρέπει να κάνουμε είναι να προσπαθήσουμε να εντοπίσουμε τις πιθανές πηγές του. Για να το πετύχουμε αυτό πρέπει να δούμε με προσοχή τα αποτελέσματα που εκτυπώνει το πρόγραμμά μας και να σκεφτούμε πιθανές αιτίες που μπορεί να οδήγησαν σε τέτοιου είδους αποτελέσματα. Για παράδειγμα, αν θέλουμε να εκτυπώνουμε κάποια στοιχεία με βάση ένα κριτήριο και καταλήγουμε να εκτυπώνουμε όλα τα στοιχεία, τότε πιθανότατα το πρόβλημα βρίσκεται στον τρόπο που έχουμε υλοποιήσει το κριτήριο επιλογής. Έχοντας σκεφτεί περίπου τι μπορεί να φταίει εντοπίζουμε το επίμαχο κομμάτι του κώδικα και το ξανακοιτάμε με προσοχή. Μήπως κάτι που έχουμε γράψει δε συνάδει με την αρχική μας σκέψη; Μήπως έχουμε παραλείψει κάτι; Αν είναι δύσκολο να δούμε με το μάτι τι μπορεί να φταίει τότε πρέπει να καταφύγουμε σε μια ιχνηλάτηση του προγράμματος. Στο επίμαχο κομμάτι του κώδικα και για όσες μεταβλητές περιλαμβάνει εκτυπώνουμε την τιμή τους στα διάφορα στάδια εκτέλεσης με τη χρήση συναρτήσεων σελ. 6 / 8

35 Εργαστήριο 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης printf. Έτσι, μπορούμε να δούμε τις τιμές που παίρνουν και να αποκτήσουμε μια καλύτερη εικόνα για το στάδιο στο οποίο η υλοποίησή μας αρχίζει να χωλαίνει. Ας επανέλθουμε στο προηγούμενο παράδειγμα και ας δούμε πως θα το αντιμετωπίζαμε με βάση όσα είπαμε. Αρχικά παρατηρούμε ότι το αποτέλεσμα που παίρνουμε δεν είναι σωστό, συγκεκριμένα είναι σημαντικά μικρότερο από αυτό που θα περιμέναμε. Αυτό μπορεί να οφείλεται είτε στο ότι δεν κάνουμε σωστά το άθροισμα, είτε στο ότι δεν παράγουμε σωστά τους όρους που αθροίζουμε, είτε στο ότι αθροίζουμε λιγότερους όρους απ' ότι θα θέλαμε. Σε κάθε περίπτωση, όλα τα προηγούμενα συγκλίνουν στο ότι δεν κάνουμε κάτι σωστά μέσα στη δομή επανάληψης. Οι επίμαχες μεταβλητές είναι το S και το a, οπότε ας εμφανίζουμε τις τιμές τους με σωστή τοποθέτηση συναρτήσεων printf ως εξής main() { int S=0, a=1; while (a<=n) { S = S+a; printf("%d %d\n", S, a); a = a+2; } printf("%d\n",s); } Εκτελώντας αυτόν τον κώδικα παίρνουμε σαν αποτέλεσμα Από το αποτέλεσμα καταλαβαίνουμε ότι ο υπολογισμός του αθροίσματος, αλλά και των όρων, γίνεται σωστά. Άρα το πρόβλημα πρέπει να βρίσκεται στο πλήθος των όρων που χρησιμοποιούμε, που όπως βλέπουμε δεν είναι 20 όπως θα θέλαμε, αλλά 10. Οπότε αυτό που φταίει είναι το πλήθος των φορών που εκτελείται η δομή επανάληψης. Όμως αυτό εξαρτάται από τη συνθήκη της, άρα το λάθος πρέπει να βρίσκεται σε αυτή. Αν τη δούμε καλύτερα, λέει while (a<=n), το οποίο σημαίνει ο τρέχων όρος να είναι μικρότερος του πλήθους των όρων που θέλουμε να αθροίσουμε, ενώ εμείς θέλουμε απλά να αθροίσουμε 20 όρους. Αυτό μπορούμε να το πετύχουμε αν αντικαταστήσουμε τη while με μια for της μορφής for (i=1 ; i<=n ; i++). Φυσικά, θα υπάρξουν και φορές όπου ο κώδικάς μας θα είναι απόλυτα σύμφωνος με όσα έχουμε σκεφτεί και φαινομενικά σωστός, όμως σε κάποια παραδείγματα δεν θα λειτουργεί σωστά. Τότε αυτό που έχει συμβεί είναι ότι δεν έχουμε καλύψει όλες τις πιθανές περιπτώσεις, μια υποχρέωση που είναι εκ των ων ουκ άνευ για έναν σωστό προγραμματιστή. Γι' αυτό πρέπει πάντα να δοκιμάζουμε εξονυχιστικά τα προγράμματά μας με διάφορα παραδείγματα, όχι μόνο απλά, αλλά και σύνθετα και ασυνήθιστα, για να βεβαιωθούμε ότι είναι όντως σωστά. σελ. 7 / 8

36 Εργαστήριο 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Αν κάποιο από τα παραδείγματα που δοκιμάσαμε δεν δίνει το αναμενόμενο αποτέλεσμα τότε έχουμε παραλείψει στον κώδικά μας να καλύψουμε μια τέτοια περίπτωση. Οπότε πρέπει να σκεφτούμε ποια είναι τα χαρακτηριστικά του συγκεκριμένου παραδείγματος που το κάνουν να μην εμπίπτει σε όσα έχουμε σκεφτεί και υλοποιήσει. Για να το πετύχουμε αυτό, είναι πολύ πιθανό ότι θα χρειαστούμε και πάλι να καταφύγουμε σε όσες τεχνικές περιγράψαμε πριν και να τοποθετήσουμε κατάλληλες printf σε κρίσιμα σημεία του προγράμματός μας. Μόλις βρούμε τι φταίει, εμπλουτίζουμε την αρχική μας σκέψη ώστε να καλύψει και αυτό το είδος περιπτώσεων και κάνουμε τις απαραίτητες προσθήκες στον κώδικά μας. Γενικά, η διόρθωση λογικών λαθών απαιτεί εμπειρία, υπομονή και εξοικείωση με το πρόβλημα και τον κώδικά μας. Αν και περιγράψαμε τεχνικές για την εύρεση και διόρθωση λογικών σφαλμάτων, πρέπει να έχουμε κατά νου ότι κάθε λογικό λάθος είναι διαφορετικό από οποιοδήποτε άλλο. Ο τρόπος με τον οποίο θα φτάσουμε από τα λανθασμένα αποτελέσματα στην αιτία τους μέσα στον κώδικά μας απαιτεί αναλυτική σκέψη και δε γίνεται να υπάρξουν καθολικά εφαρμόσιμες τεχνικές γι αυτό το σκοπό. Σημείωση: Αν και αναφέραμε έναν τρόπο αποσφαλμάτωσης μέσω printf, αυτός ο τρόπος δεν είναι πάντα αποτελεσματικός ή εύκολα υλοποιήσιμος, ειδικά σε μεγάλα προγράμματα. Γι' αυτό το σκοπό υπάρχουν εξειδικευμένα εργαλεία, γνωστά ως debuggers, που βοηθούν πολύ τη διαδικασία αποσφαλμάτωσης. Είναι σημαντικό με την πρώτη ευκαιρία να εξοικειωθείτε με τη χρήση κάποιου τέτοιου προγράμματος, π.χ. με τον gdb που βρίσκεται εγκατεστημένος στα μηχανήματα Linux του Τμήματος. Παρουσίαση του gdb καθώς και του debugger του Dev-C++ θα γίνει στο Εργαστήριο 8. Άσκηση Το παρακάτω πρόγραμμα ευελπιστεί να υπολογίζει την παράσταση 1-1/2 + 1/4-1/8 + 1/ για όσους όρους είναι μεγαλύτεροι από το LIMIT. Για να το πετύχει αυτό ο προγραμματιστής του έκανε την εξής σκέψη Σε μια μεταβλητή c θα κρατάω τον τρέχοντα όρο που θα προστεθεί, ο οποίος παράγεται από τον προηγούμενο αν πολλαπλασιάσω με ½. Θέλω ανά πάσα στιγμή ο όρος c να μην ξεπερνά το LIMIT. To c έχει διαφορετικό πρόσημο σε κάθε όρο, οπότε θα χρησιμοποιήσω μια μεταβλητή sign που θα την πολλαπλασιάζω με το -1 ώστε ανά δύο όρους να έχει το ίδιο πρόσημο. Τελικά θα εκτυπώσω το άθροισμα S. Το πρόγραμμα αυτό όμως, έχει συντακτικά και λογικά λάθη. Μπορείτε να το αποσφαλματώσετε; #include <stdio.h> #define LIMIT main() { float S=0, c=1; int sign=1; } while (c<limit) { S = S+c; sign = (-1)*sign; c = sign*1/2*c; } print("%f\n", s); σελ. 8 / 8

37 Εργαστήριο 5: Είσοδος/Έξοδος Χαρακτήρων ΕΡΓΑΣΤΗΡΙΟ 5: Είσοδος/Έξοδος Χαρακτήρων Στο εργαστήριο αυτό, θα ασχοληθούμε με θέματα εισόδου/εξόδου και θα εξοικειωθούμε με τη χρήση συναρτήσεων που μας παρέχει η C για την είσοδο και την έξοδο χαρακτήρων (getchar και putchar). Άσκηση 1: Κατασκευάστε πρόγραμμα C που να εκτυπώνει τους χαρακτήρες με ASCII κωδικό που είναι πολλαπλάσιο του 3, και μεταξύ 33 και 105, μαζί με τους κωδικούς αυτούς. Παρατηρήστε την έξοδο του προγράμματος σε σχέση με τον παρακάτω πίνακα των ASCII κωδικών: Char Dec Oct Hex Char Dec Oct Hex Char Dec Oct Hex Char Dec Oct Hex (nul) x00 (sp) x40 ` x60 (soh) x01! x21 A x41 a x61 (stx) x02 " x22 B x42 b x62 (etx) x03 # x23 C x43 c x63 (eot) x04 $ x24 D x44 d x64 (enq) x05 % x25 E x45 e x65 (ack) x06 & x26 F x46 f x66 (bel) x07 ' x27 G x47 g x67 (bs) x08 ( x28 H x48 h x68 (ht) x09 ) x29 I x49 i x69 (nl) x0a * x2a J x4a j x6a (vt) x0b x2b K x4b k x6b (np) x0c, x2c L x4c l x6c (cr) x0d x2d M x4d m x6d (so) x0e x2e N x4e n x6e (si) x0f / x2f O x4f o x6f (dle) x x30 P x50 p x70 (dc1) x x31 Q x51 q x71 (dc2) x x32 R x52 r x72 (dc3) x x33 S x53 s x73 (dc4) x x34 T x54 t x74 (nak) x x35 U x55 u x75 (syn) x x36 V x56 v x76 (etb) x x37 W x57 w x77 (can) x x38 X x58 x x78 (em) x x39 Y x59 y x79 (sub) x1a : x3a Z x5a z x7a (esc) x1b ; x3b [ x5b { x7b (fs) x1c < x3c \ x5c x7c (gs) x1d = x3d ] x5d } x7d (rs) x1e > x3e ^ x5e ~ x7e (us) x1f? x3f _ x5f (del) x7f Άσκηση 2: 2.1 Κατασκευάστε πρόγραμμα C που να εκτυπώνει στην οθόνη σχήμα με την ακόλουθη μορφή: * ** *** **** ***** ****** Το πλήθος των γραμμών που θα εκτυπωθούν να το ορίσετε με #define. σελ. 1 / 4

38 Εργαστήριο 5: Είσοδος/Έξοδος Χαρακτήρων H συνάρτηση putchar(int c) εκτυπώνει τον χαρακτήρα που αντιστοιχεί στον ASCII κωδικό που δέχεται σαν όρισμα. Ισοδύναμες χρήσεις: putchar( * ) ή putchar(42) όπου 42 είναι ο ASCII κωδικός του χαρακτήρα *. 2.2 Κατασκευάστε πρόγραμμα C που να εκτυπώνει στην οθόνη σχήμα με την ακόλουθη μορφή (και εδώ να χρησιμοποιήσετε #define για τον ορισμό του πλήθους των γραμμών που θα εκτυπωθούν): * *** ***** ******* ********* *********** Άσκηση 3: 3.1 Αντιγράψτε το αρχείο capitalize.c από την ιστοσελίδα του μαθήματος, μεταγλωττίστε το και εκτελέστε το με είσοδο το ίδιο το πηγαίο αρχείο capitalize.c. Παρατηρήστε τη λειτουργία του. /* File: capitalize.c */ #include <stdio.h> main() { int ch; /* Be careful! Declare ch as int because of getchar() and EOF */ ch = getchar(); /* Read first character */ while (ch!= EOF) { /* Go on if we didn't reach end of file */ if (ch >= 'a' && ch <= 'z') /* If lower case letter */ ch = ch - ('a'-'a'); /* Move 'a'-'a' positions in the ASCII table */ putchar(ch); /* Print out character */ ch = getchar(); /* Read next character */ } } H συνάρτηση getchar() διαβάζει έναν χαρακτήρα από την είσοδο και επιστρέφει τον ASCII κωδικό του χαρακτήρα. Αν δεν υπάρχει άλλος χαρακτήρας για διάβασμα στην είσοδο, επιστρέφει την ειδική ακέραια τιμή EOF που είναι ορισμένη στο stdio.h. 3.2 Κατασκευάστε το πρόγραμμα lowercase.c, ώστε να κάνει το αντίστροφο, δηλαδή να μετατρέπει τους χαρακτήρες που εμφανίζονται με κεφαλαία γράμματα σε χαρακτήρες με μικρά γράμματα. 3.3 Τροποποιήστε το πρόγραμμά σας, ώστε να μετατρέπονται ταυτόχρονα και οι κεφαλαίοι χαρακτήρες σε μικρούς και οι μικροί σε κεφαλαίους. σελ. 2 / 4

39 Εργαστήριο 5: Είσοδος/Έξοδος Χαρακτήρων 3.4 Κωδικοποίηση κειμένου: Θα τροποποιήσουμε λίγο το πρόγραμμα μας και θα δημιουργήσουμε έναν απλοϊκό τρόπο για να κωδικοποιήσουμε ένα κείμενο Δημιουργήστε ένα αρχείο κειμένου με όνομα text και πληκτρολογήστε σε αυτό ένα τυχαίο κείμενο Τροποποιήστε το πηγαίο αρχείο capitalize.c, ώστε να διαβάζει από την είσοδο χαρακτήρες και, για καθένα απ αυτούς, να εκτυπώνει στην έξοδο τον χαρακτήρα που έχει ASCII κωδικό αυξημένο κατά ένα σε σχέση με αυτόν του χαρακτήρα που διάβασε. Ονομάστε το νέο αρχείο encode.c και μεταγλωττίστε το για να δημιουργηθεί το εκτελέσιμο encode Εκτελέστε το πρόγραμμα encode με ανακατεύθυνση εισόδου από το αρχείο text Εκτελέστε το πρόγραμμα encode με ανακατεύθυνση εισόδου από το αρχείο text και ανακατεύθυνση εξόδου στο αρχείο encoded_text Δημιουργήστε το πηγαίο αρχείο decode.c ώστε να διαβάζει από την είσοδο χαρακτήρες και, για καθένα απ αυτούς, να εκτυπώνει τον χαρακτήρα με ASCII κωδικό μειωμένο κατά ένα σε σχέση με αυτόν που διάβασε Μεταγλωττίστε το και εκτελέστε το με ανακατεύθυνση της εισόδου από το αρχείο coded_text Εκτελέστε το πρόγραμμα decode για την αποκωδικοποίηση ενός κωδικοποιημένου κειμένου, έτσι ώστε να παίρνει την είσοδό του απ ευθείας από το πρόγραμμα encode, το οποίο να καλείται έτσι ώστε να κωδικοποιεί το αρχείο text, χωρίς να χρησιμοποιήσετε το ενδιάμεσο αρχείο coded_text. σελ. 3 / 4

40 Εργαστήριο 5: Είσοδος/Έξοδος Χαρακτήρων σελ. 4 / 4

41 Εργαστήριο 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία έχουν σαν στόχο τη δόμηση του προγράμματος σε ανεξάρτητα μέρη και, επιπροσθέτως, αποτελούν δομικούς λίθους που μπορούν να επαναχρησιμοποιηθούν και σε άλλα προγράμματα. Θα επεκτείνουμε τη συζήτηση μιλώντας για αναδρομικές συναρτήσεις, δηλαδή για συναρτήσεις που στο σώμα τους καλούν τον εαυτό τους. Επίσης, θα αναφερθούμε στις εξωτερικές ή καθολικές (global) μεταβλητές και θα δούμε πότε μπορούν να είναι χρήσιμες στον προγραμματισμό. Τέλος, σ ένα παράρτημα, θα περιγράψουμε τη διαδικασία δημιουργίας projects στο Dev-C++, που είναι χρήσιμη όταν κάποιος θέλει να δουλεύει σ αυτό το περιβάλλον και να έχει οργανωμένο ένα πρόγραμμα C σε πολλά πηγαία αρχεία και αρχεία επικεφαλίδας. Άσκηση 1: Το πρόβλημα 3n Κατασκευάστε τη συνάρτηση int isodd(int n) που δέχεται σαν όρισμα έναν ακέραιο και επιστρέφει 1, αν ο αριθμός είναι περιττός, ή 0, αν ο αριθμός είναι άρτιος. 1.2 Γράψτε σε γλώσσα C τον ακόλουθο (διατυπωμένο σε ψευδογλώσσα) αλγόριθμο, που επιδεικνύει ένα άλυτο μέχρι στιγμής μαθηματικό πρόβλημα, το λεγόμενο πρόβλημα του 3n+1. 1 Έστω τυχαίος ακέραιος n Επανάλαβε όσο το n!= 1 Αν ο n είναι περιττός θέσε n = 3n+1, αλλιώς θέσε n = n/2 Τύπωσε το n Ορισμός Συνάρτησης (δείτε και σημειώσεις μαθήματος, σελ ): <Tύπος Επιστροφής> <Όνομα Συνάρτησης>(<Τυπικές Παράμετροι>) { <Εντολές και Δηλώσεις> } <Τύπος Επιστροφής> Τύπος δεδομένων της τιμής που επιστρέφεται από τη συνάρτηση μέσω της εντολής: return <παράσταση>; Σε περίπτωση μη επιστροφής τιμής, ο <Τύπος Επιστροφής> ορίζεται σαν void. <Τυπικές Παράμετροι> Μεταβλητές, μαζί με τους τύπους τους, που χρησιμοποιούνται στη συνάρτηση, χωρισμένες με κόμμα, στις οποίες δίνονται τιμές από την καλούσα συνάρτηση. Προαναγγελία πρωτότυπου συνάρτησης, όταν καλείται πριν ορισθεί <Tύπος Επιστροφής> <Όνομα Συνάρτησης>(<Τυπικές Παράμετροι>); int main(void) {... } <Tύπος Επιστροφής> <Όνομα Συνάρτησης>(<Τυπικές Παράμετροι>) {... } 1 Εικάζεται, αλλά δεν έχει αποδειχθεί μαθηματικά, ότι αν ξεκινήσουμε από ένα θετικό ακέραιο αριθμό n και πάρουμε σαν επόμενό του τον n/2, αν ο n είναι άρτιος, ή τον 3n+1, αν ο n είναι περιττός, συνεχίζοντας με αυτόν τον τρόπο, κάποια στιγμή θα καταλήξουμε στο 1. Για παράδειγμα, αν ξεκινήσουμε από το n=22, η ακολουθία αριθμών που θα πάρουμε με αυτή τη διαδικασία θα είναι η 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1. σελ. 1 / 6

42 Εργαστήριο 6: Συναρτήσεις και Αναδρομή 1.3 Δομήστε το πρόγραμμά σας σε ανεξάρτητα 2 αρχεία. Για να διαβάσετε τον ακέραιο n στη συνάρτηση main, χρησιμοποιήστε τη συνάρτηση int getinteger(int base), που θα βρείτε στο πρόγραμμα (σελ. 71 σημειώσεων). main.c #include <stdio.h> #include isodd.h #include getinteger.h int main(void) {... } isodd.c Κώδικας συνάρτησης int isodd(int n) {... } isodd.h Πρωτότυπο συνάρτησης int isodd(int); getinteger.c Κώδικας συνάρτησης #include <stdio.h> #include "getinteger.h" int getinteger(int base) {... } getinteger.h Πρωτότυπο συνάρτησης και ορισμός συμβολικής σταθεράς #define ERROR -1 int getinteger(int); Μεταγλωττίστε το πηγαίο αρχείο isodd.c για να παραγάγετε το αντικειμενικό αρχείο isodd.o Μεταγλωττίστε το πηγαίο αρχείο getinteger.c για να παραγάγετε το αντικειμενικό αρχείο getinteger.o Μεταγλωττίστε το πηγαίο αρχείο main.c για να παραγάγετε το αντικειμενικό αρχείο main.o Συνδέστε τα αντικειμενικά αρχεία main.o, isodd.o και getinteger.o για να παραγάγετε το εκτελέσιμο αρχείο myprog. Άσκηση 2: Υπολογισμός όρων ακολουθίας Fibonacci. 2.1: Η ακολουθία Fibonacci ορίζεται από τη συνάρτηση: 1 f ( n) f ( n 1) f ( n 2) n 0, n 1 n 1 Ορίστε την αναδρομική συνάρτηση int fib(int n) που να υλοποιεί τον υπολογισμό του n-οστού όρου της ακολουθίας Fibonacci. 2 Για τη δημιουργία σε Dev-C++ ενός project, με σκοπό τη διάσπαση ενός προγράμματος σε αρχεία σύμφωνα με τη δόμηση που εμφανίζεται παραπάνω, δείτε το παράρτημα. σελ. 2 / 6

43 Εργαστήριο 6: Συναρτήσεις και Αναδρομή 2.2 Δημιουργήστε το πηγαίο αρχείο recfib.c το οποίο να υπολογίζει τους όρους της ακολουθίας Fibonacci από n=28 μέχρι το n=35, καλώντας τη συνάρτηση που υλοποιήσατε στο 2.1. Αμέσως μετά τον υπολογισμό, να εμφανίζεται η τιμή του αντίστοιχου όρου της ακολουθίας Fibonacci στην οθόνη. 2.3 Μετρήστε τις αναδρομικές κλήσεις για κάθε εκτέλεση του παραπάνω προγράμματος χρησιμοποιώντας μία καθολική (global) μεταβλητή. Εκτυπώστε το πλήθος των αναδρομικών κλήσεων μετά από κάθε εκτέλεση. fib(4) fib(3) fib(2) fib(2) fib(1) fib(1) fib(0) 1 1 fib(1) fib(0) 2.4 Παρατηρήστε το δένδρο αναδρομικών κλήσεων του προγράμματος για n=4 για εξηγήστε την αύξηση του χρόνου υπολογισμού του προγράμματος σε σχέση με τον όρο που υπολογίζεται. 2.5 Ο n-οστός όρος της ακολουθίας Fibonacci μπορεί να υπολογισθεί και επαναληπτικά, αν χρησιμοποιήσουμε δύο μεταβλητές για να αποθηκεύουμε σε κάθε βήμα τους δύο προηγούμενους αριθμούς, ώστε προσθέτοντας τους, να υπολογίζουμε τον επόμενο. Κατασκευάστε το πρόγραμμα fibonacci.c που να υλοποιεί την παραπάνω επαναληπτική διαδικασία. σελ. 3 / 6

44 Εργαστήριο 6: Συναρτήσεις και Αναδρομή ΠΑΡΑΡΤΗΜΑ: Δημιουργία projects σε Dev-C++ Δημιουργούμε νέο project επιλέγοντας από το μενού File New Project, ή, εναλλακτικά, πατώντας το εικονίδιο. Στην οθόνη που εμφανίζεται, επιλέγουμε Empty Project. Για να ορίσουμε ότι θα γράψουμε σε γλώσσα C, τσεκάρουμε την επιλογή C Project. Τέλος, επιλέγουμε ένα όνομα για το project και πατάμε το ΟΚ. Εμφανίζεται η οθόνη αποθήκευσης του project στον σκληρό δίσκο, οπότε επιλέγουμε έναν κατάλογο και πατάμε το Save. Για να προσθέσουμε νέα αρχεία κώδικα στο project μας, κάνουμε δεξί κλικ στο όνομα του project στο αριστερό μέρος της οθόνης και επιλέγουμε New File. σελ. 4 / 6

45 Εργαστήριο 6: Συναρτήσεις και Αναδρομή ή εναλλακτικά επιλέγουμε από το μενού Project New File οπότε και εμφανίζεται νέα, κενή καρτέλα. Αφού ολοκληρώσουμε, πατάμε Ctrl+S ή File Save ή επιλέγουμε το εικονίδιο. Εμφανίζεται η οθόνη αποθήκευσης του αρχείου κώδικα στη οποία πληκτρολογούμε το όνομα του αρχείου μαζί με την επέκτασή του (.c ή.h). Την ίδια διαδικασία ακολουθούμε για να προσθέσουμε στο project και οποιοδήποτε άλλο νέο αρχείο κώδικα (*.c) ή αρχείο επικεφαλίδας (*.h) επιθυμούμε. Επίσης, μας παρέχεται η δυνατότητα να προσθέσουμε ένα αρχείο κώδικα που ήδη έχουμε δημιουργήσει και αποθηκεύσει στον υπολογιστή μας, επιλέγοντας από το μενού Project Add To Project, ή το σχετικό κουμπί από τη μπάρα εικονιδίων. σελ. 5 / 6

46 Εργαστήριο 6: Συναρτήσεις και Αναδρομή Εμφανίζεται η οθόνη επιλογής του αρχείου: στην οποία επιλέγουμε το αρχείο και το ενσωματώνουμε κάνοντας κλικ στο Open. Αφού ολοκληρώσουμε τη δημιουργία των αρχείων κώδικα ή την προσθήκη αρχείων που ήδη έχουμε αποθηκευμένα στον υπολογιστή μας, πατάμε το κουμπί για να μεταγλωττίσουμε τα αρχεία κώδικα (όλα μαζί) και τέλος το κουμπί για να εκτελέσουμε το πρόγραμμά μας. Κατά την παραπάνω διαδικασία, αποθηκεύσαμε και ένα αρχείο με κατάληξη.dev στον υπολογιστή μας. Το αρχείο αυτό περιέχει όλες τις πληροφορίες ενσωμάτωσης πηγαίων αρχείων στο project μας και είναι αυτό που ανοίγουμε από το μενού File Open ώστε να συνεχίσουμε την εργασία μας σε ένα project που έχουμε ήδη δημιουργήσει. σελ. 6 / 6

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης Στο εργαστήριο αυτό, θα εξοικειωθούμε με τους τύπους δεδομένων που μας παρέχει η γλώσσα C, θα χρησιμοποιήσουμε τις δομές επανάληψης (for, while, do...while),

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

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

ΕΡΓΑΣΤΗΡΙΟ 2: Unix Tutorial

ΕΡΓΑΣΤΗΡΙΟ 2: Unix Tutorial ΕΡΓΑΣΤΗΡΙΟ 2: Unix Tutorial Σκοπός του εργαστηρίου αυτού είναι να έλθουμε σε επαφή με βασικές εντολές του Unix και την μεταγλώττιση προγραμμάτων C (με χρήση του μεταγλωττιστή gcc). Για να οργανώσουμε τα

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση του περιβάλλοντος Dev C++ το οποίο θα χρησιμοποιηθεί για την υλοποίηση

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 5: Κυριολεκτικά Συνδυασμοί / Μετατροπές Τύπων Αριθμητική Χαρακτήρων Κυριολεκτικά (literals) 2 Κάποιες μεταβλητές του προγράμματος πρέπει συνήθως να αρχικοποιηθούν με συγκεκριμένη

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

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

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

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

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

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

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

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

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

Εισαγωγή στο περιβάλλον Code::Blocks

Εισαγωγή στο περιβάλλον Code::Blocks Εισαγωγή στο περιβάλλον Code::Blocks Στο παρόν εγχειρίδιο παρουσιάζεται η διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος C στο περιβάλλον του Code::Blocks. Η διαδικασία αυτή παρουσιάζεται

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

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη Πώς βλέπουμε τις ιδιότητες των αντικειμένων που έχουμε δημιουργήσει; Ανοίγουμε το σενάριο CarWorld και δημιουργούμε μερικά αντικείμενα των κλάσεων

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

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

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

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #4 κυριολεκτικά & μετατροπή τύπων 1 Σπύρος Λάλης Κυριολεκτικά (literals) Συχνά θέλουμε να αρχικοποιήσουμε μεταβλητές του προγράμματος με μια συγκεκριμένη τιμή υπάρχει επίσης η

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python 1η Ομάδα Ασκήσεων Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Εισαγωγικά προγράμματα / print / μεταβλητές / input

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

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία Mεταγλωττιστές 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex Σκοπός: Το μάθημα αυτό αναφέρεται: στις κανονικές εκφράσεις στην δομή και το περιεχόμενο του αρχείου-εισόδου του flex Γενικά Θεωρία Κατά την

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

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout)

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout) Πανεπιστήµιο Θεσσαλίας Τµήµα Πληροφορικής µε Εφαρµογές στην Βιοϊατρική Εισαγωγή στον Προγραµµατισµό (εργαστήριο) Εισαγωγή στο λειτουργικό σύστηµα UNIX 1. Σύνδεση στο Εικονικό Ιδιωτικό Δίκτυο (VPN) 1.1.

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Εισαγωγή στον προγραμματισμό Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Δομή Προγράμματος Όλα τα προγράμματα που γράψαμε έχουν λίγο πολύ την ακόλουθη μορφή: Κάποιος κώδικας εδώ main( ) {

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

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

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

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

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

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++ ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++ Α. ΠΡΙΝ ΤΗΝ ΕΓΚΑΤΑΣΤΑΣΗ Το πρόγραμμα BloodShed Dev-C++ είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης* κώδικα για γλώσσες

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

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

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

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

Γνωρίστε το Excel 2007

Γνωρίστε το Excel 2007 Εισαγωγή τύπων Γνωρίστε το Excel 2007 Πληκτρολογήστε το σύμβολο της ισότητας (=), χρησιμοποιήστε ένα μαθηματικό τελεστή (+,-,*,/) και πατήστε το πλήκτρο ENTER. Πρόσθεση, διαίρεση, πολλαπλασιασμός και αφαίρεση

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

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI Εργαστήριο 1ο Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI Σε αυτό το κεφάλαιο θα ασχοληθούμε με την περιγραφή της διαδικασίας μεταγλώττισης ενός προγράμματος C κάνοντας χρήση του μεταγλωττιστή gcc σε

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

Β ΕΙΔΙΚΗ ΦΑΣΗ ΣΠΟΥΔΩΝ

Β ΕΙΔΙΚΗ ΦΑΣΗ ΣΠΟΥΔΩΝ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Υπουργείο Εσωτερικών και Διοικητικής Ανασυγκρότησης ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΑΥΤΟΔΙΟΙΚΗΣΗΣ Β ΕΙΔΙΚΗ ΦΑΣΗ ΣΠΟΥΔΩΝ Υπεύθυνος Σπουδών & Έρευνας: Δ. Τσιμάρας ΕΚΠΑΙΔΕΥΤΙΚΟ ΥΛΙΚΟ

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

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

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004 Εγχειρίδιο Φοιτητή Εισαγωγή Η ηλεκτρονική πλατφόρμα, αποτελεί ένα ολοκληρωμένο σύστημα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι η παροχή υποδομών εκπαίδευσης και κατάρτισης ανεξάρτητα από τους περιοριστικούς

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

Linux με τη χρήση κονσόλας

Linux με τη χρήση κονσόλας Linux με τη χρήση κονσόλας Κεφάλαιο 2 Κείμενα Χρυσούλα Παπάζογλου Πανεπιστήμιο Μακεδονίας, Βιβλιοθήκη και Κέντρο Πληροφόρησης Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Θεσσαλονίκη, Μάρτης 2009 Το υλικό διατίθεται

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία μιας εφαρμογής Java με το NetBeans Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία

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

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

Προγραμματιστικό Περιβάλλον Προγραμματιστικό Περιβάλλον Προγραμματίζοντας τις βασικές αριθμητικές πράξεις 2 ο Γυμνάσιο Παλλήνης Καθηγήτρια: Ευφροσύνη Σκιαδά Πρόσθεση Αφαίρεση Πολλαπλασιασμός Σύμβολα αριθμητικών πράξεων Διαίρεση Τι

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

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

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

ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013

ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013 ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013 1. Δίκτυα Υπολογιστών και Διαδίκτυο... 3 1.1. Όροι Και Έννοιες... 3 1.2. Ασφάλεια Στο Διαδίκτυο... 5 2. Περιήγηση στον Παγκόσμιο Ιστό 7 Το Περιβάλλον Ενός Φυλλομετρητή...

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

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) cat text file name (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

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

Λύσεις για τις ασκήσεις του lab5

Λύσεις για τις ασκήσεις του lab5 Εισαγωγή Λύσεις για τις ασκήσεις του lab5 Επειδή φάνηκε να υπάρχουν αρκετά προβλήματα σχετικά με τον τρόπο σκέψης για την επίλυση των προβλημάτων του lab5, θα συνοδεύσουμε τις λύσεις με αρκετές επεξηγήσεις,

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

Εργαλεία. Επικοινωνίας & Συνεργασίας Πανεπιστήμιο Κύπρου

Εργαλεία. Επικοινωνίας & Συνεργασίας Πανεπιστήμιο Κύπρου Εργαλεία Επικοινωνίας & Συνεργασίας Πανεπιστήμιο Κύπρου Ιούλιος 2017 Copyright 2017 Πανεπιστήμιο Κύπρου. Όλα τα πνευματικά δικαιώματα κατοχυρωμένα. Δημιουργός: Λευτέρης Γ. Ζαχαρία Σ ε λ ί δ α 1 Πίνακας

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

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους: Αρχεία Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους: Με την εντολή touch: touch test.txt δημιουργούμε ένα κενό αρχείο test.txt. Mε την εντολή echo: Η echo λειτουργεί σαν αντίλαλος, δηλαδή

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

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1 Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη της Πληροφορικής και Πληροφοριακά Συστήματα Εργαστήριο - ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο UNIX Μέρος 1 Παναγιώτης

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

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

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

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

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης Στο εργαστήριο αυτό θα μελετήσουμε τον τρόπο με τον οποίο ορίζουμε στην C πολυδιάστατους πίνακες και θα δούμε πώς μπορούμε να δεσμεύουμε

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

Δίκτυα Η/Υ στην Επιχείρηση

Δίκτυα Η/Υ στην Επιχείρηση Δίκτυα Η/Υ στην Επιχείρηση Εισαγωγή στο λειτουργικό σύστημα Unix Γκάμας Βασίλειος, Εργαστηριακός Συνεργάτης Λειτουργικό Σύστημα (ΛΣ) Λογισμικό συστήματος, το οποίο αποτελεί τη διασύνδεση μεταξύ του υλικού

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 3: Πίνακες, βρόχοι, συναρτήσεις 1 Ιουνίου 2017 Το σημερινό εργαστήριο

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

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

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

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

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

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

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

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

Οδηγός Χρήστη. Καλώς ήλθατε στο Ηλεκτρονικό Περιβάλλον Μάθησης. http://elearning.kekdiastasi.edu.gr/

Οδηγός Χρήστη. Καλώς ήλθατε στο Ηλεκτρονικό Περιβάλλον Μάθησης. http://elearning.kekdiastasi.edu.gr/ Οδηγός Χρήστη Καλώς ήλθατε στο Ηλεκτρονικό Περιβάλλον Μάθησης http://elearning.kekdiastasi.edu.gr/ Περιεχόµενα 1. ΕΙΣΟ ΟΣ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ 3 2. ΤΟ ΠΡΟΦΙΛ ΣΑΣ 6 3. ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΟΥ ΜΑΘΗΜΑΤΟΣ 9 4. ΤΟ ΜΑΘΗΜΑ

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

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

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

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

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. (www.sch.gr) 2. Τοπικά 3. Σε δωρεάν Server

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. (www.sch.gr) 2. Τοπικά 3. Σε δωρεάν Server Γεώργιος Χρ. Μακρής Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. (www.sch.gr) 2. Τοπικά 3. Σε δωρεάν Server 2012 Γ ε ώ ρ γ ι ο ς Χ ρ. Μ α κ ρ ή ς ( h t t p : / / u s e r s. s c h. g r / g m a k r i s ) Περιεχόμενα

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

1. Βασικές Λειτουργίες των Windows

1. Βασικές Λειτουργίες των Windows 1. Βασικές Λειτουργίες των Windows Α - Εκκίνηση του Υπολογιστή και των Windows XP Για να εκκινήσουμε τον υπολογιστή μας πατάμε το κουμπί ανοίγματος της μονάδας συστήματος και το αντίστοιχο κουμπί της οθόνης.

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

YourSMS User s Manual

YourSMS User s Manual YourSMS User s Manual Contents Πίνακας περιεχομένων Κεντρική οθόνη... 2 Αποστολές... 3 Αποστολή μοναδικού μηνύματος... 3 Αποστολή μαζικού μηνύματος σε ομάδα παραληπτών... 4 Αποστολή μαζικού προγραμματισμένου

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

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

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

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Βασικοί τύποι της C 2 Όνομα Τύπος / Κωδικοποίηση Μέγεθος (bytes) char Χαρακτήρας 1 int Ακέραιος 2 ή 4 (*) float Πραγματικός

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

BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P.

BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P. BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P. Πριν την έναρξη της διαδικασίας θα θέλαμε να σας ενημερώσουμε ότι η αναβάθμιση διαφέρει σε κάποιες λεπτομέρειες, ανάλογα με το τύπο της βάσης δεδομένων της κάθε χρήσης.

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

Εγχειρίδιο Χρήσης. για ΟΙΚΟΝΟΜΙΚΟΥΣ ΦΟΡΕΙΣ

Εγχειρίδιο Χρήσης. για ΟΙΚΟΝΟΜΙΚΟΥΣ ΦΟΡΕΙΣ Εγχειρίδιο Χρήσης για ΟΙΚΟΝΟΜΙΚΟΥΣ ΦΟΡΕΙΣ «ΣΥΝΤΑΞΗ ΚΑΙ ΥΠΟΒΟΛΗ ΠΡΟΣΦΟΡΑΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΕΡΓΟΥ/ΜΕΛΕΤΗΣ/ΣΥΝΑΦΟΥΣ ΥΠΗΡΕΣΙΑΣ - Ανοικτές διαδικασίες με κριτήριο κατακύρωσης τη χαμηλότερη τιμή» Έκδοση

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

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

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

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

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

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

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. Το πρώτο πράγμα που βλέπουμε μόλις ξεκινάμε το παιχνίδι είναι μια λίστα με όλα τα διαθέσιμα βίντεο με τα οποία μπορούμε να εξασκηθούμε. Σε αυτή περιλαμβάνονται επίσης πληροφορίες

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

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Η δομή ελέγχου if... else... elif Βλέπουμε τώρα πώς μπορούμε να γράψουμε προγράμματα που η εκτέλεσή τους ακολουθεί διαφορετική πορεία ανάλογα με τα δεδομένα. Χωρίς τέτοιες

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014 Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) SMPcache Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) 1. Βασικές ρυθμίσεις του συστήματος: δημιουργία μια δικής μας σύνθεσης συστήματος. Το SMPcache είναι ένα εργαλείο με το οποίο μπορούμε

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Φεβρουάριος/Μάρτιος 2013 v. 0.1 Master-mind: κανόνες παιχνιδιού Στο master mind χρειάζεται να παράγονται κάθε φορά 4 τυχαία σύμβολα από ένα πλήθος 6 διαφορετικών

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

Οδηγός γρήγορης εκκίνησης

Οδηγός γρήγορης εκκίνησης Οδηγός γρήγορης εκκίνησης Το Microsoft Word 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης. Γραμμή

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στο Λ.Σ. UNIX Εργαστηριακές Σημειώσεις Εισαγωγή στο UNIX Αρμοδιότητες των Λ.Σ. Διαχείριση πόρων o o Συσκευές I/O (disk, keyboard, mouse, terminal) Μνήμη Διαχείριση

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

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

ΥΠΟΒΟΛΗ ΑΝΑΛΩΣΙΜΩΝ ΥΛΙΚΩΝ

ΥΠΟΒΟΛΗ ΑΝΑΛΩΣΙΜΩΝ ΥΛΙΚΩΝ ΥΠΟΒΟΛΗ ΑΝΑΛΩΣΙΜΩΝ ΥΛΙΚΩΝ Εισαγωγή γνωματεύσεων διαβητικών υλικών στο internet (eδαπυ) 1. Εισάγουμε τον κωδικό χρήστη και το συνθηματικό για να εισέλθουμε στην εφαρμογή https://apps.ika.gr/econsummedsuppl/faces/login.xhtml.

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

ΗΥ101: Εισαγωγή στην Πληροφορική

ΗΥ101: Εισαγωγή στην Πληροφορική Δρ. Χρήστος Ηλιούδης Τι είναι η ; Η διαδικασία του προγραμματισμού είναι μία πολύπλοκη διαδικασία που συχνά οδηγεί σε λάθη (πραγματοποιείται από ανθρώπους!!!). Τα προγραμματιστικά λάθη λέγονται bugs και

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

Εγκατάσταση του PiNet για διαχείριση εργαστηρίου με Raspberry Pi. Συγγραφέας: Τριχόπουλος Γιώργος Δεκέμβριος 2016

Εγκατάσταση του PiNet για διαχείριση εργαστηρίου με Raspberry Pi. Συγγραφέας: Τριχόπουλος Γιώργος Δεκέμβριος 2016 Εγκατάσταση του PiNet για διαχείριση εργαστηρίου με Raspberry Pi Συγγραφέας: Τριχόπουλος Γιώργος Δεκέμβριος 2016 Το σύστημα PiNet εξυπηρετεί στη διαχείριση των υπολογιστών Raspberry Pi σε μία σχολική τάξη.

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

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Simplifying Complexity Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Περιεχόμενα 1 Εισαγωγή... 2 2 Οδηγίες Χρήσης... 2 2.1 Πρώτη Εγγραφή στην Πλατφόρμα... 2 2.2 Είσοδος στην Πλατφόρμα... 4 2.3 Δημιουργία Καρτέλας

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

Βασικές Αρχές Προγραμματισμού

Βασικές Αρχές Προγραμματισμού Βασικές Αρχές Προγραμματισμού Κεφάλαιο 2 ΗγλώσσαC Ιστορική Αναδρομή ΗανάπτυξητηςC ξεκίνησε το 1972 στα εργαστήρια Bell από τον Dennis Ritchie με σκοπό την ανάπτυξη ενός λειτουργικού συστήματος για τον

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

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ CLAROLINE Κατάλογος περιεχομένων Εγγραφή μαθητή στο Claroline...2 Εγγραφή σε μάθημα...3 Τα μαθήματά μου...4 Αλλαγή του προφίλ μου (Manage my account)...4

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