65
CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA, ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL Asignatura: Fundamentos de Programación Semestre: Primero Contenido Sintético: I. Introducción a la programación II. Fundamentos de Programación Estructurada III. Estructuras de Flujo Programático IV. Estructuras de Datos V. Aplicaciones M. en C. Eneyda Clemente Castellanos Profesora de la Academia de Computación

M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

Embed Size (px)

Citation preview

Page 1: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

Asignatura: Fundamentos de Programación

Semestre: Primero

Contenido Sintético:

I. Introducción a la programación

II. Fundamentos de Programación Estructurada

III. Estructuras de Flujo Programático

IV. Estructuras de Datos

V. Aplicaciones

M. en C. Eneyda Clemente Castellanos

Profesora de la Academia de Computación

Page 2: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

Introducción a la programación

1. ¿Cuál es la definición de sistema operativo?

Software que se encarga de crear un vínculo entre los recursos físicos

(hardware), el usuario y las aplicaciones

2. ¿Cuáles son las principales funciones del sistema operativo?

Administrar los procesos y uso del procesador

Gestión de la memoria RAM o virtual

Gestión de IO

Administración de autorizaciones

Gestión de información de hardware

Gestión de archivos

3. ¿Cómo se segmentan los sistemas operativos?

Computadoras personales

Dispositivos móviles

Sistemas embebidos

Servidores

Sistemas Distribuidos

4. ¿Cómo se estructuran los sistemas operativos?

Modular o Monolítico

De anillo o Capas

Microkernel

Cliente/Servidor

5. ¿Describe que es un sistema operativo Modular o Monolítico?

Se dice que estos no tienen una estructura definida, es una colección de

procesos que se llaman entre sí

6. ¿Describe que es un sistema operativo de Anillo o Capas?

Este organiza el sistema en capas de software con una Jerarquía

definida

Page 3: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

7. ¿Describe que es un sistema operativo Microkernel?

El S. O. Microkernel divide al sistema en funciones, que son controladas

por el núcleo y la interfaz es controlada por el usuario

8. ¿Describe que es un sistema operativo Cliente/Servidor?

Un proceso cliente envía la solicitud a un proceso servidor, el cual

regresa la respuesta, el núcleo controla la comunicación entre ambos

9. ¿Cuál es la diferencia entre los sistemas operativos de antes

y los de hoy?

Actualmente los sistemas operativos son enfocados en adaptarlos a las

nuevas tecnologías y hacerlas de un manejo más fácil e intuitivo, como

lo es una implementación de la red o internet a un nivel completo y

profundo del sistema, enfocados a movilidad y portabilidad, implementan

mejoras de seguridad, de ejecución y virtualización, y su arquitectura es

de 64 bits, hacen que el sistema sea cada vez más amigable y

sencillo de manejar por el usuario final

10. Define que es un lenguaje de programación:

Es un conjunto de símbolos, reglas sintácticas (forma de escribir) y

semánticas (sentido de aquello que se escribe) junto con sus elementos

y las expresiones. Y estos surgen por la necesidad de automatizar

tareas que realiza el usuario de forma repetitiva

11. ¿Cómo se dividen los lenguajes de Programación?

Alto nivel

Medio nivel

Bajo nivel

12. ¿Cuáles son las características de los lenguajes de

programación de Alto Nivel?

Page 4: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

El lenguaje de alto nivel (high-level language) es aquel que se aproxima

más al lenguaje natural humano que al lenguaje binario de las

computadoras

13. ¿Cuáles son las características de los lenguajes de

programación de Medio Nivel?

Estos pueden acceder a los registros del sistema, trabajar con

direcciones de memoria, algunas de las características de lenguajes de

bajo nivel y a la vez realizar operaciones de alto nivel

14. ¿Cuáles son las características de los lenguajes de

programación de Bajo Nivel?

Este proporciona poca o ninguna abstracción del microprocesador de

una computadora. Por lo tanto es fácil de trasladar a lenguaje maquina

15. ¿Qué es un Compilador?

El programa que traduce, el programa fuente a programa objeto. El

compilador solo efectúa la traducción, no ejecuta el programa

16. ¿Qué es un Intérprete?

Un intérprete es un programa que procesa los programas escritos en un

lenguaje de alto nivel. Es decir traduce cada instrucción o sentencia del

programa escrito en un lenguaje “L” a código maquina e inmediatamente

se ejecuta.

17. ¿Cuáles son los tipos de datos básicos en lenguaje C?

a. char

b. int

c. float

d. double

18. ¿Cómo se definen las constantes en lenguaje C?

# define pi 3.1516

# define verdad 1

const int a=3;

Page 5: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

19. ¿Cuáles son los operadores aritméticos?

+,-,*,\,%

20. ¿Cuáles con los operadores de asignación en lenguaje C?

+=, *=, %=, -=

21. ¿Cuáles son los operadores relacionales en lenguaje C?

>, <, >=, =<, ==, !=

22. ¿Cuáles son los operadores lógicos en Lenguaje C?

&&, ||

Ciclos

1.- Imprimir la siguiente sucesión

y calcula el resultado

para un valor #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,a; float x,suma=1,fact=1; printf("\nCuantos terminos de la serie quieres imprimir? "); scanf("%d",&n); do { printf("\nValor de x en el intervalo (0,1) "); scanf("%f",&x); }while(x<=-0.1 || x>=1.1); printf("\n1"); for(a=1;a<n;a++) { printf("+(x^%d/%d!)",a,a); fact*=a; suma+=pow(x,a)/fact; }

Page 6: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("\n\nEl resultado de la sumatoria es: %.3f",suma); system("pause=>NULL"); return 0; }

2.- Imprimir la siguiente sucesión

y calcula el resultado

para valores de #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,a; float x,y,suma,fact=1; printf("\nCuantos terminos de la serie quieres imprimir? "); scanf("%d",&n); do { printf("\nValor de A en el intervalo (0,1) "); scanf("%f",&x); }while(x<=-0.1 || x>=1.1); do { printf("\nValor de B en el intervalo (0,1) "); scanf("%f",&y); }while(y<=-0.1 || y>=1.1); printf("\n(1/A)"); suma=1/x; for(a=1;a<n;a++) { printf("+(1/(A+%dB))",a); suma+=1/(x+(a*y)); } printf("\n\nEl resultado de la sumatoria es: %.3f",suma); system("pause=>NULL"); return 0;

Page 7: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

}

3.- Imprimir la sucesión geométrica

para “n” términos.

#include<stdio.h> #include<stdlib.h> #include<math.h> int main() { float n,a,b=5; printf("\nCuantos terminos de la serie quieres imprimir? "); scanf("%f",&n); for(a=1;a<=n;a++) { printf("(%.0f/%.0f), ",pow(a+2,2),b); b+=2; } system("pause=>NULL"); return 0; } 4.- Imprimir la sucesión geométrica para “n” términos. #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,a,b=2; printf("\nCuantos terminos de la serie quieres imprimir? "); scanf("%d",&n); for(a=1;a<=n;a++) {

Page 8: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

if(a%2==0) { printf("%d, ",b); } else { printf("-%d, ",b); } b+=2; } system("pause=>NULL"); return 0; }

5.- Imprimir la sucesión

para “n” términos.

#include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,a,b=2; printf("\nCuantos terminos de la serie quieres imprimir? "); scanf("%d",&n); for(a=1;a<=n;a++) { printf("(%d^%d/%d^%d), ",a,a+2,a+2,a); } system("pause=>NULL"); return 0; } 6.- Imprimir la sucesión 4, 8, 10, 20, 22, 44,… para “n” términos. #include<stdio.h> #include<stdlib.h>

Page 9: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

#include<math.h> int main() { int n,a,b=4; printf("\nCuantos terminos de la serie quieres imprimir? "); scanf("%d",&n); for(a=1;a<=n;a++) { if(a%2==0) { printf("%d, ",b); b+=2; } else { printf("%d, ",b); b*=2; } } system("pause=>NULL"); return 0; } 7.- Calcular el valor aproximado de la constante PI a través del cálculo de “n” términos de la

serie #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int x,n; float suma=0; printf("\nPrograma que calcula el valor aproximado de PI"); printf("\nCuantos terminos de la serie quieres calcular? "); scanf("%d",&n); for(x=0;x<n;x++)

Page 10: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

suma+=(2*pow(-1.0,x)*pow(3.0,0.5-x))/(2*x+1); printf("\nEl valor aproximado de PI: %f",suma); system("pause=>NULL"); return 0; } 8.- Realizar un programa en el cual se le solicite un intervalo al usuario, generar un número aleatorio dentro de ese intervalo y el usuario deberá adivinar el número generado. El usuario tendrá como límite 5 intentos, con cada error el programa deberá imprimir el intervalo en el que se encuentra el número, es decir, se deberán actualizar el límite superior o el límite inferior, el programase repetirá tantas veces como quiera el usuario, al finalizar mostrará cuantas veces ganó y cuantas veces perdió. #include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h> int main() { srand(time(NULL)); int n,a,b,w=0,l=0,num,ns; char op; do { system("cls"); printf("\nLimite izquierdo: "); scanf("%d",&a); printf("\nLimite derecho: "); scanf("%d",&b); if(b<a) { n=b; b=a; a=n; } n=0; num=a+rand()%(b-a+1); while(n<5) { printf("\nAdivina el numero secreto: "); scanf("%d",&ns); if(ns==num)

Page 11: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

{ printf("\n¡FELICIDADES! adivinaste el numero"); printf("\ny ganaste el juego"); w++; break; } else { if(ns<num) { a=ns; } else { b=ns; } printf("\n¡PERDISTE!, el numero esta en (%d,%d)",a,b); } n++; } if(n==5) { l++; printf("\n¡PERDISTE! el juego"); } fflush(stdin); printf("\nOtra repeticion: "); scanf("%c",&op); fflush(stdin); }while(op!='n'); printf("\nDe %d juegos, ganaste %d y perdiste %d",w+l,w,l); system("pause=>NULL"); return 0; } 9.- Realizar un programa que realice una división entera por restas sucesivas #include<stdio.h> #include<stdlib.h> int main() { int a,b,c=0,d;

Page 12: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("\nIntroduce el valor del numerador: "); scanf("%d",&a); printf("\nIntroduce el valor del denominador: "); scanf("%d",&b); if(a<b) { d=a; a=b; b=d; } d=a; while(a>0) { a-=b; c++; } printf("\nResultado de (%d/%d)=%d",d,b,c); system("pause=>NULL"); return 0; } 10.- Realizar un programa que realice una multiplicación entera por sumas sucesivas. #include<stdio.h> #include<stdlib.h> int main() { int a,b,c=0,d=0; printf("\nIntroduce el valor del operador1: "); scanf("%d",&a); printf("\nIntroduce el valor del operador2: "); scanf("%d",&b); while(c<a) { d+=b; c++; } printf("\nResultado de %d*%d=%d",a,b,d); system("pause=>NULL");

Page 13: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

return 0; } 11.- Imprimir el código ASCII, su equivalente en decimal y hexadecimal dentro de un recuadro. #include<stdio.h> #include<stdlib.h> int main() { int x; printf("%c%c%c%c%c%c%c%c%c",201,205,205,205,205,205,205,205,203); printf("%c%c%c%c%c%c%c%c%c%c",205,205,205,205,205,205,205,205,205,203); printf("%c%c%c%c%c%c%c%c%c%c",205,205,205,205,205,205,205,205,205,187); printf("\n%c letra %c decimal %c hexadec %c",186,186,186,186); for(x=0;x<=255;x++) printf("\n%c %c %c %d %c %x %c",186,x,186,x,186,x,186); printf("\n%c%c%c%c%c%c%c%c%c",200,205,205,205,205,205,205,205,202); printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c",205,205,205,205,205,205,205,205,205,205,205,205,205,202); printf("%c%c%c%c%c%c%c%c%c%c%c%c%c",205,205,205,205,205,205,205,205,205,205,205,205,188); system("pause=>NULL"); return 0; }

Arreglos

1.- En un arreglo almacenar los “m” términos de la sucesión de Padovan con la siguiente relación de recurrencia con las siguientes condiciones iniciales: #include<stdio.h> #include<stdlib.h>

Page 14: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

int main() { int n,x; printf("\nCuantos terminos de la serie de Padovan quieres calcular: "); scanf("%d",&n); int padovan[n]; padovan[0]=1; padovan[1]=1; padovan[2]=1; padovan[3]=2; padovan[4]=2; for(x=5;x<n;x++) padovan[x]=padovan[x-1]+padovan[x-5]; for(x=0;x<n;x++) printf("\nP(%d)=%d",x,padovan[x]); system("pause=>NULL"); return 0; }

2.- Haciendo uso de arreglos (en el arreglo almacenar los coeficientes de los términos del polinomio), evaluar un polinomio de grado “n” en un intervalo (a,b) y con un incremento de “i”. n= 4 (0,1) i=0.2

p(0) = -10

p(0.2) = -8.128

p(0.4) = -6.24

p(0.6) = -4.384

p(0.8) = -2.416

P(1.0) = 0

#include<stdio.h> #include<stdlib.h> #include<math.h>

Page 15: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

int main() { int n,m; float x,y,a,b,suma=0,inc; printf("\nGrado del polinomio: "); scanf("%d",&n); printf("\nLimite izquierdo: "); scanf("%f",&a); printf("\nlimite derecho: "); scanf("%f",&b); printf("\nincremento: "); scanf("%f",&inc); if(b<a) { x=b; b=a; a=x; } float polinomio[n+1]; m=n; for(x=n;x>=0;x--) { printf("\nIngrese coeficiente grado %.0f: ",x); scanf("%f",&polinomio[m]); m--; } for(y=a;y<=b;y+=inc) { suma=polinomio[0]; m=n; for(x=n;x>1;x--) { suma+=pow(y,x)*polinomio[m]; printf("\n%0.2f %f",pow(y,x),polinomio[m]); m--; } printf("\nf(%0.2f)= %0.2f",y,suma); } m=0; for(x=0;x<=n;x++) { printf("\nP(%d)=%d",x,polinomio[m]); m--; } system("pause=>NULL"); return 0;

Page 16: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

} 3.- Realizar un programa que genere el RFC de un usuario introduciendo apellido paterno, materno y un solo nombre y la fecha de nacimiento en el formato dia/mes/año 31/ENERO/2016. #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> int main() { char nombre[100],fecha[12],rfc[11]; int n,x,m=1,e=0; printf("\nEscribe el nombre comenzando\n por apeido paterno, materno, nombre: "); gets(nombre); n=strlen(nombre); printf("\nIntroduce a fecha en formato dd/mm/aaaa "); gets(fecha); for(x=0;x<=n;x++) { if(nombre[x]>=97 && nombre[x]<=122) { nombre[x]-=32; } } rfc[0]=nombre[0]; for(x=1;x<n;x++) { if((nombre[x]==65||nombre[x]==69||nombre[x]==73||nombre[x]==79||nombre[x]==85) && m==1) { rfc[1]=nombre[x]; m++; } else if(nombre[x]==32 && e<=1) { rfc[m]=nombre[x+1]; m++; e++;

Page 17: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

} } rfc[0]=nombre[0]; rfc[4]=fecha[8]; rfc[5]=fecha[9]; rfc[6]=fecha[3]; rfc[7]=fecha[4]; rfc[8]=fecha[0]; rfc[9]=fecha[1]; printf("\nEl RFC generado es: "); for(x=0;x<10;x++) printf("%c",rfc[x]); system("pause=>NULL"); return 0; }

4.- Realizar un programa que, a un arreglo de tamaño “n”, le asigne números aleatorios en un rango definido por el usuario y determine lo siguiente:

a. Mayor de los números generados. b. Menor de los números generados. c. Posición o posiciones donde está el número mayor. d. Posición o posiciones donde está el número menor. e. Los números que están por debajo de la media

#include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h> int main() { srand(time(NULL)); int n,x,ma,me,ls,li,suma=0; printf("\nIngresa el tamaño del arreglo: "); scanf("%d",&n); printf("\nIngresa el limite superior de los numeros aleatorios: "); scanf("%d",&ls); printf("\nIngresa el limite inferior de los numeros aleatorios: "); scanf("%d",&li); int numero[n]; for(x=0;x<n;x++) { numero[x]=li+rand()%(ls-li+1); suma+=numero[x];

Page 18: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("\n%d",numero[x]); } ma=numero[0]; me=numero[0]; printf("\n\nLos numeros por debajo de la media %f son: ",(float)suma/(n-1)); for(x=0;x<n;x++) { if(numero[x]>ma) { ma=numero[x]; } if(numero[x]<me) { me=numero[x]; } if(numero[x]<(suma/(n-1))) { printf("\n%d",numero[x]); } } printf("\n\nEl mayor es %d y esta en las posiciones\n",ma); for(x=0;x<n;x++) { if(numero[x]==ma) printf("%d, ",x); } printf("\n\nEl menor es %d y esta en las posiciones\n",me); for(x=0;x<n;x++) { if(numero[x]==me) printf("%d, ",x); } system("pause=>NULL"); return 0; } 5.- Programe la matriz triangular superior, (una matriz triangular superior es aquella donde todos los elementos por debajo de la diagonal principal son cero)

1 2 3 4 5

0 3 4 5 6

0 0 2 4 5

0 0 0 2 1

0 0 0 0 6

Page 19: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

#include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h> int main() { srand(time(NULL)); int n,x,y,ls=9,li=1; printf("\nDe que tamaño va a ser la matriz superior: "); scanf("%d",&n); int matriz[n][n]; for(x=0;x<n;x++) { for(y=0;y<n;y++) { if(x>y) { matriz[x][y]=0; } else { matriz[x][y]=li+rand()%(ls-li+1); } printf("%d ",matriz[x][y]); } printf("\n"); } system("pause=>NULL"); return 0; } 6.- Programe la matriz triangula inferior, (una matriz triangular inferior es aquella en donde todos los elementos por arriba de la diagonal principal son cero)

1 0 0 0 0

4 3 0 0 0

6 3 2 0 0

7 5 9 2 0

1 3 4 7 6

Page 20: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

#include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h> int main() { srand(time(NULL)); int n,x,y,ls=9,li=1; printf("\nDe que tamaño va a ser la matriz inferior: "); scanf("%d",&n); int matriz[n][n]; for(x=0;x<n;x++) { for(y=0;y<n;y++) { if(x<y) { matriz[x][y]=0; } else { matriz[x][y]=li+rand()%(ls-li+1); } printf("%d ",matriz[x][y]); } printf("\n"); } system("pause=>NULL"); return 0; } 18.- Programe la matriz a bandas

1 2 0 0 0

2 1 2 0 0

0 2 1 2 0

0 0 2 1 2

0 0 0 2 1

#include<stdio.h> #include<stdlib.h>

Page 21: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

#include<time.h> int main() { srand(time(NULL)); int n,x,y,ls=9,li=1; printf("\nDe que tamaño va a ser la matriz: "); scanf("%d",&n); int matriz[n][n]; for(x=0;x<n;x++) for(y=0;y<n;y++) matriz[x][y]=0; for(x=0;x<n;x++) { for(y=0;y<n;y++) { if(x==y) { matriz[x][y]=1; } if(x-1==y) { matriz[x][y]=2; } if(x+1==y) { matriz[x][y]=3; } printf("%d ",matriz[x][y]); } printf("\n"); } system("pause=>NULL"); return 0; } 8.- Programa que lea “n” números reales los asigne a un arreglo y calcule la varianza y la media e imprimir los números que estén por debajo de la media.

donde x es el promedio de los números

#include<stdio.h> #include<stdlib.h>

Page 22: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

#include<math.h> int main() { int n,x; float prom=0,v,suma=0;; printf("\nCuantos numeros quieres: "); scanf("%d",&n); float arreglo[n]; for(x=0;x<n;x++) { printf("\nIngresa numero %d: ",x+1); scanf("%f",&arreglo[x]); prom+=arreglo[x]; } v=prom/n; for(x=0;x<n;x++) suma+=pow(arreglo[x]-v,2); printf("\nLa varianza es %.3f",suma/n); system("pause=>NULL"); return 0; } 9.- Programe que a un arreglo de tamaño “n” le asigne números aleatorios en el rango 1-500, copiar en otro arreglo aquellos números que terminen en un dígito elegido por el usuario. Imprimir arreglo original y arreglo modificado. #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,x,num,c=0,a=0; printf("\nCuantos numeros quieres: "); scanf("%d",&n); printf("\nEn que numero quieres que termine: "); scanf("%d",&num); int arreglo[n];

Page 23: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

for(x=0;x<n;x++) { arreglo[x]=1+rand()%(500-1+1); printf("\n%d",arreglo[x]); if(arreglo[x]%10==num) c++; } if(c>0) { int otro[c]; printf("\n\nLos numeros que terminan en %d son: ",num); for(x=0;x<n;x++) if(arreglo[x]%10==num) { otro[a]=arreglo[x]; printf("\n%d",otro[a]); a++; } } else printf("\nNo hay numeros que terminen en %d",num); system("pause=>NULL"); return 0; } 10.- Programa que almacene en un arreglo todos los términos de la sumatoria, imprima todos los términos y el resultado.

#include<stdio.h> #include<stdlib.h> int main() { int n,m,x; float suma=0; printf("\nCuantos terminos de la serie quieres: "); scanf("%d",&m);

Page 24: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

for(n=1;n<=m;n++) { printf("(%d(%d+1)(%d+2))/3 + ",n,n,n); suma+=(float)(n*(n+1)*(n+2))/3; } printf("\nEl valor de la sumatoria es: %.2f",suma); system("pause=>NULL"); return 0; } 11.- Programa que almacene en un arreglo todos los términos de la sumatoria, imprima todos los términos y el resultado.

#include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,m,x; float suma=0; printf("\nCuantos terminos de la serie quieres: "); scanf("%d",&m); float arreglo[m]; for(n=0;n<m;n++) { printf("(%d+3)/(%d*(%d+1)) + ",n+1,n+1,n+1); arreglo[n]=(float)((n+1)+3)/((n+1)*((n+1)+1)); suma+=arreglo[n]; } printf("\nEl valor de la sumatoria es: %.2f",suma); system("pause=>NULL"); return 0; } 12.- Programa que almacene en un arreglo todos los términos de la sumatoria, imprima todos los términos y el resultado.

Page 25: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

#include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,m,x; float suma=0; printf("\nCuantos terminos de la serie quieres: "); scanf("%d",&m); float arreglo[m]; for(n=0;n<m;n++) { printf("(2^%d + %d^2) + ",n+1,n+1); arreglo[n]=(float)pow(2.0,(float)n+1)+pow((float)n+1,2.0); suma+=arreglo[n]; } printf("\nEl valor de la sumatoria es: %.2f",suma); system("pause=>NULL"); return 0; } 13.- Realizar un programa usando 1 arreglo de tamaño “n”, le asigne números aleatorios en el rango 10-130. El programa determinara el mayor y el menor y los intercambiara. Imprimir el arreglo original y modificado.

11 10 100 99 120

0 1 2 3 4

11 120 100 99 10

0 1 2 3 4

#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { srand(time(NULL)); int n,m,x,ma=10,me=130; float suma=0;

Page 26: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("\nCuantos terminos de la serie quieres: "); scanf("%d",&m); int arreglo[m]; for(n=0;n<m;n++) { arreglo[n]=10+rand()%(130-10+1); printf("%d ",arreglo[n]); if(ma<arreglo[n]) { ma=arreglo[n]; } else if(me>arreglo[n]) { me=arreglo[n]; } } printf("\n"); for(n=0;n<m;n++) { if(ma==arreglo[n]) { arreglo[n]=me; } else if(me==arreglo[n]) { arreglo[n]=ma; } printf("%d ",arreglo[n]); } printf("\n\n\nMayor= %d\nMenor= %d",ma,me); system("pause=>NULL"); return 0; } 14.- Realizar un programa que pida el tamaño de una matriz, realice la matriz transpuesta y la multiplicación de las matrices.

A= 1 2 3

AT=

1 4 7

A*AT

14 32 50

4 5 6

2 5 8

= 32 77 122

7 8 9

3 6 9

50 122 194

#include<stdio.h> #include<stdlib.h>

Page 27: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

int main() { int r,c,x,y,i,j,k; printf("\nRenglones de la matriz: "); scanf("%d",&r); printf("\nColumnas de la matriz: "); scanf("%d",&c); printf("\nIntroduce los valores de la matriz\n\n"); int ma[r][c],mt[c][r],mr[r][r]; for(x=0;x<r;x++) { for(y=0;y<c;y++) { printf("(%d,%d)= ",x,y); scanf("%d",&ma[x][y]); mt[y][x]=ma[x][y]; } } for(x=0;x<r;x++) { for(y=0;y<c;y++) { mr[x][y]=0; } } system("cls"); for(i=0;i<r;i++) { for(j=0;j<r;j++) { for(k=0;k<c;k++) { mr[i][j]+=ma[i][k]*mt[k][j]; } } } printf("\nMatriz original\n"); for(x=0;x<r;x++) { for(y=0;y<c;y++) { printf("%d ",ma[x][y]); } printf("\n"); } printf("\nMatriz transpuesta\n");

Page 28: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

for(x=0;x<r;x++) { for(y=0;y<c;y++) { printf("%d ",mt[x][y]); } printf("\n"); } printf("\nMultiplicacion de matrices\n"); for(x=0;x<r;x++) { for(y=0;y<c;y++) { printf("%d ",mr[x][y]); } printf("\n"); } system("pause=>NULL"); return 0; }

Funciones

1. Programe un menú que realice la conversión de unidades rectangulares a polares y de

polares a rectangulares, programar las funciones conv_rp() y conv_pr(), ambas con 2 argumentos y regresen o no valor.

#include<stdio.h> #include<stdlib.h> #include<math.h> void conv_rp(float x, float y) { printf("\nEl valor de r: %.2f UL",sqrt(pow(x,2.0)+pow(y,2.0))); printf("\nEL valor de angulo: %.2f grados",atan(y/x)*(180/M_PI)); system("pause=>NULL"); } float conv_pr(float r, float ang) { float a; a=ang*(M_PI/180); printf("\nEl valor de x: %.2f UL",r*cos(a));

Page 29: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("\nEl valor de y: %.2f UL",r*sin(a)); system("pause=>NULL"); } int main() { int op; float x,y; do { system("cls"); printf("\nPrograma realiza conversiones de coordenadas"); printf("\npolares a rectagulares y viceversa"); printf("\n1. Conversion de rectangulares a polares"); printf("\n2. Conversión de polares a rectangulares"); printf("\n3. Salir"); printf("\nElija opcion: "); scanf("%d",&op); system("cls"); switch(op) { case 1: printf("\nConversion de rectangulares a polares"); printf("\nValor de x: "); scanf("%f",&x); printf("Valor de y: "); scanf("%f",&y); conv_rp(x,y); break; case 2: printf("\nConversión de polares a rectangulares"); printf("\nValor de r: "); scanf("%f",&x); printf("Valor de angulo: "); scanf("%f",&y); conv_pr(x,y); break; case 3: printf("\nGracias por hacer uso de este programa"); break; default: printf("\n!ERROR¡ numero no valido"); system("pause=>NULL"); } }while(op!=3); system("pause=>NULL"); return 0; }

Page 30: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

2. Programa que determine el tipo de triángulo que se forma a partir de la longitud de sus

lados. #include<stdio.h> #include<stdlib.h> int tipo(int a, int b, int c) { if(a==b && b==c) return 1; else if(a==b || a==c || b==c) return 2; else return 3; } int main() { int a,b,c,d; printf("\nPrograma que determina que tipo de triangulo se forma"); printf("\npor la longitud de sus lados enteros"); printf("\nLado a: "); scanf("%d",&a); printf("\nLado b: "); scanf("%d",&b); printf("\nLado c: "); scanf("%d",&c); if((a+b)>c && (b+c)>a && (a+c)>b) { d=tipo(a,b,c); if(d==1) printf("\nTriangulo equilatero"); else if(d==2) printf("\nTriangulo isosceles"); else printf("\nTriangulo escaleno"); } else printf("\n¡ERROR! con los datos proporcionados o se forma un triangulo"); system("pause=>NULL"); return 0; }

Page 31: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

3. Programa que determine el tipo de triángulo que se forma a partir de las coordenadas de

sus 3 vértices y además calcular: a. Longitud de los lados. b. Área c. Perímetro. d. Ángulos internos. e. Punto medio. f. Ecuaciones de las rectas de los lados. g. Ecuaciones de las directrices. h. Ecuaciones de las bisectrices. i. Baricentro. j. Incentro. k. Ecuación de la circunferencia inscrita en el triángulo. l. Ecuación de la circunferencia circunscrita al triángulo

#include<stdio.h> #include<math.h> #include<stdlib.h> int main() { float a1, a2, a3; float b1, b2, b3, b4, b5, b6, b7, b8, b9; float bb1, bb2, bb3; float bx, by; float c1, c2, c3; float cx, cy; float dmb, dmc, dmi; float dmxb, dmxc, dmxi, dmyb, dmyc, dmyi; float h1, h2, ix, iy, k1, k2, l1, l2, l3; float m, m1, m2, m3, m4, m5, m6, m7, m8, m9; float px1, px2, px3, py1, py2, py3; float r1, r11, r2, r3, x, x1, x2, x3, y1, y2, y3; int z; x = 1; printf("Programa diseñado para calculos sobre triangulos en el plano cartesiano\n"); printf("\nPara comenzar introduzca las coordenadas de los vertices del triangulo\n"); printf("No repita los valores de x\n"); while (x==1) { printf("Vertice A\n"); scanf("%f",&x1); scanf("%f",&y1); printf("Vertice B\n"); scanf("%f",&x2); scanf("%f",&y2); printf("Vertice C\n"); scanf("%f",&x3); scanf("%f",&y3);

Page 32: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

