begin process at 2012 02 11 11:45:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Algorithme

 > 

Maths

 > 

calcul arithmétique


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

calcul arithmétique

vendredi 30 novembre 2007 à 10:43:01 | calcul arithmétique

totolito3535

Bonjour,

voila deux jours et plus que je cherche quelque chose que je pense simpleet qui existe forcément. Je ne peux plus me permettre de perdre de temps.

Je voudrais effectuer un checksum d'une chaine de caractère afin de pouvoir envoyer une trame vers mon port COM.

Ma question : comment faire la somme de mes caractère ascii (dont je connai la valeur hexadecimal) et y appliquer un modulo 256

pour etre plus concret : comment faire pour codeer la chose suivante

chaine de départ : 9 5 H E L L O qui correspond en hexa a 39 35 48 45 4C 4C 4F
et qui devrai donner apres addition : 1E2 modulo 256 = E2

sachant que je veux récupérer ce fameux E2 qui correspond a mon checksum

c'est surement simple voir facile mais je n'ai plus de recul et la je desespere ............................
vendredi 30 novembre 2007 à 12:35:39 | Re : calcul arithmétique

Loda

Membre Club
Réponse acceptée !
salut,

je suppose que tu cherche l'opérateur mod.

sinon, je te rappel que l'hexa est juste un moyen d'afficher une valeur. comme le binaire, le décimal ou l'octal. et comme les char sont des bytes... T'as juste à les additioner.

si j'ai bien compris ce que tu veux faire, un for sur ton tableau avec un checksum := checksum + tab[i] mod 256; devrait faire l'affaire. (à vérifier)

bon code,

Loda

Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
vendredi 30 novembre 2007 à 14:10:51 | Re : calcul arithmétique

cantador

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
  i, total: integer;
begin
  Total := 0;
  str := '95HELLO';
  for i := 1 to Length(str) do
    total := total + Byte(Str[i]);
  ShowMessage(IntToStr(total mod 256));
end;

prends un avatar..c'est plus convivial..

cantador

vendredi 30 novembre 2007 à 14:15:10 | Re : calcul arithmétique

totolito3535

merci beaucoup je test ça au plus vite.

et surtout pour la rapidité de la réponse
vendredi 30 novembre 2007 à 14:23:58 | Re : calcul arithmétique

f0xi

Membre Club Administrateur CodeS-SourceS

CRC32!



deefsign.gif
vendredi 30 novembre 2007 à 15:01:43 | Re : calcul arithmétique

totolito3535

Merci à tous ça fonctionne

en espérant rendre binetot service a mon tour

A+
vendredi 30 novembre 2007 à 20:12:42 | Re : calcul arithmétique

khawarizm

Membre Club

Hi ; j'ai une question  SVP .

