You are on page 1of 28

2014

ANALISIS Y DISEO DE
ALGORITMOS
EN LENGUAJE C
Autora: Angie Sama

ANALISIS Y DISEO DE ALGORITMOS

Pgina 2









ANALISIS Y DISEO DE ALGORITMOS

Pgina 3
I. El 5% de la suma de tres nmeros.

CODIGO DIAGRAMA DE FLUJO
//El 5% de la suma de tres nmeros.
#include <stdio.h>
int main ()
{
float n1,n2,n3,p;
printf( PROMEDIO DEL 5% DE TRES CALIFICACIONES\n\n);
printf(Ingresa un numero: );
scanf(%f,&n1);
printf(\n\nIngresa el siguiente numero: );
scanf(%f,&n2);
printf(\n\nIngresa el siguiente numero: );
scanf(%f,&n3);
p=(n1+n2+n3)*0.05;
printf(\n\nPromedio: %.4f ,p);
return 0;
}


INICIO
n1, n2, n3, p
n1, n2, n3
p=(n1+n2+n3)*0.05
p
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 4
II. Aumenta el valor de una variable grado en dos, remplazando su
valor actual.

CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
int main ()
{
float n;
printf(ELEVA AL CUADRADO UN NUMERO);
printf(\n\nIngresa un numero: );
scanf(%f,&n);
n=n^2;
printf(\n\nResultado: %.4f,n);
return 0;
}
INICIO
n
n
n=n^2
n
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 5
III. Restar el valor de una variable llamada b1 el valor de una variable
llamada a1, elevar al cuadrado la diferencia y designarlo como el
nuevo valor de w.

CODIGO DIAGRAMA DE FLUJO

#include <stdio.h>
int main ()
{
float a1,b1,w;
printf(RESTA Y ELEVA AL CUADRADO);
printf(\n\nIngresa el primer numero: );
scanf(%f,&a1);
printf(\n\nIngresa el segundo numero: );
scanf(%f,&b1);
w=(a1-b1)^2;
printf(\n\nResultado: %.2f ,w);
return 0;
}


INICIO
a1, b, w
a1, b1
w=(a1-b1) ^2
w
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 6
IV. Si las longitudes de los lados de un triangulo estn dados por los
valores de las variables a, b, y c, entonces el rea de un triangulo se
puede calcular como:
en donde



CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
#include <math.h>
int main ()
{
float a,b,c,s,area;
printf(AREA DE UN TRIANGULO);
printf(\n\nLado A: );
scanf(%f,&a);
printf(\n\nLado B: );
scanf(%f,&b);
printf(\n\nLado C: );
scanf(%f,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(\n\nArea: %.4f,area);
return 0;
}

INICIO
a, b, c, s, area
a, b, c
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c))
area
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 7
V. Calcular el permetro de un rectngulo.

CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
int main ()
{
float l1,l2,p;
printf(PERIMETRO DE UN RECTANGULO);
printf(\n\nBase: );
scanf(%f,&l1);
printf(\n\nAltura: );
scanf(%f,&l2);
p=(l1+l2)*2;
printf(\n\nPerimetro: %.4f,p);
return 0;
}



INICIO
p, l1, l2
l1. l2
p=(l1+l2)*2
p
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 8
VI. Calcular el rea de un crculo.

CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
int main ()
{
float r,area;
printf(AREA DE UN CIRCULO);
printf(\n\nRadio: );
scanf(%f,&r);
area=3.1416*r^2;
printf(\n\nArea: %.4f,area);
return 0;
}


INICIO
area, r
r
area=3.1416*r^2
area
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 9
VII. Se desea saber cuantos centmetros hay en una cantidad de metros.

CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
int main ()
{
float c,m;
printf(DE METROS A CENTIMETROS);
printf(\n\nMetros: );
scanf(%f,&m);
c=m*100;
printf(\n\nCentimetros %.4f,c);
return 0;
}


INICIO
c, m
m
c=m*100
c
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 10
VIII. Se desea saber cuntos minutos y cuantos segundos hay en un
determinado nmero de horas.

CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
int main ()
{
float h,m,s;
printf(DE HORAS A MINUTOS Y SEGUNDOS);
printf(\n\NHora (s): );
scanf(%f,&h);
m=h*60;
s=m*60;
printf(\n\nMinutos: %.4f,m);
printf(\n\nSegundos: %.4f,s);
return 0;
}


INICIO
h, m, s
h
m=h*60; s=m*60
m, s
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 11
IX. Calcular el promedio de tres calificaciones.

CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
int main ()
{
float a,b,c,s;
printf(PROMEDIO DE TRES CALIFICACIONES);
printf(\n\nCalificacion 1: );
scanf(%f,&a);
printf(\n\nCalificacion 2: );
scanf(%f,&b);
printf(\n\nCalificacion 3: );
scanf(%f,&c);
s=(a+b+c)/3;
printf(\n\nPromedio: %.4f,s);
return 0;
}


INICIO
a, b, c, s
a, b, c
s=(a+b+c)*3
s
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 12
X. Calcular el volumen de un cilindro.

CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
int main ()
{
float r,v,h;
printf(VOLUMEN DE UN CILINDRO);
printf(\n\nRadio: );
scanf(%f,&r);
printf(\n\nAltura: );
scanf(%f,&h);
v=(3.11416*r^2)*h;
printf(\n\nVolumen: %.4f,v);
return 0;
}


INICIO
r, v, h
r, h
v=(3.1416*r^2)*h
v
FIN
ANALISIS Y DISEO DE ALGORITMOS

Pgina 13












ANALISIS Y DISEO DE ALGORITMOS

Pgina 14
I. Dados tres nmeros enteros, utiliza el if, para imprimirlos en orden
ascendente.
Ejemplo: 10 3 5 - > 3 5 10

CODIGO DIAGRAMA DE FLUJO
#include <stdio.h>
int main() {
int n1,n2,n3,t;
printf(NUMEROS ORDENADOS DE FORMA ASCENDENTE);
printf(\n\nIngresa el primer numero: );
scanf(%d,&n1);
printf(\n\nIngresa el segundo numero: );
scanf(%d,&n2);
printf(\n\nIngresa el tercer numero: );
scanf(%d,&n3);
if(n1>n3){
t=n2; n2=n3; n3=t;
if(n2>n3){
t=n2; n2=n3; n3=t;
if(n1>n2){
t=n1; n1=n2; n2=t;
}
}
}
else if(n2>n3){
t=n2; n2=n3; n2=t;
printf(\nNumeros ordenados: \n);
printf(%d, %d, %d,n1,n2,n3);
}
return 0;
}
INICIO
n1, n2, n3, t
n1, n2, n3
t=n2; n2=n3; n2=t
n1, n2, n3
FIN
Si n1>n3
Si n2>n3
Si n1>n2
t=n2; n2=n3; n3=t;

t=n2; n2=n3; n3=t;
t=n1; n1=n2; n2=t;
ANALISIS Y DISEO DE ALGORITMOS

Pgina 15
II. Convierte grados Celsius a Fahrenheit y viceversa.

#include <stdio.h>
int main(){
float op,c,fa;
printf("CONVERTIDOR DE GRADOS \n");
printf("\nElija una opcion: \n");
printf("\n1) Convertir grados de C a F \n");
printf("\n2) Convertir grados de F a C\n\n");
scanf("%f",&op);
if(op==1){
printf("\nIngresa grados C:\n\n ");
scanf("%f",&c);
fa=c*(9/5)+32;
printf("\nGrados Fahrenheit: %.3f",fa);
}
else if(op==2){
printf("\nIngresa grados Fahrenheit:\n\n ");
scanf("%f",&fa);
c=(fa-32)*5/9;
printf("\nGrados Celsius: %.3f",c);
}
else{
printf("\nOpcion invalida.\n");
}
return 0;
}

c=(fa-32)*5/9;
FIN
Si op==2 fa
INICIO
op, c, fa
op
fa
si op==1
fa=c*(9/5)+32;
c
c
mensaje
ANALISIS Y DISEO DE ALGORITMOS

Pgina 16
III. Escribe un programa que pida el ao actual y un ao cualquiera y
que escriba cuantos aos han pasado desde ese ao o cuantos aos
faltan para llegar a ese ao.