l1 = pow(((pow((x2-x1),2))+(pow((y2-y1),2))),(1/2)); l2 = pow(((pow((x3-x2),2))+(pow((y3-y2),2))),(1/2)); l3 = pow(((pow((x1-x3),2))+(pow((y1-y3),2))),(1/2)); if (l2+l3>l1 && l1+l2>l3 && l3+l1>l2) { if ((x2-x1)==0 || (x3-x2)==0 || (x1-x3)==0) { printf("Por favor no repita las coordenadas de x\n"); printf("\n"); } else { px1 = (x1+x2)/2; py1 = (y1+y2)/2; px2 = (x3+x2)/2; py2 = (y3+y2)/2; px3 = (x1+x3)/2; py3 = (y1+y3)/2; m1 = (y2-y1)/(x2-x1); m2 = (y3-y2)/(x3-x2); m3 = (y1-y3)/(x1-x3); m4 = (py1-y3)/(px1-x3); m5 = (py2-y1)/(px2-x1); m6 = (py3-y2)/(px3-x2); m7 = -1/m1; m8 = -1/m2; m9 = -1/m3; m = 1; b1 = -((m1*x1)-y1); b2 = -((m2*x2)-y2); b3 = -((m3*x3)-y3); b4 = -((m4*x3)-y3); b5 = -((m5*x1)-y1); b6 = -((m6*x2)-y2); b7 = -((m7*px1)-py1); b8 = -((m8*px2)-py2); b9 = -((m9*px3)-py3); dmb = -m6-(-m4); dmxb = b6-b4; dmyb = (b4*(-m6))-(b6*(-m4)); bx = dmxb/dmb; by = dmyb/dmb; dmc = -m9-(-m8); dmxc = b9-b8; dmyc = (b8*(-m9))-(b9*(-m8)); cx = dmxc/dmc; cy = dmyc/dmc; r1 = pow(((pow(m1,2))+1),(1/2)); r2 = pow(((pow(m2,2))+1),(1/2)); r3 = pow(((pow(m3,2))+1),(1/2)); a1 = (r3*(-m1))-(r1*(-m3)); bb1 = r3-r1;

Page 33: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

c1 = (r3*(-b1))-(r1*(-b3)); a2 = (r2*(-m1))-(r1*(-m2)); bb2 = r2-r1; c2 = (r2*(-b1))-(r1*(-b2)); a3 = (r3*(-m2))-(r2*(-m3)); bb3 = r3-r2; c3 = (r3*(-b2))-(r2*(-b3)); dmi = (a1*bb2)-(a2*bb1); dmxi = ((-c1)*bb2)-((-c2)*bb1); dmyi = (a1*(-c2))-(a2*(-c1)); ix = dmxi/dmi; iy = dmyi/dmi; r11 = (pow((cx-x1),2))+(pow((cy-y1),2)); h1 = -cx; k2 = -iy; k1 = -cy; h2 = -ix; r2 = pow((((-m1*ix)+iy+(-b1))/r1),2); while (m==1) { printf("\n"); /* no hay forma directa de borrar la pantalla con C estandar */ printf("Seleccione que datos desea obtener\n"); printf("1.-Ecuaciones de los lados\n"); printf("2.-Ecuaciones de las medianas\n"); printf("3.-Ecuaciones de las mediatrices\n"); printf("4.-Ecuaciones de las bisectices\n"); printf("5.-Las coordenadas del baricentro\n"); printf("6.-Las coordenadas del circuncentro\n"); printf("7.-Las coordenadas del incentro\n"); printf("8.-Las coordenadas de los puntos medios\n"); printf("9.-Ecuacion de la circunferencia circunscrita\n"); printf("10.-Ecuacion de la circunferencia inscrita\n"); printf("11.-Salir\n"); scanf("%d",&z); printf("\n"); /* no hay forma directa de borrar la pantalla con C estandar */ switch (z) { case 1: printf("Las ecuaciones de los lados son:\n"); if (b1<0) { printf("y=%fx%f\n",m1,b1); } else { printf("%f\n",bb3); if (b1==0) { printf("y=%fx\n",m1); } else { printf("y=%fx+%f\n",m1,b1);

Page 34: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

} } if (b2<0) { printf("y=%fx%f\n",m2,b2); } else { if (b2==0) { printf("y=%fx\n",m2); } else { printf("y=%fx+%f\n",m2,b2); } } if (b3<0) { printf("y=%fx%f\n",m3,b3); } else { if (b3==0) { printf("y=%fx\n",m3); } else { printf("y=%fx+%f\n",m3,b3); } } getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 2: printf("Las ecuaciones de las medianas son:\n"); if (b4<0) { printf("y=%fx%f\n",m4,b4); } else { if (b4==0) { printf("y=%fx\n",m4); } else { printf("y=%fx+%f\n",m4,b4); } } if (b5<0) { printf("y=%fx%f\n",m5,b5); } else { if (b5==0) { printf("y=%fx\n",m5); } else { printf("y=%fx+%f\n",m5,b5); } } if (b6<0) { printf("y=%fx%f\n",m6,b6); } else { if (b6==0) {

Page 35: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("y=%fx\n",m6); } else { printf("y=%fx+%f\n",m6,b6); } } getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 3: printf("Las ecuaciones de las mediatrices son\n"); printf("%f\n",dmyc); if (b7<0) { printf("y=%fx%f\n",m7,b7); } else { if (b7==0) { printf("y=%fx\n",m7); } else { printf("y=%fx+%f\n",m7,b7); } } if (b8<0) { printf("y=%fx%f\n",m8,b8); } else { if (b8==0) { printf("y=%fx\n",m8); } else { printf("y=%fx+%f\n",m8,b8); } } if (b9<0) { printf("y=%fx%f\n",m9,b9); } else { if (b9==0) { printf("y=%fx\n",m9); } else { printf("y=%fx+%f\n",m9,b9); } } getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 4: printf("Las ecuaciones de las bisectrices son:\n"); if (bb1>0) { if (c1>0) {

Page 36: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("%fx+%fy+%f=0\n",a1,bb1,c1); } else { printf("%fx+%fy%f=0\n",a1,bb1,c1); } } else { if (c1>0) { printf("%fx%fy+%f=0\n",a1,bb1,c1); } else { printf("%fx%fy+%f=0\n",a1,bb1,c1); } } if (bb2>0) { if (c2>0) { printf("%fx+%fy+%f=0\n",a2,bb2,c2); } else { printf("%fx+%fy%f=0\n",a2,bb2,c2); } } else { if (c2>0) { printf("%fx%fy+%f=0\n",a2,bb2,c2); } else { printf("%fx%fy+%f=0\n",a2,bb2,c1); } } if (bb3>0) { if (c3>0) { printf("%fx+%fy+%f=0\n",a3,bb3,c3); } else { printf("%fx+%fy%f=0\n",a3,bb3,c3); } } else { if (c3>0) { printf("%fx%fy+%f=0\n",a3,bb3,c3); } else { printf("%fx%fy+%f=0\n",a3,bb3,c3); } }

Page 37: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 5: printf("Las coordenadas del baricentro son:\n"); printf("(%f,%f)\n",bx,by); getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 6: printf("Las coordenadas del circuncentro son:\n"); printf("(%f,%f)\n",cx,cy); getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 7: printf("Las coordenadas del incentro son:\n"); printf("(%f,%f)\n",ix,iy); getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 8: printf("Las coordenadas para los puntos medios son los siguientes:\n"); printf("(%f,%f)\n",px1,py1); printf("(%f,%f)\n",px2,py2); printf("(%f,%f)\n",px3,py3); getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 9: printf("La ecuacion de la circunferencia es:\n"); if (h1>0) { if (k1>0) { printf("(x+%f)^2+(y+%f)^2=%f\n",h1,k1,r11); } else { printf("(x+%f)^2+(y%f)^2=%f\n",h1,k1,r11); } } else { if (k1>0) { printf("(x%f)^2+(y+%f)^2=%f\n",h1,k1,r11); } else {

Page 38: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("(x%f)^2+(y%f)^2=%f\n",h1,k1,r11); } } getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 10: printf("La ecuacion de la circunferencia es:\n"); if (h2>0) { if (k2>0) { printf("(x+%f)^2+(y+%f)^2=%f\n",h2,k2,r2); } else { printf("(x+%f)^2+(y%f)^2=%f\n",h2,k2,r2); } } else { if (k2>0) { printf("(x%f)^2+(y+%f)^2=%f\n",h2,k2,r2); } else { printf("(x%f)^2+(y%f)^2=%f\n",h2,k2,r2); } } getchar(); /* a diferencia del pseudocódigo, espera un Enter, no cualquier tecla */ break; case 11: m = 2; break; } } printf("\n"); } printf("Presione 1 para volver a introducir las coordenadas o 2 para terminar el programa\n"); scanf("%f",&x); } else { printf("Lo sentimos pero las coordenadas que introdujo no forman un triangulo\n"); printf("Presine 1 para introducir nuevas coordenadas o presione 2 para salir\n"); scanf("%f",&x); } } return 0; }

Page 39: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

4. Realizar un programa en Lenguaje C en el que el usuario introduzca una letra y produzca la

palabra correspondiente del alfabeto de la International Civil Aviation Organization como sigue:

A Alpha N November

B Bravo O Oscar

C Charlie P Papa

D Delta Q Quebec

E Echo R Romeo

F Foxtrot S Sierra

G Golf T Tango

H Hotel U Uniform

I India V Victor

J Juliet W Whiskey

K Kilo X X-ray

L Lima Y Yankee

M Mike Z Zulu

Programe una función definida por el usuario llamada convertir (en caso de que el usuario introduzca una letra minúscula, la función la convierta en mayúscula) que tenga un argumento de tipo char y que regrese un dato de tipo char. Programe una función prototipo llamada imprime, que tenga un argumento de tipo char y que no regrese valor (esta función deberá imprimir la palabra correspondiente a la ICAO). El programa deberá repetirse hasta que el usuario introduzca un cero. #include<stdio.h> #include<stdlib.h> char convertir(char letra) { return letra-32; } void imprime(char letra); int main() { char let='a'; while(let!='0') { printf("\nIntroduce letra: "); scanf("%c",&let); fflush(stdin); if(let>=97 && let<=122) let=convertir(let);

Page 40: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

imprime(let); } system("pause=>NULL"); return 0; } void imprime(char letra) { switch(letra) { case 'A': printf("\n%c Alpha",letra); break; case 'B': printf("\n%c Bravo",letra); break; case 'C': printf("\n%c Charlie",letra); break; case 'D': printf("\n%c Delta",letra); break; case 'E': printf("\n%c Echo",letra); break; case 'F': printf("\n%c Foxtrot",letra); break; case 'G': printf("\n%c Golf",letra); break; case 'H': printf("\n%c Hotel",letra); break; case 'I': printf("\n%c India",letra); break; case 'J': printf("\n%c Juliet",letra); break; case 'K': printf("\n%c Kilo",letra); break; case 'L': printf("\n%c Lima",letra); break; case 'M': printf("\n%c Mike",letra); break;

Page 41: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

case 'N': printf("\n%c November",letra); break; case 'O': printf("\n%c Oscar",letra); break; case 'P': printf("\n%c Papa",letra); break; case 'Q': printf("\n%c Quebec",letra); break; case 'R': printf("\n%c Romeo",letra); break; case 'S': printf("\n%c Sierra",letra); break; case 'T': printf("\n%c Tango",letra); break; case 'U': printf("\n%c Uniform",letra); break; case 'V': printf("\n%c Victor",letra); break; case 'W': printf("\n%c Whiskey",letra); break; case 'X': printf("\n%c X-ray",letra); break; case 'Y': printf("\n%c Yankee",letra); break; case 'Z': printf("\n%c Zulu",letra); break; case '0': printf("\nGracias por hacer uso de este programa"); break; default: printf("\n¡ERROR! Carácter no valido"); } }

Page 42: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