Dans le code fourni par cantador la variable totale est initialisée à zéro(alors que moi , je pensai qu'une variable integer sous Delphi est initialisée à zéro au moment de sa déclaration ) alors j'ai tester le code en enlevant l'initialisation et à ma surprise le résultat à changer !!! ce qui veut dire que l'initialisation là n'était pas fortuite ; j'ai bien lu et relu le code cherchant à comprendre le pourquoi du comment mais je ne pige toujours rien et j'ai le sentiment que je « zappe »  quelque chose d'important mais quoi au juste   MERCI à vous .

vendredi 30 novembre 2007 à 22:45:47 | Re : calcul arithmétique

cantador

Membre Club Administrateur CodeS-SourceS
L'initialisation des vaiables...pourquoi pas..
Il faut faire un autre topic..
n'est ce pas Julio ?

cantador
samedi 1 décembre 2007 à 20:08:59 | Re : calcul arithmétique

WhiteHippo

Membre Club
Bonsoir

Khawarizm, comme le dis la documentation de Delphi sur les variables :
"Si vous n'initialisez pas explicitement une variable globale, le compilateur l'initialise à 0."
"Les variables locales, par contre, ne peuvent être initialisées dans leur déclaration et contiennent des données aléatoires tant qu'elles ne sont pas initialisées."


Cordialement.

"L'imagination est plus importante que le savoir." Albert Einstein
jeudi 27 août 2009 à 22:10:53 | du fortran au turbo pascal

Choukri_m




Bonsoir tout le monde, j'ai besoin de votre aide, j'ai un code pédagogique de calcul matriciel en fortran et je veux le traduire en Turbo Pascal puis en Delphi je compte sur votre aide les amis
voici le code :
logical IPRINT, PGIVEN, INCID, CONV
real L, NUMER
dimension P(10), PGIVEN(10), A(10,10), C(10,10), D(10,10),
1 L(10,10), INCID(10,10), Q(10,10)
*****************************************
***** Lecture des Données *****
*****************************************
1 read (5,100) N, IMAX, RHO, EPS, F, IPRINT, (PGIVEN(i), i = 1,N)
read (5,101) (P(i), i = 1,N)
do 2 i = 1,N
read (5,102) (INCID(i,,j), j = 1,i)
read (5,101) (D(i,j), j = 1,i)
2 read (5,101) (L(i,j), j = 1,i)
*****************************************
***** transformation des matrices symetriques D, L et INCID et
calcul des elements de la matice C *****
*****************************************
FACTOR = 8.*12.**5*RHO*F/(3.1415926**2*32.2*(60.*7.48)**2*144.)
do 3 i = 1,N
do 3 j = 1,i
C(i,j) = 0.
if (i.EQ.j) go to 3
if (INCID(i,j)) C(i,j) = FACTOR*L(i,j)/D(i,j)**5
D(j,i) = D(i,j)
L(j,i) = L(i,j)
INCID(j,i) = INCID(i,j)
C(j,i) = C(i,j)
3 continue
*****************************************
***** ecriture des données initiales du reseau *****
*****************************************
write (6,200) N,ITMAX,RHO,EPS,F,IPRINT,(i, P(i),PGIVEN(i),i=1,N)
write (6,201)
do 4 i = 1,N
4 write (6,202) i, i, N, (INCID(i,j), j = 1,N)
write (6,201)
do 5 i = 1,N
5 write (6,203) i, i, N, (D(i,j), j = 1,N)
write (6,201)
do 6 i = 1,N
6 write (6,204) i, i, N, (L(i,j), j = 1,N)
*****************************************
***** calcul des approximations successives des pressions aux
noeuds *****
****************************************
if (IPRINT) write (6,205) (i, i = 1,N)
do 9 ITER = 1, IMAX
CONV = .true.
do 8 j = 1, N
if (PGIVEN) go to 8
NUMER = 0.
DENOM = 0.
do 7 i = 1, N
if (.not. INCID(i,j)) go to 7
A(i,j) = 1.0/SQRT(C(i,j)*ABS(P(i)-P(j)))
NUMER = NUMER + A(i,j)*P(i)
DEMON = DEMON + A(i,j)
7 continue
SAVEP = P(j)
P(j) = NUMER/DENOM
if (ABS(SAVEP-P(j)).GE.EPS) CONV = .false.
8 continue
if (IPRINT) write (6,206) ITER, (P(i), i = 1,N)
if (CONV) go to 10
9 continue
write (6,207) ITMAX
*****************************************
***** calcul des debits dans chaque troncon *****
*****************************************
10 do 11 i = 1,N
do 11 j = 1,i
Q(i,j) = 0.
Q(j,i) = 0.
if (i.EQ.j.OR..not.INCID(i,j)) go to 11
Q(i,j) = (P(i)-P(j))/SQRT(C(i,j)*ABS(P(i)-P(j)))
Q(j,i) = -Q(i,j)
11 continue
****************************************
***** ecriture des pressions finales et des debits *****
****************************************
write (6,208) ITER, N
do 12 i = 1,N
12 write (6,209) i, P(i), (Q(i,j), j = 1,N)
go to 1
***************************************
***** formats des etats d'entrées/sorties *****
***************************************
100 format(3x,i2,17x,i3,15x,F5.1,15x,E5.0/4x,F6.3,14x,L1 /
1 (30x,20(L1,1x)))
101 format(30x,5F8.3)
102 format(30x,20(L1,1x))
200 format(23H1FLOW IN A PIPE NETWORK/ 10H0N = ,13/ 10H ITMAX
1=, i3/ 10H RHO =, F7.3/ 10H EPS =, E10.2/ 10H F =,
2 F7.3/10H IPRINT =, 2x, L1/ 3H0 i, 6x, 4HP(i), 4x,9HPGIVEN(i)
3 (1H, i2, F10.3, 6x, L1))
201 format(1H0/1H0)
202 format(7H0INCID(,i2,13H, 1)...INCID(, i2, 1H,,i2, 3H) = ,
1 40(L1, 1x)/ (1H, 29x, 40(L1, 1x)))
203 format(3H0D(,i2, 9H, 1)...D(,i2,1H,,i2, 1H), 9x, 1H= , 8F10.3 /
1 (1H, 29x, 8F10.3))
204 format(3H0L(,i2, 9H, 1)...L(,i2,1H,,i2, 1H), 9x, 1H= , 8F10.3 /
1 (1H, 29x, 8F10.3))
205 format(1H0/ 5H0ITER,7x,16HPRESSURE AT NODE/ (1H,11x,8(i1,9x)))
206 format(1H, i3, 3x, 8F10.4/ (1H , 6x, 8F10.4))
207 format(35H0SOLUTIONS FAILED TO CONVERGE AFTER,i3,11H ITERATIONS)
208 format(1H0/26H0PRESSURES AND FLOWS AFTER, i3,15H ITERATIONS ARE/
1 3H0 i,5x,4HP(i),7x,16HQ(i, 1)...Q(i,,i2,1H) / 1H , 7x, 3HPSI,
2 14x, 7HGAL/MIN//)
209 format(1H , i2, F10.4, 5x, 8F10.3/ (1H , 17x, 8F10.3))
end



Cette discussion est classée dans : caractère, chose, calcul, modulo, arithmétique


Répondre à ce message

Sujets en rapport avec ce message

calcul modulo [ par cycy07 ] bonsoir,je dois calculer c= m exposant e modulo rvoici comment j'ai procédé :mes variables sont :e1,expo,m,r1,x,c:real;//Encryptage par le tiers de M Caractère alphabetique majuscule [ par Tank01 ] Bonjour, Je voulais savoir comment exprimé en delphi un caractère en Alphabetique Masjuscule ( afin de faire un teste dans IF) ? Merci beaucoup et b Requête paramétrées sous delphi 2006 [ par jule49 ] Bonjour,Je voulais savoir si quelqu'un avait entendu parlé des preparedstatement en JAVA (Requête précompilé). Si oui, je voulais savoir si il existai chaine de caractère [ par e14273 ] salut, j'essai de supprimer tous les espaces dans une chaine, ex: b onj our => bonjour, je sais k'il existe des fonctions tte faite pour ça dans pa Une procédure peut elle retourner un entier? [ par saiyajin3 ] Voilà : Je souhaiterais que ma procédure fasse un calcul et me retourne un entier mais ça ne marche pas comme ça:procedure Calcul(num: integer ; num2 Probleme avec AND, ET logique [ par picolo5 ] Salut a tous !!J essaye de porter un code C++ vers Delphi 2005, Je coince avec un calcul binaire, je ne me souvient plus comment s'appelle se calcul   Manipulation de chaine de caractère [ par CharlyLima ] Petit SOSSur Delphi 7 vers française.J'essais d'utiliser "MidStr" sous cette forme : Famille := MidStr (MotComplet[W],7,1);Afin d'obtenir dans Famille Reconnaisse de caractère [ par vivelesquads ] Bonjour,J'ai besoin dans un de mes programme en Delphi d'inclure une reconnaissance de caractères(que des chiffres). Connaissez-vous des composants, d Lire & Supprimer un caractère dans un fichier [ par Encore1ben ] Bonjour,J'ai repris le code source de mon prédécesseur concernant une application qui est censé formater un fichier texte en un autre. Malheureusement suppression d'une feuille de calcul! [ par othland ] en créant un document excel avec la technique OLE, je manipule un document qui contient 3 feuilles de calcul.or moi, je n'en ai besoin que de 2 feuill


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 1,747 sec (4)

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