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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. Δείκτες (Διάλεξη 14)

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. (Διάλεξη 14) Παράδειγμα: Αλλαγή τιμής μεταβλητής μόνο τοπικά

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

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

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

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

Διαδικασία Ανάπτυξης Λογισμικού

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

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

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

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

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

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

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

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

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

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

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

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

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

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.

Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C

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

Προγραμματισμός Η/Υ. Ενότητα 7: Συναρτήσεις

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

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

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

Προγραµµατιστικές Τεχνικές

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

Συναρτήσεις και διαδικασίες

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

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

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

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

Προγραμματισμός Συστημάτων

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

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

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

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

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

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

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

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

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

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

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

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

Εισαγωγή στον δομημένο προγραμματισμό

Διάλεξη 11η: Δείκτες, μέρος 1

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

Συναρτήσεις. Εισαγωγή

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

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

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

int abs( int x ), επιστρέφει την απόλυτη τιμή του ακεραίου x Πχ abs( 11) ισούται με 11, abs(34) ισούται με 34 double fb( fabs( double x ), επιστρέφει

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο. Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

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

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

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

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

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

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

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

Transcript:

Ηβασικήσυνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;)

Συναρτήσεις Ησυνάρτησηείναι ένα υποπρόγραμμα που εκτελεί συγκεκριμένες λειτουργίες και ανάλογα με τα δεδομένα εισόδου (παράμετροι συνάρτησης) υπολογίζει τα δεδομένα εξόδου (επιστρεφόμενος τύπος). Δεδομένα Εισόδου ΣΥΝΑΡΤΗΣΗ Δεδομένα Eξόδου Πχ η τριγωνομετρική συνάρτηση sin(x), υπολογίζει το ημίτονο της γωνίας x.

Δήλωση Συνάρτησης (Επικεφαλίδα) Τύπος Δεδομένων ΌνομαΣυνάρτησης ( Παράμετροι ); Αν δεν επιστρέφεται τίποτα: void Αν δεν υπάρχουν: void Αν υπάρχουν λίστα τυπικών παραμέτρων: Τύπος1 μεταβλ1,..,τύποςν μεταβλν Παράδειγμα: int CalculateSum( int a, int b );

