Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : maths et autres [ Divers / Général ] (jeanphilippe37)

vendredi 2 mai 2008 à 00:19:52 | maths et autres

jeanphilippe37

Slt,

j'ai fais un prgm de maths pour savoir les nbrs premiers mais, quand je mets system("pause"), j'ai une erreur, pouvez vous me corriger ?

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

int estPremier (int nbr)
{
  /*Les nombres premiers < 100*/
  static int prems[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,
                        43,47,53,59,61,67,71,73,79,83,89,97};
  int i, n;
  double d;


  /* On suppose que 1 est premier */
  if (nbr == 1)
  {
    return 1;
  }
 
  n = sizeof (prems) / sizeof (*prems);

  /* D'abord on regarde si n est divisible par les nombres premiers dans le tableau */
  for (i = 0; i < n; i++)
  {
    if (nbr == prems[i])
    {
      return 1;
    }
    if (nbr % prems[i] == 0)
    {
      return 0;
    }
  }
 
  /* Ensuite, on doit regarder a partir du dernier element du tableau+2 jusqu'a sqrt(nbr)... */
  d = sqrt (nbr) + 0.5; /* Le 0.5 permet de tester si c'est un carre parfait... */
  i = prems[i-1] + 2;

  while (i < d)
  {
    if (nbr % i == 0)
    {
      return 0;
    }
    i += 2;
  }
  return 1;
}

int main(void)
{
  int i;

  for (i = 101; i < 500; i++)
  {
    if (estPremier (i))
    {
      printf ("%d\n",i);
    }
  }
system("pause");
  return 0;
}


Et également, j'aimerai faire un truc sur l'annimation en c++ sur "console" en c++, comment on fais ça ? et aussi, quelles sont les dimentions de l'écran console ? Pour un jeux ds ce mode, est-ce facile ou pas ?
egalement, pour un jeux en 2d avec scriptes, comment on fait, j'aimerai trouver la bibliothéque scripte, ou je peux la choper ?

merci bcp
jph

J-Ph


vendredi 2 mai 2008 à 01:38:50 | Re : maths et autres

jfrancois

Réponse acceptée !
Bonsoir,

Ce calcul est incorrect :  n = sizeof(prems) / sizeof(*prems);
C'est  n = sizeof(prems) / sizeof(int); (c'est un tableau de "int")
Ce n'est qu'un hazard si le résultat est juste parce que sizeof(pointeur) = sizeof(int) !!!

Jean-François


vendredi 2 mai 2008 à 02:06:00 | Re : maths et autres

SAKingdom

Membre Club
Réponse acceptée !
Ce calcule est parfaitement correct. Ce n'est pas la taille d'un pointeur que l'on calcule mais la taille de la valeur pointée par le pointeur.

char c[] = "Bonjour";
printf("%d\n", sizeof(*c));

Affiche bien 1

C++ (@++)


vendredi 2 mai 2008 à 02:07:46 | Re : maths et autres

SAKingdom

Membre Club
Réponse acceptée !
Au passage, c'est quoi l'erreur que provoque system("pause") ?

C++ (@++)


vendredi 2 mai 2008 à 09:44:15 | Re : maths et autres

jfrancois

Réponse acceptée !
Ce n'est pas la taille d'un pointeur qui est calculée mais tout simplement le nombre de valeurs dans le tableau prems (tableau d'entiers et non tableau de pointeurs) et je n'ai rien rigoureusement à changer à ce que j'ai écris !


Jean-François


vendredi 2 mai 2008 à 10:28:42 | Re : maths et autres

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !

sizeof() devrait donner la taille totale du tableau dans le cas de l'exemple car le tableau est connu de la fonction.
On devrait donc avoir le nombre d'éléments dans n.
Si c'était un param, ce serait bien sizeof(int) à en retour.

Faut absolument se méfier de ce genre de syntaxe et ne pas en prendre l'habitude, source de bugs difficile à retrouver.

ciao...
BruNews, MVP VC++


vendredi 2 mai 2008 à 13:34:03 | Re : maths et autres

jeanphilippe37

re,

merci, mais l'erreur quand je le compile avec sytem("pause") j'ai une erreur de compilation, comment dois-je faire ?
Et également, j'aimerai faire un truc sur l'annimation en c++ sur "console" en c++, comment on fais ça ? et aussi, quelles sont les dimentions de l'écran console ? Pour un jeux ds ce mode, est-ce facile ou pas ?
egalement, pour un jeux en 2d avec scriptes, comment on fait, j'aimerai trouver la bibliothéque scripte, ou je peux la choper ?

merci les gars

ps : Connaissait vous l'école d'ingénieur IMERIR (l'école d'ingénieur en informatique et robotique de perpignan.) ?
J-Ph

vendredi 2 mai 2008 à 13:48:07 | Re : maths et autres

jfrancois

Pour system() il faut l'include de stdlib.h ou de process.h donc ça devrait passer !

C'est quel compilateur ?
C'est quel libellé d'erreur précisemment ?

Jean-François


vendredi 2 mai 2008 à 15:53:01 | Re : maths et autres

jeanphilippe37

re,

j'ai corrige, ms cela merde encore: cette fois, c une erreur d'incolade!!!!!!!!!
60 C:\Documents and Settings\jean-philippe\Mes documents\maths.cpp expected `}' at end of input

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

int estPremier (int nbr)
{
  /*Les nombres premiers < 100*/
  static int prems[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,
                        43,47,53,59,61,67,71,73,79,83,89,97};
  int i, n;
  double d;


  /* On suppose que 1 est premier */
  if (nbr == 1)
  {
    return 1;
  }
 
  n = sizeof (prems) / sizeof (*prems);

  /* D'abord on regarde si n est divisible par les nombres premiers dans le tableau */
  for (i = 0; i < n; i++)
  {
    if (nbr == prems[i])
    {
      return 1;
    }
    if (nbr % prems[i] == 0)
    {
      return 0;
    }
  }
 
  /* Ensuite, on doit regarder a partir du dernier element du tableau+2 jusqu'a sqrt(nbr)... */
  d = sqrt (nbr) + 0.5; /* Le 0.5 permet de tester si c'est un carre parfait... */
  i = prems[i-1] + 2;

  while (i < d)
  {
    if (nbr % i == 0)
    {
      return 0;
    }
    i += 2;
  }
  return 1;
}

int main(void)
{
  int i;

  for (i = 101; i < 500; i++)
  {
    if (estPremier (i))
    {
      printf ("%d\n",i);
      system("pause");    }
}




J-Ph


vendredi 2 mai 2008 à 16:02:05 | Re : maths et autres

jfrancois

Les accolades ne sont pas appairées dans main() (3 ouvertes, 2 fermées)

int main(void)
{
   int i;
   for (i = 101; i < 500; i++)
   {
      if (estPremier(i))
      {
         printf ("%d\n",i);
      }
   }
   system("pause");
}


Jean-François



1 2

Cette discussion est classé dans : int, return, nbr, if, prems


Répondre à ce message

Sujets en rapport avec ce message

Table de hachage avec patronyme [ par guitoontruant ] Bonjour, Désolé, j'avais d'abord poster dans les discussions libres.Voilà je dois créer une table de hashage de patronymes par le biais de N entrées, arbre de huffman en c [ par Mouzby ] Bonjour tout le monde, Je viens avec beaucoup d'espoir pour demander votre aide sur ce forum, c'est à propos de la conception du programme de l'arbre ce code ne marche pas?????????? [ par banak3181 ] s'il vous plait les gars je veux que quelqu'un me disent pourquoi ce code ne marche sur dev C++:#include #include #include #include # include<myconio. analyseur lexical pascal [ par perrotta ] Bonjour, dsl pour ma langue je parle pas bien le français; je suis entrin de devlopper un analyseur lexical pour un programme (pascal) prèci ,et j'ai BLITZ++ [ par ciaonataha ] Salut a tous!!!J'ai besoin d'aide..Qn travaillent avec biblioteque BLITZ++....Je veux recrier ça:for (int t=0; t {  for (int p=0; p     if (T==Tr(t Algorithme RSA utilisation des floats [ par douss4 ] Bonsoir,J'ai essayé d'écrire un algorithme de cryptage (RSA). Le code à bien marché avec des int. J'ai changé les int par des float. Au moment du décr Gestion de plusieurs ports RS232 [ par dissezfr ] Bonjour à tous d'abordJ'ai récupéré un code sur le site permettant de géré un port série, j'aimerai piloter 8 (voir +) ports série avec un seul ordina Problème compréhension du programme le compte est bon [ par echec ] Bonjour,Je cherchai un programme c++ sur internet qui permettait de calculer la solution du jeu le compte est bon, j'en est finalement trouvé un, mais aide jeux par C [ par ousous09 ] voila, quand je compile ca me donne cette erreur size of indefined or zero j'ai rien compris voila mon programme en C #include #include #include ajouter une librairie utilisateur à un programme C sous Visual Studio 2008 [ par boualiasma ] Salut,on peut implémenter des fonctions dans header par exemple calcul.h qui implémente les fonctions somme, multiplication. Dans mon programme main.c


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.