Gambas France BETA


Pas de compte ? Incription

comp

Ce sujet est résolu.

12
AuteurMessages
jeanyvon#1 Posté le 23/5/2024 à 18:46:43
Gambas? Ma! Et gustobonjour
Ni le wiki ni l'aide ne savent ce que ce mot clef est censé faire et surtout comment s'en servir. Il doit bien y avoir un gentil membre qui sait!!!
d'avance merci!
Vieillir? On peut retarder mais pas y échapper!
valaquarus#2 Posté le 23/5/2024 à 19:27:40
-- Unus Ex Altera --

Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
spheris#3 Posté le 25/5/2024 à 21:13:05
Jean Yvon, Valaquarus,
Merci pour cette précsion comment l'utiliser.

Je comprends qu'une chaine égale renvoit donc un integer égal à zéro.

Mais je ne comprends pas bien cette phrase dans la doc:

1 si String1 est strictement supérieure à String2
.

Que cela veut-il dire?
Un string peut être supérieur à quelque chose?

Un type byte, integer ou float, je comprends qu'il puisse être supérieur à un autre byte integer ou float... Mais un string...

C'est peut être ça l'innovation du nouveau gambas!
:D
Merci pour vos lumières.

Ps:
Cet exemple sera parlant:
1
2
DIM bob AS INTEGER
Bob = Comp("pasteque","carottes")


Renverra peut être -1 car une pastèque, c'est bien plus gros qu'une carotte.
:tongue: :drunken:
valaquarus#4 Posté le 26/5/2024 à 08:26:13
-- Unus Ex Altera --

Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
spheris#5 Posté le 27/5/2024 à 07:00:01
La même chose, un string est supérieur à un autre string.

Plus sérieusement il s'agit peut être de la longueur de la chaine de caractère string.

Là se pose donc la question de l'utilité de cette commande
1
IF Comp("toto","titi") = 0 THEN

Et
1
IF Len("toto") = Len("titi") THEN

...produisent le même résultat.
jeanyvon#6 Posté le 27/5/2024 à 08:58:05
Gambas? Ma! Et gusto
Plus clairement, voir ici

Là, c'est carrément traduit (mal) du finnois moyen nordique supérieur par un informaticien qui avais peut être bu un peu trop de genépi et qui en plus ne connais pas la langue!

@spheris je crois que "comp" a été écrit par un gars trop pressé! et effectivement ne sert pas à grand chose.
Vieillir? On peut retarder mais pas y échapper!
Patrick#7 Posté le 27/5/2024 à 17:06:03
Bonsoir,
Je n'ai pas encore eu besoin d'utiliser cette instruction mais je vois très bien l'utilité de comparer 2 chaines :
- Une liste triée par ordre alphabétique => a est plus grand que ab qui est plus grand que aba. C'est ce que font les requêtes sql avec l'instruction order by.
- Une liste numérique ou 1 est plus grand que 10 qui est plus grand que 100 => soit 100 est un sous ensemble de 10 qui est un sous ensemble de 1. C'est comme ça que fonctionne le plan comptable par ex.
spheris#8 Posté le 27/5/2024 à 20:50:19
...1 est plus grand que 10 qui est plus grand que 100...


Ce que tu écris là est bien surprenant.

Dans mes souvenirs lointains d'écolier, on apprenait à compter, et je me rappelle (si ma mémoire est encore fiable) que:

1 est plus petit que 10, qui lui même est plus petit que 100.
Patrick#9 Posté le 28/5/2024 à 05:52:55
Oui mais on ne compare pas une valeur numérique on classe une chaîne de caractère. C'est la même logique que a est plus grand que aa qui est plus grand que aaa.
jeanyvon#10 Posté le 28/5/2024 à 07:33:50
Gambas? Ma! Et gustodonc, Spheris avait raison en disant que len() avait la même fonction. Mais ça ne vaut pas pour a, aa, aaa!
va falloir qu'on retourne à l'école!
Vieillir? On peut retarder mais pas y échapper!
spheris#11 Posté le 28/5/2024 à 20:12:28
Jean Yvon,
Effectivement on a toujours besoin d'apprendre.

En complément de ce que nous a dit patrick, voici un article très intéressant sur les tri par insertion ou tri par bulle.

https://www.9raytifclick.com/cours/algorithme-d-tri/
Patrick#12 Posté le 29/5/2024 à 08:17:56
En complément du complément on peut classer une liste sans avoir a changer l'ordre du tableau, le plus cohérent et rapide pour faire ça est d'utiliser les pointeurs. Si j'ai une liste :
tab est string[] = ["1000","1","100"]
Je cré une structure ou class de données :
pointeur_avant|pointeur_courant|pointeur_après
tab[0] :
pointe_sur_tab[2]|pointe_sur_tab[0]|null =>c'est le dernier
tab[1] :
null|pointe_sur_tab(1]|pointe_sur_tab(2] =>c'est le 1°
tab[2] :
pointe_sur_tab[1]|pointe_sur_tab[2]|pointe_sur_tab[0]

Les avantages :
- La manipulation des pointeurs est rapide
- On définit les règles de tris (ta limite est ton imagination)
- Le nombre de critère n'est pas limité : ici on pourrait avoir un tri numérique en plus, donc 2 avant et 2 après
- Les pointeurs prennent peut de place en mémoire

Les inconvénients :
- Très compliqué à mettre en place
- Gestion de la mémoire (on a plus l'habitude)
- Refaire les algo de tris
jeanyvon#13 Posté le 29/5/2024 à 14:25:08
Gambas? Ma! Et gustoJe suis bon pour le bonnet d'âne...
on dirait du c++ hard non figuratif ou du gambix en code virtuel

ce code ce place dans quoi?
Comment on l'utilise concrètement?
quel avantage par rapport au tri d'un tableau?
instruction pour voir le résultat?
Vieillir? On peut retarder mais pas y échapper!
Patrick#14 Posté le 29/5/2024 à 15:21:48
Ce n'est pas un code c'est de la théorie.
jeanyvon#15 Posté le 29/5/2024 à 15:40:31
Gambas? Ma! Et gustomerci!
trouve-t-on des cours de théorie en ligne pour débutant bête et non discipliné!
je n'ai jamais appris la programmation théorique, ça a toujours été un jeu!
Vieillir? On peut retarder mais pas y échapper!
12