Parcours
/
Go
Go
/
Exercices
/
Assemble des voitures
Assemble des voitures

Assemble des voitures

Exercice d'apprentissage

Introduction

Nombres

Go contient des types numériques de base qui peuvent représenter des ensembles de valeurs entières ou à virgule flottante. Il existe différents types selon la taille des valeurs dont tu as besoin et l'architecture de l'ordinateur sur lequel l'application s'exécute (par exemple 32 bits et 64 bits).

Pour cet exercice, on ne manipulera que :

  • int : par exemple 0, 255, 2147483647. Un entier signé d'au moins 32 bits (plage de valeurs : de -2147483648 à 2147483647). Mais cela dépend de l'architecture du système. La plupart des ordinateurs modernes sont en 64 bits, donc int fera 64 bits (plage de valeurs : de -9223372036854775808 à 9223372036854775807).

  • float64 : par exemple 0.0, 3.14. Contient l'ensemble de tous les nombres à virgule flottante sur 64 bits.

  • uint : par exemple 0, 255. Un entier non signé de la même taille que int (plage de valeurs : de 0 à 4294967295 sur 32 bits et de 0 à 18446744073709551615 sur 64 bits)

On peut convertir les nombres vers d'autres types numériques grâce à la conversion de type.

Opérateurs arithmétiques

Go prend en charge de nombreux opérateurs arithmétiques standard :

Opérateur Exemple
+ 4 + 6 == 10
- 15 - 10 == 5
* 2 * 3 == 6
/ 13 / 3 == 4
% 13 % 3 == 1

Pour la division entière, le reste est ignoré (par exemple 5 / 2 == 2).

Go propose une affectation abrégée pour les opérateurs ci-dessus (par exemple, a += 5 est l'abréviation de a = a + 5). Go prend également en charge les instructions d'incrémentation et de décrémentation ++ et -- (par exemple a++).

Convertis entre les types

La conversion entre types se fait au moyen d'une fonction portant le nom du type vers lequel on convertit. Par exemple :

var x int = 42 // x has type int
f := float64(x) // f has type float64 (ie. 42.0)
var y float64 = 11.9 // y has type float64
i := int(y) // i has type int (ie. 11)

Opérations arithmétiques sur des types différents

Dans beaucoup de langages, on peut effectuer des opérations arithmétiques sur des variables de types différents, mais en Go cela provoque une erreur. Par exemple :

var x int = 42

// this line produces an error
value := float32(2.0) * x // invalid operation: mismatched types float32 and int

// you must convert int type to float32 before performing arithmetic operation
value := float32(2.0) * float32(x)

Instructions

Dans cet exercice, tu vas écrire du code pour analyser la production d'une usine automobile.

1. Calcule le nombre de voitures fonctionnelles produites par heure

Les voitures sont produites sur une chaîne de montage. La chaîne de montage tourne à une certaine vitesse, que l'on peut modifier. Plus la chaîne de montage est rapide, plus il y a de voitures produites. Cependant, modifier la vitesse de la chaîne de montage change aussi le nombre de voitures produites avec succès, c'est-à-dire les voitures sans aucune erreur de production.

Implémente une fonction qui prend le nombre de voitures produites par heure et le taux de réussite, et qui calcule le nombre de voitures produites avec succès par heure. Le taux de réussite est donné en pourcentage, de 0 à 100 :

CalculateWorkingCarsPerHour(1547, 90)
// => 1392.3

Remarque : la valeur de retour doit être un float64.

2. Calcule le nombre de voitures fonctionnelles produites par minute

Implémente une fonction qui prend le nombre de voitures produites par heure et le taux de réussite, et qui calcule combien de voitures sont produites avec succès chaque minute :

CalculateWorkingCarsPerMinute(1105, 90)
// => 16

Remarque : la valeur de retour doit être un int.

3. Calcule le coût de production

Chaque voiture coûte normalement 10 000 $ à produire individuellement, que sa production soit réussie ou non. Mais avec un peu d'organisation, on peut produire 10 voitures ensemble pour 95 000 $.

Par exemple, on peut produire 37 voitures de la manière suivante : 37 = 3 x groupes de dix + 7 voitures individuelles

Le coût pour 37 voitures est donc : 3*95 000+7*10 000=355 000

Implémente la fonction CalculateCost qui calcule le coût de production d'un certain nombre de voitures, que leur production soit réussie ou non :

CalculateCost(37)
// => 355000

CalculateCost(21)
// => 200000

Remarque : la valeur de retour doit être un uint.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Go Exercism

Prêt à commencer Assemble des voitures ?

Inscris-toi sur Exercism pour apprendre et maîtriser Go avec 34 concepts165 exercices, et un vrai mentorat humain, le tout gratuitement.