Ολυμπιάδα Πληροφορικής Μάθημα 4
Στόχοι μαθήματος Εισαγωγή στους πίνακες Δήλωση πινάκων Αρχικοποίηση, Προσπέλαση πίνακα Παράλληλοι πίνακες
Εισαγωγή Ένας πίνακας είναι μια απλή δομή δεδομένων στην οποία τα δεδομένα έχουν το ίδιο όνομα και τον ίδιο τύπο π.χ. αντί int a,b,c; int pinakas[3]; Μπορούμε να επεξεργαστούμε την κάθε τιμή του πίνακα ξεχωριστά ή σαν ομάδα. Μπορείτε να φαντάζεστε τον μονοδιάστατο πίνακα σαν μια στήλη με πολλές γραμμές, όπου σε κάθε γραμμή μπορούμε να εισάγουμε μια πληροφορία
Διδάσκων: Παύλος Παυλικκάς Παραδείγματα πινάκων Τα ονόματα των μαθητών ενός σχολείου Οι βαθμοί των ομάδων σε ένα πρωτάθλημα Οι θερμοκρασίες μίας εβδομάδας Το χρώμα των pixels μιας εικόνας Διδάσκων: Παύλος Παυλικκάς
Δήλωση Πινάκων Τύπος δεδομένων όνομα πίνακα[μέγεθος]; Π.χ. int a[5]; Η παραπάνω δήλωση δεσμεύει χώρο στη μνήμη ώστε να αποθηκευτούν 5 ακέραιοι Η αρχικές τιμές του πίνακα ΔΕΝ είναι το μηδέν Η πρώτη θέση του πίνακα είναι το 0
Αρχικές τιμές σε πίνακα int a[5]={5,10,30,145,1}; int b[5]={ }; a b 5 10 30 145 1 a[0] a[1] a[2] a[3] a[4]
Διδάσκων: Παύλος Παυλικκάς Παράδειγμα 1 Να δηλώσετε ένα πίνακα, με όνομα Τ που αποθηκεύει τις θερμοκρασίας για ένα χρόνο (365 μέρες). Οι θερμοκρασίες είναι πραγματικοί αριθμοί float Τ[365]; Να δηλώσετε 3 πίνακες που αποθηκεύουν τους βαθμούς των 3 τριμήνων στο μάθημα της πληροφορικής για μια τάξη 25 μαθητών. Οι βαθμοί είναι ακέραιοι αριθμοί. int trimino1[25],trimino2[25],trimino3[25]; Διδάσκων: Παύλος Παυλικκάς
Παράδειγμα 2 Να δημιουργήσετε το πρόγραμμα που δέχεται 5 ακέραιους αριθμούς και τους τυπώνει σε αντίστροφη σειρά εισαγωγής.
Παράδειγμα 2 #include<iostream> #include<stdio.h> using namespace std; int main(){ int a[5]; int i; for(i=0;i<5;i++) scanf("%d",&a[i]); for(i=4;i>=0;i--) printf("%d\n",a[i]); system("PAUSE"); return 0; }
Παράδειγμα 3 Να δημιουργήσετε το πρόγραμμα που διαβάζει από το αρχείο par3.in 20 ακέραιους αριθμούς. Τους πρώτους 10 τους αποθηκεύει στον πίνακα Α και τους επόμενους στον πίνακα Β. Στη συνέχεια υπολογίζει το άθροισμα μεταξύ των στοιχείων των πινάκων Α και Β και το αποθηκεύει στον πίνακα C (C[0]=A[0]+B[0]). Τέλος τυπώνει τον πίνακα C στο αρχείο par3.out
Παράδειγμα 3 #include<stdio.h> using namespace std; int main(){ FILE *fin,*fout; int i,A[10],B[10],C[10]; fin=fopen("par3.in","r"); fout=fopen("par3.out","w"); for(i=0;i<10;i++) fscanf(fin,"%d",&A[i]); for(i=0;i<10;i++) fscanf(fin,"%d",&B[i]); for(i=0;i<10;i++){ C[i]=A[i]+B[i]; fprintf(fout,"%d\n",C[i]); } fclose(fin); fclose(fout); return 0;