Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Ayuda con un ejercicio de arrays!
Autor Mensaje
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.492
Agradecimientos dados: 167
Agradecimientos: 583 en 46 posts
Registro en: Mar 2012
Mensaje: #1
Ayuda con un ejercicio de arrays! Dudas y recomendaciones Informática I (Electrónica)
Hola gente como andan?

Bueno estoy acá con un ejercicio que no termino de resolver y que no se que esta mal. No esta hecho en un 100%, pero si el 90% esta. Alguien se podría fijar que esta mal (no hace lo que quiero que haga) y decirme que puedo hacer? El código es:

http://www.copiatelo.com/index.php?show=d701e1eb3

Eso es todo. Espero que me puedan ayudar! Un saludo!

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
(Este mensaje fue modificado por última vez en: 12-06-2013 14:36 por Gonsha.)
12-06-2013 14:26
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Abend Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 180
Agradecimientos dados: 27
Agradecimientos: 35 en 23 posts
Registro en: Feb 2013
Mensaje: #2
RE: Ayuda con un ejercicio de arrays!
Que es lo que esta mal? no compila? no hace lo que vos queres? si es uno u otro deci cual es el mensaje si no compila o que hace mal y que deberia hacer.
12-06-2013 14:28
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maik En línea
Presidente del CEIT
.
********

Otra
Otra

Mensajes: 5.297
Agradecimientos dados: 47
Agradecimientos: 190 en 136 posts
Registro en: Sep 2011
Mensaje: #3
RE: Ayuda con un ejercicio de arrays!
no entiendo lo que haces en varias partes.

primero: para que vas preguntando en funcion si la posicion es par o impar? si vas a revisar que sea impar, empeza desde la psicion 1 e incrementala de 2 en 2.

2do para que usas el array auxiliar en funcion?

3ero si tenes una funcion y la denominas funcion llega un punto en el que no sabes si estoy hablando del tipo de funcion o de la funcion definida como funcion, ponele un nombre coherente.

