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

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

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

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

Γλώσσα Προγραμματισμού C

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

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

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

Διάλεξη 5η: Εντολές Επανάληψης

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

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

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

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Δομές ελέγχου ροής προγράμματος

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

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

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

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Κεφάλαιο : Επαναλήψεις (for, do-while)

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

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

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

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

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

9. Εντολές επανάληψηςκαι η εντολή

8. Συνθήκες ελέγχου, λογικοί τελεστές

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες ( ιάλεξη 18) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

2ο σετ σημειώσεων. 1 Εντολές εκτέλεσης υπό συνθήκη. 19 Μαρτίου 2012

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

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

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

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

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Παίρνοντας Αποφάσεις 1

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

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

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

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

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

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

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

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

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

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

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Λύσεις για τις ασκήσεις του lab5

Εντολές ελέγχου ροής if, for, while, do-while

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

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

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

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

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

Αντικειμενοστρεφής Προγραμματισμός

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

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

Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

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

Γλώσσα Προγραμματισμού C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόμενη Λύση

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

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

Δομές ελέγχου & επανάληψης

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Transcript:

Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include <stdio.h> // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int main() { // η κυρίως συνάρτηση όπου αρχίζει η // εκτέλεση του // κάθε προγράμματος C printf("hello World"); // εκτυπώνει τη φράση Hello World return 0; // τερματίζει το πρόγραμμα και // επιστρέφει στο ΛΣ τη τιμή 0 Ποιοι είναι οι βασικοί τύποι δεδομένων στη γλώσσα C; int float char integer, ακέραιοι floating point, κινητής υποδιαστολής ή πραγματικοί αριθμοί character, χαρακτήρες Δηλώστε τρεις μεταβλητές τύπου int, float, char και δώστε αρχική τιμή στη δήλωση τους. int a = 1; float b = 2.4; char c = w ; Βρείτε τα λάθη στις παρακάτω δηλώσεις μεταβλητών int 1a; float else; char letter@; // Τα ονόματα μεταβλητών μπορούν να αρχίζουν μόνο με γράμμα // ή κάτω παύλα _ // Μια δεσμευμένη λέξη (keyword) δε μπορεί να είναι όνομα μεταβλητής // Τα ονόματα μεταβλητών δεν πρέπει να περιέχουν // ειδικούς χαρακτήρες αλλλά μόνο γράμματα, αριθμούς και κάτω παύλα Τι θα εκτυπώσει το παρακάτω κομμάτι κώδικα, ποια πράξη γίνεται σε κάθε εντολή int a = 2; int b = 6; 1

int c = 7; int r1, r2, r3, r4, r5, r6, r7; r1 = a + b; // πρόσθεση r2 = a b; // αφαίρεση r3 = a * b; // πολλαπλασιασμός r4 = b / a; // ακέραια διαίρεση r5 = c % a; // υπόλοιπο ακέραιας διαίρεσης r6 = ++a; // αύξηση κατά 1 r7 = b; // μείωση κατά 1 printf("%d %d %d %d %d %d %d", r1, r2, r3, r4, r5, r6, r7 ); Αποτέλεσμα: 8 4 12 3 1 3 5 Τι θα εκτυπώσει το παρακάτω κομμάτι κώδικα, εξηγήστε κάθε περίπτωση float a, b, c, d; a = 5 / 2; b = (float) 5 / 2; c = (float) (5 / 2); d = 5 / 2.0; printf("%f %f %f %f", a, b, c, d) ; Αποτέλεσμα: 2.0 2.5 2.0 2.5 Στην πρώτη περίπτωση έχουμε ακέραια διαίρεση Στη δεύτερη περίπτωση γίνεται μετατροπή σε float του 5 οπότε διαίρεση είναι πραγματική Στη τρίτη περίπτωση γίνεται πρώτα η ακέραια διαίρεση λόγω των παρενθέσεων οπότε η μετατροπή σε float που ακολουθεί δεν αλλάζει το αποτέλεσμα Στη τέταρτη περίπτωση γίνεται πραγματική διαίρεση γιατί ένας από τους αριθμούς είναι πραγματικός Να υπολογίστε την τιμή της κάθε λογικής έκφρασης αν οι ακέραιες μεταβλητές έχουν τις εξής τιμές: a=3, b=5, c=0, d= 3 a > 1 + b b >= a + 2 c == d d <= a // 3 > 4, FALSE // 5 >= 3 + 2, 5 >= 5, TRUE // 5 == 3, FALSE // 3 <= 3, TRUE 2

