ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό Ενότητα 3: Είσοδος και Έξοδος Δεδομένων Κ. Κουκουλέτσος Τμήμα: Τμήμα Υπολογιστικών Συστημάτων
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Σκοποί ενότητας... 4 Περιεχόμενα ενότητας... 4 Ασκήσεις... 5 Άσκηση 1... 5 Άσκηση 2... 5 Άσκηση 3... 5 Άσκηση 4... 6 Άσκηση 5... 6 Ασκήσεις για τον σπουδαστή... 7 Άσκηση 1 (Άσκηση για τον σπουδαστή)... 7 Άσκηση 2 (Άσκηση για τον σπουδαστή)... 7 Πίνακας 1... 7 Άσκηση 3 (Άσκηση για τον σπουδαστή)... 8
Σκοποί ενότητας Σκοπός της ενότητας είναι η πρακτική εξάσκηση του εκπαιδευόμενου με έννοιες που έχουν αναλυθεί στο αντίστοιχο τμήμα της θεωρίας, με την επίλυση ασκήσεων. Πιο αναλυτικά οι σκοποί είναι Να μπορεί να ορίζει τον τρόπο εισόδου και εξόδου μεταβλητών και τιμών Να κατανοήσει την χρήση των χαρακτήρων διαφυγής Να μάθει πως γίνεται μετατροπή του τύπου τιμών και μεταβλητών Να κατανοήσει λάθη που πιθανόν εμφανίζονται λόγω στρογγυλοποίησης Να εξοικειωθεί με την χρήση των προσδιοριστών εμφάνισης Να γνωρίσει τις ιδιαιτερότητες της εντολής scanf() Περιεχόμενα ενότητας Η ενότητα του εργαστηρίου περιλαμβάνει ασκήσεις για το μάθημα: Εισαγωγή στον προγραμματισμό.
Ασκήσεις Άσκηση 1 Η σωστή είσοδος δεδομένων τύπου float γίνεται με το %f ενώ για δεδομένα τύπου double γίνεται με το %lf. Δοκιμάστε το παρακάτω πρόγραμμα αλλάζοντας τους προσδιοριστές int main ( ){ float x ; double y,z; printf ( "Dose float\n" ) ; scanf ( "%f", &x ) ; printf ( "Dose double\n" ) ; scanf ( "%f", &y ) ; printf ( "Dose kai allo double\n" ) ; scanf ( "%lf", &z ) ; printf ( "x= %f y=%f z=%f\n", x,y,z ) ; printf ( "x= %lf y=%lf z=%lf\n", x,y,z ) ; system("pause"); return 0; Άσκηση 2 Να τρέξει το πρόγραμμα με και χωρίς την εντολή fflush(stdin) int main(int argc, char *argv[]) { int num; char kode; printf("dose ena aritmno "); scanf("%d",&num); //fflush(stdin); printf("dose ena xaraktira ="); scanf("%c",&kode); printf("%d %c", num, kode); printf("\n\n"); return EXIT_SUCCESS; Άσκηση 3 Να γραφεί πρόγραμμα που να εμφανίζει το άθροισμα των ακεραίων και το άθροισμα των δεκαδικών τμημάτων δύο πραγματικών αριθμών. Οι πραγματικοί αριθμοί να εισάγονται από το πληκτρολόγιο. int main() { double d1, d2,ath_dek; int ath_aker; printf("dose 2 pragmatikous "); scanf("%lf%lf", &d1, &d2);
ath_dek=d1-(int)d1+d2-(int)d2; ath_aker=(int)d1+(int)d2; printf("to akeraio athrisma =%d \n", ath_aker); printf("to dekadiko athroisma =%f \n", ath_dek); return 0; Άσκηση 4 Να γραφεί πρόγραμμα που εμφανίζει το υπόλοιπο ενός πραγματικού αριθμού με ένα ακέραιο. Οι δύο αριθμοί να εισάγονται από το πληκτρολόγιο. int main() { float num1, ypoloipo; int num2, piliko; printf("dose dekadiko= "); scanf("%f", &num1); printf("dose akeraio= "); scanf("%d", &num2); piliko = num1/num2; ypoloipo=num1-piliko*num2; printf("h diairesi %f/%d exei ypoloipo=%.2f\n", num1,num2,ypoloipo); return 0; Άσκηση 5 Να γραφεί πρόγραμμα που εμφανίζει στην οθόνη το παρακάτω αποτέλεσμα αφού εκχωρήσει πρώτα τους αριθμούς σε ακέραιες μεταβλητές. int main(int argc, char *argv[]) { int x1=1, x2=12, x3=123, x4=1234; int x5=12345, x6=123456, x7=1234567, x8=12345678; %-8d\n",x1,x1); %-8d\n",x2,x2); %-8d\n",x3,x3); %-8d\n",x4,x4); %-8d\n",x5,x5); %-8d\n",x6,x6); %-8d\n",x7,x7); %-8d\n",x8,x8);
printf("\n\n\n") ; system("pause"); return 0; Ασκήσεις για τον σπουδαστή (Κάποιες από τις ασκήσεις αυτές μπορούν να λυθούν στην διάρκεια του εργαστηρίου για εμβάθυνση ορισμένων εννοιών. Όμως συνήθως λύνονται με πρωτοβουλία του σπουδαστή και μπορούν να συζητηθούν με το διδάσκοντα καθηγητή του) Άσκηση 1 (Άσκηση για τον σπουδαστή) Να δημιουργήσετε ένα νέο project με όνομα askisi16 που να υπολογίζεται η υποτείνουσα ενός ορθογωνίου τριγώνου όταν εισάγονται οι δύο κάθετες πλευρές. Να γίνει εκτέλεση του προγράμματος και να ελεγχθεί ότι το πρόγραμμα είναι σωστό για τις παρακάτω τριάδες αριθμών που αντιπροσωπεύουν τις δύο πλευρές ορθογωνίου τριγώνου και την υποτείνουσα Πλευρά Α Πλευρά Β Υποτείνουσα τριγώνου 3 4 5 5 12 13 6 8 10 8 15 17 9 12 15 Άσκηση 2 (Άσκηση για τον σπουδαστή) Να δημιουργήσετε ένα νέο project με όνομα askisi14 που να υπολογίζεται το εμβαδόν τριγώνου βάσει του τύπου του Ήρωνα κάνοντας χρήση του μήκους των τριών πλευρών. ( a b c) Ε= s ( s a)( s )( s ) όπου s η ημιπερίμετρος του τριγώνου 2 Να γίνει εκτέλεση του προγράμματος και να ελεγχθεί ότι το πρόγραμμα είναι σωστό για τις παρακάτω αριθμούς που αντιπροσωπεύουν τις τρεις πλευρές ορθογωνίου τριγώνου και το εμβαδόν του Πίνακας 1 Πλευρά Α Πλευρά Β Πλευρά Γ Εμβαδόν 9 15 12 54 3 5 4 6 6 10 8 24
Άσκηση 3 (Άσκηση για τον σπουδαστή) Να δημιουργήσετε ένα νέο project με όνομα askisi18 που να εμφανίζει το μήνυμα ΤΜΗΜΑ YPOLOGISTIKON SYSTHMATON κάθετα στην οθόνη. Να γίνει χρήση μίας και μόνο εντολής printf.