ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό Ενότητα 6: Πίνακες Κ. Κουκουλέτσος Τμήμα: Τμήμα Υπολογιστικών Συστημάτων
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Σκοποί ενότητας... 4 Περιεχόμενα ενότητας... 4 Ασκήσεις... 5 Άσκηση 1... 5 Άσκηση 2... 5 Άσκηση 3... 6 Άσκηση 4... 6 Άσκηση 5... 7
Σκοποί ενότητας Σκοπός της ενότητας είναι η πρακτική εξάσκηση του εκπαιδευόμενου με έννοιες που έχουν αναλυθεί στο αντίστοιχο τμήμα της θεωρίας, με την επίλυση ασκήσεων. Πιο αναλυτικά οι σκοποί είναι Να ορίζει και αρχικοποιεί πίνακες Να μάθει τον τρόπο πρόσβασης στα στοιχεία ενός πίνακα Να εξοικειωθεί με την χρήση πινάκων Να χρησιμοποιεί μονοδιάστατους και δισδιάστατους πίνακες για επεξεργασία δεδομένων Να είναι σε θέση να παράγει τυχαίους αριθμούς στον προγραμματισμό Περιεχόμενα ενότητας Η ενότητα του εργαστηρίου περιλαμβάνει ασκήσεις για το μάθημα: Εισαγωγή στον προγραμματισμό.
Ασκήσεις Άσκηση 1 Να γίνεται εισαγωγή των στοιχείων ενός πίνακα και κατόπιν να εμφανίζεται o πίνακας int main(int argc, char *argv[]) { int i,j; int iarr[10]; //pinakas 10 stoixeion printf("eisagogi stoixeion:\n"); for(i=0; i<10; i++) { //teleftaios deiktis 9 printf("dose to %d stoixeio =",i+1); scanf("%d",&iarr[i]); //Emfanisi ton stoixeion tou pinaka printf("ta stoixeia tou pinakai einai: \n"); for(j=0; j<10; j++) printf("%d ",iarr[j]); printf("\n"); int v[5]={101,102,103,104,105 ; for(j=0; j<5; j++) printf("%d ",v[j]); printf("\n"); system("pause"); Άσκηση 2 Να γίνεται αρχικοποίηση των στοιχείων ενός πίνακα δύο διαστάσεων και κατόπιν να εμφανίζεται #define NROW 3 #define NCOL 6 int main() { int k, j; // ta stoixeia tou pinaka int arr[nrow][ncol] ={ 10, 20, 30, 40, 50, 60, 11, 21, 31, 41, 51, 61, 12, 22, 32, 42, 52, 62; // emfanisi tou pinaka printf("o pinakas einai\n\n"); for (k = 0; k < NROW; k++) { for (j = 0; j < NCOL; j++) printf("%4d ",arr[k][j]); printf("\n");
printf("\n\n\n"); Άσκηση 3 Να εισάγονται σε πίνακα 5 αριθμοί. Μετά την εμφάνιση του πίνακα να εμφανίζεται το μεγαλύτερο στοιχείο του πίνακα και η θέση του. #define LIM 5 int main() { int table[lim]; int i, maxpos, minpos; int max, min; printf("eisagogi %d arithmon \n\n\n", LIM); for (i = 0; i < LIM; i++) { printf("dose ton %d arithmo : ", i+1); scanf("%d",&table[i]); printf("\n\nta stoixeia tou pinaka einai\n"); for (i = 0; i < LIM; i++) printf("%d ", table[i]); maxpos = 0; max = table[0]; for (i = 0; i < LIM; i++) if (table[i] > max) { max = table[i]; maxpos = i; printf("\n\n\megistos %d,", max); printf("stin thesi =%d \n\n",maxpos+1) ; Άσκηση 4 Να αρχικοποιούνται δύο πίνακες με βαθμούς που αντιπροσωπεύουν βαθμούς θεωρία και εργαστηρίου για 15 σπουδαστές. Να εμφανίζεται ένας κατάλογος με την βαθμολογία και χαρακτηρισμούς για την επιτυχία ή αποτυχία κάθε σπουδαστή. Σε περίπτωση που και οι δύο βαθμοί είναι >=5 τότε να εμφανίζεται και ο μέσος όρος int main(int argc, char *argv[]) { float theo[15]={6,3,8,2,7,4,9,5,7,4,10,3,7,8,9; float erga[15]={3,2,7,8,9,6,5,5,5,8,7,10,5,7,3; float math[15]; int i; printf(" a/a Theoria Ergastirio Sxolio"); printf(" vathmos \n\n"); for ( i=0;i<15;i++)
{ printf("%2d %6.2f %6.2f ",i+1, theo[i], erga[i]); if (theo[i]<5 && erga[i]<5) printf(" Apotixia & sta dio ------\n"); else if (theo[i]<5 ) printf(" Apotixia stin theoria ------\n"); else if (erga[i]<5) printf(" Apotixia sto ergastirio ------\n"); else { math[i]=(theo[i]+erga[i])/2; printf(" Bravo %18.2f \n",math[i]); printf("\n\n"); Άσκηση 5 Να γίνει προσομοίωση ρίψεις δύο ζαριών 6 φορές int main (){ int zari1,zari2, i; //emfanisi RAND MAX printf("rand_max = %d \n", RAND_MAX); printf("\n\n"); printf("emfanisi 2 zarion 6 fores\n"); srand ( time(null) ); // initialize random seed for (i=0;i<6;i++){ zari1 = rand() % 6 + 1; //tixaios apo 1 eos 6 zari2 = rand() % 6 + 1; printf("%d %d ",zari1,zari2); printf("\n");