[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