/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

como puedo operar num*num de un num de 9 digitos

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
rojid



Registrado: 22 Oct 2007
Mensajes: 28

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com