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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ορισμός μεταβλητών δεικτών και αρχικοποίηση

Προγραμματισμός HY: Γλώσσα Προγραμματισμού C

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

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

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

ΠΙ Ν Α Κ Ε Σ (arrays)

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

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

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

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

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

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

Προγραμματισμός Δομές Δεδομένων

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

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

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

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

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

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

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

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

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

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

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

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

Σημειώσεις για πρόοδο στο εργαστήριο

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

Εισαγωγή στον Προγραμματισμό (με. τη C)

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

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

Προγραμματιστικές τεχνικές

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

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

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

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

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

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

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΕΑΡΙΝΟΥ ΕΞΑΜΗΝΟΥ Ερωτήσεις

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

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

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

Παραδείγματα με συναρτήσεις στη C

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

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

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

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

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

Προγραμματισμός II (Γλώσσα C)

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

Τύποι Δεδομένων Είσοδος/Έξοδος

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

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

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

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

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ερωτήσεις Επανάληψης

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

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

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

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

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

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

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

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

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

ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ

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

γνωστό) ΘΕΩΡΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ι ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ Ασκήσεις C 1. Να γραφεί πρόγραµµα που να εµφανίζει τους 5 πρώτους µεγαλύτερους

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

Transcript:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΡΓΑΣΤΗΡΙΟ 9 ΑΣΚΗΣΕΙΣ (με ενδεικτική λύση) 1) Γράψτε ένα πρόγραμμα (χρησιμοποιώντας μία συνάρτηση με όνομα metafora()) το οποίο αφού εισάγει 3 ακέραιες τιμές έστω α, β, γ, στην συνέχεια με την χρήση της συνάρτησης metafora να μεταφέρει την τιμή του β στο α, του γ στο β και του α στο γ. void metafora(int *, int *, int *); int a, b, c; printf("\nεισαγωγή a, b, c:"); scanf("%d%d%d", &a, &b, &c); metafora(&a, &b, &c); printf("\nοι τιμές άλλαξαν σειρά. Τώρα είναι:"); printf("\n%10d%10d%10d\n\n", a, b, c); void metafora(int *x, int *y, int *z) int temp; temp = *x; *x = *y; *y = *z; *z = temp; 2) Να γραφεί πρόγραμμα το οποίο να δημιουργεί δυναμικά ένα πίνακα 2 διαστάσεων (το πλήθος γραμμών Ν και στηλών Μ να εισάγεται από τον χρήστη) και στην συνέχεια να εισάγει τα στοιχεία του και να τον εκτυπώνει. Ηλίας Κ. Σάββας 1

int N,M; /* Διάσταση του πίνακα */ float **X, meg; int i, j, megethos; printf("\n Εισαγωγή αριθμού γραμμών και στηλών:"); scanf("%d%d", &N, &M); megethos = N * sizeof(int); /* Δημιουργία Ν δεικτών */ X = malloc(megethos); /* Οι δείκτες είναι int */ for (i=0; i<n; i++) /* Δημιουργία πίνακα 2 διαστάσεων */ megethos = M * sizeof(float); X[i] = malloc(megethos); if (! X) /* Εισαγωγή πίνακα */ for (i=0; i<n; i++) for (j=0; j<m; j++) printf("\nεισαγωγή του %d - %d στοιχείου:", i+1, j+1); scanf("%f", &X[i][j]); for (i=0; i<n; i++) printf("\n"); printf("%10.2f", X[i][j]); for (j=0; j<m; j++) free(x); 3) Να γραφεί πρόγραμμα το οποίο: α) να δημιουργεί δυναμικά ένα μονοδιάστατο πίνακα ακεραίων, β) να εισάγει στον πίνακα τυχαίες τιμές στο διάστημα 1 100, γ) να εισάγει από το πληκτρολόγιο ένα αριθμό, και τέλος δ) με χρήση Ηλίας Κ. Σάββας 2

συνάρτησης να μετράει και εκτυπώνει πόσες φορές βρέθηκε αυτό το στοιχείο στον πίνακα. int search_array(int *, int, int, int); int *A, N, megethos; int i, x, t; printf("\nεισαγωγή μεγέθους πίνακα:"); scanf("%d", &N); /* Ορισμός πίνακα */ megethos = N * sizeof(int); A = malloc(megethos); if (A == NULL ) /* Εισαγωγή τυχαίων τιμών στον πίνακα στο διάτημα 1 -- > 100 */ srand(time(null)); for (i=0; i<n; i++) A[i] = rand()%100+1; printf("\nεισαγωγή τιμής προς αναζήτηση:"); scanf("%d", &x); t = search_array(a, 0, N, x); if ( t == 0) printf("\n\nto %d δεν βρέθηκε!\n\n", x); else printf("\n\nto %d βρέθηκε %d φορές!\n\n", x, t); free(a); int search_array(int *X, int a, int t, int s) int i, c=0; Ηλίας Κ. Σάββας 3

for (i=a; i<t; i++) if ( X[i] == s) c++; return c; 4) Αφού ορίσετε την δομής <Σημείο> σαν δύο πραγματικούς αριθμούς στην συνέχεια να γραφεί πρόγραμμα το οποίο: α) να εισάγει ένα πολύγωνο (σαν ένα δυναμικό πίνακα σημείων, όπου το Ν (πλήθος κορυφών) να δίνεται από τον χρήστη), β) με χρήση συνάρτησης η οποία να υπολογίζει το μήκος ενός ευθύγραμμου τμήματος δεδομένων των σημείων αρχής τέλους του, να υπολογίζει την περίμετρό του (άθροισμα όλων των πλευρών του) και να την εκτυπώνει. struct Simio /* Δομή σημείου */ float x; float y; ; float mikos(struct Simio, struct Simio); struct Simio *Pol; /* Πολύγωνο σαν σύνολο σημείων */ int N, i, megethos; float per=0.0; printf("\nεισαγωγή πλήθους κορυφών πολυγώνου:"); scanf("%d", &N); /* Ορισμός πίνακα */ megethos = N * sizeof(struct Simio); Pol = malloc(megethos); if (Pol == NULL ) /* Εισαγωγή σημείων κορυφών του πολυγώνου */ for (i=0; i<n; i++) printf("\nεισαγωγή συντεταγμένων χ,ψ της %d κορυφής:", i+1); scanf("%f%f", &Pol[i].x, &Pol[i].y); /* Υπολογισμός περιμέτρου */ /* απο άθροισμα των μηκών των πλευρώ του */ Ηλίας Κ. Σάββας 4

for (i=0; i<n-1; i++) per += mikos(pol[i], Pol[i+1]); per += mikos(pol[n-1], Pol[0]); printf("\n\nπερίμετρος =%.3f\n\n", per); free(pol); /* Υπολογισμός μήκους */ float mikos(struct Simio A, struct Simio B) float mik; mik = sqrt(pow((a.x-b.x),2)+pow((a.y-b.y),2)); return mik; Ηλίας Κ. Σάββας 5