Γλώσσα Προγραμματισμού C

Σχετικά έγγραφα
Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

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

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017

Γλώσσα Προγραμματισμού C

ΤΕΙ Θεσσαλίας, Τμήμα Μηχανικών Πληροφορικής ΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΡΓΑΣΤΗΡΙΟ 9. ΑΣΚΗΣΕΙΣ (με ενδεικτική λύση)

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

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

12. Συναρτήσεις (Μέρος ΙI)

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Γλώσσα Προγραμματισμού C

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

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

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

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

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

Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 25 Ιουνίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας

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

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

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

C: Από τη Θεωρία στην Εφαρμογή

Προγραμματισμός HY: Γλώσσα Προγραμματισμού C

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

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

Οι συναρτήσεις στη γλώσσα C

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

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

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

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 5 Φεβρουαρίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Κατανεμημένος και Παράλληλος Προγραμματισμός

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

Αλγόριθμοι Ταξινόμησης Μέρος 1

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

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

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

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου Θέµα 1. (α') 2 - ii 3 - iii 4 - iv

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

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

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

Σύνθετοι Τύποι εδοµένων. Προγραµµατισµός Ι 1

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόμενη Λύση

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

ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ 8/9/2008

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

Προεπεξεργαστής της C. C Preprocessor. Προγραμματισμός II 1

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

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

είκτες και Πίνακες (2)

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

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

Προγραμματισμός Υπολογιστών με C++

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

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

Εκφωνήσεις ασκήσεων εργαστηρίου 1

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

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

Προγραμματισμός II (Γλώσσα C)

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

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

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

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

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Αʹ. Πίνακες. Άσκηση 1. Λύση. Άσκηση 2. Λύση. Ασκήσεις Εργαστηρίου Προγραμματισμού

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

Επεξεργασία Αρχείων Κειµένου

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

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

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

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Transcript:

Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I Θεσσαλίας Email: savvas@teilar.gr Γλώσσα Προγραμματισμού C Εισήγηση #10 Header Files, Παράμετροι στην main(). Ηλίας Κ. Σάββας Εισήγηση #10 2 Header Files Ηλίας Κ. Σάββας Εισήγηση #10 3 1

Η Standard Library <float.h> διαχείριση floats, <math.h> μαθηματικά, <stdio.h> input / output, <stdlib.h> γενικές συναρτήσεις, <string.h> διαχείριση συμβολοσειρών, <time.h> συναρτήσεις χρόνου. Ηλίας Κ. Σάββας Εισήγηση #10 4 Πρότυπο Δομής - Structure Το πρότυπο μίας δομής μπορεί να χρησιμοποιηθεί σε πολλά προγράμματα παρά να το γράφουμε κάθε φορά που το χρειαζόμαστε, Μπορούμε να γράψουμε το πρότυπο μίας δομής και να το αποθηκεύσουμε με όνομα όπως <any_name.h>, Μετά απλά το συμπεριλαμβάνουμε σε κάθε πρόγραμμα που το χρειαζόμαστε: #include any_name.h ή #include path\any_name.h : #include c:\data\date.h. ΠΡΟΣΟΧΗ: και όχι < > Ηλίας Κ. Σάββας Εισήγηση #10 5 Πρότυπα Συναρτήσεων Ένα σύνολο συναρτήσεων μπορεί να χρησιμοποιηθεί σε πολλά προγράμματα παρά να τις γράφουμε κάθε φορά που τις χρειαζόμαστε, Μπορούμε να γράψουμε ένα σύνολο συναρτήσεων και να τις αποθηκεύσουμε με όνομα όπως <any_name.h>, Μετά απλά τις συμπεριλαμβάνουμε σε κάθε πρόγραμμα που τις χρειαζόμαστε: #include any_name.h ή #include path\any_name.h : #include c:\data\date.h. ΠΡΟΣΟΧΗ: και όχι < > Ηλίας Κ. Σάββας Εισήγηση #10 6 2

Γεωμετρικές Συναρτήσεις #include <math.h> #define Pi 3.14159 float circle_area(float); float circle_perimeter(float); float rectangle_area(float, float); float rectangle_perimeter(float, float); float circle_area(float R) float a; a = Pi * R *R; return a; float circle_perimeter(float R) float p; p = 2 * Pi * R; return p; float rectangle_area(float l, float w) float a; a = l * w; return a; float rectangle_perimeter(float l, float w) float p; p = 2*(l+w); return p; Ηλίας Κ. Σάββας Εισήγηση #10 7 Χρήση Header Files του χρήστη #include "Geometry.h" int main() float Radius = 10.0; float area, perimeter; area = circle_area(radius); perimeter = circle_perimeter(radius); printf("\n\nεμβαδόν = %.2f", area); printf("\n\nπερίμετρος = %.2f\n\n", perimeter); return 0; Ηλίας Κ. Σάββας Εισήγηση #10 8 Άσκηση #1 Να γραφεί ένα header file <stats.h> το οποίο να περιέχει συναρτήσεις για τον υπολογισμό 1) μέγιστου, 2) ελάχιστου, 3) μέσης τιμής τριών πραγματικών αριθμών. Στην συνέχεια να γραφεί πρόγραμμα το οποίο να χρησιμοποιεί αυτό το header file. Ηλίας Κ. Σάββας Εισήγηση #10 9 3

Header File float max_num(float, float, float); float min_num(float, float, float); float average(float, float, float); float max_num(float a, float b, float c) float temp; temp = a; if (b > temp) temp = b; if (c > temp) temp = c; return temp; float min_num(float a, float b, float c) float temp; temp = a; if (b < temp) temp = b; if (c < temp) temp = c; return temp; float average(float a, float b, float c) float temp; temp = (a+b+c)/3; return temp; Ηλίας Κ. Σάββας Εισήγηση #10 10 Πρόγραμμα #include "stats.h" int main() float x = 20, y = 3, z = 1.5; float av; av = average(x, y, z); printf("\n\nμέγιστη τιμή = %.2f", max_num(x,y,z)); printf("\n\nελάχιστη τιμή= %.2f", min_num(z,y,z)); printf("\n\naverage = %.2f\n\n", av); return 0; Ηλίας Κ. Σάββας Εισήγηση #10 11 Άσκηση #2 Να γραφεί ένα header file <dates.h> το οποίο να περιέχει μία δομή ημερομηνίας και συναρτήσεις οι οποίες 1) να εισάγουν μία ημερομηνία και, 2) να εκτυπώνουν μία ημερομηνία. Στην συνέχεια να γραφεί πρόγραμμα το οποίο να χρησιμοποιεί αυτό το header file. Ηλίας Κ. Σάββας Εισήγηση #10 12 4

Header File struct date int day; int month; int year; ; struct date input_date(int, int, int); void display_date(struct date); struct date input_date(int a, int b, int c) struct date D; D.day = a; D.month = b; D.year = c; return D; void display_date(struct date D) printf("\n %2d-%2d-%4d\n", D.day, D.month, D.year); Ηλίας Κ. Σάββας Εισήγηση #10 13 Πρόγραμμα #include "dates.h" int main() int a, b, c; struct date X; printf("\n\nεισαγωγή ημέρας, μήνα και έτους: "); scanf("%d%d%d", &a, &b, &c); X = input_date(a, b, c); display_date(x); return 0; Ηλίας Κ. Σάββας Εισήγηση #10 14 Παράμετροι στην main() Ηλίας Κ. Σάββας Εισήγηση #10 15 5

Παράμετροι στην main() Πολλές φορές απαιτείται να τρέξει ένα πρόγραμμα με αρχικές παραμέτρους: Αποκλειστικά και μόνο 2 παράμετροι: argc (ARGument Counter) κρατάει το πλήθος των παραμέτρων που θα δόθηκαν στη γραμμή διαταγής και argv (ARGument Vector) είναι ένας πίνακας που κρατάει αυτές καθαυτές τις παραμέτρους. Ηλίας Κ. Σάββας Εισήγηση #10 16 Παράμετροι στην main() Όπως όλα τα αριθμήσιμα μεγέθη στην C, έτσι και εδώ, η argc ξεκινάει από 0 αλλά επειδή μετράει σαν παράμετρο και το ίδιο το πρόγραμμα, η πρώτη πραγματική παράμετρος είναι η υπ αριθμόν 1, η δεύτερη 2 κοκ. Αντίστοιχα, το όνομα της πρώτης παραμέτρου αποθηκεύεται σαν argv[1], της δεύτερης σαν argv[2], κοκ. Το όνομα του ίδιου του προγράμματος είναι αποθηκευμένο σαν argv[0]. Ηλίας Κ. Σάββας Εισήγηση #10 17 Γενική Σύνταξη Τύπος επιστρεφόμενου δεδομένου main(int argc, *char argv[]) int main ( int argc, *char argv[]) ---------------- return 0; Ηλίας Κ. Σάββας Εισήγηση #10 18 6

Άσκηση #1 Να γραφεί πρόγραμμα το οποίο με χρήση των παραμέτρων στην main να εκτελείται από την γραμμή διαταγής με το όνομα του χρήστη και τον κωδικό του. Το πρόγραμμα να ελέγχει εάν ο χρήστης είναι εξουσιοδοτημένος να χρησιμοποιήσει το πρόγραμμα. Ηλίας Κ. Σάββας Εισήγηση #10 19 Λύση #include <string.h> int main(int argc, char *argv[]) char user[]="maria", password[]="12345"; If (argc < 3) printf("\n Λείπουν Παράμετροι. Το πρόγραμμα θα τερματισθεί "); return -1; if (strcmp(user,argv[1])==0 & strcmp(password,argv[2])==0) printf("\n\n Καλωσήρθες %s!\n\n",user); else if (strcmp(user,argv[1])==0 & strcmp(password,argv[2])!=0) printf("\n Λάθος κωδικός... Το πρόγραμμα θα τερματισθεί\n"); else printf("\n Άγνωστος χρήστης... Το πρόγραμμα θα τερματισθεί \n"); Ηλίας Κ. Σάββας Εισήγηση #10 20 Άσκηση #2 Να γραφεί πρόγραμμα στο οποίο ο χρήστης να εισάγει έναν θετικό ακέραιο αριθμό από την γραμμή διαταγής και το πρόγραμμα να μετράει (εκτυπώνει) αντίστροφα από τον αριθμό που εισήγαγε ο χρήστης μέχρι το 0. Όταν τελειώνει να παράγει και έναν ήχο (\a). Ηλίας Κ. Σάββας Εισήγηση #10 21 7

Λύση #include <ctype.h> int main(int argc, char *argv[]) int metritis, N; if (argc < 2) printf("\n Λείπουν Παράμετροι"); return -1; N=atoi(argv[1]); for (metritis=n; metritis>=0; metritis--) printf("\n%d",metritis); printf("\a"); Η συνάρτηση atoi μετατρέπει μία συμβολοσειρά σε ακέραιο αριθμό (και εμπεριέχεται στο ctype.h) Ηλίας Κ. Σάββας Εισήγηση #10 22 Τέλος της #10 Εισήγησης Ερωτήσεις??? Χρησιμοποιήστε το email εάν θέλετε να με ρωτήσετε οτιδήποτε: savvas@teilar.gr Σημειώσεις Μαθήματος (και όχι μόνο): http://e-class.teilar.gr/ Ηλίας Κ. Σάββας Εισήγηση #10 23 8