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

Σχετικά έγγραφα
Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

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

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

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

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

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

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

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

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

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

Συναρτήσεις και διαδικασίες

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

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

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

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

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

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

11. Συναρτήσεις (Μέρος Ι)

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις

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

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12. Συναρτήσεις (Μέρος ΙI)

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο. Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή

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

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

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

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

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

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

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

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

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

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

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

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. Δείκτες (Διάλεξη 14)

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

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

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

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

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

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

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. (Διάλεξη 14) Παράδειγμα: Αλλαγή τιμής μεταβλητής μόνο τοπικά

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

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

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

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

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

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

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

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

Εισαγωγή στους πίνακες

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 8: Συναρτήσεις. Κ.

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

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

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

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Διάλεξη 9η: Πίνακες (arrays)

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

Transcript:

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

Πίνακες (1) Μια συλλογή μεμονωμένων τιμών δεδομένων Οι πίνακες είναι διατεταγμένοι τα στοιχεία ενός πίνακα είναι τοποθετημένα με συγκεκριμένη σειρά Οι πίνακες είναι ομοιογενείς όλα τα στοιχεία ενός πίνακα είναι μεταβλητές του ίδιου τύπου

Πίνακες (2) <τύπος> <όνομα_πίνακα>[<μέγεθος>] Το μέγεθος του πίνακα είναι μία σταθερά που μπορεί να οριστεί και με την χρήση της #define Το μέγεθος του πίνακα δεν μπορεί να είναι η τιμή μίας μεταβλητής Οι θέσεις του πίνακα ξεκινάνε από 0 και τελειώνουν στο στοιχείο <μεγεθος> -1 παραδείγματα: int A[10] πίνακας ακεραίων με 10 θέσεις float grades[10] πίνακας από δεκαδικούς 10 θέσεων

Πίνακες (3) 0 1 2 3 4 5 6 7 8 9 Σωστό int table[10]; Σωστό #define N 10 int table[n]; Λάθος int N=10; int table[n];

Ανάθεση Τιμών και χρήση <ονομα_πίνακα>[<θέση>] παραδείγματα pinakas[0] = 5; x = pinakas[3]; Προσοχή: Όταν αναφερόμαστε σε ένα πίνακα δεν γίνεται έλεγχος αν αυτή η θέση υπάρχει παράδειγμα: int pinakas[3]; pinakas[10] = 0; Παρόλου που δεν υπάρχει η θέση 10, το πρόγραμμα θα μεταγλωτιστεί σωστά

Πίνακες Παράδειγμα(1) Το πρόγραμμα θα διαβάζει από τον χρήστη τις θερμοκρασίες για ένα μήνα και θα εμφανίζει την μεγαλύτερη θερμοκρασία. Παρατήρηση: Ο χρήστης δίνει τιμές για τις ημέρες 1 μέχρι 30. Ο πίνακας όμως έχει θέσεις από 0 μέχρι 29.

Πίνακες Παράδειγμα(2) #include <stdio.h> int main(void) { float temperature[30],max; int i; for(i=0; i<30; i++){ printf("dwse thermokrasia gia thn %d hmera: ",i+1); scanf("%f",&(temperature[i]); max = temperature[0]; for(i=1;i<30; i++){ if(temperature[i]>max){ max=temperature[i]; printf("megisth thermokrasia: %f\n",max);

Συναρτήσεις (1) Σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί ένα όνομα Κάθε συνάρτηση δέχεται ένα σύνολο ορισμάτων μπορεί να είναι και το κενό σύνολο με τα ορίσματα γίνεται η μεταβίβαση πληροφορίας στην συνάρτηση Επιστροφή τιμής το αποτέλεσμα της συνάρτησης μετα το τέλος των εντολών είναι μόνο μία μεταβλητή

Συναρτήσεις (2) Παραδείγματα: main() printf() printf("hello world\n"); sqrt() y=sqrt(x); pow() y=pow(x,2); y=pow(10,2); y=pow(3,20);

Δήλωση Συναρτήσεων Πρωτότυπο συνάρτησης: <επιστρεφόμενος τυπος> <όνομα συνάρτησης>(<ορίσματα>) Από το προτότυπο της συνάρτησης καταλαβαίνουμε τι ορίσματα δέχεται και τι επιστέφει το όνομα συνήθως, διαλέγουμε να είναι αντιπροσωπευτικό, ΑΛΛΑ δεν είναι υποχρεωτικό <επιστρεφόμενος τύπος>: τι τύπου είναι τα δεδομένα που επιστρέφει η συνάρτηση <όνομα συνάρτησης>: είναι το όνομα της συνάρτησης δεν γίνεται δύο συνάρτήσεις να έχουν το ίδιο όνομα <ορίσματα>: μία λίστα χωρισμένη με κόμματα από τύπο δεδομένων και όνομα μεταβλητής

Παράδειγμα int max(int a1, int a2) Οι συνάρτηση δέχεται δύο ακέραιους ως ορίσματα επιστρέφει έναν ακέραιο το όνομα είναι max μπορούμε να υποθέσουμε οτι θα επιστρέφει το μέγιστο εκ των δύο αριθμών η υπόθεσή μας ΔΕΝ είναι ασφαλής. Πρέπει να δούμε τον κώδικα για να δούμε τι ακριβώς κάνει

Υλοποίηση Συνάρτησης - Παράδειγμα int max(int a1, int a2) { if(a1 > a2){ return a1; else{ return a2; Η επιστροφή τιμής γίνεται με την εντολή return Όταν συναντήσουμε return η συνάρτηση ολοκληρώνεται και δεν προχωράει στην επόμενη εντολή

Υλοποίηση Συνάρτησης - Παράδειγμα int max(int a1, int a2) { if(a1 > a2){ return a1; return a2; Η συνάρτηση δουλεύει σωστά και επιστρέφει το μέγιστο εκ των a1,a2 Αν εκτελεστεί η εντολή return a1, τότε δεν θα προχωρήσει παρακάτω η συνάρτηση

Πέρασμα Παραμέτρων Οι συναρτήσεις δεν μπορούν να αλλάξουν τις τιμές των μεταβλήτων που δέχονται ως ορίσματα Όμως μπορούν να αλλάξουν τις τιμές ενός πίνακα Ερώτηση: Πως μπορεί η scanf() και αλλάζει την τιμή μίας μεταβλητής; Χρησιμοποιείται ο χαρακτήρας &, όπου περνάει η διεύθυνση μίας μεταβλήτης. Δεν αποτελεί ύλη του συγκεκριμένου μαθήματος

Παραδείγμα 1 int fun(int x) { χ++; return (x); int main(void) { int a=2, b; b=fun(a); printf("a: %d - b%d\n",a,b); Το παραπάνω πρόγραμμα θα εκτυπώσει a: 2 - b:3

Παράδειγμα 2 int fun(int X[3]) { int i; for(i=0; i<3; i++) X[i]++; int main(void) { int A[3],i; for(i=0; i<3; i++){ A[i]=0; fun(a); for(i=0;i<3;i++){ printf("%d ",A[i]); Το παραπάνω πρόγραμμα θα εκτυπώσει: 1 1 1