Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ----------------------------------------------------------------------------------
- Fichier : Labo_07_Baillod_Gemesio.cpp
- Auteur(s) : Baillod Nicolas & Gemesio Denise
- Date : 30.11.2015
- But : programme permettant de choisir entre plusieurs fonctionnalités
- Remarque(s) : - la saisie utilisateur n'est pas controlée
- Compilateur : MinGW-g++ 4.8.1
- ----------------------------------------------------------------------------------
- */
- #include <cstdlib>
- #include <cmath>
- #include <iostream>
- #include <time.h>
- #include <stdio.h>
- #define PI 3.1415
- using namespace std;
- /*-------------------------------FONCTIONS-----------------------------------------*/
- bool verifBorne(int borneMin, int borneMax) {
- bool isBool(borneMin > borneMax);
- return isBool;
- }
- bool estPair(int valeur) {
- bool isBool = !(valeur % 2);
- return isBool;
- }
- int sommeChiffres(int valeur) {
- int somme = 0;
- do {
- somme += valeur % 10;
- valeur /= 10;
- } while (valeur != 0);
- return somme;
- }
- void nbre1er(int intervalleMin, int intervalleMax) {
- int valeur = intervalleMin;
- while (valeur <= intervalleMax) {
- if ((valeur % 2) && (valeur % 3) &&(valeur % 5) && (valeur % 7) || valeur == 2
- || valeur == 5 || valeur == 7) {
- cout << valeur << " ";
- }
- valeur++;
- }
- }
- void nbreArmstrong(int intervalleMin, int intervalleMax) {
- int valeur = intervalleMin;
- while (valeur <= intervalleMax) {
- int valeur_interne = 0;
- int somme_armstrong = 0;
- valeur_interne = valeur;
- while (valeur_interne) {
- somme_armstrong += (valeur_interne % 10) * (valeur_interne % 10) *
- (valeur_interne % 10);
- valeur_interne /= 10;
- }
- if (somme_armstrong == valeur) {
- cout << valeur << " ";
- }
- valeur++;
- }
- }
- int aleatoire(int borneMin, int borneMax) {
- srand(time(NULL));
- return rand() % borneMax + borneMin;
- }
- void trigo(double angle, double& sin1, double& cos1, double& tan1) {
- double radian = PI * angle / 180;
- sin1 = sin(radian);
- cos1 = cos(radian);
- tan1 = tan(radian);
- }
- bool repondOui(const char reponse) {
- if (reponse == 'o' || reponse == 'O') {
- return true;
- } else {
- return false;
- }
- }
- int buffer(int& plusGrandChiffre, char& plusPetiteMinuscule) {
- plusPetiteMinuscule = 123;
- plusGrandChiffre = 47;
- char a;
- int counter = 0;
- cout << "Entrez ce que vous voulez: ";
- do {
- cin.get(a);
- if (islower(a) && (a < plusPetiteMinuscule || plusPetiteMinuscule == NULL))
- plusPetiteMinuscule = a;
- if (isdigit(a) && (a > plusGrandChiffre || plusGrandChiffre == NULL))
- plusGrandChiffre = a;
- if (plusGrandChiffre == 47)
- plusGrandChiffre = NULL;
- if (plusPetiteMinuscule == 123)
- plusPetiteMinuscule = NULL;
- counter++;
- } while (a != '\n');
- return counter - 1;
- }
- /*-----------------------------------main------------------------------------------*/
- int main() {
- enum class fonction {nbrePaire, somme, nbre1er, nbreArsmstrong, nbreRand, trigo,
- buffer};
- unsigned short entreeChoix;
- int nombreUtilisateur;
- int borneMin;
- int borneMax;
- double angle;
- double sinus;
- double cosinus;
- double tangente;
- int plusGrandChiffre = NULL;
- char plusPetiteMinuscule = NULL;
- /*---------------------------presentation et menu-------------------------------*/
- do {
- cout << endl;
- cout << "Bonjour, vous avez le choix entre plusieurs fonctions dans ce "
- "programme que voulez vous faire?" << endl;
- cout << endl;
- cout << (int)fonction::nbrePaire <<". nombre paire" << endl;
- cout << (int)fonction::somme << ". somme des chiffres" << endl;
- cout << (int)fonction::nbre1er << ". nombre premier" << endl;
- cout << (int)fonction::nbreArsmstrong << ". nombre Armstrong" << endl;
- cout << (int)fonction::nbreRand << ". nombre aleatoire" << endl;
- cout << (int)fonction::trigo << ". fonction trigonometrique" << endl;
- cout << (int)fonction::buffer << ". buffer" << endl;
- cout << endl;
- cout << "Veuillez entrer le chiffre correspondant: ";
- cin>>entreeChoix;
- while (cin.get() != '\n');
- cout << endl;
- /*---------------------affichage de la fonction selectionnee-----------------------*/
- switch (entreeChoix) {
- case((int)fonction::nbrePaire): cout << "Ce programme determine si un nombre est paire."
- << endl;
- cout << "Veuillez entrer un nombre: ";
- cin >> nombreUtilisateur;
- while (cin.get() != '\n');
- (estPair(nombreUtilisateur)) ? cout << "Ce nombre est paire" :
- cout << "Ce nombre n'est pas paire";
- cout << endl;
- break;
- case((int)fonction::somme): cout << "Ce programme determine la somme des chiffres "
- "composant un nombre." << endl;
- cout << "Veuillez entrer un nombre: ";
- cin>>nombreUtilisateur;
- while (cin.get() != '\n');
- cout << "La somme des chiffres de ce nombre est: "
- << sommeChiffres(nombreUtilisateur);
- cout << endl;
- break;
- case((int)fonction::nbre1er): cout << "Ce programme affiche la liste des nombres premiers "
- "dans un intervalle." << endl;
- cout << "Borne minimale: ";
- cin>>borneMin;
- while (cin.get() != '\n');
- cout << "Borne maximale: ";
- cin>>borneMax;
- while (cin.get() != '\n');
- if (verifBorne(borneMin, borneMax)) {
- cout << "La borne minimale est plus grande que la borne maximale"
- << endl;
- break;
- }
- nbre1er(borneMin, borneMax);
- break;
- case((int)fonction::nbreArsmstrong): cout << "Ce programme affiche la liste des nombres Armstrong "
- "dans un intervalle." << endl;
- cout << "Borne minimale: ";
- cin>>borneMin;
- while (cin.get() != '\n');
- cout << "Borne maximale: ";
- cin>>borneMax;
- while (cin.get() != '\n');
- if (verifBorne(borneMin, borneMax)) {
- cout << "La borne minimale est plus grande que la borne maximale"
- << endl;
- break;
- }
- nbreArmstrong(borneMin, borneMax);
- break;
- case((int)fonction::nbreRand): cout << "Ce programme affiche un nombre aleatoire dans un "
- "intervalle." << endl;
- cout << "Borne minimale: ";
- cin>>borneMin;
- while (cin.get() != '\n');
- cout << "Borne maximale: ";
- cin>>borneMax;
- while (cin.get() != '\n');
- if (verifBorne(borneMin, borneMax)) {
- cout << "La borne minimale est plus grande que la borne maximale"
- << endl;
- break;
- }
- cout << "Nombre aleatoire: " << aleatoire(borneMin, borneMax);
- cout << endl;
- break;
- case((int)fonction::trigo): cout << "Ce programme affiche les sinus, cosinus et tangente"
- " d'un angle." << endl;
- cout << "Entrez un angle: ";
- cin>>angle;
- while (cin.get() != '\n');
- trigo(angle, sinus, cosinus, tangente);
- cout << "Le sinus est: " << sinus << endl;
- cout << "Le cosinus est: " << cosinus << endl;
- cout << "La tangente est: " << tangente << endl;
- break;
- case((int)fonction::buffer):cout << "Il y a "
- << buffer(plusGrandChiffre, plusPetiteMinuscule)
- << " caracteres dans le buffer" << endl;
- cout << "Le plus grand chiffre est: " << (char) plusGrandChiffre
- << endl;
- cout << "La plus petite minuscule est: " << plusPetiteMinuscule
- << endl;
- break;
- default: cout << "Saisie incorrecte" << endl;
- }
- /*----------------------------recommencer le programme?----------------------------*/
- cout << "Voulez-vous recommencer? Tapez 'O' ou 'o' : ";
- } while (repondOui(getchar()));
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement