Uitwerkingen opgaven Programmeermethoden, najaar 2020 - opgaven 10/13 Opgave 10 // druk aantal spaties af void spaties (int aantal) { // of nog , char symbool ertussen int i; // tellertje for ( i = 1; i <= aantal; i++ ) cout << ' '; // en dan hier cout << symbool; } // spaties Opgave 11 a. We geven een summiere uitwerking: class plaats { public: plaats ( ); // default constructor plaats (double,double,char*); // constructor met parameters void geefcoors (double,double); char* geefnaam ( ); private: double xco, // voor x- yco; // en y-coordinaat char naam[40]; // voor de plaatsnaam }; // plaats b. Voor b en c maken we eerst een handige "superklasse": class mens { public: ... allerlei functies ... private: char naam[30]; // naam char adres[60]; // adres, ... char telefoon[10]; // vanaf 10 oktober 1995 past dit precies boolean geslacht; // maar wat is true en wat is false? int geboortejaar, // hoe oud ben je? geboortemaand, geboortedag; ... etcetera ... }; // mens class student: public mens { public: ... allerlei functies ... private: double cijfers[60]; // uitslagen van de tentamens double betaald; // hoeveel is er al betaald? ... en nog meer ... }; // student c. Nu kan ook c eenvoudig gemaakt worden: class sporter: public mens { // niks te maken met die cijfers! public: ... allerlei functies ... private: boolean goedgekeurd; // hoe is de conditie double geld; // hoeveel moet er betaald worden? ... en nog meer ... }; // student Voor zo'n groot programma zijn vele functies nodig, zoals het toevoegen, verwijderen, updaten van een student, afdrukken van het studentenbestand, afdrukken van bepaalde selecties, noem maar op. Opgave 12 int main ( ) { int getal, // om getal in te lezen totaal = 0, // voor het totaal van de getallen aantal = 0, // voor het aantal getallen minimum = INT_MAX, // voor het minimum van de getallen; // deze constante opzoeken in limits.h: // INT_MAX komt uit limits.h // mooier: initialiseren op het eerste getal maximum = 0; // voor het maximum van de getallen do { cout << "Geef een geheel getal (afsluiten met getal <= 0) .. "; cin >> getal; if ( getal > 0 ) { if ( getal > maximum ) maximum = getal; if ( getal < minimum ) minimum = getal; totaal += getal; aantal++; } // if } // do while ( getal > 0 ); cout << "Gemiddelde is: " << (double) totaal / aantal << endl << "Minimum is: " << minimum << endl << "Maximum is: " << maximum << endl; return 0; } // main Het for-statement is wellicht minder geschikt, het aantal herhalingen is immers van te voren absoluut niet bekend. Opgave 13 int main ( ) { bool FinseSituatie = false; // afronden op stuivers? int centen, // het aantal centen tweetjes, // het aantal tweetjes stuivers, // het aantal stuivers dubbeltjes, // het aantal dubbeltjes twintigjes, // het aantal twintigjes vijftigers; // het aantal vijftigjes cout << "Geef bedrag in centen (tussen 1 en 99) .. "; cin >> centen; if ( FinseSituatie ) if ( ( centen % 5 ) >= 3 ) // naar boven afronden centen = centen + 5 - ( centen % 5 ); else // naar beneden afronden centen = centen - ( centen % 5 ); vijftigers = centen / 50; // 0 of 1 centen = centen % 50; twintigjes = centen / 20; // 0, 1 of 2 centen = centen % 20; dubbeltjes = centen / 10; // 0, 1 of 2 centen = centen % 10; stuivers = centen / 5; // 0 of 1 centen = centen % 5; tweetjes = centen / 2; // 0, 1 of 2 centen = centen % 2; // 0 of 1 cout << vijftigers << " vijftigje(s), " << twintigjes << " twintigje(s), " << dubbeltjes << " dubbeltje(s), " << stuivers << " stuiver(s) en " << centen << " cent(en)." << endl; return 0; } // main