Está en la página 1de 27

ESCUELA SUPERIOR POLITÉCNICA DE

CHIMBORAZO
FACULTAD DE INFORMTICA Y ELECTRONICA
CARRERA DE TELECOMUNICACIONES

FUNDAMENTOS DE PROGRAMACION

TEMA: Evaluación Segundo Parcial

AUTOR: Sebastian Alejandro Godoy Vizuete

SEMESTRE Y PARALELO: Primero “A”

CODIGO: 725

E-MAIL: sebastian.godoy@espoch.edu.ec

NÚMERO TELEFONICO: 0984165717

__

FECHA DE ENTREGA: 14 / 01 / 2021

PERÍODO ACADÉMICO
JULIO - SEPTIEMBRE 2020
Evaluación del Segundo Parcial

Instrucciones:
Realice cada ejercicio en C++ utilizando las sentencias respectivas que le permita resolver controlar y repetir el
ejercicio las veces que el usuario lo requiera
Al terminar genere un documento en Word en el que copie no capture el código, posteriormente adjunte la
captura de la ejecución en donde se pueda observar el control de errores, si resuelve el examen en grupo adjunte
las actividades realizadas por cada integrante

Ejercicios:

1. REALICE UN PROGRAMA EN C++ QUE DESPLIEGUE UN MENÚ RESUMIDO Y EJECUTE


CADA UNA DE LAS SIGUIENTES OPCIONES. (10 PUNTOS)

1.- Simule un cajero automático con la clave a123 muestre un menú //depósito, retiro y saldo //
realice la operación en cada opción (recuerde que debe ingresar solo 3 veces la clave del cajero de
lo contrario debe salir del programa).

2.- Simule una calculadora científica con al menos 3 opciones.

3.- ingrese un número de 3 cifras e indique el número intermedio para todos los casos posibles, por
Ejm: 794 el número intermedio es 9.

4.- realice un programa que muestre cuantos billetes (20, 10, 5 y 1) y monedas (50, 25 10 y 5
centavos) se deben entregar al recibir n centavos de dólar.

Especificaciones:
• Al inicio de la pantalla especifique de que se trata cada programa a ejecutar.
• Controle los errores en todo el programa, si la opción está fuera del rango o es incorrecta,
despliegue un mensaje de error y vuelva a pedir un nuevo valor.
• Repita cada menú o submenú, las veces que el usuario lo requiera.
• Limpie la pantalla, al ejecutar cada opción.
Puede usar system("cls"); con la librería stdlib.h, o clrscr(); con la librería conio.h
Al terminar suba al aula virtual.

Programa:
▪ Código en Google Drive
Link: https://drive.google.com/file/d/1ShNfKXmetMqJUdbc-qmWkRIp4SyiCytb/view?usp=sharing

▪ Código en lenguaje C++


1. /*Prueba del Segundo Parcial - Fun. de Programacion
2. Nombre y codigo: Sebastian Godoy - 725
3. Fecha: 14/01/2021
4. Semestre y Paralelo: Primero "A"
5. Hora y Fecha de Finalización: 14/01/21 20:17*/
6. #include <iostream>
7. #include <stdlib.h>
8. #include <conio.h>
9. #include <string>
10.#include <math.h>
11.#include <iomanip>
12.#include <windows.h>
13.using namespace std;
14.int main()
15.{
16. int op0,op1,vol0,vol1=0,vol2,vol3,x,y=0;
17. //Variables caso 1 -> CAJERO
18. int intentos=0,op2,money=1800,int_res=2;
19. float dol,dep,rest;
20. string clave="A123";
21. string clave1="";
22. string ncuenta="";
23. /*std::string::size_type len = ncuenta.size();*/
24. //Variables caso 2 -> CALCULADORA
25. int op3,cont = 0;
26. float num1,num2,res,raiz,pot,s,co,t;
27. bool continuar;
28. //Variables caso 3 -> NUMERO 3 CIFRAS
29. int aux,ci3;
30. float cifra;
31. //Variables caso 4 -> CONVERCION MONEDAS
32. float c;
33. int dol20,dol10,dol5,dol1,cen50,cen25,cen10,cen5,cen1,cencomp,cen;
34. system("color 03");
35. setlocale(LC_CTYPE, "Spanish");
36. do //Para repetir el programa entero
37. {
38. gotoxy(0,0); cout<<"//MENU PRINCIPAL\n";
39. cout<<"\n\n\tEscoja entre los siguientes programas:\n";
40. cout<<"\n\t1. Cajero Automatico --> Presione 1\n\t -
¿Que hace? Simula un cajero automatico.\n";
41. cout<<"\n\t2. Calculadora Cientifica --> Presione 2\n\t -
¿Que hace? En una calaculadora con 7 \n\t operaciones matematicas diferentes.\n";
42. cout<<"\n\t3. Numero intermedio de un Numero de 3 Cifras --> Presione
3\n\t -¿Que hace? muestra en pantalla el numero \n\t intermedio de un numero de 3
cifras.\n";
43. cout<<"\n\t4. Conversion de monedas --> Presione 4\n\t -
¿Que hace? muestra el cambio que se recibe\n\t de n monedas en billetes y monedas
diferentes.\n";
44. cout<<"\n\tOpcion: ";
45. cin>>op0;
46. switch (op0)
47. {
48. case 1: //cajero automatico
49. system("cls");
50. do//Para repetir esta opción del cajero
51. {
52. do//Para repetir en ingreso de la clave
53. {
54. gotoxy(0,0); cout<<"//OPCION 1\n";
55. cout<<"\n\t\tCajero Automático\n";
56. cout<<"\n\tIngrese la clave: ";
57. cin>>clave1;gotoxy(47,4); cout<<"Intentos
restantes: "<<int_res;
58. if(clave1==clave)
59. {
60. system("cls");
61. cout<<"\n\n\n\t\tAcceso Exitoso!\n";
Sleep(2000);
62. system("cls");
63. intentos=4;
64. cout<<"\n\tEscoja que desea realizar:\n";
65. cout<<"\n\t1. Deposito --> Presione 1";
66. cout<<"\n\t2. Retiro --> Presione 2";
67. cout<<"\n\t3. Saldo --> Presione 3";
68. cout<<"\n\t4. Salir --> Presione 4\n";
69. cout<<"\n\tOpcion: ";
70. cin>>op2;
71. switch(op2)
72. {
73. case 1://Depocito
74. system("cls");
75. do
76. {
77. continuar = false;
78. cin.clear();
79. if(cont > 0) cin.ignore(1024,
'\n');
80. cout<<"\n\tIngrese el monto
que desea depositar\n";
81. cout<<"\tMonto: ";
82. cin>>dep;
83. cont++;
84. if(cin.fail() && cin.rdstate())
85. {
86. system("cls");
cout<<"\n\tERROR: El valor ingresado no es un numero\n\tIngrese el valor de
nuevo"; Sleep(2300); system("cls");
87. continuar = true;
88. }
89. if(continuar==false)
90. {
91. cout<<"\n\tIngrese
el numero de cuenta\n";
92. cout<<"\tNo de cuenta: ";
93. cin>>ncuenta;

94.
95. if((dep<0) || (dep-(int)dep>0))
96. {
97. system("cls");
cout<<"\n\n\n\t\tEl valor ingresado en monto no es valido\n\t\tIngrese los datos
nuevamente\n"; Sleep(2500); system("cls");
98. }
99. /*else if(len!=9)
100. {
101.
system("cls"); cout<<"\n\n\n\t\tEl numero de cuenta ingresado no es
valido\n\t\tIngrese los datos nuevamente\n"; Sleep(2500); system("cls");
102. }*/
103. }
104. }while((dep<0) || (dep-
(int)dep>0) ||continuar);
105. cout<<"\n\tEl deposito de
"<<dep<<" dolares al numero de cuenta "<<ncuenta<<" ha sido exitoso.\n";
106. break;
107. case 2://Retiro
108. system("cls");
109. do
110. {
111. continuar = false;
112. cin.clear();
113. if(cont > 0)
cin.ignore(1024, '\n');
114. cout<<"\n\tIngrese el
monto que desee retirar\n";
115. cout<<"\tMonto: ";
116. cin>>dol;
117. cont++;
118. if(cin.fail() &&
cin.rdstate())
119. {
120. system("cls");
cout<<"\n\tERROR: El valor ingresado no es un numero\n\tIngrese el valor de
nuevo"; Sleep(2300); system("cls");
121. continuar = true;
122. }
123. if(continuar==false)
124. {
125. if(dol<0)
126. {
127.
cout<<"\n\tError: Valor no permitido\n\tIngrese el monto nuevamente\n";
Sleep(2500); system("cls");
128. }
129. else
if(dol>money)
130. {
131.
cout<<"\n\tSaldo insuficiente\n\tIngrese el monto nuevamente\n"; Sleep(2500);
system("cls");
132. }
133. }
134. }while((dol<0) ||
(dol>money) || continuar);
135.
136. rest=money-dol;
cout<<"\n\tSe ha retirado "<<fixed<<setprecision(2)<<dol<<" dolares y tiene
disponible un saldo de "<<fixed<<setprecision(2)<<rest<<" dolares\n";
137. break;
138. case 3://Saldo
139. system("cls");
140. cout<<"\n\tTiene en su cuenta
un saldo disponible de: "<<money<<" dolares\n";
141. break;
142. case 4://Salir
143. system("cls");
144. cout<<"\n\tSaliendo...\n";

145. break;
146. default: system("cls");
cout<<"\n\tError: Opcion no existente\n";
147. break;
148. }
149. }
150. else{ intentos++; int_res--; cout<<"\n\n\n\t\t\t
ClAVE INCORRECTA\n\t\t\t INTENLO NUEVAMENTE\n"; Sleep(2000);
system("cls");}
151. if(intentos==3){ cout<<"\n\tLa Targeta ha
sido bloqueada\n"; }
152. else if(intentos==4){ cout<<"\n\tGracias por
usar este cajero automatico\n"; }
153. }
154. while (intentos<=2);
155. cout<<"\n ----------------------------------------------
";
156. cout<<"\n\tDesea ingresar reiniciar el
programa?\n\n\tSi=1\tNo=0\n\tOpción: ";
157. cin>>x;
158. if(x==1){ y=1; system("cls"); }
159. else if (x==0) { y=0; cout<<"\n\tGracias por usar el
programa"; }
160. else{ y=0; cout<<"\n\tError: Opcion
invalida\n\tCerrando el programa"; }
161. }
162. while(y==1);
163. break;
164. case 2: //calculadora cientifica
165. system("cls");
166. do
167. {
168. gotoxy(0,0); cout<<"//OPCION 2\n";
169. cout<<"\n\t\tCalculadora Cientifica\n\n";
170. cout<<"\tMenu principal\n\n";
171. cout<<"\tEscoja entre las siguientes ociones
diponibles:\n ";
172. cout<<"\t1. Suma\n\t2. Resta\n\t3.
Multiplicación\n\t4. Division\n\t5. Raiz cuadrada\n\t6. Elevar a la potencia\n\t7. Seno,
Coseno y Tangente\n";
173. cout<<"\n\tOpcion: ";
174. cin>>op3;
175. switch (op3)
176. {
177. case 1://suma
178. system("cls");
179. do //Para filtrar letras, etc
180. {
181. continuar = false;
182. cin.clear();
183. if(cont > 0)
cin.ignore(1024, '\n');
184. cout<<"\n\tHa escogido
suma\n\n\tIngrese los 2 valores que desee sumar\n\n\tValor 1: "; cin>>num1;
185. cout<<"\tValor 2: ";
cin>>num2;
186. cont++;
187. if(cin.fail() &&
cin.rdstate())
188. {
189. system("cls");
cout<<"\n\tERROR: Los valores ingresados no son numeros\n\tIngrese los valores de
nuevo"; Sleep(2300); system("cls");
190. continuar = true;
191. }
192. }while (continuar);
193. res=num1+num2;
194. cout<<"\n\tEl resultado de
la suma de "<< num1<<" mas "<<num2<<" es "<<fixed<<setprecision(2)<<res;
195. break;
196. case 2://resta
197. system("cls");
198. do //Para filtrar letras, etc
199. {
200. continuar = false;
201. cin.clear();
202. if(cont > 0)
cin.ignore(1024, '\n');
203. cout<<"\n\tHa escogido
resta\n\n\tIngrese los 2 valores que desee restar\n\n\tValor 1: "; cin>>num1;
204. cout<<"\tValor 2: ";
cin>>num2;
205. cont++;
206. if(cin.fail() &&
cin.rdstate())
207. {
208. system("cls");
cout<<"\n\tERROR: Los valores ingresados no son numeros\n\tIngrese los valores de
nuevo"; Sleep(2300); system("cls");
209. continuar = true;
210. }
211. }while (continuar);
212. res=num1-num2;
213. cout<<"\n\tEl resultado de
la resta de "<< num1<<" menos "<<num2<<" es "<<fixed<<setprecision(2)<<res;
214. break;
215. case 3://multiplicacion
216. system("cls");
217. do //Para filtrar letras, etc
218. {
219. continuar = false;
220. cin.clear();
221. if(cont > 0)
cin.ignore(1024, '\n');
222. cout<<"\n\tHa escogido
multiplicación\n\n\tIngrese los 2 valores que desee multiplicar\n\n\tValor 1: ";
cin>>num1;
223. cout<<"\tValor 2: ";
cin>>num2;
224. cont++;
225. if(cin.fail() &&
cin.rdstate())
226. {
227. system("cls");
cout<<"\n\tERROR: Los valores ingresados no son numeros\n\tIngrese los valores de
nuevo"; Sleep(2300); system("cls");
228. continuar = true;
229. }
230. }while (continuar);
231. res=num1*num2;
232. cout<<"\n\tEl resultado de
la multiplicación de "<< num1<<" por "<<num2<<" es
"<<fixed<<setprecision(2)<<res;
233. break;
234. case 4://division
235. system("cls");
236. do //Para filtrar letras, etc
237. {
238. continuar = false;
239. cin.clear();
240. if(cont > 0)
cin.ignore(1024, '\n');
241. cout<<"\n\tHa escogido
dividision\n\n\tIngrese los 2 valores que vaya a dividir\n\n\tValor 1: "; cin>>num1;
242. cout<<"\tValor 2: ";
cin>>num2;
243. cont++;
244. if(cin.fail() &&
cin.rdstate())
245. {
246. system("cls");
cout<<"\n\tERROR: Los valores ingresados no son numeros\n\tIngrese los valores de
nuevo"; Sleep(2300); system("cls");
247. continuar = true;
248. }
249. }while (continuar);
250. res=num1/num2;
251. cout<<"\n\tEl resultado de
la division de "<< num1<<" sobre "<<num2<<" es "<<fixed<<setprecision(2)<<res;
252. break;
253. case 5://raiz cuadrada
254. system("cls");
255. do //Para filtrar letras, etc
256. {
257. continuar = false;
258. cin.clear();
259. if(cont > 0)
cin.ignore(1024, '\n');
260. cout<<"\n\tHa escogido
raiz cuadrada\n\n\tIngrese el valor del cual quiere sacar la raiz cuadrada\n\n\tValor: ";
cin>>num1;
261. cont++;
262. if(cin.fail() &&
cin.rdstate())
263. {
264. system("cls");
cout<<"\n\tERROR: El valor ingresado no es un numero\n\tIngrese el valor de
nuevo"; Sleep(2300); system("cls");
265. continuar = true;
266. }
267. }while (continuar);
268.
269. raiz=sqrt(num1);
270. cout<<"\n\tEl resultado de
la raiz cuadrada de "<< num1<<" es "<<fixed<<setprecision(2)<<raiz;
271. break;
272. case 6://un numero a una potencia
273. system("cls");
274. do //Para filtrar letras, etc
275. {
276. continuar = false;
277. cin.clear();
278. if(cont > 0)
cin.ignore(1024, '\n');
279. cout<<"\n\tHa escogido
elevar u numero a una potencia\n\n\tIngrese el numero y la potencia a la que sera
elevado\n\n\tNumero: "; cin>>num1;
280. cout<<"\tPotencia:
"; cin>>num2;
281. if(cin.fail() &&
cin.rdstate())
282. {
283. system("cls");
cout<<"\n\tERROR: Los valores ingresados no son numeros\n\tIngrese los valores de
nuevo"; Sleep(2300); system("cls");
284. continuar = true;
285. }
286. }while (continuar);
287. pot=pow(num1,num2);
288. cout<<"\n\tEl resultado de
la potenciacion de "<< num1<<" elevado a la "<<num2<<" es
"<<fixed<<setprecision(2)<<pot;
289. break;
290. case 7://Seno, coseno y tangente
291. system("cls");
292. do //Para filtrar letras, etc
293. {
294. continuar = false;
295. cin.clear();
296. if(cont > 0)
cin.ignore(1024, '\n');
297. cout<<"\n\tHa escogido
encontrar el seno, coseno y tangente de un valor\n\n\tIngrese el valor:\n\n\tValor: ";
cin>>num1;
298. cont++;
299. if(cin.fail() &&
cin.rdstate())
300. {
301. system("cls");
cout<<"\n\tERROR: El valor ingresado no es un numero\n\tIngrese el valor de
nuevo"; Sleep(2300); system("cls");
302. continuar = true;
303. }
304. }while (continuar);
305. s=sin(num1);
306. co=cos(num1);
307. t=tan(num1);
308. cout<<"\n\tEl seno de "<<
num1<<" es "<<fixed<<setprecision(2)<<s;
309. cout<<"\n\tEl coseno de
"<< num1<<" es "<<fixed<<setprecision(2)<<co;
310. cout<<"\n\tEl tangente de
"<< num1<<" es "<<fixed<<setprecision(2)<<t;
311. break;
312. default: system("cls"); cout<<"\n\tError:
Opcion no valida\n";
313. break;
314. }
315. cout << "\n ---------------------------------------------
-";
316. cout << "\n\tDesea volver al menu de la
calculadora?\n\n\tSi=1\tNo=0\n\tOpción: ";
317. cin >> x;
318. if(x==1){ y=1; system("cls"); }
319. else if (x==0) { y=0; cout<<"\n\tCerrando Opcion
2: Calculadora Cientifica"; }
320. else{ cout<<"\n\tError: Opcion
invalida\n\tCerrando Opcion 2"; }
321. }
322. while(y==1);
323. break;
324. case 3: //numero de 3 cifras
325. system("cls");
326. do
327. {
328. do
329. {
330. continuar = false;
331. cin.clear();
332. if(cont > 0) cin.ignore(1024, '\n');
333. gotoxy(0,0); cout<<"//OPCION 3\n";
334. cout<<"\n\tIngrese un numero de 3 cifras";
335. cout<<"\n\tNumero: ";
336. cin>>cifra;
337. cont++;
338. if(cin.fail() && cin.rdstate())
339. {
340. system("cls"); cout<<"\n\tERROR: El
valor ingresado no es un numero\n\tIngrese el valor de nuevo"; Sleep(2300);
system("cls");
341. continuar = true;
342. }
343. if(continuar==false)
344. {
345. if(((int)cifra<=99) || ((int)cifra>=1000)
)
346. { system("cls"); cout<<"\n\n\n\t\tEl
valor ingresado no es valido\n\t\tIngrese el valor nuevamente\n"; Sleep(2500);
system("cls"); }
347. else if((cifra-(int)cifra>0))
348. { system("cls"); cout<<"\n\n\n\t\tEl
valor ingresado no es valido\n\t\tIngrese el valor nuevamente\n"; Sleep(2500);
system("cls"); }
349. }
350. }while((cifra<=99) || (cifra>=1000) || (cifra-
(int)cifra>0));
351. ci3=(int)cifra;
352. aux=ci3/100; ci3=ci3%100;
353. aux=ci3/10;
354. cout<<"\n\tEl numero intermedio de
"<<(int)cifra<<" es: "<<aux;
355. cout << "\n ---------------------------------------------
-";
356. cout << "\n\tDesea ingresar otro
valor?\n\n\tSi=1\tNo=0\n\tOpción: ";
357. cin >> x;
358. if(x==1){ y=1; system("cls"); }
359. else if (x==0) { system("cls"); y=0;
cout<<"\n\tCerrando Opcion 3: Numero intermedio"; }
360. else{ y=0; cout<<"\n\tError: Opcion
invalida\n\tCerrando Opcion 3"; }
361. }while(y==1);
362. break;
363. case 4://n monedas de un dolar
364. system("cls");
365. do
366. {
367. do
368. {
369. continuar = false;
370. cin.clear();
371. if(cont > 0) cin.ignore(1024, '\n');
372. gotoxy(0,0); cout<<"//OPCION 4\n";
373. cout<<"\n\tConversion de monedas\n";
374. cout<<"\n\tCentavos: ";
375. cin>>c;
376. cont++;
377. if(cin.fail() && cin.rdstate())
378. {
379. system("cls"); cout<<"\n\tERROR: El
valor ingresado no es un numero\n\tIngrese el valor de nuevo"; Sleep(2300);
system("cls");
380. continuar = true;
381. }
382. if(continuar==false)
383. {
384. if((c < 0) || (c - (int)c > 0))
385. { system("cls"); cout<<"\n\n\n\t\tEl
valor ingresado no es valido\n\t\tIngrese el valor nuevamente\n"; Sleep(2500);
system("cls"); }
386. }
387. }while((c < 0) || (c - (int)c > 0) || continuar);
388. cen=(int)c;
389. cencomp=(int)c;
390. dol20=cen/2000; cen=cen%2000;
391. dol10=cen/1000; cen=cen%1000;
392. dol5=cen/500; cen=cen%500;
393. dol1=cen/100; cen=cen%100;
394. cen50=cen/50; cen=cen%50;
395. cen25=cen/25; cen=cen%25;
396. cen10=cen/10; cen=cen%10;
397. cen5=cen/5; cen=cen%5;
398. cen1=cen/1;
399. cout<<"\n\tLos "<<cencomp<<" centavos
ingresados son: ";
400. cout<<"\n\tBilletes:";
401. if(dol20!=0){ cout<<"\n\t- "<<dol20<<" billetes de
20 dolares"; }
402. if(dol10!=0){ cout<<"\n\t- "<<dol10<<" billetes de
10 dolares"; }
403. if(dol5!=0){ cout<<"\n\t- "<<dol5<<" billetes de 5
dolares"; }
404. if(dol1!=0){ cout<<"\n\t- "<<dol1<<" billetes de 1
dolar\n"; }
405. cout<<"\n\tMonedas:";
406. if(cen50!=0){ cout<<"\n\t- "<<cen50<<" monedas
de 50 centavos"; }
407. if(cen25!=0){ cout<<"\n\t- "<<cen25<<" monedas
de 25 centavos"; }
408. if(cen10!=0){ cout<<"\n\t- "<<cen10<<" monedas
de 10 centavos"; }
409. if(cen5!=0){ cout<<"\n\t- "<<cen5<<" monedas de
5 centavos"; }
410. if(cen1!=0){ cout<<"\n\t- "<<cen1<<" monedas de
1 centavos"; }
411. cout << "\n ---------------------------------------------
-";
412. cout << "\n\tDesea ingresar otro
valor?\n\n\tSi=1\tNo=0\n\tOpción: ";
413. cin >> x;
414. if(x==1){ y=1; system("cls"); }
415. else if (x==0) { system("cls"); y=0;
cout<<"\n\tCerrando Opcion 4: Convercion de monedas"; }
416. else{ y=0; cout<<"\n\tError: Opcion
invalida\n\tCerrando Opcion 4"; }
417. }
418. while(y==1);
419. break;
420. default: system("cls"); cout<<"\n\tERROR: Opcion invalida\n";
421. break;
422. }
423. cout << "\n ----------------------------------------------";
424. cout<<"\n\tDesea volver al menu principal?\n\n\tSi= 1 No=0\n";
425. cout<<"\n\tOpcion: "; cin>>vol0;
426. if(vol0==1) { system("cls"); vol1=1; }
427. else if(vol0==0) { cout<<"\n\tGracias por usar el programa!"; }
428. else { y=0; cout<<"\n\tError: Opcion invalida\n\tCerrando Programa"; }
429. }
430. while (vol1==1);
431. return 0;
432. }
▪ Capturas de la compilacion del programa

Programa 1: Cajero Automático


Opcion 1: Deposito
Opcion 2: Retiro

(Nota: Al inicio de las opciones 2, 3, 4. Si puse la función system("cls"); para limpiar la pantalla,
pero no funciona, creo que es culpa del copilador.)
Opcion 3: Saldo
Opcion 4: Salir

Programa 2: Calculadora cientifica


Opcion 2: Resta
Opcion 3: Multiplicación
Opción 4: División

Opción 5: Raiz Cuadrada


Opcion 6: Potencia de un numero

Opcion 7: Seno, coseno y tangente de un numero


Programa 3: Numero intermedio de un numero de 3 cifras

Programa 4: Cambio centavos a billetes y monedas mas grandes

También podría gustarte