Ejercicios y Practicas resueltas en lenguaje de programación en C
Practica en la cual al teclear un carácter aparezca en pantalla justo el que esta a su izquierda en el teclado, teniendo en cuenta que no afectara a las letras Q,A y Z. También la practica incluye una petición de una palabra la cual ha de visualizar todos sus caracteres como si se hubieran tecleado, por ejemplo si se escribe la palabra HOLA, se ha de obtener por la salida el siguiente termino: GIKA.
La solución de los ejercicios que se plantean es la siguiente:
/* El siguiente ejercicio propuesto por uno de nuestro seguidores al blog
que nos propone una practica en la cual al teclear un caracter aparezca en
pantalla justo el que esta a su izquierda en el teclado, teniendo en cuenta
que no afectara a las letras Q,A y Z. Tambien la practica incluye una peticion
de una palabra la cual ha de visualizar todos sus caracteres como si se hubieran
tecleado, por ejemplo si se escribe la palabra HOLA, se ha de obtener por la
salida el siguiente termino: GIKA. */
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// Variables
char ascii[2][255];
char letratecleada;
int contador;
int letra;
char palabra[50];
// Rellenar Matriz Con los codigos ASCII
for(contador=1;contador<=255;contador++) {
ascii[0][contador]=contador;
}
// Visualizar los caracteres correspondientes a las letras mayusculas
for(contador=65;contador<=90;contador++)
printf("%d \t %c ",contador,ascii[0][contador]);
printf("\nTeclee una letra en el teclado para ver la que esta a su lado.\n");
printf("\nPulse ESC para terminar el programa.\n");
// Caracteres asignados
ascii[1][65]='A'; // A
ascii[1][66]='V'; // B
ascii[1][67]='X'; // C
ascii[1][68]='S'; // D
ascii[1][69]='W'; // E
ascii[1][70]='D'; // F
ascii[1][71]='F'; // G
ascii[1][72]='G'; // H
ascii[1][73]='U'; // I
ascii[1][74]='H'; // J
ascii[1][75]='J'; // K
ascii[1][76]='K'; // L
ascii[1][77]='N'; // M
ascii[1][78]='B'; // N
ascii[1][79]='I'; // O
ascii[1][80]='O'; // P
ascii[1][81]='Q'; // Q
ascii[1][82]='E'; // R
ascii[1][83]='A'; // S
ascii[1][84]='R'; // T
ascii[1][85]='Y'; // U
ascii[1][86]='C'; // V
ascii[1][87]='Q'; // W
ascii[1][88]='Z'; // X
ascii[1][89]='T'; // Y
ascii[1][90]='Z'; // Z
while(letra!=27) {
letra=getch();
// Si es una letra mayuscula
if(letra>=65 && letra<=90) {
printf("\n%c",ascii[1][letra]);
}
}
printf("\nTeclee una palabra...: ");
scanf(" %s",palabra);
for(contador=0;contador<50 && palabra[contador]!='/* El siguiente ejercicio propuesto por uno de nuestro seguidores al blog
que nos propone una practica en la cual al teclear un caracter aparezca en
pantalla justo el que esta a su izquierda en el teclado, teniendo en cuenta
que no afectara a las letras Q,A y Z. Tambien la practica incluye una peticion
de una palabra la cual ha de visualizar todos sus caracteres como si se hubieran
tecleado, por ejemplo si se escribe la palabra HOLA, se ha de obtener por la
salida el siguiente termino: GIKA. */
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// Variables
char ascii[2][255];
char letratecleada;
int contador;
int letra;
char palabra[50];
// Rellenar Matriz Con los codigos ASCII
for(contador=1;contador<=255;contador++) {
ascii[0][contador]=contador;
}
// Visualizar los caracteres correspondientes a las letras mayusculas
for(contador=65;contador<=90;contador++)
printf("%d \t %c ",contador,ascii[0][contador]);
printf("\nTeclee una letra en el teclado para ver la que esta a su lado.\n");
printf("\nPulse ESC para terminar el programa.\n");
// Caracteres asignados
ascii[1][65]='A'; // A
ascii[1][66]='V'; // B
ascii[1][67]='X'; // C
ascii[1][68]='S'; // D
ascii[1][69]='W'; // E
ascii[1][70]='D'; // F
ascii[1][71]='F'; // G
ascii[1][72]='G'; // H
ascii[1][73]='U'; // I
ascii[1][74]='H'; // J
ascii[1][75]='J'; // K
ascii[1][76]='K'; // L
ascii[1][77]='N'; // M
ascii[1][78]='B'; // N
ascii[1][79]='I'; // O
ascii[1][80]='O'; // P
ascii[1][81]='Q'; // Q
ascii[1][82]='E'; // R
ascii[1][83]='A'; // S
ascii[1][84]='R'; // T
ascii[1][85]='Y'; // U
ascii[1][86]='C'; // V
ascii[1][87]='Q'; // W
ascii[1][88]='Z'; // X
ascii[1][89]='T'; // Y
ascii[1][90]='Z'; // Z
while(letra!=27) {
letra=getch();
// Si es una letra mayuscula
if(letra>=65 && letra<=90) {
printf("\n%c",ascii[1][letra]);
}
}
printf("\nTeclee una palabra...: ");
scanf(" %s",palabra);
for(contador=0;contador<50 && palabra[contador]!='\0';contador++) {
printf("%c",ascii[1][palabra[contador]]);
}
printf("\n");
system("PAUSE");
return 0;
}
';contador++) {
printf("%c",ascii[1][palabra[contador]]);
}
printf("\n");
system("PAUSE");
return 0;
}
El resultado del ejercicio en c, anterior ha de ser similar al que se muestra a continuación.
Gracias por vuestra visita y un saludo!!!
Aclaraciones…
Quiero recordar a nuestros usuarios, que no pretendo ser arrogante ni imponer ningún sistema de programación y tal como ya he comentado en otras ocasiones, muchos ejercicios tendrán varias posibles soluciones, en la mayoría de casos procuro buscar una solución que sea fácil de entender para los usuarios programadores mas noveles. Siempre repetiré que si me enviáis otra solución al ejercicio estaré gustoso de añadirla en el blog para que todos puedan ver diferentes formas de programación. También indicar que si estudias informática y programación, aunque aquí se aplique una solución, muchos profesores os indicaran que ellos prefieren un sistema, algoritmo, o lo que sea diferente, hacer caso a los consejos de vuestros profesores ya que al fin y al cabo son ellos los que os van a evaluar, y también considero que conocer diferentes formas de programación o de resolución de algoritmos nunca esta de más… Además ya se sabe el saber no ocupa lugar solo megas :O)