Devenir membre club
Connectez vous
Aide & règlement
Votre 1ère visite
Le règlement
Contacter les admins
Contacter le webmaster
Questions & réponses
Comment soutenir CodeS-SourceS
Comment faire un lien vers CodeS-SourceS
Autres questions
A propos & don
A propos du réseau
Les modérateurs
Remerciements
Faire un don
Le livre d'or
Tous les livres
Les dernières parutions
Les plus consultés
Les critiques
Le top des ventes
Le top favoris des membres
Recevoir des livres blancs
Tous les thèmes
Les derniers messages
Les nouveaux messages
Poser une question
Le Chat - IRC
Tous les tutoriels
Ajouter un tutoriel
Les tutoriels en vidéo
Les formations vidéos
Tous les codes
Ajouter un code
Filtrer par catégorie
Filtrer par date
Les plus récents
Les mis à jour
Les codes par jour
Filtrer par niveau
Niveau débutant
Niveau initié
Niveau expert
Filtrer par type
Les codes avec capture
Les codes avec zip
Les codes .Net
Filtrer par qualité
Les plus populaires
Les plus populaires du mois
Les plus téléchargés
Les mieux notés
Top par catégorie
Top des favoris
Filtrer par auteur
Tous les auteurs
Le top des membres
Les snippets
Déposer votre CV
Consulter les offres d'emploi ou de stage
Consulter les CVs
Déposer une offre d'emploi ou de stage
Modèles de CV et lettres
Trouver une convention collective
Les écoles d'informatique
Toutes les écoles
Ajouter une école
Les outils
Outils pour développeurs
Trouver des ressources
Base de données de CodeS-SourceS
Télécharger les meilleurs logiciels
Comparer les prix
Envoyer des ecards
Création de bannières
Annuaire de la prog
Tous les sites
Ajouter votre site
Le dico de la prog
Toutes les définitions
Ajouter une définition
Les évènements
Tous les évènements
Les évènements à venir
Ajouter un évènement
Téléchargements
CodeS-SourceS Toolbox
CodeS-SourceS Toolbar
Toolbar pour FireFox
Fonds d'écran
Les compil's
Nos partenaires
Magazine Programmez
Frontier.fr
Xiti
ProgOnline
Winwise
Editions Eyrolles
Toute la liste
Les RFC
CS
VB, VB.NET
ASP.NET,ASP
C, C++
ColdFusion
PHP
Javascript
Delphi
Flash
Java
Graphisme
Irc
Assembleur
C#
Mobilité
SQL
Foxpro
Python
Regex
Flex
Windev
Ce site au démarrage
begin process at 2012 05 27 18:25:12
Accueil
Codes
Tutoriels
Forum
Livres
Emploi
Services
Connexion
Trouver un code source :
dans
Tout le site
Codes
Tutoriels
Forum
Blogs
Livres
RFC
Icones
News .NET
Boutique
[ Dernières recherches ]
Veuillez saisir votre recherche... Ex: smtp, lire un fichier, rs232
Options de recherche :
Tous les codes
Tous les codes en .Net
Tous les codes sauf .Net
7 commentaire(s) de bzrd
sur des sources sur
cppfrance
Déposé sur
Strtok : exemple d'utilisation
Avantages du strtok :
- on peut mettre une liste de séparateurs, donc c'est plus facile à gérer qu'un while.
- on peut changer la liste de séparateurs entre deux appels.
Gros inconvénients :
- ça utilise une globale pour conserver le pointeur entre 2 appels, donc si une fonction fait une boucle sur un strtok et qu'elle en appelle une autre qui utilise aussi strtok, au retour on a perdu la première boucle (pas réentrant du tout !)
- la chaîne en entrée est modifiée (d'où le strdup de l'exemple fourni je suppose -- il manque d'ailleurs le free correspondant).
Globalement :
 connaître, mais à utiliser avec parcimonie !
Posté le :
13/11/2006 15:56:17
Déposé sur
Nombres premiers - eratosthene quasi illimité
_MICHEL : Une idée, comme ça : en ligne 45, ajoute P[6]=P{7]=(unsigned long)0xffffffff;
Il faudrait aussi vérifier que Maxpile > 4 (à toi de voir ...)
Posté le :
03/11/2006 16:42:43
Déposé sur
Nombres premiers - eratosthene quasi illimité
_MICHEL : Mets "P = (unsigned long *)malloc((2+2*MAXPILE)*sizeof(unsigned long));" pour l'allocation !
On pourrait avoir un plantage en ligne 62! :((
Je n'ai jamais rencontré ce problème, mais quand n=MAXPILE-1 , on y calcule P[2*MAXPILE+1] et ça fait un peu trop dans la mesure où on alloué 2*MAXPILE ...
Quand même curieux que je n'aie jamais rencontré ce cas !!
Posté le :
31/10/2006 12:01:24
Déposé sur
Nombres premiers - eratosthene quasi illimité
Pour _MICHEL : je ne fais que ça depuis bientôt 20 ans ! :(
J'ai repris le source fourni tel quel et je l'ai recompilé : no problem !
Essaie de supprimer les optimisations dans les options de compilation (/Od pour µSoft Visual C++).
En général les optimisations créent plus de problèmes que ça n'en résout !
En ligne 40 tu peux aussi ajouter :
if (!P)
{
printf("Impossible d'allouer %d octets.\n", 2*MAXPILE*sizeof(unsigned long));
return;
}
pour le cas où l'allocation aurait raté !
Sinon, tu n'as plus qu'à mettre des "printf", pour voir où tu bloques ...
Tu peux aussi mettre la fonction suivante (modifiée par rapport au source fourni)
void dumpPile(int n)
{
int i;
n = 2*n ;
for (i=n+1; i>=0; i-=2)
printf("%d:%d ", gP[i], gP[i-1]); /* +grd multiple trouvé : premier */
printf("\n");
}
et insérer un "dumpPile(n);" avant la ligne 52.
Pour Erat 10, tu dois obtenir :
Liste des 10 premiers nombres premiers
2 - 3 - 5 - 7 14:7 10:5 9:3
14:7 12:3 10:5
- 11 22:11 15:5 14:7 12:3
- 13 26:13 22:11 15:5 15:3 14:7
26:13 22:11 21:7 15:5 15:3
26:13 22:11 21:7 18:3 15:5
- 17 34:17 26:13 22:11 21:7 20:5 18:3
- 19 38:19 34:17 26:13 22:11 21:7 21:3 20:5
38:19 34:17 26:13 25:5 22:11 21:7 21:3
38:19 34:17 26:13 25:5 24:3 22:11 21:7
38:19 34:17 28:7 26:13 25:5 24:3 22:11
- 23 46:23 38:19 34:17 33:11 28:7 26:13 25:5 24:3
46:23 38:19 34:17 33:11 28:7 27:3 26:13 25:5
46:23 38:19 34:17 33:11 30:5 28:7 27:3 26:13
46:23 39:13 38:19 34:17 33:11 30:5 28:7 27:3
46:23 39:13 38:19 34:17 33:11 30:5 30:3 28:7
- 29
Posté le :
30/10/2006 12:27:04
Déposé sur
Nombres premiers - eratosthene quasi illimité
Pour KIRUA. Si c'est un crible quand même ! C'est vraiment le même algorithme à la base : on élimine les multiples des nombres premiers trouvés. Simplement au lieu de barrer tous les multiples d'un nombre dans une boucle, on le fait pour tous au fur et à mesure.
_MICHEL : ce n'est pas normal : Sur mon PIV, 2.4Ghz, un "prem 1000" dure moins d'une seconde. Faute de frappe ?
Posté le :
28/10/2006 15:42:31
Déposé sur
Nombres premiers - eratosthene quasi illimité
Pour AUDRANCHAR : ce code devait me permettre de faire une version du crible pour une machine à pile.
Pour POLE4 : ce code ne renvoie pas tous les premiers<n mais les n premiers.
Je sais que l'explication qui suit n'est pas simple, mais je ne sais pas comment vous le dire autrement !
Exemple de dump pour expliquer le fonctionnement
Premiers : 2 - 3 - 5 - 7
14-7 10-5 9-3 Pile initiale
14-7 12-3 10-5 Multiple de 3 suivant, bien placé (9+3 -> 12-3)
15-5 14-7 12-3 Multiple de 5 suivant, bien placé (10+5 -> 15-5)
Premier : 11 10+1 < 12 donc 11 premier
(comparaison "10-5" et "12-3")
22-11 15-5 15-3 14-7 11 mis dans la liste, avec son premier multiple (22)
Premier : 13 12+1 < 14 donc 13 est premier ("12-3" et "14-7")
26-13 22-11 21-7 15-5 15-3 13 est mis dans la liste et le multiple de 7 est placé
26-13 22-11 21-7 18-3 15-5 Multiple de 3 suivant, bien placé (15+3 -> 18-3)
26-13 22-11 21-7 20-5 18-3 Multiple de 5 suivant, bien placé (15+5 -> 20-5)
Premier : 17 15+1 < 18 donc 17 est premier (impair suivant 15+1=16)
34-17 26-13 22-11 21-7 21-3 20-5 17 est mis dans la liste
Premier : 19 18+1 < 20 donc 19 est premier
38-19 34-17 26-13 25-5 22-11 21-7 21-3 Multiple de 5 suivant, bien placé (20+5 -> 25-5)
38-19 34-17 26-13 25-5 24-3 22-11 21-7 ...
Une fois qu'on a supprimé tous les pairs, on prend la première valeur non barrée : 3 et on regarde ses multiples.
2*3 = 6 ! On a sauté au-dessus de 5 (impair), donc 5 est premier. On regarde les multiples de 5. 2*5=10.
Entre 5 et 9 (prochain multiple de 3), on a 7, qui est donc premier.
On reprend 3, puisqu'on est arrivé à 9, pour calculer 9+3=12. Entre 10 (dernier multiple de 5 trouvé) et 12, on a un impair : 11. Donc il est premier. etc.
En ligne 52, 'c' contient le premier en cours de traitement, 'b' son dernier multiple calculé et 'a' le multiple suivant.
En ligne 56, on regarde si ce nouveau multiple est plus grand que le dernier multiple calculé du nombre premier suivant dans la liste ! (facile !)
Si oui, on insère la paire (multiple premier) = (a c) à sa place dans la liste (décalage paire par paire, qui aurait pu être un décalage de bloc, mais pas dans un contexte de machine à pile).
En ligne 70, on trouve le nombre impair suivant 'b' : ex : si 'b'=10, alors (('b'+1) | 1) = (11 | 1) = 11; si 'b'=19, alors (('b'+1) | 1) = (20 | 1) = 21.
En ligne 72, 'b' est le dernier multiple calculé du nombre premier qu'on traitera ensuite, et 'c' est le multiple du dernier de la liste (a priori la plus grande valeur trouvée jusque là).
La boucle en ligne 75, énumère les nombres impairs entre le nombre impair suivant calculé précédemment et 'b', les ajoute à la liste (avec leur premier multiple : 2x) et affiche les nombres trouvés.
A priori la boucle doit ête inutile car il me semble qu'on ne peut trouver qu'un nombre à la fois, mais dans le doute ...
Voilà, vous savez tout !
ps. mon avatar, s'il veut bien s'afficher) est la version Piet de ce programme (cf http://www.dangermouse.net/esoteric/piet.html)
Posté le :
24/10/2006 17:57:42
Déposé sur
Nombres premiers - eratosthene quasi illimité
Pour nightlord666.
D'accord avec toi pour les include, mais comme le compilateur ne fait pas la différence, je mets une fois l'un, une fois l'autre !
En ce qui concerne la variable en majuscules, au départ c'était une constante, mais j'ai décidé d'en faire un paramètre (grosse flemme, quoi !).
Pas de test des codes retours : en fait au départ j'ai écrit ce programme pour le faire marcher en BrainFuck et en Piet (en gros, sur une machine de Turing), donc mettre en place des tests ce n'était pas vraiment facile, et ensuite je voulais le soumttre à un OCC, donc plus c'est court et abscons et mieux c'est. OK, pour ce post, j'aurais dû faire mieux ! D'ailleurs, tu n'as pas remarqué que je ne libère pas non plus la mémoire allouée ;)
Paramètre en dessous de 6 : ça fonctionne ! Mais en dessous de 4, on affiche toujours 4 valeurs au minimum. Par contre ça plante pour 1 (rappel : aucun test !).
pour Kirua.
Je ne "barre" aucune valeur, c'est ce qui fait la spécificité de cet algo.
Dès que j'ai un peu de temps, je mets un petit texte explicatif.
Merci pour vos commentaires.
Posté le :
16/10/2006 11:28:16
1
Nos sponsors
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALE
IMAGINE CUP 2012, MAKE A SIGN EN FINALE
par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article
par junarnoalg
KINECT 1.5 IS OUT !
KINECT 1.5 IS OUT !
par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article
par Vko
LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI)
LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI)
par richardc
Mise à jour des Web API du 14 Mai Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris Mise à jour de Team Foundation Service MechCommander 2 sur Windows 8 Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article
par richardc
REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER
REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER
par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article
par Groc
SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES
SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES
par junarnoalg
Dernièrement, nous avons migré le site myTIC vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs. Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article
par junarnoalg
La suite
RSS
Forum
MATRICE TEMPLATE
MATRICE TEMPLATE
par hjr2610
Cliquez pour lire la suite
par hjr2610
SUPERVISION DE LA BATTERIE
SUPERVISION DE LA BATTERIE
par romanticgirl
Cliquez pour lire la suite
par romanticgirl
RE : OPENCV ET INTERFACE GRAPHIQUE VISUAL STUDIO
RE : OPENCV ET INTERFACE GRAPHIQUE VISUAL STUDIO
par buno
Cliquez pour lire la suite
par buno
RE : SAC A DOS
RE : SAC A DOS
par hadjkaddour
Cliquez pour lire la suite
par hadjkaddour
OPENCV ET INTERFACE GRAPHIQUE VISUAL STUDIO
OPENCV ET INTERFACE GRAPHIQUE VISUAL STUDIO
par ssaif
Cliquez pour lire la suite
par ssaif
La suite
RSS
Côté IT
Utiliser Office 365 pour un projet d?équipe - PART 2
Utiliser Office 365 pour un projet d?équipe - PART 1
SharePoint 2007 : Installation du Service Pack 3 de MOSS
SharePoint 2007 : Installation du Service Pack 3 de WSS V3
Installation de SQL Server DENALI CTP3
Mise à jour de Windows 2003 R2 vers Windows 2008 R2
Upgrade de SQL Server 2005 vers SQL Server 2008 R2
La suite
RSS
Offres d'emploi
Recherche Développeur PHP
Recherche Développeur Sharepoint
Recherche Développeur C++
Recherche Recherche développeur web ASP et ASP.Net
Recherche Analyste Programmeur Adélia
Recherche Développeur eZ Publish confirmé
Recherche AP (H/F) ACCESS EXCEL VBA
Déposer une offre
La suite
RSS
Formations Video
Dreamweaver CS6 : Les fondamentaux
Adobe Muse : Les indispensables
Coffret avantage : Les nouveautés d'Adobe Design Standard CS6
Coffret avantage : Les nouveautés d'Adobe Design & Web Premium CS6
Coffret avantage : Les nouveautés d'Adobe Master Collection CS6
Coffret avantage : Les nouveautés d'Adobe Production Premium CS6
Microsoft Office Outlook 2003 : Les indispensables
La suite
RSS
Appels d'offres
Realisation d-une version 2 d-un site e-commerce existant sous prestashop-REPUBLICATION
Budget :
5 000€
Recherche Infogerance Serveur Debian Linux
Budget :
1 800€
Creation d-un site vitrine avec MagentO
Budget :
2 000€
La suite
RSS
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)
SDEVIS-FACTURES VLPRO (8.1.0.3)
sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa...
Cliquez pour télécharger sDEVIS-FACTURES vlPRO
974 Application Server (12.2.4.6)
974 APPLICATION SERVER (12.2.4.6)
Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc...
Cliquez pour télécharger 974 Application Server
vPicture (1.4.2.1)
VPICTURE (1.4.2.1)
Avec vPicture, hébergez vos images facilement et rapidement. vPicture est un utilitaire simple, ...
Cliquez pour télécharger vPicture
Easy-Planning (2.2.1.6)
EASY-PLANNING (2.2.1.6)
Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au...
Cliquez pour télécharger Easy-Planning
COM-BACKUP (2.0)
COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
+ de logiciels à télécharger
Vidéos drôles
Halloween Party
Terry Tate Office Linebacker Superbowl 2003
Jeu vidéo instructif
C'est un véritable vol !
Banana Song
Comment attraper la grippe A
Parodie Pub Window 7
La suite
RSS
Sondage...
Votre navigateur n'utilise pas le javascript, pour
voter aux sondages de ce site, cliquez ici
Statistiques
1 903 541
membres
117
nouveaux aujourd'hui
16 195
membres club
Comparez les prix
Samsung Galaxy S
Entre 529€ et 529€
Visiter le guide achat
CalendriCode
Mai
2012
L
M
M
J
V
S
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Consulter la suite du CalendriCode
Photothèque
Visiter la photothèque
CS Tool Box
A découvrir