begin process at 2012 05 27 14:05:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > CALCUL D'UNE RACINE NUMÉRIQUE

CALCUL D'UNE RACINE NUMÉRIQUE


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Classé sous :racine numérique, digital root, API Windows, résidu Niveau :Débutant Date de création :17/04/2011 Date de mise à jour :19/04/2011 12:11:29 Vu / téléchargé :2 984 / 113

Auteur : pgl10

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Voici un petit logiciel en API Windows qui calcule la racine numérique d'un nombre entier positif. La racine numérique de 3456 est calculée en faisant 3+4+5+6 = 18 puis 1+8 = 9. Cette fonction sert pour effectuer la preuve par 9. On pourra aussi vérifier que la racine numérique d'un carré est nécessairement : 1, 4, 7 ou 9 et celle d'un cube : 1, 8 ou 9.

Source

  • #include <windows.h>
  • #include "resource.h"
  • int ranum(const char *n) { // Racine numérique de n
  • char buf[32];
  • int i, s = 0;
  • for(i = 0; isdigit(n[i]); i++) s = s + n[i] - '0';
  • if(s < 10) return s;
  • wsprintf(buf, "%d", s);
  • return ranum(buf);
  • }
  • BOOL APIENTRY DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) {
  • CHAR nb[21], res[81];
  • switch (uMsg) {
  • case WM_INITDIALOG:
  • return TRUE;
  • case WM_COMMAND:
  • if (LOWORD(wParam) == IDOK) {
  • GetDlgItemText(hDlg, IDE_EDIT1, nb, 20);
  • wsprintf(res, "Racine numérique de : %s = %d", nb, ranum(nb));
  • MessageBox(hDlg, res, "Résultat", MB_OK);
  • }
  • if (LOWORD(wParam) == IDCANCEL) {
  • EndDialog(hDlg,0);
  • return TRUE;
  • }
  • default:
  • return FALSE;
  • }
  • }
  • int WINAPI WinMain(HINSTANCE hInstance,
  • HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
  • DialogBox(hInstance,"DIALOG1",NULL,(DLGPROC)DlgProc);
  • return 0;
  • }
#include <windows.h>
#include "resource.h"

int ranum(const char *n) { // Racine numérique de n
    char buf[32];
    int i, s = 0;
    for(i = 0; isdigit(n[i]); i++) s = s + n[i] - '0';
    if(s < 10) return s;
    wsprintf(buf, "%d", s);
    return ranum(buf);
}

BOOL APIENTRY DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) {
    CHAR nb[21], res[81];
    switch (uMsg) {
        case WM_INITDIALOG:
            return TRUE;
        case WM_COMMAND:
            if (LOWORD(wParam) == IDOK) {
                GetDlgItemText(hDlg, IDE_EDIT1, nb, 20);
                wsprintf(res, "Racine numérique de : %s = %d", nb, ranum(nb));
                MessageBox(hDlg, res, "Résultat", MB_OK);
            }
            if (LOWORD(wParam) == IDCANCEL) {
                EndDialog(hDlg,0);
                return TRUE;
            }
        default:
            return FALSE;
    }
}

int WINAPI WinMain(HINSTANCE hInstance, 
                   HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    DialogBox(hInstance,"DIALOG1",NULL,(DLGPROC)DlgProc);
    return 0;
}

 Conclusion

Pour saisir le nombre on peut faire un copier-coller.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

19 avril 2011 12:01:44 :
Modification pour dépasser la limite des INT
19 avril 2011 12:11:30 :
Orthographe

 Sources du même auteur

Source avec Zip Source avec une capture UNE LISTE HÉTÉROGÈNE DOUBLEMENT CHAINÉE
Source avec Zip Source avec une capture POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE ...
Source avec Zip Source avec une capture CONVHTML : UN UTILITAIRE DE CONVERSION POUR FICHIERS HTML
Source avec Zip Source avec une capture AFFIMOFF : UNE VISIONNEUSE 3D AVEC PARAMÉTRISATION ET TEXTUR...
Source avec Zip Source avec une capture CRIBLE D'ERATOSTHÈNE OPTIMISÉ

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture AFFIMOFF : UNE VISIONNEUSE 3D AVEC PARAMÉTRISATION ET TEXTUR... par pgl10
Source avec Zip Source avec une capture MONPPM : UN AFFICHEUR .PPM par pgl10
Source avec Zip Source avec une capture [WIN32] EASY WAVE MIXER par ordiman85
Source avec Zip Source avec une capture QUELQUES EXEMPLES D'UTILIISATION DES THREADS par goodboy21
Source avec Zip UN SIMPLE EDITEUR DE TEXTE EN C AVEC L'API WIN32 par flofloo

Commentaires et avis

Commentaire de BruNews le 17/04/2011 20:32:00 administrateur CS

int ranum(const int n) {
  return 1 + ((n - 1) % 9);
}

Tu es certain que ça justifiait une source ???

Commentaire de pgl10 le 17/04/2011 21:03:03

Brunews : remarque très juste. Mais on peut aussi le modifier pour d'autres calculs. Et j'ajoute que si le nombre est disponible sous la forme d'une chaine de caractères, on peut faire le calcul avec :
int rnum(const char *str) {
    char buf[32];
    int s = 0;
    for(int i = 0; isdigit(str[i]); i++) s = s + str[i] - '0';
    if(s < 10) return s;
    sprintf(buf, "%d", s);
    return rnum(buf);
}

 Ajouter un commentaire




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,952 sec (3)

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