Skip to content

Instantly share code, notes, and snippets.

@pizenblues
Created October 26, 2014 20:18
Show Gist options
  • Save pizenblues/a58a84e4cb6741178fd6 to your computer and use it in GitHub Desktop.
Save pizenblues/a58a84e4cb6741178fd6 to your computer and use it in GitHub Desktop.
#include<iostream.h>
#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');
};
}
int main(){
char opc;
int tamano, multiple;
int fila = 1, columna = 1;
int menu;
int contador = 0;
printf("\n\t cantidad de vertices ");
read_input(tamano);
int matriz[tamano][tamano];
for(int i =0; i<tamano; i++)
for(int j = i; j<tamano; j++){
fila = fila + i;
columna = columna + j;
printf("\n el vertice %i es adyacente al vertice %i (s/n): ", fila, columna);
cin>>opc;
if(opc=='s'){
cout<<" es multiple? (s/n): ";
cin>>opc;
if(opc=='s')
{
cout<<"cuantas veces es final?: ";
read_input(multiple);
matriz[i][j]=multiple;
cout<<"cuantas veces es inicial?: ";
read_input(multiple);
matriz[j][i]=multiple;
}
else
{
cout<<"es final?: (s/n): ";
cin>>opc;
if(opc=='s')
{
matriz[i][j]=0;
matriz[j][i]=1;
}
else
{
matriz[i][j]=1;
matriz[j][i]=0;
}
}
}else{
matriz[i][j] = 0;
matriz[j][i] = 0;
}
fila = 1;
columna = 1;
}
system("cls");
cout<<endl<<endl;
for(int i=0; i<tamano; i++){
for(int j=0; j<tamano; j++){
cout<<"\t"<<matriz[i][j];
}
cout<<endl;
}
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");
cout<<endl<<endl;
for(int i=0; i<tamano; i++){
for(int j=0; j<tamano; j++){
cout<<"\t"<<matriz[i][j];
}
cout<<endl;
}
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< tamano; i++){
for(int j=0; j< tamano; 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 > tamano || c > tamano){
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<tamano; i++){
for(int j=0; j<tamano; 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 <= tamano){
filaS -= 1;
for (int i = 0; i < tamano; 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 <= tamano){
columnasS -=1;
for (int j = 0; j < tamano; 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:{
int check = 0;
printf("\t La Diagonal Principal es: \n");
for(int i = 0; i < tamano; i++){
cout<< " " <<matriz[i][i];
check = check + matriz[i][i];
}
printf(" \n ");
if(check != 0){
printf("hay bucles");
}else{
printf("no hay bucles");
}
printf(" \n ");
break;
}
case 7:
for (int i = 0; i < tamano; i++) {
for (int j = 0; j < tamano; j++) {
if (matriz[i][j] != matriz[j][i]) {
break;
}else{
contador = contador + 1;
}
}
}
if(contador == tamano * tamano){
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 <= tamano && segundaF <= tamano){
primeraF -=1;
segundaF -=1;
for( int i = 0; i< tamano; 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 <= tamano && segundaC <= tamano){
primeraC -=1;
segundaC -=1;
for( int j = 0; j< tamano; 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();
}
#include<iostream.h>
#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');
};
}
int main(){
char opc;
int tamano, multiple;
int fila = 1, columna = 1;
int menu;
int contador = 0;
printf("\n\t cantidad de vertices ");
read_input(tamano);
int matriz[tamano][tamano];
for(int i =0; i<tamano; i++)
for(int j = i; j<tamano; j++){
fila = fila + i;
columna = columna + j;
printf("\n el vertice %i es adyacente al vertice %i (s/n): ", fila, columna);
cin>>opc;
if(opc == 's'){
printf(" \n\t es multiple? (s/n): ");
cin>>opc;
if(opc == 's'){
cout<<"\n\t cuantas veces?: ";
read_input(multiple);
matriz[i][j] = multiple;
matriz[j][i] = multiple;
}else{
matriz[i][j] = 1;
matriz[j][i] = 1;
}
}else{
matriz[i][j] = 0;
matriz[j][i] = 0;
}
fila = 1;
columna = 1;
}
system("cls");
cout<<endl<<endl;
for(int i=0; i<tamano; i++){
for(int j=0; j<tamano; j++){
cout<<"\t"<<matriz[i][j];
}
cout<<endl;
}
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");
cout<<endl<<endl;
for(int i=0; i<tamano; i++){
for(int j=0; j<tamano; j++){
cout<<"\t"<<matriz[i][j];
}
cout<<endl;
}
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< tamano; i++){
for(int j=0; j< tamano; 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 > tamano || c > tamano){
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<tamano; i++){
for(int j=0; j<tamano; 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 <= tamano){
filaS -= 1;
for (int i = 0; i < tamano; 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 <= tamano){
columnasS -=1;
for (int j = 0; j < tamano; 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:{
int check = 0;
printf("\t La Diagonal Principal es: \n");
for(int i = 0; i < tamano; i++){
cout<< " " <<matriz[i][i];
check = check + matriz[i][i];
}
printf(" \n ");
if(check != 0){
printf("hay bucles");
}else{
printf("no hay bucles");
}
printf(" \n ");
break;
}
case 7:
for (int i = 0; i < tamano; i++) {
for (int j = 0; j < tamano; j++) {
if (matriz[i][j] != matriz[j][i]) {
break;
}else{
contador = contador + 1;
}
}
}
if(contador == tamano * tamano){
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 <= tamano && segundaF <= tamano){
primeraF -=1;
segundaF -=1;
for( int i = 0; i< tamano; 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 <= tamano && segundaC <= tamano){
primeraC -=1;
segundaC -=1;
for( int j = 0; j< tamano; 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