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

Σχετικά έγγραφα
Προγραμματισμός I (Θ)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 6: Δείκτες και Πίνακες

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

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

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

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

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

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

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

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

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

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

Εργαστήριο 5. Εντολή if και παραλλαγές: if-else, πολλαπλές if, πολλαπλές if-else. Απλές και σύνθετες εντολές. Εντολή switch.

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

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

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

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

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

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

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

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

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

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

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

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικές Αρχές Προγραμματισμού

Transcript:

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 1 / 27

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ι (Θ) 1 Δομές δεδομένων - Πίνακες 2 Αριθμητικοί Πίνακες Μονοδιάστατοι Πίνακες 3 Ασκήσεις 4 Λύσεις Ασκήσεων Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 2 / 27

Contents 1 Δομές δεδομένων - Πίνακες 2 Αριθμητικοί Πίνακες Μονοδιάστατοι Πίνακες 3 Ασκήσεις 4 Λύσεις Ασκήσεων Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 3 / 27

Δομές δεδομένων - Πίνακες Οι πίνακες είναι μια στατική δομή δεδομένων Ο πίνακας δίνει τη δυνατότητα στον προγραμματιστή να δημιουργήσει μια δομή δεδομένων στην οποία μπορεί να αποθηκεύσει (καταχωρίσει) πολλές τιμές. Ο προγραμματιστής αναφέρεται και διαχειρίζεται τα δεδομένα τα οποία έχουν αποθηκευτεί σε πίνακα με τη βοήθεια ενός ονόματος και των δεικτών του πίνακα. Οι δείκτες του πίνακα σε C ξεκινούν από το μηδέν και είναι μια αύξουσα ακολουθία. Η τιμή του δείκτη μας δείχνει την θέση του πίνακα. Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 4 / 27

Δομές δεδομένων - Πίνακες Οι πίνακες μπορούν να έχουν πολλές διαστάσεις Οι μονοδιάστατοι πίνακες οι οποίοι έχουν ένα δείκτη Οι δισδιάστατοι πίνακες οι οποίοι έχουν δυο δείκτες Οι πολυδιάστατοι πίνακες οι οποίοι έχουν αριθμό δεικτών αντίστοιχο με τις διαστάσεις του πίνακα. Η διαχείριση και επεξεργασία των στοιχείων ενός πίνακα γίνεται με την βοήθεια επαναληπτικών εντολών Η πιο κατάλληλη επαναληπτική εντολή για την επεξεργασία πινάκων είναι η εντολή for. (είναι προφανές ότι για την επεξεργασία πινάκων μπορούμε να χρησιμοποιήσουμε όποια εντολή επανάληψης θέλουμε) Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 5 / 27

Δομές δεδομένων - Πίνακες Τα στοιχεία ενός πίνακα πρέπει να είναι ιδίου τύπου Ένας πίνακας μπορεί να δηλωθεί σύμφωνα με τους γνωστούς τύπους δεδομένων της C, δηλαδή, int, float, char κ.α. Οι πιο συνηθισμένοι τύποι πινάκων που χρησιμοποιούνται είναι οι αριθμητικοί (arrays) και οι αλφαριθμητικοί ή συμβολοσειρές (strings) Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 6 / 27

Contents 1 Δομές δεδομένων - Πίνακες 2 Αριθμητικοί Πίνακες Μονοδιάστατοι Πίνακες 3 Ασκήσεις 4 Λύσεις Ασκήσεων Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 7 / 27

Μονοδιάστατοι Πίνακες Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 8 / 27

Μονοδιάστατοι Πίνακες - Δήλωση Δήλωση μονοδιάστατου πίνακα 1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(){ 4 int A[100]; 5 return 0; 6 } Η δήλωση του πίνακα γίνεται όπως των απλών μεταβλητών με την προσθήκη του μεγέθους του πινάκα το οποίο περικλείεται σε αγκύλες Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 9 / 27

Μονοδιάστατοι Πίνακες - Δήλωση Δήλωση μονοδιάστατου πίνακα 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 10 4 int main(){ 5 int A[N]; 6 return 0; 7 } Ένας ορθός τρόπος να δηλώνουμε το μέγεθος του πίνακα είναι με την οδηγία #define με την οποία ορίζουμε μια σταθερά Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 10 / 27

Μονοδιάστατοι Πίνακες - Εμφάνιση I Εμφάνιση στοιχείων μονοδιάστατου πίνακα 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 int main(){ 5 int i, A[N]; 6 for(i=0;i<n;i=i+1){ 7 printf("\t%d",a[i]); 8 } 9 printf("\n"); 10 return 0; 11 } Για την εμφάνιση των στοιχείων του πίνακα χρησιμοποιούμε την εντολή επανάληψης for. Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 11 / 27

Μονοδιάστατοι Πίνακες - Εμφάνιση II Ο δείκτης i ξεκινά από την τιμή μηδέν και φτάνει μέχρι την τιμή N 1. 0 0 48 0 48 Αν δεν δώσουμε τιμές στον πίνακα τότε παίρνει τιμές από τα σκουπίδια της μνήμης Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 12 / 27

Μονοδιάστατοι Πίνακες - Αρχικοποίηση - Εμφάνιση I Αρχικοποίηση και εμφάνιση στοιχείων μονοδιάστατου πίνακα 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 int main(){ 5 int i, A[N]={10,100,5,15,25}; 6 for(i=0;i<n;i=i+1){ 7 printf("\t%d",a[i]); 8 } 9 printf("\n"); 10 return 0; 11 } Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 13 / 27

Μονοδιάστατοι Πίνακες - Αρχικοποίηση - Εμφάνιση II 10 100 5 15 25 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 14 / 27

Μονοδιάστατοι Πίνακες - Εισαγωγή - Εμφάνιση I Εισαγωγή και εμφάνιση στοιχείων μονοδιάστατου πίνακα 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 #define N 5 5 int main(){ 6 int A[N],B[N],i; 7 for (i=0;i<n;i=i+1){ 8 A[i]=pow(i,2); 9 B[i]=2*A[i]; 10 } 11 for (i=0;i<n;i=i+1){ 12 printf("\t%d",a[i]); 13 } 14 printf("\n\n"); Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 15 / 27

Μονοδιάστατοι Πίνακες - Εισαγωγή - Εμφάνιση II 15 for (i=0;i<n;i=i+1){ 16 printf("\t%d\n",b[i]); 17 } 18 return 0; 19 } 0 1 4 9 16 0 2 8 18 32 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 16 / 27

Μονοδιάστατοι Πίνακες - Εκχώρηση - Επεξεργασία I Εκχώρηση τιμών και επεξεργασία στοιχείων μονοδιάστατου πίνακα 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 int main(){ 5 int A[N],B[N],i,sum,sumP; 6 for (i=0;i<n;i=i+1){ 7 printf("\ngive the element A[%d]= ",i); 8 scanf("%d",&a[i]); 9 } 10 sum=0; 11 sump=0; 12 for (i=0;i<n;i=i+1){ Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 17 / 27

Μονοδιάστατοι Πίνακες - Εκχώρηση - Επεξεργασία II 13 sum=sum+a[i]; 14 if(a[i]>=0){ 15 sump=sump+a[i]; 16 } 17 } 18 printf("the Sum is %d \n",sum); 19 printf("the Sum of positive elements is %d \n ",sump); 20 return 0; 21 } Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 18 / 27

Μονοδιάστατοι Πίνακες - Εκχώρηση - Επεξεργασία III Give the element A[0]= 45 Give the element A[1]= -29 Give the element A[2]= 34 Give the element A[3]= 23 Give the element A[4]= -9 The Sum is 64 The Sum of positive elements is 102 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 19 / 27

Contents 1 Δομές δεδομένων - Πίνακες 2 Αριθμητικοί Πίνακες Μονοδιάστατοι Πίνακες 3 Ασκήσεις 4 Λύσεις Ασκήσεων Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 20 / 27

Μονοδιάστατοι Πίνακες - Άσκηση 1 Άσκηση Να γράψετε ένα πρόγραμμα το οποίο να δημιουργεί και να εμφανίζει τρεις μονοδιάστατους πίνακες με 5 στοιχεία. Τον πίνακα A του οποίου τα στοιχεία δίνονται από τον τύπο A[i] = 1 i + 1 Τον πίνακα B του οποίου τα στοιχεία θα είναι με αντίστροφη σειρά από τον A Τον πίνακα C του οποίου τα στοιχεία θα είναι το άθροισμα των στοιχείων των A και B Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 21 / 27

Μονοδιάστατοι Πίνακες - Άσκηση 2 Άσκηση Να γράψετε ένα πρόγραμμα το οποίο να δημιουργεί και να εμφανίζει τους μονοδιάστατους πίνακες A και B με A = [1, 3, 5,, 17, 19] B = [20, 18, 16,, 4, 2] και να δημιουργεί και να εμφανίζει τον πίνακα C C = [A, B] Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 22 / 27

Contents 1 Δομές δεδομένων - Πίνακες 2 Αριθμητικοί Πίνακες Μονοδιάστατοι Πίνακες 3 Ασκήσεις 4 Λύσεις Ασκήσεων Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 23 / 27

Προτεινόμενη λύση της Άσκησης 1 I 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 int main(){ 5 int i; 6 float A[N],B[N],C[N]; 7 for (i=0;i<n;i=i+1){ 8 A[i]=1/(float)(i+1); 9 } 10 for (i=0;i<n;i=i+1){ 11 B[i]=A[(N-1)-i]; 12 C[i]=A[i]+B[i]; 13 } 14 for (i=0;i<n;i=i+1){ 15 printf("\t%f",a[i]); Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 24 / 27

Προτεινόμενη λύση της Άσκησης 1 II 16 } 17 printf("\n\n"); 18 for (i=0;i<n;i=i+1){ 19 printf("\t%f",b[i]); 20 } 21 printf("\n\n"); 22 for (i=0;i<n;i=i+1){ 23 printf("\t%f",c[i]); 24 } 25 return 0; 26 } Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 25 / 27

Προτεινόμενη λύση της Άσκησης 2 I 1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(){ 4 int i,a[10],b[10],c[20]; 5 for (i=0;i<10;i=i+1){ 6 A[i]=2*i+1; 7 printf("\t%d\n",a[i]); 8 } 9 printf("\n\n"); 10 for (i=0;i<10;i=i+1){ 11 B[i]=20-2*i; 12 printf("\t%d\n",b[i]); 13 } 14 printf("\n\n"); 15 for (i=0;i<20;i=i+1){ Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 26 / 27

Προτεινόμενη λύση της Άσκησης 2 II 16 if (i<10){ 17 C[i]=A[i]; 18 } 19 else{ 20 C[i]=B[i-10]; 21 } 22 printf("\t%d\n",c[i]); 23 } 24 printf("\n\n"); 25 return 0; 26 } Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2017 27 / 27