HY150Ξενοφών Ζαμπούλης HY150 Ε π ι π λέον στοιχεία της C.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τύποι δεδομένων και τελεστές,
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΟ DOS (Disk Operating System)
Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
ΜΑΘΗΜΑ 7ο Κυκλικές και Διπλά Συνδεδεμένες Λίστες,
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
MΑΘ 106/3122 Ξ. Ζαμπούλης ΜΑΘ 106/3122 Γλώσσα Προγραμματισμού Αλφαριθμητικά (Strings)
ΜΑΘ-3122/106 Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Τεχνολογία ΛογισμικούSlide 1 Έλεγχος Καταψύκτη (Ada) Τεχνολογία ΛογισμικούSlide 39 with Pump, Temperature_dial, Sensor, Globals, Alarm; use Globals ; procedure.
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1.  Ένα thread έχει: ID, program counter, register set, stack  Μοιράζεται με τα άλλα threads της ίδιας διεργασίας.
Π ΑΡΑΛΛΗΛΗ / ΚΑΤΑΝΕΜΗΜΕΝΗ ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ Εισαγωγή στο OpenMP.
ΕΠΑΝΑΛΗΨΗΕΠΑΝΑΛΗΨΗ ΠΡΟΓΡΑΜΜΑΤΑ. ΠΡΟΓΡΑΜΜΑ 1 ΕΞΗΓΗΣΤΕ ΤΙ ΕΞΟΔΟ ΠΑΡΑΓΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΠΡΟΓΡΑΜΜΑ #include int main() { char ch; int i; float fl; printf("dose.
Εισαγωγή Ειδικά Θέματα Μεταγγλωτιστών Χειμερινό Εξάμηνο / Κατασκευή compiler για την γλώσσα Minijava.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Ντίρλης Νίκος- ΕΤΥ 4ο ΦΡΟΝΤΙΣΤΗΡΙΟ Παρασκευή Β4 1.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αρχεία.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
MΑΘ 106/3122Ξενοφών Ζαμπούλης ΜΑΘ 106/3122 Γλώσσα Προγραμματισμού Δείκτες (Pointers)
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη C Ακέραιοι.
ΗΥ150 – Προγραμματισμός Ξ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Δομές Δεδομένων.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Μετατροπή Εκφράσεων σε C
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 Δείκτες σε συναρτήσεις Δείκτης σε συνάρτηση – Περιέχει τη διεύθυνση του κώδικα της συνάρτησης – Ό π ως ένας.
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Ζωγραφάκης Ιωάννης.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
2/28/00epl-1311 Παραδειγματα Aλγοριθμων Αριθμος λεξεων που διαβαστηκαν απο εισοδο Εκτυπωση περιφερειας τετραγωνων με * Υπολογισμος exp(x,n) = 1 + x/1!
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Τύ π οι Μεταβλητών Τελεστές Βασική Είσοδος / Έξοδος.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Επιπλέον στοιχεία της C.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”
Ψηφιακά Παιχνίδια και μάθηση Δρ. Νικολέτα Γιαννούτσου Εργαστήριο Εκπαιδευτικής Τεχνολογίας.
ΔΟΜΗ ΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ C 1.Σχόλια 2.Οδηγίες προεπεξεργαστή 3.Ορισμοί τύπων 4.Δηλώσεις συναρτήσεων (πρωτότυπα) 5.Ορισμός της main 6.Ορισμοί συναρτήσεων.
Διασύνδεση LAN Γιατί όχι μόνο ένα μεγάλο LAN
Εισαγωγή στον Προγ/μό Η/Υ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Διευθύνσεις και Πρωτόκολλα στο διαδίκτυο
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Δείκτες Προγραμματισμός Ι
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΛΩΣΣΑ C
Τεχνολογία και Προγραμματισμός Υπολογιστών
Δομές.

ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΛΩΣΣΑ C
Αλγόριθμοι Ταξινόμησης – Μέρος 3
Ταξινόμηση Ορισμός: Δοθέντων των στοιχείων a1,a2,… ,an η ταξινόμηση συνίσταται στην αντιμετάθεση της θέσης των στοιχείων ώστε να τοποθετηθούν με μια νέα.
Τεχνολογία και Προγραμματισμός Υπολογιστών
Μουσενίκας Δημήτριος Βλάχος Χριστόδουλος
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
Εισαγωγή στη Java (Μέρος Α’)
Find: φ σ3 = 400 [lb/ft2] CD test Δσ = 1,000 [lb/ft2] Sand 34˚ 36˚ 38˚
Αρχές Προγραμματισμού (C)
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Τύποι δεδομένων και τελεστές,
Είσοδος/έξοδος χαμηλού επιπέδου
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΛΩΣΣΑ C
ΑΣΚΗΣΕΙΣ.
Πρόσβαση και Περαιτέρω Χρήση Δημόσιας Πληροφορίας Η πλευρά του Χρήστη
Μεταγράφημα παρουσίασης:

