% Funzione anonima che verifica se il dato รจ uno scalare intero is_scalare_intero = @(x) numel(x)==1 && ... isnumeric(x) && ... x==floor(x) ; % Input dei dati con check input_invalido = true ; while input_invalido n = input('Inserire il numero intero positivo n: ') ; input_invalido = ~( is_scalare_intero(n) && n>=0 ) ; if input_invalido ; fprintf('Valore invalido!\n') ; end end input_invalido = true ; while input_invalido b = input('Inserire la base b>1: ') ; input_invalido = ~( is_scalare_intero(b) && b>1 ) ; if input_invalido ; fprintf('Valore invalido!\n') ; end end % Algoritmo delle divisioni successive q = n ; % Quoziente di lavoro a = 0 ; % Vettore delle cifre calcolate i = 0 ; % Indice di iterazione while q > 0 i = i + 1 ; a(i) = mod( q , b ) ; % resto della divisione q = ( q - a(i) ) / b ; % quoziente end % Output formattato fprintf( '(%d)_10 = (' , n ) ; ... fprintf( '%d' , a(end:-1:1) ) ; ... fprintf( ')_%d\n' , b ) ;