Kurzusok
/
Go
Go
/
Feladatok
/
Autók összeszerelése
Autók összeszerelése

Autók összeszerelése

Tanulófeladat

Bevezetés

Számok

A Go tartalmaz alapvető numerikus típusokat, amelyek egész vagy lebegőpontos értékek halmazát képesek reprezentálni. Különböző típusok vannak attól függően, hogy mekkora értékre van szükséged, és hogy milyen architektúrájú a számítógép, amelyen az alkalmazás fut (pl. 32 bites és 64 bites).

Ebben a feladatban csak a következőkkel fogsz foglalkozni:

  • int: pl. 0, 255, 2147483647. Egy előjeles egész szám, amelynek mérete legalább 32 bit (értéktartománya: -2147483648-tól 2147483647-ig). Ez azonban a rendszer architektúrájától függ. A legtöbb modern számítógép 64 bites, ezért az int mérete 64 bit lesz (értéktartománya: -9223372036854775808-tól 9223372036854775807-ig).

  • float64: pl. 0.0, 3.14. A 64 bites lebegőpontos számok halmazát tartalmazza.

  • uint: pl. 0, 255. Egy előjel nélküli egész szám, amely ugyanolyan méretű, mint az int (értéktartománya: 0-tól 4294967295-ig 32 bit esetén, és 0-tól 18446744073709551615-ig 64 bit esetén).

A számok más numerikus típusokká alakíthatók típuskonverzióval.

Aritmetikai operátorok

A Go számos szabványos aritmetikai operátort támogat:

Operátor Példa
+ 4 + 6 == 10
- 15 - 10 == 5
* 2 * 3 == 6
/ 13 / 3 == 4
% 13 % 3 == 1

Egész számok osztásakor a maradék elvész (pl. 5 / 2 == 2).

A Go támogatja a fenti operátorokhoz a rövidített értékadást (pl. az a += 5 az a = a + 5 rövidítése). A Go támogatja a ++ és -- növelő és csökkentő utasításokat is (pl. a++).

Típusok közötti konverzió

A típusok közötti konverzió egy függvénnyel történik, amelynek a neve a cél típus neve. Például:

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)

Aritmetikai műveletek különböző típusokon

Sok nyelvben végezhetsz aritmetikai műveleteket különböző típusú változókon, de a Go-ban ez hibát ad. Például:

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)

Utasítások

Ebben a feladatban egy autógyár termelését elemző kódot fogsz írni.

1. Számítsd ki az óránként legyártott sikeres autók számát

Az autók egy futószalagon készülnek. A futószalagnak van egy bizonyos sebessége, ami változtatható. Minél nagyobb a futószalag sebessége, annál több autó készül. A futószalag sebességének a megváltoztatása azonban a sikeresen legyártott autók számát is befolyásolja, vagyis azokét, amelyek gyártása során nem történt hiba.

Valósíts meg egy függvényt, amely megkapja az óránként legyártott autók számát és a sikerességi arányt, majd kiszámítja az óránként sikeresen legyártott autók számát. A sikerességi arány százalékban van megadva, 0 és 100 között:

CalculateWorkingCarsPerHour(1547, 90)
// => 1392.3

Megjegyzés: a visszatérési érték float64 típusú legyen.

2. Számítsd ki a percenként legyártott sikeres autók számát

Valósíts meg egy függvényt, amely megkapja az óránként legyártott autók számát és a sikerességi arányt, majd kiszámítja, hogy percenként hány autó készül el sikeresen:

CalculateWorkingCarsPerMinute(1105, 90)
// => 16

Megjegyzés: a visszatérési érték int típusú legyen.

3. Számítsd ki a gyártás költségét

Egy autó önálló legyártása általában 10 000 dollárba kerül, függetlenül attól, hogy sikeres lesz-e vagy sem. Egy kis tervezéssel viszont 10 autót együtt 95 000 dollárért lehet legyártani.

Például 37 autót a következőképpen lehet legyártani: 37 = 3 x tízes csoport + 7 egyedi autó

Tehát 37 autó költsége: 3*95,000+7*10,000=355,000

Valósítsd meg a CalculateCost függvényt, amely kiszámítja egy adott számú autó gyártási költségét, függetlenül attól, hogy sikeresek-e vagy sem:

CalculateCost(37)
// => 355000

CalculateCost(21)
// => 200000

Megjegyzés: a visszatérési érték uint típusú legyen.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Go Exercism

Készen állsz elkezdeni a(z) Autók összeszerelése feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.