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

Σχετικά έγγραφα
Η γλώσσα προγραμματισμού C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υπολογισμός - Εντολές Επανάληψης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

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

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

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

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

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

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

H ΓΛΩΣΣΑ C. Μάθηµα 7: Πίνακες. ηµήτρης Ψούνης

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

Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

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

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

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

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

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

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

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

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

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

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

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

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

ΗΥ-150. Πίνακες (Arrays)

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

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

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

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

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

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

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

ΗΥ-150. Προγραµµατισµός. Πίνακες (Arrays)

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

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

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

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

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

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

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

Δείκτες & Πίνακες Δείκτες, Πίνακες

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

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

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

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

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

Transcript:

Η γλώσσα προγραμματισμού C Οι πίνακες στη C (μονοδιάστατοι πίνακες)

Γενικά για τους πίνακες Ο πίνακας είναι μια αρκετά διαδεδομένη δομή που προσφέρεται από σχεδόν κάθε γλώσσα προγραμματισμού. Πρόκειται για μια διατεταγμένη ακολουθία δεδομένων ίδιου τύπου στα οποία αναφερόμαστε με ένα όνομα (δηλαδή με μια μεταβλητή, μπορούμε να δηλώσουμε πολλές μεταβλητές). Η ιδέα αυτού της μαζικής αναφοράς στοιχείων, προέρχεται από τα μαθηματικά (διανύσματα, πίνακες). Υλοποιούνται με τη διαδοχική δέσμευση κελιών της κύριας μνήμης κατά τη διάρκεια της εκτέλεσης του προγράμματος. Μας δίνουν την δυνατότητα αποτελεσματικής οργάνωσης πολλών ομοίου τύπου δεδομένων. Η επεξεργασία τους γίνεται μαζικά με χρήση των εντολών επανάληψης. 2

Χαρακτηριστικά στοιχεία πινάκων Βασικά χαρακτηριστικά πινάκων: Ονομασία Διάσταση (1, 2, πολλών διαστάσεων) Τύπος δεδομένων που φιλοξενούνται (int, float, char, ) Αριθμός των στοιχείων σε κάθε διάσταση του. Ένα στοιχείο του πίνακα διακρίνεται από τα υπόλοιπα με τις συντεταγμένες του (εντοπισμός θέσης). Η διάσταση προσδιορίζει και τον αριθμό των ακεραίων δεικτών θέσης που χρειάζονται για γίνει διακριτό κάποιο στοιχείο του πίνακα (δηλαδή, οι συντεταγμένες του στοιχείου): για πίνακες 1 διάστασης απαιτείται 1 δείκτης θέσης: A i για πίνακες 2 διαστάσεων απαιτούνται 2 δείκτες θέσης: A i,j κ.ο.κ 3

Μονοδιάστατοι πίνακες Ένας πίνακας μιας διάστασης είναι ουσιαστικά ένα διάνυσμα. Ένας πίνακας μιας διάστασης με όνομα Α που φιλοξενεί 10 πραγματικούς αριθμούς (βαθμούς φοιτητών) έχει τη δομή: Α = 5.4 3.2 4.5 6.7 6.5 8.2 9.3 4.3 7.3 5.6 Βαθμός 1 ου φοιτητή Βαθμός 2 ου φοιτητή Βαθμός 10 ου φοιτητή Αναφορά σε κάποιο στοιχείο του πίνακα (διάκριση) γίνεται με τη βοήθεια του δείκτη θέσης του στοιχείου: Α 1 : 1 ο στοιχείο (5.4), Α 5 : 5 ο στοιχείο (6.5) Μαζική αναφορά: Α j : το j o στοιχείο, όπου j=1,..,10 (με εντολές επανάληψης) 4

Δήλωση μονοδιάστατων πινάκων στη C Η δήλωση γίνεται ως εξής: Τύπος_δεδομένων Όνομα_πίνακα [Πλήθος_στοιχείων] Παραδείγματα: float vathmoi[10]; //για φιλοξενία 10 πραγματικών int foitites[20]; // για φιλοξενία 20 ακεραίων Συχνά για το πλήθος των στοιχείων του πίνακα χρησιμοποιείται η οδηγία #define: #define N 10 float vathmoi [N]; Το μέγιστο πλήθος στοιχείων εξαρτάται από τον compiler. Βρίσκουμε το μέγεθος του πίνακα με τον τελεστή sizeof(): sizeof(vathmoi)/sizeof(float) // πλήθος στοιχείων Ν 5

Αναφορά σε στοιχεία ενός μονοδιάστατου πίνακα Με το όνομα του πίνακα και τον δείκτη θέσης του στοιχείου μέσα σε αγκύλες [ ]: vathmoi [j] Το πρώτο στοιχείο: vathmoi [0] Το δεύτερο στοιχείο: vathmoi [1] Το τελευταίο στοιχείο: vathmoi [9] Ο δείκτης θέσης εκτός από ακέραιος μπορεί να είναι μια μεταβλητή ή μια έκφραση: j=2; i=4; float vathmoi[10]; vathmoi[0] 5.4 vathmoi[1] 3.2 vathmoi[2] 4.5 vathmoi[3] 6.7 vathmoi[4] 6.5 vathmoi[5] 8.2 vathmoi[6] 9.3 vathmoi[7] 4.3 vathmoi[8] 7.3 vathmoi[9] 5.6 vathmoi [2+4] // το 7 ο στοιχείο Το όνομα του πίνακα χωρίς τις αγκύλες δείχνει στο 1 ο στοιχείο του πίνακα (δείκτης μνήμης). 6

Απόδοση τιμών (μονοδιάστατοι πίνακες) Κατά την διάρκεια της εκτέλεσης του προγράμματος: pinakas [j] =8; Με την δήλωση του πίνακα (απόδοση αρχικών τιμών): int A[5] = {5,8,2,6,3; (A[0]=5; A[1]=8; A[2]=2; A[3]=6; A[4]=3;) Αν δεν υπάρχουν όλες οι τιμές: int A[5] = {5,8,2; (A[0]=5; A[1]=8; A[2]=2; A[3]=0; A[4]=0;) Αποδοση αρχικών μηδενικών τιμών: int A[5] = {0; Είναι δυνατόν να μη δηλωθεί το πλήθος των στοιχείων όταν αποδίδονται αρχικές τιμές: int A[] = {5,8,2,6,3; 7

Αρχικές τιμές σε στοιχεία ενός μονοδιάστατου πίνακα #include <stdio.h> main() { int i, N; float pin[] = {2.3, 3.1, 4.0, 5.7, 6.4, 7.5, 8.2; //υπολογίζω πόσα στοιχεία έχει ο πίνακας N= sizeof(pin)/sizeof(float); // εμφάνιση των στοιχείων του πίνακα στη οθόνη printf("\nyour array is:\n"); for (i=0;i<n; i++) printf("%4.2f\n", pin[i]); getchar();getchar(); Τι αλλαγές πρέπει να γίνουν αν πρόκειται για πίνακα ακεραίων; 8

Διάβασμα ενός μονοδιάστατου πίνακα (πληκτρολόγιο) #include <stdio.h> #define N 5 // Ν ο αριθμός των στοιχείων του πίνακα pin main() { int i, pin[n]; for (i=0;i<n; i++) { //ανάγνωση πίνακα printf("give me the no. %d element:",i+1); scanf("%d",&pin[i]); printf("\nyou have just read:\n"); for (i=0;i<n; i++) // εμφάνιση στη οθόνη printf("%d\n", pin[i]); getchar();getchar(); 9

Αποδίδοντας τυχαίες τιμές στα στοιχεία ενός πίνακα #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 10 // ο αριθμός των στοιχείων #define SIZE 50 main() { int i, pin[n]; srand(time(null)); //αρχικοποίηση της rand() for(i=0;i<n;i++) pin[i] = 1+rand()%SIZE; //τυχαίοι 1-50 for(i=0;i<n;i++) printf("%d ", pin[i]); printf("\n"); system("pause"); Δημιουργούμε τυχαίους αριθμούς με την συνάρτηση rand() η οποία επιστρέφει έναν ακέραιο από 0 έως μια σταθερά που βρίσκεται στο αρχείο κεφαλίδας stdlib.h (RAND_MAX που συνήθως είναι 32767). Πριν τη χρήση της rand() πρέπει να κληθεί στο πρόγραμμα σας η συνάρτηση srand() η οποία αρχικοποιεί την γεννήτρια χαρακτήρων rand(). Για να είναι η ακολουθία των τυχαίων αριθμών διαφορετική, κάθε φορά που την καλούμε την srand(), της δίνουμε σαν παράμετρο (όρισμα) τον χρόνο του συστήματος time(null). αρχείο κεφαλίδας: time.h 10

Αν δεν γνωρίζουμε πόσα στοιχεία έχει ο πίνακας #include <stdio.h> #define N 100 //δίνουμε μια πολύ μεγάλη τιμή στο N main() { int i, n, pin[n]; //δηλώνω ένα μεγάλο πίνακα (Ν στοιχείων) printf("# of elements pin:"); scanf("%d", &n); //πλήθος των στοιχείων του πίνακα θα χρησιμοποιηθούν for (i=0;i<n; i++) { //ανάγνωση των n στοιχείων του pin printf( pin -->give me the no. %d element:",i+1); scanf("%d", &pin[i]); printf("\nyou have just read :\n"); for(i=0;i<n;i++) printf("%d ", pin[i]); getchar();getchar(); Στη C99 μπορούμε να δημιουργήσουμε πίνακες δίνοντας τον αριθμό των στοιχείων τους: printf("# of elements pin:"); scanf("%d", &n); int pin[n]; // δημιουργία πίνακα! Όμως το πλήθος των στοιχείων δεν μπορεί να αλλάξει όταν εκτελείται το πρόγραμμα. 11

Αντίστροφη εμφάνιση των στοιχείων του πίνακα #include <stdio.h> #define N 5 main() { int i, pin[n]; for (i=0;i<n; i++) { //ανάγνωση του πίνακα printf("give me the no. %d element:",i+1); scanf("%d",&pin[i]); printf("\nyou have just read in reverse:\n"); for (i=n-1;i>=0; i--) // εμφάνιση (αντίστροφα) στη οθόνη printf("%d\n", pin[i]); pin N i 12

Εύρεση μέσου όρου στοιχείων μονοδιάστατου πίνακα int i, pin[n], sum; float MO; //O μέσος όρος είναι πάντα float for (i=0;i<n; i++) { //ανάγνωση πίνακα printf("give me the no. %d element:",i+1); scanf("%d",&pin[i]); sum=0; //υπολογισμός αθροίσματος for (i=0;i<n; i++) sum=sum+pin[i]; MO=(float) sum /N; // υπολογισμός Μέσου Όρου printf("sum=%d\n", sum); printf("mo=%f\n", MO); Βέβαια πρέπει: #define N 10 13

Πόσα στοιχεία του πίνακα είναι μικρότερα του 100 int i, pin[n], M; //Μ: μετρητής των στοιχείων που // χαρακτηρίζονται από μια ιδιότητα (<100) //ανάγνωση του πίνακα for (i=0;i<n; i++) { printf("give me the no. %d element:",i+1); scanf("%d", &pin[i]); Πρέπει: #define N 10 M=0; //αρχική τιμή στο μετρητή Μ for (i=0;i<n; i++) if (pin[i] < 100) M++; if (M==0) printf(" Δεν βρήκα κανένα στοιχείο μικρότερο του 100\n"); else printf("βρήκα %d στοιχεία μικρότερα του 100\n", M ); 14

Πόσα στοιχεία του πίνακα είναι μεγαλύτερα του ΜΟ int i, pin[n], sum, M=0; float MO; for (i=0;i<n; i++) { //ανάγνωση πίνακα Μην ξεχνάμε το: #define N 10 printf("give me the no. %d element:", i+1); scanf("%d",&pin[i]); sum=0; //υπολογισμός αθροίσματος for (i=0;i<n; i++) sum=sum+pin[i]; MO=(float) sum /N; // υπολογισμός Μέσου Όρου for (i=0;i<n; i++) if (pin[i] > MO) M++; printf("βρήκα %d στοιχεία μεγαλύτερα του MO=%f\n", M, MO ); 15

Ποια είναι η θέση του μικρότερου στοιχείου int i, pin[n],min, imin; for (i=0;i<n; i++) { printf("give me the no. %d element:", i+1); scanf("%d",&pin[i]); MIN=pin[0]; imin=0; //η θέση του μικρότερου στοιχείου for (i=1;i<n; i++) if (MIN>pin[i]) { MIN=pin[i]; Εναλλακτικά: if (pin[imin]>pin[i] imin=i; imin=i; //αλλάζει η θέση του μικρότερου στοιχείου printf ("MIN=%d at position %d\n", MIN, imin+1); Και βέβαια το: #define N 10 printf ( MIN=%d at position %d, pin[imin], imin); 16

Αντιγράφοντας ένα πίνακα σ έναν άλλο (νέο) int i, pina[n], pinb[n] ; for (i=0;i<n; i++) //ανάγνωση πίνακα Λείπει το: #define N 10 { printf("give me the no. %d element:",i+1); scanf("%d", &pina[i]); for (i=0;i<n; i++) // αντιγράφω τα στοιχεία του pinα στον pinb pinb[i] = pina[i]; printf("\n Printing the new:\n"); for (i=0;i<n; i++) // εμφάνιση στη οθόνη του pinb printf("%d\n", pinb[i]); 17

Ενώνοντας 2 πίνακες (ένας στο τέλος του άλλου) int pina[n1], pinb[n2]; printf(«# of elements -PinA:"); scanf("%d", &n1); for (i=0;i<n1; i++) { //Ανάγνωση του pina printf("pina -->give me the no. %d element:",i+1); scanf("%d", &pina[i]); printf("# elements -pinb:"); scanf("%d", &n2); for (i=0;i<n2; i++){ // Ανάγνωση του pinb printf("pinb -->give me the no. %d element:",i+1); scanf("%d", &pinb[i]); for (i=0;i<n2; i++) //O pinb στο τέλος του pina pina[n1+i]= pinb[i]; printf("\n\n Printing the new pina:\n"); for (i=0;i<n1+n2; i++) //Εμφάνιση του νέου pina printf("%d\n", pina[i]); Πρέπει: #define N1 100 #define N2 50 Το Ν1 πρέπει να είναι διπλάσιο του Ν2, διότι ο 1 ος πίνακας θα πάρει και τα στοιχεία του 2 ου πίνακα. 18

Αντιστρέφοντας ένα μονοδιάστατο πίνακα int i, j, A[N], ; for (i=0;i<n; i++) { //ανάγνωση πίνακα printf("give me the no. %d element:",i+1); scanf("%d", &A[i]); j = N-1; // j δείχνει στο τελευταίο στοιχείο i = 0; // i δείχνει στο 1 ο στοιχείο while(i < j) { temp = A[i]; //κρατώ το A[i] A[i] = A[j]; // αλλάζω τη τιμή A[j] = temp; // δίνω τη τιμή που έχω κρατήσει στο A[j] i++; // αυξάνω το i j--; // μειώνω το j printf("\n Printing the new:\n"); for (i=0;i<n; i++) // εμφάνιση στη οθόνη printf("%d\n", A[i]); Πρέπει: #define N 10 Άλλος τρόπος: for (i=0; i<n/2; i++) { temp=α[i]; Α[i]= Α[N-i-1]; Α[N-i-1]=temp; 19

Παρεμβάλλοντας ένα νέο στοιχείο σε πίνακα int i, A[N], n, L, newa; // Ν: το μέγεθος του πίνακα μεγάλος αριθμός printf("enter no of elements :"); scanf("%d",&n); //n: πόσα στοιχεία θέλουμε να χρησιμοποιήσουμε for (i=0;i<n; i++) { //ανάγνωση των n στοιχείων printf("give me the no. %d element:", i+1); scanf("%d", &A[i]); // διαβάζει το νέο στοιχείο (new) και τη θέση (L) που θέλουμε να μπει στο πίνακα printf("\nenter the new element to be inserted :"); scanf("%d",&newa); printf("\nenter the location:"); scanf("%d",&l); for (i = n ;i >= L ; i--) // δημιουργώ χώρο για το νέο στοιχείο A[i] = A[i-1]; n++; // αυξάνω το n A[L-1] = newa; //παρεμβάλω το στοιχείο printf("\n Printing the new:\n"); for (i=0;i<n; i++) // εμφάνιση στη οθόνη του νέου πίνακα printf("%d\n", A[i]); 20

Διαγράφοντας ένα στοιχείο του πίνακα int i, A[N], n, L; // Ν: το μέγεθος του πίνακα μεγάλος αριθμός printf("enter no of elements :"); scanf("%d",&n); //n: πόσα στοιχεία θέλουμε να έχει αρχικά ο πίνακας n<n for (i=0;i<n; i++) { //ανάγνωση των n στοιχείων του πίνακα printf("give me the no. %d element:",i+1); scanf("%d", &A[i]); // διαβάζει τη θέση του στοιχείου που θέλουμε να διαγράψουμε printf("\nenter the location of the element to be deleted:"); scanf("%d",&l); while(l < n) { // διαγράφω το στοιχείο A[L-1]=A[L]; L++; n--; printf("\n Printing the new:\n"); for (i=0;i<n; i++) // εμφάνιση στη οθόνη του νέου πίνακα printf("%d\n", A[i]); 21

Ενώνοντας 2 μονοδιάστατους πίνακες σ ένα τρίτο int i, pina[n1], pinb[n2], pinnew[n1+n2]; for (i=0;i<n1; i++) { //ανάγνωση πίνακα pina printf("pina -->give me the no. %d element:",i+1); scanf("%d", &pina[i]); for (i=0;i<n2; i++){ //ανάγνωση πίνακα pinb printf("pinb -->give me the no. %d element:",i+1); scanf("%d", &pinb[i]); for (i=0;i<n1; i++) //O pinα στον pinnew pinnew[i]= pina[i]; for (i=0;i<n2; i++) //O pinb στον pinnew pinnew[n1+i]= pinb[i]; printf("\n Printing the pinnew:\n"); for (i=0;i<n1+n2; i++) //Εμφανίζω τον pinnew printf("%d\n", pinnew[i]); Πρέπει: #define N1 5 #define N2 5 Άλλος τρόπος δημιουργίας του pinnew: for (i=0;i<n1+n2; i++) if (i<n1) pinnew[i]= pina[i]; else pinnew[i]=pinb[i-n1]; 22