#ifndef C_FONCTIONS.C
#define C_FONCTIONS.C

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#endif

int calcMoy()
{
    int int_note; //définition des variables
    int int_nbreNotes;
    int int_compteurNotes;
    int int_max;
    int int_min;
    int int_moy;
    printf("Combien de notes voulez-vous rentrer? \n");
    scanf("%d", &int_nbreNotes); //demande du nombre de notes à l'utilisateur
    printf("Rentrez une premiere note: \n"); //initialisation des différents calculs avec la première valeur
    scanf("%d", &int_note);
    int_max = int_note;
    int_min = int_note;
    int_moy = int_note;
    int_compteurNotes = 2;
    for(int_compteurNotes=2; int_compteurNotes <= int_nbreNotes; int_compteurNotes++) //boucle qui prend chacune des nouvelles valeurs
    {
        printf("\n Rentrez la note numero %d: \n", int_compteurNotes);
        scanf("%d", &int_note);
        int_moy += int_note; //ajout de la nouvelle valeur à la moyenne
        if(int_max<int_note) //comparaison au maximum
        {
            int_max = int_note; //renouvellement du maximum si nécessaire
        }
        if(int_min> int_note) //compraraison au minimum
        {
            int_min = int_note; //renouvellement du minimum si nécessaire
        }
    }
    int_moy = int_moy/int_nbreNotes; //calcul final de la moyenne
    printf("Le maximum des notes vaut %d. \nLe minimum vaut %d. \nLa moyenne vaut %d. \n", int_max, int_min, int_moy); //impression des résultats
    return 0;
}
int suiteGeo()
{
    int int_premierTerme; //définition des variables nécessaires
    int int_raison;
    int int_rang;
    int int_valeur;
    int int_compteur;

    printf("Forme de la suite: un+1 = un + r. \nRentrez u0: \n"); //de
    scanf("%d", &int_premierTerme);
    printf("Rentrez la raison: \n");
    scanf("%d", &int_raison);
    printf("Quel rang voulez vous calculer? \n");
    scanf("%d", &int_rang);
    int_valeur= int_premierTerme;
    for(int_compteur=1; int_compteur <= int_rang; int_compteur++)
    {
        int_valeur = int_valeur + int_raison;
        printf("La valeur de la suite au rang %d est u = %d \n", int_compteur, int_valeur);
    }
    return 0;
}



int pyramEtoile()
{
    int int_lignes;
    int int_espaces; //compteur d'espaces
    int int_etoiles; //compteur d'étoiles
    int int_compteur3; //premier compteur intermédiaire
    int int_compteur4; //second compteur intermédiaire
    int int_compteur5; //troisième compteur intermédiaire
    printf("Combien de lignes? \n");
    scanf("%d", &int_lignes); //lecture du nombre de lignes
    printf("Vous voulez %d lignes.\n", int_lignes);
    int_espaces = int_lignes - 1; //initialisation des compteurs
    int_etoiles = 1;
    for(int_compteur3= 1; int_compteur3<=int_lignes; int_compteur3++) //boucle générale des lignes
        {
            for(int_compteur4=1; int_compteur4<=int_espaces;int_compteur4++) //boucle pour les espaces de chaque ligne
            {
                printf(" ");
            }
            for(int_compteur5=1; int_compteur5<=int_etoiles; int_compteur5++) //boucle pour les étoiles sur chaque ligne
            {
                printf("*");
            }
            int_espaces -=1; //changement des nombres d'espaces et d'étoiles pour la ligne suivante
            int_etoiles += 2;
            printf("\n"); //passage à la ligne
        }


    return 0;
}

void devinette()
{
    int int_nombrePc; //nombre choisi par l'ordinateur
    int int_nombreUt; //nombre rentré par l'utilisateur
    int int_compteur; //compteur de tentatives
    srand(time(NULL)); //initialisation de la fonction rand
    int_nombrePc = rand()%99 +1; //génération du nombre aléatoire
    printf("Rentrez un chiffre entre 1 et 100: \n"); //initalisation de la demande utilisateur
    int_compteur=1;
    scanf("%d", &int_nombreUt);
    {
    do{
        if(int_nombreUt<int_nombrePc) // Condition si le nombre rentré est plus petit que le nombre à rentrer
        {printf("Faux. Rentrez un nombre plus grand. \n"); //demande du nouveau nombre
        scanf("%d", &int_nombreUt);
        }
        if(int_nombreUt>int_nombrePc) //condition si le nombre rentré est plus grand que le nombre à rentrer
        {
            printf("Faux. Rentrez un nombre plus petit. \n"); //demande du nouveau nombre
            scanf("%d", &int_nombreUt);
        }
        int_compteur++; //incrémentation du compteur d'essais
    }
    while(int_nombrePc!=int_nombreUt); //condition pour la boucle do
    }
    printf("Vous avez reussi en %d tentatives \n", int_compteur); //affichage du nombre de tentatives
}

