Viernes 15 de Noviembre de 2024, 08:32
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Ayudenme Porfavor Porfavor
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Ayudenme Porfavor Porfavor (Leído 3354 veces)
Gero_M
Nuevo Miembro
Mensajes: 11
Ayudenme Porfavor Porfavor
«
en:
Miércoles 23 de Junio de 2004, 04:24 »
0
Hola disculpen que los moleste con estas cosas, pero es que tengo un problema y no lo he podido resolver necesito generar un programa en C con el siguiente problema
“ Juan, el cartero, una noche se aburría y para romper la monotonía llevó a cabo un experimento con una fila de buzones de correo. Estos buzones estaban numerados del 1 al 150, y empezando con el 2 abrió todas las puertas de los buzones numerados con un número par. Después, comenzando con el buzón 3, fue de tres en tres abriendo las puertas si estaban cerradas y cerrándolas si estaban abiertas. Volvió a repetir este proceso con los buzones haciéndolo de cuatro en cuatro, de cinco en cinco, etc. Cuando terminó, se sorprendió de la distribución de los buzones cerrados. Escriba un programa que determine cual eran estos buzones. “
La solución por Ud. propuesta debe:
Utilizar vectores
Utilizar funciones
espero que puedan ayudarme y nuevamente disculpen por molestar con cosas que yo deberia resolver solo, pero este foro me genero la confianza de preguntar y me genera confianza por sus respuestas...
gracias Atentamente GERO_M
Tweet
"Las Estrellas están ahí... Solo debes Mirarlas"
Gero_M
Nuevo Miembro
Mensajes: 11
Re: Ayudenme Porfavor Porfavor
«
Respuesta #1 en:
Miércoles 23 de Junio de 2004, 05:10 »
0
Hola Denuevo se que nadie me ha respondido y que pensaran que solo espero que me hagan la tarea se que uds. no hacen las tareas... pero miren
Yo he echo este codigo para inicializar el vector en 0 que significaria Buzon cerrado pero cuando trato de poner un for(i=1;i<150;i+2) para que valla de 2 en 2 poniendo 1 me manda error esto es lo que tengo:
#include <stdio.h>
#include <conio.h>
int a,b,c,d,i,j;
int vec[150];
main()
{
printf("problema de buzones ");
for(i=0;i<150;i++)
vec
=0;
for(i=0;i<150;i++)
if(vec
==0)
printf("\nBuzon Cerrado");
else printf("\nBuzon Abierto");
getch();
}
y creo que el programa va por aqui: #include <stdio.h>
#include <conio.h>
int a,b,c,d,i,j;
int vec[150];
main()
{
printf("problema de buzones ");
for(i=0;i<150;i++)
vec
=0;
for(i=0;i<150;i+2)
if(vec
==0)
vec
=1;
i++;
for(i=0;i<150;i++)
if(vec
==0)
printf("\nBuzon Cerrado");
else printf("\nBuzon Abierto");
getch();
}
pero el programa corre pero no muestra nada...
espero ayuda gracias.
"Las Estrellas están ahí... Solo debes Mirarlas"
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Ayudenme Porfavor Porfavor
«
Respuesta #2 en:
Miércoles 23 de Junio de 2004, 06:43 »
0
y entonces cual es tu problema...
por lo menos deberias detectar el problema para que te ayudaramos con cosas mas puntuales..
nadie tiene tiempo para ponerce a hacer seguimiento..
por lo meno yono lo tengo.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
Blag
Moderador
Mensajes: 697
Re: Ayudenme Porfavor Porfavor
«
Respuesta #3 en:
Miércoles 23 de Junio de 2004, 07:33 »
0
Citar
for(i=1;i<150;i+2)
No debería ser......
Código: Text
for(i=1;i<150;i+=2)
Saludos,
Blag
Alvaro Tejada Galindo
Consultor ABAP Senior - Freelancer
SinglePath's Experimental HomePage
Revista "Código Latino"
Blag's Blogs en SDN
Lenguajes Script y SAP
Mi Blog Personal
Noel Solw
Miembro activo
Mensajes: 81
Re: Ayudenme Porfavor Porfavor
«
Respuesta #4 en:
Miércoles 23 de Junio de 2004, 17:59 »
0
Este problema tiene muchisimas versiones, esta de los buzones la veo por primera vez.
Al finalizar el proceso, los buzones numerados con el cuadrado de un numero entero quedan abiertos si los demas estan cerrados (o viceversa).
Esto se debe, a que todos los numeros que nos son cuadrados tienen un numero par de divisores distintos, mientras que los cuadrados lo tienen impar.
Por ejemplo, los disores de 13 son dos : 1 y 13, los de 32 son seis : 1,2,4,8,16 y 32, mientras que los de 25 son tres : 1,5 y 25 (5 divide dos veces pero es un solo divisor distinto).
En estos momentos estoy muy ocupado, si todavia no has solucionado el problema, avisame a ver si puedo darte una mano.
Gero_M
Nuevo Miembro
Mensajes: 11
Re: Ayudenme Porfavor Porfavor
«
Respuesta #5 en:
Jueves 24 de Junio de 2004, 02:10 »
0
Gracias Noel Solw..
miren he creado un nuevo codigo que es el siguiente
#include <stdio.h>
#include <conio.h>
int i,x,vec[150];
main()
{
printf("Problema de Buzones ");
for(i=0;i<150;i++)
vec
=0;
for(x=1;x<150;x=x++);
for(i=x;i<150;i+x)
if(vec
==0) vec
=1;
else vec
=0;
for(i=0;i<150;i++)
if(vec
==0)
printf("\nBuzon Cerrado");
else printf("\nBuzon Abierto");
getch();
}
lo hice para ir incrementando el i en razon de x para que valla de 2 en 2 luego de 3 en 3 y asi sucesivamente lo que pasa es que ahora me imprime solo buzon cerrado y no abre ningun buzon ...
"Las Estrellas están ahí... Solo debes Mirarlas"
Gero_M
Nuevo Miembro
Mensajes: 11
Re: Ayudenme Porfavor Porfavor
«
Respuesta #6 en:
Jueves 24 de Junio de 2004, 03:04 »
0
hola he terminado mi programa pero debo hacerlo con funciones y no he podido dejar las funciones quiero hacer una donde el programa haga el procedimiento de abrir y cerrar buzones y otra para imprimirla pero no he podido...
este es mi programa final:
#include <stdio.h>
#include <conio.h>
int i,x,vec[150];
main()
{
printf("\t\t\tProblema de Buzones \n");
for(i=0;i<150;i++)
vec
=0;
do
for(x=1;x<150;x=x++)
for(i=x;i<150;i=i+x)
if(vec
==0) vec
=1;
else vec
=0;
while(i==150);
for(i=0;i<150;i++)
if(vec
==0)
printf("\n %d : Buzon Cerrado", i+1);
else
printf("\n %d : Buzon Abierto", i+1);
getch();
}
y creo que las funciones deberian ser asi
#include <stdio.h>
#include <conio.h>
int buzon[150];
int i,x;
main()
{
printf("\t\t\tProblema de Buzones \n");
for(i=0;i<150;i++)
buzon
=0;
buzon();
imprimir();
getch();
}
buzon()
{
do
for(x=1;x<150;x=x++)
for(i=x;i<150;i=i+x)
if(buzon
==0) buzon
=1;
else buzon
=0;
while(i==150);
}
imprimir()
{
for(i=0;i<150;i++)
if(buzon
==0)
printf("\n %d : Buzon Cerrado", i+1);
else
printf("\n %d : Buzon Abierto", i+1);
}
pero me manda errores:
called object is not a function
`buzon' redeclared as different kind of symbol
y otros similares pero con imprimir... porfavor ayudenme...
"Las Estrellas están ahí... Solo debes Mirarlas"
Blag
Moderador
Mensajes: 697
Re: Ayudenme Porfavor Porfavor
«
Respuesta #7 en:
Jueves 24 de Junio de 2004, 05:26 »
0
Citar
for(x=1;x<150;x=x++)
No necesitas asignar el valor a x, si ya lo estás incrementando con el ++.
Código: Text
for(x=1;x<150;x++)
Primero, necesitas declarar un tipo de dato para la función, segundo, necesitas declarar la función antes de llamarla.
Código: Text
#include <stdio.h>
#include <conio.h>
int buzon[150];
int i,x;
void buzones();
void imprimir();
main()
{
printf("\t\t\tProblema de Buzones \n");
for(i=0;i<150;i++)
buzon[i]=0;
buzones();
imprimir();
getch();
}
void buzones()
{
do
for(x=1;x<150;x++)
for(i=x;i<150;i=i+x)
if(buzon[i]==0) buzon[i]=1;
else buzon[i]=0;
while(i==150);
}
void imprimir()
{
for(i=0;i<150;i++)
if(buzon[i]==0)
printf("\n %d : Buzon Cerrado", i+1);
else
printf("\n %d : Buzon Abierto", i+1);
}
Saludos,
Blag
jejejeje.....Le tuve que quitar los tags de negrita al código, porque no sabía que no funcionaban dentro de un tag de code.....
Alvaro Tejada Galindo
Consultor ABAP Senior - Freelancer
SinglePath's Experimental HomePage
Revista "Código Latino"
Blag's Blogs en SDN
Lenguajes Script y SAP
Mi Blog Personal
Noel Solw
Miembro activo
Mensajes: 81
Re: Ayudenme Porfavor Porfavor
«
Respuesta #8 en:
Jueves 24 de Junio de 2004, 09:46 »
0
Estimado Gero, reforme un poco tu programa para que trabaje con funciones.
Exito ! ! !
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
Gero_M
Nuevo Miembro
Mensajes: 11
Re: Ayudenme Porfavor Porfavor
«
Respuesta #9 en:
Viernes 25 de Junio de 2004, 03:03 »
0
Muchas Gracias Blaq y Noel Slow... es bueno saber que siempre puede haber alguien te escucha y da la mano...
me despido he terminado bien mi programa se lo agradesco a ambos...
y Noel Slow siempre he esperado tener Exito gracias...
Chao Atte
GERO
"Las Estrellas están ahí... Solo debes Mirarlas"
Amilius
Miembro HIPER activo
Mensajes: 665
Re: Ayudenme Porfavor Porfavor
«
Respuesta #10 en:
Viernes 25 de Junio de 2004, 04:12 »
0
Sólo agregar un pequeño truquillo de optimización muy recomendable en estos casos para evitar el "if".
En lugar de
Código: Text
if(buzon[i]==0) buzon[i]=1;
else buzon[i]=0;
es mejor
Código: Text
buzon[i]^= 1;
lidenbrock
Nuevo Miembro
Mensajes: 17
Re: Ayudenme Porfavor Porfavor
«
Respuesta #11 en:
Jueves 8 de Julio de 2004, 06:22 »
0
Hola, quizà no sirva de mucho, pero es recomendable (al menos asì lo hago) que al momento de declarar las funciones o las variables, si son del mismo tipo las declares en una sola lìnea hasta el final de la línea visible en el editor.
Ejemplo:
//para declarar variables
int contador,m,n,j,i,parar,elige,seleccion;
//para declarar funciones
void estructura(),mapa(),raton(),grafico(),reloj(),xyrata();
De esta manera, evitas el repetir el nombre de las funciones y de las variables, lo que te generaba un error en tu programa.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Ayudenme Porfavor Porfavor