Los trabajos que se presentan a continuación representan a la unidad 5 de la materia "programación básica" de ing. Mecatrónica. En esta unidad se trabaja con arreglos.
Un arreglo es una colección de variables relacionadas a las que se hace referencia por medio de un nombre común, se puede definir como un conjunto de datos que se almacena en memoria de manera contigua con el mismo nombre, y para diferenciar los elementos dentro de un arreglo se utiliza un índice, este marca la posición de un dato almacenado en memoria, cabe mencionar que existen diferentes tipos de arreglos, cada tipo de arreglo solo puede almacenar datos del tipo que se haya declarado el arreglo.
En esta unidad también se menciona la forma estandarizada del código ASCII, y se realizan algunos pequeños proyectos para codificar y decodificar un pequeño texto, De esta forma se comprende como la computadora realiza operaciones a nivel de bits y los asocia con el carácter que este le corresponda.
3. [2]
INDICE
INTRODUCCIÓN----------------------------------------------------------------------------------------------------------- 3
APROXIMACIÓN AL NÚMERO “E” ------------------------------------------------------------------------------------4
MENÚ SWITCH ------------------------------------------------------------------------------------------------------------6
SUMA DE 2 VECTORES -------------------------------------------------------------------------------------------------10
PRODUCTO PUNTO -----------------------------------------------------------------------------------------------------12
SUMA DE MATRICES ----------------------------------------------------------------------------------------------------14
OPERACIONES BÁSICAS DE MATRICES -----------------------------------------------------------------------------18
CÓDIGO ASCII ------------------------------------------------------------------------------------------------------------27
CODIFICAR UNA CADENA DE CARACTERES -----------------------------------------------------------------------28
DECODIFICAR UNA CADENA DE CARACTERES --------------------------------------------------------------------29
CONCLUSIÓN -------------------------------------------------------------------------------------------------------------34
4. [3]
INTRODUCCIÓN
Los trabajos que se presentan a continuación representan a la unidad 5 de la materia de programación
básica de la carrera de ing. En Mecatronica. En esta unidad se trabaja con arreglos.
Un arreglo es una colección de variables relacionadas a las que se hace referencia por medio de un nombre
común, se puede definir como un conjunto de datos que se almacena en memoria de manera contigua con
el mismo nombre, y para diferenciar los elementos dentro de un arreglo se utiliza un índice, este marca la
posición de un dato almacenado en memoria, cabe mencionar que existen diferentes tipos de arreglos, cada
tipo de arreglo solo puede almacenar datos del tipo que se haya declarado el arreglo.
En esta unidad también se menciona la forma estandarizada del código ASCII, y se realizan algunos
pequeños proyectos para codificar y decodificar un pequeño texto, De esta forma se comprende como la
computadora realiza operaciones a nivel de bits y los asocia con el carácter que este le corresponda.
ARREGLOS
Un arreglo es una especie de variable, en cuyo nombre es posible almacenar varios datos, los arreglos se
pueden declarar de dos formas, declaración estática y declaración dinámica.
Declaración de forma estática: En un paso se declara el tipo de dato y su tamaño con la siguiente sintaxis.
Tipo _Dato Nombre_Arreglo [Numero_Filas]
Declaración de forma dinámica: Se declara una vez indicado el valor de su tamaño con una variable auxiliar
en una instrucción anterior, tiene la siguiente sintaxis.
Tamaño=valor;
Tipo _Dato Nombre_Arreglo [Tamaño]
Como se puede observar al declarar un arreglo de forma estática, se indica también su tamaño, su número
de elementos ya no puede variar. Al declarar un arreglo de forma dinámica el número de elementos que va
a tener dicho arreglo va a depender del valor que se le asigne a la variable “tamaño”(en este ejemplo), y si
en algún momento el tamaño cambia su valor también va a cambiar el número de elementos de ese arreglo,
aquí se presentan algunos ejemplos.
5. [4]
APROXIMACIÓN AL NUMERO “e”
El valor del número “e” se puede aproximar mediante la suma:
ex
=1+x+(x2
/2!)+(x3
/3!)+…..+(xn
/n!)
Este programa realiza la aproximación del número “e” mediante esta suma.
CÓDIGO:
{
int n, potencia, i, fac=1, indice=0;
float base, epot=1, e=1;
cout << "n Programa que realiza una serie de sumas aproximadas a 'n' potencia de 'e'";
cout<<"nnIntrudusca la potencia de 'e': ";
cin>>potencia;
cout<<"nCuantas sumas quiere realizar: ";
cin>>n;
if(potencia==indice)
{
cout<<"la suma es: "<<e<<endl;
}
else
{
for(i=1;i<=n;i=i++)
{
fac=fac*i;
base=pow(potencia,i);
epot=epot+(base/fac);
}
cout<<"nLa suma aproximada es: "<<epot<<endl;
}
system("pause");
return EXIT_SUCCESS;
}
Consola
6. [5]
En este programa solo funciona al ingresar datos numéricos de tipo entero, si se ingresara un carácter el
programa no pedirá el numero de sumas y mostrará un “1” de resultado.
7. [6]
MENÚ SWITCH
En este programa se muestra un menú con 3 diferentes opciones, estas son:
1) Determina el orden de 3 números dados
2) Determina el mayor de 3 números dados
3) Realiza la serie de sumas de la potenciación del numero “e”
CÓDIGO
{
int op;
cout<<"ttProgama que realiza una determina una accion";
cout<<"nnnElije un numero:"<<endl;
cout<<"n1 Determina el orden de 3 numeros dados"<<endl;
cout<<"2 Determina el mayor de 3 numeros dados"<<endl;
cout<<"3 Realiza la serie de sumas de la potenciacion del numero 'e' "<<endl;
cin>>op;
switch(op)
{
case 1:
int a, b,c;
cout << "nnttPrograma que decide el orden de tres numeros dados";
cout<<"nnIngrese un numero: ";
cin>>a;
cout<<"Ahora el segundo numero: ";
cin>>b;
cout<<"Ingrese el tercer numero: ";
cin>>c;
if(a==b && b==c)
{
cout<<"nlos numeros son iguales"<<endl;
}
else if (a>b && b>c)
{
cout<<"n Los numeros son descendentes"<<endl;
}
else if (a<b && b<c)
{
cout<<"nLos numeros son ascendentes"<<endl;
}
else
cout<<"nLos numeros estan desordenados"<<endl;
break;
case 2:
int m;
int n;
int o;
cout << "nntPrograma que muestra a 3 numeros cualesquiera de mayor a menor"<<endl;
8. [7]
cout<<"nDeme un el numero a ";
cin>>m;
cout<<"Deme un segundo numero b ";
cin>>n;
cout<<"Proporcione el tercer numero c ";
cin>>o;
if(m>=n && n>=o && o==m)
{
cout<<"Resultado:"<<endl;
cout<<m<<"n"<<n<<"n"<<o<<endl;
}
else if(m>=n && n>=o && o<m)
{
cout<<"Resultado:"<<endl;
cout<<a<<"n"<<n<<"n"<<o<<endl;
}
else if(m>=n && o>=n && o>=m)
{
cout<<"Resultado:n"<<endl;
cout<<c<<"n"<<m<<"n"<<b<<endl;
}
else if (m>=n && o>=n && m>=o)
{
cout<<"Resultado:n"<<endl;
cout<<m<<"n"<<o<<"n"<<n<<endl;
}
else if(m<n && o>=n)
{
cout<<"Resultado:n"<<endl;
cout<<o<<"n"<<n<<"n"<<m<<endl;
}
else if(m<n && n>=o && o>=m)
{
cout<<"Resultado:n"<<endl;
cout<<n<<"n"<<o<<"n"<<m<<endl;
}
else
{
cout<<"Reultado:n"<<endl;
cout<<n<<"n"<<m<<"n"<<o<<endl;
}
break;
case 3:
{
int n, potencia, i, fac=1, indice=0;
float base, epot=1, e=1;
cout << "n Programa que realiza una serie de sumas aproximadas a 'n' potencia de 'e'";
cout<<"nnIntrudusca la potencia de 'e': ";
11. [10]
SUMA DE DOS VECTORES
En este programa es un ejemplo de arreglos de forma dinámica. La función de este programa es realizar una
suma de dos vectores de n tamaño ambos vectores.
CÓDIGO
{
int i, m;
cout<<"ttPrograma que realiza una suma de dos vectores";
cout<<"nnRecuerde que para sumar a 2 vectores estos deben tener las mismas
dimensiones"<<endl;
cout<<"Ingrese la dimensión de los vectores: ";
cin>>m;
float su[m], ss[m], re[m];
cout<<"n";
for(i=0; i<m; i++)
{
cout<<"ingrese el vector x["<<i+1<<"] ";
cin>>su[i];
}
cout<<"n";
for(i=0; i<m; i++)
{
cout<<"ingrese el vector y["<<i+1<<"] ";
cin>>ss[i];
}
cout<<"n";
cout<<"La suma es:"<<endl;
for(i=0; i<m; i++)
{
re[i]=su[i]+ss[i];
cout<<re[i]<<" ";
}
cout<<endl;
system("pause");
return EXIT_SUCCESS;
}
12. [11]
Consola
Puesto que al inicio del programa se especifica que el tamaño de los vectores debe ser igual, el programa
solo pregunta una vez el tamaño de los vectores, con el dato ingresado por el usuario se crea el tamaño de 3
vectores, los datos de 2 son ingresados por el usuario y el tercer vector es donde se almacena el resultado
de la operación de la suma, y después muestra este vector.
En el caso de que se introduzca un dato no numérico el programa no realizara ninguna operación. Ejemplo:
13. [12]
PRODUCTO PUNTO
Este es un programa que realiza la multiplicación “producto punto” de dos vectores, en este programa
también se hace uso de los arreglos, con la diferencia de que en este programa no muestra un un vector
(arreglo) como resultado, muestra solo un dato. Esto es porque la multiplicación “producto punto” de dos
vectores así lo dice.
CÓDIGO
{
int i, t;
float r=0;
cout<<"Programa que realiza la mutiplicacion producto punto de un vector ";
cout<<"nnIngrese la dimencion del vector: ";
cin>>t;
float vec1[t], vec2[t];
cout<<"nn";
for(i=0; i<t; i++)
{
cout<<"Ingrese x"<<i+1<<" ";
cin>>vec1[i];
}
cout<<"n";
for(i=0; i<t; i++)
{
cout<<"Ingrese y"<<i+1<<" ";
cin>>vec2[i];
}
for(i=0; i<t; i++)
{
r=r+vec1[i]*vec2[i];
}
cout<<"nnEl resultado es: "<<r<<endl;
system("Pause");
return EXIT_SUCCESS;
}
14. [13]
CONSOLA
Un pequeño comentario de este programa es que si el usuario llegara a introducir un dato de tipo carácter o
un dato de tipo entero que sea negativo el programa no ejecutara ninguna operación, simplemente
mostrará un cero de resultado.
15. [14]
SUMA DE MATRICES
En este programa se utilizan arreglos bidimensionales, este programa es capaz de realizar una suma de 2
matrices de tamaño n x m.
CÓDIGO
{
int f, c, ff, cc, i, j;
cout<<"ntttPrgrama que realiza una suma de matrices";
cout<<"nnFilas de la matriz A ";
cin>>f;
cout<<"Columnas de la matriz A ";
cin>>c;
cout<<"Filas de la matriz B ";
cin>>ff;
cout<<"Columnas de la matriz B ";
cin>>cc;
cout<<"nn";
float mat1[f][c], mat2[ff][cc], res[f][c];
if(f==ff && c==cc)
{ //primera matriz
for(i=0; i<f; i++)
{
for(j=0; j<c; j++)
{
cout<<"tEl dato A["<<i+1<<","<<j+1<<"] es: ";
cin>>mat1[i][j];
}
}
cout<<"n";
for(i=0; i<ff; i++) //segunda matriz
{
for(j=0; j<cc; j++)
{
cout<<"tEl dato B["<<i+1<<","<<j+1<<"] es: ";
cin>>mat2[i][j];
res[i][j]=mat1[i][j]+mat2[i][j];
}
}
cout<<"nnEl resultado es:a "<<endl;
for(i=0; i<ff; i++) // resultado
{
cout<<"n";
for(j=0; j<cc; j++)
{
cout<<"t"<<res[i][j]<<" ";
16. [15]
}
}
cout<<"nn";
} //fin de if
else
cout<<"ntttImposible sumar las matrices"<<endl;
system("Pause");
return EXIT_SUCCESS;
}
Consola
Si el usuario teclea 2 matrices de diferente magnitud no se podrá realizar la suma, y saldrá el
mensaje “Imposible sumar las matrices”;
Consola de un posible error
17. [16]
MULTIPLICACIÓN DE MATRICES
En este programa se realiza una multiplicación de matrices de la forma A*B, más adelante se
muestra un programa que es capaz de realizar otras operaciones con matrices por ejemplo B*A,
A-B y B-A, el código de este programa es:
CÓDIGO
{
int f, c, ff, cc, i, j;
cout<<"ntttPrgrama que realiza una suma de matrices";
cout<<"nnFilas de la matriz A ";
cin>>f;
cout<<"Columnas de la matriz A ";
cin>>c;
cout<<"Filas de la matriz B ";
cin>>ff;
cout<<"Columnas de la matriz B ";
cin>>cc;
cout<<"nn";
float mat1[f][c], mat2[ff][cc], res[f][c];
if(f==ff && c==cc)
{ //primera matriz
for(i=0; i<f; i++)
{
for(j=0; j<c; j++)
{
cout<<"tEl dato A["<<i+1<<","<<j+1<<"] es: ";
cin>>mat1[i][j];
}
}
cout<<"n";
for(i=0; i<ff; i++) //segunda matriz
{
for(j=0; j<cc; j++)
{
cout<<"tEl dato B["<<i+1<<","<<j+1<<"] es: ";
cin>>mat2[i][j];
res[i][j]=mat1[i][j]+mat2[i][j];
}
}
cout<<"nnEl resultado es:a "<<endl;
for(i=0; i<ff; i++) // resultado
{
cout<<"n";
for(j=0; j<cc; j++)
{
cout<<"t"<<res[i][j]<<" ";
18. [17]
}
}
cout<<"nn";
} //fin de if
else
cout<<"ntttImposible sumar las matrices"<<endl;
system("Pause");
return EXIT_SUCCESS;
}
Consola
Si el usuario diera datos para las matrices en que no cumplieran que el numero de columnas de la
matriz 1 sea diferente del numero de filas de la matriz 2 no seria posible realizar la multiplicación y
mostraría el mensaje de “Error imposible multiplicar la matriz”
19. [18]
Operaciones básicas de matrices
A continuación se muestra el programa de un menú que puede realizar 5 operaciones diferentes,
al elegir una opción y terminar, el programa vuelve a mostrar el menú con una opción extra, esta
opción permite terminar el programa completo o realizar otra operación.
CÓDIGO
{
int opcion;
cout << "nttPrograma que realiza operaciones basicas de matrices";
cout<<"nntElija el numero de la operacion a realizar"<<endl;
cout<<"nt1 matriz A + matriz B"<<endl;
cout<<"t2 matriz A - matriz B"<<endl;
cout<<"t3 matriz B - matriz A"<<endl;
cout<<"t4 matriz A * matriz B"<<endl;
cout<<"t5 matriz B * matriz A"<<endl;
cin>>opcion;
do
{
switch(opcion)
{
case 1:
{
int f, c, ff, cc, i, j;
cout<<"nttPrograma que realiza una suma de matrices de la forma A+B";
cout<<"nnFilas de la matriz A ";
cin>>f;
cout<<"Columnas de la matriz A ";
cin>>c;
cout<<"Filas de la matriz B ";
cin>>ff;
cout<<"Columnas de la matriz B ";
cin>>cc;
cout<<"nn";
float mat1[f][c], mat2[ff][cc], res[f][c];
if(f==ff && c==cc)
{ //primera matriz
for(i=0; i<f; i++)
{
for(j=0; j<c; j++)
{
cout<<"tEl dato A["<<i+1<<","<<j+1<<"] es: ";
cin>>mat1[i][j];
}
}
cout<<"n";
for(i=0; i<ff; i++) //segunda matriz
20. [19]
{
for(j=0; j<cc; j++)
{
cout<<"tEl dato B["<<i+1<<","<<j+1<<"] es: ";
cin>>mat2[i][j];
res[i][j]=mat1[i][j]+mat2[i][j];
}
}
cout<<"nnEl resultado es:a "<<endl;
for(i=0; i<ff; i++) // resultado
{
cout<<"n";
for(j=0; j<cc; j++)
{
cout<<"t"<<res[i][j]<<" ";
}
}
cout<<"nn";
} //fin de if
else
cout<<"ntttImposible crear matriz"<<endl;
}
break;
case 2:
{
int f, c, ff, cc, i, j;
cout<<"nttPrograma que realiza una resta de matrices de la forma A-B";
cout<<"nnFilas de la matriz A ";
cin>>f;
cout<<"Columnas de la matriz A ";
cin>>c;
cout<<"Filas de la matriz B ";
cin>>ff;
cout<<"Columnas de la matriz B ";
cin>>cc;
cout<<"nn";
float mat1[f][c], mat2[ff][cc], res[f][c];
if(f==ff && c==cc)
{ //primera matriz
for(i=0; i<f; i++)
{
for(j=0; j<c; j++)
{
cout<<"tEl dato A["<<i+1<<","<<j+1<<"] es: ";
cin>>mat1[i][j];
}
21. [20]
}
cout<<"n";
for(i=0; i<ff; i++) //segunda matriz
{
for(j=0; j<cc; j++)
{
cout<<"tEl dato B["<<i+1<<","<<j+1<<"] es: ";
cin>>mat2[i][j];
res[i][j]=mat1[i][j]-mat2[i][j];
}
}
cout<<"nnEl resultado es:a "<<endl;
for(i=0; i<ff; i++) // resultado
{
cout<<"n";
for(j=0; j<cc; j++)
{
cout<<"t"<<res[i][j]<<" ";
}
}
cout<<"nn";
} //fin de if
else
cout<<"ntttImposible crear matriz"<<endl;
}
break;
case 3:
{
int f, c, ff, cc, i, j;
cout<<"nttPrograma que realiza una resta de matrices de la forma B-A";
cout<<"nnFilas de la matriz A ";
cin>>f;
cout<<"Columnas de la matriz A ";
cin>>c;
cout<<"Filas de la matriz B ";
cin>>ff;
cout<<"Columnas de la matriz B ";
cin>>cc;
cout<<"nn";
float mat1[f][c], mat2[ff][cc], res[f][c];
if(f==ff && c==cc)
{ //primera matriz
for(i=0; i<f; i++)
{
for(j=0; j<c; j++)
{
cout<<"tEl dato A["<<i+1<<","<<j+1<<"] es: ";
22. [21]
cin>>mat1[i][j];
}
}
cout<<"n";
for(i=0; i<ff; i++) //segunda matriz
{
for(j=0; j<cc; j++)
{
cout<<"tEl dato B["<<i+1<<","<<j+1<<"] es: ";
cin>>mat2[i][j];
res[i][j]=mat2[i][j]-mat1[i][j];
}
}
cout<<"nnEl resultado es:a "<<endl;
for(i=0; i<ff; i++) // resultado
{
cout<<"n";
for(j=0; j<cc; j++)
{
cout<<"t"<<res[i][j]<<" ";
}
}
cout<<"nn";
} //fin de if
else
{
cout<<"ntttImposible crear matriz"<<endl;
}
}
break;
case 4:
{
int fi, co, fi1, co1, ii, jj;
cout << "nttPrograma que mutiplica matrices 'A*B'";
cout<<"nnFilas de la matriz A; ";
cin>>fi;
cout<<"Columnas de la matriz A; ";
cin>>co;
cout<<"Filas de la matriz B; ";
cin>>fi1;
cout<<"Columnas de la matriz B; ";
cin>>co1;
cout<<"nn";
float ma1[fi][co], ma2[fi1][co1], mul[fi][co1];
if(co==fi1)
{
for(ii=0; ii<fi; ii++) //emtra m1
23. [22]
{
for(jj=0; jj<co; jj++)
{
cout<<"tEl dato de A["<<ii+1<<","<<jj+1<<"] es= ";
cin>>ma1[ii][jj];
}
}
cout<<"n";
for(ii=0; ii<fi1; ii++) //entra m2
{
for(jj=0; jj<co1; jj++)
{
cout<<"tEl dato de B["<<ii+1<<","<<jj+1<<"] es= ";
cin>>ma2[ii][jj];
}
}
int k;
for(ii=0; ii<co1; ii++) //inicia multiplicacion
{
for(jj=0; jj<fi; jj++)
{
mul[ii][jj]=0;
for(k=0; k<fi; k++)
{
mul[ii][jj]=mul[ii][jj]+(ma1[ii][k]*ma2[k][jj]);
}
}
cout<<"nn";
}
cout<<"ttSu producto es: a ";
for(ii=0; ii<fi; ii++)
{
cout<<"n";
for(jj=0; jj<co1; jj++)
{
cout<<"t"<<mul[ii][jj]<<"t";
}
}
cout<<"nn";
} //fin de if
else
cout<<"nnttError imposibe crear matriz"<<endl;
}
break;
case 5:
{
int fi, co, fi1, co1, ii, jj;
cout << "ntttPrograma que mutiplica matrices";
24. [23]
cout<<"nnFilas de la matriz A; ";
cin>>fi;
cout<<"Columnas de la matriz A; ";
cin>>co;
cout<<"Filas de la matriz B; ";
cin>>fi1;
cout<<"Columnas de la matriz B; ";
cin>>co1;
cout<<"nn";
float ma1[fi][co], ma2[fi1][co1], mul[fi][co1];
if(co==fi1)
{
for(ii=0; ii<fi; ii++) //emtra m1
{
for(jj=0; jj<co; jj++)
{
cout<<"tEl dato de A["<<ii+1<<","<<jj+1<<"] es= ";
cin>>ma1[ii][jj];
}
}
cout<<"n";
for(ii=0; ii<fi1; ii++) //entra m2
{
for(jj=0; jj<co1; jj++)
{
cout<<"tEl dato de B["<<ii+1<<","<<jj+1<<"] es= ";
cin>>ma2[ii][jj];
}
}
int k;
for(ii=0; ii<co1; ii++) //inicia multiplicacion
{
for(jj=0; jj<fi; jj++)
{
mul[ii][jj]=0;
for(k=0; k<fi; k++)
{
mul[ii][jj]=mul[ii][jj]+(ma2[ii][k]*ma1[k][jj]);
}
}
cout<<"nn";
}
cout<<"ttSu producto es: a ";
for(ii=0; ii<fi; ii++)
{
cout<<"n";
for(jj=0; jj<co1; jj++)
25. [24]
{
cout<<"t"<<mul[ii][jj]<<"t";
}
}
cout<<"nn";
} //fin de if
else
cout<<"nnttError imposibe crear matriz"<<endl;
}
break;
default:
cout<<"nttLo siento numero no valido"<<endl;
break;
}
cout<<"nt Elija otra opcion";
cout<<"nt1-matriz A + matriz B"<<endl;
cout<<"t2-matriz A - matriz B"<<endl;
cout<<"t3-matriz B - matriz A"<<endl;
cout<<"t4-matriz A * matriz B"<<endl;
cout<<"t5-matriz B * matriz A"<<endl;
cout<<"t7-para terminar: "<<endl;
cin>>opcion;
}
while(opcion!=7);
cout<<"nnttttaFin del ciclo 'gracias'"<<endl;
system ("pause");
return EXIT_SUCCESS;
}
Consola- opción 1
28. [27]
Consola- otra opción
Código ASCII
Este programa muestra el carácter que le pertenece a un número. En este programa empieza
desde el primer carácter.
CÓDIGO
{
int i;
char car[256];
cout<<"ntPrograma que muestra el codigo ASCII"<<endl;
for(i=0; i<=256; i++)
{
car[i]=i;
cout<<i<<":= "<<car[i]<<"tt";
}
system("pause");
return EXIT_SUCCESS;
}
29. [28]
Consola
CODIFICA UNA CADENA DE CARACTERES
Todos los caracteres tienen asignado un número, este programa pide un pequeño texto, y un
número, a el número que representa cada carácter el programa suma el número que introduce el
usuario, y devuelve el carácter que tiene el resultado de la suma.
CÓDIGO
{
const int tam_cad=20;
char cadena[tam_cad];
int clave;
cout << "Programa que 'codifica' una cadena de texto"<<endl;
cout<<"Introduzca el texto el texto a cifrar (19 caracteres max): ";
cin.getline(cadena,tam_cad,'n');
cout<<"nnNumero de codigo llave (no mas de tres digitos): ";
cin>>clave;
for(int i=0; (i<tam_cad) && (cadena[i]!='0'); i++)
30. [29]
{
cadena[i]+=clave;
}
cout<<"nnEl texto es: "<<endl;
cout<<cadena<<endl;
cin.ignore();
system("pause");
return EXIT_SUCCESS;
}
Consola
DECODIFICAR UNA CADENA DE CARACTERES
Este programa realiza la acción inversa del programa anterior, por ejemplo este programa
devolverá los caracteres el texto ingresado en el programa anterior si se teclean los caracteres que
devolvió el programa anterior pero utilizando la misma llave.
Código
{
const int tam_cad=20;
char cadena[tam_cad];
int clave;
cout << "Programa que 'decodifica' una cadena de texto"<<endl;
cout<<"Introduzca el texto el texto a decodificar (19 caracteres max): ";
cin.getline(cadena,tam_cad,'n');
cout<<"nnNumero de codigo llave (no mas de tres digitos): ";
cin>>clave;
for(int i=0; (i<tam_cad) && (cadena[i]!='0'); i++)
31. [30]
{
cadena[i]-=clave;
}
cout<<"nnEl texto es: "<<endl;
cout<<cadena<<endl;
cin.ignore();
system("pause");
return EXIT_SUCCESS;
}
Consola
MENÚ DEL CÓDIGO ASCII
Este programa muestra un menú que se repite después de realizar una acción, las opciones que
muestra este menú son los 3 últimos programas, son:
1) Programa que muestra el código ASCII
2) Programa que 'codifica' una cadena de texto
3) Programa que 'decodifica' una cadena de texto
Código
{
char fin='x';
cout<<"tPrograma que muestra y realiza operaciones con el codigo ASCII"<<endl;
cout<<"nn (A)-Mostrar el codigo ASCII"<<endl;
cout<<" (B)-Codificar una cadena de caracteres"<<endl;
cout<<" (C)-Decodificar una cadena de caracteres"<<endl;
cout<<"tElija el numero de la opcion a realizar: ";
cin>>fin;
do
32. [31]
{
switch(fin)
{
case 'A':
{
int i;
char car[256];
cout<<"ntPrograma que muestra el codigo ASCII"<<endl;
for(i=0; i<=256; i++)
{
car[i]=i;
cout<<i<<":= "<<car[i]<<"tt";
}
}
break;
case 'B':
{
cin.ignore();
const int tam_cad=20;
char cadena[tam_cad];
int clave;
cout << "nntttPrograma que 'codifica' una cadena de texto"<<endl;
cout<<"Introduzca el texto el texto a cifrar (19 caracteres max): ";
cin.getline(cadena,tam_cad,'n');
cout<<"nnNumero de codigo llave (no mas de tres digitos): ";
cin>>clave;
for(int i=0; (i<tam_cad) && (cadena[i]!='0'); i++)
{
cadena[i]+=clave;
}
cout<<"nnEl texto es: "<<endl;
cout<<cadena<<endl;
}
break;
case 'C':
{
cin.ignore();
const int tam_cad=20;
char cadena[tam_cad];
int clave;
cout << "nntttPrograma que 'decodifica' una cadena de texto"<<endl;
cout<<"Introduzca el texto el texto a decodificar (19 caracteres max): ";
cin.getline(cadena,tam_cad,'n');
cout<<"nnNumero de codigo llave (no mas de tres digitos): ";
cin>>clave;
for(int i=0; (i<tam_cad) && (cadena[i]!='0'); i++)
{
33. [32]
cadena[i]-=clave;
}
cout<<"nnEl texto es: "<<endl;
cout<<cadena<<endl;
}
break;
default:
cout<<"ntOperacion no valida";
break;
}
cout<<"nn (A)-Mostrar el codigo ASCII"<<endl;
cout<<" (B)-Codificar una cadena de caracteres"<<endl;
cout<<" (C)-Decodificar una cadena de caracteres"<<endl;
cout<<" (X)-Para terminar: ";
cin>>fin;
}
while(fin!='X');
cout<<"nttttfin del ciclo gracias"<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Consola opción A
36. [35]
CONCLUSIÓN
La programación requiere de interés, paciencia y perseverancia, en esta unidad es un poco
complejo entender cómo utilizar los arreglos de tipo vectorial, o matricial, porque debemos tener
bien claro que un número y/o variable representa el tamaño del arreglo, y el número y/o variable
que comúnmente le llamamos “contador” es el número que representa la posición del arreglo, en
esta posición es donde se encuentra el valor o dato con el que se va a trabajar.
En los programas donde se trabajó con el código ASCII es para mostrar cómo está estructurado. El
código ASCII esta estandarizado en México con 256 caracteres o datos de tipo carácter, cada
carácter está representado por un número como lo muestra el programa “código ASCII”. En los
programas posteriores a él se muestra como codificar y decodificar estos caracteres, como cada
carácter lo representa un número, al sumarle otro numero el carácter cambia inicial cambia a el
carácter que tiene el numero de la suma.