int prodSomMax() //Petit programme facile pour tripoter deux entiers
{
    int int_entier1; //Déclaration des variables utiles
    int int_entier2;
    int int_prod;
    int int_som;
    int int_max;

    printf("Rentrer le premier entier:"); //Demande des valeurs à l'utilisateur
    scanf("%d", &int_entier1);
    printf("Merci. Rentrez le deuxième entier:");
    scanf("%d", &int_entier2);
    int_som = int_entier1 +int_entier2; //Calcul de la somme et du produit
    int_prod = int_entier1*int_entier2;
    if(int_entier1>int_entier2) //Calcul du max avec une structure conditionelle
    {
        int_max = int_entier1;
    }
    else
    {
        int_max =int_entier2;
    }
    printf("Max: %d \nProduit: %d \nSomme: %d", int_max, int_prod, int_som); //Affichage des résultats
    return 0;


}

int youpiOnAffichePleinDeChiffre() //erreur de programme: boucle infinie
{
    int int_heureDebut, int_heureFin, int_heure; //Déclaration des variables utiles
    int int_minutesDebut, int_minutesFin, int_minutes;
    int int_pas, int_dansIntervalle;

    do //Cette boucle conditionnelle do et les trois suivantes permettent de demander les informations utiles tant que les valeurs
    //entrées sont invalides
    {
        printf("\nHeure de début:\t");
        scanf("%d", &int_heureDebut);
    }while(int_heureDebut>23);

    do
    {
        printf("\nMinute de début: \t");
        scanf("%d", &int_minutesDebut);
    }while(int_minutesDebut>59);

    do
    {
        printf("\nHeure de fin: \t");
        scanf("%d", &int_heureFin);
    }while(int_heureFin>23);


    do
    {
        printf("\nMinute de fin: \t");
        scanf("%d", &int_minutesFin);
    }while(int_minutesFin>59);

    printf("\nSaisir le pas: \t");
    scanf("%d", &int_pas);

    printf("\nAffichage de l'heure de %d:%d a %d:%d avec un pas de %d \n", int_heureDebut, int_minutesDebut, int_heureFin, int_minutesFin, int_pas);

    int_heure= int_heureDebut; //Initialisation des variables
    int_minutes=int_minutesDebut;
    int_dansIntervalle=1; //Booléen fictif de réalisation de la boucle, initialisé à VRAI (=1)

    do //Boucle conditionnelle permettant l'affichage des heures:minutes.
    {
        if((int_heure<int_heureFin)||((int_heure==int_heureFin)&&(int_minutes<=int_minutesFin))) //Condition sur l'heure en cours
        //qui doit être inférieure à l'heure de fin
        {
            printf("%2d:%2d\n", int_heure, int_minutes); //Si elle est valide, affichage de l'heure
        }
        else{int_dansIntervalle=0;} //Changement de la valeur du booléen si on est arrivé à la fin
    int_minutes=int_minutes+int_pas; //Augmentation du nombre de minutes de la valeur du pas
    if(int_minutes>=60) //Si la nouvelle valeur des minutes est >=60, on rentre dans la condition
    {
        int_minutes=int_minutes-60; //Nouvelle valeur des minutes
        int_heure += 1; //Nouvelle valeur des heures (+1)
    }
    }while(int_dansIntervalle==1); //Condition de retour au début de la boucle
    return 0;
}

int tablMult() //Affichage d'une table de multiplication
{
   int int_nombre; //Déclaration des variables utiles
   int int_compteur;
    printf("De combien voulez-vous ecrire la table de multiplication? \n"); //Demande à l'utilisateur des variables d'entrée
    scanf("%d", &int_nombre);

    for(int_compteur=1; int_compteur <=10; int_compteur++) //Boucle itérative permettant l'incrémentation du multiplicateur
    {
        printf("%d x %d = %d \n", int_compteur, int_nombre, int_compteur*int_nombre); //Impression du résultat
    }
    return 0;
}


