sábado, 27 de febrero de 2016

Ejercicio - Matriz

   
 Dada la matriz de tamaño 3x3, realice lo siguiente:

  1. Realice una función que capture los elementos de la matriz.
  2. Realice una función que imprima la matriz.
  3. Realice una función que sume los siguientes elementos de la matriz excepto de la diagonal principal.
  4. Realice una función que que determine cuantos elementos de la matriz fueron positivos y cuantos negativos.
  5. Realice una función que haga la búsqueda de un dato determinado por el usuario, y despliegue los diferentes casos: a) Aparece solo una vez, b) Aparece más de una vez, c) No aparece nunca.
Recordemos la sintaxis para declarar un arreglo bidimensional:

                        tipo_nombre-del-arreglo[Tamaño de Fila][Tamaño de Columna]


El programa:


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#define COL 3
#define FIL 3
using namespace std;

void introduce (int A[FIL][COL]){
    int f,c;
    for(f=0; f<FIL ; f++){
        for(c=0; c<COL ; c++){
            cout<<"Introduce elemento ["<<f<<"]["<<c<<"]: ";
            cin>>A[f][c];
        }
    }
    cout<<endl<<endl;
}

void despliego (int A[FIL][COL]){
    int f,c;
    for(f=0; f<FIL ; f++){
        for(c=0; c<COL ; c++){
            cout<<"  "<<A[f][c]<<"\t";
        }
        cout<<endl;
    }
    cout<<endl<<endl;
}

int diagsum (int A[FIL][COL]){
    int f,c,suma=0;
    for(f=0; f<FIL ; f++){
        for(c=0; c<COL ; c++){
            if(f!=c)
                suma+=A[f][c];
        }
    }
    return (suma);
}

void posneg (int A[FIL][COL]){
    int f,c,pos=0,neg=0;
    for(f=0; f<FIL ; f++){
        for(c=0; c<COL ; c++){
            if(A[f][c]==0)
                neg--;
            if(A[f][c]>c)
                pos++;
            else
                neg++;
        }
    }
    cout<<"No. de elementos positivos: "<<pos<<endl;
    cout<<"No. de elementos negativos: "<<neg<<endl;
    cout<<endl<<endl;
}

void Busqueda (int A[FIL][COL]){
    int f,c,b;
    char opc;
    do{
        cout<<"Dato por buscar: ";
    cin>>b;
    int s=0;
    for(f=0; f<FIL ; f++){
        for(c=0; c<COL ; c++){
            if(b==A[f][c])
                s++;
        }
    }
    switch(s){
        case 0: cout<<"No aparece nunca";
                break;
        case 1: cout<<"Aparece solo 1 vez";
                break;
        default: cout<<"Aparece mas de 1 vez";
                break;
    }
    cout<<"\n Desea repetir la busqueda? S/N : ";
    cin>>opc;
    }while (opc=='s'||opc=='S');
    cout<<endl;
}

int main(){
    int A[FIL][COL],s;
    system ("color 2f");
    cout<<"\t\t\t\t Trabajando con una matriz de 3x3"<<endl;
    introduce(A);
    despliego(A);
    s=diagsum(A);
    cout<<"La suma de los elementos, excepto la diagonal principal es: "<<s;
    cout<<endl;
    posneg(A);
    Busqueda(A);
    return 0;
}



No hay comentarios:

Publicar un comentario