Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 3: Συναρτήσεις printf() και scanf() Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε.
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και την Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Nα κατανοήσει ο φοιτητής τις συναρτήσεις printf() και scanf() και να εξοικειωθεί με τους ειδικούς συνδυασμούς των συναρτήσεων αυτών. 4
Περιεχόμενα ενότητας Η συνάρτηση printf(). Τελεστές εκτύπωσης. Παραδείγματα σύνταξης της printf(). Η συνάρτηση scanf(). Παραδείγματα σύνταξης της scanf(). Συναρτήσεις getchar και putchar. 5
Η συνάρτηση printf() (1) Η συνάρτηση printf() είναι μια συνάρτηση βιβλιοθήκης, χρησιμοποιείται για να τυπώσουμε μηνύματα στην οθόνη του υπολογιστή μας και εμπεριέχεται στο αρχείο επικεφαλίδας stdio.h. Όταν θέλουμε να εμφανίσουμε στην οθόνη περιεχόμενα μεταβλητών ή αποτελέσματα θα πρέπει να εμπλουτίσουμε την printf() με ειδικούς χαρακτήρες, ανάλογα με τον τύπο της πληροφορίας που θέλουμε να εμφανίσουμε. 6
Η συνάρτηση printf() (2) Γενικός τύπος: printf( αλφαριθμητικό μορφοποίησης, μεταβλητή1,μεταβλητή2,...μεταβλητήν); Αλφαριθμητικό είναι σύνολο χαρακτήρων το οποίο περιέχει δύο ειδών πληροφορίες. Τους χαρακτήρες που θέλουμε να εμφανίσουμε. Ειδικούς συνδυασμούς για τις τιμές των μεταβλητών. 7
Η συνάρτηση printf() (3) Σχήμα 1. Η συνάρτηση printf(), πηγή: Διδάσκων, 2014. 8
Τελεστές εκτύπωσης Σχήμα 2. Τελεστές εκτύπωσης, πηγή: Διδάσκων, 2014. 9
Παράδειγμα σύνταξης printf() (1) Σχήμα 3. Παράδειγμα σύνταξης pringf(), πηγή: Διδάσκων, 2014. 10
Παραδείγματα σύνταξης της printf() (2) int a,b; a=60 b=70 printf( %d %d,a,b); (θα εμφανίσει 60 70) Ενώ printf( a=%d b=%d,a,b); Θα εμφανίσει a=60 b=70 11
Παραδείγματα σύνταξης της #include <stdio.h> int main(void) { printf("today\b is Sunday\n"); printf("today\b\b\b is Sunday\n"); printf("today\t is\t Sunday\n"); printf("today is \"Sunday\"\n"); printf() (3) getchar(); return 0; } 12
Έξοδος του προγράμματος Toda is Sunday To is Sunday Today is Sunday Today is Sunday 13
Η συνάρτηση scanf() (1) Η scanf() είναι συνάρτηση εισόδου, δηλαδή τη χρησιμοποιούμε για να διαβάσει ο υπολογιστής δεδομένα από το πληκτρολόγιο, τα οποία εκχωρούνται στη συνέχεια σε αντίστοιχου τύπου μεταβλητές. Όπως η printf(), η scanf() χρησιμοποιεί μια συμβολοσειρά ελέγχου ακολουθούμενη από μια λίστα ορισμάτων. Η σειρά ελέγχου δείχνει σε ποιες μορφές η είσοδος πρόκειται να μετατραπεί. 14
Η συνάρτηση scanf() (2) Η κύρια διαφορά ανάμεσα σε αυτές τις δυο συναρτήσεις αφορά τη λίστα ορισμάτων. Η printf() χρησιμοποιεί ονόματα μεταβλητών, σταθερές και εκφράσεις. H scanf() χρησιμοποιεί δείκτες (pointers) στις μεταβλητές. 15
Η συνάρτηση scanf() (3) Σύνταξη: scanf( αλφαριθμητικό μορφοποίησης, &μεταβλητή); όπου αλφαριθμητικό μορφοποίησης ένας από τους τύπους (%c, %d, %f, %lf) ανάλογα με τον τύπο της μεταβλητής (char, int, float, double αντίστοιχα) που ακολουθεί το σύμβολο &. Ο τελεστής & υπολογίζει τη διεύθυνση που καταλαμβάνει μια μεταβλητή στη μνήμη του υπολογιστή. 16
Η συνάρτηση scanf() (4) Όταν εισάγονται περισσότερες από μια τιμές από το πληκτρολόγιο η συνάρτηση scanf παίρνει την ακόλουθη μορφή: scanf( αλφαριθμητικό μορφοποίησης, &μεταβλητή1, &μεταβλητή2,, &μεταβλητήn); όπου οι εντολές μορφοποίησης χωρίζονται με κενό ενώ οι μεταβλητές με κόμμα. Σε αυτήν την περίπτωση ο χρήστης πρέπει να πληκτρολογήσει τις τιμές χωρισμένες με κενά, Tab ή Enter και όχι με κόμματα. 17
Παραδείγματα Σύνταξης της scanf() (1) printf( DOSE ENAN AKERAIO: ); scanf( %d, &a); Ο παραπάνω συνδυασμός των συναρτήσεων printf και scanf ζητάει από το χρήστη να δώσει ένα ακέραιο αριθμό και κατόπιν ο υπολογιστής τον διαβάζει και τον αποθηκεύει στη μεταβλητή a (ακέραιου τύπου). Μετά την εκτέλεση των εντολών η μεταβλητή a θα έχει πλέον την τιμή που εισήγαγε ο χρήστης από το πληκτρολόγιο. 18
Παραδείγματα Σύνταξης της scanf() (2) printf( DOSE 2 AKERAIOYS: ); scanf( %d %d, &a, &b); Σε αυτήν την περίπτωση ζητείται από το χρήστη να εισάγει δύο ακεραίους από το πληκτρολόγιο, όπου η πρώτη τιμή θα εκχωρηθεί στη μεταβλητή a και η δεύτερη στη b. 19
Παράδειγμα #include <stdio.h> /*Πρόγραμμα μετατροπής ποδιών σε μέτρα*/ #include <stdlib.h> int main(void) { float podia,metra; printf("dοse TO MHKOS SE PODIA:"); scanf("%f", &podia); metra = podia*0.3048; printf("ta %f PODIA ISOYNTAI ME %f METRA", podia,metra); system("pause"); return 0; } 20
Η συνάρτηση exit() Η συνάρτηση exit() μπορεί να κληθεί σε οποιοδήποτε σημείο ενός προγράμματος και προκαλεί τον άμεσο τερματισμό του προγράμματος. Έχει ως παράμετρο έναν ακέραιο αριθμό(int) π.χ. exit(0) και επιστρέφει ως κωδικό εξόδου στο λειτουργικό σύστημα την τιμή της παραμέτρου. 21
Συναρτήσεις getchar και putchar Είναι απλές συναρτήσεις για το διάβασμα ή την εκτύπωση ενός χαρακτήρα. Η συνάρτηση getchar διαβάζει ένα χαρακτήρα από το πληκτρολόγιο. Η συνάρτηση putchar τυπώνει ένα χαρακτήρα στην οθόνη. Βρίσκονται στο αρχείο stdio.h. 22
Βιβλιογραφία μαθήματος Kernighan, B. & Ritchie D. (1990). H Γλώσσα Προγραμματισμού C, Κλειδάριθμος, Αθήνα. Καρολίδης Δ. (2013). Μαθαίνετε εύκολα C. ISBN 978-960- 93-5034-1. Τσελίκης Γ. & Τσελίκας, Ν. (2012).C Από τη θεωρία στην Εφαρμογή (β Έκδοση). ISBN: 978-960-93-1961-4. Χατζηγιαννάκης, Ν. (2012). Η γλώσσα C σε βάθος. Κλειδάριθμος, Αθήνα. 23
Τέλος Ενότητας