Nos chère BASIC

Tout sur les ordinateurs, liens, infos...Avec un thread par machine. Si la machine n'y est pas , créez le premier post la concernant dans ce forum

Modérateur : Politburo

Avatar du membre
Pocket
Administrateur
Administrateur
Messages : 5940
Enregistré le : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: Nos chère BASIC

Message par Pocket »

Salut,

Quand on programme 'sérieusement', on ne fait pas de boucles avec des flottants ... ;)

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image
Avatar du membre
Fabrice Montupet
Administrateur
Administrateur
Messages : 11083
Enregistré le : 17 mai 2002 11:39
Localisation : Nevers - France

Re: Nos chère BASIC

Message par Fabrice Montupet »

Pourquoi donc?
Après, dans l'exemple, on peut très bien réaliser une boucle classique avec condition de sortie.
Avatar du membre
Pocket
Administrateur
Administrateur
Messages : 5940
Enregistré le : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: Nos chère BASIC

Message par Pocket »

Salut,

Parce que t'es dépendant de l'implémentation, et donc en fonction du langage ou du compilo le comportement peux varier.
Une des rêgles de l'art consiste à utiliser des entiers pour tout ce qui est boucles, compteurs ...

Je dis ça, je dis rien, chacun est libre de se créer de la charge de déverminage ;)

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image
Avatar du membre
Ythunder
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4549
Enregistré le : 09 août 2008 17:46
Localisation : 03

Re: Nos chère BASIC

Message par Ythunder »

Pocket a écrit : 14 nov. 2017 09:00 Je dis ça, je dis rien, chacun est libre de se créer de la charge de déverminage ;)
Oui d'ailleurs ces types sont étranges et forment une sorte de communauté.
Ils se rassemblent tout les hiver d'ailleurs je crois :lol: :lol: :lol:
Quand je lis ça "oui des passionnées qui modifie des machines pour en faire des moutons a 5 pattes qui n'ont plus rien a voir avec la machine d'origine afin de faire la video choc sur youtube..."

Ca me fait rire. Perso, je n'ai ni chaine youtube sur les machines et je n'ai aucun mouton à 5 pattes qui n'a pàlus rien a voir avec des machines d'origine. Mais à qui s'adressait on ?
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5226
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: Nos chère BASIC

Message par bernouilli92 »

Pocket a écrit : 13 nov. 2017 21:06 Salut,

Quand on programme 'sérieusement', on ne fait pas de boucles avec des flottants ... ;)

A+J
Ou plus généralement quand on teste des flottants, il faut tester un intervalle avec marge d'erreur et non une valeur exacte
Modifié en dernier par bernouilli92 le 14 nov. 2017 11:55, modifié 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1549
Enregistré le : 21 août 2016 19:04

Re: Nos chère BASIC

Message par Ben »

Pocket a écrit : 14 nov. 2017 09:00 Salut,

Parce que t'es dépendant de l'implémentation, et donc en fonction du langage ou du compilo le comportement peux varier.
Une des rêgles de l'art consiste à utiliser des entiers pour tout ce qui est boucles, compteurs ...

Je dis ça, je dis rien, chacun est libre de se créer de la charge de déverminage ;)

A+
Sur Commodore en tout cas, une boucle FOR ne peut pas avoir un entier

Code : Tout sélectionner

FOR I%=1 TO 20
Ca donne une erreur de syntaxe.
Avatar du membre
Pocket
Administrateur
Administrateur
Messages : 5940
Enregistré le : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: Nos chère BASIC

Message par Pocket »

Salut,
Ben a écrit : 14 nov. 2017 09:43Sur Commodore en tout cas, une boucle FOR ne peut pas avoir un entier
Je ne suis pas expert du C64, mais je doute fort de cette affirmation.

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image
Avatar du membre
rogeroge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4227
Enregistré le : 14 mai 2010 21:41
Localisation : Entre Nancy et Bercy : à Torcy

Re: Nos chère BASIC

Message par rogeroge »

A ma connaissance (donc faible), dans le listing de Ben, le problème vient du pas de 0.2 qui n'est pas entier.
Xjano dans son listing multiplie la variable I et le pas par 10, ce qui rend les valeurs successives de I entières.
Et à cette condition, le programme fonctionne, la boucle s'effectuant avec des nombres entiers exclusivement.
Il faut être fou pour venir sur ce site mais encore plus fou pour ne pas y revenir !
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5226
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: Nos chère BASIC

Message par bernouilli92 »

Pocket a écrit : 14 nov. 2017 11:04 Salut,
Ben a écrit : 14 nov. 2017 09:43Sur Commodore en tout cas, une boucle FOR ne peut pas avoir un entier
Je ne suis pas expert du C64, mais je doute fort de cette affirmation.

A+
Je viens de tester et effectivement en utilisant I% comme variable de boucle, cela renvoit une erreur de syntaxe.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4642
Enregistré le : 31 oct. 2006 15:08
Localisation : 67310 Westhoffen
Contact :

Re: Nos chère BASIC

Message par pir2 »

Oauis, enfin le programme original montre seulement que l'addition de flottants donne un résultat flottant, quoi de plus normal :?:

;)
Image
Image
jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2362
Enregistré le : 16 févr. 2008 23:34
Localisation : Paris 20ème

Re: Nos chère BASIC

Message par jxano »

Pour être propre, on aloute DEFINT I en débit de programme (ça doit être possible sur C64) et on utilise I sans suffixe.
Programmeur abscons.
Avatar du membre
rogeroge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4227
Enregistré le : 14 mai 2010 21:41
Localisation : Entre Nancy et Bercy : à Torcy

Re: Nos chère BASIC

Message par rogeroge »

jxano a écrit : 16 nov. 2017 14:17 Pour être propre, on aloute DEFINT I en débit de programme (ça doit être possible sur C64) et on utilise I sans suffixe.
Tout à fait et à la condition que le pas reste aussi un nombre entier en GW>-BASIC : .2 ---> 2
Ton idée de tout multiplier par 10 est bonne quitte à rediviser par 10 pour répondre au programme.
Il faut être fou pour venir sur ce site mais encore plus fou pour ne pas y revenir !
Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1549
Enregistré le : 21 août 2016 19:04

Re: Nos chère BASIC

Message par Ben »

jxano a écrit : 16 nov. 2017 14:17 Pour être propre, on aloute DEFINT I en débit de programme (ça doit être possible sur C64) et on utilise I sans suffixe.
Sur C64, on ne sait pas déclarer les variables. Elles se déclarent au fur et à mesure de leur utilisation. Une variable prend 6 bytes, pas plus.
jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2362
Enregistré le : 16 févr. 2008 23:34
Localisation : Paris 20ème

Re: Nos chère BASIC

Message par jxano »

Effectivement, un DEFINT I et un pas (STEP) non entier, ça ne peut pas marcher.

DEFINT I ne déclare pas une variable I (dans le sens réserver un espace mémoire) ; ça précise seulement que toutes les variables commençant par I sont de type entier.
Programmeur abscons.
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5631
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

Re: Nos chère BASIC

Message par ledudu »

Je comprends mieux:
Image
Répondre

Retourner vers « Tous les ordinateurs »