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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων

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

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

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

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

Υπολογισμός - Εντολές Ελέγχου

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

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

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

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

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

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

Υπολογισμός - Εντολές Επανάληψης

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

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

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

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

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

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

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

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

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

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? )

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Transcript:

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

Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα. Πολλές λειτουργίες σε ένα πρόγραμμα επαναλαμβάνονται σε διάφορα σημεία. Λύση: Διάσπαση προγράμματος σε μικρότερα, καλά ορισμένα κομμάτια.

Συναρτήσεις 19.11.16 Β. Ντουφεξή 3 Συνάρτηση = ένα "μαύρο κουτί" που έχει όνομα δέχεται ένα αριθμό από εισόδους παράγει μια έξοδο εκτελεί μια καλά ορισμένη λειτουργία μέσω μιας σειράς εντολών που παράγουν την έξοδο από τις εισόδους όνομα είσοδοι εντολές έξοδος

Συναρτήσεις 19.11.16 Β. Ντουφεξή 4 Δε χρειάζεται να γνωρίζουμε τι περιέχει το "μαύρο κουτί" για να χρησιμοποιήσουμε μια συνάρτηση. π.χ. χρησιμοποιούμε την prin6 χωρίς να γνωρίζουμε πώς ακριβώς εκτυπώνει τα δεδομένα στην οθόνη. Αρκεί να γνωρίζουμε το όνομά της, τι εισόδους χρειάζεται και τι είδους έξοδο θα παράγει. Αυτές οι πληροφορίες αναφέρονται στη δήλωση μιας συνάρτησης. Το "μαύρο κουτί" αποτελεί τον ορισμό της συνάρτησης.

Συναρτήσεις 19.11.16 Β. Ντουφεξή 5 Οι δηλώσεις των συναρτήσεων βιβλιοθήκης της C βρίσκονται σε ειδικά αρχεία με κατάληξη.h. πχ. stdio.h για συναρτήσεις εισόδου/εξόδου, math.h για μαθηματικές συναρτήσεις string.h για συναρτήσεις που δρουν σε συμβολοσειρές κτλ. Χρησιμοποιούμε #include<αρχείο.h> για να συμπεριλάβουμε το αρχείο στο πρόγραμμά μας. Τα < > σημαίνουν ότι το εν λόγω αρχείο βρίσκεται στο φάκελο των.h αρχείων της βιβλιοθήκης.

Συναρτήσεις 19.11.16 Β. Ντουφεξή 6 Μπορούμε κι εμείς να φτιάξουμε.h αρχείο στο οποίο θα βάλουμε δηλώσεις δικών μας συναρτήσεων. Σε αυτή την περίπτωση χρησιμοποιούμε #include"αρχείο.h" για να συμπεριλάβουμε το αρχείο στο πρόγραμμά μας. Τα " " σημαίνουν ότι το εν λόγω αρχείο βρίσκεται στον ίδιο φάκελο όπου είναι και το πρόγραμμά μας (το.c αρχείο). Εναλλακτικά, βάζουμε τις δηλώσεις των δικών μας συναρτήσεων μέσα στο.c αρχείο.

Πώς γράφουμε μια δική μας συνάρτηση 19.11.16 Β. Ντουφεξή 7 Δηλώνουμε τη συνάρτηση, προσδιορίζοντας όνομα τον τύπο της τιμής που επιστρέφει μια λίστα των ποσοτήτων που χρειάζεται ως εισόδους και τους τύπους τους (λίστα παραμέτρων) Οι παραπάνω πληροφορίες αποτελούν το prototype της συνάρτησης. Ορίζουμε τη συνάρτηση: Γράφουμε το block εντολών που αποτελούν το σώμα της συνάρτησης και που εκτελούνται όταν χρησιμοποιούμε (καλούμε) τη συνάρτηση.

Prototype συνάρτησης 19.11.16 Β. Ντουφεξή 8 Η σύνταξη του prototype μιας συνάρτησης είναι: τύπος_επιστροφής όνομα ( λίστα παραμέτρων ) ; Αν η συνάρτηση δεν επιστρέφει κάτι, χρησιμοποιούμε void ως τύπο επιστροφής. Οι κανόνες για το όνομα είναι ίδιοι με αυτούς για την ονομασία μεταβλητών. Συνήθως επιλέγουμε ρήματα ή ρηματικές φράσεις, διότι οι συναρτήσεις περιγράφουν πράξεις/ενέργειες. Η λίστα παραμέτρων μοιάζει με μια σειρά δηλώσεων μεταβλητών, με κόμματα ανάμεσα. Τα prototypes τοποθετούνται πριν τη main.

Ορισμός συνάρτησης 19.11.16 Β. Ντουφεξή 9 Η σύνταξη του ορισμού μιας συνάρτησης είναι: τύπος_επιστροφής όνομα (λίστα παραμέτρων) { εντολές ; Η πρώτη γραμμή είναι ίδια με το prototype, χωρίς το ; Στα άγκιστρα περικλείεται το σώμα της συνάρτησης Αν ο τύπος επιστροφής δεν είναι void, η συνάρτηση πρέπει να περιέχει τουλάχιστον μία εντολή return η οποία επιστρέφει μία τιμή τύπου τύπος_επιστροφής Ο ορισμός τοποθετείται μετά τη main.

Παράδειγμα 19.11.16 Β. Ντουφεξή 10 Γράψτε ένα πρόγραμμα που διαβάζει 2 ακεραίους και βρίσκει κι εκτυπώνει τον μεγαλύτερο. χωρίς συνάρτηση με συνάρτηση η οποία δεδομένων 2 ακεραίων, επιστρέφει τον μεγαλύτερο. Παρατήρηση: Μια συνάρτηση πρέπει να υλοποιεί μία, καλά ορισμένη λειτουργία. Δε θέλουμε να κάνει _και_ εκτύπωση αλλά μόνο να υπολογίζει και να μας δίνει το αποτέλεσμα.

Παράδειγμα - χωρίς συνάρτηση 19.11.16 Β. Ντουφεξή 11 #include <stdio.h> int main (int argc, char *argv[]) { int num1, num2, max; printf("enter 2 integers: "); scanf("%d %d", &num1, &num2); if (num1 > num2) { max = num1; else { max = num2; printf("max = %d\n", max); return 0;

Παράδειγμα - με συνάρτηση 19.11.16 Β. Ντουφεξή 12 Το prototype: int maxof2 (int x, int y); Ο ορισμός: int maxof2 (int x, int y) { int max; if (x > y) { max = x; else { max = y; return max;

Παράδειγμα με συνάρτηση 19.11.16 Β. Ντουφεξή 13 Η συνάρτηση που κατασκευάσαμε παίρνει δύο ακέραιες παραμέτρους και επιστρέφει μια ακέραια τιμή. Για να την χρησιμοποιήσουμε (καλέσουμε) γράφουμε το όνομά της και μέσα σε παρενθέσεις μια τιμή για κάθε μία παράμετρο, με κόμμα ανάμεσα. Οταν καλούμε μια συνάρτηση που επιστρέφει κάτι, τότε η κλήση είναι μια έκφραση (δηλαδή έχει τιμή) και μπορούμε να τη χρησιμοποιήσουμε στο δεξί μέρος μιας ανάθεσης ώστε να αποθηκεύσουμε το αποτέλεσμα σε μια μεταβλητή.

Παράδειγμα - με συνάρτηση 19.11.16 Β. Ντουφεξή 14 #include <stdio.h> int maxof2 (int x, int y); int main (int argc, char *argv[]) { int num1, num2, max; Το πλήρες πρόγραμμα printf("enter 2 integers: "); scanf("%d %d", &num1, &num2); max = maxof2(num1, num2); printf("max = %d\n", max); return 0; int maxof2 (int x, int y) { int maximum; if (x > y) { maximum = x; else { maximum = y; return maximum;

Παράδειγμα - παραλλαγή 19.11.16 Β. Ντουφεξή 15 #include <stdio.h> int maxof2 (int x, int y); int main (int argc, char *argv[]) { int num1, num2, max; Το πλήρες πρόγραμμα printf("enter 2 integers: "); scanf("%d %d", &num1, &num2); max = maxof2(num1, num2); printf("max = %d\n", max); return 0; int maxof2 (int x, int y) { if (x > y) { return x; else { return y;

Παράδειγμα - πώς δουλεύει #include <stdio.h> int maxof2 (int x, int y); int main (int argc, char *argv[]) { int num1, num2, max; printf("enter 2 integers: "); scanf("%d %d", &num1, &num2); max = maxof2(num1, num2); printf("max = %d\n", max); return 0; int maxof2 (int x, int y) { int maximum; if (x > y) { maximum = x; else { maximum = y; return maximum; Πριν: Η παράμετρος x παίρνει ως τιμή ένα αντίγραφο της τιμής της μεταβλητής num1. Η παράμετρος y παίρνει ως τιμή ένα αντίγραφο της τιμής της μεταβλητής num1. Μετά: Η έκφραση maxof2(num1,num2) παίρνει ως τιμή ένα αντίγραφο της τιμής της μεταβλητής maximum. 19.11.16 Β. Ντουφεξή 16

Λίγη ορολογία 19.11.16 Β. Ντουφεξή 17 Οι παράμετροι που εμφανίζονται στο prototype μιας συνάρτησης λέγονται τυπικές παράμετροι (formal parameters) Οταν καλούμε τη συνάρτηση, πρέπει να προσδιορίσουμε συγκεκριμένες τιμές για τις παραμέτρους. Αυτές οι τιμές λέγονται πραγματικές παράμετροι (actual parameters). Κατά την εκτέλεση της συνάρτησης, οι πραγματικές παράμετροι αντιγράφονται στις τυπικές παραμέτρους. Επειδή αντιγράφεται η τιμή των παραμέτρων, λέμε ότι γίνεται κλήση κατ'αξία (call by value)

Παράδειγμα - παραλλαγή 19.11.16 Β. Ντουφεξή 18 #include <stdio.h> int maxof2 (int x, int y); int main (int argc, char *argv[]) { int num1, num2; printf("enter 2 integers: "); scanf("%d %d", &num1, &num2); printf("max = %d\n", maxof2(num1, num2)); return 0; int maxof2 (int x, int y) { if (x > y) { return x; else { return y;

Τοπικές μεταβλητές 19.11.16 Β. Ντουφεξή 19 Μεταβλητές που δηλώνονται μέσα σε μια συνάρτηση λέγονται τοπικές (local) και είναι ορατές μόνο μέσα σε αυτή τη συνάρτηση. Λέμε ότι η εμβέλειά τους (scope) είναι η συνάρτηση. Διαφορετικές συναρτήσεις μπορούν να χρησιμοποιούν ίδια ονόματα για τις τοπικές μεταβλητές τους χωρίς να υπάρχει πρόβλημα. Οι παράμετροι μιας συνάρτησης είναι επίσης ορατές μόνο μέσα στη συνάρτηση.

#include <stdio.h> int maxof2 (int x, int y); Τοπικές μεταβλητές int main (int argc, char *argv[]) { int x, y, max; printf("enter 2 integers: "); scanf("%d %d", &x, &y); max = maxof2(x, y); printf("max = %d\n", max); return 0; Καμία σχέση ανάμεσα στις κόκκινες και μπλε μεταβλητές/παραμέτρους int maxof2 (int x, int y) { int max; if (x > y) { max = x; else { max = y; return max; 19.11.16 Β. Ντουφεξή 20

Καθολικές μεταβλητές 19.11.16 Β. Ντουφεξή 21 Μπορούμε να δηλώσουμε μεταβλητές έξω από κάποια συνάρτηση. Αυτές λέγονται καθολικές (global) και είναι ορατές σε όλο το πρόγραμμα. Επικίνδυνες! Πιθανότητα για επικαλυπτόμενες εμβέλειες Κακές! Χαλάει την "ανεξαρτησία" ανάμεσα σε διαφορετικές συναρτήσεις. Συνήθως δε χρειάζονται!

Εμβέλεια τοπικών μεταβλητών 19.11.16 Β. Ντουφεξή 22 #include<stdio.h> double square(double x); int main () { double num, num_squared; Εµβέλεια num, num_squared num = -4.3; num_squared = square(num); printf("%lf squared is %lf\n",num, num_squared); return 0; ΔΙΑΦΟΡΕΤΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ! double square(double x) { double num_squared; num_squared = x*x; return (num_squared); Εµβέλεια num_squared

Εμβέλεια καθολικών μεταβλητών 19.11.16 Β. Ντουφεξή 23 #include<stdio.h> double square(); double num; int main () { double num_squared; num = -4.3; num_squared = square(); printf("%lf squared is %lf\n",num,num_squared); return 0; double square() { double result; result = num*num; return (result); Εµβέλεια num

Επικαλύψεις εμβέλειας 19.11.16 Β. Ντουφεξή 24 #include<stdio.h> int x; void func(); int main() { x = 5; /* ανάθεση καθολικής x */ printf("before func, x=%d\n", x); func(); printf("after func, x=%d\n", x); return 0; void func() { int x; /* δήλωση τοπικής x */ x=10; /* τοπική x */ printf("within func, x=%d\n", x); Εµβέλεια καθολικής x εδώ το x είναι 5 εδώ το x είναι 10 Η τοπική δήλωση του x κρύβει την καθολική δήλωση Εµβέλεια τοπικής x

Παράδειγμα 19.11.16 Β. Ντουφεξή 25 Γράψτε ένα πρόγραμμα το οποίο διαβάζει 3 ακεραίους από το πληκτρολόγιο και υπολογίζει κι εκτυπώνει τον μεγαλύτερο. Κατασκευάστε και χρησιμοποιήστε μια συνάρτηση maxof3 η οποία παίρνει ως παραμέτρους 3 ακεραίους κι επιστρέφει τον μέγιστο. Η συνάρτηση πρέπει να χρησιμοποιεί την maxof2 που γράψαμε νωρίτερα.

Παράδειγμα 19.11.16 Β. Ντουφεξή 26 Τι θα εκτυπώσει το παρακάτω πρόγραμμα? #include<stdio.h> void swap (int x, int y); int main (int argc, char *argv[]) { int num1, num2; printf("enter 2 integers: "); scanf("%d %d", &num1, &num2); swap(num1, num2) printf("num1=%d, num2=%d\n",num1, num2); return 0; void swap (int x, int y) { int temp; temp = x; x = y; y = temp;