Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 25 Ιουνίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας

Σχετικά έγγραφα
Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 5 Φεβρουαρίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας

ΤΕΙ Θεσσαλίας, Τμήμα Μηχανικών Πληροφορικής ΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΡΓΑΣΤΗΡΙΟ 9. ΑΣΚΗΣΕΙΣ (με ενδεικτική λύση)

A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; }

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

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

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

Αʹ. Πίνακες. Άσκηση 1. Λύση. Άσκηση 2. Λύση. Ασκήσεις Εργαστηρίου Προγραμματισμού

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

Ουρές (Queues) FIFO A B C. Διαγραφή. Εισαγωγή. εµπρός. πίσω. πίσω. πίσω

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου Θέµα 1. (α') 2 - ii 3 - iii 4 - iv

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

Εργαστήριο 9: Αρχεία

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)

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

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

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

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

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

ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ 8/9/2008

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

Εργαστήριο 3 Εντολή for while, do while

ΣΥΜΒΟΛΟΣΕΙΡΕΣ (Strings) Ο ΑΤΔ Συµβολοσειρά Μία συµβολοσειρά είναι µία ακολουθία χαρακτήρων. Bασικές πράξεις : 1. Δηµιουργία. 2. Μήκος. 3.

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

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

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

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΠΙ Ν Α Κ Ε Σ (arrays)

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

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

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

ΠΕΡΙΣΣΟΤΕΡΑ ΠΑΡΑΔΕΙΓΜΑΤΑ ΜΕ ΧΡΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. ΠΑΡ 1 ΔΙΑΒΑΣΜΑ-ΕΚΤΥΠΩΣΗ ΕΥΡΕΣΗ ΜΕΣΟΥ ΟΡΟΥ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ ΜΕ ΧΡΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ #include <stdio.

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

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

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

Α. 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)

Επισκόπηση Μαθήματος. Γραμμικές Δομές Δεδομένων. ΑΤΔ Ουρά Εναλλακτικοί Σχεδιασμοί Προγραμματισμός με Ενότητες Interface.h Implementation.

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

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

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

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

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

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

Αλγόριθμοι Ταξινόμησης Μέρος 1

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

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

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

Εισαγωγή στις Συναρτήσεις

ΛΙΣΤΕΣ. Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα. Εφαρμογές και Χρήση Λιστών

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

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

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

Εχουμε ήδη συναντήσει μονοδιάστατους πίνακες, οι οποίοι ορίζονται ως εξής:

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

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

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

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόμενη Λύση

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

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

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

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

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Διάλεξη 5η: Εντολές Επανάληψης

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

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Generics και ArrayLists

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

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

Εργαστηριακή Άσκηση 1

Ενδεικτική περιγραφή μαθήματος

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός

Transcript:

TEI Λάρισας / ΣΤΕΦ Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 25 Ιουνίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας Α 1) Να δημιουργήσετε ένα header file με όνομα pinakesα.h το οποίο με χρήση δύο συναρτήσεων να υπολογίζει την θέση του μεγαλύτερου και μικρότερου στοιχείου αντίστοιχα μονοδιάστατων πινάκων. Τέλος, να γράψετε ένα πολύ απλό πρόγραμμα που να δείχνει την χρήση αυτού του header file (3 μονάδες). int megisto(int *, int); int elaxisto(int *, int); int megisto(int *A, int N) int thesi=0, i; for (i=0; i<n; i++) if (A[i] > A[thesi]) thesi=i; return thesi; int elaxisto(int *A, int N) int thesi=0, i; for (i=0; i<n; i++) if (A[i] < A[thesi]) thesi=i; 1

return thesi; #include <stdio.h> #include "pinakesa.h" int X[5] = 4, 1, -4, 6, 2; int tm, te, i; tm = megisto(x, 5); te = elaxisto(x, 5); printf("\nmegisto = %d", X[tm]); printf("\nelaxisto = %d", X[te]); 2) Σε ένα binary file με όνομα <meteob.dat> είναι αποθηκευμένες οι μέγιστη και ελάχιστη θερμοκρασία καθώς και η μέγιστη και ελάχιστη υγρασία κάποιου τόπου για κάποιο έτος. Να γράψετε ένα πρόγραμμα που να μεταφέρει σε ένα πίνακα το αρχείο και στην συνέχεια να το επιστρέφει σε ένα αρχείο κειμένου με όνομα <meteot.dat> στο οποίο σε κάθε γραμμή του να εμφανίζονται τα δεδομένα του binary με επιπλέον τις μέσες τιμές της θερμοκρασίας και υγρασίας (4 μονάδες). #include <stdio.h> #include <stdlib.h> 2

struct Meteo float mt; float et; float my; float ey; ; FILE *b, *t; struct Meteo *m; float mesit, mesiy; int meg, plithos, i; b = fopen("meteob.dat", "rb"); if (!b) printf("\nden vrethike to arxeio..."); return -1; fseek(b,0,seek_end); meg = ftell(b); plithos = meg / sizeof(struct Meteo); m = malloc(meg); if (!m) printf("\npoly megalo arxeio..."); return -2; /* Metafora se pinaka */ for (i=0; i<plithos; i++) fread(&m[i], sizeof(struct Meteo), 1, b); fclose(b); /* Metafora se text file */ 3

t = fopen("meteot.dat", "w"); for (i=0; i<plithos; i++) mesit = (m[i].mt+m[i].et)/2; mesiy = (m[i].my+m[i].ey)/2; fprintf(t, "\n%.2f %.2f %.2f %.2f %.2f %.2f ", m[i].mt, m[i].et, mesit, m[i].my, m[i].ey, mesiy); fclose(t); 3) Έστω ότι θέλουμε να υποκαταστήσουμε το παιχνίδι <πέτρα=0, ψαλίδι=1, χαρτί=2). Να γράψετε ένα πρόγραμμα το οποίο να παίζει κάποιος παίκτης (ο χρήστης) εναντίον του υπολογιστή αυτό το παιχνίδι. Ο χρήστης να δίνει την επιλογή του και στην συνέχεια το πρόγραμμα να παράγει τυχαία την δική του επιλογή. Στην συνέχεια το πρόγραμμα να ελέγχει για τον νικητή (η πέτρα νικάει το ψαλίδι, το ψαλίδι το χαρτί και το χαρτί την πέτρα). Τέλος, το πρόγραμμα να επαναλαμβάνει αυτή τη διαδικασία μέχρι κάποιος από τους δύο παίκτες φτάσει πρώτος τις Ν νίκες (έστω Ν=10) (3 μονάδες). #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 10 int p=0, s=1, x=2; int h=0, m=0; int paixtis, ypologistis; 4

int i; srand(time(null)); while (h<n && m<n) printf("\ndwse ektimisi (petra=0, psalidi=1, xarti=2):"); scanf("%d", &paixtis); ypologistis = rand()%3; printf("\nypologistis = %d", ypologistis); if (paixtis == 0) if (ypologistis == 1) h++; else if (ypologistis == 2) m++; if (paixtis == 1) if (ypologistis == 2) h++; else if (ypologistis == 0) m++; if (paixtis == 2) if (ypologistis == 0) h++; else if (ypologistis == 1) m++; printf("\n\napotelesma, Esy:%d, Ypologistis:%d", h, m); if (h==n) 5

printf("\n\n\nnikises..."); else printf("\n\n\nnikisa!!!"); TEI Λάρισας / ΣΤΕΦ Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 25 Ιουνίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας B 1) Να δημιουργήσετε ένα header file με όνομα pinakesβ.h το οποίο με χρήση συνάρτησης να αναζητά εάν υπάρχει κάποιο στοιχείο σε μονοδιάστατο πίνακα και να επιστρέφει την θέση του εάν το βρίσκει, αλλιώς -1. Τέλος, να γράψετε ένα πολύ απλό πρόγραμμα που να δείχνει την χρήση αυτού του header file (3 μονάδες). int anazitisi(int *, int, int); int anazitisi(int *A, int N, int x) int thesi = -1, i=0; while (i < N && thesi == -1) if (A[i] == x) thesi = i; i++; 6

return thesi; #include <stdio.h> #include "pinakesb.h" int X[5] = 4, 1, -4, 6, 2, t; int a = 2; t = anazitisi(x, 5, a); if (t == -1) printf("\n\nto %d den vrethike", a); else printf("\n\nto %d vrethike stin thesi %d", a, t); 2) Έστω ότι υπάρχει ένα αρχείο κειμένου με όνομα <trigonat.dat> το οποίο σε κάθε γραμμή του περιέχει τα μήκη των 3 πλευρών τριγώνων. Το μέγεθος του αρχείου (επομένως και το πλήθος των τριγώνων) είναι γνωστό, έστω Ν=100. Να γράψετε ένα πρόγραμμα το οποίο: α) να μεταφέρει το αρχείο σε ένα πίνακα δομών, όπου στα 3 πρώτα μέλη να μεταφέρονται τα μήκη των πλευρών και στο τέταρτο πεδίο να υπολογίζεται η περίμετρός τους (το άθροισμα αυτών των πλευρών), και β) να επιστρέφει ολόκληρο τον πίνακα σε ένα binary file με όνομα <trigonab.dat> (4 μονάδες). 7

#include <stdio.h> #include <stdlib.h> #define N 100 struct Trigono_Per float a; float b; float c; float per; ; FILE *b, *t; struct Trigona_Per tr[n]; float pa, pb, pc; int i; t = fopen("trigonat.dat", "r"); if (!t) printf("\nden vrethike to arxeio..."); return -1; for (i=0, i<n; i++) fscanf(t,"%f%f%f", &pa, &pb, &pc); tr[i].a=pa; tr[i].b=pb; tr[i].c=pc; tr[i].per=pa+pb+pc; fclose(t); b = fopen("trigonab.dat", "wb"); for (i=0; i<n; i++) 8

fwrite(&tr[i], sizeof(struct(trigono_per), 1, b); fclose(b); 3) Να γράψετε ένα πρόγραμμα το οποίο να «γεμίζει» ένα πίνακα Νx2 (έστω Ν=1000) με Ν τυχαίες ζαριές. Στην συνέχεια, να υπολογίζει και εκτυπώνει πόσες φορές εμφανίστηκε κάποια συγκεκριμένη ζαριά (να θεωρείτε ότι δεν έχει σημασία η σειρά της ζαριάς, πχ η ζαριά 5-3 είναι ίδια με την 3-5) (3 μονάδες). #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 1000 int X[N][2]; int i, a, b; int c = 0; srand(time(null)); for (i=0; i<n; i++) X[i][0] = rand()%6+1; X[i][1] = rand()%6+1; printf("\neisagogi zarias:"); 9

scanf("%d%d", &a, &b); for (i=0; i<n; i++) if ((X[i][0]==a && X[i][1]==b) (X[i][0]==b && X[i][1]==a)) c++; printf("\nsynolo emfanisewn = %d", c); 10