Proceso checkISBN
Definir ISBN como cadena;
Definir multiplicando como entero;
Definir no_es_numero como Logico;
Definir continuar como logico;
Definir suma como entero;
Definir dig como caracter;
Definir check como entero;
Definir check_i como entero;
Definir i como entero;
continuar <- verdadero;
Mientras continuar Hacer
Escribir "Ingrese ISBN de 13 digitos (solo primeros 12 digitos):";
Leer ISBN;
Escribir "Ingrese el ultimo digito";
Leer check_i;
Dimension array [12];
Dimension array_n[12];
Para i<-0 Hasta 11 Con Paso 1 Hacer
dig <- Subcadena(ISBN,i,i);
no_es_numero <- ~(dig = "1" | dig = "2" | dig = "3" | dig = "4" | dig = "5" | dig = "6" | dig = "7" | dig = "8" | dig = "9" | dig = "0");
dig <- Subcadena(ISBN,i,i);
Si no_es_numero Entonces
Escribir "Error: ",dig," no es numero";
i <- i + 16;
FinSi
FinPara
Si no_es_numero Entonces
continuar <- verdadero;
Sino
continuar <- falso;
FinSi
FinMientras
multiplicando <- 1;
suma <- 0;
Para i<-0 Hasta 12 Con Paso 1 Hacer
dig <- Subcadena(ISBN,i,i);
Si dig = "1" Entonces
suma <- suma + multiplicando;
FinSi
Si dig = "2" Entonces
suma <- suma + 2*multiplicando;
FinSi
Si dig = "3" Entonces
suma <- suma + 3*multiplicando;
FinSi
Si dig = "4" Entonces
suma <- suma + 4*multiplicando;
FinSi
Si dig = "5" Entonces
suma <- suma + 5*multiplicando;
FinSi
Si dig = "6" Entonces
suma <- suma + 6*multiplicando;
FinSi
Si dig = "7" Entonces
suma <- suma + 7*multiplicando;
FinSi
Si dig = "8" Entonces
suma <- suma + 8*multiplicando;
FinSi
Si dig = "9" Entonces
suma <- suma + 9*multiplicando;
FinSi
Si multiplicando = 3 Entonces
multiplicando <- 1;
Sino
multiplicando <- 3;
FinSi
FinPara
check <- suma % 10;
Si 10 - check_i = check Entonces
Escribir "El ISBN es Valido";
Sino
Escribir "El ISBN es invalido \n El utimo digito deberia ser: ", (10 - check_i);
FinSi
FinProceso
No hay comentarios:
Publicar un comentario