OBJETIVOS

a) El alumno conocerá las tres formas básicas existentes en C para
realizariteraciones y aprenderá a manejar la...
LISTA DE EJERCICIOS

1. Desarrollar un programa que eleve un número a cualquier potencia sin
utilizar labiblioteca math.h....
6. Escribir un programa que calcule y muestre los valores que se obtienen al
realizar log(x) en un intervalo de valores pa...
Y devuelve como salida el nombre y el promedio del alumno. El programa
debe preguntar si desea continuar calculando promed...
EJERCICIOS QUE NO SALIERON
El ejercicio 14 no salió con ciclos, la única en que pudimos reproducir la pirámide
fue imprimi...
DESARROLLO DE ERJERCICIOS
1) Ejercicio 2
Desarrollar un programa que eleve un número a cualquier potencia sin utilizar la
...
2) Ejercicio 4
Escribir un programa que calcule y muestre los valores de un intervalo de
temperatura en grados Fahrenheit ...
8
3) Ejercicio 6
Escribir un programa que reciba un número entero y diga si éste es primo o no.
#include<stdio.h>
#include<s...
4) Ejercicio 8
Realizar un programa que obtenga la siguiente numeración y la siguiente posición.

1
232
34543
4567654
5678...
11
5) Ejercicio 10
Escribir un programa que calcule y muestre los valores que se obtienen al realizar
sen(x) en un intervalo ...
13
6) Ejercicio 12
Escribir un programa que calcule y muestre los valores que se obtienen al realizar
log(x) en un intervalo ...
15
7) Ejercicio 14
Escribir un programa que obtenga la siguiente numeración y en la siguiente
posición.
1 6 15 20 15 6 1
1 5 ...
8) Ejercicio 16
Hacer un programa que calcule el factorial de un número mayor a cero.

#include<stdlib.h>
#include<stdio.h...
9) Ejercicio 18
Escribir un programa para calcular sen(x), cuyo desarrollo en serie es:

#include<stdlib.h>
#include<stdio...
19
10) Ejercicio 20
Elaborar un programa que permita sumar del 1 hasta el 100.
#include<stdlib.h>
#include<stdio.h>
#include<...
11) Ejercicio a
Construya un programa que simule un cajero automático muy simple. Este
programa debe permitir realizar múl...
saldo es de
%c%.2fnntPresione un
boton para
continuar",36,deposito,36,sa
ldo);
getch(); fflush(stdin);
}
else
printf("nntE...
printf("nntAhora
ingrese numero de telefono:");
scanf("%d",&numero);
printf("nntRecarga en
proceso,nnten breve resiviras u...
24
25
12) Ejercicio b
Elaborar un programa en lenguaje C que lea los siguientes datos de un alumno:

Nombre y
5 calificaciones(m...
27
28
13) Ejercicio c
Un jugador empedernido quiere un programa que le permita apostar el
lanzamiento de un dado. Antes de cada ...
if(apuesta==dado){
printf("nntFelicidades %s, ganaste esta
partida, call%c %d.",nombre,162,dado);
gano++;
}
else
printf("n...
31
APRENDIZAJE INDIVIDUAL

Alba Hernández Jorge Iván:
En estas prácticas, se me dificultó un poco la escritura de los ciclos ...
Upcoming SlideShare
Loading in …5
×

Practica 11 Laboratorio de Computación para Ingenieros FI

2,533 views

Published on

Reporte con ejercicios resueltos de práctica 10 de laboratorio de computación para ingenieros. Facultad de Ingeniería UNAM.

Published in: Education
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
2,533
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
39
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Practica 11 Laboratorio de Computación para Ingenieros FI

  1. 1. OBJETIVOS a) El alumno conocerá las tres formas básicas existentes en C para realizariteraciones y aprenderá a manejar las sentencias while, do-while y for. b) El alumno comprenderá la importancia que tienen estas instrucciones para resolverproblemas de programación y podrá distinguir cuál instrucción es más apropiadapara enfrentar un problema específico. Al final de esta práctica el alumno podrá: 1. Realizar exitosamente requieraniteraciones. programas que involucren procesos que 1
  2. 2. LISTA DE EJERCICIOS 1. Desarrollar un programa que eleve un número a cualquier potencia sin utilizar labiblioteca math.h. El usuario debe introducir la base y la potencia. 2. Escribir un programa que calcule y muestre los valores de un intervalo de temperatura en grados Fahrenheit y grados Centígrados. El usuario seleccionará la temperatura más baja y más alta así como el incremento de temperatura. La relaciónmatemática es F = ( 9/5 ) C + 32 donde F = Temperatura en grados Fahrenheit. C = Temperatura en grados Centígrados. 3. Escribir un programa que reciba un número entero y diga si éste es primo o no. 4. Realizar un programa que obtenga la siguiente numeración y la siguiente posición. 1 232 34543 4567654 567898765 5. Escribir un programa que calcule y muestre los valores que se obtienen al realizar sen(x) en un intervalo de valores para x. El usuario deberá introducir seleccionará elvalor inicial, el valor final, así como el incremento de la x. 2
  3. 3. 6. Escribir un programa que calcule y muestre los valores que se obtienen al realizar log(x) en un intervalo de valores para x. El usuario deberá introducir seleccionará elvalor inicial, el valor final, así como el incremento de la x. 7. Escribir un programa que obtenga la siguiente numeración y en la siguiente posición. 1 6 15 20 15 6 1 1 5 10 10 5 1 14641 1331 121 1 8. Hacer un programa que calcule el factorial de un número mayor a cero. 9. Escribir un programa para calcular sen(x), cuyo desarrollo en serie es: 10. Elaborar un programa que permita sumar del 1 hasta el 100. 11. Construya un programa que simule un cajero automático muy simple. Este programa debe permitir realizar múltiples operaciones mientras está en funcionamiento, todo sobre una misma cuenta corriente. Las operaciones pueden ser depósitos, consultas de saldo, retiros (siempre y cuando se cuente con el dinero suficiente en la cuenta) y salir. No se permite el sobregiro. Para determinar el saldo de la cuente corriente, el programa, al inicio, debe permitir por única vez el saldo. 12. Elaborar un programa en lenguaje C que lea los siguientes datos de un alumno: Nombre y 5 calificaciones(mediante un ciclo) 3
  4. 4. Y devuelve como salida el nombre y el promedio del alumno. El programa debe preguntar si desea continuar calculando promedios en caso afirmativo pregunte los datos de otro alumno e imprima sus salidas correspondientes. Cuando ya no se desee continuar ingresando datos al programa debe imprimir: a) La cantidad de alumnos a la que se le calculó el promedio b) El promedio del grupo y c) La cantidad de alumnos con promedio mayor a 8 13. Un jugador empedernido quiere un programa que le permita apostar el lanzamiento de un dado. Antes decada lanzamiento el jugador elige entre 1 y 6. Si al lanzar el dado obtiene el mismo número al que apostó, gana. De lo contrario pierde. El jugador desea que este programa le permita jugar repetidamente, y que lleve una estadística para saber al finalizar, cuántos juegos ganó y cuántos perdió, así como el porcentaje del total de juegos cada uno de estos números. 4
  5. 5. EJERCICIOS QUE NO SALIERON El ejercicio 14 no salió con ciclos, la única en que pudimos reproducir la pirámide fue imprimiendo los números para cada renglón. Decidimos no incluir ese ejercicio en la prácica. 5
  6. 6. DESARROLLO DE ERJERCICIOS 1) Ejercicio 2 Desarrollar un programa que eleve un número a cualquier potencia sin utilizar la biblioteca math.h. El usuario debe introducir la base y la potencia. #include<stdlib.h> #include<stdio.h> #include<conio.h> main (){ intnum,potencia,i,num_elevado; printf("nntEste programa eleba un numero a una potencia.nntIngresa un numero:nnt"); scanf("%d", &num); printf ("nntDame la potencia a la que quieres elevar el numeronnt"); scanf("%d",&potencia); num_elevado=num; for(i=2;i<=potencia;i++){ num_elevado*=num; } printf("nntEl resultado de elevar %d a la %d es %dnnt",num,potencia,num_elevado); fflush(stdin); getch(); } 6
  7. 7. 2) Ejercicio 4 Escribir un programa que calcule y muestre los valores de un intervalo de temperatura en grados Fahrenheit y grados Centígrados. El usuario seleccionará la temperatura más baja y más alta así como el incremento de temperatura. La relación matemática es F = ( 9/5 ) C + 32 donde F = Temperatura en grados Fahrenheit. C = Temperatura en grados Centígrados. /*Programa que calcula y muestra los valores de un intervalo de temperatura en grados Fahrenheit y grados centígrados. El usuario selecciona la temperatura más alta, la más baja y el incremento */ #include<stdlib.h> #include<stdio.h> #include<conio.h> main(void){ int cent, inicio,fin, i,temp,inter; floatfar; printf("nntPara mostrar los valores de temperatura en un intervado, nntingresa la temperatura inicial en grados centigrados:nnt "); scanf("%d",&inicio); printf("nntAhora ingresa la temperatua final en grados centigrados:nnt"); scanf("%d",&fin); if(inicio>fin){ temp=inicio; inicio=fin; fin=temp; } printf("nntIngresa el intervalo con el que se se mostraran los resultados:nnt"); scanf("%d",&inter); for(i=inicio;i<=fin;i+=inter){ printf("nnt%d%cC = %.2f,%cF",i, 248,far=(i*9/5)+32,248); } printf("nnt"); system("pause"); } 7
  8. 8. 8
  9. 9. 3) Ejercicio 6 Escribir un programa que reciba un número entero y diga si éste es primo o no. #include<stdio.h> #include<stdlib.h> #include<conio.h> main(){ intnum,i,primo; charop; do { system("cls"); printf("nntPara saber si un numero es primo, ingrese el numro:nt"); scanf("%d",&num);fflush(stdin); primo=0; for(i=2;i<num;i++){ if(num%i==0) primo=1; } if(primo==1) printf("nntEl numero %d no es primo",num); else printf("nntEl numero %d es primo",num); printf("nnt%cDesea saber si otro numero es primo%c(s/n)",168,63); scanf("%c",&op); fflush(stdin); }while(op=='s'||op=='S'); } 9
  10. 10. 4) Ejercicio 8 Realizar un programa que obtenga la siguiente numeración y la siguiente posición. 1 232 34543 4567654 567898765 #include<stdlib.h> #include<stdio.h> #include<conio.h> main(){ inti,j,k,centro=-1; printf("ttt Programa que realiza una piramide de numerosnn"); for(i=1;i<=5;i++){ for(j=5;j>=i;j--) printf(" "); centro+=2; if(i==1) printf("1"); else{ for(k=i;k<=centro;k++) printf("%d",k); for(k=centro;k>=i;k--) printf("%d",k); } printf("n"); } printf("nnt"); system("pause"); } 10
  11. 11. 11
  12. 12. 5) Ejercicio 10 Escribir un programa que calcule y muestre los valores que se obtienen al realizar sen(x) en un intervalo de valores para x. El usuario deberá introducir seleccionará el valor inicial, el valor final, así como el incremento de la x. #include<stdlib.h> #include<stdio.h> #include<conio.h> #include<math.h> main(void){ float x, seno, inicio, fin, incremento,temp; printf("nntPara conocer los valores que toma sen(x) en un intervalo ntdonde x=radianes,nntIngresa el valor inicial: "); scanf("%f",&inicio); printf("nntAhora el valor final: "); scanf("%f",&fin); printf("nntAhora ingresa el incremento a utilizar: "); incremento=abs(incremento); if(inicio>fin){ temp=inicio; inicio=fin; fin=temp; } scanf("%f",&incremento); for(x=inicio;x<=fin;x+=incremento){ seno=sin(x); printf("nntsen(%f)=%.4f",x,seno); } printf("nnt"); system("pause"); } 12
  13. 13. 13
  14. 14. 6) Ejercicio 12 Escribir un programa que calcule y muestre los valores que se obtienen al realizar log(x) en un intervalo de valores para x. El usuario deberá introducir seleccionará el valor inicial, el valor final, así como el incremento de la x. #include<stdio.h> #include<conio.h> #include<math.h> main(){ float x, seno, inicio, fin, incremento,temp; printf("nntPara conocer los valores que toma sen(x) en un intervalo ntdonde x=radianes,nntIngresa el valor inicial: "); scanf("%f",&inicio); printf("nntAhora el valor final: "); scanf("%f",&fin); printf("nntAhora ingresa elel incremento a utilizar: "); incremento=abs(incremento); if(inicio>fin){ temp=inicio; inicio=fin; fin=temp; } scanf("%f",&incremento); for(x=inicio;x<=fin;x+=incremento){ seno=log(x); printf("nntsen(%f)=%.4f",x,seno); } printf("nnt"); system("pause"); } 14
  15. 15. 15
  16. 16. 7) Ejercicio 14 Escribir un programa que obtenga la siguiente numeración y en la siguiente posición. 1 6 15 20 15 6 1 1 5 10 10 5 1 14641 1331 121 1 16
  17. 17. 8) Ejercicio 16 Hacer un programa que calcule el factorial de un número mayor a cero. #include<stdlib.h> #include<stdio.h> #include<conio.h> main(void){ intfac=1,i,num; printf("nntPara obtener e factorial de un numero,nntIngrese un numero mayor a cero: "); scanf("%d",&num); while (num<=0){ printf("nnt%d no es mayor a cero, ontente de nuevo: ",num); scanf("%d",&num); } printf("nnt%d%c= 1",num,33); for(i=2;i<=num;i++){ fac*=i; printf("%c%d",42,i); } printf(" =%dnnt",fac); system("pause"); } 17
  18. 18. 9) Ejercicio 18 Escribir un programa para calcular sen(x), cuyo desarrollo en serie es: #include<stdlib.h> #include<stdio.h> #include<conio.h> #include<math.h> main(){ float x, inicio, fin, incremento,temp; double seno;/*usamos doublé, porque el resultado no cabe en un float */ printf("nntPara conocer los valores que toma sen(x) en un intervalo ntdonde x=radianes,nntIngresa el valor inicial: "); scanf("%f",&inicio); printf("nntAhora el valor final: "); scanf("%f",&fin); printf("nntAhora ingresa elel incremento a utilizar: "); incremento=abs(incremento); if(inicio>fin){ temp=inicio; inicio=fin; fin=temp; } scanf("%f",&incremento); for(x=inicio;x<=fin;x+=incremento){ seno=sin(x); printf("nntsen(%.4lf)=%.4f",x,seno); } printf("nnt"); system("pause"); } 18
  19. 19. 19
  20. 20. 10) Ejercicio 20 Elaborar un programa que permita sumar del 1 hasta el 100. #include<stdlib.h> #include<stdio.h> #include<conio.h> main(){ inti,suma; suma=0; printf("tttSUMA NUMEROS DEL 1 AL 100n"); for(i=0;i<=99;i++){ suma=i+1; printf("nt%d+1=%d",i,suma); } getch(); } 20
  21. 21. 11) Ejercicio a Construya un programa que simule un cajero automático muy simple. Este programa debe permitir realizar múltiples operaciones mientras está en funcionamiento, todo sobre una misma cuenta corriente. Las operaciones pueden ser depósitos, consultas de saldo, retiros (siempre y cuando se cuente con el dinero suficiente en la cuenta) y salir. No se permite el sobregiro. Para determinar el saldo de la cuente corriente, el programa, al inicio, debe permitir por única vez el saldo. #include<stdlib.h> #include<stdio.h> #include<conio.h> main(){ intretiro,numero,deposito; float saldo=6543.25,tiempo;/*Tengo un saldo inicial que se irá modificando en cada movimiento*/ charop; printf("nntBuendia, has entrado a tu cuenta de TRANSIACCIONES,nntel banco que te ofrese los mejores rendimientos. nnt"); do{ printf("nnt%cQu%c desea hacer%c:",168,130,63); printf("nnttA) Consulta de saldonttB) DepositonttC) Retiro en efectivonttD) Compra de tiempo airenttE) salirnntIngreseopci%cn:nnt",162); op=getch(); fflush(stdin); switch(op){ case 'a': case 'A': printf("nntSu saldo es de: %c%.2fnntPresione un boton para continuar",36,saldo); getch(); fflush(stdin); break; case 'b': case 'B': printf("Ingrese el monto a depositar (debe ser multiplo de 100): "); scanf("%d",&deposito); if(deposito>0&&deposito%100==0){ saldo+=deposito; printf("nntUste acaba de dopisitar: %c%d, Ahora su 21
  22. 22. saldo es de %c%.2fnntPresione un boton para continuar",36,deposito,36,sa ldo); getch(); fflush(stdin); } else printf("nntError..."); getch(); fflush(stdin); break; case'c': case'C': printf("nntIngrese cantidad que desea retirar (deben ser multiplos de 100): "); scanf("%d",&retiro); if (retiro>=0&&retiro%100==0){ while(retiro>saldo){ printf("nntNo tiene suficiente dinero en la cuenta para retirar %c%dnntIngrese otra cantidad: ",32,retiro); scanf("%d",&retiro); } saldo=saldo-retiro; printf("nntAcaba de retirar %c%d, su saldo ahora es de %c%.2fnntPresione un boton para continuar",32,retiro,32,saldo); getch(); fflush(stdin); } else{ printf("nntError..."); getch(); fflush(stdin);} break; case'd': case 'D': printf("nntIngrese monto de tiempo aire que desea comprar: "); scanf("%f",&tiempo); if(tiempo>0){ if(tiempo<=saldo){ saldo-=tiempo; 22
  23. 23. printf("nntAhora ingrese numero de telefono:"); scanf("%d",&numero); printf("nntRecarga en proceso,nnten breve resiviras un mensaje de confirmacionnntPresione un boton para continuar"); getch(); fflush(stdin); } else{ printf("nntNo tiene suficiente dinero en la cuenta"); printf("nntnntPresione un boton para continuar"); getch(); fflush(stdin); } } else{ printf("nntError..."); getch(); fflush(stdin); } break; case 'e': case'E': printf("nntHa elegido salir, recuerde retirar tarjeta al finalizar...nntGracias por su preferencia."); getch(); fflush(stdin); break; default: printf("Error..."); } system("cls"); } while (op!='e'&&op!='E'); } 23
  24. 24. 24
  25. 25. 25
  26. 26. 12) Ejercicio b Elaborar un programa en lenguaje C que lea los siguientes datos de un alumno: Nombre y 5 calificaciones(mediante un ciclo) Y devuelve como salida el nombre y el promedio del alumno. El programa debe preguntar si desea continuar calculando promedios en caso afirmativo pregunte los datos de otro alumno e imprima sus salidas correspondientes. Cuando ya no se desee continuar ingresando datos al programa debe imprimir: a) La cantidad de alumnos a la que se le calculó el promedio b) El promedio del grupo y c) La cantidad de alumnos con promedio mayor a 8 26
  27. 27. 27
  28. 28. 28
  29. 29. 13) Ejercicio c Un jugador empedernido quiere un programa que le permita apostar el lanzamiento de un dado. Antes de cada lanzamiento el jugador elige entre 1 y 6. Si al lanzar el dado obtiene el mismo número al que apostó, gana. De lo contrario pierde. El jugador desea que este programa le permita jugar repetidamente, y que lleve una estadística para saber al finalizar, cuántos juegos ganó y cuántos perdió, así como el porcentaje del total de juegos cada uno de estos números. #include<stdlib.h> #include<stdio.h> #include<conio.h> #include<time.h> main(){ floatperdidas_porc,ganancias_porc; intdado,juegos_tot=0,gano=0,perdio,apuesta; charresp,nombre[15]; printf("nnt Hola, ingresa tu nombre:nt"); gets(nombre); system("cls");fflush(stdin); printf("nnt%s, este es un simulador lanzamiento de dados.nnt%cDeseasparticipar%c (s/n)",nombre,168,63); scanf("%c",&resp);system("cls"); fflush(stdin); while(resp=='s' || resp=='S'){ juegos_tot++; printf("nnt%cQu%cn%cmero eliges, del 1 al 6nt",168,130,163); scanf("%d",&apuesta); while(apuesta<=0||apuesta>6){ printf("nntError, no existe ese n%cmero para la epuesta.nntIngresa de nuevo un n%cmero entre 1 y 6",163,163); scanf("%d",&apuesta); } printf("nntListo %s, estoy a punto de lanzar mi dado virtual.nt",nombre); system("pause"); fflush(stdin); srand((unsigned)time(NULL)); dado=rand()%6+1; 29
  30. 30. if(apuesta==dado){ printf("nntFelicidades %s, ganaste esta partida, call%c %d.",nombre,162,dado); gano++; } else printf("nntLo siento mucho %s, has perdido, call%c %d.",nombre,162,dado); printf("nnt%s, %cDeseas lanzar de nuevo%c(s/n)nt",nombre,168,63); scanf("%c",&resp);system("cls"); fflush(stdin); } perdio=juegos_tot-gano; ganancias_porc=gano*100/juegos_tot; perdidas_porc=100-ganancias_porc; system("cls"); printf("nntAl finalizar el juego, %s gan%c %d juegos de %d, que representa un %%%.2f del totalnnt, perdi%c %d que es un %%%.2fnnt",nombre,162,gano,juegos_tot,ganancias_p orc,162,perdio,perdidas_porc); printf("nnt"); system("pause"); } 30
  31. 31. 31
  32. 32. APRENDIZAJE INDIVIDUAL Alba Hernández Jorge Iván: En estas prácticas, se me dificultó un poco la escritura de los ciclos anidados. Logré apreciar que a estas alturas ya tenemos muchas herramientas para realizar restricciones a nuestros programas y obligar al usuario a darnos datos correctos. Fue una práctica con algunos ejercicios muy difíciles (como el cajero automático, el lanzamiento del dado y los triángulos de números) y otros muy sencillos (como los números factoriales o la suma del 1 al 100). García Márquez Stephanie Verónica. Esta práctica en lo personal fue complicada para mí, ya que tuve muchos problemas con los contadores, en ocasiones el compilador arrojaba datos incorrectos y en ocasiones estaba bien, además practique los ciclos anidados, los cuales desde mi punto de vista se debe tener muy en claro la sintaxis , además de las condicionantes. Sin embargo es cuestión de practicar y no desesperarse. Gómez López Cristian: En este tema pude hacer programas que incluyen “iteraciones”, asi como identificar que instrucciones debemos usar en cada tipo de casos. 32

×