Aller au contenu
Invité

Exercice de Programmation

Recommended Posts

Invité

Exercices de programmation

Alors voila l'idée sur ce poste est que tout le monde puisse proposer des exercices de programmation (C/C++, Java, html/css, php,...) pour s'amuser un peuje proposerai des exercice avec leur correction sur ce poste.biggrin.png

Ainsi dans la correction j'expliquerai les notions pouvant être intéressante, par exemple dans une horloge en C je vous expliquerai comment se servir des fonctions de time.h vu que dans le cours du site du zero cela n'est pas expliqué =)

Si vous voulez en poster vous devrez suivre se modèle :

Nom de l'exercice

Langage de programmation utilisé dans l'exercice : (C,C++,Java,...)


Difficulté : [De 1 à 10] (à vous de la définir en fonction du langage utilisé et de lalgorithme)

Lexercice : (informations et instructions pour réaliser l'exercice)

Correction : ( mettre dans un Spoiler pour ne pas gâcher le plaisir de trouver tout seul au lecteurwink.png)

Voila je commence tout de suite par un petit exercice simple :

Pierre, Feuille, Ciseaux ! Contre l'ordinateurbiggrin.png

Langage de programmation utilisé dans l'exercice:C

Difficulté: [1.5]

Lexercice: L'objectif de cet exercice sera de créer un pierre, feuille, ciseaux basique en C (en console). Vous connaissez tous le jeu le principe est de battre votre adversaire en ayant dit pierre si il a dit ciseaux, feuille si il a dit pierre,... le vainqueur et celui ayant dit le mot qui bat le mot de l'autre.

Voici les instructions:

- Lorsque nous démarrerons notre programme il devra être affiché un menu qui indiquera quelle nombre correspond à quelle mot (Exemple : Pierre = 1; Feuille = 2,..)

- Le programme devra ensuite demandé au joueur de choisir un nombre (donc si l'utilisateur veut dire Pierre il tapera 1).

- Le programme comparera ensuite le mot proposé par l'ordinateur et celui proposé par le joueur si le joueur à dit Pierre et que l'ordinateur à dit feuille alors l'ordinateur gagnewink.png

"Oui mais comment faire pour que l'ordinateur choisisse entre pierre,feuille et ciseaux ?"En faite c'est comme pour le joueur l'ordinateur va devoir choisir entre 1, 2 ou 3 pour ceci nous allons utiliser la fonctionSrandqui générera un nombre au hasard voici le code à utiliser :

srand(time(NULL));
MotOrdinateur = (rand() % (Max - Min + 1)) + Min; //Mot ordinateur sera la variable qui correspondra au choix de l'ordianteur

Pensez à définir les variable constante Max = 3 et Min = 1 (oui Min 1 et Max 3 car il n'y a que Pierre, Feuille et Ciseaux ^^)

Bon je pense vous avoir donné asse d'information, à vous de jouezwink.png

Correction:

Voici la solution que je vous propose :

/*
Pierre, feuille, ciseaux en console résalisé par Lyes.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main (int argc, char *argv [])
{
int choix_user = 0, choix_computer = 0;
const int MAX = 3, MIN = 1; //On définit les constante MAX et MIN qui vont nous servir pour le générateur de nombre aléatoire

//Générateur de nombre aléatoire

srand(time(NULL));
choix_computer = (rand() % (MAX - MIN + 1)) + MIN;

//Fin générateur de nombre aléatoire

printf("Infos :\n - 1 = Pierre\n - 2 = Feuille\n - 3 = Ciseaux\n\n Entrez le nombre corespondant a votre choix :");
scanf_s("%d", &choix_user);

if (choix_user == choix_computer) //Si le choix de l'utilisateur est = à celui de l'ordinateur alors c'est match nul
{
printf("\nMatch nul\n");
}

else if (choix_user == 1 && choix_computer == 3) //Si le joueur dit pierre et l'ordinateur dit ciseaux alors le joueur gagne
{
printf("\nL'ulisateur a dit pierre et l'ordinateur a dit ciseaux donc l'utilisateur gagne !\n");
}
else if (choix_computer == 1 && choix_user == 3) //Si le joueur dit ciseaux et l'ordinateur dit pierre alors l'ordinateur gagne
{
printf("\nL'ulisateur a dit ciseaux et l'ordinateur a dit pierre donc l'ordinateur gagne !\n");
}
else if (choix_user == 3 && choix_computer == 2) //Si le joueur dit ciseaux et l'ordinateur dit feuille alors le joueur gagne
{
printf("\nL'ulisateur a dit ciseaux et l'ordinateur a dit feuille donc l'utilisateur gagne !\n");
}
else if (choix_computer == 3 && choix_user == 2) //Si le joueur dit feuille et l'ordinateur dit ciseaux alors l'ordinateur gagne
{
printf("\nL'ulisateur a dit feuille et l'ordinateur a dit ciseaux donc l'ordinateur gagne !\n");
}
else if (choix_user == 2 && choix_computer == 1) //Si le joueur dit feuille et l'ordinateur dit pierre alors l'utilisateur gagne
{
printf("\nL'ulisateur a dit feuille et l'ordinateur a dit pierre donc l'utilisateur gagne !\n");
}
else if (choix_computer == 2 && choix_user == 1) //Si le joueur dit pierre et l'ordinateur dit feuille alors l'ordinateur gagne
{
printf("\nL'ulisateur a dit pierre et l'ordinateur a dit feuille donc l'ordinateur gagne !\n");
}
else
{
printf("\nErreur !\n");
}

return 0;
}

Bon c'était pas trop dur ? Si vous y êtes arrivé vous pouvez maintenant apporter des modification au programme :

- Faire un multi-joueur

- Proposer de rejouer

- Laissez libre cour à votre imaginationtongue.png

Pile ou Face !

Langage de programmation utilisé dans l'exercice:C

Difficulté: [1]

L'exercice: Réaliserun pile ou face en C(dans la console sa sera plus simple)

Voici les instructions: Vous devrez vous servir de la fonctionSrandque je vous ai donné pour lePierre, Feuille, Ciseaux.

Le programme devra généreraléatoirementun nombre 1 ou 0, une condition nous permettra d'afficher si c'est pile ou si c'est face (Indice : utilisez lesbooléens).

Attention à bien inclure time.h !

Un joli petit programme pas trop dur pour faire le kéké devant les copainswink.png

Correction:

Voici la solution proposée par @Dragorn421 :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void pileOuFace()
{
srand(time(NULL));
do {
printf(rand()%2==0?"Pile !":"Face !");
} while(getchar() == '\n');//s'arrête quand on entre autre chose que entrée
}

Le Juste Prix !

Langage de programmation utilisé dans l'exercice:C

Difficulté: [2]

Voici le nouvel exercice:

Après une longue période d'absence je reviens avec une série d'exercice plus fous les uns que les autres (ok bon pour le moment c'est pas très fous mais on va vite corser le niveautongue.png).

Bien lexercice d'aujourd'hui aura pour but de créer un"Juste Prix"inspiré de la phase final du célèbre jeu.C'est à dire que nous devrons deviner un nombre mystère comprit entre 0 et 50 000.

Vous êtes intéressé ? Alors passons sans plus attendre aux instructions =)

Voici les instructions:

Pour commencer, il faut que nous nous mettions d'accord sur ce que notre programme devra faire et comment il va le réaliser. C'est pourquoi je vais vous donner des instructions asse minimaliste, en d'autre termes les règles du jeu avec quelques informations supplémentaires.

Contrairement à d'habitude vous allez passer par uneétape importante, vous allezrédiger l'algorithmeà l'aided'un papier et d'un crayonsavant de le programmer.

Pourquoi faire ceci ?Parce que cela vous permettra de structurer votre code et de prendre de bonne habitude en programmation. Ainsi à l'aide d'un algorithme bien conçu, vous saurez ce que vous devez inclure au programme et surtout comment vous allez le mettre en place. Bien sur après c'est à vous de voir comment limplémenter selon le langage.

Comprenez que c'est d'une importance capital pour réaliser un code propre et organisé !wink.png

Passons aux instructions :

- Tout d'abord nous afficherons le titre du jeu(tout de même il ne faudrait pas qu'un utilisateur étourdit ne sache pas ce qu'est notre programme, de plus cela vous permettra de vous souvenir de ce qu'est le programme si jamais vous décidez d'y jeter un coup dil plusieurs mois après sa réalisation).

- Lordinateur devra commencer pargénérerun nombre compritentre 0 et 50 000, pour cela referez vous à la fonctionsranddu"Pierre, feuille, ciseaux !"que vous trouverez plus haut.

- Ensuite nous demanderons à l'utilisateur d'entrer un nombre.

- Si le nombre entré estinférieurau nombre mystère alors afficher "C'est plus !", sinon si il estsupérieuralors afficher "C'est moins !"

- Nous répéterons donc ces instructionstant quele nombre entré sera différent de celui généré par l'ordinateur.

- Une fois le nombre mystère trouvé par l'utilisateur, nous afficherons un message du type : "Félicitation vous avez trouvé le Juste Prix !"

Idées d'améliorations:

- Créer un Multi-joueur (sera traité lors du live sur live coding)

- Réaliser un compteur qui s'incrémente à chaque essai de l'utilisateur)

- Pourquoi pas créer une fonction vide qui affichera les règles (donc on créera également un menu pour naviguer entre les différentes fonctions du programmes)

- Enfin, laissez libre cour à votre imagination, l'idée étant de sentraîner !

Prochainement :

Trouver le "Juste Prix" le plus rapidement possible !

Langage de programmation utilisé dans l'exercice:C

Difficulté: [1] (Ici c'est avant tout un exercice d'algorithmique donc il est possible que je vous laisse trouver la solution comme des grandstongue.png)

Voici le nouvel exercice: Prochainement !

Voici les instructions: Prochainement !

La suite de Leibniz !

Langage de programmation utilisé dans l'exercice:C

Difficulté: [3]

Voici le nouvel exercice: Prochainement !

Voici les instructions: Prochainement !

Discriminant et équation de degré 2 !

Langage de programmation utilisé dans l'exercice:C

Difficulté: [2.5]

Voici le nouvel exercice: Prochainement !

Voici les instructions: Prochainement !

Problème de math sur les chaîne TV !

Langage de programmation utilisé dans l'exercice:C

Difficulté: [4] (Attention ici limplémentions est simple mais l'algorithme est dur pour les débutant !)

Voici le nouvel exercice: Prochainement !

Voici les instructions: Prochainement !

Exercice sur les suites !

Langage de programmation utilisé dans l'exercice:C

Difficulté: [2] (Ici je vous donnerez lénoncé et vous ferez tout tout seul)

Voici le nouvel exercice: Prochainement !

Voici les instructions: Prochainement !

Ps : Si vous n'avez pas compris quelque choses dites le moi je vous l'expliquerai

Exercice aussi disponible sur mon forum à cette adresse :http://bestgaming.fr/forum/threads/exercice-de-programation.277/

Faire un don :

btn_donateCC_LG.gif

Modifié par Lyes

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

Super !

Je peux faire les exercices en batch ou vbs ? Je n'y touche rien en C ou Java ^^'

Bien sur :P précise juste quel langages que tu utilises et le niveau de difficulté de l'exercice :P

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

Bonjour tout le monde,

J'avais laissé ce sujet un peu à l'abandon à cause des cours mais je compte bientôt faire de nouveaux exercices, tirés en parti de mes cours de math et de mes délires de S :P

Donc je devrais sortir une série de nouveaux exercices la semaine prochaine (si c'est pas le cas vous hésitez pas à me spammer sur Skype ou/et par MP).

Il y aura des exercices sur les suites comme celle de Leibniz (pour calculer PI), les tableaux, les chaîne de caractères, le préprocesseur (je vous le cache pas #define pour créer le true/false de Java en C c'est pas exaltant mais bon ^^),....

Ah je vous donnerez comme promis le juste prix =)

Bonne journée :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×