Warum funktioniert dieser Code nicht, wenn ich zum ersten Mal ein A hinzufüge, funktioniert es aber dann geht es zu 2.66 und geht von dort weiter, wenn es bei 4.0 bleiben soll.Warum funktioniert mein GPA Double-Wert in Swift nicht korrekt?
import UIKit
//Quantity of A A- B+ B B- C+ C C- D+ D D- F
var gradesQuantity = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
var gradesAdded = 0.0
var gpa = 0.0
func addGrades(grades: [Double]) -> Double {
for grade in grades {
gradesAdded += grade
if gradesQuantity[0] <= 0 {
gradesQuantity[0] = 0
}
}
return gradesAdded
}
func calcGPA(grades: [Double]) -> Double {
gpa = (grades[0] * 4.0 + grades[1] * 3.7 + grades[2] * 3.3 + grades[3] * 3.0 + grades[4] * 2.7 + grades[5] * 2.3 + grades[6] * 2.0 + grades[7] * 1.7 + grades[8] * 1.3 + grades[9] * 1.0 + grades[10] * 0.7)/gradesAdded
return gpa
}
class ViewController: UIViewController {
@IBOutlet weak var GPALabel: UILabel!
@IBOutlet weak var GPANumber: UILabel!
@IBOutlet weak var AQuantity: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func AddA() {
gradesQuantity[0] += 1.0
addGrades(gradesQuantity)
let x = calcGPA(gradesQuantity)
GPANumber.text = String(x)
AQuantity.text = String(Int(gradesQuantity[0]))
}
@IBAction func SubtractA() {
gradesQuantity[0] -= 1.0
addGrades(gradesQuantity)
let x = calcGPA(gradesQuantity)
GPANumber.text = String(x)
AQuantity.text = String(Int(gradesQuantity[0]))
}
}
kann bitte jemand helfen ich dies in Spielplatz setzen und fügen Sie Code darunter, dass das gleiche in den Tasten und es funktioniert, aber in dem Projekt funktioniert es nicht. Dies führt zu der Annahme, dass das Problem in den Schaltflächen addA und subtractA liegt.
Können Sie erklären, etwas mehr darüber, was die App tun soll und wie die gpa gewichtet wird? –
Sollten Sie 'gradeAdded' bei jeder Berechnung nicht auf 0 zurücksetzen? – Paulw11