ayuda con programa

gokinero

Bovino maduro
#1
buenas tardes amigos bakunos tengo una duda haber si me pueden ayudar con un programa

la idea es hacer uan numeracion del 1 al 500 pero qe no muestre los numeros qe contengan algun 5 incluyendo 15 25 35... 51 52..53... todo lo qe tenga 5 no debe aparecer, yo entendi mal y hize este programa en donde no muestra un numero qe acabe en 5, pero el progrma debe mostrar una numeracion sin numeros qe contengan 5

================

#include<stdio.h>
#include<conio.h>
main()
{
int x=1, y=1, z=5;
printf("Este programa calcula una serie numerica desde 1 hasta llegar a 500.\n");
printf("\nNo se mostraran los numeros que acaben en 5.\n");
while(y<51.1)
{
while(x<z)
{
printf("%d\t",x);
x++;
}
x++;
z=z+10;
y++;
}
getch();
}

=========================


alguna idea de como hacerlo??

:eolo:

aqui les dejo una imagen de como se ve el programa

 

Zephyros

Bovino de la familia
#2
Crea un filtro para los números que contengan un 5 entre sus cifras. Puedes intentar de estas formas:

-Separar por cifras los dígitos para crear el filtro y no mostrar los que contengan un '5'.
-Crear una condición basada en divisibilidad para los números y no mostrar los que sean divisibles y que cumplan la condición que necesitas. Te recomiendo que uses el módulo de la división para ello.

Por cierto, a menos que sea un requisito, te recomiendo que utilices DevC++ en lugar de BorlandC, ya que utiliza cabeceras no compatibles con el estándar ANSI.
 

Zephyros

Bovino de la familia
#3
No puedo editar mi mensaje, por ello te pongo una captura de lo que te menciono utilizando el primer método:



Podrás observar que no se muestra ningún número que contenga en alguno de sus dígitos un 5.

Se puede hacer la lógica del programa en 3 líneas de código, puede extenderse hasta cualquier numero y además puede modificarse muy fácilmente para cualquier dígito que no quieras que aparezca.
 

Zephyros

Bovino de la familia
#6
a qe buena onda y como le hiciste o como puedo crear el filtro qe dices
Qué pasó, yo no le hago la tarea a los demás! >_<

Lee mis mensajes anteriores, ahí te indico cómo lo hice. -_-

Tip:
-Separar por cifras los dígitos para crear el filtro y no mostrar los que contengan un '5'.
Si tienes dudas más específicas, plantéalas aquí mismo, trataré de ayudarte.
 

gokinero

Bovino maduro
#7
#include<stdio.h>
#include<conio.h>
main ()
{
int x, y=5, z=50;
printf("Este programa calcula una serie numerica desde 1 hasta llegar a 500.\n");
printf("\nNo se mostraran los numeros que acaben en 5.\n");
for(x=1;x<=499;x++)
{
if(x==y)
{
y=y+10;
}
else
{
if (x==z)
{
x=x+9;
z=z+100;
}
else
{
printf("%d \t",x);
}
}
}
getch();
}


me qeda asi pero aun muestra alguno 5 :/
 

gokinero

Bovino maduro
#8
#include<stdio.h>
#include<conio.h>
main ()
{
int x, y=5, z=50;
printf("Este programa calcula una serie numerica desde 1 hasta llegar a 500.\n");
printf("\nNo se mostraran los numeros que acaben en 5.\n");
for(x=1;x<=499;x++)
{
if(x==y)
{
y=y+10;
}
else
{
if (x==z)
{
x=x+9;
z=z+100;
}
else
{
printf("%d \t",x);
}
}
}
getch();
}


me qeda asi pero aun muestra alguno 5 :/
 

Zephyros

Bovino de la familia
#9
En qué parte de tu programa utilizas el método que te sugiero...? o_O

Si no utilizas ese método, explícame la lógica que aplicas para intentar resolver el problema, así podré entender qué no está haciendo el programa.

Editado después de batallar con la plataforma... X_X
 

Zephyros

Bovino de la familia
#12
esqe no ce crear filtros >.<
Entonces te recomiendo que leas un libro de Lenguaje C. Más específicamente las estructuras condicionales, con eso podrás hacer tu tarea.

La idea que utilicé ya la mencioné, ahora tendrás que aprender a usar las estructuras condicionales para aplicarla.
 

gokinero

Bovino maduro
#13
y qe recomiendas mas usar el for o while para el ciclo y bueno grax x la info esqe como apenas ando aprendiendo va voy a buscar libros o algo para informarme mas
 

Zephyros

Bovino de la familia
#14
y qe recomiendas mas usar el for o while para el ciclo y bueno grax x la info esqe como apenas ando aprendiendo va voy a buscar libros o algo para informarme mas
Te daré un poco del pseudocódigo:

Problema:
Generar la serie de números desde 1 hasta 500 y mostrar sólo aquellos que no contengan un '5' entre sus cifras.

-Yo utilicé un ciclo FOR.
-Partiendo de ahí, separar los números generados por cifras.
-Eliminar (por decirlo de alguna manera) o filtrar (más correcto) aquellos que contengan un '5' en alguna de sus cifras.
-Mostrar los que no cumplen la condición anterior.

Como menciono antes, eso se logra en tres líneas de código (la parte lógica), todo el programa sin incluír comentarios y mensaje inicial de la descripción del mismo, me tomó 16 líneas de código desde el primer #include hasta la última llave de cierre del circlo main().
Esto por supuesto no significa que tu programa deba ser idéntico, lo que intento explicar es que el programa no es complicado, sólo debes analizar paso a paso cómo hacer que los números generados cumplan la condición que requiere la solución del problema, lo demás es codificación en Lenguaje C.

Si aún no comprendes la metodología de programación funcional de C, entonces debes leer libros que te enseñen al respecto.

Yo tengo algunos libros, que te recomiendo revisar:

-El Lenguaje de Programación C, 2da Edición. Kernigan & Ritchie
-Diseño de Algoritmos y su Codificación en Lenguaje C. Corona
-Beginning C, 5th Edition. Horton
-C Algoritmos Programacion y Estructuras de Datos. Joyanes
-C How to Program, 6th Edition. Deitel
-C Primer Plus, 5th Edition. Prata

Son mis libros favoritos. Existen muchos más, pero en lo personal son los que utilizo. Nunca dejo de aprender... ñ_ñ
 

CGME_dante

Bovino adolescente
#15
#include <stdio.h>

int main() {

int i,j,k;

printf("Hello world!\n");

for (i=0 ; i<=4 ; i++ ) {
if ( i== 5)
++i;

for ( j=0; j<=9 ; j++ ) {
if( j == 5)
++j;

for ( k=0; k <= 9 ; k++ ) {

if( k== 5 )
++k;
printf("%d%d%d\t",i,j,k);

}

}

}

return 0;
}
 

CGME_dante

Bovino adolescente
#16
Me latio el problema pa pensarle un ratito, lo resolvi y no habia visto el comentario anterior, jeje, en dado caso, espero te ayude y hechele ganas a progra, que es muy bonito, jeje, saludos.
 

Zephyros

Bovino de la familia
#17
#include <stdio.h>

int main() {

int i,j,k;

printf("Hello world!\n");

for (i=0 ; i<=4 ; i++ ) {
if ( i== 5)
++i;

for ( j=0; j<=9 ; j++ ) {
if( j == 5)
++j;

for ( k=0; k <= 9 ; k++ ) {

if( k== 5 )
++k;
printf("%d%d%d\t",i,j,k);

}

}

}

return 0;
}
Aplicas el pseudocódigo, aunque lo haces a tu manera. Lo cual me parece excelente!

Aunque hubiera preferido que no le hicieras la tarea a quien creó el tema, así nunca aprenderá a hacer las cosas... a menos que viendo tu solución y el pseudcódigo, lo plantee de otra forma y lo resuelva.

Me gustó la salida del programa... ñ_ñ
 
Arriba