54. C++ || Arrays ejercicios



81. Hacer un programa en C++ que muestre en pantalla un tablero de ajedrez de la siguiente manera:

- Los peones con la letra P.
- Las torres con la letra T.
- Los caballos con la letra C.
- Los alfiles con la letra A.
- El rey con la letra M.
- La reina con letra M.

#include <iostream>
using namespace std;

void escribirRey(int,int);
void escribirReina(int,int);
void escribirAlfil(int,int);
void escribirCaballo(int,int);
void escribirTorre(int,int);
void escribirPeon(int,int);

int main(){
 int x,y;
   
    for (x=0;x<8;x++){
        for (y=0;y<8;y++){
            escribirRey(x,y);
            escribirReina(x,y);
            escribirAlfil(x,y);
            escribirCaballo(x,y);
            escribirTorre(x,y);
            escribirPeon(x,y);
            if(x != 0 && x != 1 && x != 6 && x != 7){
       cout << " ";
       }
        }
        cout << endl;
    }
 return 0;
}

void escribirRey(int x,int y){
 if ((x==0 && y==3) || (x==7 && y==3)){
            cout << "M";
    }
}

void escribirReina(int x,int y){
 if ((x==0 && y==4) ||(x==7 && y==4)){
     cout << "R";
    }
}

void escribirAlfil(int x,int y){
 if ((x==0 && y==2) ||
        (x==7 && y==2) ||
        (x==0 && y==5) ||
        (x==7 && y==5)){
            cout << "A";
    }
}

void escribirCaballo(int x,int y){
 if ((x==0 && y==1) ||
        (x==7 && y==1) ||
        (x==0 && y==6) ||
        (x==7 && y==6)){
            cout << "C";
    }
}

void escribirTorre(int x,int y){
 if ((x==0 && y==0) ||
        (x==7 && y==0) ||
        (x==0 && y==7) ||
        (x==7 && y==7)){        
     cout << "T";
    }
}

void escribirPeon(int x,int y){
 if (x==1 || x==6){ cout << "P"; }
}

82. Hacer un array bidimensional que acepte nueve números, luego, pedir al usuario que ingrese las coordenadas (x,y) para mostrar el elemento.

#include <iostream>
using namespace std;

void obtenerDatos(int[3][3]);
void mostrarCoordenadas(int[3][3]);

int main(){
 int numeros[3][3];
 obtenerDatos(numeros);
 mostrarCoordenadas(numeros);
 return 0;
}

void obtenerDatos(int numeros[3][3]){
 cout << "Ingresa 9 numeros" << endl;
 for(int i = 0; i < 3; i++){
  for(int j = 0; j < 3; j++){
   cin >> numeros[i][j];
  }
 }
} 

void mostrarCoordenadas(int numeros[3][3]){
 int x,y;
 cout << "Ingrese la coordenada x: "; cin >> x;
 cout << "Ingrese la coordenada y: "; cin >> y;
 cout << "El elemento en la coordenada (" << x << "," << y << ") es: ";
 cout << numeros[x][y];
}

83. Hacer un array bidimensional 3x3, ingresar datos en él, mostrarlo y luego mostrar la traspuesta. La traspuesta de una matriz se consigue intercambiando filas por columnas y vicersa.

#include <iostream>
using namespace std;

void obtenerDatos(int[3][3]);
void mostrarOriginal(int[3][3]);
void mostrarTraspuesta(int[3][3]);

int main(){
 int numeros[3][3];
 obtenerDatos(numeros);
 mostrarOriginal(numeros);
 mostrarTraspuesta(numeros);
 return 0;
}

void obtenerDatos(int numeros[3][3]){
 cout << "Ingresa 9 numeros" << endl;
 for(int i = 0; i < 3; i++){
  for(int j = 0; j < 3; j++){
   cin >> numeros[i][j];
  }
 }
} 

void mostrarOriginal(int numeros[3][3]){
 cout << "Array original: " << endl;
 for(int i = 0; i < 3; i++){
  for(int j = 0; j < 3; j++){
   cout << numeros[i][j];
  }
  cout << endl;
 }
}

void mostrarTraspuesta(int numeros[3][3]){
 cout << "Array traspuesto: " << endl;
 for(int i = 0; i < 3; i++){
  for(int j = 0; j < 3; j++){
   cout << numeros[j][i];
  }
  cout << endl;
 }
}

84. Hacer un programa que lea un array de 10 caracteres y que luego los muestre al inverso.

#include <iostream>
#include <cstring>
using namespace std;

void obtenerDatos(char[10]);
void mostrarPalabraAlReves(char[10]);

int main(){
 char palabra[10];
 obtenerDatos(palabra);
 mostrarPalabraAlReves(palabra);
 return 0;
}

void obtenerDatos(char palabra[10]){
 cout << "Ingresa una palabra con un maximo de 10 letras" << endl;
 cin.getline(palabra,10,'\n');//Esta función se explicará en el tema de cadenas
} 

void mostrarPalabraAlReves(char palabra[10]){
 //La función strlen se explicará en el tema de cadenas
 int indice = strlen(palabra);
 for(int i = indice - 1; i >= 0; i--){
      cout << palabra[i];
    }
}

85. Hacer un programa en C++ que lea una cadena, luego cuente la cantidad de vocales que tiene y las muestre por pantalla.

#include <iostream>
#include <cstring>
using namespace std;

void obtenerCadena(char[20]);
void mostrarVocales(char[20]);

int main(){
 char palabra[20];
 obtenerCadena(palabra);
 mostrarVocales(palabra);
 return 0;
}

void obtenerCadena(char palabra[20]){
 cout << "Ingresa una frase con un maximo de 20 letras" << endl;
 cin.getline(palabra,20,'\n');//Esta funcion se explicará en el tema de cadenas
} 

void mostrarVocales(char palabra[20]){
 //La funcion strlen se explicará en el tema de cadenas
 int maximoLetras = strlen(palabra), sum = 0;
 for(int i = 0; i < maximoLetras; i++){
  switch (palabra[i]){
   case 'a': sum++; break;
   case 'e': sum++; break;
   case 'i': sum++; break;
   case 'o': sum++; break;
   case 'u': sum++; break;
  }
 }
 cout << "Hay " << sum << " vocales";
}




No hay comentarios