Εργαστηριακή άσκηση 1.

Σχετικά έγγραφα
Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

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

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

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

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

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

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

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

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

7. Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

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

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

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

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? )

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

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

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

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

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης

EΒ ΟΜΑ Α 4 Η. οµές επανάληψης while και do while

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

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

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

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

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

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

Ενότητα 3: «Εισαγωγή στην Αλγοριθμική και στον Προγραμματισμό: loops, subroutines, tables»

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

Πανεπιστήμιο Πελοποννήσου. Σχολή Θετικών Επιστημών & Τεχνολογίας. Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών. Προγραμματισμός Ι Εργαστήριο

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

1. ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ C

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

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

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

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

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 5 ο Μέρος 5 ο Μέρος Εντολές Επανάληψης: FOR - WHILE. Περιγραφή

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ

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

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

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

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

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

Πρόβληµα : Πώς θα λύναµε αυτό το πρόβληµα αν είχαµε µόνο χαρτί και µολύβι, και κάποιος µας έλεγε τους αριθµούς προφορικά?

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

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

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

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

Ασκήσεις & παραδείγματα για επανάληψη

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

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

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

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

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

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

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ. p: i: 3 p: i: 5

Transcript:

Εργαστηριακή άσκηση 1. Η πρώτη εργαστηριακή άσκηση θέλει να σας εξοικειώσει με το περιβάλλον εργασίας στο εργαστήριο, καθώς και με τη διαδικασία συγγραφής και εκτέλεσης προγραμμάτων στη γλώσσα C. Για το σκοπό αυτό θα γράψετε, μετά θα μεταγλωττίσετε και τελικά θα εκτελέσετε τα ακόλουθα προγράμματα: (1) #include <stdio.h> int main() { printf("this is the dreaded Hello World program!\n" ); } (2) #include <stdio.h> int main() { printf( "This \n" ); printf( "is \n" ); printf( "the \n" ); printf( "boring \n" ); printf( "Hello World!\n" ); } (3) #include <stdio.h> int main() { int integer1, integer2, sum, product; /* variable declaration */ Θοδωρής Ανδρόνικος Σελ. 1

printf( "Enter first integer\n" ); scanf( "%d", &integer1 ); /* read first integer */ printf( "Enter second integer\n" ); scanf( "%d", &integer2 ); /* read second integer */ sum = integer1 + integer2; /* compute sum */ product = integer1 * integer2; /* compute product */ printf( "Sum = %d\n", sum ); /* print sum */ printf( "Product = %d\n", product ); /* print product */ } (4) #include <stdio.h> int main() { int x, y, z; printf ("Give two integers to compute their quotient\n"); do scanf("%d %d", &x, &y); while(y==0); z = x/y; printf ("Dividing %d by %d yields %d\n", x, y, x/y); } Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 1 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 2. Πρόσθεση κλασμάτων Το παρακάτω πρόγραμμα προσθέτει δύο ακεραίους που εισάγει ο χρήστης με το πληκτρολόγιο και εμφανίζει το άθροισμά τους στην οθόνη. #include <stdio.h> int main() { int integer1, integer2, sum, product; /* variable declaration */ printf( "Enter first integer\n" ); scanf( "%d", &integer1 ); /* read first integer */ printf( "Enter second integer\n" ); scanf( "%d", &integer2 ); /* read second integer */ sum = integer1 + integer2; /* compute sum */ printf( "Sum = %d\n", sum ); /* print sum */ } Χρησιμοποιώντας το παραπάνω πρόγραμμα ως υπόδειγμα, γράψτε ένα πρόγραμμα που θα κάνει πρόσθεση κλασμάτων. Το πρόγραμμα αυτό θα πρέπει να προτρέπει τον χρήστη να εισαγάγει τον αριθμητή και τον παρονομαστή κάθε κλάσματος. Μετά την εισαγωγή των δεδομένων να υπολογίζεται το άθροισμα των δύο κλασμάτων και να εμφανίζεται στην οθόνη ως κλάσμα (χωρίς απλοποίηση!). Το πρόγραμμά σας πρέπει να λειτουργεί με διαλογικό τρόπο και να καθοδηγεί το χρήστη με κατάλληλα μηνύματα στην οθόνη, όπως φαίνεται παρακάτω. Exercise 2 will now begin. Skopos ths askhshs einai h prosthesh 2 klasmatvn. *************************************************** Θοδωρής Ανδρόνικος Σελ. 1

Dvse ton arithmhth tou protou klasmatos: 12 Dvse ton paronomasth tou protou klasmatos: 6 Dvse ton arithmhth tou deuterou klasmatos: -5 Dvse ton paronomasth tou deuterou klasmatos: 10 *************************************************** To athroisma tous einai: 90 / 60 *************************************************** Exercise 2 will now terminate. Press any key to exit. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 2 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 3. Πράξεις μεταξύ κλασμάτων Κάντε τις κατάλληλες τροποποιήσεις και επεκτάσεις στο πρόγραμμα της προηγούμενης εβδομάδας ώστε να γράψετε ένα πρόγραμμα το οποίο θα κάνει όλες τις αριθμητικές πράξεις μεταξύ κλασμάτων (πρόσθεση, αφαίρεση, πολλαπλασιασμό, διαίρεση). Το πρόγραμμα αυτό θα πρέπει να προτρέπει τον χρήστη να εισαγάγει τούς αριθμητές και τούς παρονομαστές των κλασμάτων, οι οποίοι πρέπει να είναι ένα ψηφίο χωρίς πρόσημο. Μετά την εισαγωγή των ψηφίων θα πρέπει να ζητείται η επιλογή της πράξης. Σε αυτό το σημείο ο χρήστης εισάγει ένα χαρακτήρα. Όλη η πράξη πρέπει να εμφανίζεται στην οθόνη, σε τρεις γραμμές. Το αποτέλεσμα της πράξης να εμφανίζεται σε κλασματική και σε δεκαδική μορφή, με ακρίβεια 5 ψηφίων μετά την υποδιαστολή, όπως φαίνεται παρακάτω. Απλοποίηση κλασμάτων δεν απαιτείται. Exercise 3 will now begin. Skopos ths askhshs einai oi 4 praxeis metaxy 2 klasmatvn. *************************************************** Dvse ton arithmhth tou protou klasmatos: 6 Dvse ton paronomasth tou protou klasmatos: 2 Dvse ton arithmhth tou deuterou klasmatos: 3 Dvse ton paronomasth tou deuterou klasmatos: 1 Dvse thn praxh pou theleis na ginei: + *************************************************** Θοδωρής Ανδρόνικος Σελ. 1

6 3 - + - = 12/2 = 6.00000 2 1 *************************************************** Exercise 3 will now terminate. Press any key to exit. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 3 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 4. Υπολογισμός αθροίσματος, μεγίστου, ελαχίστου & μέσου όρου χεδιάστε ένα πρόγραμμα που θα διαβάζει πραγματικούς αριθμούς τύπου double από το πληκτρολόγιο και θα υπολογίζει: 1) Σον μέγιστο από αυτούς, 2) Σον ελάχιστο από αυτούς, 3) Σο άθροισμά τους, και 4) Σον μέσο όρο τους. Αρχικά το πρόγραμμα θα ζητά από το χρήστη να καθορίσει πόσους πραγματικούς αριθμούς θα εισάγει. Επομένως, αφού θα είναι γνωστό πόσους αριθμούς θα διαβάσει, ενδείκνυται η χρήση της επαναληπτικής δομής for. Σα ζητούμενα αποτελέσματα πρέπει να εμφανιστούν σε δεκαδική μορφή, με ακρίβεια 8 ψηφίων μετά την υποδιαστολή, όπως φαίνεται παρακάτω. Φροντίστε ώστε όταν εκτελείται το πρόγραμμά σας, στην οθόνη να εμφανίζονται τα μηνύματα που βλέπετε. ΠΡΟΟΧΗ: Δεν επιτρέπεται η χρησιμοποίηση πινάκων. Exercise 4 will now begin. Skopos ths askhshs einai o ypologismos athroismatos. ************************************************************ Kathorise posous arithmous tha dvseis apo to plhktrologio: 4 Θοδωρής Ανδρόνικος Σελ. 1

Tha diavaso 4 pragmatikous arithmous apo to plhktrologio. ************************************************************ Dvse ton arithmo 1 : 1.256 Dvse ton arithmo 2 : -2.56 Dvse ton arithmo 3 : 3.12344 Dvse ton arithmo 4 : 4.98765 ************************************************************ O megistos apo tous arithmous htan o: 4.98765000 O elaxistos apo tous arithmous htan o: -2.56000000 To athroisma tous htan: 6.80709000 O mesos oros htan: 1.70177250 Exercise 4 will now terminate. Press any key to exit. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 4 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 5. Χρήση της επαναληπτικής δομής while Σκοπός της άσκησης αυτής είναι: 1) Η κατανόηση της define, 2) Η χρήση της επαναληπτικής δομής while, 3) Η κατανόηση της ακρίβειας των πραγματικών αριθμών τύπου float, double και long double. Αρχικά το πρόγραμμα θα ζητά από το χρήστη να καθορίσει πόσους πραγματικούς αριθμούς θα εισάγει οι οποίοι θα είναι το πολύ Max_Counter. Στη συνέχεια (κατά τα γνωστά) θα υπολογίζει: 1) Τον μέγιστο από αυτούς, 2) Τον ελάχιστο από αυτούς, 3) Το άθροισμά τους, και 4) Τον μέσο όρο τους. Ένα μέρος του κώδικα που πρέπει να γράψετε φαίνεται παρακάτω. #include <stdio.h> #define Max_Counter 20 #define A 5 #define B A*A+2 int main() { int counter, length, number, max, min, total, average; float average_1; double average_2, average_3; long double average_4;...(εδώ λείπει κώδικας)... average = total / length; average_1 = (float) total/length; average_2 = total / length; average_3 = (double) total/length; average_4 = (long double) total/length; printf("************************************************************\n\n\n"); Θοδωρής Ανδρόνικος Σελ. 1

} printf("o megistos einai:\t\t%d\n", max); printf("o elaxistos einai:\t\t%d\n", min); printf("to athroisma tous einai:\t%d\n", total); printf("\no akeraios mesos oros einai:\t%d\n", average); printf("\nan accurate average is:\t\t%f\t\t or \t%e\n", average_1, average_1); printf("\na less accurate average is:\t%lf\n", average_2); printf("\na more accurate average is:\t%.8lf\t\t or \t%e\n", average_3, average_3); printf("\nthe most accurate average is:\t%.12lf\t or \t%e\n", average_4, average_4); printf("\n\nexercise 5 will now terminate. Press any key to exit."); return 0; Φροντίστε ώστε όταν εκτελείται το πρόγραμμά σας, στην οθόνη να εμφανίζονται τα μηνύματα που βλέπετε. Exercise 5 will now begin. Skopos ths askhshs einai diplos: 1) H xrhsh epanalhptikhs domhs while, kai 2) h katanohsh ths akriveias tvn pragmatikvn. ************************************************************ First of all the value of B is: 27 Tora kathorise posous arithmous tha dvseis apo to plhktrologio (maximum 20): 7 Tha diavaso 7 akeraious arithmous apo to plhktrologio. ************************************************************ Enter number 1: 7777 Enter number 2: 3333 Enter number 3: 1235 Enter number 4: 9997 Enter number 5: 3773 Enter number 6: 9877 Enter number 7: 8791 ************************************************************ O megistos einai: 9997 O elaxistos einai: 1235 To athroisma tous einai: 44783 O akeraios mesos oros einai: 6397 An accurate average is: 6397.571289 or 6.397571e+003 A less accurate average is: 6397.000000 A more accurate average is: 6397.57142857 or 6.397571e+003 The most accurate average is: 6397.571428571428 or 6.397571E+003 Exercise 5 will now terminate. Press any key to exit. ΠΡΟΣΟΧΗ: Δεν επιτρέπεται η χρησιμοποίηση πινάκων. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 5 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 6. Εσωτερικό γινόμενο διανυσμάτων Σκοπός της άσκησης είναι ο υπολογισμός του εσωτερικού γινομένου δύο διανυσμάτων πραγματικών αριθμών τύπου double. Αρχικά το πρόγραμμα θα ζητά από το χρήστη να καθορίσει τη διάσταση των δύο διανυσμάτων η οποία θα είναι το πολύ MAX_DIM. Στη συνέχεια θα γεμίζει το πρώτο διάνυσμα διαβάζοντας από το πληκτρολόγιο πραγματικούς αριθμούς από το 0 μέχρι το 100. Το δεύτερο διάνυσμα θα γεμίζει από τυχαίους πραγματικούς αριθμούς (από το 0 μέχρι το 100) με χρήση της συνάρτησης rand() (θα χρειαστείτε τη βιβλιοθήκη stdlib.h). Τέλος θα υπολογίσετε και θα εμφανίσετε το εσωτερικό γινόμενο των δύο διανυσμάτων. Όταν εκτελείται το πρόγραμμά σας, στην οθόνη πρέπει να εμφανίζονται τα μηνύματα που βλέπετε. Exercise 6 will now begin. Skopos ths askhshs einai o ypologismos esoterikou ginomenou dianysmatvn. *************************************************************** Kathorise th diastash tvn 2 dianysmatvn (na einai to poly 25): 4 Tha diavaso to proto dianysma apo to pljktrologio. Tha dhmiourghv to deytero dianysma xrhsimopoivntas tyxaious arithmous. Dose 4 pragmatikous arithmous (apo to 0 to 100) xosimenous me kena. *************************************************************** 1.24 4 6.78 8.9 *************************************************************** Θοδωρής Ανδρόνικος Σελ. 1

