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

dudas sobre ejercicio..

Estas en el tema de dudas sobre ejercicio.. en el foro de C/C++ en Foros del Web. Hola chicos,.. primeramente tengo dudas con el enunciado de este ejercicio... /*6. Crear una función a la que se le pasará un vector de enteros ...
  #1 (permalink)  
Antiguo 04/05/2010, 04:06
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Pregunta dudas sobre ejercicio..

Hola chicos,.. primeramente tengo dudas con el enunciado de este ejercicio...

/*6. Crear una función a la que se le pasará un vector de enteros con
un valor inicial y sustituirá cada elemento que ocupe la posición impar
por el valor de su signo. La función deberá devolver la cantidad de elementos
que han cambiado de valor.
Genera el programa principal para poder ejecutar la función creada. */


Lo del valor inicial.. se refiere a que en el main ponga por ejemplo vec[]={1,2,3,4};
o a que .. en una funcion cargue el vector?

luego una ultima duda yo por ejemplo al crear la funcion de la carga de elementos puedo llamar a otra funcion "transformadora" para que valide las posiciones?
y por ultimo que se me olvidaba en donde dice lo del signo si el valor es -2 me lo debera de cambiar a '-' y si fuera asi como conseguiria eso?...
es un lio de enunciado verdad?
  #2 (permalink)  
Antiguo 04/05/2010, 07:20
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: dudas sobre ejercicio..

En matematica la funcion signo esta definida por:
s(x) = | 1 si x > 0
| 0 si x = 0
| -1 si x < 0

En otras palabras es el numero dividido su valor absoluto.(si es distinto de cero.)

Con respecto a tu primer duda, el ejercicio se puede hacer de diferentes formas....y como creeria que ninguno de este foro te lo dio como tarea, no sabriamos exactamente como hacerlo. Te recomendaria que se lo preguntes a tu profesor, haber como lo prefiere el.

Pero igual el ejercicio no es un lio. Tienes que hacer un ingreso de datos para los valores del verctor y luego en un for que empieze en uno y vaya de a dos vas cambiando el numero por su signo. Y llevas las cuentas de cuantos numero modificaste.
  #3 (permalink)  
Antiguo 04/05/2010, 09:32
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Información Respuesta: dudas sobre ejercicio..

hola ,gracias por responder,veras intente realizar el ejercicio de la siguiente manera .. me compila y ejecuta pero me muestra el -1 en las posiciones pares.. de todas maneras no se si esta bien mi planteamiento porfavor si lo podeis mirar y corregir estaria mas tranquila.. pasado mañana tengo un examen de c en papel..
Código C:
Ver original
  1. #include<stdio.h>
  2. void init(int *,int);
  3. void printi_vec(int *,int);
  4. void main(){
  5. int i=0,l=0;
  6. do{
  7. printf("Introduce longitud para el vector:\n");
  8. scanf("%d",&l);
  9. }while(l<0);
  10. int *vec=new int[l];
  11.  
  12. for(i=0;i<l;i++){
  13.  printf("inserta valores para la posicion [%d]",i+1);
  14.  scanf("%d",vec+i);
  15. }
  16. init(vec,l);
  17. printi_vec(vec,l);
  18.  
  19. }
  20.  void init(int *vector,int size){
  21.  int j=0,cont=0;
  22.  for(j=0;j<size;j++){
  23.  if(j%2!=0){
  24.  *(vector+j)=-1;
  25.  cont++;
  26.   }
  27.   }
  28.   printf("cambiaron %d de valor:\n",cont);
  29.  }
  30.  
  31. void printi_vec(int *vector,int size){
  32. int j=0;
  33. for(j=0;j<size;j++){
  34. printf("%d\n",*(vector+j));
  35. }
  36. }

Última edición por roser24; 04/05/2010 a las 09:40
  #4 (permalink)  
Antiguo 04/05/2010, 09:51
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Pregunta Respuesta: dudas sobre ejercicio..

Ostras,
Sam tenias razon con lo de empezar mi for en 1..

modificando todos los for del main y de las funciones..
ya me realiza bien el programa,eso si no puedo asegurar que este bien planteado..
ya que tengo cojido con pinzas esto de los punteros.. de momento gracias a este ejercicio veo que unas cositas ..corregirme si me equivoco.
1º en la carga de vectores con punteros al ir almacenando los valores..
scanf("%d",vec+i);// no hace falta el & y tengo que poner el puntero sumado al indice ..
2º.-Para referirme al contenido de un vector con punteros,
if(j%2!=0){
*(vector+j)=-1;// siempre que quiera usar el valor del contenido del puntero pondre *(vector+j)// donde j es el indice o como se dice el desplazamiento..

el programa queda asi de momento a no ser que os paresca erroneo y lo corregiria

Código C:
Ver original
  1. #include<stdio.h>
  2. void init(int *,int);
  3. void printi_vec(int *,int);
  4. void main(){
  5. int i=0,l=0;
  6. do{
  7. printf("Introduce longitud para el vector:\n");
  8. scanf("%d",&l);
  9. }while(l<0);
  10. int *vec=new int[l];
  11.  
  12. for(i=1;i<l;i++){
  13.  printf("inserta valores para la posicion [%d]",i);
  14.  scanf("%d",vec+i);
  15. }
  16. init(vec,l);
  17. printi_vec(vec,l);
  18.  
  19. }
  20.  void init(int *vector,int size){
  21.  int j=0,cont=0;
  22.  for(j=1;j<size;j++){
  23.  if(j%2!=0){
  24.  *(vector+j)=-1;
  25.  cont++;
  26.   }
  27.   }
  28.   printf("cambiaron %d de valor:\n",cont);
  29.  }
  30.  
  31. void printi_vec(int *vector,int size){
  32. int j=0;
  33. for(j=1;j<size;j++){
  34. printf("%d\n",*(vector+j));
  35. }
  36. }
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 19:26.