Εισαγωγή στην πληροφορική

Σχετικά έγγραφα
Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

Προγραμματιστικές τεχνικές

Εισαγωγή στην πληροφορική

Προγραμματιστικές Τεχνικές

Προγραµµατιστικές τεχνικές

Προγραμματιστικές τεχνικές

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

Προγραμματιστικές Τεχνικές

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

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

Εισαγωγή στην πληροφορική

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

Προγραµµατιστικές Τεχνικές

Προγραµµατιστικές τεχνικές

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

Προγραμματιστικές τεχνικές

Εισαγωγή στην πληροφορική

Προγραμματιστικές Τεχνικές

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

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

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

Προγραµµατιστικές τεχνικές

Εισαγωγή στην πληροφορική

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

Προγραµµατιστικές Τεχνικές

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

ΚΕΦΑΛΑΙΑ 3 & 9 (ΠΙΝΑΚΕΣ)

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

Μονοδιάστατοι Πίνακες

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

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

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

διανύσματα - Πίνακες - Struct Στατικό διάνυσμα Είσοδος Έξοδος δεδομένων Συναρτήσεις Χειρισμός σφαλμάτων ΤΕΤΑΡΤΗ ΔΙΑΛΕΞΗ

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

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

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

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

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

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

ΦΡΟΝΤΙΣΤΗΡΙΟ Μ.Ε. «ΠΕΡΙ ΓΝΩΣΕΩΣ»

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

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

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

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

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

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

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

Οι πίνακες με ένα δείκτη ονομάζονται μονοδιάστατοι αντίστοιχα με δύο δείκτες δισδιάστατοι κ.ο.κ

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Προγραµµατιστικές Τεχνικές

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

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

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

Ενότητα 1 Διάλεξη 3. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

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

ΘΕΜΑΤΑ + ΥΠΟ ΕΙΓΜΑΤΙΚΗ ΕΠΙΛΥΣΗ

Προγραμματιστικές Τεχνικές

Πίνακες (Arrays) Εισαγωγή στη C++

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

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

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

Στοιχειώδης προγραμματισμός σε C++

Ενδεικτικές Ερωτήσεις Θεωρίας

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

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

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

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

Εισαγωγή στην πληροφορική

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

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

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

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

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

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

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

Μονοδιάστατοι Πίνακες

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

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

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

Θέμα Β. ΓΙΑ γ ΑΠΟ 1 ΜΕΧΡΙ 4. ΓΙΑ δ ΑΠΟ 1 ΜΕΧΡΙ 4. Α[γ,δ] 17 - (γ-1)*4 - δ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗ

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

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραμματισμού C++ Λογικές εκφράσεις, επαναληπτικές δομές, πίνακες Πίνακες (arrays) Οι μεταβλητές μνήμης προσφέρουν χώρο αποθήκευσης ατομικών (απλών) δεδομένων int a; float x, y, z; char c1, c2, c3; Συνήθως τα δεδομένα των οποίων κάνουμε την επεξεργασία με χρήση ΗΥ δεν είναι απλά αλλά πρέπει να οργανωθούν κατάλληλα Παραδείγματα Μετρήσεις συντεταγμένων διαδοχικών θέσεων στο επίπεδο Οι εγγραφές και η βαθμολογία των σπουδαστών στο πανεπιστήμιο Διαδοχικές μετρήσεις φυσικών μεγεθών σε τακτά χρονικά διαστήματα Τα δεδομένα αυτά έχουν είτε σύνθετη δομή, είτε/και διάταξη 1

Πίνακες Για την παράσταση σύνθετων δεδομένων, η C++ διαθέτει ένα σύνολο εργαλείων και μηχανισμών, όπως: Δομές (structures) Κλάσεις (classes) Απαριθμητούς τύπους (enumerated types) Πίνακες (arrays) Αρχεία (files) Πίνακες Ενας πίνακας είναι μια συλλογή ενός προκαθορισμένου αριθμού στοιχείων, τα οποία είναι όλα του ίδιου τύπου δεδομένων 120 ακέραιοι 24 πραγματικοί αριθμοί 25 χαρακτήρες κ.ά. Πίνακες Τα στοιχεία ενός πίνακα μπορούν να διατάσσονται σε μία ή περισσότερες διαστάσεις (dimensions) Μονοδιάστατοι πίνακες Δισδιάστατοι πίνακες Τρισδιάστατοι κλπ Μας διευκολύνει να αντιλαμβανόμαστε την οργάνωση των μονοδιάστατων και δισδιάστατων πινάκων σε γραμμές και στήλες Κάθε στοιχείο σε έναν πίνακα διακρίνεται από τα άλλα από τη θέση του 3ο στοιχείο 2η γραμμή 1η στήλη 2

Πίνακες στη C++ Δήλωση πινάκων τύπος ονομα [μέγεθος διάστασης1] [μέγεθος διάστασης2] [μέγεθος διάστασης3]... Παραδείγματα int exam_grades[120] δηλώνει έναν μονοδιάστατο πίνακα ακεραίων με όνομα exam_grades και μέγεθος 120 120 float temperatures[12][31] δηλώνει έναν δισδιάστατο πίνακα ακεραίων με όνομα temperatures και μήκος 12x31 31 12 Πίνακες στη C++ Μετά τη δήλωση του πίνακα, κάθε στοιχείο του διακρίνεται από τα υπόλοιπα από τον/τους δείκτες που ακολουθούν το όνομα του πίνακα int grades[120]; grades[20]=9; grades[21]=4; // η δήλωση // αναφορά σε στοιχεία ΠΡΟΣΟΧΗ!!! Στη C++ η αρίθμηση των στοιχείων ξεκινά από το 0 (μηδέν). Τα στοιχεία ενός πίνακα που δηλώνεται με μέγεθος n, αριθμούνται από 0 έως n-1 int grades[120]; // grades[0] -> grades[119] float temp[12][31]; // temp[0][0] -> temp[11][30] 0,0 5,3 2,8 2,30 3

Παράδειγμα Υπολογισμός μέσης θερμοκρασίας του έτους, όταν δίνονται οι μέσες θερμοκρασίες για κάθε μήνα Παράδειγμα Υπολογισμός μέγιστης θερμοκρασίας του έτους 4

Παράδειγμα Βελτίωση για την εισαγωγή των θερμοκρασιών και την εύρεση του μήνα στον οποίο προκύπτει η μέγιστη θερμοκρασία Προγραμματισμός με C++ Παράδειγμα Να κατασκευαστεί πρόγραμμα C++ το οποίο διαβάζει από το πληκτρολόγιο τις τιμές της μέσης θερμοκρασίας κάθε ημέρας του έτους και υπολογίζει α) τη μέγιστη θερμοκρασία του έτους και β) τη μέση θερμοκρασία του έτους Σημείωση: Οι αποδεκτές τιμές της θερμοκρασίας είναι στο διάστημα [-50, 50] Δεδομένα εισόδου: 365 τιμές θερμοκρασίας (αγνοούμε τα δίσεκτα) -> πραγματικοί αριθμοί Αποτελέσματα: Μέση τιμή = άθροισμα / 365 Μέγιστη τιμή Λοιπά: Συνθήκη εγκυρότητας θερμοκρασίας κατά την ανάγνωση δεδομένων εισόδου 5

Παράδειγμα Δεδομένα εισόδου: 365 πραγματικοί αριθμοί -> πίνακας float temperature[365] Τιμές: temperature[0] έως temperature[364] Διάβασμα δεδομένων εισόδου Για 365 φορές (i:0->364) επανάλαβε: Ανάγνωση μιας τιμής θερμοκρασίας Υπολογισμοί 1 Θέσε άθροισμα = 0 Για 365 φορές επανάλαβε: πρόσθεσε τη θερμοκρασία temperature[i] στο άθροισμα Μέση τιμή = άθροισμα / 365 temperature temperature i i 365 365 + t_sum Παράδειγμα Υπολογισμοί 2 Θεώρησε ότι μέγιστη τιμή είναι η πρώτη τιμή του πίνακα θερμοκρασιών max_known=temperature[0] max_known Διάτρεξε τον υπόλοιπο πίνακα (i: 1->364) και για κάθε τιμή του Αν temperature[i] > max_known τότε max_known=temperature[i] i > max_known? max_known 6

Παράδειγμα Βελτίωση 1 Να εισάγονται στον πίνακα μόνο στοιχεία στο διάστημα [-50, 50] Διάβασμα δεδομένων εισόδου ΑΚΥΡΑ ΕΓΚΥΡΑ Για 365 φορές (i:0->364) επανάλαβε: Επανάλαβε -50 50 Ανάγνωση μιας τιμής θερμοκρασίας T Οσο ισχύει ότι η θερμοκρασία είναι μη αποδεκτή ΑΚΥΡΑ Λογική συνθήκη Εγκυρότητα (T>=-50) and (T<=50) (αποδεκτές τιμές) Αν C1 είναι η λογική συνθήκη Τ>=50 και C2 η λογική συνθήκη T<=50 Αποδεκτές τιμές: (C1 and C2) Μη αποδεκτές τιμές not(c1 and C2) ή αλλιώς not(c1) OR not(c2) not(c1) = T<-50 και not(c2) = T>50 Τελικά: συνθήκη μη αποδοχής: Τ<-50 OR Τ>50 και σε C++ ((t<-50) (t>50)) Παράδειγμα Βελτίωση 2 Να γίνεται ο υπολογισμός του μέγιστου στην ίδια επανάληψη με την ανάγνωση Διάβασμα δεδομένων εισόδου max_known = -50 // γιατί;;;; Για 365 φορές (i:0->364) επανάλαβε: Επανάλαβε Ανάγνωση μιας τιμής θερμοκρασίας T Οσο ισχύει ότι η θερμοκρασία είναι μη αποδεκτή Αν temperature[i] > max_known τότε max_known=temperature[i] 7

Συγγραφή προγράμματος Δήλωση μεταβλητών float temperature[365], average, max_known, temp_sum int i Ανάγνωση δεδομένων (1) for(i=0; i<365; i++) cin>>temperature[i]; Ανάγνωση δεδομένων με έλεγχο for(i=0; i<365; i++) { do { cin>>temperature[i]; } while ((temperature[i]<-50) (temperature[i]>50)) } Συγγραφή προγράμματος Υπολογισμός ΜΤ και κατόπιν υπολογισμός μέγιστου temp_sum=0; for(i=0; i<365; i++) temp_sum=temp_sum+temperature[i]; average=temp_sum/365; max_known=temperature[0]; for(i=1; i<365; i++) if (temperature[i]>max_known) max_known=temperature[i]; Υπολογισμός σε μία επανάληψη temp_sum=0; max_known=-50; for(i=0; i<365; i++) { temp_sum=temp_sum+temperature[i]; if (temperature[i]>max_known) max_known=temperature[i]; } average=temp_sum/365; 8