ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ

Σχετικά έγγραφα
ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ

ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ

11. Διεπαφές. Λέξεις κλειδιά διασύνδεση/διεπαφή, αρχείο κεφαλίδας, αρχείο βιβλιοθήκης, ifndef, απόκρυψη πληροφοριών.

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

7. Δυναμική διαχείριση μνήμης

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

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

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

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

Τμήμα Πληροφορικής & Επικοινωνιών

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

ΠΣ-ΕΡ+ΤΑΠΕ, όπου: ΠΧ είναι η πάγια χρέωση, ύψους Є. ΠΣ είναι το ποσό στρογγυλοποίησης (ΠΣ) του προηγούμενου λογαριασμού.

Προγραμματισμός II. stdio.h> #include <conio.h< conio.h> #include <stdlib.h< stdlib.h> static int j=0; j=j*n; ("j=%d\t",j); return ((*py.

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

Τμήμα Πληροφορικής & Επικοινωνιών

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

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

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

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

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

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

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

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

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

stdio.h> #include <string.h< string.h> void main() { char *px*

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

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

Διάλεξη 11η: Δείκτες, μέρος 1

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

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

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

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

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

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

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

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

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

Ασκήσεις - Μελέτες περίπτωσης για το μάθημα Προγραμματισμός II

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

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

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

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 12 ο Μάθημα 1

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

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

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

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

Διάλεξη 6: Δείκτες και Πίνακες

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

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

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

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

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

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

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

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

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

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

Οι συναρτήσεις στη γλώσσα C

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

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

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

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

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

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

Προγραμματισμός II. Τυχαίοι αριθμοί Διεπαφές

είκτες και Πίνακες (2)

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

12. Συναρτήσεις (Μέρος ΙI)

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

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

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

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

Transcript:

Τμήμα Πληροφορικής & Επικοινωνιών Εξεταζόμενο μάθημα: Προγραμματισμός ΙI Ονοματεπώνυμο σπουδαστή/άστριας:... Εξάμηνο σπουδών:... Α.Ε.Μ.:... 15/2/2006 ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ Οι εξεταζόμενοι επιτρέπεται να χρησιμοποιήσουν παντός είδους έντυπα βοηθήματα. Tα θέματα επισυνάπτονται στο γραπτό με συμπληρωμένο το πλαίσιο της κορυφής. Θέμα 1 ο (20%) Για το πρόγραμμα που ακολουθεί να περιγραφεί αναλυτικά η λειτουργία του, να δοθούν τα αποτελέσματα και να απεικονισθεί το περιεχόμενο των θέσεων μνήμης που καταλαμβάνουν οι μεταβλητές σε κάθε γραμμή κώδικα. #include <stdio.h> #include <conio.h> void display(int *pnum); void change(int *pnum); void main() int t[10],i; for (i=0;i<3;i++) t[i]=3*i; printf("addr(t[%d])=%d\n",i,&t[i]); // Τέλος της for printf("\naddr(t)=%d\n\n",&t); display(t); change(t); display(t); // Τέλος της main void display(int *pnum) int i; printf("\naddr(pnum)=%d pnum=%d\n\n",&pnum,pnum); for (i=0;i<3;i++) 1/7

printf("addr(pnum[%d])=%d\t\t",i,&pnum[i]); printf( "%d\n",pnum[i] ); // Τέλος της for // Τέλος της συνάρτησης void change(int *pnum) int i; printf("\naddr(pnum)=%d pnum=%d\n\n",&pnum,pnum); for (i=0;i<3;i++) pnum[i]=pnum[i]*pnum[i]; display(pnum); // Τέλος της συνάρτησης Θέμα 2 ο (65%) Να γραφεί πρόγραμμα στη γλώσσα C, το οποίο θα επιτελεί τα ακόλουθα: (1) Θα δέχεται από το πληκτρολόγιο τη διάσταση n ενός τετραγωνικού πίνακα διαστάσεων nxn, ο οποίος θα περιέχει πραγματικούς αριθμούς. Θα δεσμεύεται δυναμικά η απαραίτητη μνήμη, με χρήση του διπλού δείκτη float **parr. Θα γίνεται έλεγχος ώστε η διάσταση που θα δώσει ο χρήστης να είναι μεγαλύτερη ή ίση του 3. (2) Θα λαμβάνει από το πληκτρολόγιο τις τιμές των στοιχείων του πίνακα parr. (3) Θα υπολογίζει σε κάθε γραμμή το στοιχείο με τη μέγιστη απόλυτη τιμή. Για το σκοπό αυτό θα αναπτυχθεί η συνάρτηση int getmax(float **parray, int size, int i), η οποία θα δέχεται ως ορίσματα το δείκτη parr, τη διάσταση n του τετραγωνικού πίνακα και τη γραμμή του πίνακα στην οποία θα γίνει η αναζήτηση του μέγιστου στοιχείου. Η ακέραια επιστρεφόμενη τιμή θα είναι η στήλη στην οποία βρέθηκε το στοιχείο με τη μέγιστη απόλυτη τιμή. (4) Για κάθε γραμμή τού parr θα απεικονίζει στην οθόνη την απόλυτη τιμή του μέγιστου στοιχείου και τη στήλη στην οποία βρίσκεται το στοιχείο αυτό. (5) Θα υπολογίζει το άθροισμα των στοιχείων της κύριας διαγωνίου (ίχνος του πίνακα). 2/7

