0% encontró este documento útil (0 votos)
24 vistas19 páginas

P12 Funciones Listo

El documento presenta una serie de ejercicios de programación en C, enfocados en el uso de funciones. Cada ejercicio incluye un código que aborda diferentes problemas, como la identificación de números positivos o negativos, conversiones de temperatura, ordenamiento de números, y cálculos matemáticos como factoriales y combinatorias. Se incluyen ejemplos prácticos y explicaciones sobre la implementación de cada función.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas19 páginas

P12 Funciones Listo

El documento presenta una serie de ejercicios de programación en C, enfocados en el uso de funciones. Cada ejercicio incluye un código que aborda diferentes problemas, como la identificación de números positivos o negativos, conversiones de temperatura, ordenamiento de números, y cálculos matemáticos como factoriales y combinatorias. Se incluyen ejemplos prácticos y explicaciones sobre la implementación de cada función.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

EQUIPO 13

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO

FACULTAD DE INGENIERÍA

DIVISION DE INGENIERÍA EN COMPUTACIÓN

FUNDAMENTOS DE PROGRAMACION
LABORATORIO

PRACTICA 12 “FUNCIONES”
GRUPO: 14
INTEGRANTES:
 DELGADO PADILLA ERIC
 GARCÍA RANGEL RICARDO GUILLERMO
 SOTO FLORES HECTOR

SEMESTRE: 2017-2

FECHA DE ENTREGA: 12/05/2017


[Link].

Ej.1

/*funciones 1*/

#include<stdio.h>
#define s scanf
#define p printf

int main()
{
int numero;
p("Este programa indica P:si el numero es positivo, \nN: si es negativo, o C: si es cero.");
p("\nDigite un numero:");
s("%d",&numero);
funcion_1(numero);
return 0;
}
void funcion_1(int numero){
if(numero<0)
p("\nN");
else
if(numero>0)
p("\nP");
else
p("\nC");
}

Ej. 2

2
/*funciones 2*/
#include<stdio.h>
#define s scanf
#define p printf
float funcion_2(float c);
int main()
{
float c,x;
p("indique la temperatura en grados celcius para convertirla a grados farenheit:");
s("%f",&c);
p("La conversion es:%.2f",funcion_2(c));

return 0;
}
float funcion_2(float c)
{
float x;
x=(9*c)/5 +32;
return x;
}

Ej. 3
/*funciones 3*/
#include<stdio.h>
#define s scanf
#define p printf
int main(){
int a,b,c;
p("Ingresa tres numeros enteros a,b,c respectivamente:\n");
s("\n%d \n%d \n%d",&a,&b,&c);

3
ordena3(a,b,c);
return 0;

}
int ordena3(int a,int b,int c)
{
int aux_1=0,aux_2=0,aux_3=0;
if(a>c)
{
aux_3=a;
a=c;
c=aux_3;
if(a>b)
{
aux_2=a;
a=b;
b=aux_2;
p("Valores a:%d,b:%d y c:%d",a,b,c);
}
else
p("Valores a:%d,b:%d y c:%d",a,b,c);

}
else
{
if(a>b)
{
aux_2=a;
a=b;
b=aux_2;
p("Valores a:%d,b:%d y c:%d",a,b,c);
}
else
p("Valores a:%d,b:%d y c:%d",a,b,c);
}
}

4
Ej. 4
/*Funciones 4*/
/*4.- Implemente funciones que nos permitan calcular:*/
#include<stdio.h>
#include <math.h>
#define p printf
#define s scanf
int factorial(int);
void potencia(int,int);
int i; main() { int x,m,n,opcion,temp,e,factor; float combinatoria;
while(opcion!=4)
{ p("\n\n\t Indique la opcion que desee
calcular:\n\n\t1)Potencia\n\n\t2)Factorial\n\n\t3)Combinatoria\n\n\t4)Salir\n\n\t");
s("%d",&opcion);
switch(opcion)
{
case 1: p("\n\n\tIndique el valor de x:\n\n\t");
s("%d",&x); p("\n\n\tIngrese el valor del exponente: n\n\n\t");
s("%d",&n); potencia(x,n); system("cls");
break;
case 2: p("\n\n\tIndique un numero para calcular su factorial:\n\n\t");
s("%d",&m); factor=factorial(m); p("\n\n\tEl factorial de %d es %d",m,factor);
getch(); system("cls"); factorial(m);
break;
case 3: p("\n\n\t Indique dos numero para calcular su combinatoria");
p("\n\n\tIndique el numero mayor:\n\n\t");
s("%d",&m);
p("\n\n\tIndique el numero menor:\n\n\t");

5
s("%d",&n);
if(n>m){
temp=m;
m=n;
n=temp;
}
combinatoria=(factorial(m)/factorial(n)+factorial(m-n));
p("\n\n\tLa combinatoria de %d con %d es %f",m,n,combinatoria);
break;
}
}
system("cls"); p("\n\n Hasta luego");
} int factorial (int num)
{ int fact=1,i; for (i=1;i<=num;i++)
fact*=i; return (fact); }
void potencia(int x,int n) { int e; e=pow(x,n);
p("\n\tEl numero %d elevado a %d potencia es %d",x,n,e);
getch();

Ej.5
/* Escriba una función que, dados dos números enteros, nos diga si cualquiera de ellos divide o no
al otro.*/
#include<stdio.h>
#define p printf
#define s scanf
int n1,n2;
void divide () { p("\n\n\t Ingres dos números:\n\t");
s("%d %d",&n1,&n2);
system("cls"); if ((n1%n2)==0 || (n2%n1)==0)
p("\n\n\tCualquiera de los numeros divide al otro");

6
else p("\n\n\tCualquiera de los numeros no divide al otro"); }
main() {
divide();
}

Ej. 6
/*6.- Dos números amigos son dos enteros positivos a y b tales que a es la suma de los divisores
Propios de b y b es la suma de los divisores propios de a.
(La unidad se considera divisor propio, pero no lo es el mismo número).
Un ejemplo de números amigos es el par (220, 284), ya que:
* Los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que suman 284 *
Los divisores propios de 284 son 1, 2, 4, 71 y 142, que suman 220*/
#include <stdio.h>
#include <stdlib.h>
#define p printf
#define s scanf
int divisores(int num){ int suma=0,i;
for(i=1;i<num;i++){
if(num%i==0){ suma+=i; } }
return(suma);
}
int main()
{ int num1,num2,div;
p("\n\tIngrese dos numero para evaluar que son amigos:\n");
s("%d %d",&num1,&num2);
if(divisores(num1)==num2 && divisores(num2)==num1)
p("Los numeros si son amigos");
else p("No son amigos");
}

7
Ej. 7
/*7.- Escribe un programa en C que permita calcular la probabilidad de que
aparezcan las figuras al escoger tres cartas de entre las de un palo de
la baraja. Utiliza la fórmula de combinación:*/
#include<stdio.h>
#define p printf
#define s scanf
float factorial (int num);
main()
{
float n=13,m=3,a,b,combinatoria;
p("\n\n\tEl programa indica el porcentaje de probabilidad de que aparezcan las figuras al
escoger \n\n\ttres cartas de entre las de un palo de la baraja inglesa.\n\n\t");
a=factorial(n);
b=factorial(n-m);
combinatoria=a/b;
p("\n\n\tLa probabilidad de obtener tres cartas de entre las 13 de un\n\n\tpalo de la baraja es
%.2f",combinatoria);
}
float factorial (int num)
{
float fact=1;
int i;
for (i=1;i<=num;i++)
fact*=i; return (fact);
}

8
Ej. 8
#include<stdio.h>
#include<stdlib.h>
#define p printf
#define s scanf
#include<string.h>
char cadena[20],caract;
int acu=0,i,l;
void caden () {
p("\n\n\tIngrese la cadena de caracteres\n\t");
s("%s",&cadena);
p("\n\n\tTeclee el caracter a buscar\n\t");
fflush(stdin);
s("%c",&caract);
l=strlen(cadena);
for (i=0;i<l;i++)
if (cadena[i]==caract) acu++; system("cls");
p("\n\n\tEl numeros de veces que se repite el caracter es: %d\n\t",acu);
}
main()
{
caden();
}

9
Ejercicio no 9.
/*9.- Realiza un programa que lea una cadena de caracteres por teclado y
escriba por pantalla el número de apariciones en la cadena de cada
una de las vocales haciendo uso de la función definida.*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define p printf
#define s scanf
int repite(char cadena[], char caracter)
{ int longitud,cont=0,i;
longitud = strlen(cadena);
for(i=0;i<longitud;i++)
if(cadena[i]==caracter)
cont++; return(cont); }
main(){
int n;
char cadena[25];
char caracter='a';
p("Ingresa una cadena de carcateres que contenga una frase \n");
fgets(cadena,25,stdin);
p("La letra %c se repite %d veces",caracter,repite(cadena,caracter));
}

10
Ejercicio no 10.
/*10.- Escribir un programa que pida los 3 lados de un triángulo y
a continuación muestre los siguientes datos: 1)Cuánto vale la hipotenusa.
2)Cuánto vale el cateto mayor y cuanto el cateto menor. 3)Si el triángulo
es equilátero, isósceles o escaleno.*/

#include<stdio.h>
#include<math.h>
#define p printf
#define s scanf
float hipotenusa(int a, int b)
{ float c; int d; d=(a*a)+(b*b); c=pow(d,0.5);
return c; }
void cateto (int a, int b)
{ if(a>b) { p("\n\n\tEl cateto mayor es: %d",a);
p("\n\n\El cateto menor es: %d",b);
} else
if(b>a)
{ p("\n\n\tEl cateto mayor es: %d",b);
p("\n\n\tEl cateto menor es: %d",a);
} else if(a==b)
p("\n\n\tLos catetos son iguales");
}
void tipo(int a, int b, float c)
{ if(a==b&&b==c)
p("\n\n\tEl triangulo es equilatero");
else
if(a==b&&a!=c)
p("\n\n\tEl triangulo es isosceles");

11
else
if(a!=b&&a!=c&&b!=c)
p("\n\n\tEl triangulo es escaleno");

}
float hipotenusa(int, int);
void cateto (int, int);
void tipo(int, int, float);
main() { int a,b;
float h;
p("\n\n\tIngrese el valor del primer cateto:\n\n\t");
s("%d",&a); p("\n\n\tIngrese el valor del segundo cateto:\n\n\t");
s("%d",&b); h=hipotenusa(a,b); p("\n\n\tEl valor de la hipotenusa es: %.2f",h);
cateto(a,b); tipo(a,b,h);
}

Ej. 11
#include<stdio.h>
#include<stdlib.h>
#define p printf
#define s scanf
#include<math.h>
void ecuacion ()
{ float ecu1,ecu2,bl;
int a,b,c; p("\n\n\t Ingrese el valor de los coeficientes a, b, c de la ecuacion,
respectivamente\n\t");
s("%d %d %d",&a,&b,&c);
system("cls");
bl=(pow(b,2)-4*a*c)*1.0;
if (bl<0) p("\n\n\tLa ecuacion no se puede resolver");

12
else { ecu1=(-b+sqrt(bl))/2; ecu2=(-b-sqrt(bl))/2;
p("\n\n\tLa solucion de la acuacion es: %.2f, %.2f",ecu1,ecu2); }
}
main() {
ecuacion();
}

Ej. 12
/*12.- Realizar un programa que pida dos números enteros por teclado
y muestre por pantalla el siguiente menú: El usuario deberá elegir
una opción, introducir dos valores y el programa deberá mostrar el
resultado por pantalla. Todas las opciones (1 a 6) deben realizarse
utilizando funciones.*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define s scanf
#define p printf
void suma(float num1,float num2)
{
p("La suma de %.2f y %.2f es %.2f",num1,num2,num1+num2);
}
void resta(float num1,float num2)
{
p("La diferencia entre %.2f y %.2f es %.2f",num1,num2,num1-num2);
}
void multiplicacion(float num1,float num2)
{

13
p("El producto entre %.2f y %.2f es %.2f",num1,num2,num1*num2);
}
void division(float num1,float num2)
{ p("El cociente de %.2f entre %.2f es %.2f",num1,num2,num1/num2);
}
void potencia(float base,float logaritmo)
{
p("%f elevado a la %f es %f",base,logaritmo,pow(base,logaritmo));
}
void factorial(int num)
{ int i,fact=1; for(i=1;i<=num;i++)
fact*=i; p("El factorial de %d es %d",num,fact);
}
main(){ int opcion=0,num;
float num1,num2;
while(opcion!=7)
{ p("\n\t\t\tMenu\n\n\t1.
Sumar\n\[Link]\n\[Link]\n\[Link]\n\[Link]\n\[Link]\n\[Link]");
p("\nIngrese un numero de acuerdo a la opcion que desea realizar:\n");
s("%d",&opcion);
system("cls");
switch(opcion){
case 1: p("\n\t\t\tSuma\nIntrocuzca dos numeros a sumar\n");
s("%f %f",&num1,&num2);
suma(num1,num2);
break;
case 2:
p("\n\t\t\t****Resta****\nIntrocuzca dos numeros a restar\n");
s("%f %f",&num1,&num2);
resta(num1,num2);
break;
case 3:
p("\n\t\t\t****Multiplicacion****\nIntrocuzca dos numeros a multiplicar\n");
s("%f %f",&num1,&num2); multiplicacion(num1,num2);
break;
case 4: p("\n\t\t\t****Division****\nIntroduzca dos numeros a dividir\n");
s("%f %f",&num1,&num2); division(num1,num2);
break;
case 5: p("\n\t\t\t****Potenciacion****\nIntrocuzca la base\n");
s("%f",&num1); p("Introduzca el exponente\n");
s("%f",&num2); potencia(num1,num2); break;
case 6: p("\n\t\t\t****Factorial****\nIntrocuzca el numero\n");
s("%d",&num); factorial(num);
break; } p("\n\nPresione enter para continuar");
getchar();
getchar();
system("clear");
}

14
}

Ej. 13
/*13.- Escribir una función que lea un número entero y un número real
por teclado, en función del número entero se aplicará una de las funciones
de conversión anteriores, tal y como muestra la siguiente tabla:*/
#include<stdio.h>
#include<stdlib.h>
#define p printf
#define s scanf
void pies(float);
void pies2(float);
void pulgada (float);
void pulgada2(float);
void combinacion(float);
void combinacion2(float);
void menu (int, float);
main()
{ int opcion;
float real;
p("\n\n\tElija el numero de la conversion que desee realizar\n\n\[Link] a
pulgadas\n\n\[Link] a pies\n\n\[Link] a centimetros\n\n\[Link] a
pies\n\n\[Link] a centimetros.\n\n\[Link] a pulgadas.");
p("\n\n\tEn caso de querer salir presione 6\n\n\t");
s("%d",&opcion);
s("%f",&real);
menu(opcion, real);
system("cls");
}

15
void pulgada(float c)
{
float pulgada=0.393701,conver1; conver1=c*pulgada;
p("\n\n\t%.2f centimetros a pulgadas es:%f\n\n\t",c,conver1);
system("pause");
system("cls");
}
void pulgada2(float pul)
{
float pulgada=0.393701,conver3; conver3=pul/pulgada;
p("\n\n\t%.2f pulgadas a centimetros es:%f\n\n\t",pul,conver3);
system("pause"); system("cls");
} void pies(float c)
{ float pies=0.0328084,conver2; conver2=c*pies;
p("\n\n\t%.2f centimetros a pies es:%f\n\n\t",c,conver2);
system("pause");
system("cls");
}
void pies2(float num)
{ float pies=0.0328084,conver4;
conver4=num/pies;
p("\n\n\t%.2f pies a centimetros es:%f\n\n\t",num,conver4);
system("pause");
system("cls");
}
void combinacion(float pul)
{
int pulgada=12;
float conver5;
conver5=pul/pulgada;
p("\n\n\t%.2f pulgadas a pies es:%f\n\n\t",pul,conver5);
system("pause"); system("cls");
}
void combinacion2(float pie)
{ int pulgada=12; float conver6; conver6=pie*pulgada;
p("\n\n\t%.2f pies a pulgadas es:%f\n\n\t",pie,conver6);
system("pause"); system("cls");
}
void menu (int opcion,float real)
{
switch (opcion)
{
case 0: pulgada(real);
break;
case 1: pies(real);
break;
case 2: pulgada2(real);
break;

16
case 3: combinacion(real);
break;
case 4: pies2(real);
break;
case 5: combinacion2(real);
break; } p("\n\n\tPor fin, no crei que terminaria");
}

Ej. 14
#include<stdio.h>
#include<windows.h>
#define p printf
#define s scanf
void suma ()
{
int n,i,acu=0,k;
p("\n\n\tIngres un numero para inidicar la suma de sus divisores:\n");
s("%d",&n);
for (i=1;i<n;i++)
if (n%i==0) acu+=i;
system("cls");
p("\n\n\tDesea incluir en la suma el numero tecleado?\n\t1.-Si\n\t0.- No\n");
s("%d",&k);
system("cls");
if(k==1)
{
acu+=n;
p("\n\n\tLa suma de los divisores incluyendo el numero tecleado es:\n%d",acu);
}
else

17
p("\n\n\tLa suma de los divisores sin incluir el numero tecleado es:\n%d",acu);
}
main()
{
suma();
Sleep(1500);
system("cls");
p("\n\n\tFin del programa");
}

15.- Escribir una función que tome un carácter como parámetro


de entrada y devuelva su tipo que podrá ser uno de los siguientes:
(1)letra mayúscula de la ‘A’ a la ‘Z’, (2) letra minúscula de la
‘a’ a la ‘z’ ó (3)dígito del ‘0’ al ‘9’.*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define p printf
#define s scanf
int tipo(int caracter)
{
int tipo;
if(caracter>='A'&&caracter<='Z')
tipo=1; if(caracter>='a'&&caracter<='z')
tipo=2; if(caracter>='0'&&caracter<='9')
tipo=3;
return(tipo);
} main()
{ int type; char caracter;
while(1)

18
{ p("\n\t\t\tTipos de caracteres\n\t1)De la \"A\" a la \"Z\"\n\t2)De la \"a\" a la \"z\"\n\t3)Del 0 al
9");
p("\nDeme un caracter\n>");
s("%c",&caracter); type = tipo(caracter);
p("\nEl tipo de caracter es %d\n",type);
p("\nPresione enter para finalizar");
getchar();
getchar();
system("cls");
}
}

19

También podría gustarte