#include <stdio.h>
int main(){
int a,b,r;
printf("CALCULADOR DE AOS\n\n");
printf("\nIngresa el ao actual: \n");
scanf("%d",&a);
printf("\nIngresa un ao cualquiera: \n");
scanf("%d",&b);
if(a==b){
printf("\nSon el mismo ao!");
}
else if(a>b){
r=a-b;
printf("Desde al ao %d han pasado %d aos",b,r);
}
else{
r=b-a;
printf("\nPara llegar al ao %d faltan %d aos",b,r);
}
return 0;
}


r=b-a
FIN
Si a>b
INICIO
a, b, r
a, b
si a==b
r=a-b
mensaje
b, r
ANALISIS Y DISEO DE ALGORITMOS

Pgina 17
IV. Escribe un programa que pida dos nmeros enteros y que calcule su
divisin, escribiendo si la divisin es exacta o no.
No hacer la divisin si el divisor es cero.

#include <stdio.h>
int main() {
int a,b,r,d;
printf("CALCULA DIVISIONES\n\n");
printf("\nIngresa valor del dividendo: \n\n ");
scanf("%d",&b);
printf("\nIngresa valor del divisor: \n\n ");
scanf("%d",&a);
if(a==0){
printf("\nNo se puede ralizar");
}
else {
r=b%a;
} if(r==0){
d=b/a;
printf("\nExacta.\n Cociente: %d",d);
}
else{
d=b/a;
printf("\nNo es exacta.\nCocinete: %d \nResto: %d",d,r);
}
return 0; }
r=b%a
d=b/a
FIN
Si r==0
INICIO
a, b, r, d
a, b
si a==0
d=b/a
mensaje
d
d, r
ANALISIS Y DISEO DE ALGORITMOS

Pgina 18
V. Escribe un programa que calcule el gasto de agua en una vivienda
dado el nmero de litros gastados, siendo el sistema de cobro como
sigue:
La cuota fija mensual es de $ 600.00
Los primeros 50 litros son gratis
Entre 51 y 200 litros se cobra el litro adicional a $ 1.00
A partir de 201 litros se cobra el litro adicional a $ 3.00
CODIGO
#include <stdio.h>
int main(){
float n,t,f=600;
printf("CALCULAR EL GASTO DE AGUA\n");
printf("\nIngresa No. de Litros gastados: \n");
scanf("%f",&n);
if(n<=50){
printf("\nPagar cuota fija: %.2f",f);
}
else if(n<=200){
t=(n-50)*1+f;
printf("\n\nTotal a pagar: $ %.2f",t);
}
else{
t=(n-50)*3+f;
printf("\n\nTotal a pagar: $ %.2f",t);
}
return 0;
}
t=(n-50)*3+f;

FIN
Si n<=200
INICIO
n, t, f=600
n
si n<=50
t=(n-50)*1+f;

f
t
ANALISIS Y DISEO DE ALGORITMOS

Pgina 19
VI. Indicar si una calificacin es aprobada o reprobada.

CODIGO
#include <stdio.h>
int main(){
float c;
printf("CALIFICACIONES\n\n");
printf("\nIngresa la calificacin: \n");
scanf("%f",&c);
if(c<6){
printf("\nCalificacion Reprobatoria");
}
else {
printf("\n\nCalificacion Aprobatoria",t);
}
return 0;
}

FIN
INICIO
c
c
si c<6
Reprobado
Aprobado
ANALISIS Y DISEO DE ALGORITMOS

Pgina 20
VII. Preguntar dos nmeros e indicar cual numero es el mayor y cul es
el menor.

CODIGO
#include <stdio.h>
int main(){
float a, b;
printf("CALCULAR NUMEROS\n\n");
printf("\nIngresa un numero: \n");
scanf("%f",&a);
printf("\nIngresa sig. numero: \n");
scanf("%f",&b);
if(a<b){
printf("\nMayor %f \nMenor %f",b,a );
}
else {
printf("\nMayor %f \nMenor %f",a,b );
}
return 0;
}

FIN
INICIO
a, b
a, b
si a<b
b, a
a, b
ANALISIS Y DISEO DE ALGORITMOS

Pgina 21
VIII. Preguntar dos nmeros e indicar si son iguales o que numero es
mayor y cual es menor.

CODIGO
#include <stdio.h>
int main(){
float a, b;
printf("CALCULAR NUMEROS\n\n");
printf("\nIngresa un numero: \n");
scanf("%f",&a);
printf("\nIngresa sig. numero: \n");
scanf("%f",&b);
if(a==b){
printf("\Son iguales");
}
else if(a<b){
printf("\nMayor %f \nMenor %f",b,a );
}
else{
printf("\nMayor %f \nMenor %f",a,b );
}
return 0;
}

a, b
FIN
Si a<b
INICIO
a, b
a, b
si a==b
mensaje
b, a
ANALISIS Y DISEO DE ALGORITMOS

Pgina 22
IX. Preguntar una calificacin y si es igual a 10 muestre un mensaje de
Excelente, si no que indique reprobado.

CODIGO
#include <stdio.h>
int main(){
float c;
printf("CALIFICACIONES\n\n");
printf("\nIngresa la calificacin: \n");
scanf("%f",&c);
if(c==10){
printf("\nCalificacion Excelente");
}
else {
printf("\n\nCalificacion Reprobatoria",t);
}
return 0;
}

FIN
INICIO
c
c
si c==10
excelente
reprobatoria
ANALISIS Y DISEO DE ALGORITMOS

Pgina 23
X. Indicar el descuento en pesos que le harn a una persona tomando
en cuenta que si compra ms de $1000.00 le hacen el 10% de
descuento de lo contrario ser el 8%
CODIGO
#include <stdio.h>
int main(){
float n,t,f=600;
printf("DESCUENTOS\n\n");
printf("\nIngresa PRECIO: \n");
scanf("%f",&n);
if(n<=50){
printf("\nPagar: %.2f",f);
}
else if(n<=200){
t=(n-50)*1+f;
printf("\n\nTotal a pagar: $ %.2f",t);
}
else{
t=(n-50)*3+f;
printf("\n\nTotal a pagar: $ %.2f",t);
}
return 0;
}

t=(n-50)*3+f;

FIN
Si n<=200
INICIO
n, t, f=600
n
si n<=50
t=(n-50)*1+f;

f
t
ANALISIS Y DISEO DE ALGORITMOS

Pgina 24



ANALISIS Y DISEO DE ALGORITMOS

Pgina 25
I. El promedio de las reas de 5 circunferencias.

CODIGO
#include <stdio.h>
int main () {
float i,r,pi,pf,h;
for(i=1; i<6; i++){
printf(\n\nIngresa radio %.0f: ,i);
scanf(%f,&r);
h=3.1416*r^2;
pi=pi+h;
printf(\n\nArea %.0f: %.4f,i,h);
}
pf=pi/5;
printf(\n\nPromedio: %.4f,pf);
return 0;
}


ANALISIS Y DISEO DE ALGORITMOS

Pgina 26
II. En una estacin meteorolgica se obtiene el porcentaje de
humedad en la atmosfera cada dos horas. Obtener el promedio de
humedad de un da.

CODIGO
#include <stdio.h>
int main () {
float i,c,ci,p;
printf(PORCENTAJE DE HUMEDAD\n\n);
for(i=1; i<=12; i++){
printf(Cantidad: %.0f\n\n,i);
scanf(%f,&c);
ci=ci+c;
}
p=ci/12;
printf(\n\nPromedio de un dia: %.4f,p);
return 0;
}


ANALISIS Y DISEO DE ALGORITMOS

Pgina 27
III. Realiza las mecanizaciones de los siguientes programas, incluye
lo que aparece en la pantalla de interfaz y la prueba de las
variables como se hace en clase. Explica que esta haciendo el
programa.

A.
CODIGO
#include <stdio.h>
int main (){
int i, s;
s=0;
for(i=9; i<=45; i+=3){
if ( (i<21) || (i>27) ){
s=s + i;
}
}
printf(El resultado es %d \n ,s);

return 0;
}

ANALISIS Y DISEO DE ALGORITMOS

Pgina 28
IV. Realiza las mecanizaciones de los siguientes programas,
incluye lo que aparece en la pantalla de interfaz y la prueba de las
variables como se hace en clase. Explica que esta haciendo el
programa.
A.

CODIGO
#include <stdio.h>
int main (){
int a = 9, b = 0, total;

total= a + b;
printf( %d ,,total);
a++;
b--;
printf( %d ,,a + b);
printf( %d ,, total);

return 0;
}

You might also like