50-3
Attention :
Prérequis Programmation : 005-2
Prérequis Editeur : aucun
Objectifs : Variables, Type de Variables, Structure Tableau.
Exemple : TRG - Sources de perte⚓
Dans la notion de TRG, pour passer du TO à TU, nous avons trois sources de perte qui sont AI, EP et NQ. On peut aussi bien sûr gérer le temps affecté à chaque source, ainsi que sa possibilité à être observable (ou mesurable).
Les tableaux vont permettre avec une seule variable de stocker les noms de nos sources de perte, les temps que l'on a observé. Si on avait 150 sources de perte, le code resterait le même pour stocker les données
Particularité Unity⚓
On utilise la méthode UnityEngine.Debug.Log()
pour afficher des données dans l'onglet Console
.
Particularité Fiddle⚓
La sortie Console est utilisée pour les entrées/sorties
Particularité VS⚓
La sortie Console est utilisée pour les entrées/sorties
Réglementaire : Code CS Unity⚓
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TRG_050_003 : MonoBehaviour
{
// a - déclaration d'un tableau de 3 string
string[] listePertes = new string[3];
// b - déclaration et affectation (set) de 3 floats
float[] tempsPertes = new float[] {10.0f, 2.0f, 4.0f};
// c -
Boolean[] estObservable = { true, false, true };
int v_indice;
int nb;
void Start()
{
// d - affectation des 3 éléments avec l'indice de l'élément entre crochets
listePertes[0] = "AI"; listePertes[1] = "EP"; listePertes[2] = "NQ";
Debug.Log(listePertes); // On affiche l'objet avec son nom, uniy retourne son type
Debug.Log(listePertes.Length); // Nombre d'éléments
Debug.Log(listePertes[0].Length); // Nombre d'éléments (cad des caractères)
// contenu dans l'élément d'indice 0
// Une chaîne de caractères est en fait un tableau de caractères
// e - avec un variable qui permet de pointer sur un élément
v_indice = 1;
Debug.Log($"Indice {v_indice} : la valeur est de {tempsPertes[v_indice]}");
// f -
Debug.Log($"Les pertes pour {listePertes[v_indice]} sont de {tempsPertes[v_indice]} heures");
// Solution alternative
Debug.LogFormat("Les pertes pour {0} sont de {1} heures", listePertes[v_indice], tempsPertes[v_indice]);
// g : compter le nombre d'éléments true dans le tableau estObservable
nb = 0;
if (estObservable[0]) nb = nb +1; // Pour tester si estObservable[0] est égal à true
// il est pas utile d'écrire estObservable[0] = true
Debug.Log("nb =" + nb);
if (estObservable[1]) nb++;
Debug.Log("nb =" + nb);
if (estObservable[2]) nb++;
Debug.Log("nb =" + nb);
// Remarques : nb ++ est équivalent nb = nb +1
// On fait une initialisation de nb à 0 puis, ensuite on répète 3 fois les mêmes instructions
// ---> Seul l'indice change
// Solution plus élégante : utiliser les structures dites itératives
}
}
Réglementaire : Code CS Fiddle⚓
.
Réglementaire : Code CS VS⚓
.