SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
26-4-2013
Reporte | Félix González Bonilla
ITSZ PROGRAMACIÓN BÁSICA UNIDAD 5
[1]
Presentación:
ITSZ
REPORTE
PROGRAMACIÓN BÁSICA
UNIDAD 5
ARREGLOS Y ARCHIVOS
Catedrático
Lic. Edgar Hernández García
Alumno:
Félix González Bonilla
[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
[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.
[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
[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.
[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;
[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': ";
[8]
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;
}
}
break;
default:
cout<<"nNumero de eleccion no valida"<<endl;
break;
}
system("pause");
return EXIT_SUCCESS;
}
Consola mostrando la opción 1
[9]
Consola mostrando la opción 2
Consola mostrando la opción 3
[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;
}
[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:
[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;
}
[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.
[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]<<" ";
[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
[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]<<" ";
[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”
[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
[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];
}
[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: ";
[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
[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";
[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++)
[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
[25]
Consola- opción 2
Consola- opción 3
[26]
Consola-opción 4
Consola- opción 5
[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;
}
[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++)
[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++)
[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
[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++)
{
[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
[33]
Consola opción B
Consola opción C
[34]
Consola otra opción
[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.

Más contenido relacionado

La actualidad más candente (20)

Jorge informe tecnico
Jorge informe tecnicoJorge informe tecnico
Jorge informe tecnico
 
Informe 2 da unidad lp
Informe 2 da unidad lpInforme 2 da unidad lp
Informe 2 da unidad lp
 
Objetos
ObjetosObjetos
Objetos
 
Objetos
ObjetosObjetos
Objetos
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
 
Funciones
FuncionesFunciones
Funciones
 
Ejercicios de estructura secuencial
Ejercicios de estructura secuencialEjercicios de estructura secuencial
Ejercicios de estructura secuencial
 
Conexion Visual
Conexion Visual Conexion Visual
Conexion Visual
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Sql
SqlSql
Sql
 
Ejercicios en Netbeans
Ejercicios en NetbeansEjercicios en Netbeans
Ejercicios en Netbeans
 
Ejercisos condicionales 1
Ejercisos condicionales 1Ejercisos condicionales 1
Ejercisos condicionales 1
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
 
Algoritmos condicionales..
Algoritmos condicionales..Algoritmos condicionales..
Algoritmos condicionales..
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Eliita
EliitaEliita
Eliita
 
Brayan Ramires :v
Brayan Ramires :vBrayan Ramires :v
Brayan Ramires :v
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de java
 
Ayudantia 4 de junio
Ayudantia 4 de junioAyudantia 4 de junio
Ayudantia 4 de junio
 

Similar a Programación en c++_u5

Similar a Programación en c++_u5 (20)

Informe tecnico de la unidad 1
Informe tecnico de la unidad 1Informe tecnico de la unidad 1
Informe tecnico de la unidad 1
 
Trabajo final programacion
Trabajo final programacionTrabajo final programacion
Trabajo final programacion
 
Ejercicios en consola csharp
Ejercicios en consola csharpEjercicios en consola csharp
Ejercicios en consola csharp
 
Informe tecnicou1
Informe tecnicou1Informe tecnicou1
Informe tecnicou1
 
Pres arreglosmat animacion
Pres arreglosmat animacionPres arreglosmat animacion
Pres arreglosmat animacion
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1
 
Sesion02
Sesion02Sesion02
Sesion02
 
7.arreglos en java
7.arreglos en  java7.arreglos en  java
7.arreglos en java
 
Ejercicios de qbasic
Ejercicios de qbasicEjercicios de qbasic
Ejercicios de qbasic
 
Ejercicios Java
Ejercicios JavaEjercicios Java
Ejercicios Java
 
Ejercicio 4
Ejercicio 4Ejercicio 4
Ejercicio 4
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
 
Problemas propuestos clase 0-1
Problemas propuestos  clase 0-1Problemas propuestos  clase 0-1
Problemas propuestos clase 0-1
 
Arreglos y matrices
Arreglos y matricesArreglos y matrices
Arreglos y matrices
 
Informe 1
Informe 1Informe 1
Informe 1
 
Informe tecnico victor_uex
Informe tecnico victor_uexInforme tecnico victor_uex
Informe tecnico victor_uex
 
Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2
 
20 programas
20 programas20 programas
20 programas
 
4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptx4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptx
 

Programación en c++_u5

  • 1. 26-4-2013 Reporte | Félix González Bonilla ITSZ PROGRAMACIÓN BÁSICA UNIDAD 5
  • 2. [1] Presentación: ITSZ REPORTE PROGRAMACIÓN BÁSICA UNIDAD 5 ARREGLOS Y ARCHIVOS Catedrático Lic. Edgar Hernández García Alumno: Félix González Bonilla
  • 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': ";
  • 9. [8] 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; } } break; default: cout<<"nNumero de eleccion no valida"<<endl; break; } system("pause"); return EXIT_SUCCESS; } Consola mostrando la opción 1
  • 10. [9] Consola mostrando la opción 2 Consola mostrando la opción 3
  • 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.