Track
/
JavaScript
JavaScript
/
Esercizi
/
Tariffe da freelance
Tariffe da freelance

Tariffe da freelance

Esercizio di apprendimento

Introduzione

Numeri

Molti linguaggi di programmazione hanno tipi numerici specifici per rappresentare diversi tipi di numeri, ma JavaScript ne ha solo due:

  • number: un tipo di dato numerico nel formato in virgola mobile a 64 bit a doppia precisione (IEEE 754). Alcuni esempi sono -6, -2.4, 0, 0.1, 1, 3.14, 16.984025, 25, 976, 1024.0 e 500000.
  • bigint: un tipo di dato numerico che può rappresentare i numeri interi nel formato a precisione arbitraria. Alcuni esempi sono -12n, 0n, 4n e 9007199254740991n.

Se hai bisogno di precisione arbitraria o lavori con numeri estremamente grandi, usa il tipo bigint. Altrimenti, il tipo number è probabilmente l'opzione migliore.

Arrotondamento

Esiste un oggetto globale integrato chiamato Math che fornisce varie funzioni di arrotondamento. Ad esempio, puoi arrotondare per difetto (floor) o per eccesso (ceil) i numeri decimali al numero intero più vicino.

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

Operatori aritmetici

JavaScript fornisce 6 operatori diversi per eseguire operazioni aritmetiche di base sui numeri.

  • +: l'operatore di addizione serve a calcolare la somma di numeri.
  • -: l'operatore di sottrazione serve a calcolare la differenza tra due numeri
  • *: l'operatore di moltiplicazione serve a calcolare il prodotto di due numeri.
  • /: l'operatore di divisione serve a dividere due numeri.
2 - 1.5; //=> 0.5
19 / 2; //=> 9.5
  • %: l'operatore modulo serve a calcolare il resto di una divisione.

    40 % 4; // => 0
    -11 % 4; // => -3
    
  • **: l'operatore di esponenziazione serve a elevare un numero a una potenza.

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

Ordine delle operazioni

Quando usi più operatori su una riga, JavaScript segue un ordine di precedenza, come mostrato in questa tabella di precedenza. Per semplificare nel nostro contesto, JavaScript usa la regola PEDMAS (parentesi, esponenti, divisione/moltiplicazione, addizione/sottrazione) che abbiamo imparato nelle lezioni di matematica delle elementari.

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

Operatori di assegnazione abbreviata

Gli operatori di assegnazione abbreviata sono un modo più breve di scrivere codice che esegue operazioni aritmetiche su una variabile e assegna il nuovo valore alla stessa variabile. Ad esempio, considera due variabili x e y. Allora, x += y equivale a x = x + y. Spesso si usa un numero al posto di una variabile y. Le altre 5 operazioni si possono eseguire in modo simile.

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

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

Istruzioni

In questo esercizio scriverai del codice per aiutare un freelancer a comunicare con i suoi clienti sui prezzi di alcuni progetti. Scriverai alcune funzioni di utilità per calcolare rapidamente i costi per i clienti.

Note

La variabile ratePerHour e la funzione dayRate riguardano il denaro. Le unità di misura sono il denaro per un'unità di tempo: rispettivamente ore e giorni.

1. Calcola la tariffa giornaliera a partire da una tariffa oraria

Un cliente contatta il freelancer per informarsi sulle sue tariffe. Il freelancer spiega che lavora 8 ore al giorno. Tuttavia, il freelancer conosce solo le sue tariffe orarie per il progetto. Aiutalo a stimare una tariffa giornaliera a partire da una tariffa oraria.

dayRate(89);
// => 712

La tariffa giornaliera non deve essere arrotondata o modificata a una precisione «fissa».

2. Calcola il numero di giorni lavorativi a partire da un budget fisso

Un altro giorno, un project manager propone al freelancer di lavorare a un progetto con un budget fisso. Dato il budget fisso e la tariffa oraria del freelancer, aiutalo a calcolare il numero di giorni che lavorerebbe fino a esaurire il budget. Il risultato deve essere arrotondato per difetto al numero intero più vicino.

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

3. Calcola la tariffa scontata per i grandi progetti

Spesso i clienti del freelancer lo ingaggiano per progetti che si estendono su più mesi. In questi casi, il freelancer decide di offrire uno sconto per ogni mese intero, e i giorni rimanenti vengono fatturati alla tariffa giornaliera. Il suo ottimo equilibrio tra lavoro e vita privata significa che lavora solo 22 giorni in ogni mese di calendario, quindi ogni mese ha 22 giorni fatturabili. Aiutalo a stimare il costo per tali progetti, a partire da una tariffa oraria, dal numero di giorni fatturabili che il progetto contiene e da una percentuale di sconto mensile. Lo sconto viene sempre passato come numero, dove 42% diventa 0.42. Il risultato deve essere arrotondato per eccesso al numero intero più vicino.

priceWithMonthlyDiscount(89, 230, 0.42);
// => 97972
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
JavaScript Exercism

Vuoi iniziare Tariffe da freelance?

Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.