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

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

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

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

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

Εντολές ελέγχου ροής if, for, while, do-while

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

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

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

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

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

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

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

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

Παραδείγματα. Γράψτε ένα πρόγραμμα που να τυπώνει τη μέση τιμή ενός συνόλου μη αρνητικών αριθμών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

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

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

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

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

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

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

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΠΡΟΓΡΑΜΜΑΤΑ ΕΡΓΑΣΤΗΡΙΟΥ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η Γλώσσα Προγραμματισμού C (Μέρος 2 - Οι Bασικές Εντολές της C) Οι Βασικοί Τελεστές της C

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

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

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

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

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

Η βασική συνάρτηση προγράμματος main()

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

8. Συνθήκες ελέγχου, λογικοί τελεστές

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

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

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

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι:

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

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

2. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Α' μέρος: if)

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

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

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

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

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

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

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

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

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

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

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

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

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

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

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

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Transcript:

Λυμένα παραδείγματα με τις for, while, do-while Πως διαβάζω ένα θετικό αριθμό Με την while // N=0; while (N<=0) printf("δώστε θετικό ακέραιο: "); if (N<=0) printf("λάθος! Ο αριθμός δεν είναι θετικός\n"); // συνέχεια του προγράμματος. Με την do - while do printf("dose ena thetiko arithmo: "); if (N<=0) printf("lathos! o arithmos poy dvsate den einai thetikos\n"); while (N<=0); // συνέχεια του προγράμματος. Πως διαβάζω ένα αριθμό μεταξύ ορίων (πχ μεταξύ 5 και 10) Με την while int value; //την 1 η φορά διαβάζω τη value πριν το βρόγχο printf("a number between 1 and 10, please: "); while ( value < 5 value > 10) //εγκλωβισμός στον βρόγχο αν εκτός ορίων printf("incorrect input, please try again.\n"); printf("enter a Number between 1 and 10: "); Με την do - while int value; /*εδώ δεν απαιτείται διάβασμα της value πριν τον βρόγχο */ do printf("a number between 1 and 10, please: "); if (value < 5 value > 10) printf("incorrect input, please try again.\n"); //εγκλωβισμός στον βρόγχο αν εκτός ορίων while ( value < 1 value > 10) ; getchar();getchar(); Χρήσιμο όταν θέλουμε να διαβάσουμε αριθμούς μεταξύ ορίων (π.χ. οι επιλογές ενός μενού) 1 /5

Είναι πρώτος ή όχι? /* πρόγραμμα για να διαπιστώσουμε αν ένας ακέραιος αριθμός είναι πρώτος */ int num,i, flag=0; printf("δώστε έναν αριθμό:"); scanf("%d",&num); Στα μαθηματικά πρώτος αριθμός (ή απλά πρώτος) είναι ένας φυσικός αριθμός μεγαλύτερος της μονάδας με την ιδιότητα οι μόνοι φυσικοί διαιρέτες του να είναι η μονάδα και ο εαυτός του. Το μηδέν και το ένα δεν είναι πρώτοι αριθμοί (Wikipedia). Το πρόγραμμα για να βρει αν ένας αριθμός Ν είναι πρώτος ή όχι εξετάζει αν κάποιος από τους αριθμούς από το 2 έως το Ν/2 διαιρεί ακριβώς το Ν. for (i=2;i<=num/2;i++) // if(num%i==0) // διαιρεί ακριβώς το num? flag=1; // flag =1 σημαίνει ότι βρήκα αριθμό που διαιρεί ακριβώς το num break; // άρα διακόπτω τον βρόγχο if (flag==0 && num!= 1) // αν flag=0 δεν βρέθηκε τέλεια διαίρεση printf ("%d is a prime number",num); else // flag=1, άρα υπήρξε τέλεια διαίρεση printf("%d is not a prime number",num); Άθροισμα των ψηφίων ενός ακεραίου αριθμού (πως?) #include<stdio.h> int int num, sum=0, r; printf("enter a number: "); scanf("%d",&num); //διαβάζω τον αριθμό while(num) //όσο ο αριθμός num δεν μηδενίζεται! r=num%10; //ο αριθμός των μονάδων σε κάθε επανάληψη num=num/10; // το num αλλάζει: αφαιρούνται οι μονάδες διαίρεση ακεραίων sum=sum+r; printf("the sum of digits: %d",sum); getchar();getchar(); 2 /5

Υπολογισμός του Ν!= 1 2 3... N (Ν - παραγοντικό) int i, factorial=1; //αρχική τιμή int N; printf("δώστε αριθμό:"); for (i=1; i<=n; i++) factorial *= i; // υπολογισμός Παρατήρηση: Δεν μπορείτε να δώσετε πολύ μεγάλους αριθμούς λόγω του εύρους ενός ακεραίου στη C. Για παράδειγμα αν το εύρος του ακεραίου τύπου int είναι 4 bytes (το βρίσκετε με χρήση του τελεστή sizeof) ο μεγαλύτερος αριθμός που μπορεί να φιλοξενήσει ένας int είναι 2.147.438.647. Το 13! (=6.227.020.800) δεν μπορεί να φιλοξενηθεί. To 12!(= 479.001.600) δεν έχει πρόβλημα. Θα πρέπει λοιπόν να γίνεται έλεγχος του N όταν αυτό δίδεται από το πληκτρολόγιο printf("το παραγοντικό του %d είναι: %d\n", N, factorial); getchar(); getchar(); Υπολογισμός του Ν! λαμβάνοντας υπόψη τη παρατήρηση int i, factorial=1; int N; do /* έλεγχος δεδομένου εισόδου */ printf("δώστε αριθμό (1-12):"); if (N<1 N>12) printf("λάθος δεδομένα "); // μήνυμα λάθους while (N<1 N>12); // δέχεται από 1 έως 12 μόνο for (i=1; i<=n; i++) factorial *= i; printf("το παραγοντικό του %d είναι: %d\n", N, factorial); getchar(); getchar(); 3 /5

Ποιος είναι ο μέγιστος κοινός διαιρέτης (Μ.Κ.Δ.) δυο αριθμών? int num1, num2, MKD, lcm, ypoloipo, arithmitis, paranomastis; printf("δώστε τον 1o αριθμό:"); scanf("%d", &num1); printf("δώστε και τον 2o:"); scanf("%d", &num2); // ποιος είναι αριθμητής και ποιος παρανομαστής if (num1 > num2) //ο μεγαλύτερος είναι ο αριθμητής arithmitis = num1; paranomastis = num2; else arithmitis = num2; paranomastis = num1; // εφαρμογή του σκεπτικού του Ευκλείδη ypoloipo = arithmitis % paranomastis; while(ypoloipo!=0) arithmitis = paranomastis; paranomastis = ypoloipo; ypoloipo = arithmitis % paranomastis; MKD = paranomastis; printf("o ΜΚΔ των %d και %d είναι: %d \n", num1,num2,mkd); Ακολουθούμε το σκεπτικό του Ευκλείδη που βασίζεται στο γεγονός ότι όταν διαιρούμε ένα αριθμό Μ με έναν μικρότερο του Ν, τότε ο ΜΚΔ του υπολοίπου Υ και του μικρότερου Ν είναι ο ίδιος με τον ΜΚΔ των Μ και Ν. Επίσης είναι γνωστό ότι ο ΜΚΔ ενός αριθμού με το 0 είναι ο ίδιος ο αριθμός. Τι κάνει αυτό το πρόγραμμα; (τι τυπώνει;) int k, m, n, metritis=0; for (k=0;k<=3;k++) for (m=0;m<=3;m++) for (n=0;n<=3;n++) metritis++; printf("%d: %d-%d-%d\n",metritis,k,m,n); 4 /5

5 /5