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

Σχετικά έγγραφα
Προγραμματισμός Ι (HY120)

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

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

Η γλώσσα C. Προγραµµατισµός Ι 1

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

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

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

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

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

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

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

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

Δομές ελέγχου ροής προγράμματος

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

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

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

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

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

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

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

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

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

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

ΗΥ-150. Προγραμματισμός

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

ΗΥ-150. Προγραμματισμός

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

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

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

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

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

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

Ενδεικτικές λύσεις και στατιστικά

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

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΑΤΙΣΜΟΣ Α (C++) ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΤΩΝ Δρ. Νικόλαος Ζ. Ζάχαρης

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

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

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

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

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

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

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

for for for for( . */

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Παίρνοντας Αποφάσεις 1

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

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

Αντικειµενοστρεφής Προγραµµατισµός

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

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

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

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

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

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

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

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

Δομές Ελέγχου και Επανάληψης

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

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

Εντολές επιλογής Επαναλήψεις (if, switch, while)

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Ενδεικτική περιγραφή μαθήματος

Προεπεξεργαστής C. Προγραμματισμός Ι 1

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

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

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

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

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

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

Transcript:

Προγραμματισμός Ι (ΗΥ120) Διάλεξη 6: Δομές Ελέγχου

Δομές ελέγχου 2 Με τις εντολές εισόδου, εξόδου και επεξεργασίας των τιμών των μεταβλητών μπορεί να γραφτούν απλά προγράμματα. Οι δυνατότητες είναι περιορισμένες. Το πρόγραμμα ακολουθεί μια μοναδική και εκ των προτέρων προδιαγεγραμμένη εκτέλεση. Με τις δομές ελέγχου, ο προγραμματιστής μπορεί να αφήσει το ίδιο το πρόγραμμα να πάρει αποφάσεις σχετικά με την εκτέλεση (ή μη) κάποιων εντολών. Αυτές οι αποφάσεις λαμβάνονται την ώρα της εκτέλεσης, με βάση τις (τρέχουσες) τιμές των μεταβλητών του προγράμματος. Δομές ελέγχου: εκτέλεση υπό συνθήκη & επανάληψη.

Εκτέλεση υπό συνθήκη: if if (<lexpr>) lexpr <body1> false <body2> body2 true body1 3 Αν η λογική συνθήκη lexpr αποτιμηθεί σε TRUE τιμή διάφορη του 0), τότε η εκτέλεση συνεχίζεται με το body1, διαφορετικά με το εναλλακτικό body2. Το εναλλακτικό σκέλος είναι προαιρετικό: Aν δεν υπάρχει και η συνθήκη lexpr αποτιμηθεί σε 0 τότε απλά παρακάμπτεται το body1.

/* absolute λαμβάνει την απόλυτη τιμή του in */ #include <stdio.h> 4 int main(int argc, char *argv[]) { int in, absolute; scanf("%d", &in); if (in >= 0) { absolute = in; { /* in < 0 */ absolute = -in; printf("%d\n", absolute); return(0);

/* max λαμβάνει την μέγιστη τιμή των in1,in2,in3 */ #include <stdio.h> int main(int argc, char *argv[]) { int in1, in2, in3, max; 5 scanf("%d %d %d", &in1, &in2, &in3); if (in1 > in2) { if (in1 > in3) { max = in1; { /* in1 <= in3 */ max = in3; { /* in2 >= in1 */ if (in2 > in3) { max = in2; { /* in2 <= in3 */ max = in3; printf("%d\n", max); return(0);

/* max λαμβάνει την μέγιστη τιμή των in1,in2,in3 */ 6 #include <stdio.h> int main(int argc, char *argv[]) { int in1, in2, in3, max; scanf("%d %d %d", &in1, &in2, &in3); max = in1; if (max < in2) { max = in2; if (max < in3) { max = in3; printf("%d\n", max); return(0);

