[C con Clase] Elercicios...

Steven R. Davidson vze266ft en verizon.net
Mie Nov 29 04:29:46 CET 2006


Hola Yudenis,

Yudenis Martínez Abreu wrote:
> Hola.
> 
> Creo que ya entendí lo de los arreglos… sencillamente cuando se declara 
> el arreglo reservamos tantos espacios como el # que se pone entre los 
> símbolos [ ]
> 

Exacto.

> Y la diferencia (lo que me confundía) es que para las cadenas uno de 
> esos espacios se deja para el elemento nulo lo que implica que tenemos 
> un espacio menos para almacenar un caracter.  Muchas gracias a todos por 
> la exhaustiva ayuda.
> 

Bueno, creo que lo quieres decir es que tenemos un carácter menos a usar 
para la información que queremos guardar. El carácter nulo sigue siendo 
un carácter al fin y al cabo.

> Esta parte va un poco mas dirigida a Steven aunque si alguien tiene 
> alguna sugerencia se acepta.
> 
> Envío acá los ejercicios para que los revisen  porque cuando escribí a 
> ejercicioscpp en conclase.net <mailto:ejercicioscpp en conclase.net> me 
> hicieron esta sugerencia * x motivo.
> 

He revisado los correos-e que enviaste a "ejercicioscpp en conclase.net", y 
no he hallado ninguno en el que te decimos que envíes los ejercicios 
aquí. Quizá mencioné algo parecido si nos hubieras enviado ejercicios 
que no pertenecieran a nuestro curso de C++.

> Me falta el # 4 porque tengo algunas dudas como por ejemplo:
> 

Veamos las dudas.

> -Se supone que el usuario solo pueda entrar números?
> 

Puede escribir cualquier cadena, pero la función 'Incrementa()' 
verificará el contenido de la cadena antes de "incrementarla".

> -Que seria en este caso una cadena que no contiene números? Un ejemplo?
> 

Por ejemplo,

char numero[10] = "1234abc";

if( Incrementa( numero ) )
   cout << numero << endl;
else
   cout << "Error: La cadena no representa un número entero\n";

Esto implica que el contenido de la cadena debe representar por completo 
un número entero. El código anterior resultaría en una falsedad en la 
condición.

> -Quedarían así los ejemplos que pongo debajo:
> 
>   Sin incrementar                    Incrementada
> 
>    000111                                   000111999
> 
>    0011100                                 001110099
> 
>    00                                       009999999 

No. Esto no es correcto. La función 'Incrementa()' se comporta de tal 
manera que incrementa por uno el número entero dado. O sea, hace algo así:

numero = numero + 1;

Sin embargo, tenemos una cadena de caracteres que representa un número 
entero. Por lo tanto, tenemos que manipular los caracteres de la cadena 
para que tenga el comportamiento esperado: incremento por uno.

Dicho esto, tu tabla se reescribiría así,

Sin incrementar         Incrementada
------------------------------------
000111                  000112
0011100                 0011101
00                      01


Como los ejercicios del curso son para cada seguidor/a, te escribiremos 
en privado para dar nuestra análisis y crítica.


Espero haber aclarado las inquietudes acerca del ejercicio #4.

Steven







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