[C con Clase] programa con la una función bool Incrementa(char numero[10])

Sifaw n'sen bendego00 en gmail.com
Vie Jun 21 23:23:14 CEST 2013


Muchas gracias Steven,
ya tendre en cuenta el envio de preguntas al otro correo ;)
un cordial saludo


El 20 de junio de 2013 17:38, Davidson, Steven <srd4121 en njit.edu> escribió:

> Hola Aksel,
>
> 2013/6/19 Aksel <bendego00 en gmail.com>
>
>> Hola,
>> estoy intentando resolver el problema 4 de Arrays:
>>
>
> Para los ejercicios de nuestro curso de C++, recomiendo que los envíes a
> nuestro apartado de correo-e dedicado para ellos:
> ejercicioscpp en conclase.net  Esto es para que los demás, que aún no ha
> hecho los ejercicios, no tengan la tentación de copiarse o incluso pensar
> que se hayan equivocado al realizar su diseño e implementación.
>
> [CORTE]
>
>
>>
>> bool incrementa( char numero[10])
>> {
>>     int n;
>>     n=int(numero);
>>
>
> Esto no funcionará como quieres. La conversión es de tipo y no es una
> conversión de los valores en el array. C++ no tiene ni idea de las
> intenciones de los datos que guardas en un array, por lo que ni intenta
> hacer esta conversión de "número-cadena" a un número entero.
>
> Podrías usar la función estándar, 'atoi()', declarada en <cstdlib>, para
> hacer la conversión. Sin embargo, esto va en contra de las intenciones de
> hacer un ejercicio acerca de arrays y particularmente de cadenas de
> caracteres. De hecho, el ejercicio trata de manipular los caracteres para
> realizar la tarea de incrementar un número, sin cambiar su representación.
>
>
>>         if (numero[10]='999999999')
>>
>
> Sé que sabes que esto está mal, pero para dejar las cosas bien claras,
> indicaré las razones:
>
> - Las comillas singulares sólo sirven para representar un solo carácter:
> ':', '0', '\n', '\021', 'j', etc..
> - Para una cadena de caracteres, usamos las comillas: "hola", "1234",
> "arg69ko-=", etc..
> - Usas el operador [] de acceso a un elemento de un array, pero con el
> índice 10 que rebasa la cantidad de elementos válidos en tal array.
> - Usas el operador = de asignación en una condición. Lo más seguro es que
> querías usar el operador == de igualación.
> - Comparar cadenas de caracteres no resultará en algo deseado.
> Técnicamente comparas direcciones de memoria y no sus elementos.
>
> En general, podrías usar la función estándar 'strcmp()', declarada en
> <cstring>. Sin embargo, no se permite tales funciones estándares en este
> ejercicio; además, puedes prescindir de ella. Como necesitarás recorrer la
> cadena, para validar su contenido, puedes aprovechar para recoger otro tipo
> de información.
>
>         {
>>             n=0;
>>             cout << "numero no soportado y devolvemos : "<< n <<endl;
>>         }
>>         else
>>             n++;
>>         cout << n;
>>
>
> Tienes que retornar un booleano.
>
> }
>>
>>
>
> Esperaremos a tus ejercicios por "privado".
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130621/478fe637/attachment.html>


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