Está en la página 1de 36

1

INSTITUTO POLITECNICO NACIONAL


ESCUELA DE INGENIERIA MECANICA Y ELECTRICA

UNIDAD ZACATENCO

PRACTICA 5
Estructuras de selección

Nombre: Martínez Moreno Josué Ramon

Grupo: 1EV2
Fecha: 07/04/17

Tema: FUNCIONES

FECHA DE INICIO: 27 DE MARZO DEL 2017

FECHA DE ENTREGA: 07 DE ABRIL DEL 2017


2

INDICE

Objetivo 3
Ej1 9
Ej2 12
Ej3 15
Ej4 20
Ej5 24
3

OBJETIVOS:

 Realizar ejercicios utilizando estructuras de selección y funciones de


usuario con valor de retorno y valores por referencia o apuntadores

MARCO TEÓRICO

Desarrollar estructuras de decisión o de selección complemente y realice los


diagramas de flujo respectivos

ESTRUCTURAS DE DECISIÓN O DE SELECCIÓN


IF
IF ELSE
SWITCH
ESTRUCTURA DE SELECCIÓN SIMPLE
if (expresión)
sentencia;//una sentencia
if (expresión condición)
{
secuencia de sentencias;
}

ESTRUCTURA DE SELECCIÓN DOBLE


if (expresión)
{secuencia de sentencia(s) 1;
}
else
{secuencia de sentencia(s) 2 ;
}

ESTRUCTURA DE SELECCIÓN DOBLE ANIDADA


if (expresión)
{secuencia de sentencia(s) 1;}
else if (expresión)
{secuencia de sentencia(s) 1;}
else
{secuencia de sentencia(s) 2 ;}
4

ESTRUCTURA DE SELECCIÓN MÚLTIPLE

switch (expresión)
{//inicio de switch
case expresión 1 : Sentencia 1;
Sentencia 2;
break;
case expresión 2 : Sentencia 1;
Sentencia 2;
break;
case expresión N : sentencia 1
sentencia 2
break;
default : sentencias1
sentencia 2
}//fin de switch.
5

Investigue y desarrolle la solución de la función cuadrática de la


forma Ax^2+Bx+C
los tipos de soluciones determinados para la cuadrática tomando en cuenta el
discriminante, aplicaciones de las soluciones de sistemas que son sobre
amortiguado, subamortiguado y sobreamortiguado.

Ecuación cuadrática
Una ecuación cuadrática es una ecuación en su forma ax2 + bx + c, donde a, b, y
c son números reales.
Ejemplo: 9x2 + 6x + 10

Hay tres formas de hallar las raíces ( el o los valores de la variable) de las
ecuaciones cuadráticas:

1. Factorización Simple
2. Completando el Cuadrado
3. Fórmula Cuadrática

Factorización Simple:

La factorización simple consiste en convertir la ecuación cuadrática en un


producto de binomios. Luego, se busca el valor de x de cada binomio.
6

Completando el Cuadrado:

En este método, la ecuación tiene que estar en su forma ax2+bx+c; y siempre la


constante de a tiene que ser igual a 1.

Fórmula Cuadrática:

Este método es muy simple: hay que sustituir los valores de a, b y c de la


ecuación cuadrática a la siguiente fórmula:

Ejemplo:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
float a,b,c,i,j,k;
char opcion;

printf("\tECUACIONES DE SEGUNDO GRADO\n");


printf("\t---------------------------\n");
printf("\ta X^2 + b X + c = 0 \n");

printf("\nIntroduzca el valor de a y luego pulse intro:\t");


scanf("%f",&a);

printf("\nIntroduzca el valor de b y luego pulse intro:\t");


scanf("%f",&b);

printf("\nIntroduzca el valor de c y luego pulse intro:\t");


scanf("%f",&c);

if(a && b && c) opcion='f';


else if (a && b && !c)opcion='e';
else if (a && !b && c)opcion='d';
else if (!a && b && c)opcion='c';
else if (a && !b && !c)opcion='b';
else if (!a && b && !c)opcion='b';
7

else opcion='a' ;

printf("\n\t%0.3f X^2 + %0.3f X + %0.3f = 0 \n\n",a,b,c);

switch (opcion)
{

case 'a':

printf("En breve comunicaremos a su profesor\nque no sabe lo que es una


ecuacion de segundo grado\n");

break;

case 'b':

printf("X = 0\n");

break;

case 'c':

printf("X = %0.3f\n",-c/b);

break;
case 'd':

printf("No tiene solucion\n");

break;
case 'e':

printf("X = 0\n");
printf("X = %0.3f\n",-b/a);

break;

break;
case 'f':
i=b*b;
j=4*a*c;
if((i-j)<0)printf("No tiene solucion\n");
else
{
k=sqrt(i-j);
printf("X = %0.3f\n",-b+k/2*a);
8

printf("X = %0.3f\n",-b-k/2*a);

break;

system("pause");
return 0;
}
9

DESARROLLO

EJERCICIO 1.- HACER PROGRAMA FUENTE EN LENGUAJE C E INCLUYA


EL CÓDIGO Y LA CORRIDA

En principal

Lea la opción dependiendo realizará

Llamar función portada tipo

Utilizando if sencillos pregunte qué opción quieres realizar:

1 triangulo,
2 circulo
3 cuadrado
4 rectangulo

Si op es 1
Llamar funcion triángulo con parámetros por referencia en el argumento, calcule
area y perimetro retorne valores por referencia e imprima en donde fue
invocada esta función el área
y el perimetro.

Si op es 2
Llamar funcion círculo con parámetros por referencia en el argumento,calcule area
y perimetro retorne valores por referencia , imprima en donde fue invocada esta
función el área y el perímetro.

Si op es 3
Llamar funcion cuadrado con parámetros por referencia en el argumento, , calcule
area y perimetro retorne valores por referencia e imprima en donde fue
invocada esta función el área y el perímetro.

Si op es 4
igual al anterior pero para el rectángulo

Si no eligió ninguna de las opciones anteriores indique no se elige opción.


10

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float ftriqui (float*,float*,float);
float fcir (float*,float*,float);
float fcu (float*,float*,float);
float frec (float*, float*, float, float);
int main ()
{
float rarea, rperimetro, base, haltura,aux,radio,lado;
int op;
printf("Este programa sirve para calcular area y perimetro, de algunas figuras geometricas \n\n");
printf("\n Elige una opcion");
printf("\n1.-Triangulo Equilatero");
printf("\n2.-Circulo");
printf("\n3.-Cuadrado");
printf("\n4.-Rectangulo\n");
scanf("%d",&op);
if (op==1)
{
printf("Dame lado:\n");
scanf("%f",&lado);
aux=ftriqui(&rarea,&rperimetro,lado);
printf("la area es=%.2f\n\n",rarea);
printf("el perimetro es=%.2f\n\n",rperimetro);
}
if (op==2)
{
printf("Dame radio:\n");
scanf("%f",&radio);
aux=fcir(&rarea,&rperimetro,radio);
printf("la area es=%.1f\n\n",rarea);
printf("el perimetro es=%.1f\n\n",rperimetro);
}
if (op==3)
{
printf("Dame lado:\n");
scanf("%f",&lado);
aux=fcu(&rarea,&rperimetro,lado);
printf("la area es=%.0f\n\n",rarea);
printf("el perimetro es=%.0f\n\n",rperimetro);
}
if (op==4)
{
printf("Dame base:\n");
scanf("%f",&base);
printf("Dame haltura\n");
scanf("%f",&haltura);
aux=frec(&rarea,&rperimetro,base,haltura);
printf("la area es=%.0f\n\n",rarea);
printf("el perimetro es=%.0f\n\n",rperimetro);
}
if (op!=1,2,3,4)
{
printf("No elegiste JA JA JA");
}
system("pause");
11

}
float ftriqui (float* area,float* perimetro,float lado)
{
*area=sqrt(3)/4*pow(lado,2);
*perimetro=3*lado;
return 4;
}
float fcir (float* area,float* perimetro,float radio)
{
*area=M_PI*pow(radio,2);
*perimetro=2*M_PI*radio;
return 2;
}
float fcu (float* area,float* perimetro,float lado)
{
*area=pow(lado,2);
*perimetro=4*lado;
return 3;
}
float frec (float* area, float* perimetro, float base, float haltura)
{
*area=base*haltura;
*perimetro=2*base+2*haltura;
return 1;
}
12

EJERCICIO 2
IDEM (idem significa igual al anterior) pero utilice if else

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float ftriqui (float*,float*,float);//Funcion del triangulo
float fcir (float*,float*,float);//Funcion del circulo
float fcu (float*,float*,float);//Funcion del cuadrado
float frec (float*, float*, float, float); //Funcion del rectangulo

int main(void)
{
float rarea, rperimetro, base, haltura,aux,radio,lado;
int op;
printf("Este programa sirve para calcular area y perimetro, de algunas figuras geometricas \n\n");
printf("\n Elige una opcion");
printf("\n1.-Triangulo Equilatero");
printf("\n2.-Circulo");
printf("\n3.-Cuadrado");
printf("\n4.-Rectangulo\n");
scanf("%d",&op);
if (op==1)
{
printf("Dame lado:\n");
scanf("%f",&lado);
aux=ftriqui(&rarea,&rperimetro,lado);
printf("la area es=%.2f\n\n",rarea);
printf("el perimetro es=%.2f\n\n",rperimetro);
}
if (op==2)
{
printf("Dame radio:\n");
scanf("%f",&radio);
aux=fcir(&rarea,&rperimetro,radio);
printf("la area es=%.1f\n\n",rarea);
printf("el perimetro es=%.1f\n\n",rperimetro);
}
if (op==3)
{
printf("Dame lado:\n");
scanf("%f",&lado);
aux=fcu(&rarea,&rperimetro,lado);
printf("la area es=%.0f\n\n",rarea);
printf("el perimetro es=%.0f\n\n",rperimetro);
}
if (op==4)
{
printf("Dame base:\n");
scanf("%f",&base);
printf("Dame haltura\n");
scanf("%f",&haltura);
aux=frec(&rarea,&rperimetro,base,haltura);
printf("la area es=%.0f\n\n",rarea);
printf("el perimetro es=%.0f\n\n",rperimetro);
}
else (op>4);
{
printf("No elegiste\n\n");
}
system("pause");
13

}
float ftriqui (float* area,float* perimetro,float lado)
{
*area=sqrt(3)/4*pow(lado,2);
*perimetro=3*lado;
return 4;
}
float fcir (float* area,float* perimetro,float radio)
{
*area=M_PI*pow(radio,2);
*perimetro=2*M_PI*radio;
return 2;
}
float fcu (float* area,float* perimetro,float lado)
{
*area=pow(lado,2);
*perimetro=4*lado;
return 3;
}
float frec (float* area, float* perimetro, float base, float haltura)
{
*area=base*haltura;
*perimetro=2*base+2*haltura;
return 1;
}
14
15

EJERCICIO 3

IDEM (idem significa igual al anterior) pero utilice switch

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

float ftriqui (float*,float*,float);

float fcir (float*,float*,float);

float fcu (float*,float*,float);

float frec (float*, float*, float, float);

int main ()

float rarea, rperimetro, base, haltura,aux,radio,lado;

char opcion;

printf("Este programa sirve para calcular area y perimetro, de algunas figuras geometricas \n\n");

printf("\n Elige una opcion");

printf("\nA.-Triangulo Equilatero");

printf("\nB.-Circulo");

printf("\nC.-Cuadrado");

printf("\nD.-Rectangulo\n");

printf("\nElige una opcion\n");

scanf("%c",&opcion);

switch(opcion)

case 'a':

printf("Dame lado:\n");

scanf("%f",&lado);

aux=ftriqui(&rarea,&rperimetro,lado);

printf("la area es=%.2f\n\n",rarea);

printf("el perimetro es=%.2f\n\n",rperimetro);


16

break;

case 'b':

printf("Dame radio:\n");

scanf("%f",&radio);

aux=fcir(&rarea,&rperimetro,radio);

printf("la area es=%.1f\n\n",rarea);

printf("el perimetro es=%.1f\n\n",rperimetro);

break;

case 'c':

printf("Dame lado:\n");

scanf("%f",&lado);

aux=fcu(&rarea,&rperimetro,lado);

printf("la area es=%.0f\n\n",rarea);

printf("el perimetro es=%.0f\n\n",rperimetro);

break;

case 'd':

printf("Dame base:\n");

scanf("%f",&base);

printf("Dame haltura\n");

scanf("%f",&haltura);

aux=frec(&rarea,&rperimetro,base,haltura);

printf("la area es=%.0f\n\n",rarea);

printf("el perimetro es=%.0f\n\n",rperimetro);

break;

default: printf("\nNO elegiste \n");

printf("No elegiste opcion");

system("pause");

}
17

float ftriqui (float* area,float* perimetro,float lado)

*area=sqrt(3)/4*pow(lado,2);

*perimetro=3*lado;

return 4;

float fcir (float* area,float* perimetro,float radio)

*area=M_PI*pow(radio,2);

*perimetro=2*M_PI*radio;

return 2;

float fcu (float* area,float* perimetro,float lado)

*area=pow(lado,2);

*perimetro=4*lado;

return 3;

float frec (float* area, float* perimetro, float base, float haltura)

*area=base*haltura;

*perimetro=2*base+2*haltura;

return 1;

}
18
19
20

EJERCICIO 4

Programa LEY DE OHM

Realice el diagrama de flujo, programa fuente en lenguaje incluya también la


corrida
Implemente para la estructura de selección switch.

1 leer voltaje y resistencia calculará en función por referencia potencia y


corriente
2 leer voltaje y corriente calculará en función por referencia potencia y
resistencia
3 leer corriente y resistencia calculará en función por referencia potencia y
voltaje

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

float f1 (float,float,float*,float*);

float f2 (float,float,float*,float*);

float f3 (float,float,float*,float*);

int main ()

float v,r,po,co,aux,re,vo,i;

char opcion;

printf("Este programa realiza algunas operaciones pero debes de elegir la opcion:\n\n");

printf("La opcion A realiza el calculo de potencia y intensidad\n\n");

printf("La opcion B realiza el calculo de potencia y resistencia\n\n");

printf("La opcion C realiza el calculo de potencia y voltaje\n\n");

printf("\nElige una opcion\n");

scanf("%c",&opcion);

switch(opcion)

case 'a':

printf("\ndame volt y resist\n");


21

scanf("%f %f",&v,&r);

aux=f1(v,r,&po,&co);

printf("\npotemcia es=%.1f\n",po);

printf("\nintensidad es=%.1f\n",co);

break;

case 'b':

printf("\ndame volt e intensidad\n");

scanf("%f %f",&v,&i);

aux=f2(v,i,&po,&re);

printf("\npotemcia es=%.1f\n",po);

printf("\nresistencia es=%.1f\n",re);

break;

case 'c':

printf("\ndame resist e intensidad\n");

scanf("%f %f",&r,&i);

aux=f3(r,i,&po,&vo);

printf("\npotemcia es=%.1f\n",po);

printf("\nvoltaje es=%.1f\n\n",vo);

break;

default: printf("\nNO elegiste jajajaja\n");

system("pause");

float f1 ( float v, float r,float *po, float *co)

*co=v/r;

*po=pow(v,2)*r;
22

float f2 (float v,float i,float *po,float *re)

*po=v*i;

*re=v*i;

float f3 (float r,float i,float *po,float *vo)

*po=pow(1,2)/r;

*vo=i*r;

}
23
24

EJERCICIO 5 PROBLEMAS PARES DEL CAPÍTULO 2 DEL CAIRO.

Problema 2

Construye un diagrama de flujo y el correspondiente programa C que, al recibir


como dato el salario de un profesor de una universidad, calcule el incremento del
salario de acuerdo con el siguiente criterio y escriba el nuevo salario del profesor.
#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main(void)

float s;

int salario;

printf("Este progrma calcula el salario del profesor dependiendo del incremento\n\n");

printf("Ingresar salario del profesor\n\n");

scanf("%d",&salario);

if(salario<18000)

s=salario*(0.12)+salario;

printf("Con un incremento del 12 porciento\n\n");

printf("=%.2f\n\n",s);

if(salario==18000<30000)

s=salario*(0.08)+salario;

printf("Con un incremento del 8 porciento\n\n");

printf("=%.2f\n\n",s);
25

if(salario==30000<50000)

s=salario*(0.07)+salario;

printf("Con un incremento del 7 porciento\n\n");

printf("=%.2f\n\n",s);

system("pause");

return 0;

}
26
27

Problema 4 construye un diagrama de flujo y el correspondiente programa en C


que, al recibir como datos de entrada tres valores enteros diferentes entre sí,
determine si los mismos están en orden creciente o decreciente.
#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main(void)

int a,b,c;

printf("Este programa dice el tipo de orden que es\n\n");

printf("Ingresar 3 datos\n\n");

scanf("%d %d %d",&a,&b,&c);

if(a>c)

printf("El orden es decreciente\n\n");

else (c>a);

printf("El orden es creciente\n\n");

system("pause");

return 0;

}
28
29
30

Problema 6 construye un diagrama de flujo y el correspondiente programa en C


que al, recibir como datos tres números reales. Identifique cual es el mayor,
considera que los números pueden ser iguales.
#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main(void)

int a,b,c;

printf("Dame valores para a,b y c\n\n");

scanf("%f %f %f",&a,&b,&c);

if (a>b)

if (a>c)

printf("a es el numero mayor\n\n");

if (b>a)

if (b>c)

printf("b es el numero mayor\n\n");

}
31

if(c>a)

if(c>b)

printf("c es el numero mayor\n\n");

system("pause");

return 0;

}
32
33

Problema 8 construye un diagrama de flujo y el correspondiente programa en C


que permita convertir de pulgadas a milímetros, de yardas a metros y de millas a
kilómetros.

Considera

 1 pulgada = a 25.40 milímetros


 1 yarda = a 0.9144 metros
 1 milla = a 1.6093 kilómetros
#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main(void)

float yd,pulg,milla,km,mili,mts;

int op;

printf("Este programa hace conversiones\n\n");

printf("Elije cual de las tres opciones deseas\n\n");

printf("opcion 1 pulgadas a metros\n\n");

printf("opcion 2 yardas a metros\n\n");

printf("opcion 3 millas a kilkometros\n\n");

scanf("%d",&op);

if(op==1)

printf("Ingresar pulgadas\n\n");

scanf("%f",&pulg);

mili=pulg*(25.40);

printf("milimitros=%.2f",mili);

if(op==2)
34

printf("Ingresar yardas\n\n");

scanf("%f",&yd);

mts=yd*(0.9144);

printf("metros=%.2f",mts);

if(op==3)

printf("Ingresar millas\n\n");

scanf("%f",&milla);

km=milla*(1.6093);

printf("kilometros=%.4f",&km);

if(op!=1,2,3)

printf("No elegiste opcion\n\n");

system("pause");

return 0;

}
35
36

CONCLUSIÓN

En esta práctica se emplearon las diferentes estructuras de selección para


comprender el funcionamiento de cada una de ellas, así después saber cuál es la
que se puede emplear para ciertas resoluciones de problemas, aunque esto ya
dependerá de cada programador, ya que si bien cada estructura puede darte el
mismo resultado, esto dependerá de que tan complejo se quiere estructurar el
programa, porque puede hacerse de manera simple y sencilla o de manera
compleja y poniendo ciertos detalles a el programa, ahora si bien cada aunque
estructura es diferente, se puede llegar a un mismo resultado aunque la estructura
del programa puede que sea más largo o más corto.

REFERENCIAS

Cecilia Urbina. (2010). Lenguajes de programación. Recuperado el 07/04/2017,


de Blogger Sitio web: http://ceciliaurbina.blogspot.mx/2010/11/c-ecuacion-de-
segundro-grado.html

Avesudra. ( 2013). Programa en C. Recuperado el 07/04/17, de El Hacker.net Sitio


web:
http://foro.elhacker.net/programacion_cc/programa_en_c_que_resuelva_ecuacion
_cuadratica-t396188.0.html

Drd222 . (2012). Problema de ecuación cuadratica. Recuperado el 07/04/17, de


Forosweb Sitio web: http://www.forosdelweb.com/f96/problema-ecuacion-
cuadratica-c-984034/

CAIRÓ, OSVALDO. (2006). Piensa en C . Mexico: Pearson Educacion.


ISBN 970-26-0810-4

También podría gustarte