4to
-------------------------------------------
while (contador < 8)
{
array_aux [contador] = ptr_1[contador];

if ( ptr_2 [contador] % 2 != 0)
{
if (contador % 2 == 0)
ptr_1 [contador + 2] = ptr_2[contador];
else
ptr_1 [contador + 1] = ptr_2[contador];
}
else
ptr_2 [contador] = array_aux [contador];
-----------------------------------------------

por que no haces algo como

while i< 8
arraydepares(i) = arraydeimpares(i+1)
i+=2

return(0)

algo que podes hacer en 3 lineas hiciste un terrible quilombo, o no estas explicando que tiene que hacer la funcion.

MODS
[Imagen: 2r5t075.jpg]
12-06-2013 14:34
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Maik recibio 1 Gracias por este post
Brich (12-06-2013)
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.492
Agradecimientos dados: 167
Agradecimientos: 583 en 46 posts
Registro en: Mar 2012
Mensaje: #4
RE: Ayuda con un ejercicio de arrays!
(12-06-2013 14:28)Abend escribió:  Que es lo que esta mal? no compila? no hace lo que vos queres? si es uno u otro deci cual es el mensaje si no compila o que hace mal y que deberia hacer.

Compila, pero no hace lo que quiero Confused.

(12-06-2013 14:34)Maik escribió:  no entiendo lo que haces en varias partes.

primero: para que vas preguntando en funcion si la posicion es par o impar? si vas a revisar que sea impar, empeza desde la psicion 1 e incrementala de 2 en 2.

2do para que usas el array auxiliar en funcion?

3ero si tenes una funcion y la denominas funcion llega un punto en el que no sabes si estoy hablando del tipo de funcion o de la funcion definida como funcion, ponele un nombre coherente.

4to
-------------------------------------------
while (contador < 8)
{
array_aux [contador] = ptr_1[contador];

if ( ptr_2 [contador] % 2 != 0)
{
if (contador % 2 == 0)
ptr_1 [contador + 2] = ptr_2[contador];
else
ptr_1 [contador + 1] = ptr_2[contador];
}
else
ptr_2 [contador] = array_aux [contador];
-----------------------------------------------

por que no haces algo como

while i< 8
arraydepares(i) = arraydeimpares(i+1)
i+=2

return(0)

algo que podes hacer en 3 lineas hiciste un terrible quilombo, o no estas explicando que tiene que hacer la funcion.

1. Tranquila Maik, no te alteres lol.

2. Lo que dijiste en el "primero" es lo mismo que lo que dijiste en lo 4to, asique te lo respondo acá: Porque no se me ocurrió jaja. Es verdad que tu método es mucho mas lógico, coherente y sencillo pero bue si se me hubiese ocurrido no estaría acá pidiendo ayuda, no? . De hecho ahora que lo leo lo que hice en esa parte no tiene sentido.

3. El array auxiliar lo uso para ir almacenando los valores que voy reemplazando en el array que estoy modificando. Cuando yo le guardo a la posición impar lo que habia en la posicion par del otro array, ese valor que estaba ahí (y que lo tengo que ubicar en la posición impar del otro array) lo pierdo. Para no perderlo, lo almaceno previamente en el array aux.

4. Ahi lo modifico. Aparentemente se me bugueo la pagina y no me deja modificarlo.

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
(Este mensaje fue modificado por última vez en: 12-06-2013 14:50 por Gonsha.)
12-06-2013 14:47
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
fer59 Sin conexión
Empleado de Fotocopiadora
...
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 33
Agradecimientos dados: 12
Agradecimientos: 4 en 4 posts
Registro en: Jun 2012
Mensaje: #5
RE: Ayuda con un ejercicio de arrays!
tal cual como dice maik, primero te enfocas en resolver el algoritmo, que en este caso son 3 lineas y una vez que te anda bien le agregas "estetica" imprimiendo previamente por pantalla los arrays originales y demas.
haces un while como dijo maik inicializando i=0.
(Este mensaje fue modificado por última vez en: 12-06-2013 14:52 por fer59.)
12-06-2013 14:50
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.492
Agradecimientos dados: 167
Agradecimientos: 583 en 46 posts
Registro en: Mar 2012
Mensaje: #6
RE: Ayuda con un ejercicio de arrays!
(12-06-2013 14:50)fer59 escribió:  tal cual como dice maik, primero te enfocas en resolver el algoritmo, que en este caso son 3 lineas y una vez que te anda bien le agregas "estetica" imprimiendo previamente por pantalla los arrays originales y demas.
haces un while como dijo mail inicializando i=0.

tal cual como dice maik, primero te enfocas en resolver el algoritmo, que en este caso son 3 lineas y una vez que te anda bien le agregas "estetica" imprimiendo previamente por pantalla los arrays originales y demas.
haces un while como dijo maik inicializando i=0.

Ya estoy re quemado, me dirías como quedaría entonces? Va si podes, sino todo bien thumbup3.

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
12-06-2013 14:51
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maik En línea
Presidente del CEIT
.
********

Otra
Otra

Mensajes: 5.297
Agradecimientos dados: 47
Agradecimientos: 190 en 136 posts
Registro en: Sep 2011
Mensaje: #7
RE: Ayuda con un ejercicio de arrays!
no estas pensando en c gonsha, ese est u problema =P

a ver si te lo explico con manzanas.


vos tenes un cajon con 8 manzanas rojas. (seria el array 1)

luego tenes un cajon con 8 cosas que puede ser cualquier cosa, pongamosle, lingotes de oro (o sea, array 2).

ahora, vos agarras las posiciones impares del cajon de manzanas rojas, y metes esas manzanas rojas en las posiciones pares del cajon que tiene lingotes de oro. ahora, la pregunta es : que tan importante es guardar los lingotes de oro? en caso de que no sea importante, vos metes las manzanas rojas en donde corresponde, y los lingotes se pierden. a lo que voy es, para que mierda queres un array auxiliar si los lingotes no son relevantes en el problema planteado?

pd. la funcion son 3 lineas, sentate y hacelas porque sino cuando tengas q eu hacer algo mas "serio" no vas a poder xD

NO ESTAS PENSANDO EN C

MODS
[Imagen: 2r5t075.jpg]
(Este mensaje fue modificado por última vez en: 12-06-2013 22:38 por Maik.)
12-06-2013 22:37
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.487 en 411 posts
Registro en: Apr 2010
Mensaje: #8
RE: Ayuda con un ejercicio de arrays!
Te dejo la función:



void funcion (int *ptr_1, int *ptr_2){
int i,o;
int cont = 0, array_aux [10] = {0};
for(i=0,o=1,cont=0;(i<9)&&(o<10);i=i+2,o=o+2,cont++){
array_aux[cont] = ptr_1[o]; //Aca guardo los pares (buffer)
ptr_1[o] = ptr_2[i]; // Aca copio las pares de 2 en impares de 1.
ptr_2[i] = array_aux[cont]; //Aca copio los pares de 1 en impares de 2.
cont++;
}
}




Y este el programa entero:



#include <stdio.h>

void funcion (int *ptr_1, int *ptr_2);
/* Una funcion que copie el contenido de las posicions impares de un vector en las posiciones pares de
* otro vector.
*/

int main (void)
{
int array_1[10] = {5,4,32,1,5,2,1,2,8,70};
int array_2[10] = {6,7,10,23,1,56,19,98,0,12};
int contador;

/***** Imprimo el vector no modificado *****/

printf ("El Array 1 es:\n");
for (contador = 0 ; contador < 10 ; contador++)
printf("%d\t",array_1[contador]);
printf ("\nEl Array 2 es:\n");
for (contador = 0 ; contador < 10 ; contador++)
printf("%d\t",array_2[contador]);

/***** Llamo a funcion que modifica *****/

funcion(array_1,array_2);

/***** *****/

/***** Imprimo el vector modificado *****/

printf ("\nEl Array 1 es:\n");
for (contador = 0 ; contador < 10 ; contador++)
printf("%d\t",array_1[contador]);
printf ("\nEl Array 2 es:\n");
for (contador = 0 ; contador < 10 ; contador++)
printf("%d\t",array_2[contador]);

getchar();
return 0;
}

// Aca hago la funcion.

void funcion (int *ptr_1, int *ptr_2){
int i,o;
int cont = 0, array_aux [10] = {0};
for(i=0,o=1,cont=0;(i<9)&&(o<10);i=i+2,o=o+2,cont++){
array_aux[cont] = ptr_1[o]; //Aca guardo los pares (buffer)
ptr_1[o] = ptr_2[i]; // Aca copio las pares de 2 en impares de 1.
ptr_2[i] = array_aux[cont]; //Aca copio los pares de 1 en impares de 2.
cont++;
}
}



En cuanto a tu código, ni lo mire..., vi mucho comentado borre todo, siempre es la opción mas fácil.
Fijate si entendes lo que te hice, es al pepe usar taaanta herramienta cuando con un for se simplifica todo!!!
Y otra sugerencia, no comentes tooooodo tampoco, esta bueno comentar pero no esta bueno excederse.

[Imagen: digitalizartransparent.png]
13-06-2013 00:49
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.492
Agradecimientos dados: 167
Agradecimientos: 583 en 46 posts
Registro en: Mar 2012
Mensaje: #9
RE: Ayuda con un ejercicio de arrays!
Lo comente para que ustedes sepan bien que hice en cada paso. Pense que iba a ser mas facil. Gracias =).

Maik, fijate que feer tambien hizo un array aux. A feer no se le discute eh!

Feer probaste el programa? Porque lo probe y no esta funcionando bien. Puede ser que te hayas equivocado en la funcion y en vez de poner i = 1 y o = 0 pusiste al revés?

p.d:No dije nada, esta todo perfecto.

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
(Este mensaje fue modificado por última vez en: 13-06-2013 15:40 por Gonsha.)
13-06-2013 13:27
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maik En línea
Presidente del CEIT
.
********

Otra
Otra

Mensajes: 5.297
Agradecimientos dados: 47
Agradecimientos: 190 en 136 posts
Registro en: Sep 2011
Mensaje: #10
RE: Ayuda con un ejercicio de arrays!
pero feer esta al pedo y quiere perder valiosos bits de programa.

recordemos lo que puede llegar a hacer un ingeniero electronico por un par de bits.

MODS
[Imagen: 2r5t075.jpg]
13-06-2013 16:51
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.487 en 411 posts
Registro en: Apr 2010
Mensaje: #11
RE: Ayuda con un ejercicio de arrays!
En realidad la variable aux la tuve que agregar para copiar después al nuevo vector, si no necesitaba de ese paso ni la creaba.
Eso lo agregué porque al final comentado decía que te faltaba eso jaja.

Suerte, cualquier duda avisa =)

[Imagen: digitalizartransparent.png]
14-06-2013 00:31
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.492
Agradecimientos dados: 167
Agradecimientos: 583 en 46 posts
Registro en: Mar 2012
Mensaje: #12
RE: Ayuda con un ejercicio de arrays!
Feer, una pregunta: Supongamos que tengo el abecedario desordenado, en un array de chars de 26 variables o posiciones (sin la ñ) y lo quiero ordenar. Como haría para comparar cada carácter? Se me ocurrió usando el componente ascii de c/ carácter, pero no sabría hacerlo. Como seria?

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
14-06-2013 01:00
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.487 en 411 posts
Registro en: Apr 2010
Mensaje: #13
RE: Ayuda con un ejercicio de arrays!
Te dejo la función:



void ordenar_vector(char *string){

int i,j,buffer;
int tamano = 0;
tamano = strlen(string);
for(i=0;i<(tamano-1);i++){
for(j=i+1;j<tamano;j++){
if(string[i]>string[j]){
buffer = string[j];
string[j] = string[i];
string[i] = buffer;
}
}
}
}




Te dejo el código entero:



#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void ordenar_vector(char *string);

int main(void){

char abc[]={'a','c','b','z','f','y'};
int i;
printf("Vector desordenado: ");
for(i=0;i<6;i++)
printf("%c ",abc[i]);
ordenar_vector(abc);
printf("Vector ordenado: ");
for(i=0;i<6;i++)
printf("%c ",abc[i]);
getchar();
return(0);
}


void ordenar_vector(char *string){

int i,j,buffer;
int tamano = 0;
tamano = strlen(string);
for(i=0;i<(tamano-1);i++){
for(j=i+1;j<tamano;j++){
if(string[i]>string[j]){
buffer = string[j];
string[j] = string[i];
string[i] = buffer;
}
}
}
}




Saludos.

[Imagen: digitalizartransparent.png]
14-06-2013 01:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Feer recibio 1 Gracias por este post
Gonsha (14-06-2013)
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.492
Agradecimientos dados: 167
Agradecimientos: 583 en 46 posts
Registro en: Mar 2012
Mensaje: #14
RE: Ayuda con un ejercicio de arrays!
Nono, sin usar stings ni funciones que involucren cosas de strings. Solo con arrays y punteros (si estos son necesarios). Se te ocurre algo? Va en realidad lo lei y no usaste strings (simplemente usaste la func. strlen)

Gracias Feer =).

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
(Este mensaje fue modificado por última vez en: 14-06-2013 01:48 por Gonsha.)
14-06-2013 01:41
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Feer Sin conexión
Presidente del CEIT
win-win
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.565
Agradecimientos dados: 594
Agradecimientos: 2.487 en 411 posts
Registro en: Apr 2010
Mensaje: #15
RE: Ayuda con un ejercicio de arrays!
En ves de mandarle un solo parámetro le mandas también el tamaño (26) y listo..



void ordenar_vector(char *string, int tamano){

int i,j,buffer;
for(i=0;i<(tamano-1);i++){
for(j=i+1;j<tamano;j++){
if(string[i]>string[j]){
buffer = string[j];
string[j] = string[i];
string[i] = buffer;
}
}
}
}



Suerte!

[Imagen: digitalizartransparent.png]
14-06-2013 01:50
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.