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

alguna idea sobre como filtrar datos?

Estas en el tema de alguna idea sobre como filtrar datos? en el foro de C/C++ en Foros del Web. Hola, no se si podriais hecharme un cable con el siguiente ejercicio: 5. Introducir desde teclado valores a un vector de enteros de 17 elementos, ...
  #1 (permalink)  
Antiguo 29/03/2010, 13:25
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Exclamación alguna idea sobre como filtrar datos?

Hola,

no se si podriais hecharme un cable con el siguiente ejercicio:

5. Introducir desde teclado valores a un vector de enteros de 17 elementos,
validando que se introduzcan valores menores que 0, mayores de 125 pero no dentro
de un rango de 600 hasta 800 (ambos incluidos). Posteriormente
se sustituirán los elementos negativos por su valor ab-soluto y se visualizará
el vector

no consigo que me cumpla todas las condiciones probe con un do while y se vuelve loco el programa en la ejecucion me obliga a matar el proceso,lo demas del absoluto si lo hace pero me lio con tanto filtro y no se la verdad como plantearlo,si me podeis dar alguna idea os lo agradeceria


En fin mi codigo actual es el siguiente (se ke esta guarrisimo ..)
Salu2 a todos

Código C:
Ver original
  1. #include<math.h>
  2.  #include<stdio.h>
  3.  
  4.  
  5.  void main(){
  6.  
  7.  int vect[17],i=0;
  8.  
  9.  
  10.  
  11.  
  12.  for(i=0;i<17;i++){
  13.  //probe aqui con un while solo para los menores de cero pero no funciono... =(
  14.   printf(" Introduce valores para vector:\n");
  15.  
  16.             scanf("%d",&vect[i]);
  17.  
  18.  
  19.             if(vect[i]<0){
  20.          vect[i]=abs(vect[i]);
  21.          }
  22.  
  23.  
  24.  for(i=0;i<17;i++){
  25.   printf("los valores de %d son %d\n",i,vect[i]);
  26.  }
  27.  
  28.  }
  #2 (permalink)  
Antiguo 29/03/2010, 14:39
Avatar de sadalsuud  
Fecha de Ingreso: marzo-2010
Ubicación: en la casa del duende
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: alguna idea sobre como filtrar datos?

Hola no te voy a resolver el problema pero te ayudo:

Mira main declaralo int y retorna 0, esa es una buena practica de programacion.

El primer for está bien, entonces no interesa que sea un while porque llena bien el vector, ya lo probé, el problema viene a estar en el 2 for, pues dicho for está anidado en el primero, me explico:

En la primera iteracion del primer for, pide un dato, lo guarda, si es menor a cero se saca valor absoluto, y luego vuelve y lo guarda, y acontinuación, entra en el otro for, que como es interno, corre mas rapido, por eso muestra el primer numero que se pidio pero el resto muestra basura que está en memoria, por eso, los numeros raros.

Ese otro for debe salir de las {} del primero.

Y para la cosa de los limites, en el primer for usa if anidados con ucada una de las condiciones.

un saludo, espero te sirve, y nos cuentas!

ciao
  #3 (permalink)  
Antiguo 29/03/2010, 15:55
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: alguna idea sobre como filtrar datos?

PorFin me ejecuto lo que queria vaya que si me costo ... pero la cafeina hizo efecto jajaja

el codigo es el siguiente:

Código C:
Ver original
  1. #include<math.h>
  2. #include<stdio.h>
  3.  
  4.  
  5.  int main(){
  6.  
  7.  int vect[17],i=0;
  8.  char basura;
  9.  
  10.  for(i=0;i<17;i++){
  11.   printf(" Introduce valores para vector:\n");
  12. scanf("%d",&vect[i]);
  13.  
  14.  
  15.                          if(vect[i]>125 && vect[i]<600){
  16.                          vect[i]=vect[i];
  17.                          }
  18.                          if(vect[i]>=600 && vect[i]<=800){
  19.  
  20.                          printf("\nvalor fuera de rango");
  21.                          printf("\nvuelve a introducir valores");
  22.  
  23.                          }
  24.                          if(vect[i]>0 && vect[i]<125){
  25.  
  26.                          printf("\nvalor fuera de rango");
  27.                          printf("\nvuelve a introducir valores");
  28.                          }
  29.                           if(vect[i]<=0){
  30.                           vect[i]=abs(vect[i]);
  31.                           }
  32.  
  33.     }
  34.  for(i=0;i<17;i++){
  35.   printf("los valores de %d son %d\n",i,vect[i]);
  36.  }
  37.  printf("pulsa un tecla para finalizar\n");
  38.  scanf("%c",&basura);
  39.      return 0;
  40.  }

lo que mas me lio fueron las validaciones bueno me ire a descansar,.. chicos si veis alguna manera de mejorarlo decirmelo por favor..

Besos
Psdta:Sadalsuud gracias por tus consejos,lo de antes del for fue un error al copiar y pegar se me fue el dedo ,.. pero porfin me ejecuta bien.. thank's

Etiquetas: filtrar, idea
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 22:39.