3.284 cursos gratis
6.263.460 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Algoritmos y lenguaje C > Funciones y procedimientos

Algoritmos y lenguaje C

Autor: abraham sopla
Curso:  4,68/5 4,68/5 (12 opiniones) |10889 alumnos|Fecha publicación: 13/01/2006

Capítulo 16:

 Funciones y procedimientos

Ejercicio 40

Hacer un algoritmo para un programa que calcule el cubo de un número ingresado.
Algoritmo
Los dos algoritmos hacen lo mismo, el algoritmo tiene una línea de menos.

                      Funciones y procedimientos
Programa
#include<stdio.h>
float num;
float res, cubo(int x);
main()
{
printf("ingrese un número  ");
scanf("%f",&num);
res=cubo(num);
printf("%f al cubo es: %f",num,res);
return 0;
}

float cubo(int x)
{return x*x*x;}

Ejercicio 41

Hacer un algoritmo para un programa que evalúe la expresión 

Algoritmo
Inicio
Declare b, e
Declare potencia(m, n)
Leer b, e
Imprimir potencia(b, e)
Fin

Función potencia(m, n)
Inicio
Declare i, y
y 1
Desde i=1 hasta i<=abs(n) hacer
y y*m
si n<0 entonces y 1/y
fin si
Fin Desde
potencia y
Fin

Variables
potencia: es una función
b : valor ingresado
e : valor ingresado
m : toma valores de b
n : toma valores de e
i : contador
y : guarda el valor buscado.

Programa
#include<stdio.h>
#include <math.h>
int b,e;
float potencia(int m, int n);
main(void)
{
printf("   INGRESE DOS NÚMEROS..   ");
scanf("%d %d",&b,&e);
printf("%f",potencia(b,e));
}

float potencia(int m, int n)
{int i;
float y;
y=1;
for(i=1;i<=abs(n);i++)
y=y*m;
if(n<0) y=1/y;
return y;
}

Ejercicio 42

Hacer un algoritmo para un programa que calcule el  área de círculo y longitud de circunferencia. Utilizar procedimientos.

Algoritmo
Inicio
Declare r;
Declare circulo(m)
Leer r
circulo(r)
Fin

Procedimiento circulo(m)
Inicio
Declare pi
Pi 3.1416
Imprimir  pi*m*m
Imprimir 2*pi*m
Fin

Variables
r  : valor ingresado
Circulo : funcion
m  : toma el valor de r
pi  : guarda el valor 3.1416

Programa
#include<stdio.h>
int r;
void circulo(int m);
main(void)
{
printf("   INGRESE EL VALOR DEL RADIO..   ");
scanf("%d",&r);
circulo(r);      // llamada a un procedimiento
}

void circulo(int m)      // procedimiento
{float pi;
pi=3.1416;
printf("AREA:  %f \n",pi*m*m);
printf("LONGITUD: %f",2*pi*m);
}

Ejercicio 43

Hacer un algoritmo para un programa que intercambie los valores de dos variables.

Algoritmo
Inicio
Declare intercambio(x, y)
Declare temp, a, b
Leer a, b
Intercambio(a, b);
Fin

Procedimiento intercambio(x, y)
Inicio
Temp x
X y
Y temp
Imprimir x, y
Fin

Variables
temp. : temporal
a  : valor ingresado
b  : valor ingresado
x  : toma el valor de a
y  : toma el valor de b
intercambio: procedimiento

Programa
#include<stdio.h>
void intercambio(int x,int y);
int temp,a,b;
main(void)
{ printf("ingrese a: ");
scanf("%d",&a);
printf("ingrese a: ");
scanf("%d",&b);
intercambio(a,b);
}

void intercambio(int x, int y)
{
temp=x;
x=y;
y=temp;
printf("nuevos avlores de a:=%d y b:=%d",x,y);
}

COMENTARIO: En este caso vea usted la variable temp no esta declarada dentro del procedimiento intercambio. Esto significa que la variable temp es una variable global.

El ejercicio 43 no puede ser solucionado usando funciones, la única manera es a través de procedimientos, es decir una función que no devuelve ningún valor.

Ejercicio 44

Hacer un algoritmo para un programa que calcule el factorial de un número n

Algoritmo
Inicio
Declare n
Declare factorial(a)
Leer n
Imprimir factorial(n) //llamada a la función.
Fin

Función factorial(a)
Inicio
si a=0 o a=1 entonces factorial 1  //semilla 1
sino factorial a*factorial(a-1)  //aquí el llamado es nuevamente a la función factorial(a), hasta que a=0 o a=1
 Fin si
