Στοιχεία Επικοινωνίας

Σχετικά έγγραφα
Εισαγωγικό εργαστήριο C

Στοιχεία Επικοινωνίας

Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού

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

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

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

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

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

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

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

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

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

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

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

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

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

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

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

Σύντομη εισαγωγή στο Unix

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

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

Ενημερωτικός οδηγός για τον εξυπηρετητή Ada

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Τύποι Δεδομένων Είσοδος/Έξοδος

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

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

Μεταφραστής (Compiler)

Προγραμματισμό για ΗΜΥ

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

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

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

lab0: Εισαγωγή σε Linux

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

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

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

7. Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

Κεφάλαιο 1 Εισαγωγή στη C

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

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

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

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Σύντομη εισαγωγή στο Unix

Προγραμματισμός I (Θ)

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

Οδηγίες Σύνδεσης Ασύρματου Δικτύου ΤΜΗΥ&Π. Οδηγίες Σύνδεσης για λοιπά Linux/Unix Συστήματα

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Εργαστήριο Εγκατάσταση Ubuntu με VirtualBox Εγκατάσταση Ubuntu με Unetbootin Απομακρυσμένη πρόσβαση με Putty/WinSCP

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6)

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

ΕΡΓΑΣΤΗΡΙΟ #1. Το Λειτουργικό Σύστηµα Unix

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

Η βασική συνάρτηση προγράμματος main()

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

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

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Ενημερωτικός οδηγός για τον εξυπηρετητή Ada

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι:

8. Συνθήκες ελέγχου, λογικοί τελεστές

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Μαρία Μαμαλάκη, ΕΔΙΠ. Γραφείο: Β229 - Τηλέφωνο: mariam@csd.uoc.gr. Web site μαθήματος:

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

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

lab1: Εισαγωγή σε Linux

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

Transcript:

Στοιχεία Επικοινωνίας Μακρής Χρήστος makri@ceid.upatras.gr Κουνέλης Φώτιος kounelis@ceid.upatras.gr Τσίρτση Αργυρώ tsirtsi@ceid.upatras.gr Μπάρλος Παναγιώτης barlos@ceid.upatras.gr Δημοπούλου Μερκουρία dimopoulo@ceid.upatras.gr Σαραβάνου Χριστίνα saravanou@ceid.upatras.gr Χατζοπούλου Σοφία chatzopoul@ceid.upatras.gr Κολωνιας Λεωνίδας kolonias@ceid.upatras.gr

Εισαγωγικό εργαστήριο C Γνωριμία με Linux/Unix OS Γνωριμία με το Terminal Γνωριμία με το Diogenis Γνωριμία με βασικές εντολές Γνωριμία με pico Το πρώτο μας πρόγραμμα σε C! Γνωριμία με το gcc

Για ποιό λόγο Unix ΟS (1) Σταθερά συστήματα Ασφαλή Εύκολα να τα διαχειριστείς και να τα συντηρήσεις Πολύ Καλή Απόδοση σε απαιτητικές εφαρμογές

Για ποιο λόγο Unix OS (2) Χρησιμοποιούνται σχεδόν παντού: Υπολογιστικό κέντρο, web servers Routers Mac os x Linux

UNIX/LINUX systems Χαρακτηριστικά: Multitasking OS Multi-user connection Μικρά προγράμματα που συνεργάζονται άψογα Υπολογιστικό κέντρο ΤΜΗΥΠ: Λειτουργικό σύστημα: CENTOS linux Παραπλήσιο με κάθε άλλο UNIX σύστημα!!!! CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 5

Unix OS philosophy Ιεραρχικό σύστημα αρχείων Πολλοί χρήστες μπορούν να συνδεδεθούν ταυτόχρονα Μπορούν να χρησιμοποιήσουν τους ίδιους υπολογιστικούς πόρους με διαφάνεια Μπορούν να σχηματίσουν groups, όπου μπορούν να διαμοιράζουν αρχεία Tα πρώτα unix συστήματα δεν είχαν γραφικό παραθυρικο περιβάλλον (gui) Χρήση μόνο terminal

Μοντέλο, που έλυσε πάρα πολλές δυσκολίες. Εξαιρετική χρήση σε όλα τα σύγχρονα λειτουργικά συστήματα ακόμη και σήμερα. Multiuser Οs

