% Programa para calcular el dígito de control del código de barras
% ================================================================

% Borramos pantalla y memoria:
clc;
clear all;

% Pedimos los 12 dígitos del código:
digitos=input('Dime los 12 dígitos del código de barras: ');

% Los convertimos en un vector de caracteres:
bc=num2str(digitos);

% Extraemos los dígitos de las posiciones pares e impares:
pares=bc(2:2:12)
impares=bc(1:2:12)

% Para matlab las variables anteriores son vectores fila; podemos
% convertirlos en vectores columnas trasponiéndolos:
pares=pares'
impares=impares'

% Aplicamos la función str2num para convertir los caracteres de estos 
% vectores columna a números:
pares=str2num(pares)
impares=str2num(impares)

% Por último los sumamos:
sumaTotal=sum(impares) + 3*sum(pares);

% Se podía haber obtenido el mismo resultado simplemente mediante:
sumaTotal=sum(str2num(bc(1:2:12)')) + 3*sum(str2num(bc(2:2:12)'));

%  El dígito de control se calcula como 10 menos el resto de dividir la 
% suma anterior entre 10:

digControl=10-rem(sumaTotal,10);

% Mostramos el resultado
disp("El dígito de control es el " + num2str(digControl));