Forum Clubic

[Pascal] Initialiser un array of char

Bonjour braves gens :slight_smile:

Ma question va paraître sûrement très simples aux habitués de ce brave Pascal mais visiblement le moteur de recherche du forum est desactivé… :confused:

Voici mon prob : je dois faire un programme en Pascal qui utilise un array of char.
Mon exo consiste en l’écriture d’une procédure… qui ne me pose pas grand problème… mais le prob survient lorsque je veux tester la procédure !
En effet, je voudrais initialiser mon array of char à cette valeur : “GTAGCTAACA” (c’est un prob de comparaison de sous-séquences de génômes :slight_smile: ) et … je n’y arrive pas…

J’ai ça :


Const
   nmax=1000;
Type
   Seq=array[1..nmax] of char;
Var
   u:Seq;


Begin
   u:=['G','T','A','C']; {je vous passe le reste...}
End.

J’ai essayé en mettant des parenthèses, avec ou sans virgules, avec ou sans quotes, mais visiblement, j’ai oublié qqchose…
L’erreur que me renvoit Turbo Pascal : “Error : Type mismatch”

Merci de votre aide :slight_smile:

T’as essayé un truc du genre :
u[1]:=‘G’
u[2]:=‘T’

Voire même u:=‘GTAC’

Alors…
Un par un, ça marche, mais je veux tout rentrer d’un coup moi…

Et sinon u:=‘GTAC’ me renvoie la même erreur : type mismatch…

salut dunk :slight_smile:

A mon avis quand tu rentre tes caracteres un par un, le compilo les prend bien pour des caractères. Mais quand tu rentre la chaine entière, il la prend pour une string, d’où incompatibilité de type :confused:

Je ne connais pas le pascal, mais essaye plutot de declarer le type de ton tableau en string plutot qu’en char :neutre:


Seq=array[1..nmax] of string;

Salut JG :wink:

Le string, je l’aurais fait tout seul si j’avais pu… (:D) mais j’ai un array of char, rien d’autre…
Tant pis, c’est pas grave, merci qd même :slight_smile:

Mes souvenirs du pascal datent d’il y a 10 ans mais bon, essaye ça :

seq : Array[0…3] of String=(‘G’,‘T’,‘A’,‘C’);

Salut Karlkox :slight_smile:

Je vois qu’il en reste encore une paire parmi les gens que je cotoyais quand j’étais ici toute la journée :smiley: Content de vous voir les amis :wink:

Pour en revenir à mon problème… je dois utiliser un ARRAY OF CHAR, rien d’autre :stuck_out_tongue:

Tu peux tenter un truc comme ça :

Tu mets dans une variable texte (string) les valeurs à mettre dans ton tableau (array).
Chaine:=‘GTAC’

Puis tu remplis ton tableau avec le contenu de cette chaîne de caractères.
Nombre:=len(Chaine)
for I:=1 to Nombre
u[I]:=mid(Chaine,I,1)
next I

Les instructions ne sont surement pas les bonnes, il faut trouver celles correspondantes en Pascal.
(tu peux aussi le faire avec un While ce serait plus joli… :wink: )

Jamais fait de Pascal, mais ’ c’est pas pour faire des chaînes de caractères comme dit Jeanguy?

Et dans ce beau langage, pour les char faut pas faire une couille genre #xx ?

Pascal --> ’ ’ pour les chaines
C/C++ --> " "

Ce sont deux langages différents :wink:

Je sais :slight_smile: j’ai fait du Delphi (pascal n’objet)

Bon, je lâche l’affaire, je vais le remplir “à la main” ce bazar… :smiley:
Merci à tous qd même…

seq : Array[0…3] of Char =(‘G’,‘T’,‘A’,‘C’);

Devrait marcher

Les indices des tableaux ne démarrent pas à 1 en Pascal ? ( j’ia commencé l’ADA95 la semaine derniere et la syntaxe y ressemble quelque peu)

Tu peux mettre ce que tu veux en indice.