Goélette Cardabela/Annexes/Installation électrique

Goélette Cardabela/Annexes/Plans de la goélette

Plans de la goélette.
Plans de coque d'origine.
Demi-coupe longitudinale avant (, papier normal, mode avancé/Dither).
Demi-coupe longitudinale avant
Demi-coupe longitudinale arrière (, papier normal, mode avancé/Dither).
Demi-coupe longitudinale arrière
Plan du pont (, papier normal, mode avancé/Dither).
Plan de pont avant
Plan de pont arrière partiellement transparent
Coupe de l'étrave (, papier normal, mode avancé/Dither).
Coupe longitudinale de l'étrave
Plans de forme avant (, papier normal, mode avancé/Dither).
 Plan de forme avant
Plans de forme arrière (, papier normal, mode avancé/Dither).
Plan de forme arrière
Plans de haubanage (, papier normal, mode avancé/Dither).
Cardabela Plan du haubanage
Voiles des mâts

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas

L'orienté objet avec Gambas.
Vous pouvez développer une application en ne structurant le code qu'avec des fonctions. Hélas, quand votre application deviendra grande, ça va devenir ardu. 
Depuis longtemps, les développeurs ont cherché à faciliter le développement, la maintenance du code, etc. C'est dans cette logique que la notion d'objet est naturellement apparue. L'idée étant de mieux structurer le code, de stopper la prolifération de variables globales incontrôlables, etc. 
Beaucoup de langages permettent l'utilisation d'objets et Gambas le fait bien entendu. Concrètement, on passe d'un code comme celui-ci : 
 FaitAvancer(PositionJoueurB, Distance)
à celui-là :
 JoueurB.Avance(Distance)
La programmation orientée objet ou POO est une notion générale présente dans quasiment tous les langages. Les explications fournies ici sont volontairement succinctes. Il vous faudra un peu de temps pour bien assimiler ces concepts. Patience donc et n'hésitez-pas à chercher sur le web si les explications qui suivent ne vous suffisent pas. 
L'utilisation d'objets permet de réutiliser le code. Pour cela, vous faites un copier-coller de votre classe par exemple. 
Vous pourrez aussi envoyer des signaux lorsqu'un événement relatif à un objet se produit. Sympa non ? 
Vous allez maîtriser ces notions. Voici la liste des points traités : 
Voilà, j'espère que tout cela vous aura permis de progresser vers un code plus clean et plus réutilisable.

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/La syntaxe d'une classe

Syntaxe d'une classe.
Il n'y a pas de syntaxe spéciale avec Gambas. Pour créer des classes, il n'y a point de "class Truc()" donc ! C'est l'extension du fichier uniquement qui fait la différence : *.class. 
Pour créer une classe : 
Par la suite, vous verrez qu'on peut écrire des mot-clefs au tout début du code de la classe. Ces points seront abordés lorsque nous verrons les classes statiques, le patron de conception Singleton et la notion de composant.

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Instanciation d'un objet

Instanciation d'un objet.
Chaque variable a un type. Vous déclarez la variable puis vous l'instanciez ainsi : 
Dim a As Audi
a = new Audi
Il est possible de faire les deux d'un coup comme ceci : 
Dim a As New Audi
Il est important de comprendre que la variable a référence l'objet. C'est l'adresse où trouver l'objet typé Audi ! Ainsi, le code ci-dessous référence deux fois le même objet : 
Public Sub Main()
 Dim a As New Audi
 Dim b As Audi = a
 Print a
 Print b
End
Ci-dessus, a et b pointe sur le même objet !

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Définition de types personnalisés

Définition de types personnalisés.
Créer une classe, c'est définir un type personnalisé à l'aide des types de base. 
Par exemple une voiture à des propriétés : 
Le nombre de porte est typé Integer car c'est un chiffre entier. Le poids, le rayon et la consommation sont typés Float. Ce sont des chiffres à virgule flottante ... 
Utilisez les propriétés ! Et créez une variable privée pour chaque propriété comme ci-dessous : 
' Gambas class file
Property Vitesse As Integer
Property Read Roule As Boolean
Property Nom As String
Private $vitesse As Integer
Private $nom As Integer
Private Function Vitesse_Read() As Integer
 Return $vitesse
End
Private Sub Vitesse_Write(Value As Integer)
 $vitesse = Value
End
Private Function Roule_Read() As Boolean
 Return ($vitesse <> 0)
End
Private Function Nom_Read() As String
 Return $nom
End
Private Sub Nom_Write(Value As String)
 $nom = Value
End
Si la version de votre environnement de développement n'est pas trop ancienne, l'éditeur insère du code automatiquement pour vous aider à implémenter les propriétés. 
Pour créer des propriétés, procédez comme suit : 
Pour créer les variables privées, procédez comme suit : 
Ah oui ! Les fragments de code sont mes nouveaux amis !

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Encapsulation et interface

Encapsulation et interface.
Encapsuler, c'est protéger la mécanique interne. Pour cela, nous créons un blindage. C'est comme l'enceinte fortifiée d'une ville : Personne ne passe sauf par les endroits que nous gérons : les portes. 
L'interface c'est l'ensemble de ces accès contrôlés. On interagit avec l'objet par le biais de l'interface c'est à dire : 
Essayez de limiter le nombre de propriétés, de méthodes et d'événement à l'essentiel pour réaliser la tâche voulue ! 
Un exemple : 
' Gambas class file
' Voiture
' les variables encapsulées ( internes )
Private $vitesse As Integer = 0
Private $nom As String = "default"
' la partie exposée ( l'interface ) 
' composée des propriétés qui sont publiques
Property Read Vitesse As Integer
Property Read Roule As Boolean
Property Nom As String
' et des méthodes publiques
Public Sub Accelere()
 If $vitesse < 100 Then $vitesse += 25
End
Public Sub Freine()
 If $vitesse > 25 Then $vitesse -= 25
End 
' définitions de fonctions internes nécessaires
' aux propriétés
Private Function Vitesse_Read() As Integer
 Return $vitesse
End
Private Function Roule_Read() As Boolean
 Return ($vitesse <> 0)
End
Private Function Nom_Read() As String
 Return $nom
End
Private Sub Nom_Write(Value As String)
 $nom = Value
End
Remarques.
Veillez à toujours initialiser les variables déclarées. Ceci vous évitera bien des déboires !

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Les méthodes

Méthodes.
Les méthodes sont les fonctions de l'objet. Elles agissent sur l'objet. Il y a les méthodes publiques qui font partie de l'interface et les méthodes privées qui font partie de la mécanique interne. 
Je vous conseille de toujours utiliser un verbe pour désigner la méthode. Pour un objet "Voiture", on pourrait avoir la méthode Accelere() : 
' Gambas class file
Public Sub Accelere()
 $vitesse += 25
End
La méthode ci-dessus et publique. 
Remarque.
Lors de l'utilisation de vos méthodes, je vous conseille d'ajouter systématiquement les parenthèses lorsque vous utilisez une méthode comme suit : 
 v.Accelere() ' «-- une méthode c'est un verbe et on met () à la fin SVP :-)

Goélette Cardabela/Collection des livrets techniques de la goélette Cardabela/Version imprimable

= Maquettes = 
= Le calcul des espars = 
= Hélice marine (Théorie physique) = 
= Hélices de navires à déplacement = 
Télécharger les feuilles de calculs.
= Équipements - Protections de la carène = 
= Équipements - Propulsions = 
= Équipements - Installation électrique = 
= Équipements - Autres équipements = 
= Lecture et impression des livres de wikilivres = 
= Annexes des livrets =
Goélette Cardabela/Annexes/Installation électrique Impressions A4 à l'italienne à 120% et à ajouter en conteneur. (6 feuilles de papier couché A4 ou A3)

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Les événements