Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Σχετικά έγγραφα
Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

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

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

17. Πολυδιάςτατοι πίνακεσ

16. Πίνακεσ και Συναρτήςεισ

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων

Δομζσ Δεδομζνων. Αναηιτθςθ και Ταξινόμθςθ Διάλεξθ 3

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 20. Αρχεία. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. Διαφάνειεσ: Βαςικζσ Αρχζσ Προγραμματιςμοφ Α.Π.Θ. Δθμιτρθσ Βράκασ

Ιδιότθτεσ πεδίων Γενικζσ.

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Δομζσ Δεδομζνων Πίνακεσ

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

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

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

8 ΥΜΒΟΛΟΕΙΡΕ - STRINGS

ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ Αςκήςεισ με ψευδογλώςςα/ διάγραμμα ροήσ. Αντώνης Μαϊργιώτης

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α)

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

1 ο ΜΑΘΗΜΑ Κεφάλαιο 1, Παράγραφοι 1.1, 1.2 ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

(3Μονάδεσ) Δεδομζνα //Α// Για i από 1 μζχρι 10 k (100+i)mod 101 B[k] A[i] Τζλοσ_επανάλθψθσ Αποτελζςματα //Β,k//

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

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

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

343 Ειςαγωγι ςτον Προγραμματιςμό

Ε. ε περίπτωςθ που θ διαφορά των δφο ηαριϊν είναι 3 τότε ο παίκτθσ ξαναρίχνει μόνο ζνα ηάρι.

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

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Δείκτεσ απόδοςθσ υλικών

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

1. Εγκατάςταςη κειμενογράφου JCE

Βαγγζλθσ Οικονόμου Διάλεξθ 7. Συναρτιςεισ Μζροσ 2ο

Σφςτημα Κεντρικήσ Υποςτήριξησ τησ Πρακτικήσ Άςκηςησ Φοιτητών ΑΕΙ

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

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

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

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

Οδηγίεσ για την Τποβολή Καταςτάςεων υμφωνητικών μζςω xml αρχείου

Εφδοξοσ+ Συνδεκείτε ςτθν Εφαρμογι Φοιτθτϊν και μεταβείτε ςτθ ςελίδα «Ανταλλαγι Βιβλίων (Εφδοξοσ+)».

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

Υπολογιςτική πολυπλοκότητα αλγορίθμων γραμμικοφ προγραμματιςμοφ

343 Ειςαγωγι ςτον Προγραμματιςμό

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

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

343 Ειςαγωγι ςτον Προγραμματιςμό

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

HY437 Αλγόριθμοι CAD

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

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

C: Από τη Θεωρία στην Εφαρμογή

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

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

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

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

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

Πωσ δθμιουργώ φακζλουσ;

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 14. Πίνακες Ι. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

1 ο Διαγώνιςμα για το Α.Ε.Π.Π.

ΘΕΜΑ Α / Αν μια μεταβλθτι ζχει τθν τιμι 47.0 τότε ο τφποσ τθσ μεταβλθτισ είναι ακζραιοσ.

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

Ανϊτερεσ πνευματικζσ λειτουργίεσ Μνιμθ Μάκθςθ -Συμπεριφορά

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ

Αςφάλεια και Προςταςία Δεδομζνων

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

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

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

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

Ειδικά Θζματα Βάςεων Δεδομζνων

ΟΝΟΜΑΣΟΛΟΓΙΑ ΠΑΡΑΜΕΣΡΩΝ ΓΙΑ ΠΡΟΑΡΜΟΜΕΝΕ ΑΝΑΦΟΡΕ. παραμζτρου> (Εμφανίηεται ςαν Caption ςτθν φόρμα των φίλτρων).

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό

ΑΚΗΗ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ ΑΠΑΙΣΟΤΜΕΝΩΝ ΤΛΙΚΩΝ Π.Α.Υ. 1

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

22. Ασκήσεις Επανάληψης

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΓΑΣΤΗΙΟ 3

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

Στατιςτικζσ δοκιμζσ. Συνεχι δεδομζνα. Γεωργία Σαλαντι

Τεχνικι Παρουςιάςεων με PowerPoint

Transcript:

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 15. Πίνακεσ ΙI Ιωάννθσ Κατάκθσ

Σιμερα o Ειςαγωγι o Διλωςθ o Αρχικοποίθςθ o Πρόςβαςθ o Παραδείγματα

Πίνακεσ - Επανάλθψθ o Στθν προθγοφμενθ διάλεξθ κάναμε μια ειςαγωγι ςτθν δομι δεδομζνων Πίνακασ o Σε ζνα πίνακα ζνα ςφνολο αντικειμζνων του ιδίου τφπου αποκθκεφονται ςε ςειρά, π.χ. int md[12]= {31,28,31,30,31,30,31; τύπος όνομα μέγεθος md[0] md[1] md[2] md[11] 31 28 31 31 τιμές

Εφαρμογζσ Πινάκων Σιμερα κα δοφμε τισ εξισ εφαρμογζσ Πινάκων 1. Παράλλθλοι Πίνακεσ 2. Γραμμικι Αναηιτθςθ (Linear Search) 3. Γραμμικι Αναηιτθςθ & Ενθμζρωςθ 4. Μζτρθςθ Στοιχείων που ικανοποιοφν κάποια ςυνκικθ. 5. Αλγόρικμοσ Ταξινόμθςθσ Πίνακα Selection-Sort

1) Παράλλθλοι Πίνακεσ Περιςςότεροι από ζνα μονοδιάςτατουσ πίνακεσ, όπου κάκε δείκτθσ i αναφζρεται ςτα ςτοιχεία ενόσ κοινοφ αντικειμζνου. #define STUDENT_NUM 55 int student_id[student_num]; float student_grade[student_num]; 2 παράλλθλοι πίνακεσ o int student_id[i] περιζχει αρ. ταυτότθτασ του i o float student_grade[i] περιζχει τον βακμό του φοιτθτι i.

1) Παράλλθλοι Πίνακεσ Δθλαδι θ αποκικευςθ των πλθροφοριϊν ςε αυτοφσ τουσ πίνακεσ μοιάηει ωσ εξισ: 0 1 2... 54 student_id 12345 37349 9995 20001 0 1 2... 54 student_grade 2.12 6.14 4.56 7.8

1) Παράλλθλοι Πίνακεσ - Παράδειγμα #include <stdio.h> #define STUDENT_NUM 3 int main() { int i; int student_id[]={12345, 37349, 9995; float student_grade[]={90.3,78.2,45.3; for(i=0;i<student_num;i++) printf("student with id: %d, grade: %f\n", student_id[i], student_grade[i]); Εκτυπϊνει Student with id: 12345, grade: 90.300003 Student with id: 37349, grade: 78.199997 Student with id: 9995, grade: 45.299999

1) Παράλλθλοι Πίνακεσ Θα μποροφςα να είχα περιςςότερουσ από 2 πίνακεσ. π.χ. #define STUDENT_NUM 55 int student_id[student_num]; float student_grade[student_num]; int student_age[student_num]; int student_year[student_num]; char student_sex[student_num];..

2) Γραμμικι αναηιτθςθ (Linear Search) o Γράψετε τμιμα προγράμματοσ που αναηθτά μζςα ςτον πίνακα ακζραιων ςτοιχείων student_id τθ κζςθ που περιζχει τθν τιμι z. o Δθλαδι ψάχνουμε να βροφμε αν υπάρχει μια ςυγκεκριμζνθ ταυτότθτα ςτον πίνακα ταυτοτιτων. o Το μζγεκοσ του πίνακα ορίηεται με τθν ςτακερά STUDENT_NUM. o Αν δεν βρεκεί το ςτοιχείο το πρόγραμμα να εκτυπϊνει μινυμα λάκουσ, αν βρεκεί επιςτρζφει τθν κζςθ i ςτθν οποία βρζκθκε.

2) Γραμμικι αναηιτθςθ (Linear Search) o Τι πρζπει να γίνει; Αναηιτθςθ o Ψευδοκϊδικασ για κάκε ςτοιχείο του πίνακα εάν είναι ίςο με z φφλαξε κζςθ τερμάτιςε επανάλθψθ o Κόςτοσ Στθν χειρότερθ περίπτωςθ εξζταςθ όλων των ςτοιχείων του πίνακα Στθν καλφτερθ περίπτωςθ βρίςκουμε το ςτοιχείο ςτθν πρϊτθ κζςθ. 0 1 2... 54 student_id 12345 37349 9995 20001

2) Γραμμικι αναηιτθςθ - Υλοποίθςθ #include <stdio.h> #define STUDENT_NUM 3 // Εδϊ χρθςιμοποιοφμε μόνο 3 φοιτθτζσ αντί 54 int main() { int i; int student_id[]={12345, 37349, 9995; int z = 98995; for(i=0; i<student_num; i++) if (student_id[i]==z) break; if (i==student_num) printf("not FOUND"); else printf("found at position:%d", i);

3) Γραμμικι Αναηιτθςθ & Ενθμζρωςθ o Υποκζςτε φπαρξθ δυο παράλλθλων πινάκων με ίδιο μζγεκοσ (student_id και student_grade) o Γράψετε πρόγραμμα που αναηθτά μζςα ςτον student_id τον φοιτθτι με αρικμό ταυτότθτασ id και ενθμερϊνει ςτον student_grade τθν βακμολογία (του φοιτθτι id) με τθν τιμι 100 o Αν δεν υπάρχει ο ςυγκεκριμζνοσ φοιτθτισ δϊςτε το κατάλλθλο μινυμα λάκουσ

3) Γραμμικι Αναηιτθςθ & Ενθμζρωςθ #include <stdio.h> #define STUDENT_NUM 3 // Εδϊ χρθςιμοποιοφμε μόνο 3 φοιτθτζσ αντί 54 int main() { int i; int student_id[]={12345, 37349, 9995; float student_grade[]={90.3,78.2,45.3; int id = 9995; for(i=0; i<student_num; i++) { if (student_id[i]==id) { student_grade[i]=100; break; if (i==student_num) { printf("not FOUND\n"); else { printf("record Updated at position:%d\n", i); for(i=0;i<student_num;i++) printf("student with id: %d, grade: %f\n", student_id[i], student_grade[i]);

3) Γραμμικι Αναηιτθςθ & Ενθμζρωςθ Αποτζλεςμα του προγράμματοσ Record Updated at position:2 Student with id: 12345, grade: 90.300003 Student with id: 37349, grade: 78.199997 Student with id: 9995, grade: 100.000000 Τι θα αλλάζαμε αν θέλαμε να δώζοςμε ζε όλοςρ με βαθμό από 93 και πάνω ηην ηιμή 100;

4) Μζτρθςθ Στοιχείων o Γράψετε ζνα πρόγραμμα που υπολογίηει και επιςτρζφει τον αριθμό των φοιτητών που παίρνουν βακμό από 80 και πάνω. o Οι βακμοί είναι αποκθκευμζνοι ςε πίνακα. #define SIZE 3 float student_grade[]={90.3,78.2,45.3; o Το μζγεκοσ του πίνακα περιζχεται ςτθν παράμετρο SIZE.

4) Μζτρθςθ Στοιχείων #include <stdio.h> #define STUDENT_NUM 3 int main() { int i; float student_grade[]={90.3,78.2,45.3; int count = 0; for(i=0; i<student_num; i++) { if (student_grade[i]>=80) { count++; printf("υπάρχουν %d φοιτθτζσ me 80 και πάνω", count);

5) Αλγόρικμοσ Ταξινόμθςθσ Πίνακα SelectioSort o Μασ δίδεται ζνασ πίνακασ αρικμϊν. Θζλουμε να τον ταξινομιςουμε. o Υπάρχουν πολλοί αλγόρικμοι. Ζνασ τζτοιοσ αλγόρικμοσ είναι ο SelectionSort. o Η SelectionSort βαςίηεται ςτα ακόλουκα τρία βιματα: 1. επιλογι του ελάχιςτου ςτοιχείου 2. ανταλλαγι με το i-οςτό ςτοιχείο (i είναι μια μεταβλθτι που αυξάνεται κατά ζνα). 3. επανάλθψθ των βθμάτων 1 και 2 για τα υπόλοιπα ςτοιχεία.

5) Παράδειγμα Selection Sort Θζςη 0 1 2 3 4 5 Αρχικός Πίνακας 34 8 64 51 32 33 Με i=0 8 34 64 51 32 33 Με i=1 8 32 64 51 34 33 Με i=2 8 32 33 51 34 64 Με i=3 8 32 33 34 51 64 Με i=4 8 32 33 34 51 64 Τελικός Πίνακας 8 32 33 34 51 64

5) Υλοποίθςθ Selection Sort #include <stdio.h> #define SIZE 7 int main() { int A[ ]={34, 8, -21, 64, 51, 32, 33; int pos, temp; int i,j; for (i=0; i<size-1; i++) { // θζςη επόμενου μικρότερου ςτοιχείου pos=i; // βρζσ το μικρότερο ςτοιχείο for (j = i+1; j < SIZE; j++) { if (A[j]<A[pos]) pos=j; // κζςθ μικρότερου // αντάλλαξε το A[i] με το A[pos] temp = A[i]; A[i] = A[pos]; A[pos] = temp; // Εκηύπωζη Πίνακα for (i=0; i<size; i++) { printf("%d, ", A[i]); Σηο ηέλορ μποπούμε να εκηςπώζοςμε ηον ηαξινομημένο πίνακα

5) Εκτζλεςθ Selection Sort BEFORE: [8,4,8,43,3,5,2,1,10,] Swapping 8 <-> 1 [1,4,8,43,3,5,2,8,10,] Swapping 4 <-> 2 [1,2,8,43,3,5,4,8,10,] Swapping 8 <-> 3 [1,2,3,43,8,5,4,8,10,] Swapping 43 <-> 4 [1,2,3,4,8,5,43,8,10,] Swapping 8 <-> 5 [1,2,3,4,5,8,43,8,10,] Swapping 8 <-> 8 [1,2,3,4,5,8,43,8,10,] Swapping 43 <-> 8 [1,2,3,4,5,8,8,43,10,] Swapping 43 <-> 10 [1,2,3,4,5,8,8,10,43,] AFTER:[1,2,3,4,5,8,8,10,43,]

Τζλοσ διάλεξθσ