lunes, 8 de diciembre de 2014

EJERCICIOS CON VECTORES 2

COMENZAMOS CON EL PRIMER EJERCICIO:

1. REALIZAR UN  PROGRAMA EN EL QUE EL USUARIO INGRESE LA CANTIDAD DE FILAS Y COLUMNAS PARA LA MATRIZ. LUEGO INGRESAR UN NUMERO QUE SE BUSCARA EN LA MATRIZ Y SI ESTA, ENTONCES MOSTRARA UN MENSAJE QUE DIGA SI 'EXISTE' Y LA POSICIÓN DE AQUEL NÚMERO.

#include<conio.h> 
#include<iostream.h>
#include<string>

void main(){
 int f,c, A[50][50],num,f1=-1,c1=-1,cont=-1;
 string rpta="";

 //variables para la posicion de la matriz
 int x=5, y=8;

 cout<<"Ingrese el num. de filas: ";
cin>>f;

cout<<"Ingrese el num. de columnas";
 cin>>c;

 for(int i=0; i<f; i++){
   for(int j=0; j<c; j++){
   gotoxy(x,y);cin>>A[i][j];
   x+=5;
   }
 x=5,y+=2;
}

cout<<"\nNumero a buscar: ";
cin>>num;

 //proceso en donde buscamos a 'num' y obtenemos la posicion.
 for(int i=0; i<f; i++){
   for(int j=0; j<c; j++){
      if(A[i][j]==num){
      rpta="Existe";
      f1=i;
      c1=j;
     cont=1;
    }
}

 if(cont==1){
 break;
 }
 }

 cout<<"\nEl numero: "<<rpta;
 cout<<"\nPosicion: "<<"["<<f1<<"]"<<"["<<c1<<"]";
 getch();
}




EXPLICATION: Para este ejercicio solo hay que comparar por medio de un 'if' dentro de la matriz. 




2. REALIZAR UN PROGRAMA QUE PERMITA INGRESAR EL ORDEN DE UNA MATRIZ Y DADOS LOS NÚMEROS INGRESADOS PARA LA MATRIZ, OBTENER LA CANTIDAD DE NUMERO PARES E IMPARES.

#include<iostream.h>
#include<conio.h>

void main(){

int f,c,A[50][50];
int par=0, imp=0;
//variables para la posicion de la matriz
int x=5, y=6;

cout<<"Ingrese num de filas: ";
cin>>f;
cout<<"Ingrese num. de columnas: ";
cin>>c;

for(int i=0; i<f; i++){
   for(int j=0; j<c; j++){
   gotoxy(x,y);cin>>A[i][j];
   x+=5;
    }

 x=5,y+=2;

}

//Analizando los numeros que son pares e impares

for(int i=0; i<f; i++){
   for(int j=0; j<c; j++){
   if(A[i][j]%2==0){
   par++;
   }
 else
 imp++;
  }
}

cout<<"\nNumeros pares: "<<par;
cout<<"\nNumeros impares: "<<imp;

getch();

}


EXPLICATION: Para identificar un número par, solo tenemos que hallar el resto de un número, si es 0 entonces el número es par, de lo contrario si el resto del número con 2 es diferente de 0 entonces es número impar.

domingo, 7 de diciembre de 2014

EJERCICIOS CON VECTORES

EJERCICIOS CON VECTORES:


1. El usuario debe ingresar cierta cantidad de números y el programa determinará cuantas veces se repiten los números:


#include<iostream.h>
#include<conio.h>
void main(){
     int n,A[50],cont=0;
     bool num;

     cout<<"Ingrese la cantidad de números a comparar: ";
     cin>>n;
     for(int i=0; i<n; i++){
      cin>>A[i];
     }

     //Comparando los numeros del vector A
     for(int i=0; i<n; i++){
      for(int j=0; j<n; j++){
          if(i!=j){
      if(A[i]==A[j]){
                              cont++;
                       }
               }
         }
     }

     cout<<"\n La cantidad de numero iguales es : "<<cont;

getch();
}


Lo que el 'cont'  hace es contabilizar la cantidad de veces que se repiten los números sin contar los de la misma posición.

2. Realizar un programa en el cual el usuario ingresará el orden de una matriz y hallar el promedio aritmético de tales números.

#include<iostream.h>
#include<conio.h>
void main (){
int f,c,sum=0;
   int prom=0;
   int A[50][50];
   //variables para la posicion de la matriz
   int x=5, y=8;

   cout<<"Ingrese la cantidad de filas: ";
   cin>>f;
   cout<<"Ingrese la cantidad de columnas: ";
   cin>>c;

   for(int i=0; i<f; i++){
    for(int j=0; j<c; j++){
          gotoxy(x,y);cin>>A[i][j];
          x+=5;
      }
      x=5, y+=2;
   }

   //recorriendo la matriz
for(int i=0; i< f; i++){
    for(int j=0; j<c; j++){
      sum+=A[i][j];
      }
   }

   prom=sum/(f*c);
cout<<"\nEl promedio aritmetico de la matriz es: "<<prom;

getch();

}


Explication: Lo que se hace acá es solo por el medio de los 'for' calcular la suma total de los números de la matriz para luego, fuera de los 'for' calcular el promedio, sabiendo que la cantidad de números es el producto de filas y columnas.

sábado, 6 de diciembre de 2014

Ejercicios con vectores

1. INGRESAR 5 NÚMEROS Y DETERMINAR CUANTOS SON PRIMOS.

#include<iostream.h>
#include<conio.h>
void main(){
int cont=0;
      int A[5];
      bool valor;

      for(int i=0; i<5; i++){
      cout<<"Ingrese numero "<<(i+1)<<": ";
            cin>>A[i];
      }

      for(int i=0; i<5; i++){
      valor=true;
             for(int j=2;j<=A[i]/2;j++){
              if(A[i] % j==0){
                valor=false;break;
               }
             }

             if(valor==true){
              cont++;
             }
      }
           cout<<"\nLa cantidad de numeros primos es: "<<cont;

getch() ;
}


El primer for es para obtener los 5 valores del vector sin la necesidad de estar poniendo un cout para obtener numero por numero. El siguiente for es para comparar si aquellos numeros introducidos en el primer for son primos o no. En caso de que sean primos el contador aumentara en 1. Para contabilizar se creo una variable de tipo bool llamado valor.

viernes, 5 de diciembre de 2014

Suma de matrices en C++

¿Cómo sumar los números que están en las diagonales de una matriz?


Si el orden de la matriz es un número impar, eso quiere decir que la diagonal de la izquierda coincide con la diagonal de la derecha tienen en común el número del centro. Para que no se suma dos veces aquél número he puesto un 'else' a la siguiente condición. En caso si se quiere sumar dos veces ese número solo se debe quitar el 'else' para la segunda condición. 



#include<iostream.h>
#include<conio.h>
void main(void)
{

  int n,A[50][50],x=5,y=8,suma=0;

   cout<<"ingrese orden de la matriz: "; cin>>n;


   for(int i=0; i<n; i++){
    for(int j=0;j<n;j++){
         gotoxy(x,y);
      cin>>A[i][j];
         x+=5;
      }
         y+=2;
         x=5;
   }

   for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
                if(i==j){
                      suma=suma+ A[i][j];
                }
                else if( i+j==(n-1)){
                suma=suma +A[i][j];
                }
      }
   }

   cout<<"la suma de los bordes es: "<<suma;

getch();
}


Como imprimir una matriz en C++

Para imprimir una matriz en C++



Para ello  necesitamos tener la cantidad de filas y columnas necesarias, las cuales se pedirán al usuario. También la variable que almacenara la matriz, esta variable se declara de la siguiente forma:
   
       int A[40][40]

 Los dígitos de los corchetes es la cantidad máxima que   aceptaremos para las filas y columnas respectivamente. 

 Cada número de la matriz se imprimirá de esta manera:




Como vemos, comenzaremos con el código:

#include<iostream.h> 
#include<conio.h>

void main(void)
{
int n,m,A[50][50],x=5,y=8;

cout<<"ingrese numero de filas: "; cin>>n;
cout<<"Ingrese numero de columnas:";cin>>m;

for(int i=0; i<n; i++){
  for(int j=0;j<m;j++){
     gotoxy(x,y);
     cin>>A[i][j];
     x+=5;
        }
     y+=2;
     x=5;
}

getch();
}


Ese es todo el código necesario para mostrar un resultado como en la imagen.
La parte confusa del código es la que esta en el 'for' pues dentro las filas y columnas del  vector   A[50][50] , Notamos que no está con estos valores si no con las variables enteras i, j. ¿Por qué? porque estas representan la cantidad de filas y columnas que se aceptaran según el orden ya introducido por el usuario.

Si no se quiere una matriz cuadrada(la cantidad de filas y columnas son iguales) estrictamente. Es necesario que se pida el orden al usuario y el limite de los dos 'for' seria el orden.