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

Σχετικά έγγραφα
Υπολογισμός - Εντολές Επανάληψης

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

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

Λυμένα παραδείγματα με τις for, while, do-while

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

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

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

Αρχές Προγραμματισμού

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

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

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

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

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

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

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

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

Χαρακτηριστικά αναδροµής

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

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

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

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

Σημειώσεις δεύτερης εβδομάδας

Συναρτήσεις και Πίνακες

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

Κεφάλαιο : Επαναλήψεις (for, do-while)

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

10. Εντολές επανάληψηςκαι οι εντολές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.

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

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

Μεταγλωττιστές Βελτιστοποίηση

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

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

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

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

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

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

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

1 Ο ΣΕΤ ΑΣΚΗΣΕΩΝ (Ενδεικτικές Λύσεις)

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

Παράδειγμα Να γράψετε πρόγραμμα που θα υπολογίζει με τη βοήθεια συναρτήσεων τον n-οστό όρο της αναδρομικής ακολουθίας x n =(n-4)!x n-1 +(n-3)!

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

Σημειώσεις όγδοης εβδομάδας

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο. Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή

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

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

Αρχές Προγραμματισμού

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

Αναδρομικοί Αλγόριθμοι

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

ΑΠΑΝΤΉΣΕΙΣ ΣΤΟ ΠΡΩΤΟ ΣΥΝΟΛΟ ΑΣΚΗΣΕΩΝ

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

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

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

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

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

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

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

Εργαστήριο 2: Πίνακες

ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ-ΓΛΩΣΣΑ C ΑΤΕΙ (ΝΑ ΕΚΤΕΛΕΣΤΟΥΝ ΤΑ ΠΑΡΑΚΑΤΩ ΜΕ ΧΡΗΣΗ ΤΟΥ LCC COMPILER)

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

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

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

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

Υπολογισμός - Εντολές Ελέγχου

Διάλεξη 9η: Πίνακες (arrays)

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

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

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

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

Αναφορές, είκτες και Αλφαριθμητικά

Δομές Δεδομένων & Αλγόριθμοι

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

Transcript:

Πανεπιστήμιο Πελοποννήσου Σχολή Θετικών Επιστημών & Τεχνολογίας Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών Προγραμματισμός Ι Εργαστήριο 03-12-2012 1 η Εργαστηριακή Άσκηση Να δημιουργήσετε πρόγραμμα που θα τυπώνει το ημερολόγιο ενός μηνός. Ο χρήστης θα ορίζει των αριθμό των ημερών του μήνα και την ημέρα της εβδομάδας όπου αρχίζει ο μήνας. Enter number of days in month: 31 Enter starting day of the week (1 = Sun, 7 = Sat): 3 Ενδεικτική λύση: int main(void) int i, n, start_day; printf("enter number of days in month: "); scanf("%d", &n); printf("enter starting day of the week (1=Sun, 7=Sat): "); scanf("%d", &start_day); /* print "blank dates" */ for (i = 1; i < start_day; i++) printf(" "); /* print the calendar */ for (i = 1; i <= n; i++) printf("%3d", i); if ((start_day + i - 1) % 7 == 0) [1]

2 η Εργαστηριακή Άσκηση_a Το παρακάτω πρόγραμμα διαβάζει έναν ακέραιο και εμφανίζει το άθροισμα του τετραγώνου και του κύβου του αριθμού, με τη χρήση των συναρτήσεων square και cube. Συμπληρώστε τα κενά. int square(int a); int cube(int a); int i, j, k; printf("enter number: "); scanf("%d", &i); j = square(i); k = cube(i); printf("sum = %d\n", j+k); int square(int a) return a*a; int cube(int a) return a*a*a; 2 η Εργαστηριακή Άσκηση_b Το παρακάτω πρόγραμμα διαβάζει δυο θετικούς ακέραιους αριθμούς και υπολογίζει το ΜΚΔ (σύμφωνα με τον αλγόριθμο του Ευκλείδη), με τη χρήση της συνάρτησης gcd. Συμπληρώστε τα κενά. int gcd(int a, int b); int num1, num2; do printf("enter the first number: "); scanf("%d", &num1); printf("enter the second number (equal or less than the first one): "); scanf("%d", &num2); while((num2 > num1) (num1 <= 0) (num2 <= 0)); [2]

printf("gcd of %d and %d is %d\n", num1, num2, gcd(num1,num2)); int gcd(int a, int b) int r; while(1) /* αόριστες επαναλήψεις */ r = a%b; if(r == 0) return b; else /* Σύμφωνα με τον αλγόριθμο, διαιρούμε τον b με τον r, οπότε αλλάζουμε τις τιμές των a και b αντίστοιχα. */ a = b; b = r; 3 η Εργαστηριακή Άσκηση Να δημιουργήσετε πρόγραμμα που θα τυπώνει τα στοιχεία ενός δισδιάστατου πίνακα array ακεραίων 4x4. Δώστε αρχικές τιμές κατευθείαν από τον ορισμό και στη συνέχεια υπολογίστε και τυπώστε το άθροισμα κάθε γραμμής σε νέο πίνακα line και το άθροισμα κάθε στήλης σε νέο πίνακα row, με τη χρήση συναρτήσεων. Ενδεικτική λύση χωρίς συναρτήσεις: #define SIZE 4 /* μέγιστο πλήθος στοιχείων για πίνακα */ int main(void) /* αρχικοποίηση πίνακα */ int a[size][size] = 6, 7, 9, 1, 4, 2, 3, 7, 2, 9, 9, 6, 1, 2, 3, 4 ; int line[4] = 0 ; /* ισοδύναμο με 0,0,0,0 */ int row[4] = 0 ; /* εκτύπωση πίνακα */ printf("array\n"); printf("%d", a[i][j]); /* πίνακας line */ printf("sum of each line\n"); line[i] += a[i][j]; [3]

printf("%d\n", line[i]); /* πίνακας row */ printf("sum of each row\n"); row[j] += a[i][j]; printf("%d ", row[j]); Ενδεικτική λύση με συναρτήσεις: #define SIZE 4 /* μέγιστο πλήθος στοιχείων για πίνακα */ /* πρωτότυπα συναρτήσεων */ void printarray(int a[][size], int size); /* two dimension array to a function */ void arrayline(int line[], int size, int a[][size]); void arrayrow(int row[], int size, int a[][size]); int main(void) /* αρχικοποίηση πινάκων */ int a[size][size] = 6, 7, 9, 1, 4, 2, 3, 7, 2, 9, 9, 6, 1, 2, 3, 4 ; int line[size] = 0 ; /* μηδενισμός πίνακα line */ int row[size] = 0 ; /* μηδενισμός πίνακα row */ /* call of functions */ printarray(a, SIZE); arrayline(line, SIZE, a); arrayrow(row, SIZE, a); /* end main */ /* printarray function */ void printarray(int a[][size], int size) printf("array\n"); printf("%d", a[i][j]); /* end of function printarray */ /* arrayline function */ void arrayline(int line[], int size, int a[][size]) [4]

printf("sum of each line\n"); line[i] += a[i][j]; printf("%d\n", line[i]); /* end of function arrayline */ /* arrayrow function */ void arrayrow(int row[], int size, int a[][size]) printf("sum of each row\n"); row[j] += a[i][j]; printf("%d ", row[j]); /* end of function arrayrow */ 4 η Εργαστηριακή Άσκηση Να δημιουργήσετε πρόγραμμα για τον υπολογισμό του παραγοντικού ενός δοσμένου φυσικού αριθμού n. Να χρησιμοποιηθεί συνάρτηση και με αναδρομή. Ενδεικτικές λύσεις: /* factorial using for loop */ int i, num, fact = 1; printf("enter a number to calculate it's factorial: "); scanf("%d", &num); for (i = 1; i <= num; i++) fact *= i; printf("n!= %d\n", fact); /* factorial using function */ long factorial(int); // τύπου long για μεγάλους αριθμούς int number; long fact = 1; printf("enter a number to calculate it's factorial: "); [5]

scanf("%d", &number); printf("%d! = %ld\n", number, factorial(number)); long factorial(int n) int i; long result = 1; for (i = 1; i <= n; i++) result *= i; return result; /* factorial using recursion */ #include<stdio.h> long factorial(int); int num; long f; printf("enter a number to find factorial: "); scanf("%d", &num); if (num < 0) printf("negative numbers are not allowed.\n"); else f = factorial(num); printf("%d! = %ld\n", num, f); long factorial(int n) if (n == 0) return 1; else return(n * factorial(n-1)); [6]