Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Langage
Langage Vos questions sur langage Pascal en général, ses évolutions, les technologies, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/06/2011, 15h08   #1
EpiTouille
Membre expérimenté
 
Avatar de EpiTouille
 
Homme Titouan Créac'h
Étudiant
Inscription : mai 2009
Messages : 254
Détails du profil
Informations personnelles :
Nom : Homme Titouan Créac'h
Âge : 19
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2009
Messages : 254
Points : 537
Points : 537
Par défaut Existe-t-il en Pascal des listes similaires à celles de Python ?

Bonjour

J'aimerais savoir si le langage Pascal a un système de liste +ou- similaire à
Python.
Du genre
Code :
Reponse := ['Pierre','Feuille','Ciseaux'];
Et après pouvoir utiliser 'in'
Code :
1
2
if MaReponse in Reponse then
  write('Réponse valide');
Merci

Titeeee
EpiTouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 15h34   #2
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 539
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 4 539
Points : 11 906
Points : 11 906
oui mais pas de la même manière

Code :
1
2
3
4
5
6
7
8
 
type
  Reponse = (Pierre, Feuille, Ciseaux);
var
  MaReponse : Reponse;
begin
  if MaReponse in [Pierre, Ciseaux] then ...
end;
mais MaReponse ne peux pas prendre une valeur en dehors de celles définies.

sinon tu peux écrire une fontion
Code :
1
2
 
function InList(const Str:string; const Values : array of string):Boolean;
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 16/06/2011, 22h55   #3
darrylsite
Rédacteur
 
Avatar de darrylsite
 
Inscription : juillet 2007
Messages : 1 296
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 1 296
Points : 2 082
Points : 2 082
Il n'existe pas en Pascal standard, des listes comparables à celles de Python.

Les listes en Python sont des tableaux extensibles, et sont des objets.

En pascal Objet - FreePascal par exemple-, il y a des listes dynamiques qui font tous ce que font les liste en python : par exemple la classe TStringList
darrylsite est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/06/2011, 13h53   #4
richard
Membre expérimenté
 
Inscription : avril 2002
Messages : 427
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 427
Points : 550
Points : 550
Citation:
Envoyé par darrylsite Voir le message
En pascal Objet - FreePascal par exemple-, il y a des listes dynamiques qui font tous ce que font les liste en python : par exemple la classe TStringList

Je crois que ce n'est pas tout à fait exact étant donné que la classe TStringList hérite comme son nom l'indique de la classe TStrings qui est dédiée au type String (chaîne caractère) :
Citation:
TStrings implements an abstract class to manage an array of strings. It introduces methods to set and retrieve strings in the array, searching for a particular string, concatenating the strings and so on. It also allows an arbitrary object to be associated with each string.
Il y a ensuite des méthodes de transtypage qu'il faut utiliser. Les listes Python sont beaucoup plus souples, elles sont non typées (typage dynamique).
On peut donc faire avec TStringList tout ce qu'on peut faire avec les listes Python si et uniquement si on n'a à manipuler que des chaînes caractères. Après tout est possible mais passer d'un langage à typage dynamique à un langage à typage statique fort comme Pascal/pascal Objet suppose de regarder d'un peu plus près ce qui se passe.
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
richard est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/06/2011, 00h06   #5
darrylsite
Rédacteur
 
Avatar de darrylsite
 
Inscription : juillet 2007
Messages : 1 296
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 1 296
Points : 2 082
Points : 2 082
Citation:
Envoyé par richard Voir le message
Il y a ensuite des méthodes de transtypage qu'il faut utiliser. Les listes Python sont beaucoup plus souples, elles sont non typées (typage dynamique).
On peut donc faire avec TStringList tout ce qu'on peut faire avec les listes Python si et uniquement si on n'a à manipuler que des chaînes caractères. Après tout est possible mais passer d'un langage à typage dynamique à un langage à typage statique fort comme Pascal/pascal Objet suppose de regarder d'un peu plus près ce qui se passe.
Tout à fait.
TStringList n'est qu'un exemple des liste dynamique. J'ai choisit cette classe parce qu'il a utilisé une liste de chaine de caractère dans son exemple.
Sinon, il existe bien des listes dynamique qui prend des objets générique (ou des pointeurs) comme type de liste : http://www.freepascal.org/docs-html/...ses/tlist.html
darrylsite est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/06/2011, 12h50   #6
richard
Membre expérimenté
 
Inscription : avril 2002
Messages : 427
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 427
Points : 550
Points : 550
Je suis d'accord avec toi que pour "émuler" les listes Python, le mieux est d'utiliser une classe TList qui manipule des objets polymorphes avec les méthodes de transtypage ad hoc (entre autres) à l'intérieur.
Enfin c'est comme ça que j'avais fait, il y a déjà longtemps. Maintenant il y a peut-être une autre méthode plus rapide et fiable, je ne sais pas.
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
richard est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/06/2011, 14h04   #7
EpiTouille
Membre expérimenté
 
Avatar de EpiTouille
 
Homme Titouan Créac'h
Étudiant
Inscription : mai 2009
Messages : 254
Détails du profil
Informations personnelles :
Nom : Homme Titouan Créac'h
Âge : 19
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2009
Messages : 254
Points : 537
Points : 537
Merci, vous m'avez tous aidé. Comme je ne suis pas un pro des pointers, je vais utiliser TstringList ou TintergerListe
EpiTouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h07.


 
 
 
 
Partenaires

Hébergement Web