Sur le modèle du cours apprendre la prog…
Je bloque sur une chose simple des tableaux au niveau syntaxe.
Je souhaiterais créer un tableau de matière comprenant pour chaque matière un tableau de notes.
Mais je voudrais commencer en demandant la saisie de l’utilisateur. Et là, je bloque.
Mon code :
var tableau:[String:[Double]] = [:]
var matiere:String = ""
var note:Double = 0.0
print("Matiere : ")
matiere = Utilisateur.saisirTexte()
print("Note : ")
note = Utilisateur.saisirReel()
var tableau:[Double] = tableau[matiere] ?? []
tableau.append(note)
Avant de passer à la suite, j’aimerai comprendre comment faire ça en Swift et ça ne fonctionne pas…
Comment ajouter ces valeurs matière et note dans le tableau?
J’ai essayé de plusieurs façons mais rien ne passe.
Merci d’avance pour votre aide et votre compréhension.
Il n’y a pas tout ton code, du coup je ne vois pas la saisie et pas compris si application console ou graphique.
Pour autant, je ne structurerais pas les données comme tu le fais.
Je commencerais par cela, et y ajouterais ensuite des functions
Par exemple, je ferais ainsi.
struct uneNote: {
var matiere: String
var note: Float
}
Puis un tableau de note
struct releve {
var mesNotes: [uneNote]
}
Ensuite tu peux faire facilement pour enregistrer :
mesNotes.append(tmpSaisie)
sachant que tmpSaisie est une variable de type uneNote dans laquelle tu as mis ta saisie en alimentant
tmpSaisie.matiere et tmpSaisie.note
En fait, c’est un travail pour une base de données, ton truc, d’autant que tu vas vouloir sauvegarder tout ça, trouver pour une matière donnée quelle est la meilleur note, et qui l’a eue, la moyenne de chacun sur chaque matière, la moyenne sur chaque matière de la classe, etc.
Or, comme tu t’y prends, c’est pas de la prog orientée objet. si tu définis l’utilisateur, quelles sont ses propriétés, comment les saisir, puis de la même manière ce qu’est une matière, un objet qui recueille des notes apparemment, puis ce qu’est une note, tu vas y arriver naturellement. Et n’oublie pas que tu ne peux pas donner plusieurs définitions d’une même chose. mais tu as le droit de définir différentes propriétés à un objet : comme sa méthode de saisie. Matière ne peut pas être à la fois une chaîne et une fonction, mais ce peut être un objet qui a une propriété saisie qui peut être une fonction. Et un utilisateur peut être affecté de plusieurs propriétés matière, c’est là que ça devient un tableau, etc.
Bonjour,
Merci Thomas.
Le soucis est que je voulais avoir un tableau de note pour cette matière, d’où la notation.
Je veux pouvoir entrer plusieurs note pour une matière.
Bonjour,
Merci pour la précision.
Je suis tout à fait d’accords avec toi. Mais ce bout de code est juste un exercice pour manipuler les tableaux à plusieurs dimensions. Et, du coup, ça me gêne de ne pas comprendre comment le faire
Si je comprend bien, tu veux pouvoir stocker des tableaux dans un tableau clés valeurs?
Pour chaque Matières, tu veux stocker toutes les notes dans un tableau?
Si c’est bien cela, je ne sais pas si c’est faisable comme tu veux le faire ou alors ça dépasse mes compétences.
Tu pourrais plutôt créer un tableau par matière.
Personnellement, je le traiterais avec une base de données ou même un simple fichier texte ou Excel.
Le type de « tableau[matiere] » est « [Double] », c’est un Array de notes (par exemple [12.0, 10.0, 14.5])
Tu essaies de lui donner la valeur d’une note (type « Double »), donc forcément, il refuse.
Tu peux essayer:
tableau[matiere] = [note] // ce qui supprimer toutes les notes précédemment saisies pour cette matière, et les remplace par la nouvelle note
ou bien
tableau[matiere].append(note) // ce qui ajoute la nouvelle note à ton tableau de notes pour cette matière
Je tiens à préciser que ce n’est pas un Tableau (Array), mais un Dictionnaire (Dictonary), car il y a des clés (key) assignées a des valeurs (value) dans ce que vous faites et non seulement une liste de valeur.