Programa 06b
Eric Fernández Barrio
GRETA 15
Nota: código fuente completo en página 10
El programa consiste en un menú de usuario en el que aparecen 9 programas a elegir
escribiendo un número y presionando enter. Después de terminar de ejecutarse la acción
elegida por el usuario, se le pide que presione una tecla, con lo que se limpia la pantalla y
se vuelve a mostrar el menú de usuario. Este ciclo continúa hasta que el usuario presiona 0,
con lo que sale del programa.
A continuación se observa el esqueleto del código (main y userMenu) y un ejemplo del
funcionamiento del menú de usuario.
Código main y userMenu:
int main (){
system ("color 1E");
int option=-1;
while (option!=0) {
userMenu ();
cin>>option;
switch (option){ //Inicio de switch
case 1: subprog01(); break;
case 2: subprog02(); break;
case 3: subprog03(); break;
case 4: subprog04(); break;
case 5: subprog05(); break;
case 6: subprog06(); break;
case 7: subprog07(); break;
case 8: subprog08(); break;
case 9: subprog09(); break;
case 0: break;
default: cout<<"Opcion no valida";
}
cout<<endl<<endl;
system ("pause");
1
}
cout<<endl<<endl;
}
void userMenu (){
system ("cls");
cout<<"Programa06b\nAutor: Eric Fernandez\nFecha: 4/10/2023\n\n";
cout<<"Elige una opcion:\n\n";
cout<<"Opcion01: Escribe en pantalla los numeros del 1 al 10\n";
cout<<"Opcion02: Escribe los numeros del 1 al 10 en sentido decreciente\n";
cout<<"Opcion03: Escribe los numeros pares del 0 al 14\n";
cout<<"Opcion04: Escribe los numeros impares del 0 al 20 \n";
cout<<"Opcion05: Escribe los numeros entre 0 y N \n";
cout<<"Opcion06: Escribe los numeros entre de N1 a N2 en sentido ascendiente (con N1 y N2 entre
0 y 20) \n";
cout<<"Opcion07: Escribe en pantalla la tabla ASCII \n";
cout<<"Opcion08: Escribe en pantalla las letras y numeros en la tabla ASCII \n";
cout<<"Opcion09: Invierte un numero \n";
cout<<"Opcion0: Cerrar programa \n\n";
Ejemplo de funcionamiento:
2
A continuación se muestra el código para cada una de las opciones y una imagen con el
resultado que ve el usuario:
Opción 1: Escribe en pantalla los números del 1 al 10
Código:
void subprog01(){
cout<<"\n------------------------------Subprograma 01------------------------------\n";
int num=0; const int NumMax = 10;
while (num<NumMax){
if (num%5==0) cout<<endl;
cout<<num<<" ";
num++;
Sleep (100);
}
}
Ejemplo de funcionamiento:
3
Opción 2: Escribe los números del 1 al 10 en sentido decreciente
Código:
void subprog02(){
cout<<"\n------------------------------Subprograma 02------------------------------\n";
const int NumMax = 10; int num=NumMax;
while (num>0){
if (num%5==0) cout<<endl;
cout<<num<<" ";
num--;
cout<<"\a";
Sleep (100);
}
}
Ejemplo de funcionamiento:
Opción 3: Escribe los números pares del 0 al 14
Código:
void subprog03(){
cout<<"\n------------------------------Subprograma 03------------------------------\n";
const int NumMax=14; int num=0;
while (num<=NumMax){
if (num%2==0) cout<<num<<" ";
num++;
Sleep (100);
}
Ejemplo de funcionamiento:
4
Opción 4: Escribe los números impares del 0 al 20
Código:
void subprog04(){
cout<<"\n------------------------------Subprograma 04------------------------------\n";
const int NumMax=20; int num=0;
while (NumMax>=num){
if (num%2!=0) cout<<num<<" ";
num++;
Sleep (100);
}
}
Ejemplo de funcionamiento:
Opción 5: Escribe los números entre 0 y N
Código:
void subprog05(){
cout<<"\n------------------------------Subprograma 05------------------------------\n";
int num=0; int N;
cout<<"Indica el valor N: "; cin>>N;
while (num<=N){
cout<<num<<" ";
num++;
}
}
Ejemplo de funcionamiento:
5
Opción 6: Escribe los números entre de N1 a N2 en sentido ascendiente
(con N1 y N2 entre 0 y 20)
Código:
void subprog06(){
cout<<"\n------------------------------Subprograma 06------------------------------\n\n";
int N1, N2, valor;
cout<<"Indica dos numeros entre 0 y 20: "; cin>>N1>>N2;
if (N1>=0 && N1<=20 && N2>=0 && N2<=20){
if (N1>N2) {valor=N1;N1=N2; N2=valor;}
while (N1<=N2){
cout<<N1<<" ";
N1++;
Sleep (100);
}
}
else cout<<"\nLos numeros indicados no estan entre 0 y 20\n";
}
Ejemplo de funcionamiento:
6
Opción 7: Escribe en pantalla la tabla ASCII
Código:
void subprog07(){
cout<<"\n------------------------------Subprograma 07------------------------------\n\n";
int i;
i=30; //numero inicial
while (i<=255){ //condicion de permanencia
cout<<i<<"-"<<char(i)<<"\t";
if (i%10 == 9) cout<<endl;
i++; //step
}
}
Ejemplo de funcionamiento:
7
Opción 8: Escribe en pantalla las letras y números en la tabla ASCII
Código:
void subprog08(){
cout<<"\n------------------------------Subprograma 08------------------------------\n\n";
int i = 97; int cont=0;
while (i<122){
if ((i>=97 && i<=121) || (i>=65 && i<=89) || (i>=48 && i<=57)) {
cout<<"'"<<char(i)<<"' = "<<i<<"\t";
if (cont%5==4) cout<<endl;
}
i++; cont++;
if (i==122) {i=65; cont=0; cout<<endl<<endl;}
else if (i==90) {i=48; cont=0; cout<<endl<<endl;}
else if (i==58) i=300;
}
}
Ejemplo de funcionamiento:
8
Opción 9: Invierte un número
Código:
void subprog09(){
cout<<"\n------------------------------Subprograma 09------------------------------\n";
int num; cout<<"Introduce un numero: "; cin>>num; int i=1;
while (int(num/pow(10, i))!=0) {
cout<<(num%int(pow(10, i)))/int(pow(10, i-1));
i++;
}
cout<<(num%int(pow(10, i)))/int(pow(10, i-1))<<endl;
Ejemplo de funcionamiento:
9
Código fuente completo:
/*
Programa06b
Autor: Eric Fernández
Fecha: 4/10/2023
*/
#include <windows.h>
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
void userMenu ();
void subprog01();
void subprog02();
void subprog03();
void subprog04();
void subprog05();
void subprog06();
void subprog07();
void subprog08();
void subprog09();
int main (){
system ("color 1E");
int option=-1;
while (option!=0) {
userMenu ();
cin>>option;
switch (option){ //Inicio de switch
case 1: subprog01(); break;
case 2: subprog02(); break;
case 3: subprog03(); break;
case 4: subprog04(); break;
case 5: subprog05(); break;
case 6: subprog06(); break;
case 7: subprog07(); break;
case 8: subprog08(); break;
case 9: subprog09(); break;
case 0: break;
default: cout<<"Opcion no valida";
}
cout<<endl<<endl;
system ("pause");
10
}
cout<<endl<<endl;
}
void userMenu (){
system ("cls");
cout<<"Programa06b\nAutor: Eric Fernandez\nFecha: 4/10/2023\n\n";
cout<<"Elige una opcion:\n\n";
cout<<"Opcion01: Escribe en pantalla los numeros del 1 al 10\n";
cout<<"Opcion02: Escribe los numeros del 1 al 10 en sentido decreciente\n";
cout<<"Opcion03: Escribe los numeros pares del 0 al 14\n";
cout<<"Opcion04: Escribe los numeros impares del 0 al 20 \n";
cout<<"Opcion05: Escribe los numeros entre 0 y N \n";
cout<<"Opcion06: Escribe los numeros entre de N1 a N2 en sentido ascendiente (con N1 y N2 entre 0 y 20)
\n";
cout<<"Opcion07: Escribe en pantalla la tabla ASCII \n";
cout<<"Opcion08: Escribe en pantalla las letras y numeros en la tabla ASCII \n";
cout<<"Opcion09: Invierte un numero \n";
cout<<"Opcion0: Cerrar programa \n\n";
void subprog01(){
cout<<"\n------------------------------Subprograma 01------------------------------\n";
int num=0; const int NumMax = 10;
while (num<NumMax){
if (num%5==0) cout<<endl;
cout<<num<<" ";
num++;
Sleep (100);
}
void subprog02(){
cout<<"\n------------------------------Subprograma 02------------------------------\n";
const int NumMax = 10; int num=NumMax;
while (num>0){
if (num%5==0) cout<<endl;
cout<<num<<" ";
num--;
11
cout<<"\a";
Sleep (100);
}
}
void subprog03(){
cout<<"\n------------------------------Subprograma 03------------------------------\n";
const int NumMax=14; int num=0;
while (num<=NumMax){
if (num%2==0) cout<<num<<" ";
num++;
Sleep (100);
}
void subprog04(){
cout<<"\n------------------------------Subprograma 04------------------------------\n";
const int NumMax=20; int num=0;
while (NumMax>=num){
if (num%2!=0) cout<<num<<" ";
num++;
Sleep (100);
}
}
void subprog05(){
cout<<"\n------------------------------Subprograma 05------------------------------\n";
int num=0; int N;
cout<<"Indica el valor N: "; cin>>N;
while (num<=N){
cout<<num<<" ";
num++;
}
void subprog06(){
cout<<"\n------------------------------Subprograma 06------------------------------\n\n";
int N1, N2, valor;
cout<<"Indica dos numeros entre 0 y 20: "; cin>>N1>>N2;
if (N1>=0 && N1<=20 && N2>=0 && N2<=20){
if (N1>N2) {valor=N1;N1=N2; N2=valor;}
while (N1<=N2){
cout<<N1<<" ";
12
N1++;
Sleep (100);
}
}
else cout<<"\nLos numeros indicados no estan entre 0 y 20\n";
}
void subprog07(){
cout<<"\n------------------------------Subprograma 07------------------------------\n\n";
int i;
i=30; //numero inicial
while (i<=255){ //condicion de permanencia
cout<<i<<"-"<<char(i)<<"\t";
if (i%10 == 9) cout<<endl;
i++; //step
}
}
void subprog08(){
cout<<"\n------------------------------Subprograma 08------------------------------\n\n";
int i = 97; int cont=0;
while (i<122){
if ((i>=97 && i<=121) || (i>=65 && i<=89) || (i>=48 && i<=57)) {
cout<<"'"<<char(i)<<"' = "<<i<<"\t";
if (cont%5==4) cout<<endl;
}
i++; cont++;
if (i==122) {i=65; cont=0; cout<<endl<<endl;}
else if (i==90) {i=48; cont=0; cout<<endl<<endl;}
else if (i==58) i=300;
}
}
void subprog09(){
cout<<"\n------------------------------Subprograma 09------------------------------\n";
int num; cout<<"Introduce un numero: "; cin>>num; int i=1;
while (int(num/pow(10, i))!=0) {
cout<<(num%int(pow(10, i)))/int(pow(10, i-1));
i++;
}
cout<<(num%int(pow(10, i)))/int(pow(10, i-1))<<endl;
13