Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » BASIC » déclaration de variable qbasic 4.5

ricochet
ProgBoarder
Citer Windows XP Firefox 2 - Posté le 23/12/2007 à 10:50
bonjour à tous,

Je suis nouveau sur ce forum et je cherche à m'initier à la programation en basic.
J'entre au clavier la ligne de code suivante: dim variable as boolean
il semblerai que qbasic ne reconnaisse pas boolean.
N'est-t-il pas possible de déclarer une variable de type booleene avec le qbasic 4.5?
-Si oui, comment?
-Si non, pourquoi?
-existe- t -il une méthode de substitution a ce problème?laquelle?
merci d'avance pour vos réponce.
neamar
Modérateur
RemonterCiter Windows NT Firefox 2 - Posté le 23/12/2007 à 11:25
Salut,
Tu peux utiliser n'importe quel type de variables entières comme un booléen : 0 =>False, toutes les autres valeurs= true.

En tout cas, c'est comme ça que je les utilise...
Before you criticize someone, you should walk a mile in their shoes. That way when you criticize them, you are a mile away from them and you have their shoes.

http://neamar.free.fr
Ou le portail général : http://neamar.fr
Freem
Modérateur
RemonterCiter Windows NT Firefox 2 - Posté le 23/12/2007 à 12:04
Pour le pourquoi du sinon, c'est assez simple, tu utilises du QB ^^ Pour être honnête, même dans les langages plus évolués utilisant un type booléen, je crain que ce ne soit qu'une substitution, en réalité, ils utilisent la feinte que neamar te décrit, mais de manière interne au langage, ce qui fait que le programmeur à l'impression que c'est différent (clein d'oeil)
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
ricochet
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 23/12/2007 à 22:08
Ok,pour ne pas gaspiller de mémoire inutilement ,je déclare donc mon booleen comme un entier, soit:
dim monbooleen as integer
ensuite je remplace les false par 0 et les true par 1 par exemple.Effectivement ,CA MARCHE! chouette...Grace a vous je vais pouvoir continuer mes exercices avec mon qbasic 4.5 en français.
Toujours par rapport à ça,j'aurrais encore une petite question:
le programme réservera-t-il la mème place en mémoire pour une variable que j'aurrais déclarée "integer" que pour une variable que j'aurrai déclaré"boolean"?
MERCI ENCORE
bipbip
ProgBoarder
RemonterCiter Windows 98 Msie 5 - Posté le 23/12/2007 à 23:58
Je ne comprent pas ce que tu veux dire, ricochet, mais sache qu'avec Quickbasic, pas besoin de déclarer les variables: tu peut utiliser les suffixes %, &, !, # et $.
Correspondance:
-% signifit INTEGER, pour les entiers de -32767 à 32767 (2 octets)
-& signifit LONG, pour les entiers de -2147483647 à 2147483647 (4 octets)
-! signifit SINGLE, pour les simples précisions (4 octets)
-# signifit DOUBLE, pour les doubles préciisions (8 octets)
-$ signifit STRING, pour les chaînes de caractères (1 octets par caractère)

Quand je parle d'un suffixe, c'est par exemple :

INPUT "Quel est votre nom?", nom$
PRINT "Bonjour"; nom$;"!"
INPUT "Ca va?";rep$
IF rep$ = "oui" THEN
CLS
INPUT "Choisissez un niveau de difficulté entre 1 et 1000

NB1% = INT(RND * niv) + 100
NB2% = INT(RND * niv) + 50
NB3& = NB1% + NB2%

PRINT NB1%; "+"; NB2%; "=";
INPUT ""; resultat&
IF resultat& = NB3& THEN
PRINT "Bravo! Vous avez gagné!"
END

ELSE
PRINT "Perdu!":
END
END IF
IF rep$ = "non" THEN PRINT "Au revoir!"
IF rep$ <> "oui" AND rep$ <> "non" THEN PRINT "Pardon?" : END
;)

Edité par bipbip ( 24/12/2007 00:08:46 )
bipbip
Freem
Modérateur
RemonterCiter Windows NT Firefox 2 - Posté le 24/12/2007 à 00:22
bipbip, ricochet à raison de prendre un bon réfléxe qui est de déclarer les variables.
Il est d'ailleurs conseillé de les déclarer en bloc, au même endroit du code, au maximum, afin d'aider à la clarté du code.
Et un code plus lisible contient invariablement moins d'erreurs, et celles qu'il contient sont plus simples à débusquer et corriger.

Maintenant, pour répondre à la question, oui, dans ton cas, les integer prennent autant de place que les booléens en mémoire, car se sont en fait des integer déguisés (clein d'oeil) mais je te rassure, le type booléen est une invention des langages de haut niveau, et quelque soit le langage utilisé à ma connaissance, utilise un octet par booléen.
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
ricochet
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 24/12/2007 à 18:39
Bipbip,
Tu dis avec qbasic pas besoin de déclarer les variables,sauf erreur de ma part,par la méthode des suffixes $,%,#,!,& tu déclare belle et bien tes variables.
Déclarer une variable,d'une manière ou d'une autre,c'est lui réserver une place minimum suffisante en mémoire.Ne pas déclarer cette variables c'est lui réservé trop de place et c'est gaspiller la mémoire.c'est comme de prévoir un 38 tonne pour y stocker une boite de crayon de couleur.je voulais juste savoir si je ne risquai pas de réservé trop de place en mémoire pour un booléen en le déclarant comme un entier.C'est juste histoire de prendre de bonnes habitudes! Neamar et Freem ont répondu à ma question et j'ai compris maintenant.
Bipbip,à la fin de la 6ieme ligne de ton code :input"choisissez... il manque un"et un ;ou un,plus une variable (reponse% par exemple).il y a des end à la place des end if et vice versa.
il est coquin bipbip!... il a voulu voir si je suivais!...(sourire)
Merci à vous trois pour l'interet que vous portez a mes questions.J'en aurai bientôt d'autres!
Bonnes fêtes de noel à tous.

Edité par neamar ( 25/12/2007 20:32:33 )
Freem
Modérateur
RemonterCiter Windows NT Firefox 2 - Posté le 24/12/2007 à 18:41
On l'espère, y'a longtemps qu'on à accueilli un petit nouveau (clein d'oeil)
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
bipbip
ProgBoarder
RemonterCiter Windows 98 Msie 5 - Posté le 25/12/2007 à 02:23
CLS
morceau$ = "phrase"
sujet$ = "je"
aurev$ = "A plus!"
PRINT "Bon, d'accord ricochet, j'avoue que je n'ai pas l'habitude de penser à la";
PRINT morceau$; CHR$(34) + "Déclarer ses variables."+CHR$(34)
PRINT "En effet, je n'utilise que les suffixes. Ca me fait oublier certaine choses."
PRINT UCASE$(LEFT$(sujet$, 1)) + LCASE$(RIGHT$(sujet$, 1));
PRINT "n'avait pas compris ce que tu voulais dire par déclarer booléen."
PRINT TAB(32); aurev$
bipbip

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2009 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,036 s - Crédits - Stats
1 connecté