Ιεραρχικό σύστημα αρχείων (1) To file system έχει δενδρική μορφή. Ολοι οι φάκελοι υπάρχουν κάτω απο τον αρχικό φάκελο ρίζα (root). Συμβολίζεται με / Κάθε υποφάκελος μπορεί να έχει δικούς του υποφακέλους. Τα αρχεία αποτελούν φύλλα του δέντρου, που σχηματίζεται.

Ιεραρχικό σύστημα αρχείων (2) Κάθε αρχείο και φάκελος έχει μια μοναδική διεύθυνση στο χώρο τον αρχείων. Το absolute path σχηματίζεται από το μονοπάτι από τη ρίζα του δένρου μέχρι το φάκελο στον οποίο βρίσκεται το αρχείο μαζί με το όνομα του αρχείου. π.χ /home/bello/test1.c (absolute path)

Ιεραρχικό σύστημα αρχείων (3)

Iεραρχικό σύστημα αρχείων (4) Δεν είναι πάντα απαραίτητο να θυμόμαστε το absolute path του αρχείου Αν βρισκόμαστε σε κάποιο directory τότε όλα τα αρχεία, που βρίσκονται στο φάκελο αυτό μπορούν να αναφερθούν με το σχετικό τους όνομα Δηλαδή, αν βρίσκομαι ήδη στον φάκελο /home μπορώ να αναφερθώ στο test1.c με το όνομα του και μόνο. Ωστόσο όπου και άν βρίσκομαι, αν γνωρίζω το absolute file path ενός αρχείου μπορώ να αναφερθώ σε αυτό και να το επεξεργαστώ.

Δικαίωμα αρχείων-καταλογων Σε κάθε unix συστημα υπάρχουν δικαιώματα για διάφορες κατηγορίες χρηστών. Στο diogeni, oι περισσότεροι από εμάς είμαστε απλοί χρήστες και είμαστε ικανοί να τροποποιούμε αρχεία και καταλόγους, που εμείς έχουμε δημιουργήσει. Οι διαχειριστές έχουν αυξημένες δυνατότητες μεταξύ των οποίων η διαχείριση λογαριασμών. CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 12

Γνωριμία με το diogeni

Γνωριμία με τον diogeni O diogenis είναι ο κεντρικός unix server του τμήματος μας (υπάρχει και ο zenon). Με τη χρήση του diogeni μπορούμε να κάνουμε πολλές εργασίες ως φοιτητές στο τμήμα μας. Είναι unix σύστημα, άρα ισχύουν όλα όσα αναφέραμε παραπάνω για τις βασικές αρχές λειτουργίας. Δυνατότητα απομακρυσμένης σύνδεσης μέσω ssh και μέσω του υπολογιστικού κέντρου.

Γνωριμία με το υπολογιστικό κέντρο Για να εισαχθούμε στο σύστημα CENTOS Linux πατάμε πάνω στο CENTOS Linux. Έπειτα, εισάγουμε τα Username και Password, που μας έδωσαν από τη γραμματεία: Username: (π.χ. kounelis ) Πατάμε Enter και πληκτρολογούμε: Password: (π.χ. pass ) 15

Συνδεση με το diogeni Το επόμενο βήμα είναι η είσοδος μας στο απομακρυσμένο τερματικό του συστήματος. Aνοίγουμε το Terminal, με σκοπό να μπορέσουμε να δοκιμάσουμε βασικές εντολές και να γράψουμε το πρώτο C πρόγραμμα, ως εξής: Applications->Favorites-> Terminal Θα χρησιμοποιήσουμε το ssh για να συνδεθούμε στο diogeni

Χρήση ssh Πληκτρολογούμε ssh username@diogenis.ceid.upatras.gr Έπειτα, μας ζητά το password μας και τέλος, μας ζητά επιβεβαίωση ότι θέλουμε να συνδεθούμε πληκτρολογούμε: yes/no αν θέλουμε/δε θέλουμε να συνδεθούμε. Αν πατήσουμε yes, θα είμαστε πλέον συνδεδεμένοι στον diogeni. Όταν συνδεόμαστε απο το υπολογιστικό κέντρο δεν θα μας ζητηθεί ο κωδικός. CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 17

Παράδειγμα χρήσης ssh

Welcome to DIOGENIS.ceid.upatras.gr Αν βλέπουμε αυτό το μήνυμα είμαστε συνδεδεμένοι στο Diogenis και έτοιμοι να γράψουμε βασικές εντολές! Οι εντολές είναι μικρά προγραμματάκια Η γενική μορφή μιας εντολής command_name -some_flags argument1..argumentn To όνομα κάθε εντολής προέρχεται συνήθως από την λειτουργία, που υλοποιεί. Πχ cd -> change directory Αν εκτελεστεί σωστά μια εντολή συνήθως δεν εμφανίζεται κάποιο μήνυμα επιτυχίας. Αν δεν εκτελεστεί τότε θα εμφανιστεί διαγνωστικό μήνυμα CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 19

Ας δούμε μερικές εντολές: Βασικές εντολές (1) mkdir tests Δημιουργούμε έναν υποκατάλογο με το όνομα tests cd tests Αλλάζουμε υποκατάλογο και μπαίνουμε στον υποκατάλογο tests cd.. Γυρνάμε στον αρχικό υποκατάλογο(1 βήμα πίσω) pwd Εμφανίζεται ο υποκατάλογος στον οποίο εργαζόμαστε rmdir tests Οριστική διαγραφή του υποκαταλόγου με το όνομα tests αν είναι κενός! ls/ ls-l Περιεχόμενα υποκαταλόγου/περιεχόμενα καταλόγου σε αναλυτική λίστα CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 20

mv test.c tests Μετακινούμε το αρχείο με το όνομα test.c στο φάκελο με το όνομα tests cp test.c tests/test2.c Αντιγράφει το αρχείο με το όνομα test.c στο φάκελο με το όνομα tests/ αρχείο test2.c rm test2.c Διαγράφουμε το αρχείο με το όνομα test2.c Σε πολλά unix συστήματα δέν μας ζητείται επιβεβαίωση όταν διαγράφουμε κάτι. Απαιτείται ιδιαίτερη προσοχή. Άν θέλουμε να μας ζητάει πάντα επιβεβαίωση εκτελούμε rm -i somefile.c Βασικές εντολές (2) CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 21

Βοηθητικές εντολές quota Παρατηρούμε πόσα από τα 200.000 διαθέσιμα Kbytes χρησιμοποιούμε π.χ:137072/ 2000000 man cdσυνδυάζοντας το man με μία εντολή παίρνουμε πληροφορίες για την εντολή chmod 711 afile Αλλάζουμε τα δικαιώματα χρήσης του αρχείου afile date Βλέπουμε την τρέχουσα ημερομηνία cal 11 2015 Θα δούμε το ημερολόγιο Νοεμβρίου 2015! CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 22

mkdir tests ls cd tests cd tests cd.. ls pwd rmdir tests ls-l Εκτέλεση εντολών (1) CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 23

Εκτέλεση εντολών (2) mkdir test2 pico test1.c (Ctrl+O Save, Ctrl+X Exit) pico test2.c mv test1.c test2 cd test2 ls mv test1.c myfile.c cd.. cp test2.c test2 CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 24

cd test2 ls cp test2.c myfile2.c ls cd.. rmdir test2 cd test2 pico afile rm myfile2.c ls Εκτέλεση εντολών (3) CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 25

rm *.c ls -l chmod 711 afile rm afile cd.. rmdir test2 Εκτέλεση εντολών (4) less afile (read only) CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 26

Για τη μεταφορά αρχείων από τον diogenis στο δικό μας προσωπικό υπολογιστή. Εγκαθιστούμε το filezilla client Για να το χρησιμοποιοήσουμε το filezilla: host: diogenis.ceid.upatras.gr username: kounelis password: pass port:22 Filezilla Tutorial: https://wiki.filezillaproject.org/filezilla_client_tutorial_%28en%29 CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 27

Εκτύπωση Για να εκτυπώσουμε στο σύστημα πατάμε File-> Print και στέλνουμε την εργασία στο CC-All-Printers CC. Για να δούμε την ουρά εκτύπωσης γράφουμε την εντολή: lpq Για να δούμε πόσες διαθέσιμες σελίδες έχουμε να τυπώσουμε χρησιμοποιούμε την εντολή: pages CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 28

Ανοίγουμε τον pico editor γράφοντας στο terminal pico bfile.c CTRL+O Save CTRL+X Exit CTRL+J Justify CTRL+R Read CTRL+W Search PICO (1) CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 29

PICO (2) CTRL+K Cut text CTRL+U Uncut text CTRL+C Cursor text CTRL+T To spell CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 30

Υπάρχει δυνατότητα χρήσης κι άλλων text editors, όπως: Vi Vim Mined Editors Συστήνεται να χρησιμοποιείται ο pico ως πιο φιλικός προς το χρήστη. CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 31

Θα δοκιμάσουμε το test.c #include<stdio.h> int main(void){ printf( Hello World! This is our first C program! \n ); return 0; } Test.c CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 32

Για τη μεταγλώττιση του C κώδικά μας χρησιμοποιούμε τον μεταγλωττιστή (compiler): gcc -o output filename.c Αν θέλουμε να ξέρουμε περισσότερα για τα λάθη μας κατά τη μεταγλώττιση χρησιμοποιούμε: gcc -Wall -o test test.c GCC CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 33

Μεταγλωττίστε: gcc -o test test.c Παράδειγμα GCC Τρέξτε το πρόγραμμά σας:./test CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 34

Θα δοκιμάσουμε το test.c #include<stdio.h> int main(void){ printf( Hello World! This is our first C program! \n ) } Λάθος- Test.c Τι εκτυπώνεται όταν κάνουμε ΤΩΡΑ gcc; CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 35

Τι μάθαμε σήμερα Μάθαμε για την φιλοσοφία των unix συστημάτων και των τρόπο, που λειτουργούν. Γνωρίσαμε βασικές εντολές που μπορούμε να εκτελέσουμε σε συστήματα unix. Μάθαμε πώς αποθηκεύονται τα αρχεία σε ένα unix σύστημα. Περιηγηθήκαμε στο file system με χρήση βασικών εντολών. Δημιουργήσαμε φακέλους και αρχεία.

Τι μάθαμε σήμερα(2) Δημιουργήσαμε ένα απλό πρόγραμμα σε c και το εκτελέσαμε. Μάθαμε πώς να συνδεόμαστε στον diogenis και πώς να μεταφέρουμε αρχεία από τον προσωπικό μας υπολογιστή σε αυτό.

Χρήση διογένη για τις ασκήσεις Για τις ασκήσεις μάς έχουμε τις εξής απλές επιλογές: 1)Να συνδεθούμε στο diogeni, να γράψουμε το πρόγραμμα μας με χρήση κάποιου editor (pico) να το κάνουμε compile και να το εκτελέσουμε. 2)Να γράψουμε το πρόγραμμα μας στον προσωπικό μας υπολογιστή στο σπίτι, να τo μεταφέρουμε μέσω filezilla (winscp, sftp) στον διογένη και να τα εκτελέσουμε όπως πρίν. Προσοχή μεταφέρουμε τα αρχεία.c και όχι τα executables. Και κάνουμε compile στον diogeni

Προγράμματα (ενδεικτικά) Προγράμματα για απομακρυσμένη σύνδση στον διογένη: Windows Os X Linux putty terminal(default) via ssh Iterm2 via ssh Terminal(default) via ssh

Προγράμματα (ενδεικτικά) Επεξεργαστές κειμένου: Windows Os X Linux notepad notepad++ Sublime Textmate (gui) Macvim (gui) Xcode (gui, ide) Vim, vi (terminal) Gedit (gui) Vim, vi, pico (terminal) Sublime

Προγράμματα (ενδεικτικά) Προγράμματα μεταφοράς αρχείων από και πρός τον διογένη: Windows Os X Linux Winscp filezilla Filezilla (gui) Transmit (gui) sftp, ftp ( terminal) Filezilla sftp, ftp

2ο Εργαστήριο Εισαγωγή στην C

Δομή ενός προγράμματος C(1) Αρχεία header που θέλουμε να συμπεριλάβουμε τύπος-επιστρεφόμενης-τιμής όνομα-συνάρτησης (λίστα-παραμέτρων){ } Κορμός-συνάρτησης(εντολές)

Δομή ενός προγράμματος C(2) #include<stdio.h> int main(void){ printf( Hello World! ); } return 0;

Δομή ενός προγράμματος C(3) #include<stdio.h> int main(void){ printf( Hello World! ); Header αρχείο } return 0;

Δομή ενός προγράμματος C(4) #include<stdio.h> int main(void){ printf( Hello World! ); Header αρχείο Η συνάρτηση main() } return 0;

Δομή ενός προγράμματος C(5) #include<stdio.h> int main(void){ printf( Hello World! ); Header αρχείο Η συνάρτηση main() Το πρόγραμμα μας } return 0;

#include<stdio.h> Το Include Το αρχείο Header είναι ένα αρχείο με συγκεκριμένες δηλώσεις μεταβλητών και συναρτήσεων. Η ντιρεκτίβα #include λέει στον προεπεξεργαστή να διαβάσει ένα άλλο αρχείο (στην προκειμένη περίπτωση το stdio.h) και το συμπεριλάβει στο πρόγραμμα (include)

int main(void) Η συνάρτηση main() Η συνάρτηση main είναι η βασική συνάρτηση του προγράμματος σας και η πρώτη που θα τρέξει Αρχικά το int προσδιορίζει τον τύπο μεταβλητής που θα επιστέψει η συνάρτηση (main) Μέσα στην παρένθεση της main προσδιορίζουμε τον τύπο των ορισμάτων. Στην περίπτωση μας δεν έχουμε ορίσματα γι αυτό και έχουμε βάλει void.

Το πρόγραμμα μας Μέσα στην main γράφουμε το πρόγραμμα που θέλουμε. Ένα πρόγραμμα αποτελείτε από διάφορες εντολές, όπως printf(... ), scanf(... ), αναθέσεις και δηλώσεις μεταβλητών,...

Δηλώσεις και τύποι μεταβλητών τύπος όνομα-μεταβλητής; π.χ. int number; Τύποι μεταβλητών int ακέραιος προσημασμένος αριθμός char χαρακτήρας float αριθμός κινητής υποδιαστολής double αριθμός κινητής υποδιαστολής, διπλής ακρίβειας void απουσία τιμής

Ανάθεση μεταβλητών Όνομα-μεταβλητής = τιμή; π.χ. number = 10; Ο τύπος της τιμής πρέπει να ταιριάζει με τον τύπο της μεταβλητής!!!

Είσοδος και έξοδος Έξοδος στην οθόνη printf( αλφαριθμητικό ); printf( αλφαριθμητικό %τύπος-μεταβλητής, μεταβλητή); Είσοδος από το πληκτρολόγιο scanf( %τύπος-μεταβλητής, &μεταβλητή); Το όρισμα %τύπος-μεταβλητής int %d char %c float %f double %lf

Εκτέλεση αριθμητικών υπολογισμών Τελεστής Σημασία + Πρόσθεση - Αφαίρεση * Πολλαπλασιαμός / διαίρεση % Υπολοιπο διαίρεσης ακεραίων

#include <stdio.h> int main (void){ example1.c printf ( Hello World!!! \n ); printf ( This is my first program using C language \n ); } return 0;

#include <stdio.h> int main (void){ example2.c int number; number = 100; printf ( The value is %d, number); } return 0;

#include <stdio.h> example3.c int main (void) { //use comments!! //use the tab key!! char ch; //we use %c to print variables of type char int i; //we use %d to print variables of type int float f; //we use %f to print variables of type float ch = 'X'; i = 10; f = 20.1; printf ( ch variable is %c \n, ch ); printf ( i variable is %d \n, i ); printf ( f variable is %f \n, f ); return 0; }

#include <stdio.h> example4.c int main (void) { //use comments!! //use the tab key!! int number; //we use %d to print variables of type int float f; //we use %f to print variables of type float printf ( Enter an integer: \n ) ; scanf ( %d, &number ); //assign value of type int from keyboard printf ( Enter a floating point number: \n ) ; scanf ( %f, &f ); //assign value of type float from keyboard printf ( First value you typed: %d \n, number ); printf ( Second value you typed: %f \n, f ); return 0; }

#include <stdio.h> example5.c #include <math.h> //Don't forget that!!! int main (void) { double riza; //we use %f to print variables of type double riza = sqrt(10.0) ; printf ( H riza tou 10 einai: %f \n, riza ); return 0; }

#include <stdio.h> #include <math.h> example6.c //Actually we don't need that now int main (void) { //In this program we compute the Area of a box int a, b; //you can define variables of the same type in one line printf ( Enter length of box: \n ); scanf( %d, &a ); printf ( Enter width of box: \n ); scanf( %d, &b ); // Compute AND Print the Area printf ( Area is: %d \n, a * b ); //you can compute inside of printf return 0; }