ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
Programación
PRÁCTICA U-3
Integrantes
Contreras Colin Eduardo
Corona García Lizbeth
INDICE
1. Programa, diagrama de flujo y pantalla de salida 1
2. Programa y pantalla de salida 2
3. Programa, diagrama de flujo y pantalla de salida 3
4. Programa y pantalla de salida 4
5. Programa, diagrama de flujo y pantalla de salida 5
6. Programa, diagrama de flujo y pantalla de salida 6
7. Programa y pantalla de salida 7
8. Programa y pantalla de salida 8
9. Programa y pantalla de salida 9
10. Programa, diagrama de flujo y pantalla de salida 10
1
1. Realizar un diagrama de flujo y un código fuente en el cual al recibir como dato
un número entero, determine si éste es par, impar o nulo.
El objetivo de este programa es principalmente pedir un numero de valor entero y el
programa mandara un resultado, ya sea, par, impar o nulo. Hacemos uso de una
herramienta que es el if/else para provocar una toma de decisión.
Código
#include <stdio.h>
int main(){
int a;
printf("ingresa un numero\n ");
scanf("%d",&a);
if(a%2==0){
printf(" %d es nulo",n);
printf(" %d es par ",a);
}else{
printf(" %d es impar ",a);
}
return 0;
}
2
2.-Realizar un programa en el cual se pueda realizar las siguientes
operaciones:
a) suma c=a+b
b) resta c=a-b
c) producto c=a*b
d) división c=a/b
e) opción no válida
El programa esta creado para ayudarnos con el tema de las operaciones
basicas haciendolo mas rapido.
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c;
3
int opc;
printf("\n\n\t OPERACIONES BASICAS");
printf("\n\n\t 1: SUMA");
printf("\n\n\t 2: RESTA");
printf("\n\n\t 3: PRODUCTO");
printf("\n\n\t 4: DIVISION");
printf("\n\n\t selacciona una opc: ");
scanf("%d",&opc);
switch (opc)
{
case 1:
printf("\n\n\t SUMA"
"\n\n\t Dame el valor de a y b: ");
scanf("%f%f",&a,&b);
c=a+b;
printf("\n\n\t c=%g",c);
break;
case 2:
printf("\n\n\t RESTA"
"\n\n\t Dame el valor de a y b: ");
scanf("%f%f",&a,&b);
c=a-b;
printf("\n\n\t c=%g",c);
break;
4
case 3:
printf("\n\n\t PRODUCTO"
"\n\n\t Dame el valor de a y b: ");
scanf("%f%f",&a,&b);
c=a*b;
printf("\n\n\t c=%g",c);
break;
case 4:
printf("\n\n\t DIVISION"
"\n\n\t Dame el valor de a y b: ");
scanf("%f%f",&a,&b);
c=a/b;
printf("\n\n\t c=%g",c);
break;
default:
printf("\n\n\t opc no valida");
}
}
5
3. Realizar diagrama de flujo y código fuente en el cual se calcule todas las
posibilidades de solución de la ecuación de segundo grado. Para obtener las
raíces reales o complejas del polinomio, se debe hacer uso de la siguiente
fórmula:
Este programa está basado en la escuacionax2 + bx + c = 0 se le denomina
forma estándar de una ecuación cuadrática. Tenemos una fórmula que se
vuelve muy útil para resolver ecuaciones cuadráticas que no podemos
factorizar de una manera sencilla y al usarla puede ser más rápido que
completar el cuadrado ax2 + bx + c = 0.
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main ()
{
float a, b, c, res1, res2, res3, res4, res5;
printf("Uso de formula general para resolver ecuacion cuadratica\n");
printf("\n Ingrese el termino de la seccion cuadratica\n");
scanf("%f",&a);
printf("Ingrese el termino de la seccion lineal\n");
scanf("%f",&b);
6
printf("Ingrese el termino de la seccion independiente\n");
scanf("%f",&c);
if(a!=0)
{
res3=pow(b,2);
res4=(4*a*c);
res5=(res3-res4);
if(res5<0)
{
printf("No existe raices negativas");
printf("\a");
}
if(res5>=0){
res1=((-b+(sqrt(res5)))/(2*a));
res2=((-b+(sqrt(res5)))/(2*a));
if(res1==res2){
printf("\n El resultado es igual para x1 y x2 y es: %.4f", res1);
}
if(res1!=res2){
printf("\nEl resultado de x1 es %.4f",res1);
printf("\nEl resultado de x2 es %.4f",res2);
}
}
}
7
if(a==0){
printf("No es posible realizar esta operacion");
printf("\a");
}
return 0;
}
8
4. Realizar un programa en el cual se evalúa: ‘A’
áreas:
1- triángulo
2- rectángulo
3- cuadrado
4-círculo
‘P ’ perímetro:
1- triángulo
2- rectángulo
9
3- cuadrado
4-círculo
Nota: A y P son char y se utiliza switch-case, los números que selecciona
áreas
y perímetros utilizan enteros y se utiliza if – else, este programa no lleva
diagrama de flujo.
Este programa es muy eficiente ya que tenemos a la mano la facilidad de
elegir alguna figura de las que se muestran y decidir si queremos el área o el
perímetro de alguna de ellas.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.1416
int main(int argc, char** argv)
{
char base_a, alt_a1, triangulo_a, base_a1, alt_a, rectangulo_a, lad_a,
cuadrado_a, rad_a, circ_a, lista, lad_p, lado_p1, lado_p2, triangulo_p,
ancho_p, largo_p, rectangulo_p, lado_p3, cuadrado_p, radio_p, circulo_p;
int A, P, fig;
printf ("\n Teclea A mayuscula ----> area o P mayuscula ---->
perimetro: "); scanf ("%c", &lista);
switch (lista)
{
case 'A':
printf ("\n Figura No.1 ----> Triangulo");
10
printf ("\n Figura No.2 ----> Rectangulo");
printf ("\n Figura No.3 ----> Cuadrado");
printf ("\n Figura No.4 ----> Circulo");
printf ("\n Escoge un numero: ");
scanf ("%d",&fig);
if (fig==1)
{
printf ("\n Valor de altura: "); scanf ("%d", &alt_a1);
printf ("\n Valor de Base: "); scanf ("%d", &base_a);
tria_a=((alt_a1 * base_a)/2);
printf ("\n Area total de la figura: %d", triangulo_a);
}
if (fig==2)
{
printf ("\n Valor de altura: "); scanf ("%d", &alt_a);
printf ("\n Valor de Base: "); scanf ("%d", &base_a1);
rectangulo_a=(alt_a*base_a1);
printf ("\n Area total de la figura: %d", rectangulo_a);
}
if (fig==3)
{
printf ("\n Valor del lado de la figura: "); scanf ("%d", &lad_a);
lad_a=(lad_a*2);
printf ("\n Area total de la figura: %d", lad_a);
}
11
else
{
printf ("\n Valor del radio: "); scanf ("%d", &rad_a);
circulo_a = (PI * (pow (rad_a, 2)));
printf ("\n Area total de la figura: %d", circulo_a);
}
break;
case 'P':
printf ("\n Figura No.1 ----> Triangulo");
printf ("\n Figura No.2 ----> Rectangulo");
printf ("\n Figura No.3 ----> Cuadrado");
printf ("\n Figura No.4 ----> Circulo");
printf ("\n Escoge un numero: ");scanf ("%d",&fig);
if (fig==1)
{
printf ("\n Valor del lado uno: "); scanf ("%d", &lad_p);
printf ("\n Valor del lado dos: "); scanf ("%d", &lado_p1);
printf ("\n Valor del lado tres: "); scanf ("%d", &lado_p2);
triangulo_p = (lad_p + lado_p1 + lado_p2);
printf ("\n Perimetro total de la figura: %d", triangulo_p);
}
if (fig==2)
{
printf ("\n Valor de la anchura: "); scanf ("%d", &ancho_p);
12
printf ("\n Ingrese el largo: "); scanf ("%d", &largo_p);
rectangulo_p = ((ancho_p*2)+(largo_p*2));
printf ("\n Perimetro total de la figura: %d", rectangulo_p);
}
if (fig==3)
{
printf ("\n Valor del lado de la figura: "); scanf ("%d", &lado_p3);
cuadrado_p = 4*lado_p3;
printf ("\n Perimetro total de la figura: %d", cuadrado_p);
}
else
{
printf ("\n Ingrese la valor del radio: "); scanf ("%d", &radio_p);
circulo_p=((2*PI)*radio_p);
printf ("\n Perimetro total de la figura: %d", circulo_p);
}
break;
default:
printf ("\n Opcion incorrecto");
break;
}
return 0;
}
13
5. Realizar diagrama de flujo y código fuente donde se introduzca un número
n entero y positivo, determine todos los números primos inferiores a n.
Me costo bastante trabajo hacerlo, pero sentí mucha satisfacción al
terminarlo…
#include <stdio.h>
main ()
{
int n, valor, p = 0, d = 0;
printf("\n\n Ingresa un numero x : ");
scanf(" %i", &n);
for (valor = 1; valor <= n; valor ++)
{
p =0 ;
14
for (d = 2; d < valor - 1 && primo == 0; d ++){
if (valor % d ==0){
p=1;
}
}
if ( p == 0){
printf ("\n %i", valor);
}
}
}
15
6. Realizar diagrama de flujo y código fuente donde se determine la factorial
de
un número. Calcular para el máximo valor posible.
Personalmente fue uno de los códigos que mas se me facilito, una porque ya
habíamos visto algo muy similar a lo que pide, y en segunda es solo entender
los códigos para poner a funcionar el programa
#include<stdio.h>
#include<math.h>
int main(){
16
int num=0,i=1;
long long int factorial=1;
// printf("Dame un numero: ");
// scanf("%d",&num);
do{
factorial=1;
num++;
for(int i=num; i>=1; i--)
factorial*=i;
printf(" Factorial de %d es: %ld\n",num,factorial);
}while(num<12);
return 0;
}
17
7. Realizar un código fuente donde se utilice la estructura repetitiva
(for),obtenga lo siguiente:
#include <stdio.h>
#include <stdlib.h>
float potencia(float,
float);
float
factorial(float);
18
float exponencial(float);
float sen(float);
float cos(float);
float senoh(float);
float coseh(float);
float potencia(float x, float k) {
float z = 1;
int i;
if (k == 0) {
return (1);
} else {
for (i = 0; i < k; i++) {
z *= x;
}
}
return (z);
}
float factorial(float k) {
float z = 1;
int i;
for (i = 1; i <= k; i++) {
z *= i;
}
19
return (z);
}
float exponencial(float x) {
float suma = 0, ax, error = 0.0001;
int k = 0;
do {
ax = (potencia(x, k) / factorial(k));
suma += ax;
k++;
if (ax < 0) {
ax = -ax;
}
} while (ax > error);
return (suma);
}
float sen(float x) {
float suma = 0, ax, error = 0.001;
int k;
do {
ax = (((potencia(-1, k) * potencia(x, 2 * k)) + 1) / factorial((2 * k) + 1));
suma += ax;
20
k++;
if (ax < 0) {
ax = -ax;
}
} while (ax > error);
return (suma);
}
float cos(float x) {
float suma = 0, ax, error = 0.0001;
int k;
do {
ax = ((potencia(-1, k) * potencia(x, 2 * k)) / factorial(2 * k));
suma += ax;
k++;
if (ax < 0) {
ax = -ax;
}
} while (ax > error);
return (suma);
}
float senoh(float x) {
float z = 0;
z = (exponencial(x) - (1 / exponencial(x))) / 2;
21
return (z);
}
float coseh(float x) {
float z = 0;
z = (exponencial(x) + (1 / exponencial(x))) / 2;
return (z);
}
int main(int argc, char** argv) {
float x, seno, coseno, tang, cot, sec, csc, senh, cosh;
int opcion;
printf("Programa que calcula funciones trigonometricas\n");
printf("Selecciona una opcion del menu\n");
printf("1. Seno\n");
printf("2. Coseno\n");
printf("3. Tangente\n");
scanf("%d", &opcion);
switch (opcion) {
case 1:
printf("\nSeno\n");
printf("Dame un numero ");
22
scanf("%f", &x);
seno = sen(x);
printf("El seno de %.2f es %.2f", x, seno);
break;
case 2:
printf("Coseno\n");
printf("Dame un numero ");
scanf("%f", &x);
coseno = cos(x);
printf("El coseno de %.2f es %.2f", x, coseno);
break;
case 3:
printf("Tangente\n");
printf("Dame un numero ");
scanf("f", &x);
tang = sen(x)/cos(x);
printf("La tangente de %.2f es %.2f", x, tang);
break;
default: printf("No tengo resultados");
}
return (EXIT_SUCCESS);
}
8. Realizar un programa que calcule el producto de 2 números reales, hasta
que se introduzca un número 0.
23
Este programa realiza correctamente lo que describe para eso utilizamos la
sentencia while y solo agregamos la condición requerida. consideramos que
comenzará en 0 ya que el 0 es considerados número para por que se encuentra
entre dos números impares.
#include<stdio.h>
int main()
{
float num1,num2;
printf("\n\n\t CALCULA EL PRODUCTO DE DOS NUMEROS REALES
HASTA INTRODUCIR 0");
printf("\n\n\t Ingresa un numero diferente de 0: ");
scanf("%g",&num1);
printf("\n\n\t Ingresa un segundo numero distinto de 0: ");
scanf("%g",&num2);
if (num1 == 0)
printf("\n\n\t vuelva a correr el programa ");
if (num2==0)
printf("\n\n\t vuelva a correr el programa ");
while(num1 != 0 && num2 !=0)
{
num1 = num2 * num1 ;
printf("\n\n\t El producto es : %g ", num1 );
printf("\n\n\t Ingresa un número : ");
24
scanf("%g",&num2);
if (num2==0)
printf("\n\n\t El ultimo producto fue : %g ", num1 );
9. Realizar un programa que imprima los números pares entre 0 y 50.
Este programa esta diseñado para colocar o mencionar los números pares,
tiene como limite el 50, pero bien se podría modificar para que obtuviéramos
un numero diferente.
#include<stdio.h>
25
int main()
{
int i;
float a;
printf("\n\n\t NUMEROS PARES DEL 0 AL 50");
for(i=0;i<=50;i++)
if(i%2==0)
printf("\n\n\t %d",i);
10.-Construye un diagrama de flujo y el correspondiente programa en C
que, al recibir como dato una x cualquiera, calcule sen x utilizando la
siguiente serie:
26
#include<stdio.h>
#include<stdlib.h>
float pot(float n, int p);
int fac(int n);
int main(int argc, char *argv[])
{
float x, seno=0;
int n, cnt=1, cnt2=1;
printf("\n\n\t Programa que calcula el seno del angulo usando la serie de
Taylor");
printf("\n\n\t Ingrese el ángulo (rad):");
scanf("%f", &x);
printf("\n\n\t Ingrese la cantidad de elementos a utilizar en la serie:");
scanf("%d", &n);
for(cnt=1; cnt<=n;++cnt)
{
seno= seno+(pot(-1,cnt+1))*(pot(x,cnt2))/(fac(cnt2));
cnt2 = cnt2+2;
}
printf("\n\n\t El valor de seno(%0.2f)=%f",x,seno);
return 0;
}
27
float pot(float b, int p)
{
int k;
float res=1;
for (k=1; k<=p; ++k)
{
res = res*b;
}
return(res);
}
int fac(int n)
{
int k, f=1;
for (k=1; k<=n; ++k)
{
f=f*k;
}
return(f);
}
28
29
30