Bonjour à tous,
je suis un débutant en programmation et je regarde les cours très pédagogues et très sympathiques de Maxime pour me mettre le pied à l’étrier.
Je me fais les dents pour apprendre sur une petite app pour les sportifs et mes lycéens (prof d’EPS) qui permettrait simplement à l’aide d’un slider de calculer un temps de passage en fonction d’une vitesse de course et d’une distance à parcourir.
ça marche très bien sur excel… mais j’ai de grosses erreurs dans mon app. J’ai du mal à savoir si ça vient du calcul, des paramètres du spider ou de la méthode de conversion du temps en Int en 00:00 avec le modulo.
voici mon code:
class VMAViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var ui_vma: UITextField! // vitesse de course
@IBOutlet weak var ui_purcent: UILabel! // % affiché par le slider
@IBOutlet weak var ui_distanceChargeLabel: UILabel! // résultat à afficher en min/sec
@IBOutlet weak var ui_distance: UITextField! // distance de course en m.
// affichage dans le label le % de travail sildé
@IBAction func slider(_ sender: UISlider) {
ui_purcent.text = "\(String(Int(sender.value))) %"
}
@IBAction func test(_ sender: UISlider) {
// validation que VMA et Distance ne soit pas vide avec optionel
// vma en double
if let inputStringVma:String = ui_vma.text,
let inputVmaDouble:Double = Double(inputStringVma){
// distance en double
if let inmputStringDistance:String = ui_distance.text,
let inputDistanceDouble:Double = Double(inmputStringDistance){
// calcul si ces variables peuvent être créees:
// intialisation des variables
var timeBaseDouble:Double = 0
let purcentCoef:Double = (Double(sender.value)) / 100
var purcentLess:Double = 0
var calculDuree:Double = 0
// conversion des km/H en m/s
timeBaseDouble = (inputDistanceDouble / (inputVmaDouble / 3.6))
// on retranche au temps de base le % issu du coefficient donné par le slider
purcentLess = timeBaseDouble - (timeBaseDouble * purcentCoef)
// on addictionne le temps de base
calculDuree = timeBaseDouble + purcentLess
// application et affichage du % dans le calcul par le slider
ui_distanceChargeLabel.text = returnTime(temps: Int(calculDuree))
}
}
}
// retourner le temps à réaliser en fonction de la VMA et de la distance exprimée en 00:00
func returnTime (temps:Int) → String {
let minutes = Int(temps) / 60
let seconds = Int(temps) % 60
return String(format: « %02i:%02i », minutes, seconds)
je me casse à la tête dessus depuis 3 jours!
Si quelqu’un a une piste, merci d’avance!!
Dans cette capture j’ai déjà une erreur de 6 sec.