Forum programmation
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Exercice Cinq Etoiles (A vos PC)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3  Suivant
AuteurMessage
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Exercice Cinq Etoiles (A vos PC)   Mer 21 Mar - 22:51

Il y'a trois façons d'écrire 10 sous la forme de somme de quatre entiers impairs choisis dans un ordre croissant pour éviter les répititions :
1 + 1 + 3 + 5 = 10
1 + 1 + 1 + 7 = 10
1 + 3 + 3 + 3 = 10

Faire un programme qui trouve et affiche toutes les façons d'écrire 20 sous la forme de 8 entiers naturels impairs.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 1:40

Je crois que j'ai réussi à faire un programme qui effectue cette tache, mais avant de psoter ma réponse je vous propose de me dire si l'éxecution est juste :



Revenir en haut Aller en bas
Voir le profil de l'utilisateur
benha21
utilisateur professionnel
utilisateur professionnel
avatar

Nombre de messages : 349
Age : 31
Date d'inscription : 28/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 1:55

J'ai 2 quetions pour chak:

  1. Il met combien de temps, ton programme à afficher le résultats?
  2. L'affichage est t-il au fure et mesure, ou tu stoque les valeurs puis tu les affichent à la fin?
Remarque : Je crois que j'ai fait cette exercice dans le livre d'informatique quand j'étais au bac.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://benha21.skyblog.com
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 2:07

L'affichage est instantané, et les valeurs sont stockées.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 13:07

Félicitation c'est bien ce qu'on demande...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 13:11

Mais avant de poster ton programme pourra-tu nous indiquer ton idée ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 13:33

salut chaker felecitation mon ami, mais je crois que manianis dit:

manianis a écrit:


Faire un programme qui trouve et affiche toutes les façons d'écrire 20 sous la forme de 8 entiers naturels impairs.



merci de le corriger
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 13:56

D'acord je vais expliquer mon idée :

  • D'abord j'ai pensé à faire un tableau qui contiendrai les entiers impaire inférieurs à 20.
  • Ensuite j'ai pensé à utiliser 8 compteurs pour trouver toutes les combinaisons possibles.
  • Mais un probléme s'est posé, comment vérifier si cette combinaison a déja été trouvé ou non ?
    Alors j'ai utilisé un tableau pour contenir les combinaisons trouvées sous la forme de chaines comme ceci : '11122235' et ces nombre représentes les indice dans le premier tableau.
  • J'ai aussi utilisé une procédure ajoute qui transforme les indices en une chaine, la trie et avant de l'ajouter vérifie son éxistance dans le tableau pour les combinaisons à l'aide d'une fonction existe.

Et je voulais ajouter que la remarque de Mohamed était juste et voici une capture d'écran aprés la correction :

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 13:57

Et aussi j'ai fait une procédure affiche qui retransforme les chaine en indices et affiche les résultats.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
makram
modérateur
modérateur
avatar

Nombre de messages : 549
Age : 28
Date d'inscription : 29/12/2006

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 15:04

merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 15:18

Ce dernier affichage est l'affichage correct. Je n'ai pas bien regardé le premier affichage pour remarquer les nombres pairs qui y sont.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 15:20

Et alors ma démarche est bonne ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 15:43

Ta méthode m'a donné un résultat exact sans utiliser de chaines de caractères :
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 15:46

Il n'y pas de uses wincrt dans mon programme.
Le Readln en fin de programme pour que la fenêtre de programme reste ouverte.

En effet j'utilise FreePascal.

Code:
program cinq_etoiles;
var c1,c2,c3,c4,c5,c6 : integer;
begin
  for c1:=6 downto 1 do
    for c2:=c1 downto 0 do
      for c3:=c2 downto 0 do
        for c4:=c3 downto 0 do
          for c5:=c4 downto 0 do
            for c6:=c5 downto 0 do begin
              if ((c1+c2+c3+c4+c5+c6) * 2 + 8 = 20) then
                Writeln(c1*2+1:3,'+',c2*2+1:3,'+',c3*2+1:3,'+',c4*2+1:3,'+',
                        c5*2+1:3,'+',c6*2+1:3,'+',1:3,'+',1:3, ' = ', 20);
            end;
    Readln;
end.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 15:49

Et ton programme à quoi il ressemble ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 15:51

Si cela te plait. J'ai un autre exercice encore plus difficile malgré les Quatre Etoiles que lui ont attribué dans le livre scolaire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 16:10

Il ressemble à 100 lignes de codes!

Ma premiére idée consistait à utiliser 8 boucles imbriquées en les mettant toutes de 1 à 7, mais avec cette méthode je n'ai pas pu éviter les répétitions.
Et à ce que je vois tu as sû jouer sur les bornes pour éviter les répétitions, et j'aimerais vraiment savoir pour quoi ces bornes là exactements ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 16:22

manianis a écrit:
Si cela te plait. J'ai un autre exercice encore plus difficile malgré les Quatre Etoiles que lui ont attribué dans le livre scolaire.


Un peu que ça me plait...
Vas-y je n'attend que ça.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 16:42

chakerbh a écrit:
Il ressemble à 100 lignes de codes!

Ma premiére idée consistait à utiliser 8 boucles imbriquées en les mettant toutes de 1 à 7, mais avec cette méthode je n'ai pas pu éviter les répétitions.
Et à ce que je vois tu as sû jouer sur les bornes pour éviter les répétitions, et j'aimerais vraiment savoir pour quoi ces bornes là exactements ?

Premièrement, tu n'as pas posté ton code. Je veux le contempler (le voir) s'il n'y a pas d'inconvénients bien sur...

Exercice Quatres Etoiles (Le voyageur de commerce)

Un commerçant ambulant doit visiter N villes. Il veut trouver une stratégie lui permettant de visiter chacune d'elles une seule fois, excepté la ville de départ (la seconde fois pour rentrer chez lui).
Ecrire une stratégie pour aider ce commerçant.

Indications :
Choisir à partir de chaque ville, la plus proche parmi les villes non visitées.
Les données sont : La liste des villes, les coordonnées de ces villes (Xi, Yi)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 16:49

Pourquoi j'ai utilisé ces boucles avec des bornes de la telle sorte ?
Eh bien. Un nombre impair est un nombre qui a la forme suivante :
2.k+1 (k est un entier relatif)
Dans notre exercice k minimale est 0 et k maximale est calculé de cette façon :
(20 - 8 * 1 = 12) / 2 = 6
D'ou la première boucle commencera (c1) de 6 jusqu'à 0
La deuxième boucle fournira des values <= c1 pour éviter par exemple de sélectionner le couple (c1, c2) = (5, 4) puis (4, 5) on remarquera que (5 > 4) d'ou le deuxième couple est inutile.

J'espère bien que tu as compris mon explication. S'il y'a un point non clair je serais ravi de l'expliquer...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 16:52

Tu sais quoi ? Le premier exercice que j'ai fournit sera plus utile si on le généralise càd
l'utilisateur sélectionne un nombre par exemple 30 et le programme devra chercher toutes les sommes de nombres impair formé de 12 chiffres cette fois qui permet de donner 30...
Pour 40 se sera la somme de 16 valeurs...etc.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 20:32

Pour ta proposiation sur le premier exercice, il ya une chose qu'on ne peut pas généraliser : c'est le nombre de compteurs, donc on peut juste faire une procedure qui calcule pour un nombre N formé de 12 chiffres et une autre qui calcule pour un nombre N formé de 16 chiffres...
Ce que je veux dire c'est que que le nombre de chiffres ne peut pas être généraliser car le nombre de compteurs dépend de lui, et à par ça le programme peut être généralisé.
Voici un exemple de procédure qui fait le calcule pour 12 chiffres :
Code:
procedure chiffre12(n:integer);
 var c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12:integer;
    max,nb:integer;
 begin
  max:=(n-11)div 2 - 1;
  nb:=0;
  for c1:=max downto 0 do
    for c2:=c1 downto 0 do
      for c3:=c2 downto 0 do
        for c4:=c3 downto 0 do
          for c5:=c4 downto 0 do
            for c6:=c5 downto 0 do
              for c7:=c6 downto 0 do
                for c8:=c7 downto 0 do
                  for c9:=c8 downto 0 do
                    for c10:=c9 downto 0 do
                      for c11:=c10 downto 0 do
                        for c12:=c11 downto 0 do
                          if (c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c12)*2 + 12 = n then
                            begin
                              inc(nb);
                              if nb<24 then
                                writeln(c1*2+1,' + ',c2*2+1,' + ',c3*2+1,' + ',c4*2+1,' + ',c5*2+1,' + ',c6*2+1,' + ',
                                      c7*2+1,' + ',c8*2+1,' + ',c9*2+1,' + ',c10*2+1,' + ',c11*2+1,' + ',c12*2+1,' = ',n)
                                else begin
                                        nb:=0;
                                        readln;
                                        clrscr;
                                      end;
                            end;
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 20:49

Non ce n'est pas ma solution c'est en effet la tienne puisque c'est ton idée d'utiliser plusieurs compteurs...

La solution surlaquelle j'ai travaillé et elle donne ses fruits utilise un tableau au lieu des compteurs.

Voici un exemple de l'affichage :


Elle fonctionne bien pour 10, 20, 30 et jusqu'à 200.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 106
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 20:57

Il faut changer
Code:

if (c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c12)*2 + 12 = n then

en

Code:
if (c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c12)*2 + 16 = n then

remarques que c'est +16 puisque tu fais la somme de 16 nombres.

Aussi : max = (n - 16) div 2
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   Jeu 22 Mar - 21:44

Merci pour l'explication Manianis.
Mais j'aimerais être sur que le nombre d'entiers impaires (8, 12 ou 16 ...) est constant et ne peut pas varier selon le l'entier saisi ?

J'ai essayé de faire le deuxième exercice, et je crois (si j'ai bien compris l'énoncé) que je suis arrivé à un résultat satisfesant. Donc je te demande de me donner une liste de 4 villes avec leurs coordonnées et je posterais une capture d'écran pour être sûr que c'est une bonne solution.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Exercice Cinq Etoiles (A vos PC)   

Revenir en haut Aller en bas
 
Exercice Cinq Etoiles (A vos PC)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivant
 Sujets similaires
-
» Exercice : faire une barre de scrolling
» Petit exercice autout du GRID
» "Etoiles" pour les grades forums.
» Exercice d'arpèges et d'accords sur Coldplay
» exercice: logiciel de dessin (+ zoom)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum programmation :: Programmation :: Delphi & Pascal :: Pascal :: Exercices-
Sauter vers: