1 / 12

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

ΗΥ - 150 Προγραμματισμός. Εντολές Ελέγχου Ροής. Σειριακή εκτέλεση εντολών. Όλα τα π ρογράμματα « γράφονται » χρησιμο π οιώντας 3 είδη εντολών : Σειριακές εντολές ( sequential – built in C) Εντολές α π όφασης ( if, if/else, switch) Εντολές ε π ανάληψης ( for, while, do/while).

jadzia
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Σειριακήεκτέλεσηεντολών • Όλατα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδηεντολών: • Σειριακέςεντολές (sequential – built in C) • Εντολέςαπόφασης (if, if/else, switch) • Εντολέςεπανάληψης ( for, while, do/while)

  3. ΕντολέςυπόΣυνθήκη - if εντολή <- έκφραση; εντολή <- { σειράεντολών } if (έκφραση) εντολή1 if (έκφραση) εντολή1 else εντολή2 if (έκφραση1) εντολή1 else if (έκφραση2) εντολή2 else εντολή3 //Ανηέκφρασηέχειτιμήδιάφορητου 0 (!0), //εκτελείταιηεντολή 1 //Ανηέκφρασηέχειτιμήδιάφορητου 0 (!0), //εκτελείταιηεντολή 1 αλλιώςηεντολή2 //Ανηέκφραση1έχειτιμήδιάφορητου 0 (!0), //εκτελείταιηεντολή 1 //αλλιώςανηέκφραση2 έχειτιμήδιάφορητου 0 //εκτελείταιηεντολή 2 //αλλιώςεκτελείταιηεντολή 3

  4. Παράδειγμαμεswitch int main() /*Ypologismos aplwn pra3ewn*/ { char p; float x,y,res; scanf("%f %c %f",&x,&p,&y); if (p == ‘+’) { res = x+y; } else if (p == ‘-’) { res = x-y; } else if (p == ‘*’) { res = x*y; } else if (p == ‘/’); { res = x/y; } else { printf(“La8os eisodos\n”); return -1; } printf(“%f%c%f = %f\n”,x,c,y,res); return 0; }

  5. ΕντολέςυπόΣυνθήκη - switch switch (έκφραση) { case σταθερή_παράσταση_1 : statements; break; case σταθερή_παράσταση_2 : statements; break; default : statements; } • Τοdefault είναιπροαιρετικόκαιεκτελείτεανκαμίαπαράστασηδενβρεθείίσημετηνέκφραση • Ανέναbreak λείπειτότεσυνεχίζεταιηεκτέλεσητωνεντολών

  6. Παράδειγμαμεswitch #include <stdio.h> /*Ypologismos aplwn pra3ewn*/ int main() { char p; float x,y,res; scanf("%f %c %f",&x,&p,&y); switch (p) { case ‘+’ : res = x+y; break; case ‘-’ : res = x-y; break; case ‘*’ : res = x*y; break; case ‘/’ : res = x/y; break; default : printf(“La8os eisodos\n”); } printf(“%f%c%f = %f\n”,x,c,y,res); return 0; }

  7. ΠαραστάσειςυπόΣυνθήκη - ? if (x > y) { x = a; }  else { x = b; } x = (x>y) ? a : b;

  8. ΤυπικάΛάθη • if(x=5)αντίγιαif(x==5) • Ξεχάσατετοbreakσεεντολήswitch • Ξεχάσατε {, } • Λάθοςστις προτεραιότητες: ( ) • Λύση: Μορφοποίησηκαιχρήσησχολίων

  9. Μορφοποίηση • Σχόλιαπριναπόσυναρτήσειςκαιτουςορισμούςμεταβλητών • Κατάλληληχρήσηtabs, παρενθέσεωνκαιαγκυλών • Κατάλληληονοματολογίασυναρτήσεων - μεταβλητών /*Epistrefei ton endiameso ari8mo twn a,b,c*/ int getMedian(int a,int b, int c) { int median; /*Endiamesos*/ if ((a <= b) && (a >= c)) || ((a >= b) && (a <= c)) { median = a; } else if ((b <= a) && (b >= c)) || ((b >= a) && (b <= c)) { median = b; } else { median = c; } return median; }

  10. Define – Const – Include #define <macro> <replacement name> #define FALSE 0 #define TRUE !FALSE #define N 1000 /*ΠΡΟΣΟΧΗ!! – ΔΕΝΜΠΟΡΩΝΑΧΡΗΣΙΜΟΠΟΙΗΣΩΤΟΝΩΣΜΕΤΑΒΛΗΤΗ*/ #define Pi 3.14159 • Ορίζεταιστηναρχήκάθε προγράμματοςκαιμπορείναχρησιμοποιηθείσεόλοτο πρόγραμμα. • To Pi θααντικατασταθείαπότον3.14159 στο πρώτοβήματουcompilation (preprocessing) int const a = 1; • ορίζειμιασταθερά – δενμπορείνααλλάξειτιμή #include <file> #include <stdio.h> #include “file”

  11. ΓενικήΔομήΠρογράμματος • Λίστααπόσυναρτήσεις - main() Τύπος-επιστρεφόμενης-τιμήςόνομα(λίστα-παραμέτρων) { δηλώσειςμεταβλητών λίσταεντολών } /*Επιστρέφειτομέγιστομεταξύτωνx, y*/ int max(int x,int y) { int z = x; /*δηλώσειςμεταβλητών - αρχικοποίηση*/ if (y > x) /*λίσταεντολών*/ { z = y; } return z; }

  12. Παράδειγμα /* Author: C. Panagiotakis Function: Solves a second order polynomial equation. */ #include <stdio.h> #include <math.h> /*function prototypes*/ float diakrinousa(float,float , float ); int printSolution2ba8mou(float a, float b, float c); int main() { float a,b,c; printf(“Dwste 3 pragmatikous ari8mous \n”); scanf(“%f %f %f”,&a,&b,&c); printf("Dw8hke to poluwnumo: %f x^2 + (%f) x + (%f) \n",a,b,c); if (a == 0) { printf(“H e3iswsh einai prwtou ba8mou\n”); } else { printSolution2ba8mou(a, b, c); } } /*Υπολογίζειτηδιακρίνουσα*/ float diakrinousa(float a,float b, float c) { float D = b*b – 4*a*c; return D; } /*Εκτυπώνειτιςλύσεις*/ int printSolution2ba8mou(float a, float b, float c) { float D = diakrinousa( a, b, c); float x1,x2; if (D < 0) { printf(“Den uparxoun pragmatikes luseis.\n”); return 0; } else if (D == 0) { x1 = -b/(2*a); printf(“Yparxei monadikh lush %f\n”,x1); return 1; } else { x1 = (-b+sqrt(D))/(2*a); x2 = (-b-sqrt(D))/(2*a); printf(“Yparxoun 2 luseis :%f, %f\n”,x1,x2); return 2; } }

More Related