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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: ayuda  (Leído 7,835 veces)
rafa011

Desconectado Desconectado

Mensajes: 2


Ver Perfil
ayuda
« en: 2 Marzo 2014, 23:23 pm »

Un centenar de mujeres, hombres y niños asistieron a un banquete para recaudar fondos.

Cada uno de los hombres que asistió pagó 75 monedas, cada mujer 99 y cada niño 40 monedas. Si en total se ingresaron 7869 monedas,

Hacer un programa en C que determite Cuántos hombres, mujeres y niños había, respectivamente?


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ayuda
« Respuesta #1 en: 2 Marzo 2014, 23:57 pm »

1- no hagas doble post... con uno basta
http://foro.elhacker.net/programacion_general/ayuda_con_un_programa-t409716.0.html;topicseen

2- cual es tu duda? (no se hacen codigos, programas, tareas, trabajos, etc....)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
rafa011

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: ayuda
« Respuesta #2 en: 3 Marzo 2014, 00:21 am »

como puedo hacer ese programa en c++
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ayuda
« Respuesta #3 en: 3 Marzo 2014, 00:57 am »

qué sabes de c?

lo básico seria por fuerza bruta:

colocar 3 variables que entre ellas siempre deben sumar 100 (hombre, mujeres, y niños, las llamare A, B y C respectivamente)

usar 1 ciclo para recorrer la primera variable, desde 1  hasta 98 (esto porque las otras deben valer siempre por lo menos 1 c/u)

el segundo ciclo va desde 1 hasta 100-A-1 (100 es la sumatoria, A es el valor de la variable en primer ciclo, 1 es el valor minimo de la tercera variable)

en este segundo ciclo C va a ser igual a 100-A-B para mantener siempre la proporción de 100

por ultimo en este ciclo creas un if donde si A*75 + B*99 + C*40 = 7869 entonces tienes la combinación correcta... en ese caso, imprimes en pantalla y listo...

ya lo que tienes que hacer es volver a código eso que te dije... no es tanto, 2 ciclos  un if y algunas sumas...
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: ayuda
« Respuesta #4 en: 3 Marzo 2014, 01:19 am »

hola rafa011, primero resuélvelo  en lápiz y papel; llegarás a un algoritmo que resuelve tu problema como te indica engelx, luego lo codificas a c++. saludos.
En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ayuda
« Respuesta #5 en: 3 Marzo 2014, 09:46 am »

hola rafa011, primero resuélvelo  en lápiz y papel; llegarás a un algoritmo que resuelve tu problema como te indica engelx, luego lo codificas a c++. saludos.

Yo le dejo el papel y el lápiz para que haga los números ya que see trata de una par de ecuaciones simples, pero acabará en algo como esto:

Citar

hombres=33   mujeres=46   niños=21

Process returned 0 (0x0)   execution t
[/quote]

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.  int i=0;
  6.  for(i=0;i<98;i++)
  7.    if ((100-(369+35*i)/24-i)*75+99*(369+35*i)/24+40*i==7869 && (100-(369+35*i)/24-i>=1)  )
  8.      printf ("\nhombres=%d   mujeres=%d   ni\xA4os=%d\n",100-(369+35*i)/24-i,(369+35*i)/24,i);
  9.  return 0;
  10. }
  11.  

¡¡¡¡ Saluditos! ..... !!!!


« Última modificación: 3 Marzo 2014, 16:23 pm por leosansan » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ayuda
« Respuesta #6 en: 3 Marzo 2014, 10:28 am »

leosansan... la intención del foro es aprender, no hacer el trabajo...

por otro lado... wtf con la ecuación? XD de donde rayos sacaste?
por otros lado me suena a que es dependiente del valor final, ya que tienes 3 variables independientes y una sola ecuación

a demás evaluándola todos los valores manejados me dan 7869 en la primera parte del if y >=1 para todo entre 0 y 34 en la segunda parte...
podrías explicar la lógica de tu respuesta en este código sin tener el valor final?

Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4.  int i=0;
  5.  for(i=0;i<98;i++){
  6.    if ((100-(369+35*i)/24-i)*75+99*(369+35*i)/24+40*i==7869 && (100-(369+35*i)/24-i>=1)  ){
  7.      printf ("\nhombres=%d   mujeres=%d   ni\xA4os=%d\n",100-(369+35*i)/24-i,(369+35*i)/24,i);
  8.    }
  9.  }
  10.  return 0;
  11. }
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: ayuda
« Respuesta #7 en: 3 Marzo 2014, 10:32 am »

leosansan... la intención del foro es aprender, no hacer el trabajo...

En este caso concreto, el que copie esa ecuación no creo que sea capaz de explicarla... no porque sea complicada, sino porque copiar eso literal implica una falta total de conocimientos.

El que copia y no entiende suspende fijo... es ley de vida... llámalo selección natural.

por otro lado... wtf con la ecuación? XD de donde rayos sacaste?
por otros lado me suena a que es dependiente del valor final, ya que tienes 3 variables independientes y una sola ecuación

No es más que llevar, en el sentido literal y estricto, la ecuación de papel a código.

Se puede hacer de forma mucho más clara y comprensible, pero apostaría que lo ha hecho así precisamente para no hacerle la tarea a nadie.
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ayuda
« Respuesta #8 en: 3 Marzo 2014, 10:54 am »

leosansan... la intención del foro es aprender, no hacer el trabajo...

por otro lado... wtf con la ecuación? XD de donde rayos sacaste?
por otros lado me suena a que es dependiente del valor final, ya que tienes 3 variables independientes y una sola ecuación

a demás evaluándola todos los valores manejados me dan 7869 en la primera parte del if y >=1 para todo entre 0 y 34 en la segunda parte...
podrías explicar la lógica de tu respuesta en este código sin tener el valor final?


Es un sistema de ecuaciones indeterminado ya que hay tres variables y sólo dos ecuaciones. Ello da lugar a que puedan existir infinitas soluciones, al menos en el campo real. Otra cosa es si la solución que se busca es entera.

Y no tienen mayor misterio que plantear las ecuaciones:

* 75*x+99*y+40*z=7869

* x+y+z=100

Despejando una de las variables de la segunda, yo elegí la x, y sustituyendo en la primera, para a continuación volver a despejar una de las variables en la ecuación resultante de la primera sustitución, yo tomé la y, y tomar como parámetro o variable, la "i" del for, a la variable restante z. Simple pero efectivo, salvo pifia por mi parte.

Como comentó eferion quería que el código quedará "ofuscado" para que no se diga que había resuelto el ejercicio.

 

¡¡¡¡ Saluditos! ..... !!!!



« Última modificación: 3 Marzo 2014, 10:59 am por leosansan » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: ayuda
« Respuesta #9 en: 3 Marzo 2014, 11:17 am »

Como comentó eferion quería que el código quedará "ofuscado" para que no se diga que había resuelto el ejercicio. [/size]

Podías haberle puesto alguna macro de por medio... jejejeje
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines