Απλά Προγράμματα Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα
Οι Βασικοί κανόνες Κατανόηση προβλήματος Προσδιορισμός Δεδομένων και Αποτελεσμάτων (ποσότητες προς υπολογισμό) Διατύπωση προβλήματος βάση δεδομένων Παράσταση δεδομένων
Οι Βασικοί κανόνες Σχηματισμός αλγορίθμου (διατύπωση λογικών βημάτων για την παραγωγή γή του αποτελέσματος) Μετατροπή του αλγορίθμου ώστε να υλοποιηθεί με μια γλώσσα προγραμματισμού Μετατροπή του αλγορίθμου σε κώδικα
Άσκηση 2 Γράψτε ένα πρόγραμμα που να διαβάζει 2 τριψήφιους ρψήφ ακεραίους, να υπολογίζει γζ και τυπώνει το άθροισμα και τη διαφορά τους Η εκτύπωση να έχει την εξής μορφή: 456 456 +123 123 579 333
Δεδομένα Δεδομένα: 2 τριψήφιοι ακέραιοι (δίνονται από το χρήστη) Δεδομένα προς υπολογισμό: άθροισμα και διαφορά
Βήματα Μήνυμα αίτησης προς τον χρήστη για είσοδο 2 τριψήφιων ακεραίων Διάβασμα και αποθήκευση των δεδομένων σε μεταβλητές Υπολογισμός αθροίσματος και αποθήκευση αποτελέσματος Υπολογισμός διαφοράς και αποθήκευση αποτελέσματος Εκτύπωση στη μορφή που υποδεικνύεται
Άσκηση 2 Λύση (1/4) #include <stdio.h> #include <stdlib.h> main() { int oros1, oros2, athroisma, diafora; //Δηλώσεις μεταβλητών //1 Μήνυμα αίτησης προς το χρήστη //1. Μήνυμα αίτησης προς το χρήστη printf("input 2 integers with 3 digits");
Άσκηση 2 Λύση (2/4) /* 2. Ανάγνωση και αποθήκευση στις μεταβλητές με 1 εντολή με χρήση προσδιοριστών ανάγνωσης συγκεκριμένου πλάτους. Εναλλακτικά μπορούν να χρησιμοποιηθούν 2 εντολές scanf με τους κατάλληλους προσδιοριστές */ scanf("%3d %3d",&oros1,&oros2); &oros2);
Άσκηση 2 Λύση (3/4) // 3. Υπολογισμός αθροίσματος athroisma = oros1 + oros2 ; // 4. Υπολογισμός διαφοράς diafora = oros1 oros2;
Άσκηση 2 Λύση (4/4) /* 5. Εκτύπωση με χρήση πεδίων στηλών στον προσδιοριστή. Εκτυπώνω τις μεταβλητές σε 5 στήλες. Μεταξύ των μεταβλητών αφήνω κενό tab (\t) */ printf("%5d \t%5d\n",oros1,oros1); printf(" +%3d \t %3d\n",oros2,oros2); oros2); printf(" \t \n"); printf(" %3d \t %3d\n",athroisma,diafora);,, // 6.Εντολή παγώματος οθόνης system("pause"); // 7.Εντολή επιστροφής return 0; }
Άσκηση 3 αριθμητικές παραστάσεις Χρησιμοποιώντας τον τύπο ºC = (5/9)* (ºF 32), φτιάξτε ένα πρόγραμμα το οποίο να εμφανίζει τον πίνακα Φαρενάιτ Κελσίου για τις θερμοκρασίες Φαρενάιτ = 0, 20, 40, 100 (οι μεταβλητές για τις θερμοκρασίες να είναι ακέραιοι)
Δεδομένα Δεδομένα: Οι θερμοκρασίες Φαρενάιτ Δεδομένα προς υπολογισμό: Οι θερμοκρασίες κελσίου
Άσκηση 3 Λύση (1/3) #include <stdio.h> #include <stdlib.h> main() { intfh fahr, celsius; li // 1. Εντολή εκτύπωσης τίτλου printf("fahrenhait\tcelsius\n"); tf("fh hit\tc l i \ ") // 2. Υπολογισμός και εκτύπωση βαθμών κελσίου για τους 0 βαθμούς Φαρενάιτ celsius = (5 * (0 32)) /9 ; printf("%9d\t%7d\n",0,celsius);
Άσκηση 3 Λύση (2/3) /* 3. Υπολογισμός και εκτύπωση βαθμών κελσίου για τους 20 βαθμούς Φαρενάιτ */ celsius = (5 * (20 32)) /9 ; printf("%9d\t%7d\n",20,celsius); /*4. Υπολογισμός και εκτύπωση ηβαθμών κελσίου για τους 40 βαθμούς Φαρενάιτ */ celsius = (5 * (40 32)) /9 ; printf("%9d\t%7d\n",40,celsius);
Άσκηση 3 Λύση (3/3) /* 5. Υπολογισμός και εκτύπωση βαθμών κελσίου για τους 100 βαθμούς Φαρενάιτ */ celsius = (5 * (100 32)) /9 ; printf("%9d\t%7d\n",100,celsius); } system("pause"); return 0;
Άσκηση 3 Σχόλια Αν αντί της εντολής εκχώρησης celsius = (5 * (fahr 32)) /9 ; χρησιμοποιήσετε την εντολή Celsius = (5/9) * (fahr 32); Το αποτέλεσμα θα είναι 0, γιατί στη C η διαίρεση ακεραίων αποκόπτει το κλασματικό μέρος του αποτελέσματος και έτσι 5/9 = 0!! Αν όμως γράψετε 5.0/9.0 το αποτέλεσμα θα είναι το επιθυμητό. Επίσης υπάρχει μικρή απόκλιση του τελικού αποτελέσματος, λόγω χρήσης ακεραίων. Επαναλάβετε την άσκηση με χρήση του τύπου δεδομένων float.
Άσκηση 4 Γράψτε ένα πρόγραμμα που να υπολογίζει και να τυπώνει το άθροισμα και τη μέση τιμή τριών αριθμών (χρησιμοποιήστε μεταβλητές τύπου double)
Άσκηση 4 (1/3) #include <stdio.h> #include <stdlib.h> main(){ // Δηλώσεις μεταβλητών double athroisma, os a, mean, oos oros1,,oos oros2,,oos3; oros3; // 1 Μήνυμα αίτησης προς το χρήστη // 1. Μήνυμα αίτησης προς το χρήστη printf("input 3 numbers\n");
Άσκηση 4 (2/3) /* 2. Αά Ανάγνωση και αποθήκευση στις μεταβλητές με 1 εντολή με χρήση προσδιοριστών ανάγνωσης πραγματικών (double). Εναλλακτικά μπορούν να χρησιμοποιηθούν 3 εντολές scanf με τους κατάλληλους προσδιοριστές */ scanf("%lf %lf %lf",&oros1,&oros2,&oros3); /* 3. Υπολογισμός αθροίσματος και εκχώρηση στην αντίστοιχη μεταβλητή ή*/ athroisma = oros1 + oros2 + oros3;
Άσκηση 4 (3/3) // 4. Υπολογισμός μέσου όρου και εκχώρηση στην αντίστοιχη μεταβλητή mean = (oros1 + oros2 + oros3) / 3; // 5. Εκτύπωση αποτελεσμάτων printf("sum is: %lf, mean is: %lf\n",athroisma,mean); system("pause"); return 0; }