Fin

Variables
n  : valor que se ingresa para calcular su factorial
a  : toma el valor de n
factorial : función

Programa
#include<stdio.h>
int n,factorial(int a);
main(void)
{
printf("   INGRESE EL NÚMERO..   ");
scanf("%d",&n);
printf("%d",factorial(n)); // llamada a la función
}

int factorial(int a)
{
if(a==0 ||a==1) return 1;  //semilla 1
else return a*factorial(a-1);  //el llamado es nuevamente a la funcion factorial(a), hasta que a=0 o a=1.
}

EXPLICACIÓN: Mediante un ejemplo
                           Funciones y procedimientos

Ejercicio 45

Hacer un algoritmo para un programa que calcule el enésimo elemento de la serie FIBONACII. 1, 1, 2, 3, 5, 8,13,...

Algoritmo
Inicio
Declare n
Declare fibonacii(x)
Leer n
Imprimir n, fibonacii(n)
}

Funcion fibonacii(x)
Inicio
si x=0 ó x=1 entonces fibonacii 1  //semilla
sino fibonacii fibonacii(x-2)+fibonacii(x-1); //esta llamando nuevamente a la función fibonacii(x) hasta que x=0  o x=1.
Fin si
Fin

Variables
n  : enésimo elemento de la serie fibonacii
x  : toma valores de n
fibonacii : función

Programa
#include<stdio.h>
int n;
int fibonacii(int x);
main(void)
{
printf("   INGRESE LA POSICION DEL ELEMENTO ..   ");
scanf("%d",&n);
printf("FIBONACII DE %d es %d",n,fibonacii(n));
}

int fibonacii(int x)
{
if(x==0 || x==1)return 1;  //semilla
else return fibonacii(x-2)+fibonacii(x-1); //está llamando nuevamente a la función fibonacii(x) hasta que x=0  o x=1.
}

EXPLICACIÓN
Sea la función fibonacii f(4)

                                     Funciones y procedimientos
Ejercicio 46

Hacer un algoritmo que calcule el enésimo elemento de la serie: 4, 6, 10, 16, 26, 42,...

Algoritmo
Inicio
Declare n
Declare elemento(x)
Leer n
Imprimir n, elemento(n)
Fin

Función elemento(x)
Inicio
Si x=0 entonces elemento 4 fin si //semilla
Si x=1 entonces elemento 6 //semilla
Sino elemento elemento(x-2)+elemento(x-1) //recursividad
Fin si
Fin

Variables
n   : enésimo elemento de la serie
x   : toma valores de n
elemento  : función

Programa
#include<stdio.h>
int n;
int elemento(int x);
main(void)
{
printf("   INGRESE LA POSICIÓN DEL ELEMENTO ..   ");
scanf("%d",&n);
printf("ELEMENTO DE %d es %d",n,elemento(n));
}

int elemento(int x)
{
if(x==0)return 4; //semilla
if(x==1)return 6; //semilla
else return elemento(x-2)+elemento(x-1); //recursividad
}

Ejercicio 47

Hacer un algoritmo para un programa que calcule el enésimo elemento de la serie: 1, 1, 2, 4, 7, 13, 24, 44,...

Algoritmo
Inicio
Declare n
Declare elemento(x)
Leer n
Imprimir n, elemento(n)
Fin

Función elemento(x)
Inicio
Si x=0 entonces elemento 1 Fin si//semilla
Si x=1 entonces elemento 1  Fin si//semilla
Si x=2 entonces elemento 2 //semilla
Sino elemento elemento(x-3)+elemento(x-2)+elemento(x-1);
//recursividad
Fin

Variables
n   : enésimo elemento de la serie fibonacii
x   : toma valores de n
elemento  : función

Programa
#include<stdio.h>
int n;
int elemento(int x);
main(void)
{
printf("   INGRESE LA POSICIÓN DEL ELEMENTO ..   ");
scanf("%d",&n);
printf("ELEMENTO DE %d es %d",n,elemento(n));
}

int elemento(int x)
{
if(x==0)return 1; //semilla
if(x==1)return 1;  //semilla
if(x==2)return 2; //semilla
else return elemento(x-3)+elemento(x-2)+elemento(x-1); //recursividad
}

Capítulo anterior - bucles while III
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 12 opiniones. Opina sobre este curso.


Cursos similares a Algoritmos y lenguaje C


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]
5/5 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]
4/5 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]
5/5 711  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail