begin process at 2012 05 29 05:28:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

mardi 7 février 2006 à 17:16:33 | EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

kamis

Un carré maigique de taille n est un arrangement en carré des nombres 1,2,3,4,5..., n² tel que si l'on effectue la somme des éléments d'une ligne, d'une colonne ou de l'une des 2 diagonales, on obtienne toujours la même valeur. Le dessin suivant represente un carré magique de taille5.

15

8

1

24

17

16

14

7

5

23

22

20

13

6

4

3

21

19

12

10

9

2

25

18

11

Un carré peut être representé par un tableau C à deux dimensions:
1. Formuler en fonction de n la valeur constante de la somme des éléments d'une ligne, d'une colomme ou d'une diagonale.
2. Formuler les relations caracterisant un carré maigique.
3. Ecrire un programme C++ qui verifie si C est magique (C et n sont supposés donnés). On vérifiera notamment que tous les éléments de C sont dans l'intervalle [1...n²] et qu'ils sont tous distincts.

NB: -On produira un texte de l'analyse du problème avant la codification
       -On utilisera des sous programmes

mardi 7 février 2006 à 17:22:30 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

ymca2003

Réponse acceptée !
1 ) Quel est le problème ?
2 ) En quoi est-ce urgent ?
mardi 7 février 2006 à 22:08:35 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

Gendal67

Réponse acceptée !

1 ) Il ne sait pas comment faire ou il veut gagner du temps et pas se fatiguer
2 ) C'est un travail "mensuel" comme précisé dans le titre, donc pas à rendre fin de l'année

1. Essaie déja au taton avec n = 2, n = 3, n = 4 et essaie de conjecturer. Fais ensuite un prog qui utilise cette conjecture pour remplir un tableau avec n fixé et vérifie que ta conjecture tient toujours.

2. Aucune idée
3. Suffit de calculer et pour la vérification, aucun souci

mardi 7 février 2006 à 22:36:31 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

Gendal67

Réponse acceptée !

Ton exercice m'a plu alors je l'ai fais :

1. somme d'une suite arithmétique de raison r = 1 => somme de tous les éléments du tableau : ( n² ( 1 + n² ) ) / 2
Donc par ligne, par colonne, ou par diagonale, ça donne : ( n² ( 1 + n² ) ) / 2n

2. Soient 5 nombres a, b, c, d, e appartenant à l'intervalle [1...n²].
On a, pour chaque ligne, chaque colonne, chaque diagonale : a + b + c + d + e = ( n² ( 1 + n² ) ) / 2n

C'est incomplet je sais, mais jvois pas quoi rajouter de plus...

3.

bool AllInIndex(int** c, int n) {

 register int i, j;

 for( i = 0; i <= (n-1); i++)
  for( j = 0; j <= (n-1); j++)
   if( (c[i][j] < 1) || (c[i][j] > n*n) ) return false;

 return true;
}

bool isMagic(int** c, int n) {

 if( !AllInIndex(c,n) ) return false;

 // Application de la formule pour calculer la constante 
 const UINT uCte = (n*n * (1 + n*n)) / (2 * n);

 // Vérification si le tableau est magique ou non
 UINT uValue = 0;

 // d'abord les lignes
 register int i, j;

 for(i = 0; i <= (n-1); i++) {

  for(j = 0; j <= (n-1); j++)
   uValue += c[i][j];

  if( uValue != uCte ) return false;
 }

 uValue = 0;

 // now les colonnes
 for(i = 0; i <= (n-1); i++) {

  for(j = 0; j <= (n-1); j++)
   uValue += c[j][i]; // c'est ici le seul changement 

  if( uValue != uCte ) return false;
 }

 uValue = 0;

 // puis les diagonales
 
 for(i = 0; i <= (n-1)
  uValue += c[i][i];

 if(uValue != uCte) return false;
 uValue = 0;

 for(j = 0; j <= (n-1); j++)
  uValue += c[n-i][n-i];

 (uValue == uCte) ? return true : return false;
}

J'ai fais ça sans aucun test, donc essaie et dis moi si ça marche ou si j'ai omis quelque chose

Bonne soirée

mardi 7 février 2006 à 22:39:52 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

Gendal67

Réponse acceptée !

Oui, j'ai oublié de remettre uValue à 0 dans les boucles de calcul des lignes & colonnes...rajoute le. Pis j'ai une boucle for() à laquelle j'ai oublié le 3ème param...inatention sans doute...sinon j'ai bien relu, normalment ça marche tranquille

jeudi 9 février 2006 à 16:21:06 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

kamis

merci !
Urgent parceque le delai est fixé au 15.
Problème au niveau de la 1 et 2 question qui ne me semble pas très explicite.
Nous avions debuter les pointeurs; il ya 1 semaine de cela donc; la galeur pour certaine commande.
est possible d'alleger un peu programme?
bool AllInIndex(int** c, int n
register int i, j;
bool isMagic(int** c, int n)




jeudi 9 février 2006 à 17:09:36 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

Gendal67

1. C'est simple, ton tableau contient les nombres 1,2,3,...,n². Considère une suite Un définie par U0 = 1 artithmétique de raison r = 1. On a donc U1 = U0 + 1, U2 = U1 + 1, etc...
On sait, depuis la classe de première, que la somme des "n" termes d'une suite arithmétique de raison r est donnée par la formule :

somme =  (nb_terme * (premier_terme + dernier_terme)) / 2

Dans notre cas, on a n² termes dans un tableau.
La somme de tous les éléments d'un tableau magique d'ordre n vaut donc :

(n² * (1 + n²) ) / 2

Or, il y a n lignes et n colonnes. Chaque somme de ligne ou de colonne est égal à une valeur; identique quelque soit la colonne. Il suffit donc de diviser la somme de tous les éléments du tableau par le nombre de ligne.
On obtient ainsi :

(n² * (1 + n²) ) / (2 * n)

2. On te demande juste de formuler mathématiquement le fait que la somme des termes d'une ligne ou d'une colonne est toujours la même valeur.

3. Alléger dans quel sens? On aurait du mal, il y a juste le necessaire. Pour aider à ta compréhension sur les pointeurs, dis toi que int** n'est rien d'autre que int[][] (tableau de deux dimensions)....il s'agit juste d'une autre façon d'écrire les choses.

Sinon je ne vois pas ce qui a de dur dans le reste du code...et puis ta question d'allègement me parait suspecte...à croire que t'as même pas essayer de comprendre le code que j'ai posté...sinon tu aurais vu qu'il n'y a pas de chose superflu...peut-être manque t-il des optimisations, mais ça c'est secondaire....surtout quand on demande aux autres de trouver les solutions sans se fatiguer...

Il n'y a rien à rajouter...le code me semble opérationnel....jregretterais presque de t'avoir aider...ça n'a pas l'air de t'avoir réelement rendu service...

vendredi 10 février 2006 à 13:29:35 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

kamis

salut Gendal67
Je te remercie;
Ca faisait plusieurs année que je ne faisais pas les maths(suite ..etc) et surtout  j'avais par du presque tout les notions de programmation .je dois fournir bcp pour me mettre en jour.
Merci . je ne sais quoi vous dire.



vendredi 10 février 2006 à 21:47:15 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

Gendal67

Il n'y a rien à dire, j'espère que ce code te sera profitable
Et puis, comme je le disais, l'énoncé me plaisait, donc no soucy, ça ma fait plaisir de faire l'exercice

J'espère que tu auras une bonne note!
Bonne soirée

samedi 11 février 2006 à 15:06:30 | Re : EXO MENSUELLE LA PLUS CAILLOUX DE MON UIG "qui peut m'aider?" URGENT

kamis

 salut Gendal67
Après avoir passé presque toute la nuit sur l'exo, je suis rendu compte que tu avais deja tous corrigé debut la première  et aussi à la manière la plus simple.
Tout etait base sur la formule du carré et bon positionnement des compteurs.
merci encore pour ton aide

1 2

Cette discussion est classée dans : éléments, carré, exo, cailloux, mensuelle


Répondre à ce message

Sujets en rapport avec ce message

racine carré [ par devadip ] comment simplifier puis calculerC++28/C++7 interuption de clavier [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peu mais bon... Voici mon probleme : j'ai un projet pour la fin de l'annee: f interuption de clavier [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peu mais bon... Voici mon probleme : j'ai un projet pour la fin de l'annee: f interuption de clavier [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peu mais bon... Voici mon probleme : j'ai un projet pour la fin de l'annee: f simplification racine carré, niveau ? [ par kjus ] J'ai fait un prog qui simplifie les racines carrées.Vous pensez que je met ca en niveau 1 ou 2 ?***raph*** bomberman avec turbo c++ [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peumais bon...Voici mon probleme :j'ai un projet pour la fin de l'annee: fair bomberman avec turbo c++ [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peumais bon...Voici mon probleme :j'ai un projet pour la fin de l'annee: fair Donner des valeurs au éléments d'un tableaux dans le constructeur d'une classe [ par ProGamer ] Dans la définition de ma classe, j'ai un tableau d'entiers. Dans le constructeur de la classe, j'ai besoin de donner des valeurs aux éléments du table [c++builder6] Aide sur création d'une classe (svp)? [ par belkin ] Bonjour, J'aimerais utiliser une classe où je vais avoir des fonctions à l'intérieur. Mais je n'arrive pas à trouver la solution à mon problème. En fa Affichage---pointeur [ par amin79 ] J'ai ce code et je n'arrive pas à afficher le contenu de a[10]. Comment faire.#include/*a[i] est un tableau dont tous ses éléments sont initialisés à


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales