Ενδεικτικές λύσεις και στατιστικά

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

Διαδικασιακός Προγραμματισμός

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

Διάλεξη 15η: Αναδρομή, μέρος 1ο

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

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

Προγραμματισμός Υπολογιστών με C++

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

Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

Επεξεργασία Αρχείων Κειµένου

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

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

Διαδικασιακός Προγραμματισμός

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

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

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Εισαγωγή στον Προγραμματισμό (με. τη C)

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Οι δείκτες στη γλώσσα C

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

lab14grades ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ

Διάλεξη 11η: Δείκτες, μέρος 1

Διαδικασιακός Προγραμματισμός

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

είκτες και Πίνακες (2)

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

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

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

Ενδεικτική περιγραφή μαθήματος

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

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

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

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

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

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

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

Οντοκεντρικός Προγραμματισμός

Η βασική συνάρτηση προγράμματος main()

5ο σετ σημειώσεων - Δείκτες

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Επανάληψη για τις Τελικές εξετάσεις

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.

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

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

Κλάσεις και αντικείμενα #include <iostream.h<

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

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

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

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

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

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

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

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

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

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


Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Transcript:

Προγραμματισμός 1 Σύντομο Quiz 25/9/9 Ενδεικτικές λύσεις και στατιστικά Ερώτηση 1: Γράψτε παρακάτω συνάρτηση η οποία δέχεται ως παραμέτρους ένα string και ένα χαρακτήρα και επιστρέφει τον αριθμό των εμφανίσεων του χαρακτήρα στο string. Η συνάρτηση θα πρέπει να λειτουργεί υποχρεωτικά με αναδρομικό τρόπο. Δεν επιτρέπεται να χρησιμοποιήσετε παραπάνω ορίσματα στη συνάρτηση. Δεν επιτρέπεται να χρησιμοποιήσετε καθολικές μεταβλητές. int count_chars (char *str, char lookfor) { int found; if (*str == '\') return(); found = (*str == lookfor); str++; return(found + count_chars(str, lookfor)); Σχόλια: Η άσκηση είχε διδαχθεί αυτούσια στο προηγούμενο ακριβώς μάθημα. Δεν υπήρχε στις διαφάνειες αλλά είχε γραφτεί στον πίνακα. Μετά από ένα μικρό γκάλοπ, τη σημείωσαν 4 (ολογράφως τέσσερις) φοιτητές. Ερώτηση 2: Τι θα τυπώσει ο παρακάτω κώδικας; Απαντήστε στον παράπλευρο χώρο. int i, j; for (i =, j = x81; i < 1; i++, j++) { printf( i = x%x j = x%x\n, i, j); i = i << 2; j = j >> 2; i = x j = x81 i = x1 j = xe1 i = x5 j = xf81 Σχόλια: Σχετική ύλη: διάλεξη 4 + παραδείγματά της Στην ολίσθηση δεξιά, το με τι συμπληρώνονται οι κενές θέσεις εξαρτάται από το αν ο αριθμός είναι προσημασμένος ή απρόσημος. Αν είναι απρόσημος, οι κενές θέσεις συμπληρώνονται με. Αν είναι προσημασμένος, οι κενές θέσεις συμπληρώνονται με ότι ήταν το πιο σημαντικό bit. Στην περίπτωσή μας, συμπληρώνονται με 1. Θα περίμενε κανείς ότι θα καταφέρνατε (τουλάχιστον) να κάνετε σωστά τους υπολογισμούς του i, οι οποίοι δεν έχουν κάτι το πονηρό.

Συνηθισμένα λάθη: Να γίνεται το i++ ή j++ πριν εκτελεστούν οι εντολές του block του for. Να θεωρείτε ότι το for τρέχει για 1 επαναλήψεις. Να γίνεται η ολίσθηση κατά δεκαεξαδικά ψηφία αντί κατά bits. Έτσι π.χ. με αυτή τη λογική το x1 << 2 γινόταν x1 αντί του σωστού x4. Ερώτηση 3: Λύστε την άσκηση της ερώτησης 1 με επαναληπτικό τρόπο (όχι αναδρομικά). Δώστε και τη main που θα χρησιμοποιήσετε, η οποία θα περιλαμβάνει και την κλήση της συνάρτησης. #include <stdio.h> int count_chars (char *str, char lookfor) { int count = ; while (*str!= '\') { if (*str == lookfor) { count++; str++; return(count); int main(int argc, char *argv[]) { char my_str[] = "The rain in Spain"; char lookfor_char = ' '; int count; count = count_chars(my_str, lookfor_char); printf("character %c found %d times\n", lookfor_char, count); return(); Συνηθισμένα λάθη (από που να ξεκινήσει κανείς...): / και /n αντί για \ και \n. Το λάθος ήταν τόσο συχνό που προς στιγμήν προβληματίστηκα για το ποιο είναι το σωστό και έψαξα στο βιβλίο. = αντί για == σε τελεστές σύγκρισης Αύξηση τιμής μεταβλητής η οποία δεν έχει αρχικοποιηθεί σε κάτι Να γίνεται το str++ μόνο μέσα στο if και όχι σε κάθε περίπτωση Να μην μπαίνουν οι τύποι στις τυπικές παραμέτρους των συναρτήσεων όταν δηλώνεται η συνάρτηση Να μπαίνουν τύποι μπροστά από τις πραγματικές παραμέτρους των συναρτήσεων όταν καλείται η συνάρτηση Να είναι δηλωμένη η συνάρτηση μέσα στο block εντολών της main

Να μην αποθηκεύεται πουθενά / να μην αξιοποιείται κάπως το αποτέλεσμα της συνάρτησης. Να δηλώνονται μεταβλητές ως pointers και να ανατίθενται τιμές εκεί που δείχνουν χωρίς να δεσμευθεί μνήμη (!!!???!!!) Σχόλιο: ΟΛΑ μα όλα τα παραπάνω λάθη τα κάνετε και στα εργαστήρια και σας έχουν επισημανθεί ΠΑΡΑΠΑΝΩ ΑΠΟ ΜΙΑ ΦΟΡΕΣ στα προσωπικά σχόλια που παίρνετε για την ποιότητα των εργασιών που υποβάλετε. ΒΑΘΜΟΛΟΓΙΑ ΚΑΙ ΣΤΑΤΙΣΤΙΚΑ Εγγεγραμμένοι στο μάθημα: 376 Σημείωση 1: Ο πραγματικός αριθμός είναι μεγαλύτερος, γιατί δεν συμπεριλαμβάνονται μετεγγραφές Παρόντες τη μέρα του quiz: 141 Ποσοστό παρόντων (επί του συνόλου των εγγεγραμμένων): 37,5 % Σημείωση 2: Το πραγματικό ποσοστό είναι μικρότερο (δείτε σημείωση 1) Παρόντες 1ετείς: 71 Παρόντες μεγαλύτερων ετών: 7 Δεν είχαν στυλό: 17 Σημείωση 3: Ο πραγματικός αριθμός είναι μεγαλύτερος, γιατί στον αριθμό περιλαμβάνονται μόνο όσοι δεν είχαν στυλό και δεν κατάφεραν να βρουν δανεικό από τους γύρω τους Ποσοστό που δεν είχαν στυλό (επί των παρόντων): 12,6 % Σημείωση 4: Το πραγματικό ποσοστό είναι μεγαλύτερο (δείτε σημείωση 3) Τουριστική θέση (δεν είχαν στυλό ή ο συνολικός βαθμός ήταν < 1): 52 Σημείωση 5: Ο πραγματικός αριθμός είναι μεγαλύτερος (δείτε σημείωση 3) Ποσοστό τουριστικής θέσης (επί των παρόντων): 36,88 % Σημείωση 6: Το πραγματικό ποσοστό είναι μεγαλύτερο (δείτε σημείωση 3) Μέσοι όροι βαθμών και τυπικές αποκλίσεις Σημείωση 7: Σε όλα τα νούμερα και τα διαγράμματα από αυτό το σημείο και κάτω ΔΕΝ συμπεριλαμβάνονται όσοι δεν είχαν στυλό. Σημείωση 8: Όλοι οι βαθμοί είναι με άριστα το 1 (και βάση το 5) Μέσος όρος (Τυπική απόκλιση) Άσκηση 1 Άσκηση 2 Άσκηση 3 Σύνολο Σύνολο 13,78 (26,4) 2,99 (8,43) 51,73 (35,9) 22,83 (17,3) 1 ετείς 12,16 (26,37) 2,99 (7,74) 51,49 (33,86) 22,21 (16,2) > ετείς 15,58 (26,54) 3 (9,21) 52 (36,71) 23,53 (18,74) Φοιτητές με βαθμό >=5: 12 Ποσοστό: 9,68 % 1ετείς με βαθμό >=5: 4 Ποσοστό (επί 1ετών): 5,97% >ετείς με βαθμό >=5: 8 Ποσοστό (επί μεγαλοετών): 13,33 %

Κατανομή βαθμολογίας (ανά άσκηση και στο σύνολο) 9 8 7 6 5 4 3 1 Άσκηση 1 1 Άσκηση 2 1 8 6 4 3 Άσκηση 3 25 15 1 5

4 Μέσος Όρος 35 3 25 15 1 5 ΣΧΟΛΙΑΣΜΟΣ Περιττεύει...