Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Σχετικά έγγραφα
Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

Τύποι Δεδομένων Είσοδος/Έξοδος

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

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

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

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

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

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

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

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

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

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

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

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

ΗΥ-150. Προγραμματισμός

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ερωτήσεις Επανάληψης

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΠΡΟΓΡΑΜΜΑΤΑ ΕΡΓΑΣΤΗΡΙΟΥ

Διάλεξη 5: Δείκτες και Συναρτήσεις

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

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

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

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

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

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

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

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED)

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

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

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

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

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

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

1. ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ C

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

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

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

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

ΗΥ-150. Προγραμματισμός

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

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

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

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

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ , Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής. Βασίλης Μποζαντζής

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

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

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

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

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

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

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

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

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

Περιεχόμενα. Πρόλογος... 21

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Transcript:

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 2η σειρά ασκήσεων. Κοζάνη, 19 Οκτωβρίου 2007. Δεν ξεχνάμε τα εξής: Case Sensitive!!! Άλλα τα κεφαλαία και άλλα τα μικρά! Με ο,τι τρόπο γράψουμε ένα όνομα στην αρχή με αυτόν πρέπει να το γράφουμε μέχρι το τέλος. Οι εντολές τελειώνουν με ; Οι διάφορες συναρτήσεις αλλά και τα τμήματα κώδικα (βασικές δομές) στο εσωτερικό τους αρχίζουν με και τελειώνουν με. Συνεπώς, προσέχουμε να κλείνουν τα άγκιστρα (για κάθε να υπάρχει και ένα ) Τα αλφαριθμητικά, π.χ. τα μηνύματα που τυπώνουμε με την printf, αρχίζουν με και τελειώνουν πάλι με. Συνεπώς, προσέχουμε να κλείνουμε και τα εισαγωγικά. 1 / 6

Πρόγραμμα p2-1 Ένας φοιτητής προσπάθησε να γράψει και να εκτελέσει το παρακάτω απλό πρόγραμμα από την προηγούμενη σειρά ασκήσεων. Όμως έκανε κάποια λάθη οπότε το πρόγραμμα δε μπορεί να μεταγλωττιστεί. Βοηθήστε τον ανακαλύπτοντας τα λάθη και βεβαιωθείτε γράφοντας σωστά, μεταγλωττίζοντας και εκτελώντας το πρόγραμμα. #include <stdio,h> int intsum(void) int x, Number, Count, Sum Count = 0; Sum = 0; printf("dose mou ena plithos akereon arithmon: "); scanf("%d", Number) while(count < Number); printf("dose mou ton ip' arithmon d oro: ", Count+1); scanf("%d", x); Count++ Sum += x; return Sum; void main(void) ( int Sum; ) Sum = intsum(); printf("to athrisma olon ine %d\", Sum); Πρόγραμμα p2-2 Εδώ εισάγουμε δύο παραλλαγές του τύπου int και βλέπουμε στην πράξη τα όρια των αριθμών που μπορούν ή δεν μπορούν να αναπαραστήσουν. Επίσης, εισάγεται μια νέα οδηγία προς τον προεπεξεργαστή η οποία μας βοηθάει να εκφράζουμε συμβολικά κάποιες σταθερές που εμφανίζονται συχνά μέσα στο πρόγραμμά μας. Τέλος, η συνάρτηση getchar( ) που διαβάζει χαρακτήρες εισάγεται για να παίξει βοηθητικό ρόλο στην εκτέλεση του προγράμματος. Προσοχή στις προδιαγραφές μορφοποίησης (%) στην printf! #define BIG 10000 /* δέκα χιλιάδες */ unsigned short int i = 0; unsigned int ii = 0; unsigned long int iii = 0; 2 / 6

printf("\npress Enter to continue, 0 to stop\n"); while(getchar()!= '0') i += BIG; ii += BIG; iii += BIG; printf("i = %d, ii = %d, iii = %ld \n", i, ii, iii); Πειραματιστείτε βγάζοντας τη λέξη unsigned από τους τύπους και επανεκτελώντας το πρόγραμμα. Πρόγραμμα p2-3 Παραλλαγή του προηγούμενου, για να εισάγουμε νέους τύπους αναπαράστασης των πραγματικών αριθμών. Και πάλι, προσοχή στις προδιαγραφές μορφοποίησης (%) στην printf! #define BIG 1000 /* χίλια */ float x = 1.0; double xx = 1.0; long double xxx = 1.0; printf("\npress Enter to continue, 0 to stop\n"); while(getchar()!= '0') x *= BIG; xx *= BIG; xxx *= BIG; printf("x = %f, xx = %lf, xxx = %Lf \n", x, xx, xxx); Πρόγραμμα p2-4 Εισάγεται η έννοια του αρχείου και η συνάρτηση fprintf που μας επιτρέπει να γράψουμε δεδομένα σε ένα αρχείο. Χρησιμοποιείται ο τελεστής αύξησης για να εκφράσει μία συνθήκη που θα επιτρέψει την εκτέλεση μιας δομής επανάληψης για ένα καθορισμένο αριθμό φορών (10). int i, j, k, count = 0; FILE *myfile; printf("\npress Enter to write a file"); 3 / 6

getchar(); myfile = fopen("test.txt", "w"); while(count++ < 10) printf("\ngive me three numbers: \n"); scanf("%d%d%d", &i, &j, &k); printf("record %d: i=%d, j=%d, k=%d \n", count, i, j, k); fprintf(myfile, "%d %d %d \n", i, j, k); fclose(myfile); Πρόγραμμα p2-5 Σχετικό με το προηγούμενο πρόγραμμα, που χρησιμοποιεί τη συνάρτηση fscanf για να διαβάσει και να τυπώσει στην οθόνη τα δεδομένα από το αρχείο που δημιουργήθηκε κατά την προηγούμενη άσκηση. Εδώ χρησιμοποιείται ο τελεστής μείωσης αντί του τελεστή αύξησης, σε μια παραλλαγή της προηγούμενης συνθήκης για τον έλεγχο της επανάληψης, επιτελώντας ουσιαστικά την ίδια λειτουργία. int i, j, k, count = 0; FILE *myfile; printf("\npress Enter to read each record of the file"); getchar(); count = 10; myfile = fopen("test.txt", "r"); while(--count >= 0) printf("\nrecord %d: ", 10 - count); fscanf(myfile, "%d%d%d", &i, &j, &k); printf("%d %d %d", i, j, k); getchar(); fclose(myfile); Μερικά χρωστούμενα από την προηγούμενη σειρά... Πρόγραμμα p1-6 Παράδειγμα επανάληψης συνδυασμένο και με επιλογή/λήψη απόφασης. Πρόκειται για παραλλαγή του αλγόριθμου εύρεσης μέγιστου και ελάχιστου που αναφέρθηκε στο πρώτο μάθημα. void main(void) int x, number, count, minimum=0, maximum=0; 4 / 6

printf("give me a number of positive integers: "); scanf("%d", &number); printf("give me the term number %d: ", 1); minimum = x; if(x > maximum) maximum = x; count = 1; while(count < number) printf("give me the term number %d:: ", count+1); if(x < minimum) minimum = x; if(x > maximum) maximum = x; count++; printf("the maximum is %d and the minimum is %d \n", maximum, minimum); Το Πρόγραμμα p1-8 ελαφρώς αλλαγμένο Πρόγραμμα που εξηγεί παραστατικά την έννοια της εμβέλειας μεταβλητών ή των τοπικών μεταβλητών, καθώς και και τις πρακτικές συνέπειες του περάσματος ορισμάτων με τιμή σε αντίθεση με το πέρασμα μέσω αναφοράς. Γραμμένο σε δύο παραλλαγές. Παρατηρείστε τα διαφορετικά αποτελέσματα που προκύπτουν σε κάθε περίπτωση. Παραλλαγή πρώτη: void testfunc(int, int); void main(void) int x, y; printf("\ngive me an integer x :"); printf("\ngive me another one y :"); scanf("%d", &y); testfunc(x, y); printf("\nthe values of x and y after calling testfunc are %d and %d, respectively\n", x, y); void testfunc(int x, int y) 5 / 6

printf("\nx and y equal %d and %d, respectively", x, y); x += 2; y -= -x; printf("\nnow,x and y equal %d and %d, respectively", x, y); Παραλλαγή δεύτερη: void testfunc(int *, int *); int main(void) printf("\ngive me an integer x :"); printf("\ngive me another one y :"); scanf("%d", &y); testfunc(&x, &y); printf("\nthe values of x and y after calling testfunc are %d and %d, respectively\n", x, y); void testfunc(int *a, int *b) printf("\nx and y equal %d and %d, respectively", *a, *b); *a += 2; *b -= *a; printf("\nnow,x and y equal %d and %d, respectively", *a, *b); 6 / 6