elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con estos dos simples ejercicios de C++ :(
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con estos dos simples ejercicios de C++ :(  (Leído 3,861 veces)
xboxone007

Desconectado Desconectado

Mensajes: 7


Ver Perfil
ayuda con estos dos simples ejercicios de C++ :(
« en: 2 Diciembre 2013, 12:51 pm »

Hola a todos, miren tengo que hacer estos estos ejercicio pero no logro que se me quede la programación y ya tengo el tiempo muy justo. Me preguntaba si me podríais ayudar, sois mi ultima baza.

Esto son los ejercicio.


-Ejercicio 1:
Escribir un programa con una función que calcule la longitud de una cadena de
caracteres. El nombre de la función será LongitudCadena, debe devolver un int, y como
parámetro de entrada debe tener un puntero a char.
En esta función no se pueden usar enteros para recorrer el array, usar sólo punteros y
aplicar aritmética de punteros.
En main probar con distintos tipos de cadenas: arrays y punteros.

-Ejercicio 2:
Escribir un programa que lea un número, que indica cuántos números enteros serán
guardados en un vector, crear el vector para almacenar el tamaño exacto de los datos y
entonces leer los enteros que serán guardados en el vector. Posteriormente se han de
mostrar los elementos en orden inverso y liberar la memoria que se ha reservado.

Sobre el ejercicio uno logre hacer esto:

 #include <iostream>

using namespace std;

int LongitudCadena(char*);

int main(){
cout << "CALCULAR LONGITUD CADENA_____________" << endl << endl;

cout << "CON ARRAY" << endl;
char cadena[10];
cout << "Introduce una cadena de texto: ";
cin >> cadena;
cout << "La cadena introducida tiene " << LongitudCadena(cadena) << " caracteres" << endl;;
cout <<endl;

cout << "CON PUNTEROS" << endl;
char *cadena2 = new char[10];
cout << "Introduce una cadena de texto: ";
cin >> cadena2;
cout << "La cadena introducida tiene " << LongitudCadena(cadena2) << " caracteres";

cout <<endl;
system("PAUSE");
}

int LongitudCadena(char* cadena){
int longitud = 0;

return longitud;
}

Me salen estos errores:

1>------ Operación Generar iniciada: proyecto: Demo, configuración: Debug Win32 ------
1>Compilando...
1>CPP.cpp
1>c:cpp.cpp(19) : warning C4305: '=' : truncamiento de 'double' a 'float'
1>c:cpp.cpp(25) : error C2065: 'gt' : identificador no declarado
1>c:cpp.cpp(25) : error C2065: 'x' : identificador no declarado
1>El registro de compilación se guardó en el "file://c:Debug\BuildLog.htm"
1>Ejer - 2 errores, 1 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========

Muchísimas gracias de antemano a todo el que me ayude y un saludo.


En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: ayuda con estos dos simples ejercicios de C++ :(
« Respuesta #1 en: 2 Diciembre 2013, 14:44 pm »

Te hace falta pulir conocimientos sobre punteros, no es tan dificil, pero se lo que estas pasando, tratar de entender punteros al principio puede ser complicado y fastidioso, pero cuando lo entiendas verás la potencia y facilidad que tienen.

Para entender tales conceptos te dejo los siguientes enlaces, te recomiendo que los leas y trates de entenderlos con la mejor disposición, pues sino entiendes conceptos tan básicos te garantizo que en el futuro te ira mucho peor y serás un programador de cuarta, puede que tengas trabajo, pero como profesional serás mediocre.

Aritmetica de punteros
Punteros de Caracteres y Cadenas
Objetos Dinamicos

Ahora el primer ejercicio:

Citar
-Ejercicio 1:
Escribir un programa con una función que calcule la longitud de una cadena de
caracteres. El nombre de la función será LongitudCadena, debe devolver un int, y como
parámetro de entrada debe tener un puntero a char.
En esta función no se pueden usar enteros para recorrer el array, usar sólo punteros y
aplicar aritmética de punteros.
En main probar con distintos tipos de cadenas: arrays y punteros.

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int LongitudCadena(char*);
  6.  
  7. int main()
  8. {
  9.    char *punteroCadena;
  10.    char Cadena[30];
  11.  
  12.    cout << "Digite la cadena:  "; cin >> Cadena;
  13.    punteroCadena = Cadena;
  14.    cout << "direccion punteroCadena:  " << punteroCadena << endl;
  15.    cout << "caracteres punteroCadena " << &punteroCadena << endl;
  16.  
  17.    cout << "La cadena " << Cadena << " tiene "
  18.          << LongitudCadena(punteroCadena) << " caracteres." << endl;
  19.  
  20.    return 0;
  21. }
  22.  
  23. int LongitudCadena(char* puntero)
  24. {
  25.    char* copia = puntero;
  26.    while(*puntero) puntero++;
  27.    return(puntero-copia);
  28. }
  29.  

Hay que tener que funciona con una palabra, no tiene en cuenta espacios, para eso se complica el asunto, y lo importante es entender el manejo de suma de punteros y paso por referencia, además, ya teniendo la libreria string.h ya hay funciones que trabajan todo eso de una manera más limpia.


En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con estos dos ejercicios!!!Son mu simples...
Ejercicios
robe22 6 6,210 Último mensaje 13 Noviembre 2005, 03:23 am
por Hadess_inf
ayuda con estos ejercicios
Ingeniería Inversa
jgilberto 2 4,560 Último mensaje 2 Agosto 2009, 00:23 am
por tena
ayuda con estos ejercicios de lenguaje c
Ejercicios
jgilberto 1 8,103 Último mensaje 21 Agosto 2009, 02:26 am
por Caballero Maldito
Ayuda con estos ejercicios
Programación C/C++
shibu 0 3,436 Último mensaje 8 Abril 2012, 03:55 am
por shibu
MOVIDO: ayuda con estos ejercicios
Programación General
Eleкtro 0 2,068 Último mensaje 30 Septiembre 2015, 09:57 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines