Nothing Special   »   [go: up one dir, main page]

Informe Practica 4 Con Enunciados

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

Práctica 04: Funciones

iterativas y recursivas
Programa 1

Código:

/*

* Programa 1 Practica 4

* Calcular la altura de una persona

*/

#include <stdio.h>

double CalculaAlt (double long_tibia, char sexo);

int main(int argc, char **argv)

double l_tibia;

char genero;

double alt;

char repetir;

do{

do{
printf("Introduce la longitud de la tibia (cm): ");

scanf("%lf", &l_tibia);

if(l_tibia<0){

printf("Longitud no valida\n");

}while(l_tibia<0);

do{

printf("Intoduce el genero de la persona (Hombre = H y Mujer = M): ");

scanf(" %c", &genero);

if (genero!='H' && genero!='M'){

printf("Genero no valido\n");

}while(genero!='H' && genero!='M');

alt = CalculaAlt(l_tibia, genero);

printf("La altura sera %.3f cm \n", alt);

do{

printf("Desea repetir? (s/n): ");

scanf(" %c", &repetir);

if (repetir!='s' && repetir!='n'){

printf("Opcion incorrecta");

}while (repetir!='s' && repetir!='n');

}while(repetir=='s');
return 0;

double CalculaAlt (double long_tibia, char sexo)

double altura;

if(sexo=='H'){

altura = 69.089 + 2.238*long_tibia;

}else{

altura = 61.412 + 2.317*long_tibia;

return altura;

}
Programa 2

Código:
/*

* Programa 2 Practica 4

* Función MiPotencia()

*/

#include <stdio.h>

float MiPotencia(float base, int e);

int main(int argc, char **argv)

float b;

int e;

float res;

printf("Introduce la base: ");

scanf("%f", &b);

do{

printf("Introduce el exponente: ");

scanf("%d", &e);
if(e<0){

printf("Exponente no valido\n");

}while(e<0);

res = MiPotencia(b,e);

printf("%.2f elevado a %d es %.0f\n", b, e, res);

return 0;

float MiPotencia(float base, int e)

float resultado;

int i;

i=1;

resultado = 1;

for(i=1; i<=e; i++){

resultado= resultado*base;

return resultado;

}
Programa 3

Código:
/*

* Programa 3 Practica 4

* Función Serie()

*/

#include <stdio.h>

float MiPotencia (float base, int e);

float Serie (float x, int nt);

int main(int argc, char **argv)

int n_ter;

float xx;

float sol;
do{

printf("Introduce el valor de x (positivo): ");

scanf("%f", &xx);

if(xx<0){

printf("Valor de x no valido\n");

}while(xx<0);

do{

printf("Introduce el numero de terminos: ");

scanf("%d", &n_ter);

if(n_ter<0){

printf("Numero de terminos no valido\n");

}while(n_ter<0);

sol= Serie (xx,n_ter);

printf("La suma de %.0d terminos de la serie cuando x=%.2f es %.2f\n", n_ter, xx, sol);

return 0;

float MiPotencia (float base, int e)

float resultado;

int i;

i=1;

resultado = 1;
for(i=1; i<=e; i++){

resultado = resultado*base;

return resultado;

float Serie (float x, int nt)

float s;

float t;

int i;

i=0;

s=0;

for(i=0;i<nt;i++){

t=MiPotencia(-1,i+2)*MiPotencia(x,i+1);

s=s+t;

return s;

}
Programa 4

Código:
/*

* Programa 4 Practica 4

* Función Void

*/

#include <stdio.h>

void DibujarTriangulo(int altura);

int main(int argc, char **argv)

int alt;
do{

printf("Introduce la altura del triangulo: ");

scanf("%d", &alt);

if(alt<0){

printf("Altura incorrecta\n");

}while(alt<0);

DibujarTriangulo(alt);

return 0;

void DibujarTriangulo(int altura)

int f;

int i;

f=1;

for(f=1; f<=altura; f++){

i=altura;

do{

printf("*");

i--;

}while(f<=i);

printf("\n");

}
Programa 5 (Opcional)
Código:
/*

* Programa 5 Practica 4

* Funciones trigonométricas (opcional)

*/

#include <stdio.h>

#include <math.h>

#define PI 3.14159265359

int Factorial (int num);

float Seno (float angulo, int nt);

float Coseno (float angulo, int nt);

float Tangente (float angulo, int nt);

int main(int argc, char **argv)

float ang;

int numter;

int cerrar;

int opc;

float res;

do{

printf("Introduce un angulo: ");

scanf("%f", &ang);

if(ang<0){

printf("Angulo incorrecto\n");
}

}while(ang<0);

ang=ang*PI*2/360;

do{

printf("Introduce el numero de terminos (precision): ");

scanf("%d", &numter);

if(numter<1){

printf("Numero de terminos invalido\n");

}while(numter<1);

cerrar=0;

do{

printf("MENU\n1)Calcular el seno\n2)Calcular el coseno\n3)Calcular la tangente\n4)Salir\nElige


una opcion: ");

scanf("%d", &opc);

switch (opc){

case 1:

res= Seno(ang,numter);

printf("El seno del angulo introducido es %f\n", res);

break;

case 2:

res=Coseno(ang,numter);

printf("El coseno del angulo introducido es %f\n", res);

break;

case 3:

res=Tangente(ang,numter);
printf("La tangente del angulo introducido es %f\n", res);

break;

case 4:

cerrar=1;

break;

default:

printf("Opcion incorrecta\n");

break;

}while(cerrar!=1);

return 0;

int Factorial (int num)

int i;

int s;

i=1;

s=1;

for(i=1; i<=num; i++){

s=s*i;

return s;

float Seno (float angulo, int nt)

{
int i;

float t;

float s;

i=0;

s=0;

for(i=0; i<nt; i++){

t=(pow(-1, i)*pow(angulo, i*2+1))/Factorial(i*2+1);

s=s+t;

return s;

float Coseno (float angulo, int nt)

int i;

float t;

float s;

i=1;

s=1;

for(i=1; i<nt; i++){

t=(pow(-1, i)*pow(angulo, i*2))/Factorial(i*2);

s=s+t;

return s;

}
float Tangente (float angulo, int nt)

float s;

s=Seno(angulo, nt)/Coseno(angulo, nt);

return s;

}
Programa 6 (Opcional)

Código:
Forma 1 (Recursiva):

/*

* Programa 6 Practica 4

* Funcion recursiva y funcion iterativa (opcional)

* Forma recursiva

*/

#include <stdio.h>
int Suma_cifras(int n);

int main(int argc, char **argv)

int num;

int res;

do{

printf("Introduce un numero entero positivo: ");

scanf("%d", &num);

if(num<0){

printf("Numero no valido\n");

}while(num<0);

res=Suma_cifras(num);

printf("La suma de las cifras es %d\n", res);

return 0;

int Suma_cifras(int n)

if(n!=0){

return n%10 + Suma_cifras((n-n%10)/10);

}else{

return n;

}
Forma 2 (Iterativa):

/*

* Programa 6 Practica 4

* Funcion recursiva y funcion iterativa (opcional)

* Forma iterativa

*/

#include <stdio.h>

int Suma_cifras(int n);

int main(int argc, char **argv)

int num;

int res;

do{

printf("Introduce un numero entero positivo: ");

scanf("%d", &num);

if(num<0){

printf("Numero no valido\n");

}while(num<0);
res=Suma_cifras(num);

printf("La suma de las cifras es %d\n", res);

return 0;

int Suma_cifras(int n)

int cifra;

int sum;

sum=0;

do{

cifra=n%10;

sum=sum+cifra;

n=(n-cifra)/10;

}while(n!=0);

return sum;

También podría gustarte