Ir a Emagister Encuentra tu formación ideal
¡Mailxmail y emagister se unen para que tengas toda la formación a tu alcance!
12.185 cursos gratis
8.202.589 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Algoritmos y lenguaje C

Autor: Abraham Sopla Maslucán
Curso:
9,21/10 (15 opiniones) |36357 alumnos|Fecha publicación: 13/01/2006
Envía un mensaje al autor

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

Nuestras novedades en tu e-mail

Escribe tu e-mail:

Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Cursos similares a Algoritmos y lenguaje C


  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. Algoritmos en QBASIC. Manual
Este manual de QBASIC es una colección linkografica y bibliográfica sobre el uso... [26/10/09]
12.730  
2. Introducción al lenguaje Pascal
Pascal es un lenguaje de alto nivel y de propósito general (es aplicable a un gran... [01/03/06]
40.127  
3. Introducción al lenguaje HTML
¿Te interesa entrar al mundo de la programación web ? ¡Entonces este curso de... [14/04/11]
739
Curso con video

El blog de mailxmail|¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail


¿Te gustaría visitar más cursos gratis de Programación?