Αποστολέας Θέμα: 5η Συνάντηση 5 Δεκεμβρίου  (Αναγνώστηκε 1863 φορές)

evry

  • Γενικός Διαχειριστής
  • Hacker
  • *****
  • Μηνύματα: 2182
  • Karma: +0/-0
  • To iterate is human, to recurse divine
    • Προφίλ
5η Συνάντηση 5 Δεκεμβρίου
« στις: Νοέμβριος 18, 2016, 04:57:38 μμ »
Σε αυτό το μάθημα θα ασχοληθούμε με το πρόβλημα εύρεσης του μεγίστου μεταξύ δυο ή περισσότερων αριθμών
Το παρακάτω πρόγραμμα σε C++ διαβάζει 2 ακέραιους αριθμούς από τον χρήστη και εμφανίζει τον μεγαλύτερο.
Προσοχή!! Αν οι αριθμοί είναι ίσοι π.χ. a = b = 10 τότε η μεγαλύτερη τιμή είναι το 10.
Κώδικας: cpp [Επιλογή]

#include <iostream>                         
using namespace std;
int main() {
   int a, b, max;     
   cout << "a = ";     cin >> a;     
   cout << "b = ";     cin >> b;   
   if (a > b) {           
       max = a;                       
   }
   else  {   
       max = b;             
   }

   cout << " max = " << max << endl;   
   cout << "*** END OF PROGRAM ***" << endl;
   return 0;
}

Να μεταφέρετε τα παραπάνω προγράμματα στο CodeBlocks (ξέρετε πως, επιλογή > Copy > Paste)
και στη συνέχεια να τα εκτελέσετε δίνοντας διάφορους αριθμούς για να εξοικειωθείτε με τη λειτουργία τους.

Το επόμενο βήμα που θα σας δυσκολέψει λίγο είναι να επεκτείνετε το παραπάνω πρόγραμμα για 3 αριθμούς. Δηλαδή θα διαβάζει 3 αριθμούς, θα καταχωρεί στη μεταβλητή max το μεγαλύτερο και θα το εμφανίζει μετά. Θα χρειαστεί να προσθέσετε μια ακόμα μεταβλητή c.

Υπόδειξη - Βοήθεια
Το προηγούμενο πρόγραμμα για τον υπολογισμό του μεγαλύτερου δυο αριθμών μπορεία να γραφτεί και με τον παρακάτω τρόπο!!!
Κώδικας: cpp [Επιλογή]

#include <iostream>                         
using namespace std;
int main() {
   int a, b, max;     
   cout << "a = ";     cin >> a;     
   max = a;     // στην αρχή το a είναι το μεγαλύτερο
   cout << "b = ";     cin >> b;   
   if (b > a) {           
       max = b;                       
   }
     // αλλιώς δεν κάνω τίποτα και το a παραμένει μέγιστο
   cout << " max = " << max << endl;   
   cout << "*** END OF PROGRAM ***" << endl;
   return 0;
}

Θα πρέπει να το επεκτείνετε για τρεις  ;)

Αφού το καταφέρετε για 3 αριθμούς ήρθε η ώρα να δοκιμάσετε για 4.
Σκεφτείτε έναν τρόπο ο οποίος θα σας επιτρέψει να χρησιμοποιήσετε την λύση σας για 3 αριθμούς. Δηλαδή ο αλγόριθμος εύρεσης του μεγίστου 4 αριθμών να χρησιμοποιεί τον αλγόριθμο εύρεσης των τριών. Μην ξαναγράψετε από την άρχη τον αλγόριθμο.
Μπορείτε να γενικεύεσετε για έστω 100 αριθμούς; ή ακόμα καλύτερα για Ν αριθμούς;

Εντολή Επανάληψης
Αν θέλουμε να επαναλάβουμε μια εντολή πολλές φορές χρησιμοποιούμε την εντολή for
Για παράδειγμα το παρακάτω τμήμα κώδικα εμφανίζει όλους τα τετράγωνα όλων των αριθμών από το 1 έως και το 100.
Να μελετήσετε την λειτουργία του.
Κώδικας: cpp [Επιλογή]

#include <iostream>
using namespace std;

int main() {
    int upperBound = 100;
    int i;
    for (i=0; i<upperBound; i++) {
        cout << i * i << ", " ;
    }
    cout << endl;
    return 0;

}

Ασκήσεις
  • Να τροποιήσετε το παραπάνω πρόγραμμα έτσι ώστε να εμφανίζει μόνο τα τετράγωνα των άρτιων (ζυγών) αριθμών
  • Να τροποιήσετε το παραπάνω πρόγραμμα έτσι ώστε να εμφανίζει μόνο τα πολλαπλάσια του 5
  • Πως μπορείτε να χρησιμοποιήσετε την εντολή επανάληψης for ώστε να βρείτε τη μέγιστη τιμή πολλών αριθμών?


Τα υπόλοιπα στο μάθημα ;D
« Τελευταία τροποποίηση: Δεκέμβριος 03, 2016, 08:36:14 μμ από evry »
Learn to solve every problem that has been solved