elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Mi primer trabajo practico de la facultad
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mi primer trabajo practico de la facultad  (Leído 2,435 veces)
clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Mi primer trabajo practico de la facultad
« en: 1 Septiembre 2010, 15:29 pm »

Bueno, queria ver que les parecia el codigo antes de que lo entregue la semana que viene...
El programa debia calcular los primeros 100 numeros primos, y de ellos, clasificarlos en:
* menores a 100,
* mayores a 100 y menores a 500,
* mayores a 500 y menores a 1000,
Aparte, cada numero primo debia ser colocado en un arreglo, uno atras del otro (no se puede usar string.h)

HE AQUI EL CODIGO... MARAVILLAOS MORTALES!!! ;-) ;-) ;-) ;-) ;-)

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int func1(int x);
  5.  
  6. int main(int argc, char *argv[]){
  7.  int primos[100];
  8.  int x=2, y, pos=0, cont=1;
  9.  while (cont<=100){
  10.        y=func1(x);
  11.        switch (y){
  12.               case 1:{
  13.                    primos[pos]=x;
  14.                    pos=pos+1;
  15.                    if (x<100){
  16.                               printf("%d)El numero %d es primo menor a 100\n", cont, x);
  17.                               x=x+1;
  18.                               cont=cont+1;
  19.                               }
  20.                    else if ((x>100) && (x<500)){
  21.                               printf("%d)El numero %d es primo menor a 500 y mayor a 100\n", cont, x);
  22.                               x=x+1;
  23.                               cont=cont+1;
  24.                               }
  25.                    else if ((x>500) && (x<1000)){
  26.                               printf("%d)El numero %d es primo menor a 1000 y mayor a 500\n", cont, x);
  27.                               x=x+1;
  28.                               cont=cont+1;
  29.                               }
  30.                    else {
  31.                               printf("%d)El numero %d es mayor a 1000", cont, x);
  32.                               x=x+1;
  33.                               cont=cont+1;
  34.                               }
  35.                    break;
  36.               }
  37.               case 0:{
  38.                    x=x+1;
  39.                    break;
  40.               }              
  41.               default: {
  42.                    printf("Opcion erronea");
  43.                    break;
  44.               }
  45.        } //end switch
  46.  } //end while
  47.  
  48.  printf("\n\nPresione ENTER para finalizar la operacion\n");
  49.  while (getchar()!='\n'){}
  50.  return 0;
  51. }
  52.  
  53. int func1(int x){
  54.    int y=2;
  55.    while (x!=y){
  56.          if ((x%y)>0){
  57.                y=y+1;
  58.          }
  59.          else {
  60.               return 0;
  61.          }
  62.    }
  63. return 1;
  64. }


« Última modificación: 1 Septiembre 2010, 15:33 pm por clodan » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Mi primer trabajo practico de la facultad
« Respuesta #1 en: 1 Septiembre 2010, 15:47 pm »

Sugerencias:
Cambiar los códigos de tipo ... a=a+1, por a++
Que acaso no estas repitiendo código innecesariamente? :rolleyes:
Código
  1. x=x+1;
  2. cont=cont+1;
Eso lo tienes en todos los IF, si lo vas a hacer en cualquier caso entonces sacalo de los IF, que el IF solo contenga el mensaje.
En la función func1, yo en tu lugar utilizaría un FOR, e igualaría a 0, en lugar de hacer mayor a 0

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Mi primer trabajo practico de la facultad
« Respuesta #2 en: 1 Septiembre 2010, 15:48 pm »

Algunas cosas a mejorar:

  • Deberías usar asignaciones. Es una buena costumbre utilizarlas.
  • En las instrucciones sin sentencias no hace falta poner las llaves. Con un punto y coma basta.

Saludos :P

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
« Última modificación: 1 Septiembre 2010, 15:51 pm por Horricreu » En línea

clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Mi primer trabajo practico de la facultad
« Respuesta #3 en: 1 Septiembre 2010, 16:04 pm »

Sugerencias:
Cambiar los códigos de tipo ... a=a+1, por a++
Que acaso no estas repitiendo código innecesariamente? :rolleyes:
Código
  1. x=x+1;
  2. cont=cont+1;
Eso lo tienes en todos los IF, si lo vas a hacer en cualquier caso entonces sacalo de los IF, que el IF solo contenga el mensaje.
En la función func1, yo en tu lugar utilizaría un FOR, e igualaría a 0, en lugar de hacer mayor a 0

Saludos


la cosa es que si en la func1, en la parte de if ((x%y)>0)  si esa parte da mayor a 0, quiere decir qe es primo, o que esta todavia en camino de ser primo...
si da = a 0 quiere decir qe no es primo, porqe es divisible por otro numero... entonces lo que vos propones seria, cambiar eso por un igual y que mientras sea = 0 siga haciendo la cuenta??
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Mi primer trabajo practico de la facultad
« Respuesta #4 en: 1 Septiembre 2010, 16:09 pm »

Lo que ocurre es que junto a eso recomendaba usar FOR, para hacerlo más legible y compacto :rolleyes:, puedes dejarlo así si quieres, puedo pegarte un code pero creo que no es la "gracia" verdad :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Mi primer trabajo practico de la facultad
« Respuesta #5 en: 1 Septiembre 2010, 17:19 pm »

Lo que ocurre es que junto a eso recomendaba usar FOR, para hacerlo más legible y compacto :rolleyes:, puedes dejarlo así si quieres, puedo pegarte un code pero creo que no es la "gracia" verdad :P

Saludos

es que en esto de los codes soy ultra principiante, y por ahi vos me tiras FOR o cosas asi y yo pienso que son algo, pero nada qe ver jajaja
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Mi primer trabajo practico de la facultad
« Respuesta #6 en: 1 Septiembre 2010, 17:22 pm »

Eso es lo principal, que soluciones tus problemas con los temas que ya has visto en la facultad, sería raro que aprendas sobre el bucle WHILE, te envíen un ejercicio al respecto, y lo entregues con un FOR :xD

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Las chuletas en el móvil llegan a la facultad
Noticias
wolfbcn 6 2,787 Último mensaje 9 Marzo 2011, 18:09 pm
por raul338
Primer día de trabajo--[Algún consejo?]--
Foro Libre
P01 7 2,489 Último mensaje 24 Abril 2013, 23:24 pm
por дٳŦ٭
(Ayuda) Trabajo Practico Computadoras Electronicas
Hardware
ariasantiago 1 1,005 Último mensaje 27 Noviembre 2015, 08:28 am
por Lurker
(Ayuda) Trabajo Practico Redes
Redes
ariasantiago 1 1,644 Último mensaje 27 Noviembre 2015, 08:27 am
por Lurker
Duda respecto a un trabajo practico.
Redes
r333k 1 2,198 Último mensaje 7 Noviembre 2017, 09:21 am
por warcry.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines