Autor
|
Tema: ¿Es correcto este diagrama de flujo? (Leído 6,895 veces)
|
jamatbar
Desconectado
Mensajes: 104
|
Buenas, me piden hacer el diagrama de flujo de este programa: /* Includes del sistema */ #include <stdio.h>
/* Includes de la aplicacion */ /* Constantes del fichero */ #define RESPUESTANOPRIMO " %d no es primo\n" #define RESPUESTAPRIMO " %d es primo\n"
/* Tipos definidos por el usuario para el fichero */
/* Prototipo de funciones locales */ int main() { /* Almacenara el numero leido por teclado */ int valor; /* Servira como indice del bucle for que vamos a utilizar. */ int i; /* Solicitamos el numero que queremos saber si es primo */ printf("Introduzca un valor: "); scanf(" %d", &valor);
/* El bucle lo comenzamos en 2: todo numero es divisible por 1 * y lo terminamos antes de valor: todo numero es divisible por si mismo */
for ( i = 2; i < valor; i++ ) if (0 == (valor % i))
/* Si el resto es cero, es porque i divide * No es primo. */ printf(RESPUESTANOPRIMO, valor);
return 0; } Y lo he hecho así: ¿Modificaríais algo? Gracias de antemano y un saludo!
|
|
|
En línea
|
|
|
|
dmacias
|
Me pongo en modo observatorio, que justo estoy leyendo sobre diagramas de flujo y pseudocodigos
|
|
|
En línea
|
|
|
|
xiruko
Desconectado
Mensajes: 438
|
leer valor --> i=2 --> (valor%i == 0) --> Sí --> Fin (No es primo) --> No --> (i++) --> (i < valor) --> Sí --> Volver a (valor%i == 0) --> No --> Fin (Sí es primo)
Yo lo haría así. Aunque la condición de (i < valor) puedes reducirla a (i <= valor/2) para ahorrarte ciclos en el for.
Saludos.
|
|
|
En línea
|
|
|
|
jamatbar
Desconectado
Mensajes: 104
|
leer valor --> i=2 --> (valor%i == 0) --> Sí --> Fin (No es primo) --> No --> (i++) --> (i < valor) --> Sí --> Volver a (valor%i == 0) --> No --> Fin (Sí es primo)
Yo lo haría así. Aunque la condición de (i < valor) puedes reducirla a (i <= valor/2) para ahorrarte ciclos en el for.
Saludos.
Buenas, antes que nada gracias por mirarlo aunque he de decirte que por ahora no tengo que cambiar el código, ya que según lo que me pidan tendré que modificarlo de una forma u otra. Por ahora lo que tengo que hacer es hacer el diagrama de flujo de dicho código, aunque sé de antemano que es bastante pobre como programa xD
|
|
|
En línea
|
|
|
|
dato000
Desconectado
Mensajes: 3.034
|
Ahhh el llamado pseudocódigo, esos diagramas de flujo son excelentes para confundir a las personas y venderles una buena idea o una completa basura con una lógica y cáracter argumentado con un encanto sin igual... En fin, viejos recuerdos, mira, una cosa que se me hace raro en las instituciones es que no enseñan a realizar el ciclo for, extraño, pero así pasa, lo hicieron en el mio, lo hicieron en muchos, hay muchas cosas que no se enseñan, y que estan en los libros amigo mio, internet no siempre es la respuesta. No es tan dificil, solo es cuestión de leer un poco, si quieres saber más, que bien te haría, te sugiero estos sitios, hablan también de C# que también es muy util, pero digamos que te dejo estos links para que uses la referencia que tienen sobre los diagramas. Codificación del diagrama de flujoEstructura repetitiva forEstructura repetitiva whileEstructura repetitiva do whileAquí el curso, muy recomendable. Curso introduccion a CSharp/C# - CSharpYaSaludos
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
l Yo lo haría así. Aunque la condición de (i < =valor) puedes reducirla a (i <= valor/2) para ahorrarte ciclos en el for.
Yo lo haría así. Aunque la condición de (i < valor) puedes reducirla a (i*i<valor) para ahorrarte muchísimos ciclos en el for. Además el incremento de i lo haría como i+=2, con en valor inicial de 3, ya que sabemos que los primos, con excepción del 2, son impares.Saluditos! ..... !!!!
|
|
« Última modificación: 9 Enero 2014, 12:08 pm por leosansan »
|
En línea
|
|
|
|
xiruko
Desconectado
Mensajes: 438
|
Yo lo haría así. Aunque la condición de (i < valor) puedes reducirla a (i*i<valor) para ahorrarte muchísimos ciclos en el for. Además el incremento de i lo haría como i+=2, con en valor inicial de 3, ya que sabemos que los primos, con excepción del 2, son impares.
Pues sí, con esa condición aun te ahorras más ciclos en el for, pero yo creo que te dejaste el '=' en ella: (i*i <= valor) Saludos.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
|
|
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas!
¿Ninguno os habéis dado cuenta de que aunque el valor tenga resto cero al dividirlo por i el bucle continua? La única condición del algoritmo inicial para salir del bucle es que i >= valor
Todos los diagramas de flujo que habeis hecho están mal. Ninguno de ellos representa el algoritmo que se plantea, que es el objetivo del ejercicio y no decidir si el algoritmo está bien o si se puede optimizar o lo que sea, el enunciado es simple, a partir del código escribir el diagrama de flujo.
¡Saludos!
|
|
« Última modificación: 9 Enero 2014, 12:54 pm por do-while »
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Alguien me ayuda revisando este ejercicio de diagrama de flujo?
Ejercicios
|
Aikanáro Anário
|
0
|
4,382
|
1 Mayo 2010, 18:56 pm
por Aikanáro Anário
|
|
|
Este Diagrama de flujo esta bien distribuido ?
Ejercicios
|
rub'n
|
1
|
5,460
|
28 Noviembre 2010, 04:54 am
por .mokk.
|
|
|
practica de diagrama de flujo
Ejercicios
|
el.benefactor
|
1
|
7,394
|
2 Octubre 2011, 22:42 pm
por s00rk
|
|
|
Duda con diagrama de flujo
ASM
|
.:UND3R:.
|
2
|
4,108
|
5 Enero 2012, 10:46 am
por .:UND3R:.
|
|
|
ayuda diagrama de flujo DFD
Ejercicios
|
Kacoae
|
0
|
2,810
|
30 Mayo 2013, 16:53 pm
por Kacoae
|
|