[C con Clase] sobre interpretación de actividad 4

Steven Davidson srd4121 en njit.edu
Vie Jul 4 03:31:45 CEST 2008


Hola Armando,

Armando B. VERA wrote:
> Hola Muchachos
> 
> Estoy tratando de realizar las actividades propuestas en el curso
> 
> "cursocpp" de conclase.
> 
> He culminado el 3 y no alcanso a interpretar el 4.
> 

Antes de seguir, quisiera aclarar que para cualesquier dudas o 
inquietudes acerca de los ejercicios propuestos en el curso de C++ 
deberían ser enviadas al siguiente apartado de correo-e: 
ejercicioscpp en conclase.net  Esta direccidn de correo-e también sirve 
para aceptar los ejercicios que quieras enviarnos para su corrección.

Veamos las dudas.

> 
> Lo que interpreto es que se debe crear un array tipo char de nueve 
> caracteres (1 para el \'0' de fin de cadena), pero esos caracteres
> son dígitos.
> 

Creo que es mejor aclarar dos matices:
1. Supongo que querías decir: "(y 1 más para el '\0'...)", y
2. Técnicamente, los caracteres deben representar dígitos.

> Con estos caracteres debo poder realizar una suma, es decir,
> supongamos que el entero pasado como parámetro es int parametro=234 y
> que la cadena char
> numero[10]={'0','5','7','0','2','8','0','9','2','\0'}, el resultado 
> de la suma debe ser:
> numero[10]+parametro={'0','5','7','0','2','8','3','2','6','\0'}
> 
> ¿Es esta interpretación correcta? ¿O el parámetro debe ser también
> char?.
> 

Casi. No se trata de sumar dos números, sino de incrementar un número 
por 1. Si quieres, puedes pensar que hacemos esto:

Incrementar( szNum )
{
   ¿'szNum' representa un número entero?
   Sí => szNum++
         return true;
   No => return false;
}

> Si los supuestos son correctos entonces se debe convertir cada digito
> de parametro dividiendo por las potencias de 10 y estraer el entero,
> luego convertir cada digito de la cadena a entero para realizar la
> suma y luego
> 
> realizar la asignación a numero[10].
> 

No. No debes convertir la cadena a un valor numérico para luego hacer el 
incremento (suma), para luego convertir el resultado a la cadena de 
caracteres. Con 9 "dígitos", podrías hacer lo que propones, pero 
imagínate que en su lugar tenemos una cadena de 30 "dígitos". En este 
caso, no podrías convertir la cadena a un valor numérico, porque no 
existe un tipo de dato que pueda representar un número de 30 dígitos 
decimales.

El ejercicio trata de manipular cadenas de caracteres. Por lo tanto, tu 
solución tiene que basarse en manejar cadenas para conseguir tu 
propósito. En la práctica, vas implementar el algoritmo que todos 
aprendimos en el colegio para sumar dos números enteros: suma cada 
dígito desde las unidades y ten en cuenta el acarreo.


Espero haber aclarado las dudas.

Steven





Más información sobre la lista de distribución Cconclase