You are on page 1of 53

INSTITUTO POLITCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERA MECANIA Y ELECTRICA


DEPARTAMENTO DE INGENIERA ELCTRICA
ACADEMIA DE COMPUTACIN

MTODOS NUMRICOS
TAREA 1: SOLUCION DE EJERCICIOS CAPITULO 1 Y 2

Nombre: Ortiz Ortiz Daniel

Grupo:3AM2

Carrera:ICA

Boleta:2014301336
Profesor:
ING. ENRIQUE MARTNEZ ROLDN
Fecha:

23 de Agosto del 2014

Captulo 1
Problema 3: Programa que pida la temperatura en grados Celsius y la
convierta a grados Fahrenheit (y viceversa) mostrando en pantalla un mensaje del
tipo xxx.xx grados Celsius son yyy.yy grados Fahrenheit
Algoritmo: Programa que convierte grados Celsius a grados Fahrenheit
(viceversa)
Inicio
escribir Elige el tipo de conversin
escribir 1-. Celsius a Fahrenheit
escribir 2-. Fahrenheit a Celsius
leer tipo
si tipo==1 entonces
escribir Da los grados Celsius
leer celsius
fahren ((celsius)*(9/5))+32
escribir , celsius
escribir grados Celsius son
,fahren
escribir grados Fahrenheit
si no
escribir Da los grados Fahrenheit
leer fahren
celsius(fahren-32)*(5/9)
escribir , fahren
escribir grados Fahrenheit son
,celsius
escribir grados Celsius
fin si
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
int tipo;
float celsius,fahren;
printf("Elige el tipo de conversion\n");
printf("1-. Celsius a Fahrenheit\n2-. Fahrenheit a Celsius\n");
scanf("%d",&tipo);
if (tipo==1)
{
printf("Da los grados Celsius\n");
scanf("%f",&celsius);
fahren=((celsius*9)/5)+32;
printf("\n%4.2f grados Celsius son %4.2f grados Fahrenheit",celsius,fahren);
}
else
{
printf("Da los grados Fahrenheit\n");
scanf("%f",&fahren);
celsius=((fahren-32)*(5))/9;
printf("\n%4.2f grados Fahrenheit son %4.2f grados Celsius",fahren,celsius);
}
return 0;
}
Captura de pantalla de salida

Conclusiones
En este ejercicio pude ver el funcionamiento de la salida y entrada de datos tanto
en el seudocdigo como en la implementacin en C. Adems de las definiciones
de variables y operaciones.

Lo difcil fue hacer las operaciones ya que en los parntesis se debe de tener
cuidado, para tener una buena operacin.

Problema 4: Crear un programa que pida el radio de una circunferencia y que


calcule la longitud de la misma as como el rea incluida dentro
Algoritmo: Programa que calcula el permetro y rea de una circunferencia
Inicio
escribir Da el radio de la circunferencia
leer radio
permetro(radio*2)*3.1416
area(radio*radio)*3.1416
escribir El permetro de la circunferencia es ,permetro
escribir El rea de la circunferencia es ,area
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
float radio, perimetro, area;
printf("Da el radio de la circunferencia\n");
scanf("%f",&radio);
perimetro=(radio*2)*3.1416;
area=(radio*radio)*3.1416;
printf("El perimetro de la circunferencia es: %f\n",perimetro);
printf("El area de la circunferencia es: %f\n",area);

return 0;
}
Captura de pantalla de salida

Conclusiones
Con frmulas sencillas podemos visualizar la salida del programa, asi como su
seudocdigo para un mejor entendimiento del lenguaje.

Problema 5: Crear un programa que calcule la fuerza de atraccin


gravitacional entre dos masas M1 y M2 situadas a una distancia R.
Algoritmo: Programa que calcule la fuerza de atraccin gravitacional entre dos
masas.
Inicio
escribir Escribe la masa uno en kilogramos
leer M1
escribir Escribe la masa dos en kilogramos
leer M2

escribir Escribe la distancia entre ellas


leer R
G6.67x10-11
FG*((M1*M2)/(R*R))
escribir La fuerza de atraccin gravitacional entre las dos masas es
Fin

Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
float m1,m2,r,f;
printf("Escribe la masa uno en kilogramos\n");
scanf("%f",&m1);
printf("Escribe la masa dos en kilogramos\n");
scanf("%f",&m2);
printf("Escribe la distancia entre ellas\n");
scanf("%f",&r);
f=6.67*((m1*m2)/(r*r));
printf("La fuerza de atraccion gravitacional entre ellas es: %fx10^-11",f);
return 0;
}

,F

Captura de pantalla de salida

Conclusiones
En la salida de la pantalla no se pueden escribir acentos, las operaciones deben
de ser muy bien revisadas para que sean correctas.
Lo que me falto o se me dificulto fue poner el valor de g ya que era notacin
cientfica, deberamos de tener una explicacin acerca de ello.

Problema 6: Escribir un programa que pregunte el ao actual y la edad de


una persona y calcule la edad de esa persona en el ao 2010.
Algoritmo: Clculo de la edad de una persona en 2010.
Inicio
escribir Escribe el ao actual
leer ao
escribir Escribe tu edad actual
leer edad
ao2ao - 2010

edad2edad ao2
escribir Tu edad en el ao 2010 era

,edad2

fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int ano,edad,ano2,edad2;
printf("Escribe el ano actual\n");
scanf("%d",&ano);
printf("Escribe tu edad actual\n");
scanf("%d",&edad);
ano2=ano-2010;
edad2=edad-ano2;
printf("Tu edad en el ano 2010 era: %d anos",edad2);
return 0;
}

Captura de pantalla de salida

Conclusiones
No se pueden escribir letras ni para la salida de datos ni como una variable,
por lo tanto, se cambia por la letra n.
Problemas bsicos se pueden resolver de forma fcil con un programa en C.

Problema 8: Crear un programa que pida un nmero real y muestre la tabla


de multiplicar correspondiente a dicho nmero de tal manera que tanto los valores
de los factores como el producto se presenten encolumnados.
Algoritmo: Programa que muestra la tabla de multiplicar de un nmero.
Inicio
escribir Escribe el numero a multiplicar
leer numero
x1
mientras x<=10

tablanumero*x
escribir ,numero
escribir * ,x
escribir = ,tabla
xx+1
fin mientras
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
float numero,tabla;
int x;
printf("Tabla de multiplicar de un numero\n");
printf("Escribe el numero a multiplicar\n");
scanf("%f",&numero);
printf("Tabla de multiplicar del numero %f\n",numero);
x=1;
while(x<=10)
{
tabla=numero*x;
printf("%f * %d = %f \n",numero,x,tabla);
x+=1;
}
return 0;

Captura de pantalla de salida

Conclusiones
Al tomar en cuenta una variable tipo flotante y lo mostramos tal cual, se mostraran
varios dgitos despus del punto aun siendo cero esos nmeros.
No se pueden poner acentos en el programa ni en su salida. Las estructuras de
repeticin nos sirven para hacer una tabla de multiplicar con poco cdigo.

Problema 9: Mostrar en forma de tabla, el cuadrado y el cubo de los 5


primeros nmeros enteros que siguen a uno introducido por teclado.
Algoritmo: Programa que muestra en una tabla el cuadrado y el cubo de 5
numeros.
Inicio
escribir Escribe un numero
leer numero
escribir Numero
Cuadrado
x1

Cubo

mientras x<=5
numeronumero+x
cuadradonumero*numero
cubonumero*numero*numero
escribir ,numero
escribir ,cuadrado
escribir ,cubo
xx+1
fin mientras
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int numero,x,cuadrado,cubo,y;
printf("Escribe un numero a elevar\n");
scanf("%d",&numero);
printf("Numero\tCuadrado\tCubo\n");
y=1;
x=1;
while(x<=5)
{
numero+=y;
cuadrado=numero*numero;
cubo=numero*numero*numero;
printf("\n%5d\t%5d\t%5d",numero,cuadrado,cubo);
x+=1;
}

return 0;
}
Captura de pantalla de salida

Conclusiones
Para poder justificar de la manera que se muestra en la captura de pantalla de
salida los nmeros, utilice un tabulador y al mostrar los nmeros se pone el
numero deseado de espacios otorgados para el mismo entre los signos % y d.
La estructura repetitiva es ms fcil de usar y ms prctica.

Problema 12: Escribir un programa que lea el valor de un ngulo en radianes


y muestre su valor en grados, minutos y segundos.
Algoritmo: Programa que convierte un ngulo en radianes a grados, minutos y
segundos.
Inicio
escribir Da los radianes
leer rad
x(rad*180)/3.1416
x1x
m(x-x1)*60

m1m
s(m-m1)*60
s1s
escribir El angulo en grados es
escribir
,x1
escribir , ,m1
escribir , ,s1
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
float rad,x,m,s;
int x1,m1,s1;
printf("CONVERSION DE RADIANES A GRADOS, MINUTOS Y
SEGUNDOS\n\n");
printf("Da los radianes\n");
scanf("%f",&rad);
x=(rad*180)/3.1416;
x1=x;
m=(x-x1)*60;
m1=m;
s=(m-m1)*60;
s1=s;
printf("\nEl angulo en grados es:\t%d\xA7,%d\xA7,%d\xA7",x1,m1,s1);
return 0;
}

Captura de pantalla de salida

Conclusiones
Para utilizar una variable tipo entera o flotante debes saber el uso que le daras y
cul te conviene ms, en este ejercicio es muy obvio ya que se utilizaron las dos
para fines parecidos, pero nos ayudaba a obtener los grados, minutos y segundos.

Captulo 2
Problema 3: Leer tres nmeros enteros y, si el primero de ellos es negativo,
calcular el producto de los tres, en caso contrario calcular la suma de ellos.
Algoritmo: Programa que calcula el producto o la suma de tres nmeros.
Inicio
escribir Escribe tres nmeros enteros
leer a
leer b
leer c
si a<0 entonces

productoa*b*c
escribir El producto es ,producto
si no
sumaa+b+c
escribir La suma es ,suma
fin si
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int a,b,c,producto,suma;
printf("Escribe tres numeros enteros\n");
scanf("%d%d%d",&a,&b,&c);
if(a<0)
{
producto=a*b*c;
printf("El producto es: %d",producto);
}
else
{
suma=a+b+c;
printf("La suma es: %d",suma);
}
return 0;
}

Captura de pantalla de salida

Conclusiones
Las condiciones hacen que si se cumple dicha condicin se realizara determinada
funcin y viceversa, las condiciones pueden ser muy sencillas como en este
ejercicio en el cual solo se compara el nmero dado con el cero.

Problema 4: Crear un programa que calcule la cada de potencial producida


por una resistencia segn la ley de Ohm (V=I*R) a partir de la resistencia y la
intensidad que pasa a su travs.
Algoritmo: Programa que calcula la cada de potencial en una resistencia.
Inicio
escribir Escribe el valor de la resistencia
leer resistencia
escribir Escribe el valor de la intensidad que pasa a travs de ella
leer intensidad
si resistencia<0 entonces
escribir Error. El valor de la resistencia es negativo y no tiene un
sentido fsico
si no si resistencia>1000 entonces
escribir Error. El valor de la resistencia es muy grande
si no
Vresistencia*intensidad
escribir La cada de potencial en la resistencia es de, V
fin si
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
float resistencia,intensidad,v;
printf("Caida de potencial en una resistencia\n");
printf("Escribe el valor de la resistencia\n");
scanf("%f",&resistencia);
printf("Escribe el valor de la intensidad que pasa a traves de ella\n");
scanf("%f",&intensidad);

if(resistencia<0)
printf("ERROR. El valor de la resistencia es negativo y no tiene un sentido
fisico\n");
else if(resistencia>1000)
printf("ERROR. El valor de la resistencia es muy grande\n");
else
{
v=resistencia*intensidad;
printf("\nLa caida de potencial en la resistencia es de %.2f volts\n",v);
}
return 0;
}
Captura de pantalla de salida

Conclusiones
Las condiciones se utilizaron para marcar o mostrar los errores en los datos que
se dan al programa, simplemente con la condicin y el mensaje. Me gustara ver
una manera de poder regresar al men inicial si hubo algn error.

Problema 5: Sea un sistema de ecuaciones de la forma:


ax+by=c
dx+ey=f
que puede resolverse usando las siguientes formulas:
x=(ce-bf)/(ae-bd) y=(af-cd)/(ae-bd)
Escribir un programa que lea los coeficientes (a,b,c,d,e,f) y resuelva el sistema. El
problema deber indicar los casos en los que el sistema de ecuaciones no tenga
solucin.
Algoritmo: Programa que calcula dos variables.
Inicio
escribir sea un sistema de ecuaciones:
escribir ax+by=c
escribir dx+ey=f
escribir Da el valor de a
leer a
escribir Da el valor de b
leer b
escribir Da el valor de c
leer c
escribir Da el valor de d
leer d
escribir Da el valor de e
leer e
escribir Da el valor de f
leer f
si (ae bd)==0 entonces
escribir El valor es infinito
si no
x(ce bf)/(ae bd)
y(af cd)/(ae bd)
escribir los resultados son , ,x,y
fin si
fin

Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int a,b,c,d,e,f;
float x,y;
printf("Sea un sistema de ecuaciones:\n\n");
printf("ax+by=c\ndx+ey=f\n");
printf("Da el valor de a\n");
scanf("%d",&a);
printf("Da el valor de b\n");
scanf("%d",&b);
printf("Da el valor de c\n");
scanf("%d",&c);
printf("Da el valor de d\n");
scanf("%d",&d);
printf("Da el valor de e\n");
scanf("%d",&e);
printf("Da el valor de f\n");
scanf("%d",&f);
if(((a*e)-(b*d))==0)
printf("\nEl valor de x y y es infinito\n");
else
{
x=((c*e)-(b*f))/((a*e)-(b*d));
y=((a*f)-(c*d))/((a*e)-(b*d));

printf("Los resultados son:\nx=%.2f\ny=%.2f",x,y);


}
return 0;
}
Captura de pantalla de salida

Conclusiones
Los programas hechos en c son una herramienta muy til y rpida que nos permite
resolver distintos tipos de ecuaciones.
Introducir muchos datos puede provocar un programa muy extenso para leerlos,
tal vez con una estructura repetitiva se podra hacer, quisiera verlo en clase.

Problema 6: Escribir un programa que calcule las races, bien reales o


imaginarias, de una ecuacin de segundo grado
El programa tambin debe ser capaz de operar con valores nulos para el
coeficiente de orden dos (es decir, deber de ser capaz de resolver ecuaciones de
primer grado)
Algoritmo: Programa que calcule las races de una ecuacin de segundo grado.
Inicio
escribir En una ecuacin de la forma ax2+bx+c=0
escribir Escribe los valores de a, b, c
leer a, b, c
si a==0 entonces
b1 (-1)*b
xb1/c
imprimir La solucin es x= ,x
si no
raiz(b*b)-(4*a*c)
si raz<0
raiz2(-1)*raz
imsqrt(raiz2)
x1im/(2*a)
x11((-1)*b)/(2*a)
escribir Resultados
escribir x1= + i,x11,x1
escribir x2= - i,x11,x1
si no

x1 (((-1)*b)+sqrt(raiz))/(2*a)
x2(((-1)*b)-sqrt(raiz))/(2*a)
escribir Resultados
escribir x1= ,x1
escribir x2= ,x2
fin si
fin si
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

int main()
{
int b,b1;
float a,c,x,x1,x2,x11,raiz,raiz2,im;
printf("En una ecuacion de la forma ax2+bx+c=0\n");
printf("Escribe los valores de a,b,c ordenadamente\n");
scanf("%f%d%f",&a,&b,&c);
if(a==0)
{
b1=(-1)*b;
x=b1/c;
printf("\nLa solucion es x= %f",x);
}
else
{

raiz=(b*b)-(4*a*c);
if(raiz<0)
{
raiz2=(-1)*(raiz);
im=sqrt(raiz2);
x1=im/(2*a);
x11=((-1)*b)/(2*a);
printf("\nResultados:\n");
printf("x1=%.2f+%.2fi\n",x11,x1);
printf("x2=%.2f-%.2fi\n",x11,x1);
}
else
{
x1=(((-1)*b)+sqrt(raiz))/(2*a);
x2=(((-1)*b)-sqrt(raiz))/(2*a);
printf("\nResultados:\n");
printf("x1=%.2f\nx2=%.2f\n",x1,x2);
}
}
return 0;
}

Captura de pantalla de salida

Conclusiones
Poder sacar nmeros imaginarios de una ecuacin de segundo grado es algo
complicado, se nota en el cdigo, sin embargo al poder hacerlo creamos un
programa capaz de resolver dichas ecuaciones rpidamente, sin duda, una
herramienta muy til.

Problema 7:
Dada la funcin U=f(x, y) tal que:
10
y2

si x*y<1
si x*y1

Y dada la funcin V=f(x, y) tal que:


1
y2

si x*y<1
si x*y1

Escribir un programa que calcule los valores de las funciones U y V, una vez
conocidas las coordenadas de un punto (x, y)

Algoritmo: Programa que calcule los valores de las funciones U y V


Inicio
escribe Escribe la coordenada en el eje x
leer x
escribe Escribe la coordenada en el eje y
leer y
si (x*y)<1 entonces
escribe La funcin U es 10
escribe La funcin V es 1
si no
escribe La funcin U es y^2
escribe La funcin U es y^2
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int x,y;
printf("Dadas las funciones:");
printf("\nU=f(x,y)\nV=f(x,y)");
printf("\nEscribe la coordenada en el eje x\n");
scanf("%d",&x);
printf("Escribe la coordenada en el eje y\n");
scanf("%d",&y);
if((x*y)<1)
{
printf("\nLa funcion U es 10");
printf("\nLa funcion V es 1");

}
else
{
printf("\nLa funcion U es y^2");
printf("\nLa funcion V es y^2");
}
return 0;
}
Captura de pantalla de salida

Conclusiones
Dentro de las sentencias if o si se puede comparar una operacin con otro
nmero, variable, operacin, etc., teniendo en cuenta los parntesis. Esto nos
ahorra cdigo y el hacer mas operaciones as como el nmero de variables.

Problema 8: Escribir un programa que pida un ao y diga si es bisiesto o no.


Algoritmo: Programa que calcule si un ao es bisiesto o no
Inicio
escribir Escribe el ao a analizar
leer ao
si (ao%4)==0 y (ao%400)==0 y (ao%100)!=0
escribir El ao
si es bisisesto,ao
si no
escribir El ao no es bisiesto,ao
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
int ano;
printf("Ano bisiesto\n\n");
printf("Escribe el ano a analizar\n");
scanf("%d",&ano);
if(((ano%4)==0)&&((ano%400)!=0)&&((ano%100)!=0))
printf("\nEl ano %d si es bisiesto\n",ano);
else
printf("\nEl ano %d no es bisiesto\n",ano);
return 0;
}
Captura de pantalla de salida

Conclusiones
En una condicin podemos poner operadores lgicos para hacer ms especfica
dicha condicin, en el programa se ve ya que debamos comparar diferentes
divisiones en una misma condicin.

Problema 9: Escribir un programa que pida como entrada un ao y saque por


pantalla la fecha del domingo de Pascua para ese ao.
Algoritmo: Programa que calcule el domingo de pascua.
Inicio
escribir Escribe el ao en que deseas saber el domingo de pascua
leer x
ax%19
bx%4
cx%7
d((19*a)+24)%30
e((2*b)+(4*c)+(6*d)+5)%7
z22+d+e
si z<=31 entonces
escribir Domingo de pascua es el
de marzo,z
si no
yz-31

escribir Domingo de pascua es el

de abril,y

fin si
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int x,a,b,c,d,e,z,y;
printf("Escribe el ao en que deseas saber el domingo de pascua\n");
scanf("%d",&x);
a=x%19;
b=x%4;
c=x%7;
d=((19*a)+24)%30;
e=((2*b)+(4*c)+(6*d)+5)%7;
z=22+d+e;
if(z<=31)
printf("\nDomingo de pascua es el %d de marzo\n",z);
else
{
y=z-31;
printf("\nDomingo de pascua es el %d de abril\n",y);
}
return 0;
}

Captura de pantalla de salida

Conclusiones

Problema 10: Leer desde el teclado las coordenadas (x, y) de un punto y,


mediante un men, elegir una entre las siguientes opciones:
Comprobar si el punto pertenece a una circunferencia de radio 10 y centro (0,0).
Averiguar el cuadrante en el que se encuentra el punto.
Pasar las coordenada cartesianas (x.y) a polares (r,arg).
Algoritmo: Programa que elija entre tres ejercicios para un punto en el plano (x,y).
Inicio
escribir Escribe la coordenada en x
leer x
escribir Escribe la coordenada en y
leer y
escribir Qu deseas hacer con las coordenadas?
escribir 1.- comprobar si pertenece a una circunferencia
escribir 2.- averiguar el cuadrante en el que se encuentra
escribir 3.-Pasar a coordenadas polares
leer opc

segn sea (opc)


en caso opc_1
Asqrt((x*x)+(y*y))
si A<=10 entonces
escribir El punto si pertenece a una circunferencia
de radio 10 y centro (0,0)
si no
escribir El punto no pertenece a una circunferencia
de radio 10 y centro (0,0)
en caso opc_2
si x>0 y y>0 entonces
escribir El punto esta en el cuadrante 1
si no si x<0 y y>0 entonces
escribir El punto esta en el cuadrante 2
si no si x<0 y y<0 entonces
escribir El punto esta en el cuadrante 3
si no
escribir El punto esta en el cuadrante 4
en caso opc_3
rsqrt((x*x)+(y*y))
anguloatan(y/x)
escribir Las coordenadas polares son ( , ),r,angulo
fin segn sea
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main()
{
int x,y,opc;

float a,r,angulo,an,angu;
printf("Escribe la coordenada en x\n");
scanf("%d",&x);
printf("Escribe la coordeneda en y\n");
scanf("%d",&y);
printf("que deseas hacer con las coordenadas?\n");
printf("1.-Comprobar si pertenecen a una circunferencia\n");
printf("2.-Averiguar el cuadrante en el que se encuentra\n");
printf("3.-Pasar a coordenadas polares\n");
scanf("%d",&opc);
switch(opc)
{
case 1:
{
a=sqrt((x*x)+(y*y));
if(a<=10)
printf("\nEl punto si pertenece a una circunferencia de radio 10 y centro
(0,0)\n");
else
printf("\nEl punto no pertenece a una circunferencia de radio 10 y centro
(0,0)\n");
break;
}
case 2:
{
if(x>0 && y>0)
printf("\nEl punto esta en el cuadrante 1\n");
else if(x<0 && y>0)
printf("\nEl punto esta en el cuadrante 2\n");

else if(x<0 && y<0)


printf("\nEl punto esta en el cuadrante 3\n");
else if(x>0 && y<0)
printf("\nEl punto esta en el cuadrante 4\n");
else
printf("\nEl punto esta en un eje\n");
break;
}
case 3:
{
r=sqrt((x*x)+(y*y));
an=y/x;
angulo=atan(an);
angu=(angulo*180)/3.1416;
printf("\nLas coordenadas polares son (%.2f,%.2f)",r,angu);
break;
}
default:
printf("\nNumero incorrecto\n");
}
return 0;
}

Captura de pantalla de salida

Conclusiones
Este programa es muy extenso y se ocupan muchas variables, me gustara saber
cmo hacerlo ms corto y fcil.
Con la funcin switch o segn sea se facilita el hacer un men comparado al
utilizar un if.

Problema 11: Escribir un programa que permita efectuar el clculo del rea
de un cuadrado, un crculo o un tringulo equiltero segn la opcin seleccionada
por el usuario a travs de un men.
Algoritmo: Programa que calcule el rea de un cuadrado, circulo o tringulo
equiltero.
PRIMERA OPCIN
Inicio
escribir Elige el rea que deseas calcular
escribir 1.-cuadrado
escribir 2.-circulo
escribir 3.-triangulo equilatero
leer opcin

si opcin==1 entonces
escribir Cunto mide el lado del cuadrado?
leer lado
alado*lado
escribir El rea del cuadrado es ,a
si no si opcin==2 entonces
escribir Cunto mide el radio del circulo?
leer radio
a(radio*radio)*3.1416
escribir El rea del circulo es ,a
si no
escribir Cunto mide la base del triangulo?
leer base
escribir Cunto mide la altura del triangulo?
leer altura
a(base*altura)/2
escribir El rea del triangulo es ,a
fin si
Fin
SEGUNDA OPCIN
Inicio
escribir Elige el rea que deseas calcular
escribir 1.-cuadrado
escribir 2.-circulo
escribir 3.-triangulo equilatero
leer opcin
segn sea (opcin)
en caso opcin_1
escribir Cunto mide el lado del cuadrado?
leer lado
alado*lado
escribir El rea del cuadrado es ,a
en caso opcin_2
escribir Cunto mide el radio del circulo?

leer radio
a(radio*radio)*3.1416
escribir El rea del circulo es ,a
en caso opcin_3
escribir Cunto mide la base del triangulo?
leer base
escribir Cunto mide la altura del triangulo?
leer altura
a(base*altura)/2
escribir El rea del triangulo es ,a
fin segn sea
fin
Implementacin en lenguaje C
PRIMERA OPCIN
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
int opcion,lado,base,altura;
float a,radio;
printf("Elige el area que deseas calcular\n");
printf("1.-Cuadrado\n2.-Circulo\n3.-Triangulo equilatero\n");
scanf("%d",&opcion);
if(opcion==1)
{
printf("\nCuanto mide el lado del cuadrado?\n");
scanf("%d",&lado);
a=lado*lado;

printf("El area del cuadrado es %.2f\n",a);


}
else if(opcion==2)
{
printf("\nCuanto mide el radio del circulo?\n");
scanf("%f",&radio);
a=(radio*radio)*3.1416;
printf("El area del circulo es %.2f",a);
}
else
{
printf("\nCuanto mide la base del triangulo?\n");
scanf("%d",&base);
printf("\nCuanto mide la altura del triangulo?\n");
scanf("%d",&altura);
a=(base*altura)/2;
printf("El area del triangulo es %.2f\n",a);
}
return 0;
}
SEGUNDA OPCIN
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
int opcion,lado,base,altura;

float a,radio;
printf("Elige el area que deseas calcular\n");
printf("1.-Cuadrado\n2.-Circulo\n3.-Triangulo equilatero\n");
scanf("%d",&opcion);
switch(opcion)
{
case 1:
{
printf("\nCuanto mide el lado del cuadrado?\n");
scanf("%d",&lado);
a=lado*lado;
printf("El area del cuadrado es %.2f\n",a);
break;
}
case 2:
{
printf("\nCuanto mide el radio del circulo?\n");
scanf("%f",&radio);
a=(radio*radio)*3.1416;
printf("El area del circulo es %.2f",a);
break;
}
case 3:
{
printf("\nCuanto mide la base del triangulo?\n");
scanf("%d",&base);
printf("\nCuanto mide la altura del triangulo?\n");
scanf("%d",&altura);

a=(base*altura)/2;
printf("El area del triangulo es %.2f\n",a);
break;
}
}

return 0;
}
Captura de pantalla de salida