Σώμα εντολών σε δομές ελέγχου Το σώμα μιας εντολής ελέγχου (π.χ. του if-) δίνεται υποχρεωτικά ανάμεσα σε { όταν αυτό αποτελείται από πολλές εντολές. Οι { είναι προαιρετικές μόνο όταν το σώμα αποτελείται από μια εντολή Σημείωση: μια δομή ελέγχου θεωρείται συντακτικά ως μια εντολή. Η χρήση { και η μορφοποίηση του κειμένου του προγράμματος με κενούς χαρακτήρες και κατανομή σε ξεχωριστές γραμμές είναι θέμα «γούστου», αλλά επηρεάζει σαφώς την αναγνωσιμότητα. Ένας άπειρος προγραμματιστής καλό είναι να χρησιμοποιεί πάντα {, ακόμα και για σώματα εντολών που περιέχουν μια μοναδική εντολή. 7

/* εκτύπωση ονόματος ημέρας με τον κωδικό day */ #include <stdio.h> 8 int main(int argc, char *argv[]) { int day; scanf("%d", &day); if (day == 1) { printf("mon\n"); if (day == 2) { printf("tue\n"); if (day == 3) { printf("wed\n"); if (day == 4) { printf("thu\n"); if (day == 5) { printf("fri\n"); if (day == 6) { printf("sat\n"); if (day == 7) { printf("sun\n"); { printf("wrong code %d\n",day); return(0);

9 if (day == 1) { printf("mon\n"); if (day == 2) { printf("tue\n"); if (day == 3) { printf("wed\n"); if (day == 4) { printf("thu\n"); if (day == 5) { printf("fri\n"); if (day == 6) { printf("sat\n"); if (day == 7) { printf("sun\n"); { printf("wrong code %d\n",day);

10 if (day == 1) printf("mon\n"); if (day == 2) printf("tue\n"); if (day == 3) printf("wed\n"); if (day == 4) printf("thu\n"); if (day == 5) printf("fri\n"); if (day == 6) printf("sat\n"); if (day == 7) printf("sun\n"); printf("wrong code %d\n",day);

if (day == 1) printf("mon\n"); if (day == 2) printf("tue\n"); if (day == 3) printf("wed\n"); if (day == 4) printf("thu\n"); if (day == 5) printf("fri\n"); if (day == 6) printf("sat\n"); if (day == 7) printf("sun\n"); printf("wrong code %d\n",day); 11

if (day == 1) printf("mon\n"); if (day == 2) printf("tue\n"); if (day == 3) printf("wed\n"); if (day == 4) printf("thu\n"); if (day == 5) printf("fri\n"); if (day == 6) printf("sat\n"); if (day == 7) printf("sun\n"); printf("wrong code %d\n",day); 12

if (day == 1) { printf("mon\n"); { if (day == 2) { printf("tue\n"); { if (day == 3) { printf("wed\n"); { if (day == 4) { printf("thu\n"); { if (day == 5) { printf("fri\n"); { if (day == 6) { printf("sat\n"); { if (day == 7) { printf("sun\n"); { printf("wrong code %d\n",day); 13

Εκτέλεση υπό συνθήκη: switch-case switch (<iexpr>) { iexpr==v1 true body1 14 break case <v1>: <body1> case <v2>: <body2> case <vn>: <bodyn> default: <bodyd> false iexpr==v2 false iexpr==vn true true body2 bodyn break break false bodyd Υπολογίζεται (μια φορά) η ακέραια αριθμητική έκφραση iexpr (έστω σε τιμή valx) και επιλέγεται και εκτελείται το bodyx της πρώτης περίπτωσης που έχει την ίδια τιμή valx. Αν το σώμα bodyx δεν περιέχει την εντολή break στη συνέχεια εκτελείται και το επόμενο σώμα bodyx+1. Το σκέλος default είναι προαιρετικό, και επιλέγεται αν δεν επιλεγεί άλλη περίπτωση.

/* εκτύπωση ονόματος ημέρας με τον κωδικό day */ #include <stdio.h> int main(int argc, char *argv[]) { 15 int day; scanf("%d", &day); χωρίς την εντολή break το πρόγραμμα θα συνέχιζε την εκτέλεση με το σώμα της επόμενης περίπτωσης case switch (day) { case 1: { printf("monday\n"); break; case 2: { printf("thuesday\n"); break; case 3: { printf("wednesday\n"); break; case 4: { printf("thursday\n"); break; case 5: { printf("friday\n"); break; case 6: { printf("saturday\n"); break; case 7: { printf("sunday\n"); break; default:{ printf("wrong day code %d\n",day); return(0);