(6) Θα υπολογίζει τον πίνακα που θα προκύψει εάν αντιμετατεθούν η δεύτερη με την τρίτη στήλη του parr και, στη συνέχεια, η πρώτη με την τρίτη γραμμή. Για το σκοπό αυτό θα αναπτυχθούν δύο συναρτήσεις: (6.1) Η συνάρτηση void permute_columns(float **parray, int size, int column1, int column2), η οποία θα δέχεται ως ορίσματα το δείκτη parr, τη διάσταση n του τετραγωνικού πίνακα και τους αριθμούς των προς αντιμετάθεση στηλών (1 και 2 στην προκειμένη περίπτωση, σύμφωνα με την αρίθμηση πινάκων στη γλώσσα C). Η συνάρτηση θα αντιμεταθέτει τη στήλη column1 και τη στήλη column2 του parray. (6.2) Η συνάρτηση void permute_lines(float **parray, int size, int line1, int line2), η οποία θα δέχεται ως ορίσματα το δείκτη parr, τη διάσταση n του τετραγωνικού πίνακα και τους αριθμούς των προς αντιμετάθεση γραμμών (0 και 2 στην προκειμένη περίπτωση, σύμφωνα με την αρίθμηση πινάκων στη γλώσσα C). Η συνάρτηση θα αντιμεταθέτει τη γραμμή line1 και τη γραμμή line2 του parray. (7) Θα εμφανίζει στην οθόνη τον πίνακα που προέκυψε μετά τις αντιμεταθέσεις. Θέμα 3 ο (15%) Να περιγραφεί η λειτουργία του ακόλουθου προγράμματος και να δοθούν τα αποτελέσματα. #include <string.h> #include <stdio.h> main(void) FILE *pf; char string[]="department of Informatics and Communications"; char msg[81]; pf=fopen("file1.dat","w"); fwrite(string,strlen(string),1,pf); fclose(pf); pf=fopen("file1.dat","r"); fgets(msg,26,pf); printf("%s", msg); fclose(pf); // 2006_2_1 3/7

// 2006_2_2 #include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> #include <assert.h> int getmax(float **parray, int size, int i); void permute_columns(float **parray, int size, int column1, int column2); void permute_lines(float **parray, int size, int line1, int line2); void main() FILE *pf; int i,j,col,size; float **parr,*buffer,trace=0.0; do printf("give the size of the array (>=3): "); scanf("%d",&size); while (size<3); parr=(float **)malloc(size*sizeof(float *)); assert(parr!=null); parr[i]=(float *)malloc(size*sizeof(float)); assert(parr[i]!=null); 4/7

for (j=0;j<size;j++) printf("\na[%d][%d]: ",i+1,j+1); scanf("%f",&parr[i][j]); trace=trace+parr[i][i]; col=getmax(parr,size,i); printf("\nline %d: column %d, size=%f",i+1,col+1,fabs(parr[i][col])); printf("\n\ntrace(a)=%f\n",trace); printf("\n\nactual array:"); printf("\n"); for (j=0;j<size;j++) printf("\t%10.4f",parr[i][j]); permute_columns(parr,size,1,2); permute_lines(parr,size,0,2); printf("\n\nfinal array:"); printf("\n"); for (j=0;j<size;j++) printf("\t%10.4f",parr[i][j]); for (i=(size-1);i>=0;i--) free(parr[i]); free(parr); printf("\n"); system("pause"); int getmax(float **parray, int size, int i) int j,col; float maxim; maxim=fabs(parray[i][0]); col=0; for (j=1;j<size;j++) if (fabs(parray[i][j])>maxim) maxim=fabs(parray[i][j]); col=j; 5/7

return(col); void permute_columns(float **parray, int size, int column1, int column2) int j; float temp; for (j=0;j<size;j++) temp=parray[j][column1]; parray[j][column1]=parray[j][column2]; parray[j][column2]=temp; void permute_lines(float **parray, int size, int line1, int line2) int j; float temp; for (j=0;j<size;j++) temp=parray[line1][j]; parray[line1][j]=parray[line2][j]; parray[line2][j]=temp; 6/7

// 2006_2_3 7/7