Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Jigsaw_MGO en 17 de Diciembre 2013, 17:30
-
Buenas tardes (aquí en Venezuela) y Feliz Navidad a todos, me llamo Alejandro, tenía meses que no hacía un post aquí ya que no había tenido problemas ni con HTML ni con QBASIC Ni Visual Basic, pero es que en la universidad ( y no es por hablar mal del país) la educación es muy deficiente, vean, estudio Informática, voy por el cuarto semestre casi y no puede ser que aun no sepa programar bien, les explico, los profesores inician con un tema, hacemos unos programitas y despues cambian a otro lenguaje muy rapido y así no me gusta a mi, me parece de más incomodo (Si ustedes dirán, ¿y por qué no estudias también por internet?, porque a mi se me hace más facil cuando me explican las cosas y no cuando las leo). En fin llegamos al final de año y ni idea tengo de programar bien en HTML, hicimos dos paginas web con dreamweaver, y ahora nos mandó de "regalo" 8 programas en PHP, SI OCHO!! de un lenguaje que desconozco completamente.
Ahora realmente a lo que he venido, es a que me orienten como puedo hacerlos, yo les voy pasando los códigos que vaya haciendo y ustedes me corrigen por favor, no les estoy pidiendo que me los hagan todos, pero me confunde tanto corchete "{" que no se donde ponerlos...
Gracias de antemano, un abrazo, y disculpen la molestias de nuevo.
PS: La profe me dijo que guardara la pagina .php en una carpeta en wampserver en la parte de www. para que corriera, será que tengo usar bases de datos para estos programas?, ya que son formularios tal parece.
-
Hola Alejandro, igualmente Feliz Navidad.
Para consultar cuestiones sobre las que te puedan surgir dudas de HTML y PHP:
Curso de HTML: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=69&Itemid=192
Curso de PHP: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193
Para preparar los programas que te han encargado: intenta hacerlo por partes. Haz una parte, y cuando estés seguro de que una parte funciona, continúa con la siguiente parte. Tienes que ir comprobando poco a poco la ejecución del programa.
Sobre lo de poner el archivo php en la carpeta www de wampserver, esto es para que tu ordenador funcione como servidor y ejecute el intérprete de php, de modo que los archivos con código php puedan ser ejecutados y mostrados sus resultados. No significa que necesites base de datos (aunque cuando se trabaja con php es muy común usar base de datos, no es obligatorio; no sé si en algún ejercicio la necesitarás, pero al menos en el primero parece que no). Por cierto, al archivo tienes que ponerle extensión php para que funciones, de la misma forma que si solo fuera código html tendrías que ponerle extensión html. Si miras el curso de php ahí está bien explicado.
He empezado a mirar el código del primer programa.
Escribes por un lado:
<label>Tiempo Anterior:
<input type="text" name="textta" />
</label>
Y por otro:
$tiempo=$_POST['texta'];
Aquí tienes una errata, si pones texta en lugar de textta el intérprete php no entiende lo que quieres decir y supone que texta es una variable nueva de la que no tiene información y por tanto $tiempo vale cero.
Tendrás que cambiarlo por :
$tiempo=$_POST['textta'];
Parece una tontería, pero no te puedes equivocar ni en una letra al escribir código.
Después escribes:
<label>Sexo:
<select name="select">
<option>Hombre</option>
<option>Mujer</option>
</select>
Cuando envías la información si lo haces por get en lugar de por post obtienes algo así: .php?textedad=34&textta=22&select=Hombre&Submit=Enviar
Luego en el código php tienes esto:
$sexo=$_POST['Sexo'];
Pero Sexo no es un campo del formulario, ya que el campo lo defines con el nombre que le pones en name, en este caso el campo lo has llamado select, lo cual no es un nombre muy recomendable. Por tanto lo más lógico es cambiar en el código HTML y dejarlo así:
<label>Sexo:
<select name="Sexo">
<option>Hombre</option>
<option>Mujer</option>
</select>
De este modo el campo ya se llama Sexo y así tiene sentido la línea $sexo=$_POST['Sexo'];
Esto es lo que he visto, por ahora... (voy a seguir mirándolo)
Por cierto, no escribas en mayúsculas ni URGENTE!!!!!!! porque parece que estuvieras gritando.
Saludos.
-
Si disculpame, y gracias por tomarte el tiempo en ayudarme, la vez pasada me ayudó Alex :), de verdad quiero aprender a programar mejor, ser como ustedes para poder identificar cualquier problema con tan solo verlo y saber que codigo poner en cada momento, porque de verdad en la uni la profe ni nos explica asi como ustedes, por eso te lo agradezco y a medida que vaya avanzando voy subiendo los codigos. Buenas noches, muchas gracias.
-
Ya he revisado el código. Una cuestión básica en la que has fallado en alguna ocasión: cada vez que aparezca una variable tienes que ponerla con el signo $ delante. Por ejemplo no puedes escribir if (tiempo < 175), tienes que escribir if ($tiempo < 175).
Aquí te dejo el código funcionando bien (recuerda que tienes que guardarlo en un archivo con extensión php y ejecutarlo en un servidor):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Maratón</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>Edad
<input type="text" name="textedad" />
</label>
<p>
<label>Tiempo Anterior (minutos):
<input type="text" name="textta" />
</label>
</p>
<p>
<label>Sexo:
<select name="Sexo">
<option>Hombre</option>
<option>Mujer</option>
</select>
</label>
</p>
<p>
<label>Evaluar:
<input type="submit" value="Enviar" />
</label>
</p>
</form>
<?php
$edad=$_POST['textedad'];
$tiempo=$_POST['textta'];
$sexo=$_POST['Sexo'];
if ($_POST) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Sexo: '.$sexo.'<br/>';
echo 'Edad: '.$edad.'<br/>';
echo 'Tiempo anterior: '.$tiempo.' minutos <br/>';
}
if($sexo=="Mujer")
{
if ($tiempo<=180)
{
echo "Esta Seleccionada para el Maraton de La Yaguara";
}
else
{
echo "Lo Sentimos pero No Fue Seleccionada";
}
}
if ($sexo=="Hombre")
{
//Si es menor de 40
if ($edad<=40)
{
if($tiempo<=150)
{
echo "Esta Seleccionado para el Maraton de La Yaguara";
}
else
{
echo "No esta seleccionado";
}
}
//Si es mayor de 40
if ($edad>40)
{
if($tiempo<=175)
{
echo "Esta Seleccionado para el Maraton de La Yaguara";
}
else
{
echo "No esta seleccionado";
}
}
}
?>
</body>
</html>
-
Muchas gracias Cesar!!, muy bien ahora dos preguntas a ver si entiendo bien:
1: Esta parte del código que significa?
"if ($_POST) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Sexo: '.$sexo.'<br/>';
echo 'Edad: '.$edad.'<br/>';
echo 'Tiempo anterior: '.$tiempo.' minutos <br/>';
}"
2: ¿Cómo hago para correrlo en el servidor?, he hecho esto: usando Dreamweaver, creé una carpeta llamada maratón, la guarda en otra carpeta llamada "Paginas Web Locales" donde tengo todas mis páginas web, luego copio y pego esa carpeta en la parte de "www" de wampserver, al correrlo aparece el formulario normalmente y debajo de eso, aparecen fragmentos de código. Ayer traté de hacer una prueba con un código de "Hola Mundo" sencillo y la página está en blanco, no aparece ningún mensaje:
<html>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
Gracias de antemano por la ayuda. Buen día!
ACTUALIZANDO: Ya lo resolvi!!!!! como todo buen programador uno mismo tiene que buscar la solución jajaja, el problema era el httpd.conf del apache de wampserver que tenía mal la direccion del servidor tenía "\" en vez de "/", con razón me daba errores. Ahora voy con los demás programas y voy avisandote de mi progreso, has sido de gran ayuda!!!.Gracias.
!!ACTUALIZACION 2!! Muy bien ya funciona, acomodé algunos errores en el código (ensayo y error) y aquí está checalo si quieres!!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Maraton</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>Edad
<input type="text" name="textedad" />
</label>
<p>
<label>T
iempo Anterior (minutos):
<input type="text" name="textta" />
</label>
</p>
<p>
<label>Sexo:
<select name="Sexo">
<option>Hombre</option>
<option>Mujer</option>
</select>
</label>
</p>
<p>
<label>Evaluar:
<input type="submit" value="Enviar" />
</label>
</p>
</form>
<?php
[b]$edad = (isset($_POST['textedad']) ) ? $_POST['textedad'] : ''; //Modifcación
$tiempo = (isset($_POST['textta']) ) ? $_POST['textta'] : ''; //Modificado
$sexo = (isset($_POST['Sexo']) ) ? $_POST['Sexo'] : '';[/color][/b] //Modificado
if ($_POST) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Sexo: '.$sexo.'<br/>';
echo 'Edad: '.$edad.'<br/>';
echo 'Tiempo anterior: '.$tiempo.' minutos <br/>';
}
if($sexo=="Mujer")
{
if ($tiempo<=180)
{
echo "Esta Seleccionada para el Maraton de La Yaguara";
}
else
{
echo "Lo Sentimos pero No Fue Seleccionada";
}
}
if ($sexo=="Hombre")
{
//Si es menor de 40
if ($edad<=40)
{
if($tiempo<=150)
{
echo "Esta Seleccionado para el Maraton de La Yaguara";
}
else
{
echo "No esta seleccionado";
}
}
//Si es mayor de 40
if ($edad>40)
{
if($tiempo<=175)
{
echo "Esta Seleccionado para el Maraton de La Yaguara";
}
else
{
echo "No esta seleccionado";
}
}
}
?>
</body>
</html>
Una última cosa me puedes explicar ¿por que cuando voy a la carpeta del servidor,'www' y abro el archivo .php, se va a Dreaweaver y cuando lo corro con F12 vuelven los errores?. Me refiero a los fragmentos de codigo suelto, y cuando lo ejecuto por Localhost y abro la project folder me corre bien? ¿No debería estar perfecto de la manera que sea que lo ejecute?. Disculpa lo preguntón pero me gusta aprender :).
-
Muy bien un adelanto del segundo ejercicio, ya lee los datos ingresados y las ventas y los imprime, pero ahora no se como hacerles las operaciones matemáticas... por favor ayudame que no se como ponerlos. Aquí te dejo el código que he hecho hasta ahora.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ventas</title>
</head>
<body>
<p><strong>Se tiene como dato de entrada el nombre del vendedor y 4 ventas, se debe calcular el total a pagar sabiendo que su sueldo básico es de 400.000,00 y se le paga un bono correspondiente al 25% de las ventas promedio se debe imprimir el nombre del vendedor, sueldo básico, bono y neto a pagar al finalizar se pide el total a pagar de todos los bonos.</strong></p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre del Vendedor:
<input type="text" name="textnombre" />
</label>
<p>
<label>Venta 1
<input type="text" name="textventa1" />
</label>
</p>
<p>
<label>Venta 2
<input type="text" name="textventa2" />
</label>
</p>
<p>
<label>Venta 3
<input type="text" name="textventa3" />
</label>
</p>
<p>
<label>Venta 4
<input type="text" name="textventa4" />
</label>
</p>
<p>
<label>Total:
<input type="text" name="texttotalapagar" />
</label>
</p>
<p>
<label>Calcular:
<input type="submit" name="Calcular" value="Enviar" />
</label>
</p>
<p>
<label></label>
</p>
</form>
<p align="center"><strong></strong></p>
<?php
$nombre = (isset($_POST['textnombre']) ) ? $_POST['textnombre'] : '';
$venta1 = (isset($_POST['textventa1']) ) ? $_POST['textventa1'] : '';
$venta2 = (isset($_POST['textventa2']) ) ? $_POST['textventa2'] : '';
$venta3 = (isset($_POST['textventa3']) ) ? $_POST['textventa3'] : '';
$venta4 = (isset($_POST['textventa4']) ) ? $_POST['textventa4'] : '';
$totalapagar=(isset($_POST['texttotalapagar']) ) ? $_POST['texttotalapagar'] : '';
if ($_POST) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'nombre: '.$nombre.'<br/>';
echo 'venta1: '.$venta1.' Bolivares <br/>';
echo 'venta2: '.$venta2.' Bolivares <br/>';
echo 'venta3: '.$venta3.' Bolivares <br/>';
echo 'venta4: '.$venta4.' Bolivares <br/>';
echo 'total: '.$totalapagar.'<br/>';
}
?>
</body>
</html>
¿Que me recomiendas tu como la hago? para calcularle los bonos, sacarle el 25% de las ventas promedio y calcularle el sueldo basico etc? me orientas por favor? Gracias.
-
Hola, te respondo a lo que planteabas:
1. Significado de esta parte del código
"if ($_POST) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Sexo: '.$sexo.'<br/>';
echo 'Edad: '.$edad.'<br/>';
echo 'Tiempo anterior: '.$tiempo.' minutos <br/>';
}"
if ($_POST) es un condicional que lo que hace es comprobar si se está recibiendo información mediante el método post, es decir, cuando se carga la página por primera vez no se recibe información puesto que el usuario no ha rellenado los datos del formulario y pulsado enviar. En cambio, después de cargar la página cuando el usuario rellena el formulario y pulsa enviar ya se están enviando datos. Cuando llegan datos $_POST toma valor true (verdadero). Cuando no llegan datos $_POST toma valor false (falso).
echo '<br/>'; La sentencia genera el código HTML de aquello que va entre las comillas. En este caso estamos añadiendo en el código HTML de la página una etiqueta <br/> que introduce un salto de línea.
Las siguientes líneas lo que hacen es mostrar los datos. Por ejemplo si el usuario introduce como datos edad 45 años, sexo hombre y tiempo anterior 155 minutos a través de este código se muestra por pantalla lo siguiente:
Datos:
Sexo: Hombre
Edad: 45
Tiempo anterior: 155 minutos
2. ¿Cómo se corre en el servidor?
Primero tienes que colocar el archivo php dentro de la carpeta www en la ruta de wampserver. Por ejemplo: C:\wampserver\maraton.php
Luego tienes que abrir tu navegador (firefox, internet explorer, chrome o el que sea) y escribir http://localhost y comprobar que te muestra la página de inicio del servidor. Si no te la muestra puede que tengas un problema con wampserver.
Finalmente para visualizar la página escribes http://localhost/maraton.php y la página se ejecutará en tu navegador. Si lo hubieras puesto dentro de una carpeta por ejemplo programas, tendrás que escribir la ruta que tengas, por ejemplo http://localhost/programas/maraton.php
3. ¿por que cuando voy a la carpeta del servidor,'www' y abro el archivo .php, se va a Dreaweaver y cuando lo corro con F12 vuelven los errores?
Para ver un archivo php debes hacerlo como te he indicado escribiendo la ruta en el navegador. Si te abre con dreamweaver posiblemente se debe a que en tu configuración local tienes indicado que se asocien los archivos php a dreamweaver. Sobre la aparición de errores, php tiene distintos modos de ejecución y debugging (depuración). php es capaz de correr páginas web "tragándose" algunos warnings o errores poco relevantes sin mostrar ninguna advertencia, pero hay configuraciones para que te muestre los mensajes de error aunque sean poco relevantes. Yo no me preocuparía de los pequeños errores sino de que las cosas funcionen cuando se escribe la dirección en el navegador y ya está.
4. Para el segundo programa y los cálculos matemáticos te pongo cómo serían con un ejemplo. Ahora lo que tienes que ver es qué nombre le has dado tú y adaptarlo.
$sueldoBase = 400000;
$nombreVendedor;
$venta1;
$venta2;
$venta3;
$venta4; (Estos 4 datos será los que vengan del formulario)
$promedioVentas = ($venta1+$venta2+$venta3+$venta4);
$bono=0.25 * $promedioVentas;
-
Buenas César, y muchas gracias como siempre por la ayuda, voy a intentar hacer bien las paginas web y despues te las voy pasando para que evalúes y me corrijas los errores que pueda tener, a medida que vaya avanzando te voy diciendo. Muchas Gracias!, Buenas Tardes.
Primera Actualización : (16:50 horas)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ventas</title>
</head>
<body>
<p><strong>Se tiene como dato de entrada el nombre del vendedor y 4 ventas. Se debe calcular el total a pagar sabiendo que su sueldo básico es de 400.000,00 y se le paga un bono correspondiente al 25% de las ventas promedio se debe imprimir el nombre del vendedor, sueldo básico, bono y neto a pagar al finalizar se pide el total a pagar de todos los bonos.</strong></p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre del Vendedor:
<input type="text" name="textnombre" />
</label>
<p>
<label>Venta 1
<input type="text" name="textventa1" />
</label>
</p>
<p>
<label>Venta 2
<input type="text" name="textventa2" />
</label>
</p>
<p>
<label>Venta 3
<input type="text" name="textventa3" />
</label>
</p>
<p>
<label>Venta 4
<input type="text" name="textventa4" />
</label>
</p>
<p>
<label></label>
</p>
<p>
<label>Calcular:
<input type="submit" name="Calcular" value="Enviar" />
</label>
</p>
<p>
<label></label>
</p>
</form>
<p align="center"><strong></strong></p>
<?php
$sueldoBase = 400000;
$nombreVendedor = (isset($_POST['textnombre']) ) ? $_POST['textnombre'] : '';
$venta1 = (isset($_POST['textventa1']) ) ? $_POST['textventa1'] : '';
$venta2 = (isset($_POST['textventa2']) ) ? $_POST['textventa2'] : '';
$venta3 = (isset($_POST['textventa3']) ) ? $_POST['textventa3'] : '';
$venta4 = (isset($_POST['textventa4']) ) ? $_POST['textventa4'] : '';
$promedioVentas = ($venta1+$venta2+$venta3+$venta4)/4;<---ventas promedio
$bono=0.25 * $promedioVentas;
$totalapagar = ($venta1+$venta2+$venta3+$venta4);
$netoapagar = ($venta1+$venta2+$venta3+$venta4+$bono);
if ($_POST) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre Vendedor: '.$nombreVendedor.'<br/>';
echo 'Venta 1: '.$venta1.' Bolivares <br/>';
echo 'Venta 2: '.$venta2.' Bolivares <br/>';
echo 'Venta 3: '.$venta3.' Bolivares <br/>';
echo 'Venta 4: '.$venta4.' Bolivares <br/>';
echo 'Sueldo Básico: '.$sueldoBase.' Bolivares <br/>';
echo 'Promedio de Ventas: '.$promedioVentas.' Bolivares <br/>';
echo 'Bonos por las Ventas: '.$bono.' Bolivares <br/>';
echo 'Neto a Pagar sin Bonos: '.$totalapagar.' Bolivares <br/>';
echo 'Total a Pagar con Bonos: '.$netoapagar.' Bolivares <br/>';
}
?>
</body>
</html>
[hr]
Ahí está el segundo programa hecho revisalo por favor y me dices si te funciona bien, y que le puedo mejorar o como hacerlo mas presentable, ¿si?, Gracias de Antemano.
Segunda Actualización : (17:08 horas)
Con respecto al tercer programa, el del supermercado, no tengo ni idea de cómo hacerlo, es decir, si se que pondría, pero lo que me mató fue lo de capturar los productos en la caja y mostrar los precios a los clientes.
En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar, al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja. ¿cual fue el promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con cheques?
Lo que yo podría hacer o quería hacer pero no se hacerlo (quizás esté equivocado) era una base de datos con una serie de productos con un precio establecido. Ya que no me dicen cuantos productos compra el cliente, ¿cómo hago si por ejemplo el cliente compra más de 3 productos o más? los textboxes no me servirían aquí... Es decir en diferentes situaciones poder agregar productos, mientras se esté ejecutando el programa.
En resumen todo lo que hay que mostrar:
1- Los productos comprados y su precio.
2-Total de las ventas de su caja ese día.
3.El promedio de las ventas
4.Cuantos clientes pagaron en efectivo y cheques?
5-Total recolectado en efectivo y cheques <-- se lo pondría yo.
Gracias de antemano en lo que me puedas orientar, Buenas Tardes.
-
Hola, he probado el programa 2 y me sale un error:
Parse error: syntax error, unexpected '<' on line 56
La línea la tienes así:
$promedioVentas = ($venta1+$venta2+$venta3+$venta4)/4;<---ventas promedio
Los comentarios en php se ponen con // ó con /* ... */ por lo que tendrías que dejarla así:
$promedioVentas = ($venta1+$venta2+$venta3+$venta4)/4;//<---ventas promedio
También aparece un hr al final que hay que borrar
El cálculo de los pagos creo que lo tienes mal hecho. Lo que tienes que pagar sería:
Neto: 400000
Total = neto + bono
Ahora mismo tienes puesto que el pago es la suma de las ventas más el bono ¿Y eso por qué?
Para el tercer programa: usar una base de datos no lo veo como solución mágica, ya que los precios de productos los puedes fijar dentro del archivo igualmente y el problema está en la indefinición del número de clientes y número de productos. Aquí lo que se me ocurre sería usar bucles: un bucle exterior para clientes (de forma que en cada ocasión se da opción a añadir un nuevo cliente o a dar por concluida la adición de clientes) y un bucle interior para productos (de forma que en cada ocasión se mete el precio del producto 1, producto 2, ... para el cliente correspondiente). Los datos lo normal sería guardarlos en arrays, en archivo o en base de datos. Para guardarlos en arrays que es quizás lo más simple podrías trabajar con variables de sesión, que te mantienen la información mientras dura la sesión del usuario, aunque esto habría muchas formas de plantearlo y de hacerlo. El enunciado no está tampoco demasiado claro.
-
Del segundo ejercicio:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ventas</title>
</head>
<body>
<p><strong>Se tiene como dato de entrada el nombre del vendedor y 4 ventas. Se debe calcular el total a pagar sabiendo que su sueldo básico es de 400.000,00 y se le paga un bono correspondiente al 25% de las ventas promedio se debe imprimir el nombre del vendedor, sueldo básico, bono y neto a pagar. Al finalizar se pide el total a pagar de todos los bonos.</strong></p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre del Vendedor:
<input type="text" name="textnombre" />
</label>
<p>
<label>Venta 1
<input type="text" name="textventa1" />
</label>
</p>
<p>
<label>Venta 2
<input type="text" name="textventa2" />
</label>
</p>
<p>
<label>Venta 3
<input type="text" name="textventa3" />
</label>
</p>
<p>
<label>Venta 4
<input type="text" name="textventa4" />
</label>
</p>
<p>
<label></label>
</p>
<p>
<label>Calcular:
<input type="submit" name="Calcular" value="Enviar" />
</label>
</p>
<p>
<label></label>
</p>
</form>
<p align="center"><strong></strong></p>
<?php
$sueldoBase = 400000;
$nombreVendedor = (isset($_POST['textnombre']) ) ? $_POST['textnombre'] : '';
$venta1 = (isset($_POST['textventa1']) ) ? $_POST['textventa1'] : '';
$venta2 = (isset($_POST['textventa2']) ) ? $_POST['textventa2'] : '';
$venta3 = (isset($_POST['textventa3']) ) ? $_POST['textventa3'] : '';
$venta4 = (isset($_POST['textventa4']) ) ? $_POST['textventa4'] : '';
$promedioVentas = ($venta1+$venta2+$venta3+$venta4)/4;
$bono=0.25 * $promedioVentas;
$netoapagar = ($sueldoBase+$bono);
$totalapagar = ($venta1+$venta2+$venta3+$venta4+$bono);
if ($_POST) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre Vendedor: '.$nombreVendedor.'<br/>';
echo 'Venta 1: '.$venta1.' Bolivares <br/>';
echo 'Venta 2: '.$venta2.' Bolivares <br/>';
echo 'Venta 3: '.$venta3.' Bolivares <br/>';
echo 'Venta 4: '.$venta4.' Bolivares <br/>';
echo 'Sueldo Básico: '.$sueldoBase.' Bolivares <br/>';
echo 'Promedio de Ventas: '.$promedioVentas.' Bolivares <br/>';
echo 'Bonos a pagar por las Ventas: '.$bono.' Bolivares <br/>';
echo 'Neto a Pagar: '.$netoapagar.' Bolivares <br/>';
echo 'Total a Pagar con Bonos: '.$totalapagar.' Bolivares <br/>'; // <-- en esta linea el br?, a mi me corre bien
}
?>
</body>
</html>
Ahora con respecto al tercer ejercicio:
**Es verdad no tiene un enunciado muy claro. Sin embargo analicémoslo detenidamente.
**Sabemos que en un supermercado, por lógica, uno va a caja con uno o varios productos, ellos lo pasan por un lector y este le muestra al cajero los datos del producto como lo son: Código de Producto, Nombre del Producto, Precio con IVA, etc.
*Primera parte:
Supongamos yo sea el cajero y me traen los productos y yo quiero ingresar el precio y los nombres de los productos y que al final me muestre el total a pagar por el cliente.
*Segunda parte:
Luego quiero que me muestre un informe del total que gané en la caja en todo el dia (o hasta que cierre la sesión, que debería ser hasta que deje de registrar productos), el promedio de las ganancias, y tambíen que me muestre cuantos clientes pagaron en efectivo y cuantos en cheque.
De verdad no tengo ni idea como empezar... ¿Me orientarías por favor?. De verdad necesito saber como agregar nuevos productos y sus precios ya estando en ejecución y que al final muestre ese informe.
Una idea que tenía es que al ejecutar la página, de entrada me pregunte mediante un MSGBOX "¿Cuantos productos desea registrar?" y dependiendo del numero salgan textboxes (o no se con que mas podria hacerlo) que digan "Nombre del Producto:", "Precio Neto:" "Total a pagar por cliente:".
Luego que me pregunte "¿Desea seguir registrando productos?", si es así que me devuelva o haga setfocus al textbox "Nombre del Producto:", de lo contrario, cierre la sesión y me muestre los "echos" con la demás información.
Si tengo la idea pero no se como plantear lo de los bucles externos e internos en código ni la opcion de agregar los productos en tiempo de ejecución, aunque me pregunto ¿Qué es más fácil o más viable en este caso?: 1-¿Qué al ejecutar la página web, me salga el Msgbox que determinará lo que se mostrará en el formulario?, me refiero a que si digo por ejemplo "5" salgan cinco textboxes con sus respectivos "Nombre Producto", "Cantidad", "Precio a Pagar por Cliente:".
2- ¿Ejecutar la página y en una tabla ir agregando datos y que me los sume y muestre sus resultados? (Aclaro que no tengo ni idea del código en ninguna de las dos situaciones).
Gracias de Antemano con lo que me puedas ayudar, Buenas Tardes.
[/quote]
Actualizacion 1:
Y aquí está como lo tengo hasta ahora, basicamente nada pero algo es algo...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Supermercado</title>
</head>
<body>
<p>En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar, al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja, cual fue el promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con cheques. </p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre de Producto
<input name="textnombrep" type="text" id="textnombrep" />
</label>
<p>
<label>Precio del Producto:
<input name="textpreciop" type="text" id="textpreciop" />
</label>
</p>
<p>
<label>Tipo de Pago
<select name="TipoDePago">
<option>Efectivo</option>
<option>Cheque</option>
</select>
</label>
</p>
<p>
<label>Totalizar:
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
</form>
<?php
$nombreproducto = (isset($_POST['textnombrep']) ) ? $_POST['textnombrep'] : '';
$textprecioproducto = (isset($_POST['textpreciop']) ) ? $_POST['textpreciop'] : '';
$promedioventas //<--- dependiendo de cuantos productos se hayan ingresado, sumarlos y sacarles el promedio e imprimirlo por pantalla
$TipoDePago= //<--- Hacer un contador que me sume los que pagaron en efectivo y los que pagan en cheque cada vez que se elija cualquiera de las opciones en la lista.
$TotalRecaudado= //Total efectivo+cheque por los productos en el día.
?>
<p> </p>
<p> </p>
</body>
</html>
Basicamente necesito que por favor me ayudes en algo ya que todavía no me acostumbro a php y este programa simplemente es complicado aún para mi, si no es mucha molestia.
1-El código del Msgbox de manera que me modifique el formulario dependiendo del numero de productos a ingresar:
- Este es mi diseño que creé:
-Nombre Producto
-Cantidad [Lista tipo carrito] <- falta
-Precio Neto del Producto: <- Se incrementa si son más de un mismo producto.
-Tipo de Pago {Lista/Cheque/Efectivo} <- Aquí me surge otra confusión con los contadores, para que cuando pague uno en efectivo aumente, al igual que con los cheques.
-Totalizar: {Botón:Enviar}
2- Los bucles, me resultan también me resultan dificiles de codificar, aún no se la estructura en php de WHILE, FOR, etc.
3- Básicamente lo que tengo en los comentarios del código, este programa lo he estado intentando por mas de 3 horas y solo pude hacer funcionar eso... Por favor.
Eso es todo, ya que los demás se me hará más fácil. En avance gracias como siempre en lo que me puedas guíar.
-
Actualización 2:
(No consigo el botón modificar en el post de arriba...)
He estado intentandolo toda la tarde idear una manera para colocarle los bucles y contadores pero no salen, lo hice funcionar de manera basica pero me faltan cosas, me trae loco este programa :S.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Supermercado</title>
</head>
<body>
<p>En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar, al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja, cual fue el promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con cheques. </p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre de Producto
<input name="textnombrep" type="text" id="textnombrep" />
</label>
<p>
<label>Precio Neto del Producto:
<input name="textpreciop" type="text" id="textpreciop" />
</label>
</p>
<p>
<label>Tipo de Pago
<select name="TipoDePago">
<option>Efectivo</option>
<option>Cheque</option>
</select>
</label>
</p>
<p>
<label>Totalizar:
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
</form>
<?php
$nombreproducto = (isset($_POST['textnombrep']) ) ? $_POST['textnombrep'] : '';
$precioproducto = (isset($_POST['textpreciop']) ) ? $_POST['textpreciop'] : '';
$TipoDePago = (isset($_POST['TipoDePago']) ) ? $_POST['TipoDePago'] : '';
//$cantidad = <--cantidad de productos
$totalacobrar = ($precioproducto);
//$Totaldía = <--todo lo vendido en el día en esa caja
//$promedioVentas = Suma de los productos entre el numero de productos ingresados.
//$pagaefectivo = contador para el tipo de pago "Efectivo"
//$cheque = contador para el tipo de pago "Cheque"
if ($_POST) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre del Producto: '.$nombreproducto.'<br/>';
echo 'Precio Neto del Producto: '.$precioproducto.' Bolivares <br/>';
echo 'Tipo de Pago: '.$TipoDePago.'<br/>';
//echo 'cantidad: '.$Cantidad.'<br/>
echo 'Total a Cobrar: '.$totalacobrar.' Bolivares <br/>';
//$Totaldía = <--todo lo vendido en el día en esa caja
//$promedioVentas = Suma de los productos entre el numero de productos ingresados.
//$pagaefectivo = contador para el tipo de pago "Efectivo"
//$cheque = contador para el tipo de pago "Cheque"
}
?>
<p> </p>
<p> </p>
</body>
</html>
Me falta basicamente, lo que está comentado dentro del código, que no le hallo solución, agregar más productos, el botón de cantidad, los contadores del Tipo de Pago
y bucles para la condición si se desean agregar más productos o no.
Me voy a descansar, Buenas Noches, Saludos.
-
Creo que repetí dos mensajes, necesito borrar el mensaje nueve ya que plantee mal lo que quería...
-
He borrado el mensaje que indicabas erróneo
-
Desde el momento en que se hace necesario almacenar información hay que utilizar algo que lo permita. Entre las posibilidades que se tienen están:
1) Usar una base de datos para almacenar la información
2) Usar archivos para almacenar la información
3) Usar variables de sesión para almacenar la información
4) Usar otras posibilidades para almacenar la información
He tomado el último código que habías generado tú y lo he modificado para almacenar la información usando variables de sesión y arrays. Esto quizás no es lo óptimo, sobre todo porque te obliga a descachearte cada vez que quieras hacer una prueba. Si no te descacheas te sigue contando como si ya hubieras introducido productos (para más seguridad, cada vez que se quiera probar, cerrar el navegador y volver a abrirlo). A este código lo que le faltaría es:
1) Añadir un formulario adicional con un checkbox que permita marcar al usuario "Finalizada la incorporación de productos", o bien también podría hacerse con un link.
2) Añadir una parte de código que cuando detecte que ha terminado la incorporación de productos haga los cálculos y muestre los resultados.
<?php
session_start(); //Iniciamos o Continuamos la sesion
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Supermercado</title>
</head>
<body>
<p>En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar, al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja, cual fue el promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con cheques. </p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre de Producto
<input name="textnombrep" type="text" id="textnombrep" />
</label>
<p>
<label>Precio Neto del Producto:
<input name="textpreciop" type="text" id="textpreciop" />
</label>
</p>
<p>
<label>Tipo de Pago
<select name="TipoDePago">
<option>Efectivo</option>
<option>Cheque</option>
</select>
</label>
</p>
<p>
<label>Totalizar:
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
</form>
<?php
if (!$_SESSION['contadorProductos']){
$_SESSION['contadorProductos']=1;
}
$_SESSION['prueba'][0] = 'prueba';
$_SESSION['nombreproducto'][$_SESSION['contadorProductos']] = (isset($_POST['textnombrep']) ) ? $_POST['textnombrep'] : '';
$_SESSION['precioproducto'][$_SESSION['contadorProductos']] = (isset($_POST['textpreciop']) ) ? $_POST['textpreciop'] : '';
$_SESSION['TipoDePago'][$_SESSION['contadorProductos']] = (isset($_POST['TipoDePago']) ) ? $_POST['TipoDePago'] : '';
if ($_POST) {
echo 'Cantidad de productos registrada: '.$_SESSION['contadorProductos'];
for($i=1;$i<=$_SESSION['contadorProductos'];$i++) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre del Producto: '.$i.' : '.$_SESSION['nombreproducto'][$i].'<br/>';
echo 'Precio Neto del Producto: '.$i.' : '.$_SESSION['precioproducto'][$i].' Bolivares <br/>';
echo 'Tipo de Pago del producto: '.$i.' : '.$_SESSION['TipoDePago'][$i].'<br/>';
}
$_SESSION['contadorProductos'] = $_SESSION['contadorProductos']+1;
}
?>
<p> </p>
<p> </p>
</body>
</html>
Con este código a medida que vas añadiendo productos te va apareciendo abajo la lista con los datos almacenados, por ejemplo:
Cantidad de productos registrada: 3
Datos:
Nombre del Producto: 1 : sandia
Precio Neto del Producto: 1 : 5000 Bolivares
Tipo de Pago del producto: 1 : Cheque
Datos:
Nombre del Producto: 2 : melon
Precio Neto del Producto: 2 : 2000 Bolivares
Tipo de Pago del producto: 2 : Efectivo
Datos:
Nombre del Producto: 3 : pepino
Precio Neto del Producto: 3 : 1000 Bolivares
Tipo de Pago del producto: 3 : Efectivo
-
Buenos días y gracias de nuevo César!, Funciona perfecto el programa pero salía un error en la linea 38 algo de "undefined index" que al utilizar el programa se desapareció ¿por qué será?.
Ahora voy a intentar agregar un textbox "cantidad" para que cuando lleven mas de dos de un mismo producto los multiplique por dos el precio, luego planeo usar tu contador para que me cuente y muestre cuantos pagaron en cheque y efectivo, y luego pongo un condicional para terminar la sesión. Cualquier avance y actualización te aviso.
Buen día, gracias de nuevo.
Actualizando:
Tu codigo me sirvió bien, ahora, busqué y busqué en google como hacer para cerrar sesión y todo lo que aparece son cosas para MYSQL, es decir, bases de datos, entonces esto me confunde y me surgen estas dudas:
1- ¿Realmente las variables [$_SESSION] pueden ayudarme a resolver el problema que tengo con este programa? es decir me corre bien, pero no hallo la manera de cerrar la sesión mediante código (para que apareciera un ConfirmBox preguntandome si deseo seguir agregando productos o no) o supongo que no se como hacerlo, quizás si estoy complicando más las cosas de lo que debería, ¿tu qué piensas?. Ya ví un tuto por internet y crea una serie de archivos para hacer un login para dar inicio a la sesion para luego poder cerrarla, o acaso ¿Esto no es necesario?
2- Algo que me pareció problemático fue que, al terminar de utilizar el programa, muestre los datos de las opciones "Cheque" "Efectivo" de la Lista/Menu, intenté usar tu código del contador combinado con el "echo" y nada, se supone que lo que debo hacer es que por cada sesión (foreach($_SESSION)) me cuente verdaderamente los pagos en efectivo y cheque y los aumente.
3-No se como sumar variables ($_SESSION) es decir, si no he terminado la sesión (cerrando el navegador) por lo que sigue registrando datos, me sume el nuevo producto que agregue con el anterior, y actualice el total a pagar y recaudado.
Entonces ¿tu que piensas lo estoy complicando mucho con lo de las base de datos y el login y todas esas cosas?, ¿Cómo puedo hacerlo para seguir con nuestro formato de variables de sesión?.
Gracias de nuevo César, y disculpa la molestia jajaja, como alumno soy así muy preguntón.
PS: Aquí están los códigos para cada página del login
Para las funciones:
<?php
function conectar($servidor, $user, $pass, $name)
{
$con = @mysql_connect($servidor, $user, $pass);
@mysql_select_db($name, $con);
?>
Para el Login HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Login Html</title>
</head>
<body>
<form action="registro.php" method="$POST">
Usuario: <input type="text" name="user" /> <br />
Contraseña: <input type="text" name="pass" /> <br />
Registrar: <input type="submit" name="Enviar" /> <br />
Para el Login PHP
<?php
require_once('funciones.php');
conectar('localhost', 'root', 'supermercado');
$user = strip_tags($_POST['user']);
$pass = strip_tags(sha1($_POST['pass']));
$query = @mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'" AND pass="'.mysql_real_escape_string($pass).'";
?>
Para el estado "Logueado"
<?php
session_start();
if($_SESSION['logged'] == 'yes')
{
echo 'Bienvenido '.$_SESSION['user'].', Esta es tu página personal.';
}else{
echo "No estas logueado";
}
}
?>
Registro.
<?php
require_once('funciones.php');
conectar('localhost', 'root', 'supermercado');
//recibir datos
$user = strip_tags($_POST['user']);
$pass = strip_tags(sha1($_POST['pass']));
$ip =$_SERVER['REMOTE_ADDR'];
$query = @mysql_query('SELECT * FROM usuarios WHERE user = "'.mysql_real_escape_string($user).'";
if($existe = @mysql_fetch_object($query))
{
echo 'El Usuario '.$user.' Ya Existe.';
}
else
{
$registrar = @mysql_query('INSERT INTO usuarios(user, pass, ip) values"'.mysql_real_escape_string($user).'", "'.mysql_real_escape_string($pass).'","'.$ip.'")');
if ($registrar)
{
echo 'Usuario Registrado Con Exito';
}
else
{
echo "Lo Sentimos, Hubo Un Error";
}
}
?>
Y aquí la página de la que me estoy guiando
Link : http://www.youtube.com/watch?v=2i8IDybjQGA
-
Esto hay muchas formas de hacerlo. Yo trataría de simplificar, y simplificando no veo necesidad ni siquiera de cerrar sesión. Lo único que necesitas es un formulario adicional o un simple link en el que puedas clickar cuando quieras dejar de introducir artículos. Es decir, vas introduciendo artículos, uno, dos... todos los que quieras. Cuando terminas marcas la casilla de un nuevo formulario "Terminada la introducción de artículos" (o un link (Pulsar aquí cuando termine de introducir artículos". Una vez se marca la casilla y se pulsa aceptar, o una vez se pulsa el link, usas un condicional para detectar que ha terminado la introducción de artículos y en vez de añadir un artículo procedes a calcular el total y los datos que sean necesarios mostrar, y eso es todo.
En resumen, puedes usar login y puedes usar bases de datos y puedes usar muchas cosas más, todo lo que quieras, aunque para mí lo más simple es lo que te he indicado.
-
Buenas Noches César gracias por la respuesta, ahora tengo otras preguntas:
1- ¿Cómo puedo hacer para que en la misma sesión, me vaya sumando los precios de los productos?, existe una manera de adaptar el codigo para esto?, intenté con las variables de suma que encontré por internet pero ninguna se adapta al código de manera que me lea los datos que haya ingresado en el textbox 'textpreciop' y me lo sume con lo que sería el 'textpreciop2'<--- datos que va agregando cada vez que envio los datos, se supone que son arrays, e intenté crear una variable para que me diga el total a pagar por el cliente, intenté algo asi:
Código para sumar dos variables $_SESSION:
$_SESSION['Totalacobrar'][$_SESSION['contadorProductos']] = (isset($_POST['totalacobrar']) ) ? $_POST['TipoDePago'] : ''; // <--- AQUI es donde surgen mis problemas, si se como sumar dos variables, pero no se en donde poner que $totalacobrar= textpreciop+textpreciop2... etc sabiendo que cada uno aumenta despues del registrar nuevos productos <---
2- ¿Y cómo podría modificar este codigo para que lea los datos de una lista/menú que generalmente son 'options' de manera que me reciba la elección "Cheque" o "Efectivo" para que cuando muestre la información por 'echo' ella me diga,
Tipo de Pago: Cheque
Pagos Con Cheque: 1
Pagos Con Efectivo:0
Código de contador para tipo de pago:
<p>
<label>Tipo de Pago
<select name="TipoDePago">
<option>Efectivo</option>
<option>Cheque</option>
</select>
</label>
</p> ''; <-- Aquí me puse a jugar con condicionales, que si $_SESSION['TipoDePago'][$_SESSION['contadorProductos']] = (isset($_POST['TipoDePago']) ) ? $_POST['TipoDePago']="Cheque" me aumente 1, pero es un desastre!!!
3-Bajé el Adobe Dreamweaver CC, ¿es este mejor que el Macromedia Dreamweaver 8?
4-¿Cómo haría yo para configurar la carpeta del proyecto, de las paginas que he hecho y que están localizadas en wampserver?, quiero desinstalar El DW8 pero no sé si me borrará todo, lo que quiero hacer es importarlas al nuevo DWCC, para que me vaya guardando las webs en la misma carpeta del DW8.
Gracias de antemano, Buenas noches.
PS y un recordatorio: Cesar no creas que no he hecho nada o que ni siquiera lo he intentado, de verdad, la educación aquí es pésima en el sentido de que te dan un tema, te mandan a hacer 4 o 5 programas y cambian de lenguaje rapidamente, por lo que no se casi nada de html, y menos de php ya que ni 3 clases vimos por: huelgas, elecciones presidenciales, etc. Yo se que no hay excusa ya que también he visto tutoriales por internet, y ya he entendido, sólo que por el tiempo, necesito apurarme a hacer estos ejercicios, este tercero me ha tomado mas tiempo, ya que tiene cosas que nunca vi y tambien pasa que de lo que llevo aprendido todavía no he llegado a estos métodos de manejo de sesiones... Bueno espero que me entiendas ya que sabes lo que se siente ser nuevo en una carrera tan complicada como lo es la programación y lo frustrante que es saber lo que quieres hacer y no como plasmarlo.
[/font][/size][/color]
-
Sobre la suma del precio de los productos: los precios los tienes en un array. Ahora lo que tienes que hacer es crear una variable de sesión que se llame "$sumaDePrecios" o algo similar, y en dicha variable sumar todos los precios. Esto se puede hacer con un simple for:
(for i=1 hasta último índice) {
$sumaDePrecios = $sumaDePrecios + precio[ i ];
}
Esto no es código verdadero, sólo es una indicación de la lógica con que se haría.
Para los pagos con cheque o efectivo exactamente igual, los tienes en un array, lo que tienes que hacer es recorrer el array y hacer los cálculos.
Puedes guiarte por lo que dice aquí:
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=571:funcion-count-recorrer-arreglos-o-arrays-multidimensionales-en-php-con-for-foreach-ejemplos-cu00826b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193
Si tengo tiempo creo el código... pero ahora vienen días navideños :)
Sobre el Adobe Dreamweaver y Macromedia no sabría decirte cuál es el mejor, no estoy trabajando con estos programas.
Sobre el aprendizaje de la programación, efectivamente es complicado y requiere tiempo. Te recomiendo los cursos sobre HTML, CSS y PHP que ofrecemos aquí, pero requieren tiempo y muchas veces no se dispone de él. Saludos.
-
Muchas gracias, y Feliz Navidad!!! te dejo descansar estos tres dias jajajaja, el 27 volvemos, que disfrutes!!!.
-
Espero que hayas comido muchos turrones ;D Aquí te dejo el código con la idea que te había comentado. Al ejecutarlo con datos de prueba el resultado es así:
Cantidad de productos registrada: 3
Datos:
Nombre del Producto: 1 : coles
Precio Neto del Producto: 1 : 12000 Bolivares
Tipo de Pago del producto: 1 : Efectivo
Datos:
Nombre del Producto: 2 : pepino
Precio Neto del Producto: 2 : 14000 Bolivares
Tipo de Pago del producto: 2 : Cheque
Datos:
Nombre del Producto: 3 : tomate
Precio Neto del Producto: 3 : 16000 Bolivares
Tipo de Pago del producto: 3 : Cheque
No ha pulsado boton terminado
HA PULSADO BOTON TERMINADO. CALCULO DE DATOS.
RESULTADOS:
Cobros totales en el dia: 42000 bolivares
Numero total de pagos: 3
Pagos en efectivo: 1
Pagos en cheque: 2
Valor promedio de pago: 14000 bolivares
El código para obtener los resultados anteriores:
<?php
session_start(); //Iniciamos o Continuamos la sesion
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Supermercado</title>
</head>
<body>
<p>En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar, al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja, cual fue el promedio, cuantos clientes pagaron en efectivo y cuantos pagaron con cheques. </p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre de Producto
<input name="textnombrep" type="text" id="textnombrep" />
</label>
<p>
<label>Precio Neto del Producto:
<input name="textpreciop" type="text" id="textpreciop" />
</label>
</p>
<p>
<label>Tipo de Pago
<select name="TipoDePago">
<option>Efectivo</option>
<option>Cheque</option>
</select>
</label>
</p>
<p>
<label>Totalizar:
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
</form>
<form id="form2" name="form2" method="post" action="">
<input type="hidden" name="final" value="terminado">
<p> Cuando termine la introduccion de productos pulse en el boton "He terminado" </p>
<p>
<label>
<input type="submit" name="Submit2" value="He terminado" />
</label>
</p>
</form>
<?php
if (!$_SESSION['contadorProductos'] && $_POST['final'] != "terminado"){
$_SESSION['contadorProductos']=1;
}
$_SESSION['nombreproducto'][$_SESSION['contadorProductos']] = (isset($_POST['textnombrep']) ) ? $_POST['textnombrep'] : '';
$_SESSION['precioproducto'][$_SESSION['contadorProductos']] = (isset($_POST['textpreciop']) ) ? $_POST['textpreciop'] : '';
$_SESSION['TipoDePago'][$_SESSION['contadorProductos']] = (isset($_POST['TipoDePago']) ) ? $_POST['TipoDePago'] : '';
if ($_POST && $_POST['final'] != "terminado") {
echo 'Cantidad de productos registrada: '.$_SESSION['contadorProductos'];
for($i=1;$i<=$_SESSION['contadorProductos'];$i++) {
echo '<br/>';
echo 'Datos: <br/>';
echo 'Nombre del Producto: '.$i.' : '.$_SESSION['nombreproducto'][$i].'<br/>';
echo 'Precio Neto del Producto: '.$i.' : '.$_SESSION['precioproducto'][$i].' Bolivares <br/>';
echo 'Tipo de Pago del producto: '.$i.' : '.$_SESSION['TipoDePago'][$i].'<br/>';
}
$_SESSION['contadorProductos'] = $_SESSION['contadorProductos']+1;
}
if ($_POST['final'] == "terminado") {
echo 'HA PULSADO BOTON TERMINADO. CALCULO DE DATOS. <br/>';
$cobrosTotalDia = 0;
$pagosEfectivo = 0;
$pagosCheque = 0;
$pagoPromedio = 0;
for($i=1;$i<=$_SESSION['contadorProductos'];$i++) {
$cobrosTotalDia = $cobrosTotalDia + $_SESSION['precioproducto'][$i];
if ($_SESSION['TipoDePago'][$i] =='Efectivo') {$pagosEfectivo = $pagosEfectivo+1; }
if ($_SESSION['TipoDePago'][$i] =='Cheque') {$pagosCheque = $pagosCheque+1; }
$pagoPromedio = $cobrosTotalDia / ($pagosEfectivo+$pagosCheque);
}
echo '<br/> RESULTADOS: <br/><br/>';
echo 'Cobros totales en el dia: '.$cobrosTotalDia . ' bolivares<br/>';
echo 'Numero total de pagos: '. ($pagosEfectivo+$pagosCheque).'<br/>';
echo 'Pagos en efectivo: '.$pagosEfectivo.'<br/>';
echo 'Pagos en cheque: '.$pagosCheque.'<br/>';
echo 'Valor promedio de pago: '.$pagoPromedio.' bolivares<br/>';
} else { echo 'No ha pulsado boton terminado <br/>';
}
?>
<p> </p>
<p> </p>
</body>
</html>
-
Buenas tardes César!! espero que tu también la hayas pasado muy bien con los tuyos, yo por mi parte comí demasiado y disfruté mucho, y lo que falta, jajaja.
Bueno con respecto al código, funciona perfecto muchas gracias, estaba intentando hacerlo yo mismo,pero colocaba cada animalada en el código que te daría un infarto si lo hubieras visto ajajaja. Ahora procederé con los demás ejercicios y te paso los avances a ver. Mis mejores deseos colega, feliz dia.
Actualizando:
Buenas de nuevo estimado colega, aquí lo que he podido hacer del cuarto ejercicio, lo que hice fue copiar y pegar lo del anterior ejercicio y lo he ido acomodando de manera que se adapte a mis necesidades.
He aquí el cuarto programa:
<?php
session_start(); //Iniciamos o Continuamos la sesion
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Hospital</title>
</head>
<body>
<p>En un hospital existen 3 áreas y el presupuesto anual se reparte según la siguiente tabla</p>
<p>1- Ginecología 40% </p>
<p>2- Traumatología 20%</p>
<p>3- Pediatría 40% <br />
</p>
<p>R- Se quiere obtener la cantidad de dinero presupuestado tanto en bolívares como en dólares. </p>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<label>Presupuesto Anual del Hospital
<input name="textpresupuesto" type="text" id="textpresupuesto" />
</label>
Bolivares
<p>
<label></label>
Calcular Presupuesto por Área
<input type="submit" name="Submit" value="Enviar" />
</p>
<p>
<label></label>
</p>
</form>
<form id="form2" name="form2" method="post" action="">
<input type="hidden" name="final" value="terminado">
<p> Cuando termine la introduccion de productos pulse en el boton "He terminado" </p>
<p>
<label>
<input type="submit" name="Submit2" value="He terminado" />
</label>
</p>
</form>
<?php
if (!$_SESSION['Hospital'] && $_POST['final'] != "terminado"){
$_SESSION['Hospital']=1;
}
$_SESSION['presupuesto'][$_SESSION['Hospital']] = (isset($_POST['textpresupuesto']) ) ? $_POST['textpresupuesto'] : '';
if ($_POST && $_POST['final'] != "terminado") {
echo 'Cantidad de dinero por Área: '.$_SESSION['Hospital'];
for($i=1;$i<=$_SESSION['Hospital'];$i++) {
echo '<br/>';
echo 'Datos por Área: <br/>';
echo 'Presupuesto Anual: '.$i.' : '.$_SESSION['textpresupuesto'][$i].' Bolivares <br/>';
echo 'Ginecología Bolívares: '.$i.' : '.$_SESSION['textpresupuesto'][$i].' Bolívares <br/>';
echo 'Ginecología Dólares: '.$i.' : '.$_SESSION['textpresupuesto'][$i].' Dólares <br/>';
echo 'Traumatología Bolívares: '.$i.' : '.$_SESSION['textpresupuesto'][$i].' Bolívares <br/>';
echo 'Traumatología Dólares: '.$i.' : '.$_SESSION['textpresupuesto'][$i].' Dólares <br/>';
echo 'Pediatría Bolívares: '.$i.' : '.$_SESSION['textpresupuesto'][$i].' Bolívares <br/>';
echo 'Pediatría Dólares: '.$i.' : '.$_SESSION['textpresupuesto'][$i].' Dólares <br/>';
}
$_SESSION['Hospital'] = $_SESSION['Hospital']+1;
}
if ($_POST['final'] == "terminado") {
echo 'HA PULSADO BOTON TERMINADO. CALCULO DE DATOS. <br/>';
$ginecologiabolivares = 0;
$ginecologiadolares = 0;
$traumatologiabolivares = 0;
$traumatologiadolares = 0;
$pediatriabolivares = 0;
$pediatriadolares = 0;
for($i=1;$i<=$_SESSION['Hospital'];$i++) {
$ginecologiabolivares = 0.40 * $_SESSION['textpresupuesto'][$i];
$ginecologiadolares = 6.30 * $_SESSION['textpresupuesto'][$i];
$traumatologiabolivares = 0.20 * $_SESSION['textpresupuesto'][$i];
$traumatologiadolares = 6.30 * $_SESSION['textpresupuesto'][$i];
$pediatriabolivares = 0.40 * $_SESSION['textpresupuesto'][$i];
$pediatriadolares = 6.30 * $_SESSION['textpresupuesto'][$i];
}
echo '<br/> RESULTADOS POR ÁREA: <br/><br/>';
echo 'Área de Ginecología: '.$ginecologiabolivares . ' bolivares<br/>';
echo 'Área de Ginecología: '.$ginecologiadolares . ' dolares<br/>';
echo 'Área de Traumatología: '.$traumatologiabolivares . ' bolivares<br/>';
echo 'Área de Traumatología: '.$traumatologiadolares . ' dolares<br/>';
echo 'Área de Pediatría: '.$pediatriabolivares . ' bolivares<br/>';
echo 'Área de Pediatría: '.$pediatriadolares . ' dolares<br/>';
}
else { echo 'No ha pulsado boton terminado <br/>';
}
?>
<p> </p>
<p> </p>
</body>
</html>
Tiene errores, pero ni idea de como solucionarlos está todo muy enredado.
Básicamente lo hice de manera sencilla, para que se ingrese de una vez el presupuesto anual y de ahi muestre los datos con los resultados habiendoles aplicando sus porcentajes, ahora lo que quiero hacer es quitarle los contadores, ¿o me recomiendas que lo deje con el mismo formato del supermercado?.
De todas maneras no me lee los resultados al enviar, me dice 0 bolivares, 0 dolares, etc. ¿Por qué pasa ésto? ¿Del tiempo que hemos estado programando los dos, me puedes decir en qué estoy fallando? ¿Qué áreas necesito mejorar?, tus consejos siempre son bien recibidos.
Saludos amigo, buenas noches.
-
Aquí está otro avance en el código, borré cosas que estaban repetidas, y corregi algunos errores, pero persisten los errores despues de presionar el botón terminar para que calcule los datos, ¿ que me recomendarías tu para hacerlo? que inserte el presupuesto anual, le dé enviar y despues tenga que pulsar el botón he terminado para que me calcule todo los datos?, o que al enviar de una vez aparezcan?
<?php
session_start(); //Iniciamos o Continuamos la sesion
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Hospital</title>
</head>
<body>
<p>En un hospital existen 3 áreas y el presupuesto anual se reparte según la siguiente tabla</p>
<p>1- Ginecología 40% </p>
<p>2- Traumatología 20%</p>
<p>3- Pediatría 40% <br />
</p>
<p>R- Se quiere obtener la cantidad de dinero presupuestado tanto en bolívares como en dólares. </p>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<label>Presupuesto Anual del Hospital
<input name="textpresupuesto" type="text" id="textpresupuesto" />
</label>
Bolivares
<p>
<label></label>
Calcular Presupuesto por Área
<input type="submit" name="Submit" value="Enviar" />
</p>
<p>
<label></label>
</p>
</form>
<form id="form2" name="form2" method="post" action="">
<input type="hidden" name="final" value="terminado">
<p> Cuando termine la introduccion de datos pulse en el boton "He terminado" </p>
<p>
<label>
<input type="submit" name="Submit2" value="He terminado" />
</label>
</p>
</form>
<?php
if (!$_SESSION['Hospital'] && $_POST['final'] != "terminado"){
$_SESSION['Hospital']=1;
}
$_SESSION['PresupuestoAnual'][$_SESSION['Hospital']] = (isset($_POST['textpresupuesto']) ) ? $_POST['textpresupuesto'] : '';
if ($_POST && $_POST['final'] != "terminado") {
echo 'Presupuesto Anual del Hospital: '.$_SESSION['Hospital'];
for($i=1;$i<=$_SESSION['Hospital'];$i++) {
echo '<br/>';
echo 'Datos por Área: <br/>';
echo 'Presupuesto Anual: '.$i.' : '.$_SESSION['PresupuestoAnual'][$i].' Bolivares <br/>';
}
$_SESSION['Hospital'] = $_SESSION['Hospital']+1;
}
if ($_POST['final'] == "terminado") {
echo 'HA PULSADO BOTON TERMINADO. CALCULO DE DATOS. <br/>';
for($i=1;$i<=$_SESSION['Hospital'];$i++) {
$presupuestoanual = $_SESSION['PresupuestoAnual'][$_SESSION['Hospital']] = (isset($_POST['textpresupuesto']) ) ? $_POST['textpresupuesto'] : '';
$ginecologiabol = ($presupuestoanual * 0.40);
$ginecologiadol = ($presupuestoanual * 6.30);
$traumatologiabol = ($presupuestoanual * 0.20);
$traumatologiadol = ($presupuestoanual * 6.30);
$pediatriabol = ($presupuestoanual * 0.40);
$pediatriadol = ($presupuestoanual * 6.30);
}
echo '<br/> RESULTADOS POR ÁREA: <br/><br/>';
echo 'Presupuesto Anual:'.$_SESSION['PresupuestoAnual'].' Bolivares <br/>';
echo 'Área de Ginecología: '. $ginecologiabol. ' bolivares<br/>';
echo 'Área de Ginecología: '. $ginecologiadol. ' dolares<br/>';
echo 'Área de Traumatología: '. $traumatologiabol. ' bolivares<br/>';
echo 'Área de Traumatología: '. $traumatologiadol. ' dolares<br/>';
echo 'Área de Pediatría: '. $pediatriabol. ' bolivares<br/>';
echo 'Área de Pediatría: '. $pediatriadol. ' dolares<br/>';
}
else { echo 'No ha pulsado boton terminado <br/>';
}
?>
<p> </p>
<p> </p>
</body>
</html>
No se por qué no calcula nada, solamente lee el presupuesto anual, ¿en qué fallé?. Buen día César.
-
Voy a mirar el nuevo código y el nuevo problema. Veo que estás interesado en mejorar como programador y te preguntas quizás por qué no lo consigues. Lo primero que te diría es que no te desanimes, que llegar a ser un buen programador requiere muchos años y ni aún así, hay mucha gente que no lo consigue. También te diría que para ser buen programador tienes que conocer los fundamentos de las cosas: es decir, colocar los cimientos antes que el tejado. Por ejemplo, para programar en php hay que tener unas buenas bases de html y de fundamentos de programación primero. Si te dedicas a programar en php sin tener los fundamentos es como querer volar en un avión sin motor. Puedes intentarlo una y otra vez y siempre te estrellarás. Por eso en esta web tenemos cursos muy dirigidos a los fundamentos. Y por último también te diré que todo requiere de mucha práctica, cuando has resuelto un problema similar antes es más fácil resolver un nuevo problema ahora. Así que ánimo. Te aviso cuando lo haya mirado con calma...
-
Voy a mirar el nuevo código y el nuevo problema. Veo que estás interesado en mejorar como programador y te preguntas quizás por qué no lo consigues. Lo primero que te diría es que no te desanimes, que llegar a ser un buen programador requiere muchos años y ni aún así, hay mucha gente que no lo consigue. También te diría que para ser buen programador tienes que conocer los fundamentos de las cosas: es decir, colocar los cimientos antes que el tejado. Por ejemplo, para programar en php hay que tener unas buenas bases de html y de fundamentos de programación primero. Si te dedicas a programar en php sin tener los fundamentos es como querer volar en un avión sin motor. Puedes intentarlo una y otra vez y siempre te estrellarás. Por eso en esta web tenemos cursos muy dirigidos a los fundamentos. Y por último también te diré que todo requiere de mucha práctica, cuando has resuelto un problema similar antes es más fácil resolver un nuevo problema ahora. Así que ánimo. Te aviso cuando lo haya mirado con calma...
Ya veo César, de hecho si me encanta esta carrera y también me gusta aprender, pero muchas veces no tengo tiempo para estudiarlo a tiempo completo, quizás eso sea, que debería ir estudiando todo de nuevo con calma, y practicando ya que en la uni no lo enseñan todo.
Por eso te agradezco la ayuda que me has prestado hasta ahora, ha sido valiosa, también hay veces que no logro grabarme de memoria el código para ciertas cosas (cuando son muy extensos), ¿es esto un problema? ¿ó también te pasó a ti al principio?.
Gracias por tu respuesta, voy a seguir intentandolo hasta mejorar.
-
Hola, ya estamos en el último día del año... mira, sobre el cuarto ejercicio te diría que el enunciado no deja muy claro qué es lo que hay que hacer. Un aspecto básico de la programación es que si no se sabe lo que hay que hacer claramente no es posible obtener un buen resultado, de la misma forma que no podrás ir a un sitio si no sabes a dónde quieres ir. Por el código que has puesto me parece que escribes código pero sin entender bien lo que escribes, ¿para qué usas variables de sesión en este programa? ¿para qué usas un bucle? No lo veo claro, por eso te digo que me genera dudas lo que escribes, aunque yo no puedo ponerme en tu lugar para saber cuál era la idea que tenías, tendrías que explicármelo.
Te recomendaría que tomes este curso: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59
Es un curso sobre fundamentos y además cuentas con ayuda de las personas que coordinamos los foros, es un buen punto de partida y ni siquiera tendrías que seguirlo completo, sólo determinadas partes que te permitan tener claros los conceptos importantes.
Aquí te dejo código ejercicio 4:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Hospital</title>
</head>
<body>
<p>En un hospital existen 3 áreas y el presupuesto anual se reparte según la siguiente tabla</p>
<p>1- Ginecología 40% </p>
<p>2- Traumatología 20%</p>
<p>3- Pediatría 40% <br />
</p>
<p>R- Se quiere obtener la cantidad de dinero presupuestado tanto en bolívares como en dólares. </p>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<label>Presupuesto Anual del Hospital
<input name="textpresupuesto" type="text" id="textpresupuesto" />
</label>
Bolivares
<p>
<label>Tipo de cambio. Indique cuantos bolivares se pagan por 1 dolar.
<input name="textTipoCambio" type="text" id="textTipoCambio" />
</label>
<br/>
<br/>
Calcular Presupuesto por Área
<input type="submit" name="Submit" value="Enviar" />
</p>
<p>
<label></label>
</p>
</form>
<br/> <br/>
<?php
if ($_POST ) {
$pptoTotal = $_POST['textpresupuesto'];
$tipoDeCambio = $_POST['textTipoCambio'];
$pptoGinecologia = $pptoTotal*0.40;
$pptoTraumatologia = $pptoTotal*0.20;
$pptoPediatria = $pptoTotal*0.40;
echo 'Presupuesto Anual del Hospital: '.$pptoTotal. ' bolivares <br/><br/>';
echo 'Presupuesto area Ginecologia en bolivares: '.$pptoGinecologia.'<br/>';
echo 'Presupuesto area Ginecologia en dolares: '.$pptoGinecologia/$tipoDeCambio.'<br/><br/>';
echo 'Presupuesto area Traumatologia en bolivares: '.$pptoTraumatologia.'<br/>';
echo 'Presupuesto area Traumatologia en dolares: '.$pptoTraumatologia/$tipoDeCambio.'<br/><br/>';
echo 'Presupuesto area Pediatria en bolivares: '.$pptoPediatria.'<br/>';
echo 'Presupuesto area Pediatria en dolares: '.$pptoPediatria/$tipoDeCambio.'<br/><br/>';
}
?>
<p> </p>
<p> </p>
</body>
</html>
-
Ya en españa deben ser casi las 12 asi que Feliz Año César, mis mejores deseos para ti y los tuyos en este año 2014 aqui todavía es la 1 pm :), en cuanto al cuarto ejercicio, quería hacer algo como lo del supermercado para poder seguir ingresando datos y calculara el resultado al finalizar, pero ya vi que no era lo que pedía el ejercicio, Muchas Gracias por tu ayuda, y vuelvo el 2 de Enero y te paso el quinto ejercicio ya hecho.
-
Aquí son las 10:30 pm, allá es 2014 así que Feliz Año Nuevo!!! no aguanté las ganas de intentarlo por mi mismo, así que lo intenté y lo intenté y lo hice funcionar!!.
Aquí está el quinto programa:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Notas Alumno</title>
</head>
<body>
<p>Un alumno desea saber cual será su promedio general en las tres materias mas difíciles que cursa y cual será el promedio que obtendrá en cada una de ellas, estas materias se evalúan como se muestra a continuación: </p>
<p>1- La calificación de Matemáticas se obtiene de la siguiente manera
- Examen 90%
- Promedio de tareas 10%
** En esta materia se pidió un total de 3 tareas. </p>
<p>2- La calificación de física se obtiene de la siguiente manera
- Examen 80%
- Promedio de tareas 20%
** En esta materia se pidió un total de 2 tareas. </p>
<p>3- La calificación de química se obtiene de la siguiente manera
- Examen 85%
- Promedio de tareas 15%
** En esta materia se pidió un promedio de 3 tareas.</p>
<p>Objetivo:</p>
<p>Mostrar Promedio General, Promedio de Cada Materia.</p>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<label>Matemáticas:<br />
<br />
Nota del Examen
<input name="textmate" type="text" id="textmate" />
</label>
<--- Sobre 20 puntos.
(90%)
<p>
<label>Nota Tarea 1:
<input name="textmate1" type="text" id="textmate1" />
</label>
<-- Sobre 20 puntos.</p>
<p>
<label>Nota Tarea 2:
<input name="textmate2" type="text" id="textmate2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 3:
<input name="textmate3" type="text" id="textmate3" />
</label>
<-- Sobre 20 puntos. </p>
<p> </p>
<p>** Promedio de Tareas al 10% </p>
<p> </p>
<p>Física:</p>
<p>
<label>Nota del Examen:
<input name="textfisica" type="text" id="textfisica" />
</label>
<--- Sobre 20 Puntos (80%) </p>
<p>
<label>Nota Tarea 1:
<input name="textfisica1" type="text" id="textfisica1" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 2:
<input name="textfisica2" type="text" id="textfisica2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label></label>
</p>
<p>** Promedio de Tareas al 20% </p>
<p> </p>
<p>Química:</p>
<p>
<label>Nota del Examen:
<input name="textquimica" type="text" id="textquimica" />
</label>
<---Sobre 20 Puntos (85%) </p>
<p>
<label>Nota Tarea 1:
<input name="textquimica1" type="text" id="textquimica1" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 2:
<input name="textquimica2" type="text" id="textquimica2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 3:
<input name="textquimica3" type="text" id="textquimica3" />
</label>
<-- Sobre 20 puntos. </p>
<p> </p>
<p>** Promedio de Tareas al 15% </p>
<p> </p>
<p>
<label>Realizar Cálculos
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
<p> </p>
</form>
<?php
if ($_POST) {
// Empiezan Las Variables Por Sección
//Matemática
$ExamenMate = $_POST['textmate'];
$TareaMateUno = $_POST['textmate1'];
$TareaMateDos = $_POST['textmate2'];
$TareaMateTres = $_POST['textmate3'];
//Física
$ExamenFisica = $_POST['textfisica'];
$TareaFisicaUno = $_POST['textfisica1'];
$TareaFisicaDos = $_POST['textfisica2'];
//Química
$ExamenQuimica = $_POST['textquimica'];
$TareaQuimicaUno = $_POST['textquimica1'];
$TareaQuimicaDos = $_POST['textquimica2'];
$TareaQuimicaTres = $_POST['textquimica3'];
//Promedio Por Sección
$PromedioTareasMate = ($TareaMateUno+$TareaMateDos+$TareaMateTres)/3;
$PromedioMate = ($ExamenMate+PromedioTareasMate/100);
$PromedioTareasFisica = ($TareaFisicaUno+$TareaFisicaDos)/2;
$PromedioFisica = ($ExamenFisica+PromedioTareasFisica/100);
$PromedioTareasQuimica = ($TareaQuimicaUno+$TareaQuimicaDos+$TareaQuimicaTres)/3;
$PromedioQuimica = ($ExamenQuimica+PromedioTareasQuimica/100);
//Promedio General
$PromedioGeneral = ($PromedioMate+$PromedioFisica+PromedioQuimica)/2;
//Salidas de Datos Por Pantalla
//Matemática
echo 'Nota del Exámen de Matemática: '.$ExamenMate. ' Puntos (Sobre 20) (Representa 90% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaMateUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaMateDos. ' (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 3: '.$TareaMateTres. ' (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasMate. ' Puntos (Representa 10% de la nota de la sección)<br/><br/>';
echo 'Promedio de Notas de la Sección: '.$PromedioMate. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
//Física
echo 'Nota del Exámen de Física: '.$ExamenFisica. ' Puntos (Sobre 20) (Representa 80% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaFisicaUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaFisicaDos. ' Puntos (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasFisica. ' Puntos (Representa 20% de la nota de la sección)<br/><br/>';
echo 'Promedio de Notas de la Sección: '.$PromedioFisica. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
//Química
echo 'Nota del Exámen de Química: '.$ExamenQuimica. ' Puntos (Sobre 20) (Representa 85% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaQuimicaUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaQuimicaDos. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 3: '.$TareaQuimicaTres. ' (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasQuimica. ' Puntos (Representa 15% de la nota de la sección)<br/><br/>';
echo 'Promedio de Notas de la Sección: '.$PromedioQuimica. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
echo 'Promedio General de las Materias: '.$PromedioGeneral. ' Puntos (Representa el Promedio del Alumno en las Tres Materias)<br/><br/>';
}
?>
</body>
</html>
Aún así revisalo y me avisas que errores tiene, pero aquí me tuvo batallando pero por fin lo hice yo sólo!!!.
-
Buenos Días César, ya es año nuevo, espero que hayas disfrutado mucho, yo si me divertí y comí demasiado!!, aquí está el código del último ejercicio, el del paciente, ya que tal parece el ejercicio anterior a este no está completo y el enunciado no está muy claro, asi que lo obvié y realicé el último de una vez.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Calorías</title>
</head>
<body>
<p>Una persona enferma que pesa 70kg se encuentra en reposo y desea saber cuantas calorías consume su cuerpo durante todo el tiempo que realice una misma actividad, las actividades que tiene permitido realizar son únicamente dormir o estar sentado en reposo. Los datos que tiene son que estando dormido consume 1.08 calorías por minuto y estando sentado en reposo consume 1.66 calorías por minuto.</p>
<p>Calcular: Las calorías consumidas estando dormido, o estando sentado y en reposo dependiendo del tiempo que realice dichas actividades. </p>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre del Paciente:
<input name="textnombrepa" type="text" id="textnombrepa" />
</label>
<p>Edad:
<label>
<input name="textedadpa" type="text" id="textedadpa" />
</label>
(años)</p>
<p>Peso:
<label>
<input name="textpesopa" type="text" id="textpesopa" />
</label>
(kgs.)</p>
<p>
<label>Tipo de Actividad:
<select name="TipoDeActividad" id="TipoDeActividad">
<option>Dormido/a</option>
<option>Sentado/a</option>
</select>
</label>
</p>
<p>
<label>Tiempo de Activdad:
<input name="tiempoact" type="text" id="tiempoact" />
</label>
(Minutos) </p>
<p>
<label>Calcular Calorias:
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
</form>
<?php
if ($_POST) {
$nombrepaciente = $_POST['textnombrepa'];
$edadpaciente = $_POST['textedadpa'];
$pesopaciente = $_POST['textpesopa'];
$tipodeactividad = $_POST['TipoDeActividad'];
$tiempoactividad = $_POST['tiempoact'];
$CaloriasDormido = 0;
$CaloriasSentado = 0;
echo 'Datos del Paciente: <br/><br/>';
echo 'Nombre del Paciente: '.$nombrepaciente. '<br/><br/>';
echo 'Edad del Paciente: '.$edadpaciente. ' años<br/><br/>';
echo 'Peso del Paciente: '.$pesopaciente. ' kgs<br/><br/>';
echo 'Tipo de Actividad del Paciente: '.$_POST['TipoDeActividad']. '<br/><br/>';
echo 'Calorías quemadas según actividad realizada: <br/><br/>';
if ($_POST['TipoDeActividad'] =='Dormido/a') {$CaloriasDormido = 0.046*$pesopaciente*2.2*$tiempoactividad*1.08; }
echo 'Calorías quemadas estando: ' .$_POST['TipoDeActividad']. ' ' .$CaloriasDormido. ' (kCal perdidas) <br/><br/>';
}
{
if ($_POST['TipoDeActividad'] =='Sentado/a') {$CaloriasSentado = 0.046*$pesopaciente*2.2*$tiempoactividad*1.66; }
echo 'Calorías quemadas estando: ' .$_POST['TipoDeActividad']. ' ' .$CaloriasSentado. ' (kCal perdidas) <br/><br/>';
}
?>
</body>
</html>
Lo realicé yo solo, usando la lógica, lo probé y puede que tenga un error menor, pero nada que tu no me puedas decir que corregir, lo que si te diría es que busqué y busqué una fórmula para calcular calorías de google, no se si sea la correcta, lo que me interesa es que sirva el programa, que aunque ya lo hace creo que hay errores.
Me lo revisas, ¿por favor?. Aquí está la prueba que con constancia y paciencia si se puede solo.
-
Pues sí, veo que vas sacando las cosas adelante. Enhorabuena!
He empezado a revisar el quinto ejercicio. Hay una cosa que no me cuadra. Supongamos estos datos para matemáticas:
Matematicas
Examen 12
Tarea1 9
Tarea2 5
Tarea3 3
Los resultados que me salen a mí son:
Promedio 3 tareas: 5,666666667
Nota final: 11,36666667 (calculada como (90/100)*Nota del examen + (10/100)*Nota del promedio de las tres tareas)
Los resultados que da cuando ejecuto tu código son:
Nota del Examen de Matematica: 12 Puntos (Sobre 20) (Representa 90% de la nota de la seccion)
Nota de la Tarea 1: 9 Puntos (Sobre 20)
Nota de la Tarea 2: 5 (Sobre 20)
Nota de la Tarea 3: 3 (Sobre 20)
Promedio de Notas de las Tareas: 5.66666666667 Puntos (Representa 10% de la nota de la seccion)
Promedio de Notas de la Seccion: 12 Puntos (Representa 100% de la nota de la seccion)
Tienes que revisar esto, ¿Por qué no te sale el resultado igual que a mí?
-
Bien César, buenos días como siempre, ya localizé el error y lo solucioné ahora si me da como a ti, habian errores en las operaciones, incluso cambié los nombres de las variables, de 'promedio' a 'nota' <-- para indicar las notas finales de cada sección.
Si surge algún error que deba corregir, te agradezco que me avises y lo solucionaré a la brevedad.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Notas Alumno</title>
</head>
<body>
<p>Un alumno desea saber cual será su promedio general en las tres materias mas difíciles que cursa y cual será el promedio que obtendrá en cada una de ellas, estas materias se evalúan como se muestra a continuación: </p>
<p>1- La calificación de Matemáticas se obtiene de la siguiente manera
- Examen 90%
- Promedio de tareas 10%
** En esta materia se pidió un total de 3 tareas. </p>
<p>2- La calificación de física se obtiene de la siguiente manera
- Examen 80%
- Promedio de tareas 20%
** En esta materia se pidió un total de 2 tareas. </p>
<p>3- La calificación de química se obtiene de la siguiente manera
- Examen 85%
- Promedio de tareas 15%
** En esta materia se pidió un promedio de 3 tareas.</p>
<p>Objetivo:</p>
<p>Mostrar Promedio General, Promedio de Cada Materia.</p>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<label>Matemáticas:<br />
<br />
Nota del Examen
<input name="textmate" type="text" id="textmate" />
</label>
<--- Sobre 20 puntos.
(90%)
<p>
<label>Nota Tarea 1:
<input name="textmate1" type="text" id="textmate1" />
</label>
<-- Sobre 20 puntos.</p>
<p>
<label>Nota Tarea 2:
<input name="textmate2" type="text" id="textmate2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 3:
<input name="textmate3" type="text" id="textmate3" />
</label>
<-- Sobre 20 puntos. </p>
<p> </p>
<p>** Promedio de Tareas al 10% </p>
<p> </p>
<p>Física:</p>
<p>
<label>Nota del Examen:
<input name="textfisica" type="text" id="textfisica" />
</label>
<--- Sobre 20 Puntos (80%) </p>
<p>
<label>Nota Tarea 1:
<input name="textfisica1" type="text" id="textfisica1" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 2:
<input name="textfisica2" type="text" id="textfisica2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label></label>
</p>
<p>** Promedio de Tareas al 20% </p>
<p> </p>
<p>Química:</p>
<p>
<label>Nota del Examen:
<input name="textquimica" type="text" id="textquimica" />
</label>
<---Sobre 20 Puntos (85%) </p>
<p>
<label>Nota Tarea 1:
<input name="textquimica1" type="text" id="textquimica1" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 2:
<input name="textquimica2" type="text" id="textquimica2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 3:
<input name="textquimica3" type="text" id="textquimica3" />
</label>
<-- Sobre 20 puntos. </p>
<p> </p>
<p>** Promedio de Tareas al 15% </p>
<p> </p>
<p>
<label>Realizar Cálculos
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
<p> </p>
</form>
<?php
if ($_POST) {
// Empiezan Las Variables Por Sección
//Matemática
$ExamenMate = $_POST['textmate'];
$TareaMateUno = $_POST['textmate1'];
$TareaMateDos = $_POST['textmate2'];
$TareaMateTres = $_POST['textmate3'];
//Física
$ExamenFisica = $_POST['textfisica'];
$TareaFisicaUno = $_POST['textfisica1'];
$TareaFisicaDos = $_POST['textfisica2'];
//Química
$ExamenQuimica = $_POST['textquimica'];
$TareaQuimicaUno = $_POST['textquimica1'];
$TareaQuimicaDos = $_POST['textquimica2'];
$TareaQuimicaTres = $_POST['textquimica3'];
//Promedio Por Sección
$PromedioTareasMate = ($TareaMateUno+$TareaMateDos+$TareaMateTres)/3;
$NotaMate = (90/100)*$ExamenMate+(10/100)*$PromedioTareasMate;
$PromedioTareasFisica = ($TareaFisicaUno+$TareaFisicaDos)/2;
$NotaFisica = (80/100)*$ExamenFisica+(20/100)*$PromedioTareasFisica;
$PromedioTareasQuimica = ($TareaQuimicaUno+$TareaQuimicaDos+$TareaQuimicaTres)/3;
$NotaQuimica = (85/100)*$ExamenQuimica+(15/100)*$PromedioTareasQuimica;
//Promedio General
$PromedioGeneral = ($NotaMate+$NotaFisica+NotaQuimica)/2;
//Salidas de Datos Por Pantalla
//Matemática
echo 'Nota del Exámen de Matemática: '.$ExamenMate. ' Puntos (Sobre 20) (Representa 90% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaMateUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaMateDos. ' (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 3: '.$TareaMateTres. ' (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasMate. ' Puntos (Representa 10% de la nota de la sección)<br/><br/>';
echo 'Notas Finales de la Sección: '.$NotaMate. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
//Física
echo 'Nota del Exámen de Física: '.$ExamenFisica. ' Puntos (Sobre 20) (Representa 80% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaFisicaUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaFisicaDos. ' Puntos (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasFisica. ' Puntos (Representa 20% de la nota de la sección)<br/><br/>';
echo 'Notas Finales de la Sección: '.$NotaFisica. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
//Química
echo 'Nota del Exámen de Química: '.$ExamenQuimica. ' Puntos (Sobre 20) (Representa 85% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaQuimicaUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaQuimicaDos. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 3: '.$TareaQuimicaTres. ' (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasQuimica. ' Puntos (Representa 15% de la nota de la sección)<br/><br/>';
echo 'Notas Finales de la Sección: '.$NotaQuimica. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
echo 'Promedio General de las Materias: '.$PromedioGeneral. ' Puntos (Representa el Promedio del Alumno en las Tres Materias)<br/><br/>';
}
?>
</body>
</html>
-
¿Que tal César, has tenido tiempo para revisar los ultimos dos ejercicios que hice a ver si te funcionan?,avisame por favor.
Saludos y buen día.
-
He revisado el ejercicio 5 y lo veo correcto excepto en un detalle: hay una línea que pone
$PromedioGeneral = ($NotaMate+$NotaFisica+NotaQuimica)/2;
¿Te das cuenta de que le falta el $ a NotaQuimica, es decir, que debería poner:
$PromedioGeneral = ($NotaMate+$NotaFisica+$NotaQuimica)/2;
Corrige eso porque si no lo haces el programa no es correcto (digamos que el cálculo lo hace mal, pero en algunos casos donde por casualidad la nota de química no varía el resultado sale bien).
Para detectar estos fallos tienes que plantear datos de entrada, resultados esperados, y comprobar que el programa te devuelve los resultados esperados. No puedes contentarte simplemente con ver que el programa hace cálculos, tienes que verificar que sean correctos, y para eso tienes que hacer los cálculos a mano por otro lado para después verificarlos. Me falta revisar el último ejercicio, el del paciente... Saludos
-
Buenos Días César, ya acomodé el ejercicio que me corregiste, y aquí está corregido el último ejercicio. Quedaron así.
Cálculo de Notas:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Notas Alumno</title>
</head>
<body>
<p>Un alumno desea saber cual será su promedio general en las tres materias mas difíciles que cursa y cual será el promedio que obtendrá en cada una de ellas, estas materias se evalúan como se muestra a continuación: </p>
<p>1- La calificación de Matemáticas se obtiene de la siguiente manera
- Examen 90%
- Promedio de tareas 10%
** En esta materia se pidió un total de 3 tareas. </p>
<p>2- La calificación de física se obtiene de la siguiente manera
- Examen 80%
- Promedio de tareas 20%
** En esta materia se pidió un total de 2 tareas. </p>
<p>3- La calificación de química se obtiene de la siguiente manera
- Examen 85%
- Promedio de tareas 15%
** En esta materia se pidió un promedio de 3 tareas.</p>
<p>Objetivo:</p>
<p>Mostrar Promedio General, Promedio de Cada Materia.</p>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<label>Matemáticas:<br />
<br />
Nota del Examen
<input name="textmate" type="text" id="textmate" />
</label>
<--- Sobre 20 puntos.
(90%)
<p>
<label>Nota Tarea 1:
<input name="textmate1" type="text" id="textmate1" />
</label>
<-- Sobre 20 puntos.</p>
<p>
<label>Nota Tarea 2:
<input name="textmate2" type="text" id="textmate2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 3:
<input name="textmate3" type="text" id="textmate3" />
</label>
<-- Sobre 20 puntos. </p>
<p> </p>
<p>** Promedio de Tareas al 10% </p>
<p> </p>
<p>Física:</p>
<p>
<label>Nota del Examen:
<input name="textfisica" type="text" id="textfisica" />
</label>
<--- Sobre 20 Puntos (80%) </p>
<p>
<label>Nota Tarea 1:
<input name="textfisica1" type="text" id="textfisica1" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 2:
<input name="textfisica2" type="text" id="textfisica2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label></label>
</p>
<p>** Promedio de Tareas al 20% </p>
<p> </p>
<p>Química:</p>
<p>
<label>Nota del Examen:
<input name="textquimica" type="text" id="textquimica" />
</label>
<---Sobre 20 Puntos (85%) </p>
<p>
<label>Nota Tarea 1:
<input name="textquimica1" type="text" id="textquimica1" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 2:
<input name="textquimica2" type="text" id="textquimica2" />
</label>
<-- Sobre 20 puntos. </p>
<p>
<label>Nota Tarea 3:
<input name="textquimica3" type="text" id="textquimica3" />
</label>
<-- Sobre 20 puntos. </p>
<p> </p>
<p>** Promedio de Tareas al 15% </p>
<p> </p>
<p>
<label>Realizar Cálculos
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
<p> </p>
</form>
<?php
if ($_POST) {
// Empiezan Las Variables Por Sección
//Matemática
$ExamenMate = $_POST['textmate'];
$TareaMateUno = $_POST['textmate1'];
$TareaMateDos = $_POST['textmate2'];
$TareaMateTres = $_POST['textmate3'];
//Física
$ExamenFisica = $_POST['textfisica'];
$TareaFisicaUno = $_POST['textfisica1'];
$TareaFisicaDos = $_POST['textfisica2'];
//Química
$ExamenQuimica = $_POST['textquimica'];
$TareaQuimicaUno = $_POST['textquimica1'];
$TareaQuimicaDos = $_POST['textquimica2'];
$TareaQuimicaTres = $_POST['textquimica3'];
//Promedio Por Sección
$PromedioTareasMate = ($TareaMateUno+$TareaMateDos+$TareaMateTres)/3;
$NotaMate = (90/100)*$ExamenMate+(10/100)*$PromedioTareasMate;
$PromedioTareasFisica = ($TareaFisicaUno+$TareaFisicaDos)/2;
$NotaFisica = (80/100)*$ExamenFisica+(20/100)*$PromedioTareasFisica;
$PromedioTareasQuimica = ($TareaQuimicaUno+$TareaQuimicaDos+$TareaQuimicaTres)/3;
$NotaQuimica = (85/100)*$ExamenQuimica+(15/100)*$PromedioTareasQuimica;
//Promedio General
$PromedioGeneral = ($NotaMate+$NotaFisica+$NotaQuimica)/3;
//Salidas de Datos Por Pantalla
//Matemática
echo 'Nota del Exámen de Matemática: '.$ExamenMate. ' Puntos (Sobre 20) (Representa 90% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaMateUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaMateDos. ' (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 3: '.$TareaMateTres. ' (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasMate. ' Puntos (Representa 10% de la nota de la sección)<br/><br/>';
echo 'Notas Finales de la Sección: '.$NotaMate. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
//Física
echo 'Nota del Exámen de Física: '.$ExamenFisica. ' Puntos (Sobre 20) (Representa 80% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaFisicaUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaFisicaDos. ' Puntos (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasFisica. ' Puntos (Representa 20% de la nota de la sección)<br/><br/>';
echo 'Notas Finales de la Sección: '.$NotaFisica. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
//Química
echo 'Nota del Exámen de Química: '.$ExamenQuimica. ' Puntos (Sobre 20) (Representa 85% de la nota de la seccion)<br/><br/>';
echo 'Nota de la Tarea 1: '.$TareaQuimicaUno. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 2: '.$TareaQuimicaDos. ' Puntos (Sobre 20)<br/><br/>';
echo 'Nota de la Tarea 3: '.$TareaQuimicaTres. ' (Sobre 20)<br/><br/>';
echo 'Promedio de Notas de las Tareas: '.$PromedioTareasQuimica. ' Puntos (Representa 15% de la nota de la sección)<br/><br/>';
echo 'Notas Finales de la Sección: '.$NotaQuimica. ' Puntos (Representa 100% de la nota de la sección)<br/><br/>';
echo 'Promedio General de las Materias: '.$PromedioGeneral. ' Puntos (Representa el Promedio del Alumno en las Tres Materias)<br/><br/>';
}
?>
</body>
</html>
Paciente: (Creo que está mal planteada la formula de calculo de Calorías):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Calorías</title>
</head>
<body>
<p>Una persona enferma que pesa 70kg se encuentra en reposo y desea saber cuantas calorías consume su cuerpo durante todo el tiempo que realice una misma actividad, las actividades que tiene permitido realizar son únicamente dormir o estar sentado en reposo. Los datos que tiene son que estando dormido consume 1.08 calorías por minuto y estando sentado en reposo consume 1.66 calorías por minuto.</p>
<p>Calcular: Las calorías consumidas estando dormido, o estando sentado y en reposo dependiendo del tiempo que realice dichas actividades. </p>
<p> </p>
<form id="form1" name="form1" method="post" action="">
<label>Nombre del Paciente:
<input name="textnombrepa" type="text" id="textnombrepa" />
</label>
<p>Edad:
<label>
<input name="textedadpa" type="text" id="textedadpa" />
</label>
(años)</p>
<p>Peso:
<label>
<input name="textpesopa" type="text" id="textpesopa" />
</label>
(kgs.)</p>
<p>
<label>Tipo de Actividad:
<select name="TipoDeActividad" id="TipoDeActividad">
<option>Dormido/a</option>
<option>Sentado/a</option>
</select>
</label>
</p>
<p>
<label>Tiempo de Activdad:
<input name="tiempoact" type="text" id="tiempoact" />
</label>
(Minutos) </p>
<p>
<label>Calcular Calorias:
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
</form>
<?php
if ($_POST) {
$nombrepaciente = $_POST['textnombrepa'];
$edadpaciente = $_POST['textedadpa'];
$pesopaciente = $_POST['textpesopa'];
$tipodeactividad = $_POST['TipoDeActividad'];
$tiempoactividad = $_POST['tiempoact'];
$CaloriasDormido = 0;
$CaloriasSentado = 0;
echo 'Datos del Paciente: <br/><br/>';
echo 'Nombre del Paciente: '.$nombrepaciente. '<br/><br/>';
echo 'Edad del Paciente: '.$edadpaciente. ' años<br/><br/>';
echo 'Peso del Paciente: '.$pesopaciente. ' kgs<br/><br/>';
echo 'Tipo de Actividad del Paciente: '.$_POST['TipoDeActividad']. '<br/><br/>';
echo 'Calorías quemadas según actividad realizada: <br/><br/>';
if ($_POST['TipoDeActividad'] =='Dormido/a') {$CaloriasDormido = 0.046*$pesopaciente*2.2*$tiempoactividad*1.08; }
echo 'Calorías quemadas estando: ' .$_POST['TipoDeActividad']. ' ' .$CaloriasDormido. ' (kCal perdidas) <br/><br/>';
}else{
if ($_POST['TipoDeActividad'] =='Sentado/a') {$CaloriasSentado = 0.046*$pesopaciente*2.2*$tiempoactividad*1.66; }
echo 'Calorías quemadas estando: ' .$_POST['TipoDeActividad']. ' ' .$CaloriasSentado. ' (kCal perdidas) <br/><br/>';
}
?>
</body>
</html>
Gracias a ti he podido aprender a hacer estos dos ultimos programas solo, muchas gracias :).
-
He mirado el ejercicio del paciente y veo que has intentado "mejorarlo". Pero si yo fuera el profesor te diría que está muy bien hacer mejoras cuando son necesarias, pero que aquí simplemente tenías que hacer los cálculos con las indicaciones que te daban.
Por tanto si el tiempo de actividad es de 23 minutos me salen que las calorías quemadas son 24,84 y si está sentado son 38,18.
En este caso del enunciado del problema no se entiende que haya que pedir el nombre, ni la edad, ni el peso... sino simplemente si estaba sentado o dormido y cuánto tiempo estuvo. Tampoco veo motivo aquí para hacer cambios en los datos y forma de calcular, aquí el problema es simple (podríamos pensar que no es lógico crear un pequeño programa exclusivamente para una persona que pesa 70 kg porque podría variar de peso... pero eso es otra cuestión).
De todas formas si quieres dejarlo mejorado quizás te lo puntuen bien por el esfuerzo que implica, así que no te digo nada, como lo tienes planteado me parece más lógico (aunque desde mi punto de vista no responde exactamente a lo que se pedía). Ten en cuenta que como programador si un cliente te pide algo poco lógico debes tratar de explicarle que es poco lógico y tratar de convencerlo para mejorarlo, pero si el cliente se empeña en pedir eso pues le das eso. El cliente manda (y el profesor también :D)
-
Buenos dias César, y de nuevo gracias por tu respuesta.
Si, mi problema siempre (por así decirlo) es querer hacer las cosas perfectas, lo mejor posible, ya ves que hice un montón de cosas que no tenía que agregar, pero quería hacerlo más global el programa, no para una sola persona (aunque debería hacer lo que me piden jajaja) pero me gusta que un programa esté bien hecho y que tenga de todo aunque lleve un poquito más de trabajo.
De todas maneras esos son todos los programas, los voy a probar y te aviso si todo va bien.
Una última pregunta: ¿Crees que necesiten algo más los programas?, ¿cómo la presentación quizás (Me refiero a color, botones personalizados, etc.)?.
Buen día y gracias por tus consejos, he aprendido bastante y me han servido mucho.
-
La programación web tiene dos partes diferenciadas: la programación propiamente dicha y la presentación o aspecto. Yo creo que lo que te piden es la programación y por tanto no tendrías que preocuparte de lo demás. De todas formas si quieres mejorar la presentación te puedes estudiar esto: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=75&Itemid=203
-
Buenos días Cesar, tengo días sin escribir por aquí, ya empecé clases y hoy entregué los programas y no me gusto nada la presentación y no me sirvió el del paciente, entonces la profesora me dió tiempo de acomodarlos para el jueves y lo hice, entonces necesito que por favor pruebes todos los programas que te pasaré, a ver como te funcionan y si tienen buena presentación o no, haz tú como si fueras el profesor. Gracias de antemano disculpa el abuso :p.
-
He revisado el programa del maratón y obviamente la presentación está mucho mejor ahora que como estaba antes, aunque los cálculos sean los mismos.
Los cambios que te sugiero (hacerlos o no queda a tu criterio) son:
- En el primer recuadro poner como encabezado ENUNCIADO EJERCICIO 1 (en vez de Programa 1: (Ejercicio 1): )
- Para crear un poco de margen y que no queden los textos pegados a los bordes introduce esta regla CSS:
body,td,th {
font-family: Times New Roman, Times, serif;
padding:10px;
}
- En vez de tener recuadros separados "Formulario de ingreso Maratón" y después otro recuadro con los datos, deja eso en un mismo cuadro cuyo encabezado diga FORMULARIO DE INGRESO DE DATOS MARATÓN.
- Presenta los resultados en una tabla o cuadro (igual que pides datos de ingreso en una tabla, puedes presentar los resultados en una tabla) cuyo encabezado diga RESULTADOS. A su vez, puedes subdividir la tabla en dos filas, una que sea Datos recibidos y otra Resultados. La presentación de los resultados tal y como la tienes ahora mismo no se ve con buena presentación (al menos esa es mi opinión). También corregiría el texto que ahora dice Esta Seleccionado para el Maraton de La Yaguara por Está seleccionado para el Maratón de La Yaguara (es decir, poner bien las tildes, mayúsculas y minúsculas, etc.). Saludos.
-
Perfecto, muchas gracias lo haré. Cuando tenga más tiempo termino de hacer lo del tres en raya, me quedan dos semanas de clases y bueno eso es full ocupado, cualquier novedad te lo haré saber. Buen dia.