Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| Comment afficher une chaine de caractères? | |
| | |
Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 18:02 | |
| Salut tout le monde ! Comment afficher sur un FORM, une chaine de caractères (entière avec des retours à la ligne si nécessaire) dont la longueur dépasse la capacité d’une ligne ? On ne connait pas d’avance la longueur de la chaîne (elle est générée au fur et à mesure dans le programme). Doit-on obligatoirement utiliser un MEMO au lieu d’un FORM dans ce cas précis ? Existe-t-il une autre approche? Voici un bout de code pour illustrer mes propos. - Code:
-
dim a$ a$ = string$(5971,"1") ' print "DEBUT" + a$ + "FIN" : ' seuls les premiers caractères sont imprimés memo 2 : width 2,700 : height 2,700 : print_target_is 2 : print "DEBUT" + a$ + "FIN"
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 18:24 | |
| Salut Papydall, Je ne suis pas certain que çà réponde à ton besoin, mais je te propose ceci: - Code:
-
dim a$,a,n width 0,700:height 0,600
a =1000 repeat a=a-1:n=n+1 a$=a$+"1" if n=30 then print a$:n=0:a$="" until a=0
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 18:31 | |
| Bonjour, Je ne suis pas sûr que ça réponde à son problème, puisqu'il ne connaît pas à l'avance la taille de la chaîne, et je ne vois pas de solution, à part un memo... (les sauts de ligne chr$(13)+chr$(10) sont ignorés). Mais je constate un truc un peu curieux, à partir d'une certaine longueur de chaîne (trouvée par tâtonnement), plus rien ne s'affiche: - Code:
-
dim a$, n
n = 4677: ' longueur totale de la chaîne a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" n = 4678: a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" n = 4679: a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" ' à partir d'ici, plus rien ne s'affiche, seulement une ligne vide n = 4680: a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" n = 4681: a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" print "toto" mais c'est peut-être dû à windows 7 ? | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 20:05 | |
| @JL35, Sous XP, c'est pareil, mais je pense qu'il s'agit du nombre de caractères qui est top important. J'ai repris ton code en diminuant le nombre de caractères et cette fois, tout s'affiche. - Code:
-
dim a$, n
n = 677: ' longueur totale de la chaîne a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" n = 678: a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" n = 679: a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" ' à partir d'ici, plus rien ne s'affiche, seulement une ligne vide n = 680: a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" n = 681: a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" print "toto"
Mais de toute manière PRINT est limité a la taille de FORM. A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 20:23 | |
| Après réflexion, je pense que la solution n'est pas simple. C'est fonction de plusieurs critères: 1) la taille de l'écran 2) la taille de la police employée (il faudrait utiliser une police fixe comme fixedsys) 3) l'objet utilisé (Form, Memo, List, ..) à partir de là, on calcule le nombre de caractères qui tiennent dans le WIDTH,SCREEN_X (taille de l'écran) J'ai encore diminué le nombre de caractères de ton code et remplacé n-8 par n car il s'agit d'afficher tout les caractères de a$ - Code:
-
dim a$, n width 0,screen_x n = 77: ' longueur totale de la chaîne a$ =STR$(n)+" "+string$(n-8,"1"): print a$ + "FIN" n = 78: a$ =STR$(n)+" "+string$(n,"1"): print a$ + "FIN" n = 79: a$ =STR$(n)+" "+string$(n,"1"): print a$ + "FIN" ' à partir d'ici, plus rien ne s'affiche, seulement une ligne vide n = 80: a$ =STR$(n)+" "+string$(n,"1"): print a$ + "FIN" n = 81: a$ =STR$(n)+" "+string$(n,"1"): print a$ + "FIN" print "toto"
A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 20:32 | |
| Salut à tous! Je reformule mon problème : Je dispose d’une chaine de caractères A$ qui comporte 35 660 chiffres (de 0 à 9). Cette chaine est calculée dans le programme. Je désire afficher, à l’écran la phrase suivante : N = ….. (Les points de suspension représentent les 35 660 chiffres)
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 21:05 | |
| Il s'agit de la situation de ton compte en banque ? Si tu dois absolument afficher dans un Form, je ne vois pas d'autre solution que 1) d'utiliser une police de caractères fixe 2) d'afficher ta chaîne en morceaux d'égale longueur qui tiennent dans la form en largeur, et ça fait un paquet de morceaux ! On ne voit pas très bien l'intérêt d'afficher à l'écran une suite de 35660 chiffres, ça doit être dur à lire et à exploiter (mais je pense bien que tu dois avoir une bonne raison).PS @Jean Claude je sais bien qu'en dessous ça marchait, j'ai simplement affiché la limite à partir de laquelle ça ne marchait plus (chaîne supérieure à 4979 caractères au total). Ce nombre était la taille totale, le n-8 c'était pour tenir compte de la taille affichée en tête et du mot 'FIN', qui s'ajoutent. | |
| | | Invité Invité
| Sujet: Re: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 22:33 | |
| Bonsoir, Je ne sais pas si c'est pour l'affichage, ou pour avoir l'entier d'un string. Dans le deuxième cas, dans un edit, tu peux y mettre plusieurs millions de caractères. Donc là, cela fonctionne. Travaillant sur clé USB, vu le peu de mémoire à ma disposition, je ne vais pas non plus suturer celle-ci. Mais il faut voir la sauvegarde, et la relecture.
Est-ce que ça apporte une solution, ça c'est autre chose. |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Comment afficher une chaine de caractères? Jeu 12 Avr 2012 - 23:31 | |
| Salut à tous ! Je pense avoir trouvé une solution à mon problème ! Je fournirais tout à l’heure un petit programme illustrant la solution ! @JL35 : mon compte en banque ne comporte, hélas, que quelques chiffres ! Afficher à l’écran une suite interminable de chiffres n’a absolument aucun intérêt. Mais lorsque je m’ennuie, j’invente des choses inutiles ! Merci à vous tous pour m’avoir répondu. Et à très bientôt, j’espère !
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Comment afficher une chaine de caractères? Ven 13 Avr 2012 - 3:37 | |
| Salut à tous ! Voici à quoi a servi ma question. Je veux calculer la fonction FACTORIELLE N avec tous ses chiffres et l’afficher. Petit rappel : Factorielle N est notée N ! et se calcule comme suit : N ! = 1*2*3*….*N 1 ! = 1 2 ! = 1*2 = 2 3 ! = 1*2*3 = 6 4 ! = 1*2*3*4 = 24 ……. 10 ! = 3628800 100 ! Comporte 158 chiffres Le programme suivant qui ne sert absolument à rien peut calculer jusqu’ à 10 000 ! qui comporte 35 660 chiffres - Code:
-
' ****************************************************************************** ' ' N! ' FACTORIELLE N AVEC TOUS SES CHIFFRES ' Par Papydall ' ' ******************************************************************************
' Ce programme peut calculer factorielle N avec tous ses chiffres ' jusqu'à factorielle 10 000.Mais il faut attendre très longtemps ' puisque 10 000! comporte 35 660 chiffres et son impression se ' ferait sur 7 pages environs.
' 500! comporte 1135 chiffres ' 1000! comporte 2568 chiffres ' 2000! comporte 5736 chiffres dim r(1000),a$ dim n,m,maxi,e5,e4,k,ret,s,a,b,c,c1,c2,b2,l ,l1
label init,calcul,debut,suite,zeros while n < 1 input "N = "; n end_while caption 0, "Veuillez patienter, je calcule <ESC> pour arrêter"
memo 1 : width 1,590 : height 1,450 print_target_is 1
gosub init gosub calcul end
init: r(1) = 0.00001 : m = 2 : maxi = 1 : e5 = 100000 : e4 = 10000 k = 1 : ret = 0 return calcul: debut: while k <= maxi s = r(k) b = int(s) : a = int(e5 * (s - b) + 0.5) c = (ret + a * m) / e5 : ' Multiplication de la dernière tranche par M c2 = int(c) : c1 = int(e5 * (c - c2) + 0.5) / e5 b2 = b * m + c2 : ' Multiplication de la première tranche par M if b2 >= e4
' Création d'une tranche supplementaire b2 = b2 / e4 : ret = int(b2) r(k) = int(0.5 + (b2 - ret) * e4) + c1 k = k + 1 if scancode = 27 then terminate end_while r(k) = ret / e5 : maxi = maxi + 1 goto suite end_if r(k) = b2 + c1 : ret = 0 if k <> maxi then k = k + 1 : goto debut suite: m = m + 1 : if m <= n then k = 1 : ret = 0 : goto debut ' Affichage du resultat print n ; " ! = " : print for k = maxi to 1 step -1 s = int(0.5 + r(k) * e5) if s = 0 l = 8 : gosub zeros a$ = a$ + str$(s) else l = 8 - int(log(s + 0.5) / log(10)) if l = 0 or k = maxi a$ = a$ + str$(s) else gosub zeros : a$ = a$ + str$(s) end_if end_if next k if n = 1 then a$ = "1" print a$ print : print n ; " ! comporte ";len(a$); " chiffres" return
zeros: ' L est le nombre de zéros à imprimer en tête de la tranche for l1 = 1 to l a$ = a$ + "0" next l1 return
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Comment afficher une chaine de caractères? Ven 13 Avr 2012 - 13:26 | |
| Merci Papydall, très joli | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Comment afficher une chaine de caractères? Ven 13 Avr 2012 - 20:44 | |
| Salut tout le monde. J'ai édité le programmeTel qu'il est, il permet le calcul de 2950! qui comporte déjà 8957 chiffres. Pour aller plus loin, vous trouverez les explications dans les REM du programme. - Code:
-
' ****************************************************************************** ' ' N! ' FACTORIELLE N AVEC TOUS SES CHIFFRES ' Par Papydall ' ' ******************************************************************************
' Ce programme peut calculer factorielle N avec tous ses chiffres ' jusqu'à factorielle 10 000.Mais il faut attendre très longtemps ' puisque 10 000! comporte 35 660 chiffres et son impression se ' ferait sur 7 pages environs.
' 500! comporte 1135 chiffres ' 1000! comporte 2568 chiffres ' 2000! comporte 5736 chiffres dim r(1000) : ' Toutes les factorielles ayant au plus 9000 sont calculables. ' Ce qui permet d'atteindre 2950! qui possède déjà 8957 chiffres. ' Pour aller plus loin, il faut modifier la dimension de r. ' Exemple : Avec DIM R(4000), on peut atteindre 10 000!. ' Mais le temps de calcul sera xcessivement long. dim a$,c$,n,m,maxi,e5,e4,k,ret,s,a,b,c,c1,c2,b2,l ,l1
label init,calcul,suite,zeros while n < 1 input "N = "; n end_while c$ = "Veuillez patienter, je calcule <ESC> pour arrêter"
caption 0, c$ memo 1 : width 1,590 : height 1,450 print_target_is 1
gosub init gosub calcul end
init: r(1) = 0.00001 : m = 2 : maxi = 1 : e5 = 100000 : e4 = 10000 k = 1 : ret = 0 return calcul:
while k <= maxi s = r(k) b = int(s) : a = int(e5 * (s - b) + 0.5) c = (ret + a * m) / e5 : ' Multiplication de la dernière tranche par M c2 = int(c) : c1 = int(e5 * (c - c2) + 0.5) / e5 b2 = b * m + c2 : ' Multiplication de la première tranche par M if b2 >= e4
' Création d'une tranche supplementaire b2 = b2 / e4 : ret = int(b2) r(k) = int(0.5 + (b2 - ret) * e4) + c1 k = k + 1 if scancode = 27 then terminate end_while r(k) = ret / e5 : maxi = maxi + 1 goto suite end_if r(k) = b2 + c1 : ret = 0 if k <> maxi then k = k + 1 : goto calcul suite: m = m + 1 : if m <= n then k = 1 : ret = 0 : goto calcul ' Affichage du resultat print n ; " ! = " : print for k = maxi to 1 step -1 s = int(0.5 + r(k) * e5) if s = 0 l = 8 : gosub zeros a$ = a$ + str$(s) else l = 8 - int(log(s + 0.5) / log(10)) if l = 0 or k = maxi a$ = a$ + str$(s) else gosub zeros : a$ = a$ + str$(s) end_if end_if
next k if n = 1 then a$ = "1" print a$ print : print n ; " ! comporte ";len(a$); " chiffres" return
zeros: ' L est le nombre de zéros à imprimer en tête de la tranche for l1 = 1 to l a$ = a$ + "0" next l1 return
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une chaine de caractères? Ven 13 Avr 2012 - 21:41 | |
| Chapeau ! j'ai hâte de pouvoir calculer la factorielle de 10000 ! et d'apprendre le résultat par coeur...
Sinon, y a-t'il une relation simple entre le nombre dont on calcule la factorielle, le le nombre de chiffres obtenus ? ça doit croître très vite ... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Comment afficher une chaine de caractères? Ven 13 Avr 2012 - 21:42 | |
| Papydall, si je peux te donner un conseil pour ce type de programme, utilise plutôt - Code:
-
N=val(message_input$("Saisie du factoriel à calculer", "N = ","")) à la place de input "N = "; n Avantages, on peut éditer le texte si on ce trompe et limiter les erreurs de saisies | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Comment afficher une chaine de caractères? Ven 13 Avr 2012 - 23:36 | |
| Salut tout le monde ! @JL35 : Personnellement, je ne connais pas de relation entre le nombre dont on veut calculer la factorielle et celui des chiffres obtenus. Quant à apprendre par cœur le résultat de 10000 !, je te propose plus simple : les 250 décimales de e : (le fameux nombre e qui est la base des logarithmes). @Jicehel : Merci pour le conseil, je prends. J’ai toujours été (et je le suis encore) bon élève quand je trouve un bon prof. - Code:
-
' ************************************************************* ' ' Calcul des 250 premières décimales de e ' ' Par Papydall ' ' ************************************************************* dim x(52) dim b,n,i,q,u,r,s$,r$ caption 0, "Les 250 premières décimales de e" memo 1 : width 1,590 : height 1,450 print_target_is 1
b = 100000 : x(0) = 1 for n = 144 to 1 step -1 for i = 0 to 51 q = int(x(i)/n) : r = x(i)-q*n x(i) = q: x(i+1) = x(i+1)+b*r next i x(0) = x(0) + 1 next n
x(50) = x(50)+int(x(51)/b+0.5) for i = 50 to 1 step -1 u = int(x(i)/b) : x(i) = x(i)-b*u : x(i-1) = x(i-1)+u next i r$ = "e = 2." for i = 1 to 50 s$ = str$(x(i)) while len(s$) < 5 : s$ = "0"+s$ : end_while r$ = r$ + s$+" " next i print r$ end ' ****************************************************************
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une chaine de caractères? Ven 13 Avr 2012 - 23:48 | |
| euh... 7 décimales de pi et 3 décimales des racines des premiers nombres ça me suffit largement dans la vie courante ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 0:43 | |
| Papydall, dis moi, tu as étas prof de maths ? ^^ En tout cas, tes maths appliquées, c'est sympa et perso ça fait tellement longtemps que je n'en faisait plus que ça me fait le plus grand bien... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 0:56 | |
| Non Jicehel. Je n’étais pas prof de maths. J’étais ingénieur-adjoint en météorologie. J’ai aimé et j’aime toujours les maths. C’est la science la plus facile (ou la moins difficile !). Bof, chacun son truc ! Et pour clore ce sujet, voici les premières décimales de PI et le programme qui les génère. - Code:
-
' LES 2399 premières décimales de pi ' PI = 3. ' 141 592 653 589 793 238 462 643 383 279 502 884 197 169 399 375 105 820 974 ' 944 592 307 816 406 286 208 998 628 034 825 342 117 067 982 148 086 513 282 ' 306 647 093 844 609 550 582 231 725 359 408 128 481 117 450 284 102 701 938 ' 521 105 559 644 622 948 954 930 381 964 428 810 975 665 933 446 128 475 648 ' 233 786 783 165 271 201 909 145 648 566 923 460 348 610 454 326 648 213 393 ' 607 260 249 141 273 724 587 006 606 315 588 174 881 520 920 962 829 254 091 ' 715 364 367 892 590 360 011 330 530 548 820 466 521 384 146 951 941 511 609 ' 433 057 270 365 759 591 953 092 186 117 381 932 611 793 105 118 548 074 462 ' 379 962 749 567 351 885 752 724 891 227 938 183 011 949 129 833 673 362 440 ' 656 643 086 021 394 946 395 224 737 190 702 179 860 943 702 770 539 217 176 ' 293 176 752 384 674 818 467 669 405 132 000 568 127 145 263 560 827 785 771 ' 342 757 789 609 173 637 178 721 468 440 901 224 953 430 146 549 585 371 050 ' 792 279 689 258 923 542 019 956 112 129 021 960 864 034 418 159 813 629 774 ' 771 309 960 518 707 211 349 999 998 372 978 049 951 059 731 732 816 096 318 ' 595 024 459 455 346 908 302 642 522 308 253 344 685 035 261 931 188 171 010 ' 003 137 838 752 886 587 533 208 381 420 617 177 669 147 303 598 253 490 428 ' 755 468 731 159 562 863 882 353 787 593 751 957 781 857 780 532 171 226 806 ' 613 001 927 876 611 195 909 216 420 198 938 095 257 201 065 485 863 278 865 ' 936 153 381 827 968 230 301 952 035 301 852 968 995 773 622 599 413 891 249 ' 721 775 283 479 131 515 574 857 242 454 150 695 950 829 533 116 861 727 855 ' 889 075 098 381 754 637 464 939 319 255 060 400 927 701 671 139 009 848 824 ' 012 858 361 603 563 707 660 104 710 181 942 955 596 198 946 767 837 449 448 ' 255 379 774 726 847 104 047 534 646 208 046 684 259 069 491 293 313 677 028 ' 989 152 104 752 162 056 966 024 058 038 150 193 511 253 382 430 035 587 640 ' 247 496 473 263 914 199 272 604 269 922 796 782 354 781 636 009 341 721 641 ' 219 924 586 315 030 286 182 974 555 706 749 838 505 494 588 586 926 995 690 ' 927 210 797 509 302 955 321 165 344 987 202 755 960 236 480 665 499 119 881 ' 834 797 753 566 369 807 426 542 527 862 551 818 417 574 672 890 977 772 793 ' 800 081 647 060 016 145 249 192 173 217 214 772 350 141 441 973 568 548 161 ' 361 157 352 552 133 475 741 849 468 438 523 323 907 394 143 334 547 762 416 ' 862 518 983 569 485 562 099 219 222 184 272 550 254 256 887 671 790 494 601 ' 653 466 804 988 627 232 791 786 085 784 383 827 967 976 681 454 100 953 883 ' 786 360 950 680 064 225 125 205 117 392 984 896 084 128 488 626 945 604 241 ' 965 285 022 210 661 186 306 744 278 622 039 194 945 047 123 713 786 960 956 ' 364 371 917 287 467 764 657 573 962 413 890 865 832 645 995 813 390 478 027 ' 590 099 465 764 078 951 269 468 398 352 595 709 825 822 620 522 489 407 726 ' 719 478 268 482 601 476 990 902 640 136 394 437 455 305 068 203 496 252 451 ' 749 399 651 431 429 809 190 659 250 937 221 696 461 515 709 858 387 410 597 ' 885 959 772 975 498 930 161 753 928 468 138 268 683 868 942 774 155 991 855 ' 925 245 953 959 431 049 972 524 680 845 987 273 644 695 848 653 836 736 222 ' 626 099 124 608 051 243 884 390 451 244 136 549 762 780 797 715 691 435 997 ' 700 129 616 089 441 694 868 555 848 406 353 422 072 225 828 488 648 158 456 ' 028 50
dim f(8401) dim a,b,c,d,e,g,s$,x$ caption 0,"Les premières décimales de PI Veuillez patienter <ESC> pour arrêter" memo 1 : width 1,590 : height 1,450 print_target_is 1 ' a = 100 : c = 84 : ' 11 décimales de PI ' a = 1000 : c = 840 : ' 176 décimales de PI a = 2000 : c = 1680 : ' 406 décimales de PI ' a = 10000 : c = 8400 : ' 2399 décimales de PI
WHILE b <> c : f(b) = int(a / 5) : b = b + 1 : end_while WHILE (c > 0) g = 2 * c : d = 0 : b = c WHILE (b > 0) d = d + f(b) * a : g = g - 1 : f(b) = MOD(d, g) d = int(d / g) : g = g - 1 : b = b - 1 IF (b <> 0) THEN d = d * b END_while c = c - 14 : x$ = STR$(e + int(d / a)) s$ = s$ + x$ : e = MOD(d,a) while scancode = 27 : end : end_while END_while print " PI = 3." : print mid$(s$,2,len(s$)-1) print : print str$(len(s$)-1) + " décimales de PI"
Dernière édition par papydall le Jeu 20 Déc 2012 - 11:47, édité 1 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 9:31 | |
| D'abord merci pour ce source, bon comme tu m'aide en maths, je t'aide avec un petit truc pour que le programme fonctionne mieux. Tu peux virer la ligne : - Code:
-
while scancode = 27 : end : end_while et mettre dans ta boucle principal simplement: - Code:
-
WHILE (c > 0) and scancode <> 27 (pareil pour WHILE (b > 0), ajouter and scancode <> 27)
Dernière édition par Jicehel le Sam 14 Avr 2012 - 9:52, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 9:34 | |
| Bonjour papydall, 2399 décimales... il y en a 627 au Palais de la Découverte. Pour les premières décimales, il y a aussi ça, que tout le monde connaît: Que j'aime à faire apprendre un nombre utile aux sages ! Immortel Archimède, artiste ingénieur, Qui de ton jugement peut priser la valeur ? Pour moi, ton problème eut de pareils avantages. etc. C'est plus poétique. Mais moins scientifique. Mais plus facile à retenir !
(on s'est croisés Jicehel) | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 9:55 | |
| Cool, on a un mentor en maths ET un mentor en français... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 9:58 | |
| manque plus qu'un mentor en Panoramic | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 10:33 | |
| Et encore, on a Klaus quand même ... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 11:04 | |
| Bonjour tout le monde! @Jicehel: Merci pour ton truc de programmation; ça peut améliorer ma façon de programmer. Ne me prive pas de tes conseils si tu en as envi. @JL35 : Il y a aussi le poème en anglais suivant qui est tout aussi célèbre que celui que tu mentionne :
Yes, I have a great statement to relate. May I have a large container of coffee How I wish I could recollect of circle round The exact relation Archimede unwound. How I want a drink, alcoholic of course, after the heavy lectures involving quantum mechanics! How I wish I could enumerate Pi easily, since all these horrible mnemonics prevent recalling any of pi's sequence more simply. See, I have a rhyme assisting my feeble brain, its tasks sometimes resisting. But a time I spent wandering in bloomy night ; Yon tower, tinkling chimewise, loftily opportune. Out, up, and together came sudden to Sunday rite, The one solemnly off to correct plenilune.
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Comment afficher une chaine de caractères? Sam 14 Avr 2012 - 13:39 | |
| Tout aussi célèbre pour les anglo-saxons, sans doute, quant à moi je ne connaissais pas du tout (plus difficile à retenir) ! | |
| | | Contenu sponsorisé
| Sujet: Re: Comment afficher une chaine de caractères? | |
| |
| | | | Comment afficher une chaine de caractères? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |