Está en la página 1de 24

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE INGENIERÍA

PRÁCTICA 8: “ESTRUCTURAS DE REPETICIÓN”

FUNDAMENTOS DE PROGRAMACIÓN (LAB) GPO:04

ALUMNOS: BENITEZ TRUJILLO DIANA CAROLINA


CALDERÓN CÁSTULO LEONARDO DEREK
GALLAGA VARELA SAMANTA GABRIEL

29 DE MARZO DE 2022
1) Objetivos

Elaborar programas en C para la resolución de problemas básicos que incluyan las


estructuras de repetición y la directiva define.

2) Ejercicios realizados

1. 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 dinero
suficiente en la cuenta) y salir. No se permite el sobregiro. Para determinar el saldo
inicial de la cuenta corriente, el programa, al inicio, debe permitir por una única vez
definir el saldo.

2. Hacer un programa que muestre todos los valores de y que toma la función:y = x3
- 3x2 + 5x -10, Para todos los valores de x comprendidos -10 y 10 tomando
intervalos de 0.3 en 0.3.

3. Una calculadora muy antigua podía sumar y restar, pero no tenía definida la
multiplicación entre sus operaciones. Los científicos de esa época se veían en la
obligación de realizar dicha operación utilizando sumas. Diseñe un programa que
permita implementar la multiplicación de dos números enteros positivos en esta
calculadora.

4. Un jugador empedernido quiere un programa que le permita apostar al


lanzamiento de un dado. Antes de cada lanzamiento el jugador elije un número
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 que representa
cada uno de estos números.

5. 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.

6. Escribe un programa en C que permita generar la tabla de multiplicar de un


número entero positivo N, comenzando desde 1.

7. Dada la función:

1
Y dados los valores x1, x2, ..., xn, Elabore un programa en C para calcular f(xi) para
i = 1, 2, ..., n.

El usuario ingresará n valores de x, dependiendo del rango en que se encuentre


cada uno de ellos se evaluará una de las tres funciones anteriores.

8.- Diseñe un programa para jugar a adivinar un número entre 0 y 100. El programa
irá dando pistas al jugador indicándole si el número introducido por el jugador es
menor o mayor que el número que tiene que adivinar. El juego termina cuando el
jugador adivina el número o decide terminar de jugar (por ejemplo, escribiendo un
número negativo).

9.- Elabore un programa que lea los sig. datos de N trabajadores : Clave, Categoría,
Sueldo, Años de antigüedad, Género.

Calcule lo siguiente :

a) Sueldo promedio por cada categoría.

b) Cuántos empleados ganan mas de $ 10,000.

c) Cuántos empleados tienen mas de 15 años de antigüedad.

d) Cuántas mujeres de categoría A ganan mas de $ 8,500.

e) Cuántos empleados con 10 o más años de antigüedad, ganan menos de $ 6,000.

Existen 3 categorías : A, B y C

3) Ejercicios que no salieron


Se realizaron todos los ejercicios.

4) Planteamiento de los ejercicios y resultados obtenidos

1. 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 dinero suficiente en la cuenta) y salir. No se permite el sobregiro. Para

2
determinar el saldo inicial de la cuenta corriente, el programa, al inicio, debe
permitir por una única vez definir el saldo.

/*programa que simule un cajero automático

Entradas: un saldo y una selección de movimientos

Salidas: movimientos de retiro, consulta de saldo y depósitos

Restricciones: solo números positivos

*/

#include<stdio.h>

#include<locale.h>

#include<stdlib.h>

int main ()

setlocale(LC_CTYPE,"spanish");

int des,mov;

float saldo,deposito,retiro;

printf("\n\n\t\t\t\t\tCajero automático");

printf("\n\n\tIngrese su saldo: ");

scanf("%f",&saldo);

system("cls");

printf("\n\n\tSi desea realizar un movimiento seleccione 1, de lo contrario


seleccione 2\n\n\t ");

scanf("%d",&des);

system("cls");

while (des==1){

3
printf("\n\n\tMovimientos: ");

printf("\n\n\t1.- Despósito");

printf("\n\n\t2.- Consulta de saldo");

printf("\n\n\t3.- Retiro\n\n\t");

scanf("%d",&mov);

system("cls");

switch (mov)

case 1:

printf("\n\n\tIngrese el monto a depositar: ");

scanf("%f",&deposito);

saldo=saldo+deposito;

break;

case 2:

printf("\n\n\tSu saldo actual es de $%.2f",saldo);

break;

case 3:

printf("\n\n\tIngrese el monto a retirar: ");

scanf("%f",&retiro);

if (retiro>saldo){

printf("\n\n\tNo cuenta con esa cantidad de dinero


disponible, intente con una cifra menor");

4
else {

saldo=saldo-retiro;

break;

printf("\n\n\tSi desea realizar un movimiento seleccione 1, de lo


contrario seleccione 2\n\n\t ");

scanf("%d",&des);

system("cls");

printf("\n\n\tGracias, vuelva pronto");

5
6
2. Hacer un programa que muestre todos los valores de y que toma la
función:y = x3 - 3x2 + 5x -10, Para todos los valores de x comprendidos -10 y
10 tomando intervalos de 0.3 en 0.3.

/*Programa que muestra todos los valores de y que toma la función:y = x3 - 3x2 + 5x
-10

Entradas: los valores de x

Salidas: los valores de y

Restricciones: solo de -10 a 10, con intervalos de 0.3

*/

#include<stdio.h>

#include<locale.h>

7
#include<math.h>

int main()

setlocale(LC_CTYPE,"spanish");

float y, x;

printf("\n\n\tPrograma que muestra todos los valores de y que toma la función:y =


x3 - 3x2 + 5x -10 para todos los valores de x comprendidos -10 y 10 tomando
intervalos de 0.3 en 0.3.");

for (x=-10;x<=10;x+=0.3)

y=pow(x,3) - (3*(pow(x,2)))+ (5*x) -10;

printf("\n\n\t %.2f", y);

8
3. Una calculadora muy antigua podía sumar y restar, pero no tenía definida la
multiplicación entre sus operaciones. Los científicos de esa época se veían en
la obligación de realizar dicha operación utilizando sumas. Diseñe un
programa que permita implementar la multiplicación de dos números enteros
positivos en esta calculadora.

/*
Entradas: Dos números enteros positivos
Salidas: El resultado de la multiplicación
Restricciones: Ninguna
*/

#include<stdio.h>
#include<locale.h>

int main ()
{
setlocale(LC_CTYPE,"SPANISH");
int a,b,r,i;
i=1;

9
r=0;
printf("\n\n\tIngrese dos números enteros positivos:\n\t");
scanf("%d %d", &a, &b);
while(i<=a)
{
r+=b;
i++;
}
printf("\n\n\tEl resultado de %d*%d es: %d\n\n", a, b, r);
}

4. Un jugador empedernido quiere un programa que le permita apostar al


lanzamiento de un dado. Antes de cada lanzamiento el jugador elige un
número 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 que representa cada uno de estos números.

/*
Entradas: si desea jugar y el nùmero al que apuesta
Salidas: Cuàntos juegos ganó, cuántos perdió, el procentaje del total de juegos
que representa cada uno de estos números
Restricciones: Solo puede apostar por un número entero entre 1 y 6
*/
#include<stdio.h>
#include<locale.h>
#include<stdlib.h>
#include<time.h>
int main ()
{
setlocale(LC_CTYPE,"spanish");
int jugar, apuesta, gana=0, pierde=0, juegos=0, resultado;
float porcentaje_gana, porcentaje_pierde;
printf("\n\n\t\tBIENVENIDO AL CASINO GANA");
printf("\n\n\t¿Desea jugar?\n\t1)Si\n\t2)No\n\t");

10
scanf("%d", &jugar);
while(jugar==1)
{
printf("\n\n\tElija un número entre 1 y 6 al que desee apostar: ");
scanf("%d", &apuesta);
srand(time(NULL));
resultado = rand()%6+1;
if(resultado==apuesta)
{
printf("\n\n\tFelicidades, ganó");
gana++;
}
else
{
printf("\n\n\tLo sentimos, suerte para la próxima");
pierde++;
}
juegos++;
printf("\n\n\tDesea volver a jugar?\n\t1)Si\n\t2)No\n\t");
scanf("%d", &jugar);
}
if(juegos>0)
{
system("cls");
porcentaje_gana = (gana*100)/juegos;
porcentaje_pierde = (pierde*100)/juegos;
printf("\n\n\tUsted ganó %d juegos y perdió %d juegos", gana, pierde);
printf("\n\n\tGanó el %.2f%c y perdió el %.2f%c del total de juegos",
porcentaje_gana, 37, porcentaje_pierde, 37);
printf("\n\n\tVuelva pronto\n");
}
else
printf("\n\n\tHasta luego\n");
}

11
5. 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

Entradas: las temperaturas límite y el valor del incremento

Salidas: Todos los valores dentro del intervalo en grados celsius y fahrenheit

Restricciones: Ingresar las temperaturas en celsius

*/

#include<stdio.h>

#include<locale.h>

int main()

setlocale(LC_CTYPE,"spanish");

int opc;

float tb, ta, in, ftb, fta, ctb, cta, res;

printf("\n\n\tPrograma que calcula y muestra los valores de un intervalo de


temperatura en grados Fahrenheit y grados Centígrados.");

printf("\n\n\t¿Qué escala de grados es? 1-Fahrenheit; 2-Celsius \n\n\t : ");

12
scanf("%d", &opc);

switch (opc)

case 1:

printf("\n\n\tIngresa la temperatura más baja: ");

scanf("%f", &tb);

printf("\n\n\tIngresa la temperatura más alta: ");

scanf("%f", &ta);

printf("\n\n\tIngresa el valor del intervalo: ");

scanf("%f", &in);

ctb=(tb/1.8)-32;

cta=(ta/1.8)-32;

for (res=tb; res<=ta; res+=in)

printf("\n\n\tLos valores en Fahrenheit son: %.2f", res);

printf("\n\n\t ");

for (res=ctb; res<=cta; res+=in)

printf("\n\n\tLos valores en Celsius son: %.2f", res);

break;

case 2:

printf("\n\n\tIngresa la temperatura más baja: ");

scanf("%f", &tb);

printf("\n\n\tIngresa la temperatura más alta: ");

scanf("%f", &ta);

printf("\n\n\tIngresa el valor del intervalo: ");

13
scanf("%f", &in);

ftb=(tb*1.8)+32;

fta=(ta*1.8)+32;

for (res=tb; res<=ta; res+=in)

printf("\n\n\tLos valores en Celsius son: %.2f", res);

printf("\n\n\t ");

for (res=ftb; res<=fta; res+=in)

printf("\n\n\tLos valores en Fahrenheit son: %.2f", res);

break;

default:

printf("\n\n\tOpción no válida");

14
6. Escribe un programa en C que permita generar la tabla de multiplicar de un
número entero positivo N, comenzando desde 1.

/*Programa que genera la tabla de multiplicar de un número entero positivo


Entradas: un número entero positivo
Salidas: su tabla de multiplicar
Restricciones: que sea número entero positivo, la tabla de multiplicar solo se
generará del 1 al 10
*/

#include<stdio.h>
#include<locale.h>
#include<math.h>
int main()
{
int num;
printf("\n\n\t Dame un numero entero positivo ");
scanf("%d", &num);
printf("\n\n\t La tabla de multiplicar de este numero es:");
printf("\n\n\t 1");
printf("\n\n\t %d", num*1);
printf("\n\n\t %d", num*2);

15
printf("\n\n\t %d", num*3);
printf("\n\n\t %d", num*4);
printf("\n\n\t %d", num*5);
printf("\n\n\t %d", num*6);
printf("\n\n\t %d", num*7);
printf("\n\n\t %d", num*8);
printf("\n\n\t %d", num*9);
printf("\n\n\t %d", num*10);
}

Guadalupe49:~ alumno$ gcc q.c -o q


Guadalupe49:~ alumno$ ./q

Dame un numero entero positivo 5

La tabla de multiplicar de este numero es:

10

15

20

25

30

35

40

16
45

50

7. Dada la función:

Y dados los valores x1, x2, ..., xn, Elabore un programa en C para calcular f(xi)
para i = 1, 2, ..., n.

El usuario ingresará n valores de x, dependiendo del rango en que se


encuentre cada uno de ellos se evaluará una de las tres funciones anteriores.

/*Programa para calcular f(xi) dados valores de x

Entradas: los valores de x

Salidas: los valores de f(xi)

Restricciones: ninguna

*/

#include<stdio.h>
#include<math.h>
int main()
{
float x,y;
printf("\n\n\tIngrese un valor para x");
scanf("%f",&x);
if (x<=0)
{

17
y=pow(x,5)-3;
printf("\n\n\tEl valor de la funcion es de %.2f",y);
}
if (x>0 && x<=10)
{
y=pow(x,2)+4;
printf("\n\n\tEl valor de la funcion es de %.2f",y);
}
if (x>10)
{
y=x+5;
printf("\n\n\tEl valor de la funcion es de %.2f",y);
}
}

Guadalupe49:~ alumno$ gcc e.c -o e


Guadalupe49:~ alumno$ ./e

Ingrese un valor para x 26

El valor de la funcion es de 31.00

8.- Diseñe un programa para jugar a adivinar un número entre 0 y 100. El


programa irá dando pistas al jugador indicándole si el número introducido por
el jugador es menor o mayor que el número que tiene que adivinar. El juego
termina cuando el jugador adivina el número o decide terminar de jugar (por
ejemplo, escribiendo un número negativo).

/*Programa para jugar a adivinar un número entre 0 y 100 por medio de pistas.

Entradas: La respuesta del número

Salidas: Mensaje de sí adivinó o no, y en caso de que no la pista.

Restricciones: Solo números entre 0 y 100

*/

18
#include<stdio.h>

#include<locale.h>

#include<stdlib.h>

#include<time.h>

int main()

float cor, eleg;

int res;

setlocale(LC_CTYPE, "Spanish");

printf("\n\n\tJuguemos a adivinar.");

printf("\n\n\tIngresa un número negativo si deseas terminar el juego.");

srand(time(NULL));

cor=rand()%101;

do

printf("\n\n\tAdivina el número que está entre 0 y 100: ");

scanf("%f", &eleg);

if(eleg==cor)

printf("\n\n\tFelicidades, adivinaste.");

break;

else

if (eleg<0)

printf("\n\n\tConcluiste el juego.");

19
break;

else

if (eleg<cor)

printf("\n\n\tIncorrecto, el número es mayor al


que ingresaste.");

else

if (eleg>cor)

printf("\n\n\tIncorrecto, el número es
menor al que ingresaste.");

while(eleg!=cor&&eleg>0);

printf("\n\n\tHasta luego.");

20
9.- Elabore un programa que lea los sig. datos de N trabajadores : Clave,
Categoría, Sueldo, Años de antigüedad, Género.

Calcule lo siguiente :

a) Sueldo promedio por cada categoría.


b) Cuántos empleados ganan mas de $ 10,000.
c) Cuántos empleados tienen mas de 15 años de antigüedad.
d) Cuántas mujeres de categoría A ganan mas de $ 8,500.
e) Cuántos empleados con 10 o más años de antigüedad, ganan menos de $
6,000.

Existen 3 categorías : A, B y C

/*
Entradas: Clave, Categoría, Sueldo, Años de antigüedad, Género.
Salidas: Sueldo promedio por categoría, cuántos empleados ganan mas de $
10,000, cuántos empleados tienen mas de 15 años de antigüedad,
cuántas mujeres de categoría A ganan más de $ 8,500, cuántos empleados con 10
o más años de antigüedad ganan menos de $ 6,000.
Restricciones: No hay cantidades negativas y solo hay tres categorías.
*/

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

int main ()
{
setlocale(LC_CTYPE, "spanish");
int empleados, i, antiguedad, genero, a=0, b=0, c=0, inciso_b=0, inciso_c=0,
inciso_d=0, inciso_e=0;
float sueldo, sueldo_a, sueldo_b, sueldo_c, promedio_a, promedio_b,
promedio_c;
char clave[10], categoria;
p("\n\n\tIngrese el número total de empleados: ");
s("%d", &empleados);
for(i=1; i<=empleados; i++)
{
p("\n\n\n\tIngrese los datos del empleado %d:", i);
p("\n\n\tClave: ");
s("%s", &clave);
p("\n\tCategoría (A,B,C): ");

21
s("%s", &categoria);
p("\n\tSueldo: ");
s("%f", &sueldo);
p("\n\tAños de antigúedad: ");
s("%d", &antiguedad);
p("\n\t1) Mujer 2) Hombre Género: ");
s("%d", &genero);
switch(categoria)
{
case 'a': case 'A':
sueldo_a+=sueldo;
a++;
if(genero==1&&sueldo>8500)
inciso_d++;
break;
case 'b': case 'B':
sueldo_b+=sueldo;
b++;
break;
case 'c': case 'C':
sueldo_c+=sueldo;
c++;
break;
}
if(sueldo>10000)
inciso_b++;
if(antiguedad>15)
inciso_c++;
if(antiguedad>=10&&sueldo<6000)
inciso_e++;
}
promedio_a = sueldo_a/a;
promedio_b = sueldo_b/b;
promedio_c = sueldo_c/c;
system("cls");
p("\n\n\tEl sueldo promedio en la categoría A es: $%.2f", promedio_a);
p("\n\n\tEl sueldo promedio en la categoría B es: $%.2f", promedio_b);
p("\n\n\tEl sueldo promedio en la categoría C es: $%.2f", promedio_c);
p("\n\n\t%d empleados ganan más de $10,000", inciso_b);
p("\n\n\t%d empleados tienen más de 15 años de antigúedad", inciso_c);
p("\n\n\t%d mujeres de categoría A ganan más de $8500", inciso_d);
p("\n\n\t%d empleados con 10 o más años de antigúedad, ganan menos de
$6000\n\n", inciso_e);
}

22
5) Aprendizaje individual

- BENITEZ TRUJILLO DIANA CAROLINA


Con esta práctica logré repasar el uso de “for” y “while” para crear estructuras
iterativas, y así resolver problemas que requieren que ciertas instrucciones se
repitan.

- CALDERÓN CÁSTULO LEONARDO DEREK


Mientras realizaba la práctica pude reforzar mis conocimientos sobre cómo
utilizar y programar los ciclos, colocando las condiciones claras para que
estos se repitan, también la diferencia entre los ciclos “for” y “while”, el
cuándo emplearlos y de qué manera para que se cumpla lo requerido.

- GALLAGA VARELA SAMANTA GABRIEL


Durante la práctica aprendí a usar comandos juntos, por ejemplo usar un
comando “si” dentro de un seleccionador de casos; también aprendí a usar él
comando para borrar la pantalla, para que él programa se vea mejor y sea
más sencillo de visualizar y aplicar restricciones para ciertos movimientos.

23

También podría gustarte