5.- Realizar un programa que lea un número entero e imprimir el número de dígitos que lo componen y la suma de los mismos, programar una función definida por el usuario. #include<stdio.h> #include<stdlib.h> int cuenta(int n) { int c=0; while(n>0) { n/=10; c++; } return c; } int main() { int n; printf("\nPrograma que cuenta los digitos que componen un numero entero"); printf("\nIngresa el numero entero: "); scanf("%d",&n); printf("\nEl numero tiene %d digitos",cuenta(n)); system("pause=>NULL"); return 0; } 6.- Escribir una función que calcule e imprima los 3 primeros números perfectos. Un número perfecto es un número natural que es igual a la sumatoria de sus divisores propios positivos. Por ejemplo, 6 es un número perfecto porque sus divisores propios son 1, 2 y 3; y 6=1+2+3. #include<stdio.h> #include<stdlib.h> void perfecto() { int x=0,n=2,su=0,y; while(x<3) { su=0; for(y=1;y<n;y++) {

Page 43: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

if(n%y==0) su+=y; } if(su==n) { printf("\nEl numero %d es un numero perfecto",su); x++; } n++; } } int main() { perfecto(); system("pause=>NULL"); return 0; } 7.- Programa que realice la suma de “n” números enteros negativos ingresados por el usuario. Programe una función prototipo con un argumento y que regrese valor. #include<stdio.h> #include<stdlib.h> int suma(int n); int main() { int x; printf("\nCuantos numeros pares negativos quieres sumar: "); scanf("%d",&x); printf("\nLa suma de los %d numeros pares negativos es: %d",x,suma(x)); system("pause=>NULL"); return 0; } int suma(int n) { int suma=0,a; while(n>0) { printf("\nIngresa un numero: "); scanf("%d",&a); if(a<0 && a%2==0) { suma+=a; n--; } }

Page 44: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

return suma; } 8.- Programa que realice el producto punto de dos vectores de “n” dimensiones y calcule el módulo de cada uno de ellos. #include<stdio.h> #include<stdlib.h> #include<math.h> float modulo(float ve1[],int n) { float suma=0; int x; for(x=0;x<n;x++) suma+=pow(ve1[x],2.0); return sqrt(suma); } float punto(float ve1[], float ve2[],int n) { float suma=0; int x; for(x=0;x<n;x++) suma+=ve1[x]*ve2[x]; return suma; } void asignar(float ve1[],int n,int a) { int x; for(x=0;x<n;x++) { printf("\nIntroduce valor %d del v%d: ",x,a); scanf("%f",&ve1[x]); } } int main() { int n; float p; printf("\nIntroduce la dimension de los vectores: "); scanf("%d",&n); float v1[n],v2[n]; asignar(v1,n,1); asignar(v2,n,2); p=punto(v1,v2,n); printf("\nEl producto punto de los vectores es: %f",p); printf("\nEl modulo del vector 1: %f",modulo(v1,n));

Page 45: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("\nEl modulo del vector 2: %f",modulo(v2,n)); system("pause=>NULL"); return 0; }

1) 9.- Una empresa desea encriptar sus mensajes de correo electrónico de la siguiente forma:

i. Enviar los datos en paquetes de 4 números.

ii. A los mensajes se les quitaran todos los signos de puntuación, acentos, espacios en

blanco y solamente podrán ser letras mayúsculas.

iii. Cada carácter será sustituido por su equivalente en el código ASCII. Ejemplo ‘A’ por

65.

iv. Para completar los paquetes de 4 números se le antepondrá el número de la

posición que guarda dentro del mensaje. Ejemplo 10

v. Para la encriptación separamos los números y los sustituimos por el módulo 10 de

la suma de dicho dígito más 7.

vi. Intercambiamos el primer dígito por el tercero y el segundo por el cuarto.

Ejemplo. Letra A= 65 en ASCII, y supongamos que la letra está en la posición 10 del mensaje por lo que el paquete quedaría de la siguiente forma 1065 5 (5+7) MOD 10 = 2 6 (6+7) MOD 10 = 3 0 (0+7) MOD 10 = 7 1 (1+7) MOD 10 = 8

Paquete original ‘1065’, paquete encriptado ‘3287’ #include<stdio.h> #include<stdlib.h> #include<string.h> int convertir(int x); int main() { int r=65,x=0,z,a=0,A=1,d,e,f,g,temp; char cadena[100]; printf("\nPrograma que realiza la encriptacion de un texto"); printf("\nIntroduce una cadena a encriptar: "); gets(cadena); z=strlen(cadena); char claro[z]; for(x=0;x<z;x++)

Page 46: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

{ if(cadena[x]>=97 && cadena[x]<=122) cadena[x]-=32; if(cadena[x]>=65 && cadena[x]<=90) { claro[a]=cadena[x]; a++; } } int nume[a],encrip[a]; for(x=1;x<=a;x++) { if(x>=10) A=(x*1000)/10; else A=x*1000; nume[x-1]=A+claro[x-1]; } for(x=0;x<a;x++) { temp=nume[x]; d=((temp%10)+7)%10; temp/=10; e=((temp%10)+7)%10; temp/=10; f=((temp%10)+7)%10; temp/=10; g=((temp%10)+7)%10; encrip[x]=(e*1000)+(d*100)+(g*10)+f; } int nume1[a]; char letra[a]; for(x=0;x<a;x++) printf("\n%c %d %d",claro[x],nume[x],encrip[x]); printf("\nPrograma que realiza la desencriptacion de un texto"); for(x=0;x<a;x++) { temp=encrip[x]; d=convertir(temp%10); temp/=10; e=convertir(temp%10); temp/=10; f=convertir(temp%10); temp/=10;

Page 47: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

g=convertir(temp%10); nume1[x]=(g*10)+f; letra[x]=nume1[x]; } for(x=0;x<a;x++) printf("\n%c %d %d %d %c",claro[x],nume[x],encrip[x],nume1[x],letra[x]); system("pause=>NULL"); return 0; } int convertir(int x) { int temp1; temp1=(10+x)-7; if(temp1>=10) return temp1%10; else return temp1; } 10.- Del ejercicio anterior realizar el proceso inverso. #include<stdio.h> #include<stdlib.h> #include<string.h> int convertir(int x); int main() { int r=65,x=0,z,a=0,A=1,d,e,f,g,temp; char cadena[100]; printf("\nPrograma que realiza la encriptacion de un texto"); printf("\nIntroduce una cadena a encriptar: "); gets(cadena); z=strlen(cadena); char claro[z]; for(x=0;x<z;x++) { if(cadena[x]>=97 && cadena[x]<=122) cadena[x]-=32; if(cadena[x]>=65 && cadena[x]<=90) { claro[a]=cadena[x]; a++;

Page 48: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

} } int nume[a],encrip[a]; for(x=1;x<=a;x++) { if(x>=10) A=(x*1000)/10; else A=x*1000; nume[x-1]=A+claro[x-1]; } for(x=0;x<a;x++) { temp=nume[x]; d=((temp%10)+7)%10; temp/=10; e=((temp%10)+7)%10; temp/=10; f=((temp%10)+7)%10; temp/=10; g=((temp%10)+7)%10; encrip[x]=(e*1000)+(d*100)+(g*10)+f; } int nume1[a]; char letra[a]; for(x=0;x<a;x++) printf("\n%c %d %d",claro[x],nume[x],encrip[x]); printf("\nPrograma que realiza la desencriptacion de un texto"); for(x=0;x<a;x++) { temp=encrip[x]; d=convertir(temp%10); temp/=10; e=convertir(temp%10); temp/=10; f=convertir(temp%10); temp/=10; g=convertir(temp%10); nume1[x]=(g*10)+f; letra[x]=nume1[x]; } for(x=0;x<a;x++) printf("\n%c %d %d %d %c",claro[x],nume[x],encrip[x],nume1[x],letra[x]);

Page 49: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

system("pause=>NULL"); return 0; } int convertir(int x) { int temp1; temp1=(10+x)-7; if(temp1>=10) return temp1%10; else return temp1; } 11.- Con los dos ejercicios anteriores realizar un menú con funciones con las opciones de encriptar y desencriptar. #include<stdio.h> #include<stdlib.h> #include<string.h> int convertir(int x); int main() { int r=65,x=0,z,a=0,A=1,d,e,f,g,temp; char cadena[100]; printf("\nPrograma que realiza la encriptacion de un texto"); printf("\nIntroduce una cadena a encriptar: "); gets(cadena); z=strlen(cadena); char claro[z]; for(x=0;x<z;x++) { if(cadena[x]>=97 && cadena[x]<=122) cadena[x]-=32; if(cadena[x]>=65 && cadena[x]<=90) { claro[a]=cadena[x]; a++; } } int nume[a],encrip[a]; for(x=1;x<=a;x++) {

Page 50: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

if(x>=10) A=(x*1000)/10; else A=x*1000; nume[x-1]=A+claro[x-1]; } for(x=0;x<a;x++) { temp=nume[x]; d=((temp%10)+7)%10; temp/=10; e=((temp%10)+7)%10; temp/=10; f=((temp%10)+7)%10; temp/=10; g=((temp%10)+7)%10; encrip[x]=(e*1000)+(d*100)+(g*10)+f; } int nume1[a]; char letra[a]; for(x=0;x<a;x++) printf("\n%c %d %d",claro[x],nume[x],encrip[x]); printf("\nPrograma que realiza la desencriptacion de un texto"); for(x=0;x<a;x++) { temp=encrip[x]; d=convertir(temp%10); temp/=10; e=convertir(temp%10); temp/=10; f=convertir(temp%10); temp/=10; g=convertir(temp%10); nume1[x]=(g*10)+f; letra[x]=nume1[x]; } for(x=0;x<a;x++) printf("\n%c %d %d %d %c",claro[x],nume[x],encrip[x],nume1[x],letra[x]); system("pause=>NULL"); return 0; } int convertir(int x) { int temp1;

Page 51: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

temp1=(10+x)-7; if(temp1>=10) return temp1%10; else return temp1; } 12.- Criptografía clásica. Programar el cifrado del Cesar, este método consiste en sustituir una letra haciendo un corrimiento de “n” posiciones y sustituirla por la letra que corresponda, por ejemplo: con un corrimiento de 4, la letra A la sustituimos por la letra E. Leer una cadena de caracteres, quitar signos de puntuación, espacios en blanco y si hay minúsculas convertirlas en mayúsculas.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

E F G H I J K L M N O P Q R S T U V W X Y Z A B C D

#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int n,x,g,f=0,h=0,z=0; char uno[1000]; printf("\nCorrimiento: "); scanf("%d",&n); fflush(stdin); printf("\nIntroduce la cadena a encriptar: "); gets(uno); g=strlen(uno); char dos[g],tres[g],cuatro[g]; for(x=0;x<g;x++) { if(uno[x]>=97 && uno[x]<=122) { dos[h]=uno[x]-32; h++; } if(uno[x]>=65 && uno[x]<=90) { dos[h]=uno[x]; h++; } }

Page 52: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

for(x=0;x<g;x++) { if(dos[x]>=65 && dos[x]<=90) { tres[x]=dos[x]+n; if(tres[x]<65) tres[x]=tres[x]+26; else if(tres[x]>90) tres[x]=(tres[x]-90)+64; } } printf("\nLa informacion encriptada: \n"); for(x=0;x<g;x++) printf("\n%c %c",dos[x],tres[x]); for(x=0;x<g;x++) { if(tres[x]>=65 && tres[x]<=90) { cuatro[x]=tres[x]-n; if(cuatro[x]<65) cuatro[x]=cuatro[x]+26; else if(cuatro[x]>90) cuatro[x]=(cuatro[x]-90)+64; } } printf("\nLa informacion desencriptada: \n"); for(x=0;x<g;x++) printf("\n%c %c %c",dos[x],tres[x],cuatro[x]); system("pause=>NULL"); return 0; } 13.- Del ejercicio anterior realiza el proceso inverso. #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int n,x,g,f=0,h=0,z=0;

Page 53: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

char uno[1000]; printf("\nCorrimiento: "); scanf("%d",&n); fflush(stdin); printf("\nIntroduce la cadena a encriptar: "); gets(uno); g=strlen(uno); char dos[g],tres[g],cuatro[g]; for(x=0;x<g;x++) { if(uno[x]>=97 && uno[x]<=122) { dos[h]=uno[x]-32; h++; } if(uno[x]>=65 && uno[x]<=90) { dos[h]=uno[x]; h++; } } for(x=0;x<g;x++) { if(dos[x]>=65 && dos[x]<=90) { tres[x]=dos[x]+n; if(tres[x]<65) tres[x]=tres[x]+26; else if(tres[x]>90) tres[x]=(tres[x]-90)+64; } } printf("\nLa informacion encriptada: \n"); for(x=0;x<g;x++) printf("\n%c %c",dos[x],tres[x]); for(x=0;x<g;x++) { if(tres[x]>=65 && tres[x]<=90) { cuatro[x]=tres[x]-n; if(cuatro[x]<65) cuatro[x]=cuatro[x]+26; else if(cuatro[x]>90) cuatro[x]=(cuatro[x]-90)+64; }

Page 54: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

} printf("\nLa informacion desencriptada: \n"); for(x=0;x<g;x++) printf("\n%c %c %c",dos[x],tres[x],cuatro[x]); system("pause=>NULL"); return 0; } 14.- Con los dos ejercicios anteriores realizar un menú con funciones con las opciones de encriptar y desencriptar. #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int n,x,g,f=0,h=0,z=0; char uno[1000]; printf("\nCorrimiento: "); scanf("%d",&n); fflush(stdin); printf("\nIntroduce la cadena a encriptar: "); gets(uno); g=strlen(uno); char dos[g],tres[g],cuatro[g]; for(x=0;x<g;x++) { if(uno[x]>=97 && uno[x]<=122) { dos[h]=uno[x]-32; h++; } if(uno[x]>=65 && uno[x]<=90) { dos[h]=uno[x]; h++; } } for(x=0;x<g;x++) {

Page 55: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

if(dos[x]>=65 && dos[x]<=90) { tres[x]=dos[x]+n; if(tres[x]<65) tres[x]=tres[x]+26; else if(tres[x]>90) tres[x]=(tres[x]-90)+64; } } printf("\nLa informacion encriptada: \n"); for(x=0;x<g;x++) printf("\n%c %c",dos[x],tres[x]); for(x=0;x<g;x++) { if(tres[x]>=65 && tres[x]<=90) { cuatro[x]=tres[x]-n; if(cuatro[x]<65) cuatro[x]=cuatro[x]+26; else if(cuatro[x]>90) cuatro[x]=(cuatro[x]-90)+64; } } printf("\nLa informacion desencriptada: \n"); for(x=0;x<g;x++) printf("\n%c %c %c",dos[x],tres[x],cuatro[x]); system("pause=>NULL"); return 0; } 15.- Realizar un programa que calcule el perímetro y el área de una circunferencia y el volumen de una esfera. Programe una función que calcule el perímetro, otra el área y otra el volumen. #include<stdio.h> #include<stdlib.h> #include<math.h> float perimetro(float r) { return 2*M_PI*r; } float area(float r)

Page 56: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

{ return M_PI*pow(r,2.0); } float volumen(float r) { return (4/3)*M_PI*pow(r,3.0); } int main() { float radio; printf("\nPrograma que calcula el perímetro, el área de una circunferencia"); printf("\ny el volumen de una esfera"); printf("\nIntroduce el radio: "); scanf("%f",&radio); printf("\nEl perimetro es: %f UL",perimetro(radio)); printf("\nEl area es: %f UC",area(radio)); printf("\nEl volumen es: %f UC",volumen(radio)); system("pause=>NULL"); return 0; }

1) 16.- Programa que calcule el gasto de agua de una familia de acuerdo a lo siguiente: a. Pago fijo mensual de $150.00 b. Pago por litros.

i. Los primeros 50 litros son gratis. ii. Entre 51 y 200 litros se cobra el litro a $2.5

iii. Entre 201 y 300 litros se cobra el litro a $5.8 iv. Más de 300 litros se cobra a $10.09

#include<stdio.h> #include<stdlib.h> int main() { int op; float lt,total; printf("\nPrograma que calcula el consumo de agua de una familia "); printf("\n1.- Pago de una cuota mensual fija"); printf("\n2.- Pago por litros"); printf("\nElija opcion: "); scanf("%d",&op); if(op==1) {

Page 57: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

printf("\nUsted debe pagar $150.00 mensualmente"); } else if(op==2) { printf("\nIntroduzca la cantidad de litros consumidos: "); scanf("%f",&lt); if(lt>0 && lt<=50) printf("\nPor bajo consumo no paga"); else if(lt>50 &&lt<=200) printf("\nSu adeudo es: %.2f",(lt-50)*2.5); else if(lt>200 && lt<=300) printf("\nSu adeudo es: %f",(150*2.5)+(lt-200)*5.8); else if(lt>300) printf("\nSu adeudo es: %f",(150*2.5)+(100*5.8)+(lt-300)*10.09); } else printf("\nOpcion no valida"); system("pause=>NULL"); return 0; } 17.- Programa que determine si 2 vectores de “n” dimensiones son iguales, determine la norma de cada uno e imprima la mayor, (en caso de que sean diferentes). #include<stdio.h> #include<stdlib.h> #include<math.h> float norma(float ve1[],int n) { float suma=0; int x; for(x=0;x<n;x++) suma+=pow(ve1[x],2.0); return sqrt(suma); } void asignar(float ve1[],int n,int a) { int x; for(x=0;x<n;x++) { printf("\nIntroduce valor %d del v%d: ",x,a); scanf("%f",&ve1[x]); } }

Page 58: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

int main() { int n; float a,b; printf("\nIntroduce la dimension de los vectores: "); scanf("%d",&n); float v1[n],v2[n]; asignar(v1,n,1); asignar(v2,n,2); a=norma(v1,n); b=norma(v2,n); if(a==b) { printf("\nLos vectores son iguales"); printf("\nLa norma de ambos vectores es: %f",a); } else { if(a>b) printf("\nEl vector 1 es mayor y su norma es: %f",a); else printf("\nEl vector 2 es mayor y su norma es: %f",b); } system("pause=>NULL"); return 0; }

Apuntadores

1.- Realizar un programa que calcule la serie:

haciendo uso de apuntadores. #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n; float x,*ptrpol,suma=0,fact=1,y,m; printf("\nCuantos terminos de la serie quieres calcular? "); scanf("%d",&n); printf("\nValor de x: "); scanf("%f",&y);

Page 59: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

m=(float)n; ptrpol=(float *) malloc (n+1 * sizeof(float)); *ptrpol++=1; for(x=1;x<=m;x++) { fact*=x; *ptrpol=pow(-1.0,x)*(pow(y,x)/(fact)); suma+=*ptrpol++; } printf("\nEl valor de la serie es: %f",suma+1); system("pause=>NULL"); return 0; } 2.- Los polinomios de Legendre se pueden calcular mediante las fórmulas P0 =1, P1 =x,

En donde n=2, 3, 4,…, m y x es un número en coma flotante entre -1 y 1 (los coeficientes de los polinomios de Legendre son cantidades de coma flotante). Los valores n y x deben ser parámetros de entrada, hacer uso de funciones y apuntadores. #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { float n=2,x,*ptrleg, leg,*ind,*ptr1,*ptr2; int y,m; printf("\nDe que grado es el polinomio? "); scanf("%d",&m); do { printf("\nItroduce un valor de x en el intervalo (-1,1) "); scanf("%f",&x); }while(x<=-1 && x>=1); m++; ptrleg= (float *) malloc (m * sizeof(float)); ind=ptrleg; ptr1=ptrleg; ptr2=ptrleg; ptr1++; *ptrleg=0; ptrleg++;

Page 60: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

*ptrleg=x; ptrleg++; for(y=2;y<m;y++) { *ptrleg=((((2*n)-1)/n)*x*(*ptr1++))-(((n-1)/n)*(*ptr2++)); ptrleg++; n+=1; } ptrleg=ind; for(y=0;y<m;y++) printf("\n%f",*ptrleg++); system("pause=>NULL"); return 0; } 3.- En un apuntador almacenar los “m” términos de la sucesión de Padovan con la siguiente relación de recurrencia con las siguientes condiciones iniciales:

#include<stdio.h> #include<stdlib.h> int main() { int n,x,*ptrp,*ptri; printf("\nCuantos terminos de la serie de Padovan quieres calcular: "); scanf("%d",&n); ptrp=(int *) malloc(n * sizeof(int)); for(x=0;x<n;x++) { if(x<3) { *ptrp=1; } else if(x==3 || x==4) { *ptrp=2; } else { *ptrp=*(ptrp-1)+*(ptrp-5);

Page 61: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

} printf("\nP(%x)= %d",x,*ptrp++); } system("pause=>NULL"); return 0; } 4.- Haciendo uso de apuntadores (en el apuntador almacenar los coeficientes de los términos del polinomio), evaluar un polinomio de grado “n” en un intervalo (a,b) y con un incremento de “i” n= 4 intervalo=(0,1) i=0.2

p(0) = -10

p(0.2) = -8.128

p(0.4) = -6.24

p(0.6) = -4.384

p(0.8) = -2.416

P(1) = 0

#include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,m; float x,y,a,b,suma=0,inc,*ptrpol,*ind; printf("\nGrado del polinomio: "); scanf("%d",&n); printf("\nLimite izquierdo: "); scanf("%f",&a); printf("\nlimite derecho: "); scanf("%f",&b); printf("\nincremento: "); scanf("%f",&inc); if(b<a) { x=b; b=a;

Page 62: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

a=x; } ptrpol=(float *) malloc (n+1 * sizeof(float)); ind=(ptrpol+n); for(x=n;x>=0;x--) { printf("\nIngrese coeficiente grado %.0f: ",x); scanf("%f",ind--); } for(y=a;y<=b+0.2;y+=inc) { ind=(ptrpol+n); suma=*ptrpol; for(x=n;x>1;x--) { suma+=pow(y,x)**ind--; } printf("\nf(%0.2f)= %0.2f",y,suma); } system("pause=>NULL"); return 0; } 5.- Programa que lea “n” números reales los asigne a un arreglo y calcule la varianza y la media e imprimir los números que estén por debajo de la media.

donde x es el promedio de los números #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n,x; float *var,*ind,prom,suma=0,varianza=0; printf("\nA cuatos elementos les quieres calcular su varianza? "); scanf("%d",&n); var=(float *) malloc (n * sizeof(float)); ind=var; for(x=0;x<n;x++)

Page 63: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

{ printf("\nIngrese elemento %d: ",x+1); scanf("%f",var); suma+=*var++; } prom=suma/n; var=ind; for(x=0;x<n;x++) varianza+=pow(*var++ -prom,2.0); printf("\nLa varianza es: %.2f",varianza/n); system("pause=>NULL"); return 0; } 6.- Programe con apuntadores para ”n” términos de la Serie de Euler para calcular el valor aproximado de:

//con variables de tipo float funciona bien hasta 35 repeticiones #include<stdio.h> #include<stdlib.h> #include<math.h> float factor(float n) { double x,suma=1; for(x=1;x<=n;x++) suma*=x; return suma; } int main() { printf("\n%f",M_PI/2); float *ptr,x,n,suma=0; printf("\nCuantos terminos de la serie quieres calcular? "); scanf("%f",&x); ptr=(float *) malloc (x * sizeof(float)); for(n=0;n<x;n++) { *ptr=(pow(2.0,n)*pow(factor(n),2.0))/(factor(2*n+1)); suma+=*ptr++; } printf("\nValor aproximado de pi: %f",suma);

Page 64: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

system("pause=>NULL"); return 0; } 7.- Programe con apuntadores para “n” términos el producto de Wallis para calcular el valor aproximado de:

//hasta 3000 terminos se mantiene constante #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { printf("\n%f",M_PI/2); float *ptr,x,n,suma=1; printf("\nCuantos terminos de la serie quieres calcular? "); scanf("%f",&x); ptr=(float *) malloc (x * sizeof(float)); for(n=1;n<=x;n++) { *ptr=((2*n)/(2*n-1)*(2*n)/(2*n+1)); suma*=*ptr++; } printf("\nValor aproximado de pi: %f",suma); system("pause=>NULL"); return 0; } 8.- Programe con apuntadores para “n” términos la fórmula de Leibniz para calcular el valor aproximado de:

Page 65: M. en C. Eneyda Clemente Castellanos Profesora de la ... · PDF filecarrera: ingenierÍa: aeronÁutica, en computaciÓn, en control y automatizaciÓn, en comunicaciones y electrÓnica,

CARRERA: INGENIERÍA: AERONÁUTICA, EN COMPUTACIÓN, EN

CONTROL Y AUTOMATIZACIÓN, EN COMUNICACIONES Y ELECTRÓNICA,

ELÉCTRICA, MECÁNICA Y EN ROBÓTICA INDUSTRIAL

//hasta 3000 terminos se mantiene constante #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { printf("\n%f",M_PI/4); float *ptr,x,n,suma=0; printf("\nCuantos terminos de la serie quieres calcular? "); scanf("%f",&x); ptr=(float *) malloc (x * sizeof(float)); for(n=0;n<=x;n++) { *ptr=(pow(-1.0,n)/((2*n)+1)); suma+=*ptr++; } printf("\nValor aproximado de pi: %f",suma); system("pause=>NULL"); return 0; }