Menu
Coddy logo textTech

Ripasso - Calcolatrice sicura

Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 47 di 56.

Crea una piccola calcolatrice che gestisca gli input non validi, combinando raise, più clausole rescue e ensure.

challenge icon

Sfida

Medio

Definisci un metodo calc(a, op, b) che:

  • Genera ArgumentError con il messaggio "unknown operator" se op non è uno tra +, -, *, /
  • Esegue l’operazione negli altri casi (usa l’aritmetica intera per /)

Quindi leggi tre righe dall’input, a, op, b: e chiama calc all’interno di begin / rescue / ensure:

  • In caso di successo, stampa <a> <op> <b> = <result>
  • In caso di ArgumentError, stampa Bad operator
  • In caso di ZeroDivisionError, stampa Cannot divide by zero
  • In ensure, stampa sempre --- end ---

Usa Integer(...) per analizzare a e b, all’interno dello stesso blocco begin, così anche un input non intero rientra in Bad operator (ArgumentError copre entrambi i casi).

Per l’input 6 / * / 7, l’output è:

6 * 7 = 42
--- end ---

Per l’input 10 / / / 0:

Cannot divide by zero
--- end ---

Provalo tu

# TODO: define calc(a, op, b), raises ArgumentError on unknown op

raw_a = gets.chomp
op    = gets.chomp
raw_b = gets.chomp

# TODO: begin/rescue/ensure as described

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Ruby online