Διαδρομές
/
C#
C#
/
Ασκήσεις
/
Αυτοκίνητα, συναρμολογηθείτε!
Αυτοκίνητα, συναρμολογηθείτε!

Αυτοκίνητα, συναρμολογηθείτε!

Άσκηση εκμάθησης

Εισαγωγή

Αριθμοί

Υπάρχουν δύο διαφορετικοί τύποι αριθμών στη C#:

  • Ακέραιοι: αριθμοί χωρίς ψηφία μετά την υποδιαστολή (ακέραιοι αριθμοί). Παραδείγματα: -6, 0, 1, 25, 976 και 500000.
  • Αριθμοί κινητής υποδιαστολής: αριθμοί με μηδέν ή περισσότερα ψηφία μετά την υποδιαστολή. Παραδείγματα: -2.4, 0.1, 3.14, 16.984025 και 1024.0.

Οι δύο πιο συνηθισμένοι αριθμητικοί τύποι στη C# είναι οι int και double. Ένα int είναι ένας ακέραιος 32 bit και ένα double είναι ένας αριθμός κινητής υποδιαστολής 64 bit.

Οι αριθμητικές πράξεις γίνονται με τους τυπικούς αριθμητικούς τελεστές. Οι αριθμοί μπορούν να συγκριθούν με τους τυπικούς τελεστές σύγκρισης αριθμών και τους τελεστές ισότητας (==) και ανισότητας (!=).

Η C# έχει δύο τύπους αριθμητικών μετατροπών:

  1. Έμμεσες μετατροπές: δεν θα χαθούν δεδομένα και δεν απαιτείται πρόσθετη σύνταξη.
  2. Ρητές μετατροπές: μπορεί να χαθούν δεδομένα και απαιτείται πρόσθετη σύνταξη με τη μορφή ενός cast.

Επειδή ένα int έχει μικρότερη ακρίβεια από ένα double, η μετατροπή από int σε double είναι ασφαλής και επομένως είναι έμμεση μετατροπή. Ωστόσο, η μετατροπή από double σε int μπορεί να σημαίνει απώλεια δεδομένων, οπότε απαιτεί ρητή μετατροπή.

int softCool = 1358938113;
double notLost = 4.8151623;

// implicit cast: no loss of information
double macDebug = softCool;         // 1358938113.0

// explicit cast: possible loss of information 
int somethingLost = (int)notLost;   // 4

Εντολές if

Σε αυτή την άσκηση πρέπει να εκτελέσεις λογική υπό συνθήκη. Ο πιο συνηθισμένος τρόπος να το κάνεις αυτό στη C# είναι με μια εντολή if/else:

int x = 6;

if (x == 5)
{
    // Execute logic if x equals 5
}
else if (x > 7)
{
    // Execute logic if x greater than 7
}
else
{
    // Execute logic in all other cases
}

Η συνθήκη μιας εντολής if πρέπει να είναι τύπου bool. Η C# δεν έχει την έννοια των truthy τιμών.

Οδηγίες

Σε αυτή την άσκηση θα γράψεις κώδικα για να αναλύσεις την παραγωγή μιας γραμμής συναρμολόγησης σε ένα εργοστάσιο αυτοκινήτων. Η ταχύτητα της γραμμής συναρμολόγησης μπορεί να κυμαίνεται από 0 (εκτός λειτουργίας) έως 10 (μέγιστη).

Στη χαμηλότερη ταχύτητά της (1), παράγονται 221 αυτοκίνητα την ώρα. Η παραγωγή αυξάνεται γραμμικά με την ταχύτητα. Έτσι, με την ταχύτητα στο 4, θα πρέπει να παράγει 4 * 221 = 884 αυτοκίνητα την ώρα. Ωστόσο, οι υψηλότερες ταχύτητες αυξάνουν την πιθανότητα να παραχθούν ελαττωματικά αυτοκίνητα, τα οποία στη συνέχεια πρέπει να απορριφθούν.

Έχεις τρεις εργασίες.

1. Υπολόγισε το ποσοστό επιτυχίας

Υλοποίησε τη (στατική) μέθοδο AssemblyLine.SuccessRate() για να υπολογίσεις την αναλογία ενός αντικειμένου που κατασκευάζεται χωρίς σφάλμα για μια δεδομένη ταχύτητα. Ο παρακάτω πίνακας δείχνει πώς η ταχύτητα επηρεάζει το ποσοστό επιτυχίας:

  • 0: ποσοστό επιτυχίας 0%.
  • 1 έως 4: ποσοστό επιτυχίας 100%.
  • 5 έως 8: ποσοστό επιτυχίας 90%.
  • 9: ποσοστό επιτυχίας 80%.
  • 10: ποσοστό επιτυχίας 77%.
AssemblyLine.SuccessRate(10)
// => 0.77

2. Υπολόγισε τον ρυθμό παραγωγής ανά ώρα

Υλοποίησε τη (στατική) μέθοδο AssemblyLine.ProductionRatePerHour() για να υπολογίσεις τον ρυθμό παραγωγής της γραμμής συναρμολόγησης ανά ώρα, λαμβάνοντας υπόψη το ποσοστό επιτυχίας της:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

Σημείωσε ότι η τιμή που επιστρέφεται είναι double.

3. Υπολόγισε τον αριθμό των λειτουργικών τεμαχίων που παράγονται ανά λεπτό

Υλοποίησε τη (στατική) μέθοδο AssemblyLine.WorkingItemsPerMinute() για να υπολογίσεις πόσα λειτουργικά αυτοκίνητα παράγονται ανά λεπτό:

AssemblyLine.WorkingItemsPerMinute(6)
// => 19

Σημείωσε ότι η τιμή που επιστρέφεται είναι int.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
C# Exercism

Έτοιμος να ξεκινήσεις την άσκηση Αυτοκίνητα, συναρμολογηθείτε!;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.