ax 2 + bx + c = 0, αλλίως θα αποκρίνεται ανάλογα.

Σχετικά έγγραφα
Προγραμματισμός Ι. Θεματική ενότητα 8: Δημιουργία προγραμμάτων

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

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

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

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

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

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

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

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

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

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

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

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

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

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

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

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

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

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

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

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

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

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

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

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

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

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

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

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

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

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

Παραδείγματα με συναρτήσεις στη C

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

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

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

Προγραµµατισµός. Αναδροµή (1/2)

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

Προγραμματισμός σε C++

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

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

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

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

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

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

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

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

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

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

Transcript:

Πρώτη προαιρετική Γραψτε ένα πρόγραμμα σε C, όπου ο χρήστης να εισάγει τους πραγματικούς αριθμούς a, b, c. Αν υπάρχουν, το πρόγραμμα θα υπολογίζει και τυπώνει τις πραγματικές λύσεις του τριώνυμου: ax 2 + bx + c = 0, αλλίως θα αποκρίνεται ανάλογα. Το πρόγραμμα οφείλει να μην καταρέει στις εξής 2 περίπτωσεις λανθασμένης είσοδου: (1) αν ο χρήστης εισάγει μη αναμενόμενες τιμές π.χ. (α = β = γ = 0), (2) αν η είσοδος περιέχει συντακτικά λάθη.

/* entolh ektypwshs */ prf( Hello world\n ); #include <math.h> a, b, c, D, riza1, riza2; a, b, c, result; a = 5; b = 3; c = 9; D = b*b 4*a*c; if (D < 0) prf( No roots!\n ); riza1 = (-b + sqrt(d))/(2*a); riza2 = (-b - sqrt(d))/(2*a); prf( The roots of %f*x*x + %f*x + f = 0 are %f and %f\n,a,b,c,riza1,riza2); a = 1; b = 1; c = a + b; prf("%d + %d = %d\n",a,b,c);

Laddered if- Γενικά if (mycase == 1) pr ; if (mycase == 2) if (mycase == 3) if (mycase == 4) /* nothing of the above */ /* ok to solve*/ Για το τριώνυμο if ( (a == 0) && (b == 0) && (c == 0)) prf( Always holds!\n ); if (a == 0) /* solve & pr accordingly */ /* still have to check */ /* if b*b-2*a*c is positive */ [...]; if (D < 0) Logic AND: if ( (a == 0) (b == 0) (c = 0)) Logic OR : if ( (a == 0) && (b == 0) && (c = 0))

Δήλωση συναρτήσεων και εμβέλεια (scope) μεταβλητών result = sqrt(d); output = sqrt(input); output = foo(input1, input2,...); Παράδειγμα predefinition: normofvector( x, y, z); Note:, float, compatibility

Example: normofvector() normofvector( x, y, z); myresult; myx, myy, myz; myx = 1.4; myy = 3.2; myz = 4.3; myresult = normofvector(myx, myy, myz); prf( The result is %lf\n, myresult); normofvector(,, ); myresult; x, y, z; x = 1.4; y = 3.2; z = 4.3; myresult = normofvector(x, y, z); prf( The result is %lf\n, myresult); normofvector( x, y, z) result; result = sqrt(x*x + y*y + z*z); normofvector( x, y, z) myresult; myresult = sqrt(x*x + y*y + z*z); return result; return myresult;

Example: normofvector() normofvector(,, ); myresult; x, y, z; x = 1.4; y = 3.2; z = 4.3; myresult = normofvector(x, y, z); prf( The result is %lf\n, myresult); normofvector( x, y, z) myresult; myresult = sqrt(x*x + y*y + z*z); Identify function o o normofvector(,, ); Allocate variables myresult, x, y, z Assign values to myx,myy,myz Call normofvector(myx,myy,myz) o tmp: [1.4][3.2][4.3] o normofvector(1.4, 3.2, 4.3); o myresult = [5.539856] normofvector myresult = [5.539856] forget tmp Initial state [myresult, x, y, z...] [[?][1.4][3.2][4.3]...] Function call [myresult, x, y, z...[ 0][ 1][ 2]] [[?][1.4][3.2][4.3]...[1.4][3.2][4.3]] Return [myresult, x, y, z...[5.54][1.4][3.2][4.3]] [[5.54] [1.4][3.2][4.3]... [5.54][1.4][3.2][4.3]] return myresult; Ready to pr [myresult, x, y, z,...] [[5.54] [1.4][3.2][4.3]...] prf( The result is %lf\n, myresult);

Είσοδος από το πληκτρολόγιο: scanf (char *format,...); main () i; prf ("Enter an eger: "); scanf ("%d",&i); prf ("The eger you entered is: %d\n",i); float myfloat; err; prf ("Enter an float: "); err = scanf("%f", &myfloat); prf("the error code is %d\n",err); if (err == 0) prf( I cannot understand this float\n ); prf ("The float you entered is: %f\n", myfloat); Γιατί ως παραμετρος εισόδου? - Έλεγχος / errorhandling - Πολλαπλή έξοδος Είσοδος err = scanf("%d", &myint); err = scanf("%f", &myfloat); err = scanf("%lf", &mydouble); Εκτύπωση prf(": %d, err: %d\n", myint, err); prf("float: %f, err: %d\n", myfloat, err); prf(": %f, err: %d\n", mydouble, err);

Βρόχοι επανάληψης. Η περίπτωση του while #define MY_LIMIT 10 float myvariable; havereadit = 0; n; n = 0; while (n < MY_LIMIT) prf ("n is now %d\n", n); n = n + 1; prf("at last n is now %d\n",n); while (havereadit == 0) error; prf("enter float:"); error = scanf("%f",&myvariable); if (error == 0) /* input was wrong*/ prf("wrong input try again.\n"); havereadit = 0; /* input was OK */ prf("ok. a is %f\n", myvariable); havereadit = 1; getchar(); Πως γίνεται για μεταβλητό n? scanf Πως στο τριώνυμο? Διάβάζουμε πρώτα μεταβλητές σωστά και μετά η διερεύνηση.

a b a,b,c, havereadit; havereadit = 0; /* for a */ while (havereadit == 0) error; error = scanf("%d",&a); if (error == 0) havereadit = 0; prf("a is %d\n",n); havereadit = 1; havereadit = 0; /* for b */ while (havereadit == 0) error; error = scanf("%d";,&a); if (error == 0) [...] [...] /* kai meta h diereynhsh */ if (a==0)... readdoublefromkeyboard() result; havereadit = 0; while (havereadit == 0) c, error; prf("please enter a real number:"); error = scanf("%lf",&result); havereadit = error; while ( (c = getchar())!= '\n') if (! isdigit(c)) havereadit = 0; if (havereadit == 0) prf("\nwrong input try again:\n"); prf("ok the number is %lf\n", result); return result; readdoublefromkeyboard(); a,b,c; a = readdoublefromkeyboard(); b = readdoublefromkeyboard(); c = readdoublefromkeyboard(); prf("a=%lf\tb=%lf\tc= %lf\n",a,b,c); [ ]