0% encontró este documento útil (0 votos)
56 vistas28 páginas

Reporte Practica2

Este documento presenta el reporte de 6 ejercicios de programación que involucran el uso de sentencias de control como if, else, for y switch. Cada ejercicio describe brevemente la lógica y código utilizado para resolverlo, así como un diagrama de flujo correspondiente. El estudiante encontró algunos ejercicios más sencillos que otros, pero en general pudo completar todos satisfactoriamente aprendiendo a usar diferentes sentencias de control para lograr diferentes resultados.

Cargado por

Edward Richtofen
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas28 páginas

Reporte Practica2

Este documento presenta el reporte de 6 ejercicios de programación que involucran el uso de sentencias de control como if, else, for y switch. Cada ejercicio describe brevemente la lógica y código utilizado para resolverlo, así como un diagrama de flujo correspondiente. El estudiante encontró algunos ejercicios más sencillos que otros, pero en general pudo completar todos satisfactoriamente aprendiendo a usar diferentes sentencias de control para lograr diferentes resultados.

Cargado por

Edward Richtofen
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

INSTITUTO POLITECNICO NACIONAL

“UNIDAD PROFESIONAL INTERDISCIPLINARIA EN


INGENIERÍA Y TECNOLOGÍAS AVANZADAS”

Unidad de Aprendizaje:
Introducción a la programación

Práctica No. 2
“Manejo de sentencias de control”

REPORTE
Práctica 2

ALUMNO:
Torres Cervantes Ángel Aarón

Docente:
MAZA CASAS LAMBERTO

Grupo: 1MV1

Fecha: 24/09/2018
REPORTE DE LA PRACTICA 2.
MANEJO DE SENTENCIAS DE CONTROL
EJERCICIO 1.
#include <stdio.h>
#include <stdlib.h> Este ejercicio me resulto sencillo
int main(int argc, char *argv[] ya que pude resolverlo de forma
{ rápida y no me costó trabajo el
int x, fx; comprender lo que se quería
printf("Escriba el valor de x: "); realizar, además de que es muy
scanf("%d",&x);
if(x<=0){
fácil usando la sentencia de
fx= (x*x)-x; control correcta que en este
} caso fue un “if”.
else{
fx=-(x*x)+(3*x); Lo que me gustaría que se
} cambiara seria que se pudiera
printf("El valor de fx es: %d\n",fx); especificar qué solución está
system("PAUSE"); realizando, ya que podría
return 0; resultar confuso a cualquier
}
operador si no conoce
previamente el programa.

x>0
X<0

DIAGRAMA DE FLUJO EJERCICIO 1

EJERCICIO 2.

En este ejercicio tampoco me


resulto difícil, solo que al
principio no conocía la forma
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int calif[5], cant=0, suma=0;
float promedio;
for (cant=1;cant<6;cant++){
printf("Escriba la calificacion: %d\n",cant);
scanf("%d",&calif[cant]);
suma+=calif[cant];
}
promedio=suma/5;
printf("El promedio es: %.2f\n",promedio);
if(promedio>=6){
printf("\nEl alumno esta aprobado\n");
}
else{
printf("\nEl alumno esta reprobado\n");
}
system("PAUSE");
return 0;

DIAGRAMA DE FLUJO EJERCICIO 2


EJERCICIO 3.

En este ejercicio me resulto más


sencillo que los anteriores ya
que se pudo solucionar con una
secuencia de varios “if”. Que se
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int kwh;
float costo, cuotafija=52.84;
printf("Ingrese el consumo de khw:\n");
scanf("%d",&kwh);
if (kwh<=50){
costo=(kwh*2.288);
}
else {
if(kwh<=100){
costo=(50*2.288)+((kwh-50)*2.762);
}
else{
costo= (50*2.288)+(50*2.762)+((kwh-100)*(3.042));}
}
costo+=cuotafija;
printf("El total es: %.2f\n",costo);
system("PAUSE");
return 0;}

DIAGRAMA DE FLUJO EJERCICIO 3


EJERCICO 4.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int num_productos, a=0 , total=0, seleccion;
char borde[]="-----------------------------------------------";
char cad[]=" ";
printf("\nMENU:");
printf("\n%.47s\n",borde);
printf("\n 1. Hamburguesa chica con papas y refresco%.1s $20\n",cad);
printf("\n 2. Hot-dog y refresco%.21s $18\n",cad);
printf("\n 3. Ensalada Rusa%.26s $15\n",cad);
printf("\nIngrese la cantidad de productos: ");
scanf("%d",&num_productos);
for (num_productos;num_productos>0;num_productos--){
a++;
printf("\nDigite el producto #%d que va a elegir: \n",a);
scanf("%d",&seleccion);
switch (seleccion){
case 1:
total+=20;
break;
case 2:
total+=18;
break;
case 3:
total+=15;
break;
}
}
printf("\nEn total son %d productos. \nEl
total a pagar es de $ %d\n",a,total);
system("PAUSE");
return 0;
}
Este en particular fue de los que
más se me complico ya que el
ejercicio requiere de que sea
una repetición sucesiva de una
cierta pregunta pero que al leer
las instrucciones en mi
interpretación resultaba confuso
DIAGRAMA DE FLUJO EJERCICIO 4
EJERCICIO 5.
#include <stdio.h>
#include <stdlib.h>
Este ejercicio no se me complico
a la hora de interpretar las
soluciones para realizarlo, que
además me di cuenta que podía
solucionarse de diversas formas
int main(int argc, char *argv[]) {
float total, num1, num2;
char operador;
int opcion;
printf("\nEscriba el tipo de operacion que se realizara (operador): \n");
scanf("%c",&operador);
printf("\nEscriba los dos numeros para la operacion: \n");
scanf("%f %f",&num1,&num2);
switch (operador){
case '+':
total= num1+num2;
printf("\nEl resultado de la operacion es: %f\n",total);
break;
case '-' :
total=num1-num2;
printf("\nEl resultado de la operacion es: %f\n",total);
break;
case '*':
total=num1*num2;
printf("\nEl resultado de la operacion es: %f\n",total);
break;
case '/':
total=num1/num2 ;
printf("\nEl resultado de la operacion es: %f\n",total);
break;
default: printf("\nError Matematico\n");
break;
}
printf("\nDesea salir del programa: \nSI) S\nNO) s\n");
scanf(" %c",&opcion);
while (opcion=='s'){
printf("\nEscriba el tipo de operacion que se realizara (operador): \n");
scanf(" %c",&operador);
printf("\nEscriba los dos numeros para la operacion: \n");
scanf("%f %f",&num1,&num2);
switch (operador){
case '+':
total= num1+num2;
printf("\nEl resultado de la operacion es: %f\n",total);
break;
case '-' :
total=num1-num2;
printf("\nEl resultado de la operacion es: %f\n",total);
break;
case '*':
total=num1*num2;
printf("\nEl resultado de la operacion es: %f\n",total);
break;
case '/':
total=num1/num2 ;
printf("\nEl resultado de la operacion es: %f\n",total);
break;
default: printf("\nError Matematico\n");
break;
}
printf("\nDesea salir del programa: \nSI) S\nNO) s\n");
scanf(" %c",&opcion);
}
system ("PAUSE");
return 0;}

DIAGRAMA DE FLUJO EJERCICIO 5


EJERCICIO 6. (GRADOS)
#include <stdio.h>
#include <stdlib.h> Este ejercicio a mi parecer fue el
#include <math.h>
más sencillo ya que solo
#define PI 3.1416
necesite de aplicar un ciclo for
para realizar todo la impresión
de lo que pedía, algo que si me
costó trabajo fue definir cuál era
el modo para resolver la función
int main(int argc, char *argv[]) {
float fx,x=0;
printf ("Las respuestas de fx son para x=0 hasta x=10\n");
for (x=0;x<=10;((x+=0.5))){
fx= sin(2*(x*(PI/180)))-(x);
printf("Para x=%.1f",x);
printf("\n fx= %f\n",fx);
}
system ("PAUSE");
return 0;}

DIAGRAMA DE FLUJO EJERCICIO 6 (GRADOS)


EJERCICIO 6. (RADIANES)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.1416
int main(int argc, char *argv[]) {
float A;
float fx, x=0;
printf ("Las respuestas de fx son para x=0 hasta x=10\n");
for (x=0;x<=10;((x+=0.5))){
fx= sin(2*(x))-(x);
printf("Para x=%.1f",x);
printf("\n fx= %f\n",fx);
}
system ("PAUSE");
return 0;}

DIAGRAMA DE FLUJO EJERCICIO 6 (RADIANES)


PROBLEMA DE APLICACIÓN
En este problema lo que tuve que realizar primero fue la investigación de la función sleep()
FUNCION SLEEP():
Retardo en segundos: para poder hacer un retardo en segundos, debemos usar la librería dos.h y
usar el comando sleep; nótese que la s es minúscula en este caso, dentro del paréntesis se coloca
la cantidad de segundos que se quiera generar el retardo, el valor estará dado en segundos.
Además de investigar como se realiza para que el programa termine después de cierto tiempo lo
cual fue la parte que más me costó trabajo de realizar. Después de haber leído más sobre la función
sleep me di cuenta que era posible usarla para generar un contador declarando algunas variables,
usando una sentencia y que realizara un ciclo con lo cual logré que el programa realizara solo su
función hasta después de un minuto para lo que era el caso de simulación ya que así era como lo
pedía la planeación del problema para darle solución
Otra cosa que se me dificulto fue hacer las dos situaciones para el invernadero ya que en el
planteamiento al leerlo resulta confuso lo que se quiere, pero al modo como yo lo interprete y lo hice
utilizando las sentencias de control necesarias para aplicar las cosas.
Lo demás ya fue fácil vez que tuve la idea de lo que quise realizar y para lo cual yo entendí era la
solución que se requería por el programa
CODIGO PARA EL PROBLEMA DE APLICACIÓN
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <time.h>
int main(int argc, char *argv[]) {
int temporizador=0,cultivo;
float HR;
char borde[]="---------------------------------------------------------------";
char cad[]=" ";
printf("Control de humedad de un invernadero");
printf("\n%.54s",borde);
printf("\n|PRODUCTO %.10s CONDICIONES OPTIMAS DE HUMEDAD|\n",cad);
printf("|1)Cultivo de TOMATE:%.25s 50-60|\n",cad);
printf("|2)Cultivo de MELON: %.26s 60-70|\n",cad);
printf("|3)Cultivo de PEPINO: %.25s 70-90|\n",cad);
printf("|4)Cultivo de CALABACITA:%.21s 55-80|\n",cad);
printf("|5)Cultivo de TOMATE-CALABACITA:%.14s 50-60|\n",cad);
printf("|6)Cultivo de MELON-CALABACITA:%.15s 60-70|\n",cad);
printf("|7)Cultivo de PEPINO-CALABACITA:%.14s 70-80|\n",cad);
printf("%.54s\n",borde);
printf("\nEscriba el el numero de lo que se va a cosechar: ");
scanf("%d",&cultivo);
printf("\nIngrese el valor de la humedad: \n") ;
scanf("%f",&HR);
while(temporizador<=50){
switch (cultivo){
case 1:
if (HR>=50&&HR<60)
{
printf ("Temperatura adecuada\n");
goto evaluar;
}else{
do{
if(HR<50){
HR=HR+HR*.04;
printf("\nRiego 3 segundos\n");
sleep (3);
printf("HR= %.2f",HR);
}
else
{
if(HR>60){
HR=HR-HR*.03;
printf("\nSe abren las ventanas durante 5 segundos\n");
sleep (5);
printf("HR= %.2f",HR);
}
else {
}
}

}while (HR<50^HR>60);}
break;
case 2:
if (HR>=60 && HR<=70)
{
printf ("Temperatura adecuada\n");
goto evaluar;
}else{
do{
if(HR<60){
HR=HR+HR*.04;
printf("\nRiego 3 segundos\n");
sleep (3);
printf("HR= %.2f",HR);
}
else
{
if(HR>70){
HR=HR-HR*.03;
printf("\nSe abren las ventanas durante 5 segundos\n");
sleep (5);
printf("HR= %.2f",HR);}
else {
}
}
}while (HR<60^HR>70);
}
break;
case 3:
if (HR>=70 && HR<=90)
{
printf ("Temperatura adecuada\n");
goto evaluar;
}else{
do{
if(HR<70){
HR=HR+HR*.04;
printf("\nRiego 3 segundos\n");
sleep (3);
printf("HR= %.2f",HR);
}
else
{
if(HR>90){
HR=HR-HR*.03;
printf("\nSe abren las ventanas durante 5 segundos\n");
sleep (5);
printf("HR= %.2f",HR);
} else {
}
}
}while (HR<70^HR>90);
}
break;
case 4:
if (HR>=50 && HR<=80)
{
printf ("Temperatura adecuada\n");
goto evaluar;
}else{
do{
if(HR<50){
HR=HR+HR*.04;
printf("\nRiego 3 segundos\n");
sleep (3);
printf("HR= %.2f",HR);
}
else
{
if(HR>80){
HR=HR-HR*.03;
printf("\nSe abren las ventanas durante 5 segundos\n");
sleep (5);
printf("HR= %.2f",HR);
}else {
}
}
}while (HR<50^HR>80);
}
break;
case 5:
if (HR>=50 && HR<=60)
{
printf ("Temperatura adecuada\n");
goto evaluar;
}else{
do{
if(HR<50){
HR=HR+HR*.04;
printf("\nRiego 3 segundos\n");
sleep (3);
printf("HR= %.2f",HR);
}
else
{
if(HR>60){
HR=HR-HR*.03;
printf("\nSe abren las ventanas durante 5 segundos\n");
sleep (5);
printf("HR= %.2f",HR);
}else {
}
}
}while (HR<50^HR>60);
}
break;
case 6:
if (HR>=60 && HR<=70)
{
printf ("Temperatura adecuada\n");
goto evaluar;
}else{
do{
if(HR<60){
HR=HR+HR*.04;
printf("\nRiego 3 segundos\n");
sleep (3);
printf("HR= %.2f",HR);
}
else
{
if(HR>70){
HR=HR-HR*.03;
printf("\nSe abren las ventanas durante 5 segundos\n");
sleep (5);
printf("HR= %.2f",HR);
}else {
}
}
}while (HR<60^HR>70);
}
break;
case 7:
if (HR>=70 && HR<=80)
{
printf ("Temperatura adecuada\n");
goto evaluar;
}else{
do{
if(HR<70){
HR=HR+HR*.04;
printf("\nRiego 3 segundos\n");
sleep (3);
printf("HR= %.2f",HR);
}
else
{
if(HR>80){
HR=HR-HR*.03;
printf("\nSe abren las ventanas durante 5 segundos\n");
sleep (5);
printf("HR= %.2f",HR);
} else {
}
}
}while (HR<70^HR>80);
}
break;
default:
printf ("Elija un cultivo de las combinaciones que sea posible");
break;
}
evaluar:
sleep (10);
temporizador+=10;
printf("\ntiempo: %ds\n",temporizador);}
system ("PAUSE");
return 0;}
SIMULACION DEL PROBLEMA DE APLICACIÓN
DIAGRAMA DE FLUJO PROBLEMA DE APLICACIÓN
(Para una mejor apreciación consulte el archivo en la carpeta PROBLEMA_APLICACION)
PROBLEMA OPCIONAL
De todos los ejercicios que realicé este fue el más fácil ya que solo requerí de usar una sola
sentencia y unas condiciones con if y else para resolver lo que solicitaba el planteamiento del
problema.
También me gustaría que se le agregara y/o cambiar que se mencionara en el programa cual es el
valor mínimo de los 3 para darle más uso a las sentencias y que no sea tan simple el ejercicio.

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int x, y, z, min, max;
printf("Escriba 3 enteros: ");
scanf("%d %d %d",&x,&y,&z);
max=x ;
if(y>max)
max=y;
if(z>max)
max=z;
printf("El numero mayor es: %d\n",max);
system ("PAUSE");
return 0;}
DIAGRAMA DE FLUJO PROBLEMA OPCIONAL

También podría gustarte