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.
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++).
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)
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)
Ebben a feladatban egy autógyár termelését elemző kódot fogsz írni.
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.
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.
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.
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.