Kurzusok
/
JavaScript
JavaScript
/
Feladatok
/
Szabadúszói díjak
Szabadúszói díjak

Szabadúszói díjak

Tanulófeladat

Bevezetés

Számok

Sok programozási nyelv külön numerikus típusokat használ a különféle számok ábrázolására, a JavaScriptben viszont csak kettő van:

  • number: numerikus adattípus dupla pontosságú, 64 bites lebegőpontos formátumban (IEEE 754). Például: -6, -2.4, 0, 0.1, 1, 3.14, 16.984025, 25, 976, 1024.0 és 500000.
  • bigint: numerikus adattípus, amely egész számokat tud ábrázolni tetszőleges pontosságú formátumban. Például: -12n, 0n, 4n és 9007199254740991n.

Ha tetszőleges pontosságra van szükséged, vagy rendkívül nagy számokkal dolgozol, használd a bigint típust. Egyébként valószínűleg a number típus a jobb választás.

Kerekítés

Van egy beépített globális objektum, a Math, amely különféle kerekítő függvényeket kínál. A tizedes törteket például lefelé (floor) vagy felfelé (ceil) kerekítheted a legközelebbi egész számra.

Math.floor(234.34); // => 234
Math.ceil(234.34); // => 235

Aritmetikai operátorok

A JavaScript 6 különböző operátort kínál a számokon végzett alapvető aritmetikai műveletekhez.

  • +: Az összeadás operátora a számok összegének kiszámítására szolgál.
  • -: A kivonás operátora két szám különbségének kiszámítására szolgál
  • *: A szorzás operátora két szám szorzatának kiszámítására szolgál.
  • /: Az osztás operátora két szám elosztására szolgál.
2 - 1.5; //=> 0.5
19 / 2; //=> 9.5
  • %: A maradék operátora egy elvégzett osztás maradékát adja meg.

    40 % 4; // => 0
    -11 % 4; // => -3
    
  • **: A hatványozás operátora egy szám hatványra emelésére szolgál.

    4 ** 3; // => 64
    4 ** 1 / 2; // => 2
    

A műveletek sorrendje

Ha egy sorban több operátort használsz, a JavaScript egy elsőbbségi sorrendet követ, ahogyan ez az elsőbbségi táblázat is mutatja. A mi esetünkre egyszerűsítve: a JavaScript a PEDMAS-szabályt (zárójelek, hatványozás, osztás/szorzás, összeadás/kivonás) használja, amelyet az általános iskolai matekórán tanultunk.

const result = 3 ** 3 + 9 * 4 / (3 - 1);
// => 3 ** 3 + 9 * 4/2
// => 27 + 9 * 4/2
// => 27 + 18
// => 45

Rövidített értékadó operátorok

A rövidített értékadó operátorok rövidebb módot kínálnak arra, hogy aritmetikai műveletet hajts végre egy változón, és az új értéket ugyanannak a változónak add értékül. Vegyél például két változót, x-et és y-t. Ekkor az x += y ugyanaz, mint az x = x + y. Ezt gyakran egy számmal használjuk a y változó helyett. A többi 5 művelet is elvégezhető hasonló stílusban.

let x = 5;
x += 25; // x is now 30

let y = 31;
y %= 3; // y is now 1

Utasítások

Ebben a feladatban olyan kódot írsz, amely segít egy szabadúszónak egyeztetni az ügyfeleivel bizonyos projektek árairól. Írsz néhány segédfüggvényt, amelyekkel gyorsan kiszámíthatók az ügyfelek költségei.

Note

A ratePerHour változó és a dayRate függvény a pénzhez kapcsolódik. A mértékegység az időegységre jutó pénzösszeg: rendre óra, illetve nap.

1. Számítsd ki a napidíjat egy óradíj alapján

Egy ügyfél felveszi a kapcsolatot a szabadúszóval, hogy érdeklődjön az árai felől. A szabadúszó elmagyarázza, hogy naponta 8 órát dolgozik. A szabadúszó azonban csak a projekt óradíját ismeri. Segíts neki megbecsülni a napidíjat egy adott óradíj alapján.

dayRate(89);
// => 712

A napidíjat nem kell kerekíteni, sem „rögzített” pontosságra váltani.

2. Számítsd ki a munkanapok számát egy rögzített költségvetés alapján

Egy másik nap egy projektmenedzser felajánlja a szabadúszónak, hogy dolgozzon egy rögzített költségvetésű projekten. A rögzített költségvetés és a szabadúszó óradíja alapján segíts neki kiszámítani, hány napot dolgozna, mire a költségvetés kimerül. Az eredményt lefelé kell kerekíteni a legközelebbi egész számra.

daysInBudget(20000, 89);
// => 28

3. Számítsd ki a kedvezményes árat nagy projektek esetén

A szabadúszó ügyfelei gyakran több hónapon át tartó projektekre kérik fel. Ilyenkor a szabadúszó úgy dönt, hogy minden teljes hónap után kedvezményt ad, a fennmaradó napokat pedig napidíjon számlázza. A kiváló munka-magánélet egyensúlyod miatt naptári hónaponként csak 22 napot dolgozol, így minden hónapban 22 számlázható nap van. Segíts neki megbecsülni egy ilyen projekt költségét, ha adott az óradíj, a projektben lévő számlázható napok száma és a havi kedvezmény mértéke. A kedvezményt mindig számként adjuk át, ahol a 42% 0.42 lesz. Az eredményt felfelé kell kerekíteni a legközelebbi egész számra.

priceWithMonthlyDiscount(89, 230, 0.42);
// => 97972
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
JavaScript Exercism

Készen állsz elkezdeni a(z) Szabadúszói díjak feladatot?

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