Ejercicio 48
Hacer un algoritmo para un programa que halle el elemento n de la serie, 2n: 1 2 4 8 16 32 64 128 ... para n = 0,1,2,3,4,5,6,7,8, .... ; También diseñe una función que regrese el exponente correspondiente a la potencia 2n.
Algoritmo
Inicio
Declare n, potencia
Declare potenciadedos(x), exponente(valor)
Leer n
Potencia potenciadedos(n)
Imprimir n, potencia
Imprimir potencia, exponente(potencia)
Fin
Función potenciadedos(x)
Inicio
Si x=0 entonces potenciadedos 1
Sino potenciadedos 2*potenciadedos(x-1)
Fin si
Fin
Función exponente(valor)
Inicio
Si valor=1 entonces exponente 0
Sino exponente exponente(valor/2)+1
Fin si
Fin
Variables
n : valor ingresado
X : toma valor de n
valor : toma el valor de la variable potencia
potencia : valor de la potencia del témino n
potenciadedos : función
exponente : función
Programa
#include<stdio.h>
int n;
int potenciadedos(int x), exponente(int valor);
int potencia;
main(void)
{
printf(" INGRESE LA POSICIÓN DEL ELEMENTO
.. ");
scanf("%d",&n);
potencia=potenciadedos(n);
printf("2 a la %d es %d",n,potencia);
printf("%d es 2 a la %d",potencia, exponente(potencia));
}
int potenciadedos(int x)
{
if(x==0)return 1;
else return 2*potenciadedos(x-1);
}
int exponente(int valor)
{
if(valor==1)return 0;
else return 1+exponente(valor/2);
}
COMENTARIO: ambos procesos son recursivos
En el caso del ejercicio anterior tal vez no note lo que sucede con
la función exponente, ya que la posición que se ingresa representa
el exponente. Vea el ejercicio 49 y lograra comprenderlo mejor.
Ejercicio 49
Compruebe el siguiente algoritmo ingresando valores resultados de la potencia de 2, ejemplo: 256, 32, 1024, etc. y verá la importancia de la función exponente.
Algoritmo
Inicio
Declare n
Declare exponente(valor)
Leer n
Imprimir n, exponente(n)
Fin
Funcion exponente(valor)
Inicio
Si valor=1 exponente 0
Sino exponente exponente(valor/2)+1
Fin si
Fin
Variables
n : valor ingresado
exponente : función
valor : toma el valor de n
Programa
#include<stdio.h>
int exponente(int valor);
int potencia;
main(void)
{
printf(" INGRESE VALOR POTENCIA DE 2 ..
");
scanf("%d",&potencia);
printf("%d es 2 a la %d",potencia, exponente(potencia));
}
int exponente(int valor)
{
if(valor==1)return 0;
else return 1+exponente(valor/2);
}
Ejercicio 50
Desarrollar el ejercicio 14, usando funciones y procedimientos.
Algoritmo usando funciones
Inicio
Declare opcion, base, altura, area
Leer opcion
Seleccionar opcion
Caso 1
Leer base, altura
Imprimir area(base, altura)
Caso 2
Leer area, altura
Imprimir base(area,altura)
Caso 3
Leer area, base
Imprimir altura(area,base)
Fin selección
Fin
Función area(base,altura)
Inicio
Area base*altura/2
Fin
Función base(area, altura)
Inicio
base 2*area/altura
Fin
Función altura(area,base)
Inicio
altura 2*area/base
Fin
Variables
opcion : para saber cual es calculo a realizar.
base : valor de la base, también es función
altura : valor de la altura, también es función
area : valor del área, también es función
Comentario: algunas variables pueden funcionar como tal o como funciones, en este problema, fíjese por que.
Programa usando funciones
#include<stdio.h>
int operacion;
float area(int b,int h);
float base(int a, int h);
float altura(int a,int b);
main(void)
{
printf("EJERCICIOS DE LOS TRIÁNGULOS ........ \n");
printf("============================ \n\n\n");
printf("1 para calcular el área de un triángulo \n");
printf("2 para calcular la base \n");
printf("3 para calcular la altura \n\n");
printf("ingrese una opcion ........ ");
scanf("%d",&operacion);
switch(operacion)
{
float a,b,h;
case 1:
printf("AREA DEL TRIÁNGULO \n");
printf("ingrese la base ........ ");
scanf("%f",&b);
printf("ingrese la altura ........ ");
scanf("%f",&h);
printf("%f",area(b,h));
break;
case 2:
printf("AREA DEL TRIÁNGULO \n");
printf("ingrese el area ........ ");
scanf("%f",&a);
printf("ingrese la altura ........ ");
scanf("%f",&h);
printf("%f",base(a,h));
break;
case 3:
printf("AREA DEL TRIÁNGULO \n");
printf("ingrese el area ........ ");
scanf("%f",&a);
printf("ingrese la base ........ ");
scanf("%f",&b);
printf("%f",altura(a,b));
break;
default:
printf(" nada mas ........ ");
}
}
float area(int b,int h)
{return b*h/2;}
float base(int a, int h)
{return 2*a/h;}
float altura(int a,int b)
{return 2*a/b;}
Hay 12 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Creación de un microrobot Este es un robot muy sencillo pensado para aquellos que se quieren iniciar en el mundo de la microbótica. La estructura mecánica está realizada con piezas de Lego y como ... [25/02/05] |
|
8.057 | ||
|
Programación estructurada (primera parte) Aprende, en el mundo de la informática, la programación estructurada: en qué consiste y cuál es su justificación. Analizaremos la visión clásica de la programación estruc... [16/10/08] |
|
1.390 | ||
|
PHP y MySQL. Aplicaciones Web: HTML II (tercera parte) Programación de aplicaciones Web con PHP y MySQL. Ahora continuaremos con el estudio de las páginas Web HTML. Estudiaremos las listas en HTML. ... [02/12/08] |
|
711 | ||
Publicar en
del.icio.us
digg
meneame