Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////////////////
- //
- // PRACTICO: 3
- // PROBLEMA: 4
- // APELLIDO: Murillo
- // NOMBRES: Sebastian Matias
- // MATRICULA: 37218182
- // DNI: 37218182
- // COMISION: 3.2
- //
- //////////////////////////////////////////
- #include <iostream>
- #include <cstdlib>
- #include <cstring>
- using namespace std;
- int main(int argc, char *argv[])
- {
- int GEN_RAND_A = 0;
- int SET_DEF_A = 0;
- int SHOW_MATRX = 0;
- int USING_BAT = 0;
- char A[10][10];
- char input[250];
- char word[30];
- int FOUND = 0, CharNumber = 0,length = 0;
- cout<<"Ingese A: "<<endl;
- if(USING_BAT)
- {
- strcpy (input, argv[2]);
- cout<<input;
- }
- if(USING_BAT == 0 && SET_DEF_A == 0 && GEN_RAND_A == 0) cin.getline(input, sizeof(input));
- if(SET_DEF_A == 0 && GEN_RAND_A == 0)
- {
- int p = 0, I = 0, J = 0;
- while(true)
- {
- if(input[p] != ' ')
- {
- A[I][J] = input[p];
- J++;
- if(J == 10)
- {
- J = 0;
- I++;
- }
- if(I == 10) break;
- }
- p++;
- }
- }
- if(GEN_RAND_A == 1) // GENERATE RANDOM MATRIX
- {
- for(int x = 0;x < 10;x++)
- {
- for(int i = 0;i < 10;i++)
- {
- A[x][i] = char(65 + ((rand()%100)+1)/4);
- }
- }
- }
- if(SET_DEF_A == 1) // SET DEFAULT MATRIX
- {
- A[0][0] = 'A';A[0][1] = 'B';A[0][2] = 'H';A[0][3] = 'O';A[0][4] = 'L';A[0][5] = 'A';A[0][6] = 'P';A[0][7] = 'T';A[0][8] = 'A';A[0][9] = 'M';
- A[1][0] = 'H';A[1][1] = 'M';A[1][2] = 'O';A[1][3] = 'P';A[1][4] = 'A';A[1][5] = 'L';A[1][6] = 'E';A[1][7] = 'L';A[1][8] = 'U';A[1][9] = 'E';
- A[2][0] = 'M';A[2][1] = 'O';A[2][2] = 'L';A[2][3] = 'H';A[2][4] = 'T';A[2][5] = 'O';A[2][6] = 'O';A[2][7] = 'E';A[2][8] = 'R';A[2][9] = 'T';
- A[3][0] = 'I';A[3][1] = 'K';A[3][2] = 'A';A[3][3] = 'B';A[3][4] = 'O';A[3][5] = 'H';A[3][6] = 'T';A[3][7] = 'J';A[3][8] = 'A';A[3][9] = 'L';
- A[4][0] = 'Y';A[4][1] = 'H';A[4][2] = 'D';A[4][3] = 'H';A[4][4] = 'I';A[4][5] = 'L';A[4][6] = 'E';A[4][7] = 'H';A[4][8] = 'J';A[4][9] = 'V';
- A[5][0] = 'B';A[5][1] = 'A';A[5][2] = 'O';A[5][3] = 'I';A[5][4] = 'A';A[5][5] = 'U';A[5][6] = 'O';A[5][7] = 'A';A[5][8] = 'I';A[5][9] = 'E';
- A[6][0] = 'L';A[6][1] = 'O';A[6][2] = 'T';A[6][3] = 'L';A[6][4] = 'M';A[6][5] = 'L';A[6][6] = 'F';A[6][7] = 'G';A[6][8] = 'H';A[6][9] = 'J';
- A[7][0] = 'U';A[7][1] = 'H';A[7][2] = 'U';A[7][3] = 'L';A[7][4] = 'A';A[7][5] = 'M';A[7][6] = 'O';A[7][7] = 'A';A[7][8] = 'V';A[7][9] = 'X';
- A[8][0] = 'Z';A[8][1] = 'E';A[8][2] = 'L';A[8][3] = 'A';A[8][4] = 'M';A[8][5] = 'I';A[8][6] = 'J';A[8][7] = 'H';A[8][8] = 'O';A[8][9] = 'S';
- A[9][0] = 'W';A[9][1] = 'A';A[9][2] = 'H';A[9][3] = 'A';A[9][4] = 'L';A[9][5] = 'O';A[9][6] = 'H';A[9][7] = 'A';A[9][8] = 'T';A[9][9] = 'O';
- }
- if(SHOW_MATRX) // SHOW MATRIX
- {
- cout<<" MATRIZ A:"<<endl;
- for(int x = 0;x < 10;x++)
- {
- for(int i = 0;i < 10;i++)
- {
- cout<<" ["<<A[x][i]<<"] ";
- }
- cout<<endl;
- }
- }
- cout<<"Ingrese la palabra a buscar: ";
- cin.getline(input, sizeof(word));
- cout<<endl;
- for(int p = 0;p < sizeof(word);p++)
- {
- if(input[p] == '.') break;
- CharNumber = int(input[p]);
- switch ( CharNumber )
- {
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'Ñ':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- word[length] = input[p];
- length++;
- }
- }
- if(SHOW_MATRX)
- {
- cout<<"La palabra a buscar es '";
- for(int q = 0;q < length;q++)
- {
- cout<<word[q];
- }
- cout<<"'"<<" y tiene una longitud de "<<length<<"."<<endl;
- }
- if(length < 0 || length > 10)
- {
- cout<<"ERROR: La palabra es invalida."<<endl;
- system("PAUSE");
- return 0;
- }
- for(int I = 0;I < 10;I++)
- {
- for(int J = 0;J < 10;J++)
- {
- if(length == 1)
- {
- if(A[I][J] == word[0]) FOUND++;
- }
- else
- {
- // HORIZONTALES
- for(int L = 0;L < length;L++)
- {
- if(A[I][J+L] != word[L]) L = length;
- if(L == length-1)
- {
- FOUND++;
- if(SHOW_MATRX) cout<<"Palabra encontrada en HORIZONTAL A."<<endl;
- }
- }
- for(int L = 0;L < length;L++)
- {
- if(A[I][J-L] != word[L]) L = length;
- if(L == length-1)
- {
- FOUND++;
- if(SHOW_MATRX) cout<<"Palabra encontrada en HORIZONTAL B."<<endl;
- }
- }
- // VERTICALES
- for(int L = 0;L < length;L++)
- {
- if(A[I+L][J] != word[L]) L = length;
- if(L == length-1)
- {
- FOUND++;
- if(SHOW_MATRX) cout<<"Palabra encontrada en VERTICAL A."<<endl;
- }
- }
- for(int L = 0;L < length;L++)
- {
- if(A[I-L][J] != word[L]) L = length;
- if(L == length-1)
- {
- FOUND++;
- if(SHOW_MATRX) cout<<"Palabra encontrada en VERTICAL B."<<endl;
- }
- }
- // DIAGONALES PRINCIPALES
- for(int L = 0;L < length;L++)
- {
- if(A[I+L][J+L] != word[L]) L = length;
- if(L == length-1)
- {
- FOUND++;
- if(SHOW_MATRX) cout<<"Palabra encontrada en DIAGONAL A."<<endl;
- }
- }
- for(int L = 0;L < length;L++)
- {
- if(A[I-L][J-L] != word[L]) L = length;
- if(L == length-1)
- {
- FOUND++;
- if(SHOW_MATRX) cout<<"Palabra encontrada en DIAGONAL B."<<endl;
- }
- }
- // DIAGONALES SECUNDARIAS
- for(int L = 0;L < length;L++)
- {
- if(A[I-L][J+L] != word[L]) L = length;
- if(L == length-1)
- {
- FOUND++;
- if(SHOW_MATRX) cout<<"Palabra encontrada en DIAGONAL C."<<endl;
- }
- }
- for(int L = 0;L < length;L++)
- {
- if(A[I+L][J-L] != word[L]) L = length;
- if(L == length-1)
- {
- FOUND++;
- if(SHOW_MATRX) cout<<"Palabra encontrada en DIAGONAL D."<<endl;
- }
- }
- }
- }
- }
- cout<<FOUND<<endl;
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement