ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 getchar() /* char_count.c A program to count characters of input. */ main() { int c ; int count = 0; while.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κεφάλαιο Τμηματικός προγραμματισμός
Advertisements

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
ΜΑΘΗΜΑ 7ο Κυκλικές και Διπλά Συνδεδεμένες Λίστες,
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Πολυδιάστατοι Πίνακες, Δομές, Ενώσεις
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Δείκτες, Πίνακες και Δείκτες, Δείκτες σε Συναρτήσεις
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
 2003 Prentice Hall, Inc. All rights reserved. 1 Συναρτήσεις στη C++ ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή Συστατικά προγράμματος στη C++ Μαθηματικές Συναρτήσεις ( Math.
ΜΑΘ-3122/106 Προγραμματισμός
Τύποι πραγματικών αριθμών
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Εντολες Επιλογης (Selection)
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Μήτρες (templates)  Μία μήτρα είναι ένα κομμάτι κώδικα που περιέχει παραμέτρους οι οποίες δέχονται ως τιμές τύπους δεδομένων.  Είναι ένας μηχανισμός.
ΜΑΘ-3122/106 Γλώσσα Προγραμματισμού
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
ΕΠΑΝΑΛΗΨΗΕΠΑΝΑΛΗΨΗ ΠΡΟΓΡΑΜΜΑΤΑ. ΠΡΟΓΡΑΜΜΑ 1 ΕΞΗΓΗΣΤΕ ΤΙ ΕΞΟΔΟ ΠΑΡΑΓΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΠΡΟΓΡΑΜΜΑ #include int main() { char ch; int i; float fl; printf("dose.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Δείκτες, Πίνακες σε Δείκτες, Δείκτες σε Συναρτήσεις
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
ΣΥΝΑΡΤΗΣΕΙΣ.
Πάνω προς Κάτω Σχεδιασμός και Συναρτήσεις
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Εντολές Ελέγχου Ροής.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Κεφάλαιο 10 – Υποπρογράμματα
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
ΜΑΘ3122/106 – Γλώσσα προγραμματισμούΞενοφών Ζαμπούλης ΜΑΘ3122/106 Γλώσσα προγραμματισμού Συναρτήσεις.
Μετατροπή Εκφράσεων σε C
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 Δείκτες σε συναρτήσεις Δείκτης σε συνάρτηση – Περιέχει τη διεύθυνση του κώδικα της συνάρτησης – Ό π ως ένας.
ΜΑΘ 3122/106 – Γλώσσα Προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ-3122/106 Γλώσσα Προγραμματισμού Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
2/28/00epl-1311 Παραδειγματα Aλγοριθμων Αριθμος λεξεων που διαβαστηκαν απο εισοδο Εκτυπωση περιφερειας τετραγωνων με * Υπολογισμος exp(x,n) = 1 + x/1!
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Τύ π οι Μεταβλητών Τελεστές Βασική Είσοδος / Έξοδος.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 2: Συναρτήσεις Εισόδου ⁄ Εξόδου. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
ΔΠΘ-ΤΜΗΜΑ ΜΠΔ: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ 1 Εισαγωγή στη γλώσσα Προγραμματισμού C ΠΙΝΑΚΕΣ (arrays)
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Συναρτήσεις.
Κλάσεις και αντικείμενα
Γενικές Διαδικασίες.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
for (παράσταση_1; παράσταση_2; παράσταση_3)
Τεχνολογία και Προγραμματισμός Υπολογιστών
ΣΥΝΑΡΤΗΣΕΙΣ (Functions)
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Η Γλώσσα Pascal Υποπρογράμματα
Εισαγωγή στον Προγ/μό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Αρχές Προγραμματισμού (C)
Μεταγράφημα παρουσίασης:

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 getchar() /* char_count.c A program to count characters of input. */ main() { int c ; int count = 0; while ( ( c = getchar() ) != EOF ) count ++ ; printf( "%d characters\n", count ) ; }

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 2 getchar() /* letter_count.c A program to count letters in input. */ main() { int c ; int count = 0; while ( ( c = getchar() ) != EOF ) if ( ( c >= 'A' ) && ( c <= 'Z' ) || ( c >= 'a' ) && ( c <= 'z' ) ) count ++ ; printf( "%d letters\n", count ) ; }

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 3 putchar() #include main() { int c; while ( ( c = getchar() ) != EOF ) putchar(c); }

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 4 scanf() /* number_count.c program to count numbers entered. */ main() { float f ; int count = 0; while ( scanf("%f", &f ) == 1 ) count ++ ; printf( "%d numbers\n", count ) ; }

ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Συναρτήσεις

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 6 Αλγόριθμοι / Προγράμματα Λύνουμε ένα πρόβλημα εκτελώντας μια ακολουθία από εντολές σε συγκεκριμένη σειρά Αλγόριθμος: καθορίζει τις εντολές και τη σειρά εκτέλεσης Έλεγχος προγράμματος (program control): καθορίζει αυστηρά τη σειρά εκτέλεσης των εντολών

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 7 Συναρτήσεις - Functions Χωρίζουμε το πρόγραμμα σε μέρη Φιλοσοφία του «διαίρει και βασίλευε» (divide and conquer) Τα μέρη αντιστοιχούν σε επιμέρους και μικρότερα προβλήματα Αναλογία με μια επιχείρηση: – Ο προϊστάμενος αναθέτει μια δουλειά σε κάποιον υφιστάμενο – Παίρνει το αποτέλεσμα χωρίς να «ενδιαφέρεται» για τις λεπτομέρειες – Παρενέργειες;

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 8 Συναρτήσεις - Functions Τα υποπροβλήματα πιο εύκολα διαχειρίσιμα νοητικά Κάθε υποπρόβλημα αντιστοιχεί σε μία συνάρτηση Πιο εύκολη διαχείριση κώδικα – Debugging – Updating Χρήση υπαρχόντων συναρτήσεων σε καινούρια προγράμματα για τη λύση νέων προβλημάτων (code reuse) – Επαναχρησιμοποίηση κώδικα Αποφυγή επανάληψης του ίδιου κώδικα πολλές φορές μέσα σε ένα πρόγραμμα Αφαίρεση (abstraction): «κρύβονται» λεπτομέρειες που δεν είναι απαραίτητες στον προγραμματιστή

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 9 Συναρτήσεις - Functions main() Debugging Updating Code reuse Συναρτησιακός Προγραμματισμός

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 10 Ορισμός Συναρτήσεων Επιστρεφόμενος-τύπος όνομα-συνάρτησης(λίστα-παραμέτρων) { Δηλώσεις μεταβλητών; Εντολές; } Όνομα-συνάρτησης: οποιοδήποτε δεκτό όνομα Επιστρεφόμενος-τύπος: τύπος των δεδομένων που επιστρέφει η συνάρτηση – v o i d : δεν επιστρέφει τίποτα Λίστα-παραμέτρων: δηλώσεις παραμέτρων, χωρίζονται με κόμμα (τύπος παράμετρος, τύπος παράμετρος,...) int SquareIt(int a) { int result; result = a*a; return result; }

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 11 Κλήση Συναρτήσεων – Function Call όνομα_συνάρτησης ( όρισμα1,..., όρισμαΝ) έκφραση1  όνομα_συνάρτησης ( έκφραση1..., έκφρασηΝ) τιμή1  η τιμή που επιστρέφει ο κώδικας της συνάρτησης όταν εκτελεστεί με τα δοσμένα ορίσματα τύπος1  ο τύπος που επιστρέφει η συνάρτηση x = (SquareIt(5) > 7); Η έκφραση SquareIt(5) αντικαθίσταται από την έκ φραση 25.

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 12 Συναρτήσεις void Αν η συνάρτηση είναι τύπου void, δεν επιστρέφει τιμή void f() { printf(“Test\n”); return; } Λάθος: x = f() + 10;

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 13 Ροή του Προγράμματος Η ροή του προγράμματος αλλάζει όταν συναντήσει την κλήση μιας συνάρτησης f(a, b, c) 1. Πρώτα υπολογίζονται οι εκφράσεις που αντιστοιχούν στα ορίσματα 2. Οι τιμές των εκφράσεων a, b, c αντιγράφονται στα ορίσματα της f με την ίδια σειρά 3. Ο έλεγχος μεταπηδά στην πρώτη εντολή της f 4. Οι εντολές της f εκτελούνται μέχρι να συναντηθεί return έκφραση; Τέλος συνάρτησης (δηλαδή }) 5. Η κλήση f(a, b, c) αντικαθίσταται με την επιστρεφόμενη τιμή

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 14 Συναρτήσεις βιβλιοθήκης Συναρτήσεις ορισμένες από το χρήστη (user defined functions) Συναρτήσεις βιβλιοθήκης (library functions) – η τυπική βιβλιοθήκη της C – βιβλιοθήκες συναρτήσεων στο διαδίκτυο

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 15 Η βιβλιοθήκη double sqrt(double x); : Υπολογίζει την τετραγωνική ρίζα του x, πρέπει x > 0 double exp(double x);: Υπολογίζει τον εκθετικό του x, e x double log(double x);: Υπολογίζει τον φυσικό λογάριθμο του x, ln(x) int abs(int val);: Υπολογίζει την απόλυτη τιμή του val double pow(double x, double y); : Υπολογίζει την τιμή του x υψωμένη στη δύναμη y, χ y double sin(double x);: Υπολογίζει το sine του x, σε rad double cos(double x);: Υπολογίζει το cosine του x, σε rad double tan(double x);: Υπολογίζει την εφαπτομένη του x, σε rad double fmod(double x, double y); : Υπολογίζει το δεκαδικό υπόλοιπο της διαίρεσης χ/y, y > 0. double ceil(double x);: Υπολογίζει την μικρότερη ακέραια τιμή όχι μικρότερη από x. double floor(double x); : Υπολογίζει την μεγαλύτερη ακέραια τιμή όχι μεγαλύτερη από χ. Για να κάνουμε compile πρόγραμμα που χρησιμοποιεί την math.h: >gcc –lm program.c #include int rand(void); void srand(unsigned int seed); Η συνάρτηση rand επιστρέφει ψευδοτυχαίους αριθμούς από 0 έως RAND_MAX Η συνάρτηση srand χρησιμοποιείται για την αρχικοποίηση της rand() και τη γέννηση ψευδοτυχαίων αριθμών. Καλούμε μία φορά την srand και μετά την rand διαδοχικά για την παραγωγή των τυχαίων αριθμών. Αν ξανακαλέσουμε την srand και μετά την rand θα προκαλέσουμε την ίδια σειρά τυχαίων αριθμών.

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 16 Ορισμός Συναρτήσεων Δηλώσεις μεταβλητών μέσα σε blocks: ΤΟΠΙΚΕΣ μεταβλητές Συναρτήσεις ΔΕΝ μπορούν να οριστούν μέσα σε άλλες συναρτήσεις ΟΠΟΙΑΔΗΠΟΤΕ συνάρτηση μπορεί να καλέσει άλλες συναρτήσεις και τον εαυτό της (αναδρομή)

ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 17 Πρωτότυπα Συναρτήσεων (Function Prototypes) Επιστρεφόμενος-τύπος όνομα-συνάρτησης (λίστα- τύπων-παραμέτρων) Δηλώσεις των συναρτήσεων στην αρχή του αρχείου Χρειάζεται οπωσδήποτε αν χρησιμοποιούμε τη συνάρτηση πριν τον ορισμό της Πλεονεκτήματα – Ελέγχουμε την ορθή χρήση των συναρτήσεων – Μπορούμε να δούμε ποιες είναι οι συναρτήσεις που έχουν υλοποιηθεί στο πρόγραμμα – Μπορούμε να καλέσουμε όλες τις συναρτήσεις που έχουν υλοποιηθεί στο πρόγραμμα χωρίς να μας ενδιαφέρει η σειρά που έχουν γραφτεί

ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης 1. Function prototype (3 parameters) 2. Input values 2.1 Call function 3. Function definition Program Output 1/* Fig. 5.4: fig05_04.c 2 Finding the maximum of three integers */ 3#include 4 5int maximum( int, int, int ); /* function prototype */ 6 7int main() 8{8{ 9 int a, b, c; printf( "Enter three integers: " ); 12 scanf( "%d%d%d", &a, &b, &c ); 13 printf( "Maximum is: %d\n", maximum( a, b, c ) ); return 0; 16} 17 18/* Function maximum definition */ 19int maximum( int x, int y, int z ) 20{ 21 int max = x; if ( y > max ) 24 max = y; if ( z > max ) 27 max = z; return max; 30} Enter three integers: Maximum is: 85