ayuda

Iniciado por rafa011, 2 Marzo 2014, 23:23 PM

0 Miembros y 2 Visitantes están viendo este tema.

rafa011

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?

engel lex

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....)
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

como puedo hacer ese programa en c++

engel lex

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...
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

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.
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

leosansan

#5
Cita de: Gh057 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.

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 (cpp) [Seleccionar]

#include <stdio.h>

int main()
{
 int i=0;
 for(i=0;i<98;i++)
   if ((100-(369+35*i)/24-i)*75+99*(369+35*i)/24+40*i==7869 && (100-(369+35*i)/24-i>=1)  )
     printf ("\nhombres=%d   mujeres=%d   ni\xA4os=%d\n",100-(369+35*i)/24-i,(369+35*i)/24,i);
 return 0;
}


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



engel lex

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?

#include <stdio.h>
int main()
{
  int i=0;
  for(i=0;i<98;i++){
    if ((100-(369+35*i)/24-i)*75+99*(369+35*i)/24+40*i==7869 && (100-(369+35*i)/24-i>=1)  ){
      printf ("\nhombres=%d   mujeres=%d   ni\xA4os=%d\n",100-(369+35*i)/24-i,(369+35*i)/24,i);
    }
  }
  return 0;
}
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

Cita de: engelx en  3 Marzo 2014, 10:28 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.

Cita de: engelx en  3 Marzo 2014, 10:28 AM
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.

leosansan

#8
Cita de: engelx 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?


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! ..... !!!!




eferion

Cita de: leosansan en  3 Marzo 2014, 10:54 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