Accueil > > > CARRÉ PAR MÉTHODE DE L'ABAQUE
CARRÉ PAR MÉTHODE DE L'ABAQUE
Information sur la source
Description
Calcul du carré par une méthode particuliere qui est normalement utilisée pour calculer les carrés de tête. Elle repose sur la particularité des carrés des nombres finissant par 5, exemple 35 on prend le nombre sans le 5 est on le multiplie par son successeur 3*4=12 et on écrit ensuite 25 donc 35²=1225. Puis on trouve les autres carrés en utilisant la propriété (n+1)²=n²+2n+1. Je pensais que cette méthode serait plus rapide pour certains nombres au moins pour ceux finissant par 5, ce qui n'est pas toujours le cas, j'ai d'abord hésité à poster et je le fait quand même parce que j'aime bien cette méthode...
Source
- Public Function Carré(n As Long) As Long
- Dim a As Long
- Dim i As Long 'compteur de boucle
- Dim fin As Long 'nombre de boucles à effectuer
- Dim c As Long 'résultat des différents carrés
-
- a = n
-
-
- Do While a Mod 5 <> 0
- a = a - 1
- Loop
- 'on a alors a qui est le multiple de 5 inférieur à n le plus proche de n
-
- If a Mod 10 = 0 Then
- a = a - 5
- End If
- 'on veut que a ne soit pas un multiple de 10
-
- c = (Fix(a / 10) * (Fix(a / 10) + 1)) * 100 + 25
- 'si a est au départ plus petit que 5, le a final sera égal à -5 mais cela ne change rien car cette derniere opération donnera un nombre positif
-
- fin = n - a
- 'est cette opération sera un compteur décroissant si a<5
-
-
- For i = 1 To fin
- c = c + 2 * a + 1
- a = a + 1
- 'cette opération est tres simple, elle repose sur la propriété
- '(n+1)²=n²+2n+1
- Next i
-
- Carré = c
-
- End Function
Public Function Carré(n As Long) As Long
Dim a As Long
Dim i As Long 'compteur de boucle
Dim fin As Long 'nombre de boucles à effectuer
Dim c As Long 'résultat des différents carrés
a = n
Do While a Mod 5 <> 0
a = a - 1
Loop
'on a alors a qui est le multiple de 5 inférieur à n le plus proche de n
If a Mod 10 = 0 Then
a = a - 5
End If
'on veut que a ne soit pas un multiple de 10
c = (Fix(a / 10) * (Fix(a / 10) + 1)) * 100 + 25
'si a est au départ plus petit que 5, le a final sera égal à -5 mais cela ne change rien car cette derniere opération donnera un nombre positif
fin = n - a
'est cette opération sera un compteur décroissant si a<5
For i = 1 To fin
c = c + 2 * a + 1
a = a + 1
'cette opération est tres simple, elle repose sur la propriété
'(n+1)²=n²+2n+1
Next i
Carré = c
End Function
Conclusion
J'ai ajouté un programme de test de rapidité des différentes fonctions.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
calcul aire et volume [ par SDan ]
Bonjour,J'aimerais calculer l'aire et le volume de certaines formes géométriques (carré, rectangle, ...). Ds une première feuille, j'ai créer des b
calcul date et heure [ par dauphin70 ]
bonjour, je suis débutante sous vb6 et j'ai un problème pour calculer une duréeen fait à partir d'une date d'arrêt, d'une heure d'arrêt, une date de m
probleme de calcul [ par dauphin70 ]
bonjourje suis sous vb6quand je clique sur le bouton valider de ma frm, ca enregistre les renseignements dans ma table pieceInter, mais j'aimerai auss
Optimisation [ par Kabutosama ]
Bonjour,J'aimerais utiliser le programme suivant sous VB pour Excel:Prennant en parametres des constantes a,b,c,d,e,f figurant dans les cellules d'une
calcul d'heure [ par dauphin70 ]
salutcomment faire pour soustraire des dates et des heures pour trouver la duree du temps d'arret des machines en nombre d'heures??exemple : une machi
Calcul avec les date (Excel [ par BetaTester ]
BonjourVoila mon probleme :J'ai une base de données qui contient des dates dans la colonne A, j'ai besoin de calculer le nombre de cellules compris en
fonction de calcul [ par syltab ]
BonjourJ'ai une feuille excel qui comporte pas mal de macro avec des useforms qui se serve de cette feuilleQuand je clique sur une autre feuiille, cel
Temps de calcul ... [ par MaxSoldier ]
Je Désirerait pouvoir obtenir le temps passé entre 2 action de mon programme. Ja précise que j'ai utilisé la méthodes des timers qui ne marche pas éta
petit carré supprimer [ par allowen ]
Bonjour à tous,je suis en train d'insérer des données d'une base access sur une feuille excel et j'utilise VbCrLf pour un retour à la ligne mais à cha
calcul tres balaise [ par bobo91 ]
bonjour tous le monde.j'aimerais savoir s'il etait possible de trouver une solution tres rapide pour un tel calcul avec vb6.et si oui quelqu'un pourra
|
Derniers Blogs
MIX10 A LAS VEGAS : IMMERSIONMIX10 A LAS VEGAS : IMMERSION par odewit
Hi from Vegas !
En resume [je corrigerai les accents a mon retour !], Las Vegas m'impressionne par sa demesure.
Ou que l'on aille, les itineraires traversent des salles bruyantes pleines de machines a sous et de tables de jeu.
Les decors, surtout a...
Cliquez pour lire la suite de l'article par odewit [RIA SERVICES] MAITRE - DéTAIL ET DOMAINDATASOURCE[RIA SERVICES] MAITRE - DéTAIL ET DOMAINDATASOURCE par Audrey
A l'occasion d'un projet client, j'ai utilisé RIA Services avec Silverlight 3 (mais cela fonctionne aussi avec la version 4), et je l'ai utilisé pour une interface façon Maitre / Détail. Voici comment j'ai procédé pour arriver à mes fins. Nous allons pren...
Cliquez pour lire la suite de l'article par Audrey CSDL FUNCTIONCSDL FUNCTION par Matthieu MEZIL
Dans mon post précédent , j'ai utilisé une CSDL Function afin de générer une requête SQL avec un DateDiff utilisant la date courante sur la BD à partir d'une requête LINQ. Dans le cadre de ce post , vous avez probablement remarqué que dans le cadre de plu...
Cliquez pour lire la suite de l'article par Matthieu MEZIL LINQ TO ENTITIESLINQ TO ENTITIES par Matthieu MEZIL
Cette semaine je suis à Montréal en tant que speaker sur Entity Framework pour l'évènement confoo . J'en profite pour remercier les organisateurs de cet évènement de m'avoir fait confiance et Access-IT de m'avoir permis d'y participer. En parallèle, j'ai ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010 par neodante
La nouvelle interface d'Office 2010 à amener quelques modifications par rapport à celle de 2007. Certes mineures, ces modifications ont fait disparaître la case à cocher de l'onglet 'Développeur' en première page du panneau du 'bouton Office' (dans Office...
Cliquez pour lire la suite de l'article par neodante
Forum
RE : MENU GENERALRE : MENU GENERAL par abdelazizhiria
Cliquez pour lire la suite par abdelazizhiria
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|