Conclusiones
Con el switch y con el if se puede realizar un men de opciones, sin embargo, se
me hace ms fcil hacerlo con el switch ya que no es necesario comparar la
variable de entrada, en este caso el nmero de la opcin a realizar.

Problema 12: Dada la longitud de una circunferencia, averiguar si dicha


longitud corresponde, con una determinada precisin, a una circunferencia de
radio R.
El programa deber leer la longitud de la circunferencia, el radio y la precisin e
indicar si es cierto o no que esa circunferencia tiene ese valor del radio.
Algoritmo: Programa que comparara el radio de un circulo.
Inicio
escribir Escribe la longitud de la circunferencia
leer lon
escribir Escribe el radio de la circunferencia
leer radio
escribir Escribe cuantos numeros deseas de precisin en el calculo

leer preci
long12*radio*3.1416
complong1-lon
si comp<preci
escribir Es correcto el valor del radio
si no
escribir Es incorrecto el valor del radio
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
float lon,radio,preci,long1,comp;
printf("Escribe la longitud de la circunferencia\n");
scanf("%f",&lon);
printf("Escribe el radio de la circunferencia\n");
scanf("%f",&radio);
printf("Escribe cuantos numeros deseas de precision en el calculo\n");
scanf("%f",&preci);
long1=2*radio*3.1416;
comp=long1-lon;
if(comp<preci)
printf("\nEs correcto el valor del radio\n");
else
printf("\nEs incorrecto el valor del radio\n");
return 0;
}

Captura de pantalla de salida

Conclusiones
Este problema fue el que se me dificulto ms, ya que no era muy entendible lo que
peda.
Se hizo una comparacin entre la precisin y el resto de la resta de la longitud
calculada y la leida.

Problema 13: Escribir un programa que pida dos caracteres por pantalla, los
ordene alfabticamente, y los imprima ordenados.
Algoritmo: Programa que ordene dos caracteres alfabticamente.
Inicio
escribir Escribe un carcter
leer a
escribir Escribe otro carcter
leer b
si a<b entonces
escribir ,a
escribir ,b
si no
escribir ,b
escribir ,a
fin si
fin
Implementacin en lenguaje C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
char a,b;
printf("Orden alfabetico\n\n");
printf("Escribe un caracter\n");
scanf("%c%*c",&a);
printf("Escribe otro caracter\n");
scanf("%c%*c",&b);
printf("\nOrdenadas alfabeticamente\n");

if(a<b)
printf("%c\n%c\n",a,b);
else
printf("%c\n%c\n",b,a);
return 0;
}
Captura de pantalla de salida

Conclusiones
Se me dificulto poder comparar los caracteres, ya que el programa no ejecutaba el
programa como yo lo deseaba. Me gustara aprender ms sobre caracteres ya que
se me complica.
Al leer un carcter es como si leyera dos, por lo tanto el programa da problemas,
sin embargo hay formas de eliminar ese carcter sobrante.

You might also like