HY150Ξενοφών Ζαμπούλης HY150 Ε π ι π λέον στοιχεία της C

HY150 Ξενοφών Ζαμπούλης 2 Πρόγραμμα σε Διαφορετικά Αρχεία Οργανώνουμε καλύτερα τον κώδικα Χρήσιμα σε μεγάλα π ρογράμματα – Παράδειγμα (human tracking) Linker, - Ι header files – #include “myheader.h” extern – extern void myfunction();

HY150 Ξενοφών Ζαμπούλης 3 header files – Παράδειγμα - “myAlloc.h” #include #define Pi //Orismos Domwn typedef struct Level { int level; struct List *head; struct List *tail; struct Level *next; } Level; typedef struct List { float **image; int l,c; struct List *next; } List; //Orismos global metablhtwn int globalVariable; //prototypes sunarthsewn void **Alloc2D(int dimx, int dimx_bytes, int dimy, int dimy_bytes); int **FreeInt(int **I, int dimx); Level *AllocTree(int depth, int l, int c); Level *FreeTree(Level *root);

HY150 Ξενοφών Ζαμπούλης 4 Ορίσματα στη γραμμή εντολής int main(int argc, char *argv[]) { int number; if (argc != 2) { printf(“Usage:%s number\n”,argv[0]); exit(0); } number = atoi(argv[1]); … } int main(int argc, char *argv[]) argc: # Ορισμάτων argv: Ορίσματα Παράδειγμα > a.out test.txt //argc = 4 //argv[0] = “a.out” //argv[1] = “10” //argv[2] = “20” //argv[3] = “test.txt”

HY150 Ξενοφών Ζαμπούλης 5 Ορίσματα στη γραμμή εντολής int main(int argc, char *argv[], char *env[]) { int count = 0; for (count = 0; env[count] != 0; count++ ) printf("%s\n",env[count]); } NULL terminated array

HY150 Ξενοφών Ζαμπούλης 6 env[0] : ALLUSERSPROFILE=C:\Documents and Settings\All Users env[1] : APPDATA=C:\Documents and Settings\founder\Application Data env[2] : CLASS_HOME=D:\Program Files\Java\jdk1.6.0_02\lib\dt.jar;.;D:\Program Files\Java\jdk1.6.0_02\lib env[3] : CommonProgramFiles=C:\Program Files\Common Files env[4] : COMPUTERNAME=LUOSIYONG env[5] : ComSpec=C:\WINDOWS\system32\cmd.exe env[6] : FP_NO_HOST_CHECK=NO env[7] : HOMEDRIVE=C: env[8] : HOMEPATH=\Documents and Settings\founder env[9] : JAVA_HOME=D:\Program Files\Java\jdk1.6.0_02 env[10] : LOGONSERVER=\\LUOSIYONG env[11] : NUMBER_OF_PROCESSORS=1 env[12] : OS=Windows_NT env[13] : Path=C:\windows\system32;D:\Program Files\Java\jdk1.6.0_02\bin;D:\xampp\mysql\bin env[14] : PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH env[15] : PROCESSOR_ARCHITECTURE=x86 env[16] : PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 2, AuthenticAMD env[17] : PROCESSOR_LEVEL=15 env[18] : PROCESSOR_REVISION=2f02 env[19] : ProgramFiles=C:\Program Files env[20] : PROMPT=$P$G env[21] : SESSIONNAME=Console env[22] : SystemDrive=C: env[23] : SystemRoot=C:\WINDOWS env[24] : TEMP=C:\DOCUME~1\founder\LOCALS~1\Temp env[25] : TMP=C:\DOCUME~1\founder\LOCALS~1\Temp env[26] : USERDOMAIN=LUOSIYONG env[27] : USERNAME=founder env[28] : USERPROFILE=C:\Documents and Settings\founder env[29] : VS90COMNTOOLS=D:\Program Files\VS2008\Common7\Tools\ env[30] : windir=C:\WINDOWS

HY150 Ξενοφών Ζαμπούλης 7 Χειρισμός Bits Οι τελεστές των bits εφαρμόζονται σε κάθε bit των ακεραίων τιμών και είναι : ~ ( ΣΥΜΠΛΗΡΩΜΑ ) ~1 = 0 ~0 = 1 – ~( ) = ( ) & (AND) 0 & 1 = 0 1 & 1 = 1 – ( ) & ( ) = ( ) | (OR) 0 | 1 = 1 0 | 0 = 0 – ( ) | ( ) = ( ) ^ (XOR) 1 ^ 1 = 0 1 ^ 0 = 1 – ( ) ^ ( ) = ( )

HY150 Ξενοφών Ζαμπούλης 8 Χειρισμός Bits Τελεστές ολίσθησης > – x << y ολισθαίνει το αριστερά κατά y θέσεις bit Τα νέα bits είναι 0 ( ) << 2 = ( ) int a = 1; int b; b = a << 2; /* assigns 4 to b */ a <<= 2; /* changes a to 4 */

HY150 Ξενοφών Ζαμπούλης 9 Χειρισμός Bits Τελεστές ολίσθησης > – x >> y ολισθαίνει το δεξιά κατά y θέσεις bit Αν το x είναι unsigned, τα νέα bits είναι 0 Αλλιώς, τα νέα bits διατηρούν το π ρόσημο ( ανάλογα με την αρχιτεκτονική της μηχανής ) ( ) >> 2 = ( ) (unsigned) ( ) >> 2 = ( ) (signed – sign extension)

HY150 Ξενοφών Ζαμπούλης 10 #define ANIM_LOOP 1 // ( ) #define ANIM_ONCE 2 // ( ) #define ANIM_MAXSPEED 4 // ( ) #define ANIM_MINSPEED 8 // ( ) #define ANIM_CUSTSPEED 16 // ( ) #define ANIM_LINK 32 // ( ) #define ANIM_LINKALL 64 // ( )

HY150 Ξενοφών Ζαμπούλης 11 Testing a bit Problem: given int i, is bit n set (equal to 1)? How can we test if this bit is 1? We can use & operator with a "mask" variable: mask if (i & mask) printf ("yes"); else printf ("no");

HY150 Ξενοφών Ζαμπούλης 12 Toggling a bit and leaving all other bits unchanged x = x ^ mask; (or shorthand x ^= mask;) Bits that are set to 1 in the mask will be toggled in x. Bits that are set to 0 in the mask will be unchanged in x. Toggling means that if the bit is 1, it is set to 0, and if the bit is 0, it is set to 1. XOR truth table 0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 1 ^ 1 = 0

HY150 Ξενοφών Ζαμπούλης 13 Setting a bit to zero and leaving all other bits unchanged x = x & mask; (or x &= mask;) Bits that are set to 1 in the mask will be unchanged in x. Bits that are set to 0 in the mask will be set to zero in x. AND truth table 0 & 0 = 0 1 & 0 = 0 0 & 1 = 0 1 & 1 = 1

HY150 Ξενοφών Ζαμπούλης 14 Setting a bit to one and leaving all other bits unchanged x = x | mask; (or x |= mask;) Bits that are set to 1 in the mask will be set to one in x. Bits that are set to 0 in the mask will be unchanged in x. OR truth table 0 | 0 = 0 1 | 0 = 1 0 | 1 = 1 1 | 1 = 1