To prvto dianysma einai: 1.240 4.000 6.780 8.900 To deytero dianysma einai: 0.125 56.359 19.330 80.874 *************************************************************** To esvteriko tous ginomeno einai: 1076.429 Exercise 6 will now terminate. Press any key to exit. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 6 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 7. Πεπερασμένο αυτόματο Θεωρείστε το αυτόματο του σχήματος το οποίο δέχεται ως είσοδο μια ακολουθία λατινικών χαρακτήρων και ελέγχει αν μέσα στην ακολουθία εμφανίζονται οι χαρακτήρες «A», «N», «T», «I» με τη σειρά αυτή, αλλά όχι απαραίτητα συνεχόμενα. Το αυτόματο έχει τις καταστάσεις 0, 1, 2, 3 και 4: η λειτουργία του ξεκινά από την αρχική κατάσταση 0 και ανάλογα με τον πρώτο χαρακτήρα της εισόδου θα ακολουθήσει είτε τη διαδρομή A (αν ο χαρακτήρας δεν είναι Α), οπότε παραμένει στην κατάσταση 0, είτε τη διαδρομή A, αν ο χαρακτήρας είναι το Α, οπότε μεταβαίνει στην κατάσταση 1. Στη συνέχεια διαβάζει το δεύτερο χαρακτήρα και το αυτόματο προχωρά ή όχι στην επομένη κατάσταση 2 κλπ. Τα βέλη υποδεικνύουν τις μεταβάσεις (από κατάσταση σε κατάσταση). Το αυτόματο τελειώνει επιτυχώς τον έλεγχο αν βρεθεί στην τελική κατάσταση 4 με το τέλος της ακολουθίας εισόδου. Αλλιώς, η ακολουθία εισόδου απορρίπτεται. Α Ν Τ Ι 0 1 2 3 4 A Α N Α T Α I Α Θοδωρής Ανδρόνικος Σελ. 1

Σχεδιάστε ένα πρόγραμμα το οποίο να υλοποιεί το αυτόματο αυτό για τον έλεγχο ακολουθιών χαρακτήρων. Ελέγξτε με το πρόγραμμά σας ακολουθίες που γίνονται αποδεκτές από το αυτόματο αλλά και που απορρίπτονται. Όταν εκτελείται το πρόγραμμά σας, στην οθόνη πρέπει να εμφανίζονται τα μηνύματα που βλέπετε. Exercise 7 will now begin. This program simulates a simple deterministic automaton. The automaton accepts those strings that contain the sequence ANTI. *************************************************************** Give the input string (at most 32 capital letters): manteio *************************************************************** You gave an input string of length 7: manteio The run (length 8) of the automaton for this input was: 00123344 The run was SUCCESSFUL! Exercise 7 will now terminate. Press any key to exit. Exercise 7 will now begin. This program simulates a simple deterministic automaton. The automaton accepts those strings that contain the sequence ANTI. *************************************************************** Give the input string (at most 32 capital letters): manteyo *************************************************************** You gave an input string of length 7: manteyo The run (length 8) of the automaton for this input was: 00123333 The run was UNSUCCESSFUL! Exercise 7 will now terminate. Press any key to exit. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 7 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 8. Ορισμός αναδρομικών συναρτήσεων Σκοπός της άσκησης αυτής είναι η κατανόηση του ορισμού αναδρομικών συναρτήσεων. Δύο από τις απλούστερες αναδρομικές ακολουθίες είναι το παραγοντικό (n!) και η ακολουθία Fibonacci που ορίζεται από το γενικό τύπο: f n f n 1 fn 2, n 2 με αρχικές τιμές f 0 f1 1. Να γράψετε ένα πρόγραμμα που να ζητά από το χρήστη ένα θετικό ακέραιο αριθμό n τύπου long και μετά να υπολογίζει και να εμφανίζει στην οθόνη το n! και τον f (το n-οστό όρο της ακολουθίας Fibonacci). n Ένα μέρος του κώδικα, όπου φαίνεται ο αναδρομικός ορισμός του παραγοντικού δίνεται παρακάτω. long fact (long k) { if (k>1) return k * fact(k-1); else return 1; } Φροντίστε ώστε όταν εκτελείται το πρόγραμμά σας, στην οθόνη να εμφανίζονται τα μηνύματα που βλέπετε. Exercise 8 will now begin. This program defines two of the simplest recursive functions: the factorial & the Fibonacci functions. ************************************************************* Give a natural number: 12 Θοδωρής Ανδρόνικος Σελ. 1

Factorial(12) = 479001600 Fibonacci(12) = 233 ************************************************************* Exercise 8 will now terminate. Press any key to exit. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 8 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 9. Πέρασμα πινάκων σε συναρτήσεις Σκοπός της άσκησης αυτής είναι η εξοικείωση με το πέρασμα πινάκων ως παραμέτρους σε συναρτήσεις. Αρχικά δημιουργείστε και αρχικοποιείστε ένα διάνυσμα (μονοδιάστατο πίνακα) και ένα πίνακα 2 διαστάσεων ακεραίων από το 0 μέχρι το 20. Χρησιμοποιώντας τις συναρτήσεις Print_Vector και Print_Array, που δέχονται ως παραμέτρους διάνυσμα και δισδιάστατο πίνακα αντίστοιχα, εκτυπώστε το διάνυσμα και τον πίνακα που δημιουργήσατε. Στη συνέχεια, χρησιμοποιώντας τις συναρτήσεις Modify_Vector και Modify_Array, που δέχονται ως παραμέτρους διάνυσμα και δισδιάστατο πίνακα αντίστοιχα, μεταβάλλετε τις τιμές του διανύσματος και του πίνακα με τον ακόλουθο τρόπο: η νέα τιμή κάθε στοιχείου θα είναι 20 μείον η αρχική τιμή του (newvalue = 20 - oldvalue). Ελέγξτε ότι όλα δουλεύουν σωστά εκτυπώνοντας τις νέες τιμές πάλι μέσω των Print_Vector και Print_Array. Φροντίστε ώστε όταν εκτελείται το πρόγραμμά σας, στην οθόνη να εμφανίζονται τα μηνύματα που βλέπετε. Exercise 9 will now begin. Skopos ths askhshs einai na deixei pos pername pinakes vs parametrous. ************************************************************* The Initial values Of PINAKAS are: ----------------------------------------------------- 0 1 2 3 4 The Modified values Of PINAKAS now are: ----------------------------------------------------- 20 19 18 17 16 Θοδωρής Ανδρόνικος Σελ. 1