c!= a 3 // 0!= 3 3, 0!= 0, FALSE Για την εισαγωγή σε μια στρατιωτική σχολή ένας άρρεν υποψήφιος πρέπει να έχει ύψος μεγαλύτερο ή ίσο με 170 cm και ηλικία μεταξύ 18 και 22 ετών. Γράψετε κομμάτι κώδικα που ελέγχει τα κριτήρια αυτά και να τυπώνει κατάλληλο μήνυμα για κάθε περίπτωση. οι μεταβλητές age, height εκφράζουν την ηλικία και το ύψος αντίστοιχα if (age >= 18 && age <= 22 && height >= 170) printf("πληρείς τα κριτήρια"); else printf("δεν πληρείς τα κριτήρια"); Εξηγήστε τι κάνει το παρακάτω κομμάτι κώδικα. Τι θα εμφανιστεί στην οθόνη αν η μεταβλητή vathmos είναι ίση με 7 και τι αν είναι ίση με 12; switch(vathmos) { case 10: case 9: case 8: printf("αριστα"); break; case 7: case 6: case 5: printf("καλά"); break; case 4: case 3: case 2: case 1: case 0: printf("ελλιπείς"); break; default: printf("λάθος βαθμολογία"); Το παραπάνω πρόγραμμα ελέγχει τη βαθμολογία ενός μαθητή και τυπώνει το κατάλληλο μήνυμα ανάλογα με το βαθμό (μεταβλητή vathmos) τυπώνει άριστα αν είναι μεταξύ 10 8 τυπώνει άριστα αν είναι μεταξύ 7 5 τυπώνει άριστα αν είναι μεταξύ 4 0 τυπώνει άριστα σε κάθε άλλη περίπτωση 3

Ποιες οι βασικές μορφές της εντολής if στη C και ποια σύνταξή τους; Στη C υπάρχουν τρεις βασικές δομές επανάληψης if, if else και if else if else if( συνθήκη ) { if( συνθήκη ) { else { if ( συνθήκη ) { Block of statements; else if( συνθήκη ) { else { Ποιες οι βασικές δομές επανάληψης στη C και ποια σύνταξή τους; Στη C υπάρχουν τρεις βασικές δομές επανάληψης for, while και do while for (αρχική τιμή; συνθήκη; μεταβολή) { while( συνθήκη ) { do { while( συνθήκη ); 4

Να γράψετε κομμάτι κώδικα που αρχικοποιεί με τιμές από το πληκτρολόγιο ένα μονοδιάστατο πίνακα ακεραίων. int source[10]; for (i = 0; i < 10; i++) { scanf("%d", &source[i]); Τι θα εκτυπώσει το παρακάτω κομμάτι κώδικα; Αιτιολογήστε την απάντηση σας. int source[8] = {2, 4, 5, 11, 9, 23, 4, 16; for (i = 0; i < 8; i++) { if (source[i] == 9) continue; printf("%d ", source[i]); Αποτέλεσμα: 2 4 5 11 23 4 16 Η εντολή for διασχίζει όλα τα στοιχεία του πίνακα source και τυπώνει κάθε στοιχείο εκτός το 9 γιατί με την εντολή continue η τρέχουσα επανάληψη τερματίζεται Τι θα εκτυπώσει το παρακάτω κομμάτι κώδικα; Αιτιολογήστε την απάντηση σας. int i,k; for(i = 1; i <= 5; i++) { for(k = 0; k < i; k++) { printf("*"); printf("\n"); Αποτέλεσμα: 5

* ** *** **** ***** Η εξωτερική επανάληψη τυπώνει 4 γραμμές. Σε κάθε γραμμή η εσωτερική επανάληψη τυπώνει τόσα αστεράκια ανάλογα με τον τρέχον αριθμό γραμμής. Τι θα εκτυπώσει το παρακάτω κομμάτι κώδικα; Τι εκφράζει το αποτέλεσμα που κρατά η μεταβλητή mystery; int source[8] = {2, 4, 5, 11, 9, 23, 4, 16; int mystery = 0; for (i = 0; i < 8; i++) { mystery = mystery + source[i]; printf("%d", mystery); Αποτέλεσμα: 74 Το πρόγραμμα διασχίζει όλα τα στοιχεί του πίνακα source και τα προσθέτει στη μεταβλητή mystery. Στο τέλος η μεταβλητή περιέχει το άθροισμα των στοιχείων του πίνακα; Τι θα εκτυπώσει το παρακάτω κομμάτι κώδικα; Τι εκφράζει το αποτέλεσμα που κρατά η μεταβλητή mystery; int source[10] = {6, 0, 2, 4, 5, 11, 9, 23, 4, 16; int mystery; mystery = source[0]; for (i = 0; i < 10; i++) { if (source[i] > mystery) mystery = source[i]; printf( "%d ", mystery); Αποτέλεσμα: 23 6

Το πρόγραμμα βρίσκει το μέγιστο από τα στοιχεία του πίνακα. Η μεταβλητή mystery αφού πάρει αρχική τιμή συγκρίνεται με κάθε στοιχεί του πίνακα και αν το στοιχείο είναι μεγαλύτερο ενημερώνεται η mystery με τη νέα τιμή. Έτσι στο τέλος του προγράμματος η mystery περιέχει το μέγιστο Τι θα εκτυπώσει το παρακάτω κομμάτι κώδικα; Τι εκφράζει το αποτέλεσμα που κρατά η μεταβλητή mystery; int source[10] = {3, 5, 11, 4, 7, 18, 7, 5, 9, 8; int i = 0; int mystery = 0; while(i<10) { if(source[i]%2 == 0) mystery++; i++; printf("%d", mystery) Αποτέλεσμα: 3 Το πρόγραμμα διασχίζει όλα τα στοιχεία του πίνακα source και μετρά τα στοιχεία που είναι ζυγοί αριθμοί στη μεταβλητή mystery. Ποιο είναι το πρόβλημα με το παρακάτω κομμάτι κώδικα. Αιτιολογήστε την απάντηση σας int done = 0; int i = 100; do { printf("%d", i); i = i + 2; if (i<50) done = 1; while (done == 0); Το πρόβλημα είναι ότι ο βρόγχος επανάληψης δεν θα τερματιστεί ποτέ. Η επανάληψη τερματίζεται όταν η μεταβλητή ελέγχου done γίνει 1. Αυτό γίνεται όταν το i είναι μικρότερο το 50. Στο πρόγραμμα όμως το i έχει αρχική τιμή 100 και αυξάνεται σε κάθε επανάληψη, με αποτέλεσμα ποτέ να μη γίνει μικρότερο του 50. Σε ένα παιχνίδι οι θέσεις των εχθρών (συντεταγμένες x, y) αποθηκεύονται σε ένα δισδιάστατο πίνακα enemies ενώ η θέση της σφαίρας του παίκτη στις μεταβλητές bulletx και bullety. Εξηγήστε τι 7

κάνει το παρακάτω κομμάτι κώδικα, τι εκφράζει στο παιχνίδι η μεταβλητή mystery και ποια η τελική τιμή της; int enemies[5][2] = { {4,5,{3,2,{4,5,{9,1,{1,7 ; int bulletx, bullety; const enemy_points = 50; int mystery = 0; bulletx = 4; bullety = 5; for (i = 0; i < 5; i++) { if(bulletx==enemies[i][0] && bullety==enemies[i][1]) mystery += enemy_points; printf( "%d", mystery); Αποτέλεσμα: 100 Το πρόγραμμα ελέγχει για κάθε εχθρό αν βρίσκεται στο ίδιο σημείο με την σφαίρα. Όταν αυτό ισχύει ο εχθρός σκοτώνεται και παίκτης κερδίζει τους αντίστοιχους πόντους. Το τρέχων σκόρ αποθηκέυεται στη μεταβλητή mystery. 8