Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda con unos ejercicios

Estas en el tema de Ayuda con unos ejercicios en el foro de C/C++ en Foros del Web. Buenas a todos!! necesito ayuda con unos ejercicios para clase, a ver si alguien puede ayudarme porque ando un poco perdida ;) Ejercicio 1: -Escribir ...
  #1 (permalink)  
Antiguo 05/03/2008, 03:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Ayuda con unos ejercicios

Buenas a todos!!
necesito ayuda con unos ejercicios para clase, a ver si alguien puede ayudarme porque ando un poco perdida ;)

Ejercicio 1:
-Escribir una función llamada trim que tome como entrada una cadena de caracteres y de como salida la misma cadena con los espacios a la izqda y dcha eliminados.

-Utilizar una de las siguientes cabeceras, destacar los principales inconvenientes de las demas:
//void trim(char *c);
//void trim(char *c){}
//void trim(char * & c);
//void trim(const char *c);
//void trim(const char * & c);
//char * trim(const char *c);
//char * trim(char *c);
//char * trim(const char *&c);
//char * &trim(const char *&c);
//char * &trim(char *&c);
//char * &trim(char *c);


Ejercicio 2:
Realizar una función, llamada 'split' que tome como entrada 2 cadenas de caracteres. como salida, la funcion debe devolver un vector de subcadenas de caracteres, resultado de subdividir la primera cadena por la segunda.Por ejemplo:
- split("hola=adios", "=" ) , daria como salida el vector {"hola", "adios"}
- split("supercali", "per" ) , daria como salida el vector {"su", "cali"}
- split("Antonio", "n" ) , daria como salida el vector {"A", "to", "io"}
- split("examen", "n" ) , daria como salida el vector {"exame", ""}


Ejercicio3:
En el ejercicio anterior, razonar cuál de las siguientes declaraciones de funciones es la + adecuada, y comentar cuales son los principales inconvenientes de las demas:
1- void split (char *c1, char *c2);
2- void split (char *c1, char c2);
3- void split (char c1, char c2);
4- void split (char *c1, char *c&2);
5- void split (char *&c1, char *c2);
6- void split (char *&c1, char *&c2);
7- void split (char *c1, const char *c2);
8- void split (const char *c1, const char *c2);
9- void split (char *c1, const char & *c2);
10- void split (char *c1, const char * &c2);
11- void split (const char *c1, const char *c2);
12- void split (const char *c1, char *c2);
13- void split (const char *&c1, char *c2);
14- void split (const char &*c1, char *c2);
15- char split (char *c1, char *c2);
16- char *split (const char *c1, char *c2);
17- char *split (char *&c1, char *c2);
18- char *&split (char *c1, char *c2);
19- char *&split (char *&c1, char &*c2);
20- char *&split (char *&c1, char *c2);


Ejercicio Avanzado:
Un APO se representa mediante un vector, donde cada descendiente directo (hijo) a la izqda de un nodo en la posicion 'i' se encuentra en la posición 2*i+1, y el hijo a la dcha en la posición 2*i+2.
Se pide:
-Definir una estructura de datos válida para poder almacenar un APO, denominada APO. discutir que ventajas e inconvenientes tiene la estructura definida.
-Supuesto que la estrucutra para implementar un APO es un vector de enteros definida como:

struct APO{
int * componentes;
int * valores_de_nodos;
}

implementar las siguientes funciones:

-Función para crear un APO con nodos etiketados como enteros
/**
@brief Crea un apo de enteros
@param n Max.no. de nodos del arbol
@return la dirección de memoria de una estructura que almacena un apo
@pre n>0
@post las componentes y los valores de los nodos del apo se inicializan al valor -1
*/
APO * CrearAPO(int n);

-Función para eliminar un APO
/**
@brief Elimina un APO previamente reservado con la funcion CrearAPO
@param arbol APO a eliminar
@pre arbol es un APO valido, reservado con la funcion CrearAPO
@post arbol=NULL
*/
bool eliminarAPO(APO * &arbol);

-Función para insertar un elemento del tipo entero en el APO
/**
@brief inserta un elemento en el
@param arbol APO
@param n Capacidad del APO
@param e elemento a insertar en el APO
@return true si se ha podido insertar (el APO tiene capacidad suficiente para insertar otro elemento) o false en caso contrario
@pre n>0
@post se cumplen todas las caracteristicas del APO tras la inserccion
*/
bool insertarEnAPO(APO * &arbol, int n, int e);


Muchas gracias por todo, cualquier ayuda me viene bien.
saludos ;)
  #2 (permalink)  
Antiguo 05/03/2008, 07:10
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Ayuda con unos ejercicios

¿En qué necesitas ayuda? ¿cuál es tu duda? ¿qué has intentado?

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 05/03/2008, 07:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con unos ejercicios

pues mira, el del apo no tengo ni idea, mas k nada xk no es de mi nivel y nose como se hace, y los anteriores no me terminan de salir las funciones...

lo k mas me importa es hacer las funciones k necesito.


Aqui tengo problemas al ejecutarlo:

char *split (const char *c1, char *c2){

char *final;
int j=0;
int pos;

for (int i=0; c2[i]!='\0'; i++){

while (c2[i]!=c1[j]){
final[pos]=c1[j];
j++;
pos++;
}
if (c2[i]==c1[j]){
final[pos]=' ';
j++;
pos++;
}
}
return final;
}


y el tercero es simplemente teoria...

el del apo eske no se muy bien como va la verdad, no lo entiendo...

en estos 2 nose si necesitare memoria dinamica o algo, eske esa parte no la controlo mucho, y seguramente las funciones esas seran muy liosas y habra otras formas mas faciles de hacerlo...

a ver si me podeis ayudar ;)

EDIT: ya he resuelto el primer ejericio ;)

Última edición por LoRaC; 05/03/2008 a las 15:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:04.