| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
rojid
Registrado: 22 Oct 2007 Mensajes: 28
| Publicado: 29/11/2007 10:47 pm | | | Título: como puedo operar num*num de un num de 9 digitos |
| Buenas a todos, tengo que hacer un programa con codigos ISBN, tiene que introducir un codigo de 9 digitos y operar sus numeros un por uno, como puedo hacer?
codigo ISBN num 9 digitos caracter de validacion
ISBN 84-481-0462-5 844810462 5
8 * 10 = 80 4 * 9 = 36 4 * 8 = 32 8 * 7 = 56 1 * 6 = 6 0 * 5 = 0 4 * 4 = 16 6 * 3 = 18 2 * 2 = 4
Gracias! |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3837 Ubicación: Mexico
| Publicado: 30/11/2007 7:19 am | | | Título: |
| En el caso de que el lenguaje de programacion sea C ...
Obten el ISBN como una cadena utilizando una funcion como scanf o fgets. El siguiente paso es validar el ISBN verificando que este constituido por cuatro partes separadas por guiones (el caracter '-') y cada una de estas este constituida a su vez por 2, 3, 4 y 1 digitos, respectivamente. Esto ultimo lo puedes hacer mediante bucles para verificar la longitud de cada parte junto con la funcion isdigit (prototipo en <ctype.h>) para verificar que sea un digito.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
rojid
Registrado: 22 Oct 2007 Mensajes: 28
| Publicado: 04/12/2007 12:17 am | | | Título: programa |
| | Gracias, pero no se como aplicar esta funcion "la funcion isdigit (prototipo en <ctype.h>) " me comentas que mediante bucles, con for o con while, me podras poner un ejemplo, gracias! |
|
| Volver arriba | |
 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 3837 Ubicación: Mexico
| Publicado: 04/12/2007 7:56 am | | | Título: |
| Solo tienes que llamar a la funcion pasandole el caracter que deseas verificar, si este es un digito el valor de retorno de la funcion es verdadero (diferente de cero) y si no lo es su resultado es falso (cero). Por ejemplo:
| Código: | #include <ctype.h>
/* ... */
char ch;
/* ... almacenar un caracter en "ch" ... */
if (isdigit(ch)){
/* el caracter en "ch" es un digito */ }else {
/* el caracter en "ch" no es un digito */ } |
Esta funcion (junto con isspace que verifica si un caracter es "espacio blanco") la puedes utilizar en tres bucles para verificar si una linea de texto solo incluye una "palabra" constituida solo por digitos. Un ejemplo de esto seria mas o menos asi:
| Código: | char cadena[] = " 123 "; int i;
char *pos_inicio; int num_digitos;
/* ignorar el espacio blanco antes del numero */ for (i = 0; isspace(cadena[i]); i++) ;
/* contabilizar el numero de digitos */ pos_inicio = cadena + i; for (num_digitos = 0; isdigit(cadena[i]); i++) num_digitos++;
/* ignorar el espacio blanco despues del numero */ while (isspace(cadena[i])) i++;
/* verificar la validez de la cadena */ if (num_digitos == 0 || cadena[i] != '\0'){ /* estructura no valida */ }else { /* estructura valida */ } |
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
|
|