[VB] Fonctions binaires ?

Fonctions binaires ? [VB] - VB/VBA/VBS - Programmation

Marsh Posté le 21-01-2004 à 16:38:52    

est-ce qu'il existe des fonctions toutes faite pour des calculs binaires ?
 
ex :  
x = 7 (00000111 en binaire)
y = 2 (00000010 en binaire)
 
result = fonction(x, y)
 
et avoir result = 5 (00000101 en bianaire)
 
et si ensuite on fait result = fonction(result, y)
qu'on obtienne result = 7
 
quelqu'un connait ?

Reply

Marsh Posté le 21-01-2004 à 16:38:52   

Reply

Marsh Posté le 21-01-2004 à 17:07:18    

pas à ma connaissance, il existe je crois hex(), ect...fait une recherhe dans l'aide sur ce mots et tu auras les autres noms, mais je te le répète : j'ai une gros doute.

Reply

Marsh Posté le 21-01-2004 à 17:08:55    

en fait, hex() permet de travailler avec de l'hexadecimal et pas avec du binaire
 
merci kan meme

Reply

Marsh Posté le 21-01-2004 à 17:10:47    

bab a écrit :

en fait, hex() permet de travailler avec de l'hexadecimal et pas avec du binaire
 
merci kan meme

je sais bien ça, mais avec ce mots dans l'aide, tu aurais pu trouver, les autres si éventuellement ils existent. Va faire un tour sur www.vbfrance.com pour voir !  [:spamafote]


Message édité par cvb le 21-01-2004 à 17:11:14
Reply

Marsh Posté le 21-01-2004 à 18:01:16    

à part les And, Or et Xor, il n'y a pas de fonction qui permette de travailler au niveau binaire en VB.
 
Et ce sera de surcroit très lent si tu essaies de les émuler ;)


Message édité par drasche le 21-01-2004 à 18:01:46

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 21-01-2004 à 21:56:30    

En VB  
x = 7  
y = 2
print (x XOR y) donne quoi ? (NB paresse d'allumer le PC où VB3 pour tester)

Reply

Marsh Posté le 21-01-2004 à 22:06:51    

ça donne bien 5 oui

Reply

Marsh Posté le 21-01-2004 à 23:09:25    

encore heureux sinon je me demande bien comment ma procédure de cryptage fonctionnerait [:joce]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 21-01-2004 à 23:12:30    

pour ça, c'est ok :)
 
par contre, je pense pas qu'il existe une fonction pour mettre à 1 ou 0 le bit qu'on veut dans un octet ?
car j'en ai fait une (qui marche) mais c'est une grosse bidouille

Reply

Marsh Posté le 21-01-2004 à 23:17:34    

non, ce genre de choses là, on n'a pas en VB :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 21-01-2004 à 23:17:34   

Reply

Marsh Posté le 21-01-2004 à 23:20:39    

tant pis alors je resterai avec mes fonctions équivalentes mais en bidouille

Reply

Marsh Posté le 22-01-2004 à 13:55:07    

carbon_14 : quand t'as pas envie de te faire chier avec VB, y'a un truc très bien qui s'appelle VBS.
 
Tu crées un ficier txt.
Tu tapes dedans :
 
x = 7
y = 2
msgbox(x XOR y)
 
et tu le renomme en *.vbs
 
Puis dblclick dessus et ô miracle ça affiche 5 !

Reply

Marsh Posté le 22-01-2004 à 14:01:49    

purée je viens de créer mon tout premier .vbs pour le coup [:ddr555]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-01-2004 à 14:02:39    

Spa compliqué pourtant...
 


BIT1 = 1
BIT2 = 2
BIT3 = 4
BIT4 = 8
BIT5 = 16
BIT6 = 32
BIT7 = 64
BIT8 = 128
 
val = 7 ' (00000111)
 
msgbox(val and NOT (BIT1 OR BIT3)) ' 00000010  (2)
 
msgbox(val OR BIT5)                ' 00010111 (23)

Reply

Marsh Posté le 22-01-2004 à 14:10:13    

t'aurais dû noter de BIT0 à BIT7 pour être logique mais je chicane un peu, je te l'accorde :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-01-2004 à 14:15:21    

on est en VB, on commence à compter à partir de 1 :p ;)

Reply

Marsh Posté le 22-01-2004 à 14:18:29    

jamais de la vie: les arrays sont indicés à zéro sauf directive spécifique.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-01-2004 à 14:22:23    

c'est le contraire ;)
 
par défaut VB commence à compter à 1, mais si on affecte 0, alors il décalle tout pour commencer à partir de 0
 
-- Edit ; tiens, nan, c'est chelou...
 
a = Array("a", "b", "c" ) commence bien à 0...
 
bah, c'est dans quel cas qu'il commence à 1 :??: bon, ben ça commence en effet à 0 jusqu'à preuve du contraire :D
 
PS: de toute façon on s'en fout, c'est plus joli BIT1 que BIT0 :o


Message édité par MagicBuzz le 22-01-2004 à 14:29:49
Reply

Marsh Posté le 22-01-2004 à 14:24:48    

ps: et y'a pas que les tableaux, tous le langage est architecturé de façon à privilégier 1 plutôt que 0.
 
for i = 1 to 10 c'est quand même plus clair que for i = 0 to 9 ... y'a 10*E^9999999 exemples qui tendent à montrer que VB est fait pour bosser (et c'est plus naturel) avec 1 plutôt que 0
 
m'enfin on s'en fout, le principal c'est qu'en fin de compte VB a tout ce qu'il faut pour bosser en binaire contraîrement ce ce qui a pu être dit, et qu'il suffit de connaître un minimum son algèbre de bool pour écrire soit-même les fonctions plus évoluées.
 
-- edit : et que vbs c'est vachement bien et plus pratique que vb pour faire des tests bidons (pas decompilation, pas d'IDE à installer, etc.)


Message édité par MagicBuzz le 22-01-2004 à 14:27:21
Reply

Marsh Posté le 22-01-2004 à 14:28:56    

perso quand il s'agit de faire de l'algèbre de bool, je préfère le bas niveau. Certes, tu peux toujours émuler les fonctions qui n'existent pas (ce que je me suis amusé à faire il y a un temps), mais tu as la lenteur de traitement en contrepartie :/
 
Quand au débat 0/1, ben le vbiste de base va prendre 1 (qui n'est pas la valeur par défaut je le répète), et le programmeur prendre 0. Comme quoi il y a naturel et naturel. Et de mon point de vue, il me semble naturel de prendre zéro (et ce avec d'autant plus de raison qu'en .NET t'as pas le choix, ça sera toujours zéro) [:spamafote]
 
Attention ami lecteur, un troll s'est glissé dans ce post, sauras-tu le trouver? [:cupra]


Message édité par drasche le 22-01-2004 à 14:29:16

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-01-2004 à 14:30:53    

en effet, c'est 0, j'ai vérifié et t'as raison.
 
qu'est-ce que je peux dire comme conneries moi en ce moment, c'est hallucinant !
 
sinon PS de troll argenté :
 
certes, c'est plus "logique", d'un point de vie informatique de partir de 0 (puisqu'au niveau du processeur, tab(5) c'est traduit par ptrDeBase * (sizeof(type) * 5) et que donc pour le premier indice, si on veut pas perdre de place, il faut partir de 0
 
mais pour le lecteur, quand il se trouve face à un for i = a to b, quand a = 0, b = le nombre d'ittérations - 1 et ça c'est pas logique du tout pour l'humain de base.


Message édité par MagicBuzz le 22-01-2004 à 14:33:15
Reply

Marsh Posté le 22-01-2004 à 14:32:30    

c'est bon, tout marche maintenant merci, même si j'ai utilisé aucun AND et OR

Reply

Marsh Posté le 22-01-2004 à 14:41:02    


bin en fait, un troll en amène un autre: un programmeur est censé connaître la logique d'un ordinateur. D'ailleurs on la lui enseigne et il devient normalement naturel pour lui de commencer à compter à partir de zéro et non plus de un. Mais vu que VB est (malheureusement) employé la plupart du temps par des end-users ou des apprentis-programmeurs qui ont été formés en 3 jours (ok j'exagère mais dans les SSII c'est un peu trop courant) ou d'autres qui font ça en autodidacte, ben je comprends ton raisonnement.
 
Ce qui me fait penser que l'application sur laquelle je bosse actuellement a viré, lors de son déploiement, les quelques 90 applications écrites par les gens du marketing. Et on voit qu'ils ont pas l'habitude :D  L'auteur de la dernière application du genre sur laquelle j'ai posé les yeux ne connaît visiblement par le concept même d'array parce qu'ils auraient pu en économiser du code :D


Message édité par drasche le 22-01-2004 à 14:41:11

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-01-2004 à 14:44:42    

a ce moment, autant bosser en ASM :p
 
mais sinon, je suis d'accord, si les informaticiens étaient moins paresseux, les end users arrêteraient de nous faire chier avec des applis VB buggées et nous ferait faire le boulot dont ils ont besoin...
 
mais bon, vu qu'on préfère troller ici au lieu de bosser bah... on n'a plus qu'à corriger les bugs VB à la con :D

Reply

Marsh Posté le 22-01-2004 à 15:30:08    

MagicBuzz a écrit :


mais bon, vu qu'on préfère troller ici au lieu de bosser bah... on n'a plus qu'à corriger les bugs VB à la con :D


 
Ou changer de langage ;)

Reply

Marsh Posté le 22-01-2004 à 15:35:35    

changer de métier aussi c'est pas mal. j'aime bien les chèvres, pas toi ? :D

Reply

Marsh Posté le 22-01-2004 à 15:43:16    

Toc toc toc, c'est ici le troll VB ?
 
On me charge de passer ce message : http://www.ddj.com/documents/s=150 [...] /jan00.htm
 
Bonne lecture.

Reply

Marsh Posté le 22-01-2004 à 15:50:41    

Kristoph a écrit :

Toc toc toc, c'est ici le troll VB ?
 
On me charge de passer ce message : http://www.ddj.com/documents/s=150 [...] /jan00.htm


c'est pas toi qui avais posté ce lien dans un autre topic? :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-01-2004 à 15:53:55    

drasche a écrit :


c'est pas toi qui avais posté ce lien dans un autre topic? :D
 


 
Si, mais je l'aime bien ce post. Il est un peu sur le ton de la plaisanterie mais il est difficile d'objecter quoi que ce soit à ce qu'il dit :D

Reply

Marsh Posté le 22-01-2004 à 16:09:27    

Kristoph a écrit :


Si, mais je l'aime bien ce post. Il est un peu sur le ton de la plaisanterie mais il est difficile d'objecter quoi que ce soit à ce qu'il dit :D


 
effectivement [:ddr555]

Reply

Marsh Posté le 22-01-2004 à 16:15:54    

bah disons qu'il est dur d'objecter quoi que ce soit parceque c'est pas très objecttif non plus. c'est un peu hors sujet.
 
il demande à vb des trucs chelous et s'étonne que ça merde (grossomodo)
la plupart de ses remarques peuvent s'appliquer, moyennant nuances, à la plupart des autres langages.
 
style "on m'a dit que les pointeurs c'est génial ! mais expliquez moi pourquoi quand je fais ptr * 'a' / sizeof(int) ça merde.
 
Par exemple, pour le premier point.
Je trouve rien d'extraordinaire là-dedans. Différencier la syntaxe entre procédure et fonction ne me choque pas, et quand à se comporter anormalement quand on appelle une fonction sans récupérer la valeur de retour, il suffit de faire de l'ADA pour voir que dans ce langage, c'est même pas que le comportement est anormal, c'est carrément que ça compile pas.
En bref, quand on vient du C, ces spécifications de VB semble vraiment batardes. Mais quand on vient de vrais langages à la fois évolués et réfléchis, on trouve que cette approche faite par VB n'est pas forcément mauvaise.
 
Alors après, c'est vrai, je dis pas. VB a de grosses lacunes. Mais certaines, je trouve ça pas plus mal... Le seul truc qui est domage, c'est que le compilo, au lieu de lever une erreur, fait un prog bizarre (tout comme le C dans 99% des cas pour remprendre le // avec cette surcouche d'ASM approxymative)
 
Par exemple Dim a, b, c, d as String
 
Je trouve ça très bien que ça fasse n'importe quoi. C'est vraiment crade de déclarer une série de variables de cette façon.
 
Oui, avoir 20 lignes de déclarations pour déclarer 20 variables c'est chiant, mais au moins c'est lisible, on s'y retrouve immédiatement.
 
Parceque quand je vois des fois en C une trentaine de variables déclarées en une seule ligne, avec des affectations dans tous les sens, j'ai très vite mal à la tête...
 
m'enfin ça vaut pas l'affectation d'une variable à l'interrieur de l'appel d'une fonction. surtout si à ça on ajoute une série de petits trucs sympa, y'a des gars qu'on toujours de l'imagination pour ce genre de choses.
désolé, mais dans une équipe de développeur, tout le monde n'est pas autiste, et c'est très bien de pouvoir relire le code d'un gars sans avoir besoin de se griller les neuronnes pendant 2 heures pour décoder une pelotte de laine qui fait la moitié du programme en 2 lignes.
 
enfin voilà quoi. certes vb a un compilateur merdique, mais au moins ça force (quand on est un minimum consciencieux) à faire un truc un peu plus lisible et qui entre dans la logique du langage.

Reply

Marsh Posté le 22-01-2004 à 16:17:29    

Perso j'ai une chose à objecter à ce qu'il dit: Check1.Value n'est pas un booléen mais un Integer. Le coup du Not est donc fatalement foireux: la constante vbChecked vaut 1, donc l'expression Not 1 vaut... -2, qui est une valeur non nulle (donc vraie -> True)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-01-2004 à 21:30:42    

MagicBuzz>tu confonds qualité d'un langage et qualité de code d'un programmeur.
En même temps, tu parles de lisibilité mais définir ses variables par "a", "b", "c" ou "d", c'est pas super explicite ;)

Reply

Marsh Posté le 22-01-2004 à 21:37:09    

bah j'ai juste recopié l'exemple du mônsieur qui dit que vb est pourri :o

Reply

Marsh Posté le 22-01-2004 à 21:42:44    

sinon, je confond plus ou moins.
 
L'avantage avec VB, c'est que si tu te force pas à faire des trucs à peut près propres et dans la logique du compilateur (une sub N'EST PAS une fonction qui ne retourne rien) tu vas avoir un prog qui fait portnawak.
 
En C, à partir du moment où tu t'es pas planté dans ton algo, tu peux écrire n'importe quoi dans tous les sens comme un plutonnien échoué sur une plage, ça marchera de la même façon que si tu fais un truc propre.
Donc en ce sens, VB est mieu foutu que le C, puisqu'il t'oblige à un minimum de rigueur.
 
Bon, on est d'accord, on part du principe que le développeur à mis Option Explicit en haut de la page et qu'il bosse avec des variables typées, sinon ça peut vite devenir encore pire qu'en C :D
 
M'enfin de toute façon, au niveau de la rigeur, rien de ce que je connais n'arrive à la cheville d'ADA, qui est selon moi le seul langage permettant, à coup sûr de prévoir simplement à la lecture du code, 100% du fonctionnement de l'appli. Rien n'est laissé au hasard, et le compilo ne manque pas de te faire piquer une crise de nerf pour s'en assurer... Quand il décide de pas compiler, bah y compile pas, faut lui parler gentillement et réécrire la moitiée de son code pour qu'il comprenne bien tout ce qu'on veut faire :D


Message édité par MagicBuzz le 22-01-2004 à 21:43:36
Reply

Marsh Posté le 22-01-2004 à 21:52:39    

C'est pas en disant que le VB n'est pas pire que le C que l'on pourra conclure que le VB n'est pas pourri :D
 
Moi, j'aime bien déclarer plusieures variables sur la même ligne car ça donne un code plus lisible parfois. Par exemple :

Code :
  1. int x,y;


Et VB, c'est soit une écriture lourde, soit tu as fais une grosse erreur.
 
Pour la syntaxe d'appel des fonctions, je lance ce défi pour tous les utilisateurs de VB : qui connaissait la difference de fonctionnement entre ces 2 lignes :

Code :
  1. FuncName(Param1, Param2)
  2. Call FuncName(Param1, Param2)


Le comportement du VB va droit dans le mur ici et ce n'est pas la peine de le comparer à l'ADA dans ce cas car ce dernier à fait le bon choix lui au moins !
 
 
 

Code :
  1. ptr * 'a' / sizeof(int)


Pourquoi tu multiplies un char par un pointeur ? Qu'est ce que tu espère faire comme ça ? Et puis en général, qui va aller multiplier un char ???
 
 
 
Oui, le comportement de "not Checked" est comprehensible. Non ce n'est pas une bonne chose. Il y a 2 erreures fondamentales ici. La première est dans le nom de la propriété. Semantiquement, un "Checkbox" est un boolean. Moi quand je vois ça, je pense à un truc à 2 états mais non, en VB il en a trois : Oui, Non, Peut-être. Et la deuxième erreur est dans l'affectation

Code :
  1. Dim b As Boolean, c As Boolean
  2. b = Check1.Value
  3. c = Not Check1.Value


 
Le fait de pouvoir écrire b = Check1.Value ne fait que renforcer l'idée que Check1.Value est un booléen ! L'erreur du VB ici est de faire une convertion implicite entre l'enumeration à 3 états qu'est le checkbox et le vrai seul booléen qui compte en informatique.
 
Ce genre de convertion implicite entre 2 types qui n'ont rien à voir est la marque des langages faiblement typés. Et un langage faiblement typé est un langage de mauvaise qualité.

Reply

Marsh Posté le 22-01-2004 à 22:36:33    

Pour des cas précis, coordonnées par exemple, en effet, déclarer en une seule ligne peut avoir un sens.
 
Mais cette "lacune" de VB peut-être "contourner" si on aère le code :
 


Dim x as Integer
Dim y as Integer
 
Dim AppName as String
Dim AppVer as Double
 
...


Il suffit de regrouper les déclarations qui initialisent des données se rapportant à une même chose. Evidement, avec ce système, t'as rapidement deux pages de déclarations mais bon, au moins quand tu recherches les variables "partenaires" d'une variable, tu les retrouve facilement, même si elles ne sont pas du même type.
 
Parceque très souvent en C on va trouver :
 

Code :
  1. int x,y,heureDArriveeDeLaSecretaire,nombreDeDentsDuHamster;
  2. string NomDeLaSecretaire,emailDeMonChien;
  3. float noteDeMonFilsEnMaths,radius,versionDeMonProg;


 
Et là, quand tu cherches le nom de la variable du rayon du cercle qui est en [x,y] bah t'as un peu plus de mal, et tu fini par envoyer un mail d'insultes à ton chien, ou utiliser les dents du hamster pour faire le cercle, et je sais pas s'il va être très d'accord ;)
 
FuncName(Param1, Param2) est pour moi une hérésie. Si tu ne récupère pas de valeur, alors tu ne dois pas utiliser de fonction (c'est un crime, tu mérites de te faire mordre par le hasmter autant de fois qu'il y a de cercles dans la note de ton fils en maths.
 
Mais bon, sur le principe, en disant que c'est une Sub, je suis d'accord que le fait que ça se comporte pas pareil entre un appel direct ou un appel avec call est pas très normal, et c'est certainement en effet un des trucs les plus pourris de VB, je te l'accorde.
M'enfin si tu te forces à coder ANSI compliant, t'auras de toute façon jamais de Sub dans ton code (ce que je trouve absurde car détourne les fonctions de leur rôle mais bon ;))
 
Sinon, mon ponteur multiplié par un caractère, c'était juste un délire parceque j'avais pas d'exemple sous la main :D Enfin, juste pour montrer quand même que le C permet des trucs pas catholiques... Notamment utiliser un caractère directement dans une oppération mathématique, on a vite fait de partir en couilles. Deplus, je préfère la méthode "propre" pour bosser avec des "pointeurs", c'est à dire le ByVal et ByRef de VB (ou de C#), qui pour moi sont bien plus sécurisés, et clairs, sans pour autant être plus restrictifs (suffit de changer sa façon de coder et de ne plus aller taper comme un porcs dans des zones mémoires non sûres et utiliser des vraies variables avec des vrais types à la place)
 
Sinon, faire un not sur un int, puis l'affecter dans un bool, ça marche aussi avec certains compilos C (si y'avait que ça...).
 
Et un checkbox a par définitions 3 états. Le peut-être existe depuis toujours, et signifie habituellement qu'on a coché un certain nombre de sous-ensembles mais pas tous. Donc sémantiquement, il est normal que ce ne soit pas un bool.
Deplus, .Value en VB est systématiquement un int, un string ou un variant. Mais bon, faut être habitué pour bosser avec pour le savoir. Par contre l'attribut .checked, quand présent, est un bool.


Message édité par MagicBuzz le 22-01-2004 à 22:38:30
Reply

Marsh Posté le 22-01-2004 à 22:59:21    

Le not standard en C (  l'operateur ! donc ) renvoye toujours un "bool". Son sens est connu : il indique si l'entier utilisé est égal à zero. Ce fesant, tu garantis que si !!a s'évalue à vrai, alors a s'évalue à vrai aussi.  
 
Le not en VB fait à la fois non binaire et non logique et c'est de la que viens le problème.
 

Reply

Marsh Posté le 22-01-2004 à 22:59:41    

je veux pas chipoter mais en VB, tu sais déclarer plusieurs variables sur la même ligne :o
 
oui bien sûr qu'on peut faire comme ceci:

Code :
  1. Dim a As Integer: Dim b As Integer


 
mais je pensais à ceci:

Code :
  1. Dim a As Integer, b as Integer


 
c'est plus subtile que le C mais ça marche :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-01-2004 à 23:01:10    

accessoirement, un code lisible n'emploiera pas de noms kilométriques :o
perso mes variables ne dépassent jamais les 15 caractères :)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed