Dev - C++ - Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

 
Vista:
sin imagen de perfil

Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

Publicado por Cesar (4 intervenciones) el 05/05/2015 17:18:01
Hola! Es mi primer tema y creo que a muchos les servirá esto.

Estando en clases de C++ el profesor colocó el siguiente ejercicio: "Sin saber cual es el tamaño de un vector (array), ingrese una cantidad X de números. Luego de ello, imprima cuales son primos". Bien, yo sabia como sacar cuando un numero es primo o no. El problema es que el array debía ser dinámico ya que la restricción del docente era "sin usar STL, ni la clase vector ni punteros". Después de 1 hora, finalmente pude dar con el chiste. Adjunto el código por si deseas probarlo por ti mismo. Cualquier pregunta, no dudes en hacerlo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

Publicado por Rene gar (50 intervenciones) el 06/05/2015 00:09:15
Espero no te ofendas pero tu profesor esta enseñando algunas incoherencias como en este codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int num=0;
	int tam1=0;
	int tam=0;
	int cont=0;
	int v[tam1];
 
	int x[2];
 
	int i=0;
	cout<<"\t\t\tVECTORES DE PRIMOS";
	do {
		cout<<"\nIngrese el numero: ";
		cin>>num;
		v[tam1] = num;
		tam1++;
	}
	while (num != 0);

Eso esta recontra mal ya que ni c o c++ permite crear arreglos en tiempo de ejecucion sin antes reservar memoria
para una prueba de ello puedes ingresar valores y mas o menos por el valor 10 o 11 ingresado tu programa caera

Espero que le digas a tu profesor que se ponga a explicar bien o que mejor se retire porque asi no van a progresar

Este codigo que hicieron es como si yo hiciera esto

1
2
3
4
5
6
int tamano;
	cout<<"ingrese la cantidad de valores a entrar "<<endl;
	cin>> tamano;
	int arreglo[tamano];
	cout<<"listo"<<endl;
	cin.get()

Tampoco es valido pero por lo menos no se cae tan facilmente
espero mis palabras no te ofendan solo quiero que aprenda a programar de una buena manera saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

Publicado por Cesar Gomez (4 intervenciones) el 06/05/2015 01:07:15
En primera instancia, fue una prueba que se hizo y se sabia que sucedería que después de 15 números se explotaría.

Segundo, el código lo hice yo y está correcto... de incoherente no tiene nada, o como asignar un nuevo tamaño sin new, malloc, alloc, punteros, stl o la clase vector? Te invito a que lo hagas de otra manera y me dices. Lo único que nos está enseñando es a desarrollar la lógica, cosas que los que estamos iniciando no tienen.

Por ultimo, agregas lineas de código que no están en el cpp, así que tu argumento es literalmente incorrecto.

Espero no te ofendas.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

Publicado por Rene Gar (50 intervenciones) el 06/05/2015 06:14:07
Error mio tu codigo era asi

1
2
3
4
5
6
7
8
9
10
int num=0,tam1=0,tam2=0,cont=0;
	int v[tam1], x[tam2], i=0;
	cout<<"\t\t\tVECTORES DE PRIMOS";
	do {
		cout<<"\nIngrese el numero: ";
		cin>>num;
		v[tam1] = num;
		tam1++;
	}
	while (num != 0);

Pero al final lo que hizo tu profesor o tu sigue estando mal si realmente quieres practicar la logica hay cientos de ejercicios que se pueden hacer bien.
Me puedes venir a decir todo un relato de que si no existe otra forma ademas new o malloc etc. esto no justifica que el programa esta mal hecho punto, es la realidad.

No te enojes al final el perjudicado no soy yo si no ustedes que no aprenderan de una manera correcta al rato va llegar un chico nuevo pensando que el codigo que has publicado es correcto cuando es todo lo contario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

Publicado por Cesar Gomez (4 intervenciones) el 06/05/2015 06:18:00
Espero la solución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

Publicado por Rene Gar (50 intervenciones) el 06/05/2015 07:31:38
La solucion tu lya a conoces utiliza malloc si es c o new en c++ para reservar memoria en el heap
si es que quieres crear arreglos dinamicos o en tiempo de ejecucion

Cuando reserves memoria en el heap evitate estar redimensionando su tamaño ya que si dices que el arreglo es de 100 al rato no quieras que sea de 200

Para esos casos donde no se saben el tamaño de un arreglo es mejor utilizar las listas enlazadas o la clase vector

Me imagino que todo esto lo sabes por eso no entiendo el codigo que has planteado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

Publicado por Cesar Gomez (4 intervenciones) el 06/05/2015 07:41:24
Te invito a que leas el primer post de nuevo.
No crees que ya lo hubiese hecho con un STL para evitarme tantos problemas?
Por eso hay que discutir con base a los fundamentos. Fin del offtopic.

Espero a alguien mas le funcione.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Arrays Dinámicos (sin Estructuras de Datos ni Librerías) e Identificación de Números Primos

Publicado por Rene Gar (1 intervención) el 07/05/2015 01:16:58
Ya vi que te ofendiste espero que despues que este mas tranquilo analizes mis comentarios y entiendas que cuando algo esta mal lo esta y no hay vuelta atras.

Pero bueno que se le puede hacer si asi piensas que bueno saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar