Απλά Προγράμματα Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα
Οι Βασικοί κανόνες Κατανόηση προβλήματος Προσδιορισμός Δεδομένων και Αποτελεσμάτων (ποσότητες προς υπολογισμό) Διατύπωση προβλήματος βάση δεδομένων Παράσταση δεδομένων
Οι Βασικοί κανόνες Σχηματισμός αλγορίθμου (διατύπωση λογικών βημάτων για την παραγωγή του αποτελέσματος) Μετατροπή του αλγορίθμου ώστε να υλοποιηθεί με μια γλώσσα προγραμματισμού Μετατροπή του αλγορίθμου σε κώδικα
Άσκηση 1 int, double, float Γράψτεέναπρόγραμμαπουναζητάαπότο χρήστη 1. Να δώσει ένα ακέραιο και να τον εκτυπώνει σε δεκαδική, δεκαεξαδική και οκταδική μορφή. 2. Να δώσει έναν float και να τον εκτυπώνει 2 φορές. Τη μία με fixed point μορφή και την άλλη με ακρίβεια 2 δεκαδικών ψηφίων σε 4 στήλες. 3. Να δώσει έναν double και να τον εκτυπώνει με ακρίβεια 8 δεκαδικών ψηφίων.
Άσκηση 1 int, double, float, Λύση (1/5) #include <stdio.h> //Δηλώσεις Επικεφαλίδων #include <stdlib.h> main(){ //Η συνάρτησηmain //Δηλώσεις μεταβλητών int arithmos_int; double arithmos_double; float arithmos_float;
Άσκηση 1 int, double, float Λύση (2/5) // 1. Εκτύπωση συμβολοσειράς printf("input integer\n"); // Διάβασμα ακεραίου και αποθήκευση scanf("%d",&arithmos_int); /* Εκτύπωση μεταβλητής στις μορφές που ζητούνται */ printf("input integer decimal is:%d, oct is:%o and hex is :%x\n",arithmos_int, arithmos_int, arithmos_int);
Άσκηση 1 int, double, float Λύση (3/5) // 2. Εκτύπωση μνμ αίτησης printf("input Float\n"); // Διάβασμα float scanf("%f",&arithmos_float); // Εκτύπωση float printf("input fixed point float is:%f\n Float with accuracy 2 dec is:%4.2f \n",arithmos_float,arithmos_float);
Άσκηση 1 int, double, float Λύση (4/5) // 3. Εκτύπωση μνμ αίτησης printf("input Double\n"); // Διάβασμα double scanf("%lf",&arithmos_double); // Εκτύπωση double printf("input double with accuracy 8 decimal is:%0.8f",arithmos_double);
Άσκηση 1 int, double, float Λύση (5/5) // 4. «Πάγωμα» οθόνης system("pause"); // 5. Συνάρτηση επιστροφής return 0; }
Άσκηση 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. Μήνυμα αίτησης προς το χρήστη printf("input 2 integers with 3 digits");
Άσκηση 2 - Λύση (2/4) /* 2. Ανάγνωση και αποθήκευση στις μεταβλητές με 1 εντολή με χρήση προσδιοριστών ανάγνωσης συγκεκριμένου πλάτους. Εναλλακτικά μπορούν να χρησιμοποιηθούν 2 εντολές scanf με τους κατάλληλους προσδιοριστές */ scanf("%3d %3d",&oros1,&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); 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() { int fahr, celsius; // 1. Εντολή εκτύπωσης τίτλου printf("fahrenhait\tcelsius\n"); // 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)