The initial values Of ARRAY are: ----------------------------------------------------- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 The modified values Of ARRAY now are: ----------------------------------------------------- 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 ************************************************************* Exercise 9 will now terminate. Press any key to exit. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 9 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 10. Εισαγωγή στην έννοια των δεικτών (pointers) Σκοπός της άσκησης αυτής είναι να σας εξοικειώσει με τους δείκτες της C. Για το σκοπό αυτό πρέπει να γράψετε το παρακάτω πρόγραμμα, να το εκτελέσετε και να βεβαιωθείτε ότι κατανοείτε πλήρως τη λειτουργία του. /*************************** * 29/10/04 12:10 * * Version 1.0 * * Θεόδωρος Ανδρόνικος * ****************************/ #include <stdio.h> #include <conio.h> // getch() #define SIZE 4 int main() { int counter, Pinakas[]={4, 8, 12, 16}, *Ptr, *Ptr2, difference; Ptr = &Pinakas[0]; Ptr2 = Pinakas; printf("exercise 10 will now begin.\n"); printf("skopos ths askhshs einai h katanohsh ths ennoias tou pointer.\n"); printf("\n\n\n************************************************************\n"); printf("\n O pointer Pinakas deixnei sth dieythynsh: \t %p", Pinakas); printf("\n O pointer Ptr deixnei sth dieythynsh: \t\t %p", Ptr); printf("\n O pointer Ptr deixnei sth dieythynsh: \t\t %p", Ptr2); printf("\n\n Enas akeraios xreiazetai %3d bytes mnhmhs\n", sizeof(int)); Ptr++; printf("\n Meta thn ektelesh ths Ptr++ o pointer Ptr deixnei sth dieythynsh: \t %p", Ptr); Ptr2 += 2; printf("\n Meta thn ektelesh ths Ptr2+=2 o pointer Ptr2 deixnei sth dieythynsh: \t %p", Ptr2); Ptr2--; printf("\n Meta thn ektelesh ths Ptr2-- o pointer Ptr2 deixnei sth dieythynsh: \t %p", Ptr2); Ptr2 += 2; printf("\n Meta thn ektelesh ths Ptr2+=2o pointer Ptr2 deixnei sth dieythynsh: \t %p", Ptr2); difference=ptr2-ptr; printf("\n\n\n H diafora Ptr2-Ptr einai: \t\t %d\t\twhy?\n\n", difference); for (counter=0; counter<size; counter++) printf("\npinakas[%d] = %3d", counter, Pinakas[counter]); Θοδωρής Ανδρόνικος Σελ. 1

Ptr2=Pinakas; for (counter=0; counter<size; counter++) printf("\n*(ptr2+%d) = %3d", counter, *(Ptr2+counter)); for (counter=0; counter<size; counter++) printf("\n*(pinakas+%d) = %3d", counter, *(Pinakas+counter)); for (counter=0; counter<size; counter++) printf("\nptr2[%d] = %3d", counter, Ptr2[counter]); printf("\n\n***************************************************************\n"); } printf("\n\nexercise 10 will now terminate. Press any key to exit."); return 0; Ο υπεύθυνος του εργαστηρίου θα εξετάσει το βαθμό κατανόησης του προγράμματος και γενικότερα των δεικτών. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 10 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2

Εργαστηριακή άσκηση 11. Δημιουργία λίστας ακεραίων κοπός της άσκησης αυτής είναι να δημιουργήσετε μια απλά συνδεδεμένη λίστα, κάθε κόμβος της οποίας να περιέχει έναν ακέραιο και ένα δείκτη στον επόμενο κόμβο. Σο πρόγραμμα θα ζητά από το χρήστη να του δίνει ακέραιους αριθμούς και για κάθε ακέραιο θα δημιουργεί ένα νέο κόμβο στη λίστα. Ο πρώτος ακέραιος θα είναι στην κεφαλή της λίστας και ο τελευταίος στην ουρά της. Ο χρήστης θα σταματά τη διαδικασία δίνοντας το 0, οπότε και θα τυπώνεται ολόκληρη η λίστα. Φροντίστε ώστε όταν εκτελείται το πρόγραμμά σας, στην οθόνη να εμφανίζονται τα μηνύματα που βλέπετε. Exercise 11 will now begin. Skopos ths askhshs einai h dhmiourgia mias listas akeraivn. *************************************************************** Dvse enan akeraio gia na dhmiourghsv enan komvo - 0 gia telos. 1 Dvse enan akeraio gia na dhmiourghsv enan komvo - 0 gia telos. 2 Dvse enan akeraio gia na dhmiourghsv enan komvo - 0 gia telos. 3 Dvse enan akeraio gia na dhmiourghsv enan komvo - 0 gia telos. 4 Dvse enan akeraio gia na dhmiourghsv enan komvo - 0 gia telos. 5 Dvse enan akeraio gia na dhmiourghsv enan komvo - 0 gia telos. 0 The list is: 1 --> 2 --> 3 --> 4 --> 5 --> NULL *************************************************************** Θοδωρής Ανδρόνικος Σελ. 1

Exercise 11 will now terminate. Press any key to exit. ΠΡΟΟΧΗ: Δεν επιτρέπεται η χρησιμοποίηση πινάκων. Να επιδειχθεί στον υπεύθυνο του εργαστηρίου την 11 η εβδομάδα. Θοδωρής Ανδρόνικος Σελ. 2