Partage
  • Partager sur Facebook
  • Partager sur Twitter

Des idées

pour débuter..

    8 décembre 2005 à 21:21:34

    Salut,

    Voila au début quand j'ai commencé à programmer (y'a pas si longtemps), je ne trouvais jamais quoi faire pour m'entrainer, donc ce topic pourrait servir à donner des idées de programmes à faire pour s'ameliorer donc deja je propose quelques idées:
    _ Une mini calculatrice ( + - * / Racines carrés et Carrés)
    _ Une convertisseur (€/fr ou bien encore Degrès farenheit en Celcius)
    _ De l'algorithme apprit en cours genre l'algorithme d'euclide
    _ Un pierre ciseau feuille
    _ Un ptit morpion avec intelligence artificielle(alors celui la je vous garantit que vous allez vous ameliorer ne perdez surtout pas courrage le résultat serra très positif)

    Sur ceux bonne chance a tous ;)
    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2005 à 21:46:28

      <citation= moi>
      #include <stdio.h>
      #include <stdlib.h>

      int essai(int argc, char *argv[])
      {
      long result1=0,result2=0,result3=0,result5=0,result6=0,result7=0,nombre1=0,nombre2=0;
      printf("entrer un nombre :");
      scanf("%ld", &nombre1);
      printf("entrer un autre nombre :");
      scanf("%ld", &nombre2);

      result1 = nombre1 + nombre2;
      result2 = nombre1 - nombre2;
      result3 = nombre1 * nombre2;

      result5 = nombre1 * nombre1;
      result6 = nombre1 * nombre1 * nombre1;
      result7= pow(nombre1, nombre2);


      printf(" %ld + %ld= %ld\n",nombre1,nombre2,result1);
      printf(" %ld - %ld= %ld\n",nombre1,nombre2,result2);
      printf(" %ld * %ld= %ld\n",nombre1,nombre2,result3);

      printf(" %ld ^2= %ld\n",nombre1,result5);
      printf(" %ld ^3= %ld\n",nombre1,result6);
      printf(" %ld ^%ld= %ld\n",nombre1,nombre2,result7);


      system("PAUSE");
      return 0;
      }
      </citation>

      voici une calculatrice sommaire un peu bizarre peu claire ... mais bon c'est
      tout de même une calculette!!
      particularité désolé elle fait pas racine mais exponentielle + carré
      et cube!
      c'est le premier chiffre qui est utilisé pour le carré et le cube!

      voilà !!

      sinon c'est une bonne idée ...
      j'essayerais de faire d'autres petits programmes comme cela ...

      • Partager sur Facebook
      • Partager sur Twitter
        8 décembre 2005 à 22:07:57

        J'ai commencé (enfin j'avais déja appris quelques trucs avant mais bon :p ) avec les cours du SDZ, mon petit projet actuel est un programme créant des grilles de sudoku (pour ceux qui connaissent :p)
        Ca implique beaucoup beaucoup de tests et vérifications mais bon je m'en tire pas mal pour l'instant :)

        Mon prochain projet serait un solveurs de grilles de sudoku, mais ca implique de réfléchir a l'algorythme avant sur papier, parsque les premiers essais que j'ai pu tirer étaient super lourds donc tres peu efficaces. J'attendrais un peu pour ca donc ;)

        A noter que comme projet pour tout le monde ici le créateur de grille est *relativement* simple a faire (il suffit de savoir manier le if et le rand() ), donc plutot que de tous faire des calculettes essayez ca ;)
        • Partager sur Facebook
        • Partager sur Twitter
          9 décembre 2005 à 15:37:26


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

          int main(int argc, char *argv[])
          { 
          long choix, nombre1, nombre2, resultat; //on creer les variable
          choix = 0; nombre1 = 0; nombre2 = 0; resultat = 0;
          printf("Choissiser une operation \n *1* une addition\n *2*une soustraction \n *3* une multiplication \n *4* une division \n");
          scanf("%ld",&choix);// on choisis l'opération que l'on veut faire
          system("cls"); //on efface l'écran
          if (choix == 1) //on regarde ce qu'a choisis l'utilisateur comme choix
          {
          printf("Choissisez votre 1er nombre :"); //on lui dit de choisir sont premier nombre
          scanf("%ld", &nombre1);
          printf("\nVous avez choisis comme nombre %ld\n", nombre1);//on lui redonne sont premier nombre
          printf("\nChoissisez votre 2eme nombre :");//on lui fait choisir sont 2éme nombre
          scanf("%d", &nombre2);
          printf("\nVous avez choisis comme nombre %ld\n\n", nombre2);//on lui redonne sont 2eme nombre
          system("pause");
          resultat = nombre1 + nombre2;// on fait le cacul
          printf("Votre resultat est %ld + %ld = %ld\n", nombre1, nombre2, resultat);//on qffiche le resultat
          system("pause");
          }
          if (choix == 2)
          {
          printf("Choissisez votre 1er nombre :");
          scanf("%ld",&nombre1);
          printf("\nVous avez choisis comme nombre %ld\n", nombre1);
          printf("\nChoissisez votre 2eme nombre :");
          scanf("%ld", &nombre2);
          printf("\nVous avez choisis comme nombre %ld\n", nombre2);
          system("pause");
          resultat = nombre1 - nombre2;
          printf("Votre resultat est %ld - %ld = %ld\n", nombre1, nombre2, resultat);
          system("pause");
          }
          if (choix == 3)
          {
          printf("Choissisez votre 1er nombre :");
          scanf("%ld", &nombre1);
          printf("\nVous avez choisis comme nombre %ld\n", nombre1);
          printf("\nChoissisez votre 2eme nombre :");
          scanf("%ld", &nombre2);
          printf("\nVous avez choisis comme nombre %ld\n\n", nombre2);
          system("pause");
          resultat = nombre1 * nombre2;
          printf("Votre resultat est %ld * %ld = %ld\n", nombre1, nombre2, resultat);
          system("pause");
          }
          if (choix ==4)
          {
          printf("Choissisez votre 1er nombre :");
          scanf("%ld", &nombre1);
          printf("\nVous avez choisis comme nombre %ld\n", nombre1);
          printf("\nChoissisez votre 2eme nombre :");
          scanf("%ld", &nombre2);
          printf("\nVous avez choisis comme nombre %ld \n \n", nombre2);
          system("pause");
          resultat = nombre1 / nombre2;
          printf("Votre resultat est %ld / %ld = %ld\n", nombre1, nombre2, resultat);
          system("pause");
          }
          if (choix >4)
          {
          printf("Il faut savoir lire dans la vie lol retente ta chance \n\n");
          system("pause");
          }
          else
          {
          system("cls"); //on efface ce qu'il ya avant
          printf("Merci d'avoir utiliser cette caculette aurevoir\n");//message de fin
          choix = 0, nombre1 = 0, nombre2 = 0, resultat = 0; //on remet les variable a 0
          system("pause");
          return 0; //on quitte le programme
          }
          }

          Voila une calculette mais bon elle fait pas encore les puissance ni la racine je vais mit mettre.
          • Partager sur Facebook
          • Partager sur Twitter
          Oalley.fr une carte intelligente pour se déplacer et se retrouver !
          Anonyme
            9 décembre 2005 à 16:03:24

            Citation : Octet

            _ Un pierre ciseau feuille
            _ Un ptit morpion avec intelligence artificielle(alors celui la je vous garantit que vous allez vous ameliorer ne perdez surtout pas courrage le résultat serra très positif)

            A ce propos, notez que faire une IA pour le morpion est 1000x moins complexe qu'en faire une pour feuille-cailloux-ciseau :)
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              9 décembre 2005 à 20:14:42

              Je suis pas sur .Tu assigne un numero pour pierre,un pour papier , un autre pour ciseau .Tu fasi un random.Tu arrondis.Tu dis ce qua joue le pc .LE jeu est un jeu de hasard.Il nimplique donc "aucune" vrai IA
              • Partager sur Facebook
              • Partager sur Twitter
                9 décembre 2005 à 23:17:53

                Citation : po2yaourt


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

                int main(int argc, char *argv[])
                { 
                long choix, nombre1, nombre2, resultat; //on creer les variable
                choix = 0; nombre1 = 0; nombre2 = 0; resultat = 0;
                printf("Choissiser une operation \n *1* une addition\n *2*une soustraction \n *3* une multiplication \n *4* une division \n");
                scanf("%ld",&choix);// on choisis l'opération que l'on veut faire
                system("cls"); //on efface l'écran
                if (choix == 1) //on regarde ce qu'a choisis l'utilisateur comme choix
                {
                printf("Choissisez votre 1er nombre :"); //on lui dit de choisir sont premier nombre
                scanf("%ld", &nombre1);
                printf("\nVous avez choisis comme nombre %ld\n", nombre1);//on lui redonne sont premier nombre
                printf("\nChoissisez votre 2eme nombre :");//on lui fait choisir sont 2éme nombre
                scanf("%d", &nombre2);
                printf("\nVous avez choisis comme nombre %ld\n\n", nombre2);//on lui redonne sont 2eme nombre
                system("pause");
                resultat = nombre1 + nombre2;// on fait le cacul
                printf("Votre resultat est %ld + %ld = %ld\n", nombre1, nombre2, resultat);//on qffiche le resultat
                system("pause");
                }
                if (choix == 2)
                {
                printf("Choissisez votre 1er nombre :");
                scanf("%ld",&nombre1);
                printf("\nVous avez choisis comme nombre %ld\n", nombre1);
                printf("\nChoissisez votre 2eme nombre :");
                scanf("%ld", &nombre2);
                printf("\nVous avez choisis comme nombre %ld\n", nombre2);
                system("pause");
                resultat = nombre1 - nombre2;
                printf("Votre resultat est %ld - %ld = %ld\n", nombre1, nombre2, resultat);
                system("pause");
                }
                if (choix == 3)
                {
                printf("Choissisez votre 1er nombre :");
                scanf("%ld", &nombre1);
                printf("\nVous avez choisis comme nombre %ld\n", nombre1);
                printf("\nChoissisez votre 2eme nombre :");
                scanf("%ld", &nombre2);
                printf("\nVous avez choisis comme nombre %ld\n\n", nombre2);
                system("pause");
                resultat = nombre1 * nombre2;
                printf("Votre resultat est %ld * %ld = %ld\n", nombre1, nombre2, resultat);
                system("pause");
                }
                if (choix ==4)
                {
                printf("Choissisez votre 1er nombre :");
                scanf("%ld", &nombre1);
                printf("\nVous avez choisis comme nombre %ld\n", nombre1);
                printf("\nChoissisez votre 2eme nombre :");
                scanf("%ld", &nombre2);
                printf("\nVous avez choisis comme nombre %ld \n \n", nombre2);
                system("pause");
                resultat = nombre1 / nombre2;
                printf("Votre resultat est %ld / %ld = %ld\n", nombre1, nombre2, resultat);
                system("pause");
                }
                if (choix >4)
                {
                printf("Il faut savoir lire dans la vie lol retente ta chance \n\n");
                system("pause");
                }
                else
                {
                system("cls"); //on efface ce qu'il ya avant
                printf("Merci d'avoir utiliser cette caculette aurevoir\n");//message de fin
                choix = 0, nombre1 = 0, nombre2 = 0, resultat = 0; //on remet les variable a 0
                system("pause");
                return 0; //on quitte le programme
                }
                }


                Voila une calculette mais bon elle fait pas encore les puissance ni la racine je vais mit mettre.



                Pourquoi tu ne prends pas le 1er nombre et le 2eme nombre est les mettre dans des variables est c'est apres que tu fais les condition ? tu vas economisez des ligne non ^^ ?
                • Partager sur Facebook
                • Partager sur Twitter
                  9 décembre 2005 à 23:49:44

                  Sudoku :

                  Tu parcours la grille.
                  Sur la premiere case vide rencontrée, tu mets un 1.
                  Si le placage de ce chiffre est impossible, tu incrémente et tu reessaie.
                  Une fois le chiffre placé, tu passe à la case vide suivante.
                  Si tu dois incrémenter un 9, tu supprime ce 9 et tu incrémente le chiffre placé precedement.

                  Pour chaque case :
                  Tu dois pouvoir savoir si elle est forcée par le problème ou si elle est à remplir par le joueur.
                  Tu dois savoir à quel point tu en es sur chaque case à remplir.
                  Tu dois savoir passer à la case suivante et à la case précedente.
                  Tu dois savoir tester si un chiffre que tu ajoute entre en contradiction avec une des 3 regles du jeu (ligne, colonne, sous-carré).

                  A partir de la, un programme qui te résoud une grille ne devrait pas être compliqué à écrire :D
                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 décembre 2005 à 10:02:02

                    Bas le morpion c'est un super truc pour progresser. Je suis entrain d'en faire un avec de l'aide (merci à lui en passant).
                    Y'a puissance 4 qu'est pas mal aussi. Et la suite de fibonnaci :lol:
                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 décembre 2005 à 10:57:48

                      Wah Mackila merci je vais voir si j'arrive a comprendre comment ca peut marche :D
                      J'avais pas pensé a la possibilité de mettre un numéro et APRES de tester si c'est possible quitte a modifier la valeur apres :)
                      Piste a suivre :p
                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 décembre 2005 à 15:03:00

                        Je débute en C donc j'ai fais quelques programmes (calcul avec PI si vous avez une fonction qui donne la valeur exacte je prend ^^).

                        J'ai realisé le convertisseur de €uros a Francs, j'espère que c'est correct en tout cas ça marche et j'ai mis des commentaires :)
                        J'ai fais ça en 20mn.

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

                        int main(int argc, char *argv[])
                        {
                          /* On déclare les 2 variables, le coût de l'euro et le nombre d'euros a
                          convertir. */

                          double euro = 6.55957, nombreEuros = 0;
                          // Petite introduction sur le programme et on demande la valeur a convertir.
                          printf("\n\tBienvenue dans le convertisseur Euros / Francs v1 (par Kr00pS)."
                          "\n\tVeuillez entrer votre valeur en Euros : ");
                          scanf("%lf", &nombreEuros);
                          // Déclaration de la variable qui convertie les Euros en Francs.
                          double nombreFrancs = nombreEuros * euro;
                          // Affichage du résultat de la convertion.
                          printf("\tDonc, %.2lf euros est egal a %.2lf francs."
                          , nombreEuros, nombreFrancs);
                          // Message de fin, le programme se met en pause.
                          printf("\n\tMerci d'avoir utilise ce programme ^^\n\n\t");
                          system("PAUSE");
                          return 0;
                        }


                        Voilà :)
                        Merci pour ton idée ^^
                        Kr00pS
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          10 décembre 2005 à 16:50:25

                          Citation : Davidbrcz

                          Je suis pas sur .Tu assigne un numero pour pierre,un pour papier , un autre pour ciseau .Tu fasi un random.Tu arrondis.Tu dis ce qua joue le pc .LE jeu est un jeu de hasard.Il nimplique donc "aucune" vrai IA

                          N'importe quoi, ça. La programmation d'une IA pour une compétition de feuille cailloux ciseau est quelque chose d'extrêmement pointu et difficile.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 décembre 2005 à 17:08:11

                            pourquoi ca serait compliqué ??
                            je vois pas franchement. je trouve bcp plus compliqué de faire une IA qui fais des choix en fonction de tes mouvements et en faisant de temps à autre des erreurs pour ne pas être imbatable plutot qu'une IA qui choisit aléatoirement entre feuille caillou et ciseau.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              10 décembre 2005 à 17:29:50

                              Citation : Neodyme

                              une IA qui choisit aléatoirement entre feuille caillou et ciseau.

                              Une telle IA est stupide, tu sais :) ou alors c'est IA pour Imbécilité Artificielle :D
                              Tenez, jetez un coup d'oeil ici : http://www.cs.ualberta.ca/~darse/rsb-results1.html
                              Il n'y a que des pro de l'informatique spécialisés en IA qui y ont participés. Je vous mets au défi de comprendre leurs algo ou leurs stratégies de jeu ;)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                10 décembre 2005 à 17:45:52

                                ...là je suis bluffé... je pensais pas qu'il y ait besoin de faire qqchose de bien compliqué.

                                comment je fais pour créer une IA ? cous connaitriez pas un site ou c'est expliqué ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  15 décembre 2005 à 21:45:52

                                  Salut ! Je remonte ce topic de 5 jours mais cest pas grave, j'en suis fier ;)

                                  Je voulais dire que la technique de Mackila m'avait intéressé, alors je l'ai exploitée et j'ai réussi a finir le programme (enfin une version des nombreux programmes de ce genre qu'il doit exister :p ) en C++ qui permet de résoudre la grille du sudoku de 9*9, avec des cases imposées ou non.

                                  J'ai pensé qu'il était bon de vous le montrer pour avoir des commentaires ou pour que d'autres s'en inspirent, alors le voila :

                                  Le fichier.cpp
                                  Le .exe

                                  Normalement le code devrait être portable (j'ai bien dis normalement), et si il ne l'est pas, j'attends vos conseils ;)

                                  Merci à vous tous !
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    15 décembre 2005 à 23:02:33

                                    Tiens j'ai pas oublié cette idée :D mais j'ai un peu arreté depuis mon dernier post.
                                    En fait j'avais codé tout un générateur de sudoku, sauf que je me suis rendu compte que j'avais oublié un facteur important ce qui faisait que le programme ne marchait qu'une fois sur deux.

                                    Je vais retenter pendant ces vacances de faire un solveur de sudoku (en C, le C++ spa pour moi tant que les cours seront pas sortis ;) ).

                                    Je rajouterais un truc a la méthode de Mackila : Avant de se lancer directement dans les hypothèses (cad mettre la valeur 1 ou incrémenter etc ... ) on peut commencer par vérifier qu'il n'y a pas de solutions évidentes , cad s'il n'y a pas une ligne ou il ne manque qu'un chiffre. Ca permet d'avoir plus de chiffres dont on est "surs" avant de se lancer dans les hypothèses donc ca pourrait peut etre accelerer un peu le programme non ? (remarquez a cette vitesse on verra peut etre pas la différence ... )
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      15 décembre 2005 à 23:38:04

                                      Vous voulez une idée de ce qu'on fait ?

                                      Faites un programme qui écrit un nombre que vous mettez en paramettre en chiffre et qui le réécris en lettre.

                                      En francais correct avec la gestion des tirets en allant de 2 000 000 000 a - 2 000 000 000

                                      exemple : 248

                                      retournera : deux-cents quarante-huit

                                      Bon courrage.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        15 décembre 2005 à 23:38:59

                                        Ah tiens j'avais jamais pensé à ça.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          16 décembre 2005 à 16:45:15

                                          Citation : Astarlin

                                          Vous voulez une idée de ce qu'on fait ?

                                          Faites un programme qui écrit un nombre que vous mettez en paramettre en chiffre et qui le réécris en lettre.

                                          En francais correct avec la gestion des tirets en allant de 2 000 000 000 a - 2 000 000 000

                                          exemple : 248

                                          retournera : deux-cents quarante-huit

                                          Bon courrage.

                                          1. C'est qui 'on' ? Quand tu dis ce qu'"on" fait.
                                          2. C'est facile à faire, ça. Autant en C qu'en php... tu trouves pas?
                                          Question subsidiaire 3. Au sujet du 'on', si c'est toi, t'as un phare?
                                          :D
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            16 décembre 2005 à 17:24:31

                                            Citation : Victor

                                            1. C'est qui 'on' ? Quand tu dis ce qu'"on" fait.
                                            2. C'est facile à faire, ça. Autant en C qu'en php... tu trouves pas?
                                            Question subsidiaire 3. Au sujet du 'on', si c'est toi, t'as un phare?
                                            :D



                                            Tant de questions inutiles...

                                            Pour le on je ne me mettais pas dedans puisque je l'ai deja fait...

                                            Sinon si tu trouve ca "facile" c'est peut etre parceque tu n'es plus débutant. Dans ce cas je t'invite a relire le titre du sujet car ce message ne t'était pas adressé dans ce cas ;)
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              16 décembre 2005 à 18:05:21

                                              Pour ceux qui s'interesse au solveur de sudoku, je l'ai fait.
                                              J'ai implémenté 2 algo. Le premier, le plus simple, parcourt tout le tableau, et pour chaque case, il regarde s'il n'y a qu'un chiffre possible. Si oui, il le met, sinon, il passe à la case suivante. Une fois qu'il a parcouru tout le tableau, il regarde s'il a fait des modif, et si oui, il refait un passage, sinon, il s'arrête. C'est rapide, mais ça me marche qu'avec les sudoku simple... :euh:

                                              Pour le 2ème, c'est une fonction recursive, qui teste toutes les possibilité (comme un brute-force). Ca à l'avantage de marcher avec tous les sudoku (même avec les 4/4). Par contre, c'est lent, très lent. Je l'ai compilé pour ma TI Voyage 200, et le record de lenteur, c'est 2m 30..

                                              La fonction recursive est super-courte, parcontre:

                                              int brute_force(int position)
                                              {
                                                  while(mask[position] && position < 81)
                                                  {
                                                      position++;
                                                  }
                                                  /*printf("Debut Brute-force (position: %d)\n", position);*/
                                                  int i;
                                                  for(i=1;i<10;i++)
                                                  {
                                                      /*printf("    Test de possibilite: %d (position: %d)\n", i, position);*/
                                                      if(is_possible(position, i))
                                                      {
                                                          grille[position] = i;
                                                          /*printf("Possibilite validee: %d (position: %d)\n", i, position);*/
                                                          /*print_sdk();*/
                                                          /*system("PAUSE&quot;);*/
                                                          if(brute_force(position+1) || !cases_vides())
                                                          {
                                                              return(1);
                                                          }
                                                          /*printf("::Suppression de la solution (position: %d)\n", position);*/
                                                          grille[position] = 0;
                                                      }
                                                  }
                                                  return(0);
                                              }


                                              Les commentaires, c'était pour le débug (je vous raconte pas comme c'est le b****l de débugger une fonction recursive :colere: )

                                              Ah oui, et le tableau "mask", c'est juste un tableau d'int pour savoir quelles sont les valeurs fixes, et lesquelles il faut chercher. (si la valeur est fix, mask[position]=1, sinon mask[position]=0)
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Anonyme
                                                16 décembre 2005 à 22:45:24

                                                "c'est 2m 30.. "
                                                -> Moi je mets trois heures sur un "facile" alors tu sais ^^

                                                *je sors*
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  17 décembre 2005 à 13:42:01

                                                  Je parlais de la vitesse de résolution avec mon algo sur ma TI ^^
                                                  (TI = Calculatrice graphique scientifique Texas Instruments élaborée et compliquée qu'on peut programmer en C et en BASIC)

                                                  Et d'ailleurs, cet algo, je l'ai fait parce que j'ai jamais réussi à finir un sudoku :D
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Des idées

                                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                  • Editeur
                                                  • Markdown