Υλοποίηση Συνάρτησης Τύπος Δεδομένων ΌνομαΣυνάρτησης ( Παράμετροι ) { Δηλώσεις μεταβλητών Εντολές Επιστροφή τύπου δεδομένων (όταν υπάρχει)

Κλήση Συνάρτησης ΌνομαΣυνάρτησης( Λίστα Πραγματικών Παραμέτρων ); Αν δεν υπάρχουν, κενό Πχ. Function1(); Αν υπάρχουν, λίστα μεταβλητών ή αριθμητικών τιμών, διαχωρισμένες με κόμμα Πχ. Function1(12,4,a,b);

Κλήση H ροή ελέγχου του προγράμματος είναι σειριακή και εκτελούνται οι εντολές και συναρτήσεις της main. Όταν κληθεί μια συνάρτηση ο έλεγχος του προγράμματος μεταφέρεται στην καλούμενη συνάρτηση. Κάθε συνάρτηση μπορεί να καλέσει και άλλες συναρτήσεις. (Δεν μπορεί να καλέσει τη main.)

Συναρτήσεις Δομή προγράμματος Όλες οι συναρτήσεις πρέπει να δηλωθούν Ηδήλωσηγίνεταιπάνταπριντηmain. Η υλοποίηση μπορεί να γίνει ταυτόχρονα με τη δήλωση, ή ξεχωριστά πριν ή μετά τη main.

Συναρτήσεις Δομή προγράμματος 1 HEADER FILES ΔΗΛΩΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΣΥΝΑΡΤΗΣΗΣ main(){ Δηλώσεις Μεταβλητών ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΗΣ Σώμα εντολών return 0;

Παράδειγμα 1 Δήλωση μαζί με #include <stdio.h> #include <stdlib.h> υλοποίηση void ektyposi_epilogwn( void ) { printf( 1. Method 1\n ); printf( 2. Method 2\n ); printf( 3. Method 3\n );

Παράδειγμα 1 - Κλήση main(){ ektyposi_epilogwn(); system( pause ); return 0;

HEADER FILES ΔΗΛΩΣΗ ΣΥΝΑΡΤΗΣΗΣ main(){ Δηλώσεις Μεταβλητών Συναρτήσεις Δομή προγράμματος 2 ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΗΣ Σώμα εντολών return 0; ΥΛΟΠΟΙΗΣΗ ΣΥΝΑΡΤΗΣΗΣ

Παράδειγμα 2 Δήλωση #include <stdio.h> #include <stdlib.h> void ektyposi_epilogwn( void ) ;

Παράδειγμα 2 - Κλήση main(){ ektyposi_epilogwn(); system( pause ); return 0;

Παράδειγμα 2 - Υλοποίηση void ektyposi_epilogwn( void ) { printf( 1. Method 1\n ); printf( 2. Method 2\n ); printf( 3. Method 3\n );

Συναρτήσεις με επιστρεφόμενο τύπο int CalculateSum( int a, int b ) { int c; c = a + b; return c ; Ηεντολήreturn παραλείπεται ΜΟΝΟ στην περίπτωση που η συνάρτηση δεν επιστρέφει κάποιο τύπο δεδομένων (void). Με την εντολή return ο έλεγχος ροής του προγράμματος επιστρέφει στο σημείο απ όπου κλήθηκε η συνάρτηση.

Κλήση main(){ int k; k = CalculateSum(5,2); printf( Calculated:%d,k); system( pause ); return 0;

Παράμετροι Λίστα τυπικών παραμέτρων στη δήλωση: int CalculateSum( int a, int b ) ; Λίστα πραγματικών παραμέτρων στην κλήση int k=2,l=5; CalculateSum( k, l ) ; Μεταβλητές ή αριθμητικές τιμές Οι τιμές των πραγματικών παραμέτρων αντιγράφονται στις τυπικές παραμέτρους όταν καλείται η συνάρτηση

Παράδειγμα Φτιάξτε μία συνάρτηση που να προσδιορίζει το πρόσημο ενός αριθμού (τύπος δεδομένων float).

Αλγόριθμος 1. Ζητάω από το χρήστη να δώσει έναν πραγματικό 2. Διαβάζεται ο αριθμός που θα δώσει ο χρήστης 3. Φτιάχνω συνάρτηση με παράμετρο τον αριθμό και επιστρεφόμενο τύπο χαρακτήρα 4. Αν ο αριθμός είναι αρνητικός επιστρέφεται -, διαφορετικά επιστρέφεται + 5. Εκτύπωση του χαρακτήρα

Επικεφαλίδα Συνάρτησης char CalcProsimo( float a ); Έξοδος: χαρακτήρας που δηλώνει το πρόσημο του a Είσοδος: ο πραγματικός αριθμός

Πρόγραμμα #include <stdio.h> #include <stdlib.h> char CalcProsimo( float a) { if (a < 0) return - ; else return + ; Η εντολή return θα πρέπει να υπάρχει σε όλες τις περιπτώσεις

Πρόγραμμα main(){ float w; char c; printf( Input float\n ); scanf( %f,&w); c = CalcProsimo( w ); printf( To prosimo einai: %c,c); system( pause ); return 0; Η αριθμητική τιμή της w θα αντιγραφεί στην τυπική παράμετρο a της συνάρτησης CalcProsimo Αναθέτω στη c την τιμή που επιστρέφει η συνάρτηση

Παράδειγμα Γράψτε μια συνάρτηση που να επιστρέφει το μεγαλύτερο από 3 ακέραιους αριθμούς.

Αλγόριθμος 1. Ζητώαπότοχρήστηναδώσει3 αριθμούς 2. Διαβάζονται οι αριθμοί 3. Σχεδιάζω συνάρτηση με παραμέτρους τους 3 ακεραίους και επιστρεφόμενη τιμή ακέραιο (για το μέγιστο)

Αλγόριθμος 4. Θα χρησιμοποιήσω μια μεταβλητή για να κρατήσω προσωρινό μέγιστο 5. Αν ο 1 ος ακέραιος είναι μεγαλύτερος από τον 2 ο, ο προσωρινός μέγιστος θα έχει την τιμή του 1 ου, διαφορετικά θα έχει την τιμή του δεύτερου 6. Αν ο 3ος ακέραιος είναι μεγαλύτερος από τον προσωρινό μέγιστο, ο προσωρινός μέγιστος θα πάρει την τιμή του 3 ου ακεραίου.

Σχηματικά 7. Επιστρέφεται ο προσωρινός ακέραιος 1 ος ακέραιος int arithmos1; 2 ος ακέραιος int arithmos2; 3 ος ακέραιος int arithmos3; 1. Αν arithmos1>arithmos2 Max = arithmos1 2. Διαφορετικά Max = arithmos2 1. Αν arithmos3>max Max = arithmos3

Επικεφαλίδα συνάρτησης int FindMax (int number1, int number2, int number3);

Πρόγραμμα #include <stdio.h> #include <stdlib.h> int FindMax( int number1, int number2, int number3) { int max; if ( number1 > number2) max = number1; else max = number2;

Πρόγραμμα if ( number3 > max) max = number3; return max;

Πρόγραμμα main(){ int a,b,c,result; printf( Input 3 integers\n ); scanf( %d%d%d,&a,&b,&c); result = FindMax(a,b,c); printf( Max number is:%d\n,result); system( pause ); return 0;

Παράδειγμα Ένα πρόγραμμα που να βρίσκει το μεγαλύτερο από 5 αριθμούς χρησιμοποιώντας τη συνάρτηση FindMax

Πρόγραμμα main(){ int a,b,c,d,e,result; printf( Input 5 integers\n ); scanf( %d%d%d%d%d,&a,&b,&c,&d,&e); result = FindMax(a,b,c); result = FindMax(result,d,e); printf( Max number is:%d\n,result); system( pause ); return 0;

Κατάσταση Μνήμης Ημνήμηείναι οργανωμένη σε «κελιά». Στα κελιά αποθηκεύονται οι τιμές των μεταβλητών και κάθε κελί έχει μία μοναδική διεύθυνση. 1000 1001 1002 1003 1004 132 8 5 43 1 1005 1006 1007 1008 1009 a 0 16000 b 800 1010 1011 1012 1013 1014 7 13 C 3 21

Μεταβλητές και μνήμη 1000 1001 1002 1003 1004 132 8 5 43 1 1005 1006 1007 1008 1009 a 0 16000 b 800 Οι μεταβλητές είναι συμβολικά ονόματα που χρησιμοποιούμε γιανααναφερθούμε σε δεδομένα που είναι αποθηκευμένα στη μνήμη. 1010 1011 1012 1013 1014 7 13 C 3 21 int x = 21;

Μεταβλητές και μνήμη Μετά την εκτέλεση κάθε εντολής, αλλάζει η κατάσταση της μνήμης. Πχ με εντολή x=2; Αλλάζει η αριθμητική τιμή της x

Χαρακτηριστικά Μεταβλητών Εμβέλεια (ορατότητα) Διάρκεια ζωής (δημιουργία καταστροφή) Θέση στη μνήμη

Καθολικές (public) Μεταβλητές Δηλώνονται έξω από τη main Εμβέλεια: Είναι ορατές από όλες τις συναρτήσεις που ακολουθούν της δήλωσης Διάρκεια: Δημιουργούνται με την εκκίνηση εκτέλεσης του προγράμματος και καταστρέφονται με το τέλος εκτέλεσης Θέση στη μνήμη: Τοποθετούνται σε θέσεις οι οποίες υπάρχουν καθόλη τη διάρκεια εκτέλεσης του προγράμματος

Παράδειγμα #include <stdio.h> #include <stdlib.h> int a; void print(void){ printf( To a exei timh:%d\n, a ); main(){ a = 4; print(); system( pause ); return 0; Καθολική (public). Ορατή από όλες τις συναρτήσεις που έχουν δηλωθεί ΠΑΡΑΚΑΤΩ

Βρείτε το λάθος #include <stdio.h> #include <stdlib.h> void menu(void){ printf( Value of a is:%d, a ); int a; void print(void){ printf( To a exei timh:%d\n, a ); main(){ a = 4; menu(); print(); system( pause ); return 0; Μήνυμα λάθους από τον Compiler: To a δεν έχει δηλωθεί

Τοπικές (local) μεταβλητές Δηλώνονται μέσα σε κάποιο σώμα εντολών ή σε σώμα συνάρτησης Εμβέλεια: Είναι ορατές μόνο στο σώμα συνάρτηση που τις εμπεριέχει Διάρκεια: Δημιουργούνται κατά την εκκίνηση του σώματος εντολών ή της συνάρτησης και καταστρέφονται με το τέλος εκτέλεσης του σώματος ή της συνάρτησης Θέση στη μνήμη: Τοποθετούνται σε θέσεις που δεσμεύονται μόνο για την εκτέλεση του σώματος εντολών ή της συνάρτησης

Σχηματικά 1000 1001 9.8 1002 1003 3 1004 124 1005 26 Διευθύνσεις μνήμης που δεσμεύονται για τις τοπικές μεταβλητές της main. Διευθύνσεις μνήμης πουvoid print(void){ δεσμεύονται για τις τοπικές μεταβλητές της print. int a,b,k; a =3; b=124; k = 26; printf( A:%d,B:%d,k:%d,a,b,k); main(){ double k; k=9.8; print(); printf( k:%d,k);

Έλεγχος ροής προγράμματος 4. Δέσμευση μνήμης για τοπικές μεταβλητές της print 5. 6. 7. 8. 1. Δέσμευση μνήμης για τοπικές μεταβλητές της main 2. 3. 9. void print(void){ int a,b,k; a =3; b=124; k = 26; printf( A:%d,B:%d,k:%d,a,b,k); main(){ double k; k=9.8; print(); printf( k:%d,k);

Βρείτε τι θα εκτυπωθεί int CalculateDiff(int a, int b ) { int c=9; printf( Value of c is:%d,9); return (a b); main() { int a=3, b=1, c=7, d=2; printf( Difference is : %d\n, CalculateDiff( c, d ) );

Στατικές Μεταβλητές - Static Δήλωση: static τύπος ΌνομαΜεταβλητής Πχ static int a=0; Οι στατικές μεταβλητές δεσμεύουν θέσεις μνήμης καθόλη τη διάρκεια του προγράμματος (η μνήμηδεν αποδεσμεύεται στο τέλος εκτέλεσης της συνάρτησης)

Παράδειγμα void printvalue(void){ static int k = 0; k++; printf( To k:%d\n,k); main(){ printvalue(); printvalue(); printvalue(); Η αρχικοποίηση γίνεται κατά το compilation Η μεταβλητή k δεν καταστρέφεται στο τέλος εκτέλεσης της συνάρτησης. Η τιμή της διατηρείται μέχρι το τέλος εκτέλεσης του προγράμματος. Θα εκτυπωθεί To k:1 To k:2 To k:3

Τι θα εκτυπωθεί void print(){ int k = 0; while(k<5) k++; printf( To k:%d\n,k); main() { print(); print(); void print(){ static int k = 0; while(k<5) k++; printf( To k:%d\n,k); main() { print(); print();