Autor Tema: [RESUELTOS] Ejercicios vectores  (Leído 3379 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado signosweb

  • Trainee
  • *
  • Mensajes: 19
[RESUELTOS] Ejercicios vectores
« en: Abril 06, 2012, 07:59:59 pm »
Adjunto los ejercicios que resolví según mi comprensión de los enunciados,
no pude resolver el ejercicio 5, ya que no entendí que pide!!! ...si alguien lo entendió
y si lo puede explicar joya!

Los archivos están en .cpp para los que usan el borland, yo uso mac y no lo encontre para mac..
asi q los trabaje en UTF_8 y con extensión .cpp para que lo abran directamente..cualquier problema
se abren con cualquier editor de texto.

En fin..el código está todo comentado para mayor entendimiento.
De todos modos consulten lo que no entiendan o si encontraron una forma que funcione mejor, avisen!


Saludos!
 

Desconectado pac-man

  • Moderador Global
  • *****
  • Mensajes: 1.842
  • Programador Semi Simio
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #1 en: Abril 07, 2012, 12:46:41 am »
Hola signosweb, publica el enunciado del ejercicio 5, para ver si te puedo dar una mano.

SaluDOS!
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - A. Einstein

Desconectado oveja

  • Trainee
  • *
  • Mensajes: 48
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #2 en: Abril 07, 2012, 09:17:54 pm »
Buenas noches!!
Yo mire el 9 nomas, porque no me salio...
El ejercicio dice:
9) Leer 20 números enteros (positivos y negativos) distintos de cero. Mostrar el vector tal como fue ingresado y luego mostrar los positivos ordenados en forma decreciente y por ultimo mostrar los negativos ordenados en forma creciente.
El ejemplo que subió es similar al que yo hice, pero mi duda es sobre "y luego mostrar los positivos ordenados en forma decreciente y por ultimo mostrar los negativos ordenados en forma creciente"
Lo que entendí es que: por ejemplo se ingresa: 1, 5, 6, 2, 6,-1,-5,-2...
En este caso serian: 1, 5, 6, 2, 6,-1,-5,-2 (como fue ingresado)
                                   6,6,5,1(positivos en forma decreciente)
                                   -5,-2,-1(negativos ordenados en forma creciente)
En el ejemplo subido, no los ordena. El ejercicio es como lo interprete? y si es asi como lo hago para ordenar de mayor a menor y viceversa. Gracias

Desconectado pac-man

  • Moderador Global
  • *****
  • Mensajes: 1.842
  • Programador Semi Simio
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #3 en: Abril 07, 2012, 10:30:42 pm »
Hola Oveja, para mi también es así.

Tendrías que ordenar el vector utilizando burbujeo, (no te lo enseñaron?)
Código: [Seleccionar]
for(i=0;i<20;i++)
{
for(j=i+1;j<20;j++)
{
if(vec[i]<vec[j])
{
aux    = vec[j];
vec[j] = vec[i];
vec[i] = aux;
}

}

Después para mostrarlo tenes que crear dos for, uno para mostrar los positivos y otro los negativos..

Código: [Seleccionar]
// mostrar positivos
for(int i...)
  if(vec[i] > 0)
    printf("...");

// para lo negativos igual pero modificando la condición del if.

SaluDOS!
« última modificación: Abril 07, 2012, 10:31:13 pm por Pac-man »
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - A. Einstein

Desconectado signosweb

  • Trainee
  • *
  • Mensajes: 19
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #4 en: Abril 08, 2012, 11:25:51 am »
Ejercicio Nº5

Leer 2 Vectores, a Y B, De Dimensión 10.
Generar Un Tercer Vector C, De 10 Elementos
Donde La Componente C Sea Igual Al Minimo Valor De a Y B.
Mostrar Los 3 Vectores.

el ejemplo que vi resuelto aca...toma el valor minimo ENTRE a y b y lo asigna a las 10 posiciones de C...
no le encuentro sentido llenar un vector de 10 posiciones con el mismo dato..
pero bue..capaz yo me la estoy complicando cuando es asi de fácil.

Con respecto al ejercicio 9:
Primero tuve la misma duda que OVEJA, si ordenar la numeracion o si la intención
era usar el for de forma decreciente i--, cosa que hice.

La solucion que plantea PAC-MAN aca http://www.programacionutn.com.ar/foro/index.php?topic=479.0
ordena la numeración..pero tiene un error que no logro ver..



Desconectado Ale

  • Administrador
  • *****
  • Mensajes: 1.089
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #5 en: Abril 08, 2012, 12:39:18 pm »
Tal como esta el codigo te va a ordenar de mayor a menor, para que sea de menor a mayor tenes que cambiar el signo en el if:

de if(vec < vec[j]) a if(vec > vec[j])

Saludos

Desconectado oveja

  • Trainee
  • *
  • Mensajes: 48
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #6 en: Abril 08, 2012, 01:17:25 pm »
Gracias Pac-man!!
 No todavía no vimos el método ese,  pero como dijo: Ale , le puse dos "burbujeos" uno para los positivos y el otro para los negativos. Porque si no ordena los negativos de mayor a menor.
Me quedo algo así, perdón por la desprolijidad je
Código: [Seleccionar]
#include <stdio.h>
#include <conio.h>
#define M 6
void main()
{int numero[M];int i,j,aux=0;
    printf ("\t\t\tIngrese %d numeros\n\n",M);
    for (i=0;i<M;i++)
    {printf ("Ingrese el numero %d:\n",i+1);
        scanf (" %d",&numero[i]);
        while (numero[i]==0)
        {printf("Error reingrese!!\n");
        scanf (" %d",&numero[i]);}
    }printf("\n\n");
    for (i=0;i<M;i++) //Mostrar el vector tal como fue ingresado
    printf("Numero %d: %d\n",i+1,numero[i]);
    printf("\n");
for(i=0;i<M;i++) //ordea numeros positivos
{ for(j=i+1;j<M;j++){
if(numero[i]<numero[j])
{aux=numero[j];
numero[j]=numero[i];
numero[i]=aux;
}
}
   }
   for(i=0;i<M;i++) // ordena numeros negativos
{
for(j=i+1;j<M;j++)
{
if(numero[i]>numero[j])
{
aux=numero[j];
numero[j]=numero[i];
numero[i]=aux;
}}}
   //Muestra los mayores
   printf ("\nLos positivos son:\n");
   for(i=0;i<M;i++){
  if(numero[i]>0)
    printf("%d\n",numero[i]);

     } //Muestra los menores
     printf ("\nLos negativos son:\n");
     for(i=0;i<M;i++){
  if(numero[i]<0)
    printf("%d\n",numero[i]);
}
getch();
}

Desconectado acastillo

  • Trainee
  • *
  • Mensajes: 18
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #7 en: Abril 26, 2012, 01:54:22 am »
Hola a todos ;), hago mi aporte y les subo un ejemplo de utilizaciòn de vectores.
Si alguno sabe como pasar por parametro un vector y retornarlo desde una funciòn sin utilizar variables globales, le agradeceria que me de un ejemplo ;)

desde ya gracias!!

saludos, :) ;)

Desconectado suaranso

  • Junior
  • *
  • Mensajes: 66
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #8 en: Abril 26, 2012, 07:45:47 am »
Hola a todos ;), hago mi aporte y les subo un ejemplo de utilizaciòn de vectores.
Si alguno sabe como pasar por parametro un vector y retornarlo desde una funciòn sin utilizar variables globales, le agradeceria que me de un ejemplo ;)

desde ya gracias!!

saludos, :) ;)

Amigo, no hace falta declararlos globales a los arrays, ni siquiera hace falta retornar el array modificado en la funcion.
Es decir, supongamos que quieres llamar a una funcion que te ordene el array, utilizas un array definido en el programa ppal o en otra funcion, y se lo pasas a la funcion objetivo, y el array se modifica sin mas tramite.
Por que es esto ?? Pues en realidad lo que se hace internamente es pasar como parametro la direccion de memoria que posee el array original (en realidad le pasa la direccion de memoria del primer valor del array, independientemente del tamaño de éste);  y la funcion, al trabajar con la misma direccion de memoria modifica esos valores, por lo cual no hace falta retornar ningun valor explicitamente.
Ejemplo, te doy 2 opciones de codificar tu funcion. En ambos casos es identica, ya que en la opcion 2, vector es un puntero a esa direccion de memoria que esta pasando el pgm ppal

Código: [Seleccionar]
#include <stdio.h>

void modifico (int *); //prototipo de mi funcion

int  main()
{
  int  vector[10]={0}; // inicializo el vector
  modifico (vector);
  printf("vector[0] es: %d",vector[0]);
}

// opcion 1
void modifico (int nuevo[])
{
  nuevo [0]=8;
}

//opcion 2:
/*
void modifico (int *nuevo)
{
  nuevo [0]=8;
}
*/

Salud

Desconectado acastillo

  • Trainee
  • *
  • Mensajes: 18
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #9 en: Abril 26, 2012, 03:57:40 pm »
Hola,Muchas gracias!!! inicialmente lo realice de esa manera pero pence que habia que ponerle un puntero a la función.
gracias por la aclaración  ;)

saludos,
« última modificación: Abril 26, 2012, 04:00:29 pm por acastillo »

Desconectado acastillo

  • Trainee
  • *
  • Mensajes: 18
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #10 en: Abril 27, 2012, 01:47:16 am »
Hola :),subo el ejercicio de vectores pero esta vez sin la utilización de variables globales, además agregue a la resolución que sea el usuario quien decida cuando dejar de ingresar datos.
Mil gracias nuevamente por la ayuda

saludos,

Desconectado suaranso

  • Junior
  • *
  • Mensajes: 66
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #11 en: Abril 27, 2012, 01:12:53 pm »
Hola, he mirado el codigo muy por arriba, primeramente te quiero felicitar porque está muy bien planteado, pero hay errores logicos de un code "largo". Fundamentalmente tendrias que releer el codigo y/o ejecutarlo para encontrarle esos errores que yo te digo.

Pero, te marco algunos:

* Para entrar o no a las opciones 2 y 3 del menú haces un (if (i<0)) ... nunca i va a ser < 0 ya que lo inicializaste en 0.

* El case 4 que hace ¿¿¿????

* en validar_legajo hay un Do-While al pedo

* Tenes que validar SI o SI la Categoria para que solo ingrese la A, la B o la C

* El error anterior acarrea un resultado inesperado para los sueldos , si la categoria está mal ingresada

* Cada tanto puedes usar la estructura if-else y no tantos if's (en un code de este tamaño no influye, pero en sistemas grandes si)

* Cuando haces la carga de datos del empleado no sé para que declaras una variable nueva local (struct) ya que si pasas el array como parametro de la funcion puedes trabajar directamente con el array.

* Deberias (segun mi criterio, usar el subindice del array para el NrodeLegajo (sub=leg-1). Pero es solo una recomendacion...

* Un error importante es a la hora de cargar los datos que no verificas si ya existe el dato cargado en el array (faltaria un "desea sobreescribir?") ya que si se sobreescribe el dato, ademas de ser un probable error de tipeo el programa va a funcionar mal, ya que cuando calcule los valores de los sueldos va a figurar 1 dato mas ( por cada sobreescritura) en tu variable "longitud".

Saludos y sigue asi que vas muuy bien  :revere

Desconectado acastillo

  • Trainee
  • *
  • Mensajes: 18
Re:[RESUELTOS] Ejercicios vectores
« Respuesta #12 en: Abril 27, 2012, 02:29:20 pm »
hola, gracias por las recomendaciones  ;).
creo que mi falta esta en que solo modifique el codigo que realice primeramente utilizando variables globales y se me pasaron varias cosas (en algun lado debe andar dando vueltas algun struct al pedo ejejje )  ya que al pasar el verctor por parametro pude haber obviado varias cosas que inclui antes.
Respecto a las validaciones no las realice de baga :P jejejej pero lo voy a tener en cuenta para la proxima vez.
sobre lo que mencionas del legajo seria una forma de realizarlo ya que los mismos no deberian repetirse, la verdad esto no lo considere ya que segun un ej que lei requerian q se valide el legajo => no debia utilizar el indice del vector  :-S pero debi haber validado que los mismos no se repitieran.
Sobre lo que preguntabas hacerca del case 4 lo que hago es salir del bucle para que el usuario pueda seguir seleccionando otras opciones si lo desea.
sobre "* Para entrar o no a las opciones 2 y 3 del menú haces un (if (i<0)) ... nunca i va a ser < 0 ya que lo inicializaste en 0." inicialmente lo declare como -1 pero al realizar las modificaciones en el codigo eso se me paso :-S.
Imaginate que a las 2 de la mañana desp de un dia de laburo y cursada la cabeza no me daba mas jejejeje.

Muchas gracias por tus observaciones, creo que la mirada de otra persona sobre lo que uno realiza hace que nos demos cuenta de cosas que se nos pasaron y que sirven para seguir creciendo  ;)

saludos, :)