Skip to content

Instantly share code, notes, and snippets.

@pizenblues
Created October 12, 2014 15:43
Show Gist options
  • Save pizenblues/8529ff3c828d8e0720c4 to your computer and use it in GitHub Desktop.
Save pizenblues/8529ff3c828d8e0720c4 to your computer and use it in GitHub Desktop.
//valentina azocar ci 24753255
#include <iostream>
#include <stdio.h>
using namespace std;
template <class T>
void read_input(T &var){
while(! (cin>>var) ){
printf(" \t \t ingrese un numero: ");
cin.clear();
cin.ignore(256, '\n');
};
}
main(){
int fil, menu, col;
int fila = 1, columna = 1, contador = 0, opc = 0;
printf("tamano de la matriz \n");
printf("\t filas ");
read_input(fil);
printf("\t columnas ");
read_input(col);
int matriz[fil][col];
for(int i=0; i<fil; i++)
for(int j=0; j<col; j++){
fila=i+1;
columna=j+1;
printf("\n que desea agregar en el punto %i X %i ?: ", fila, columna);
read_input(opc);
matriz[i][j]=opc;
}
system("cls");
printf("\n");
for(int i=0; i<fil; i++){
for(int j=0; j<col; j++){
cout<<" "<<matriz[i][j];
}
printf("\n");
}
do{
int sumac = 0;
printf("\n \t \t Menu \n \n 1-.buscar \n 2-.modificar \n 3-.ordenar \n 4-.sumar fila \n 5-.sumar columna \n 6-.diagonal principal \n 7-.chequear simetria \n 8-.comparar filas \n 9-.comparar columnas \n 10-.salir \n \n ");
read_input(menu);
system("cls");
printf("\n");
for(int i=0; i<fil; i++){
for(int j=0; j<col; j++){
cout<<" "<<matriz[i][j];
}
printf("\n");
}
switch(menu){
case 1:{
int google = 0, f = 0, c = 0;
printf(" se mostrara un mensaje si hay coincidencia \n");
printf("ingrese el numero a buscar: ");
read_input(google);
for(int i=0; i< fil; i++){
for(int j=0; j< col; j++){
f = i + 1;
c = j + 1;
if(google == matriz[i][j]) {
printf("\n Encontrado: fila %i columna %i ",f,c);
}
}
}
break;
}
case 2: {
int f, c, nuevo;
printf("fila: ");
read_input(f);
printf("columna: ");
read_input(c);
if(f > fil || c > col){
printf("alguno de los datos es incorrecto \n");
break;
}else{
f--;
c--;
printf("nuevo valor: ");
read_input(nuevo);
matriz[f][c] = nuevo;
printf("modificacion exitosa \n");
}
printf("\n");
for(int i=0; i<fil; i++){
for(int j=0; j<col; j++){
cout<<" "<<matriz[i][j];
}
printf("\n");
}
}
break;
case 3:
printf("\t 404 \n");
break;
case 4:{
int filaS =0, sumaf = 0;
printf("\t que fila desea sumar? - ");
read_input(filaS);
if(filaS <= fil){
filaS -= 1;
for (int i = 0; i < col; i++)
sumaf += matriz[filaS][i];
cout<< "\t la suma es: "<<sumaf<<" \n "<<endl;
}else{
printf("\t \t fila no encontrada \n");
}
sumaf = 0;
filaS = 0;
break;
}
case 5: {
int columnasS, sumac = 0;
printf("\t que columna desea sumar? - ");
read_input(columnasS);
if(columnasS <= col){
columnasS -=1;
for (int j = 0; j < fil; j++)
sumac += matriz[j][columnasS];
cout<< "\t la suma es: "<<sumac<<" \n "<<endl;
}else{
printf("\t \t columna no encontrada \n");
}
sumac = 0;
columnasS = 0;
break;
}
case 6:
if(fil != col){
printf(" la matriz no es cuadrada, por tanto, no hay diagonal principar \n");
}else{
printf("\t La Diagonal Principal es: \n");
for(int i = 0; i < fil; i++){
cout<< " " <<matriz[i][i];
}
}
printf(" \n ");
break;
case 7:
if (fil != col){
printf("como la matriz no es cuadrada, no es simetrica \n");
}else{
for (int i = 0; i < fil; i++) {
for (int j = 0; j < col; j++) {
if (matriz[i][j] != matriz[j][i]) {
break;
}else{
contador = contador + 1;
}
}
}
if(contador == fil * fil){
printf(" \t son simetricas \n");
}else{
printf(" \t no son simetricas \n");
}
}
break;
case 8:{
int primeraF, segundaF;
printf(" \t primera fila: ");
read_input(primeraF);
printf(" \t segunda fila: ");
read_input(segundaF);
if( primeraF <= fil && segundaF <= fil){
primeraF -=1;
segundaF -=1;
for( int i = 0; i< fil; i++){
if( matriz[primeraF][i] == matriz[segundaF][i] ){
printf("\t iguales \n");
}else{
printf("\t no iguales \n");
break;
}
}
}else{
printf(" \t fila no encontrada \n");
}
primeraF = 0;
segundaF = 0;
break;
}
case 9:{
int primeraC, segundaC;
printf(" \t primera columna \n");
read_input(primeraC);
printf(" \t segunda columna \n");
read_input(segundaC);
if( primeraC <= col && segundaC <= col){
primeraC -=1;
segundaC -=1;
for( int j = 0; j< col; j++){
if( matriz[j][primeraC] == matriz[j][segundaC] ){
printf("\t iguales \n");
}else{
printf("\t no iguales \n");
break;
}
}
}else{
printf(" \t COLUMNA no encontrada \n");
}
primeraC = 0;
segundaC = 0;
break;
}
case 10:
return 0;
break;
default:
printf("\t escoja una opcion valida \n");
}
}while(true);
//getch();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment