Vistas de página en total

viernes, 5 de diciembre de 2014

Objetivo Del Blog y Reglas De Uso.

Este blog tiene como objetivos:


  • exponer alguna de las muchas soluciones posibles a algunos problemas que me han parecido difíciles.
  • ayudar con el entendimiento de lo que son los vectores y matrices en c++.
  • ejemplificar como usar los vectores y matrices.
  • resolver cualquier duda que pudiera causar al publico.
  • complementar alguna información que pudiera estar poco clara en otros blogs.
  • expresar mi razonamiento lógico matemático mediante ejercicios resueltos por mi.
  • escuchar las opiniones, sugerencias y quejas de los visitantes, para mejorar y hacerlo en cooperación con ellos.
estos son algunos de los objetivos principales que me he planteado para crear este blog y espero les sean de su agrado.



Reglas de uso y aclaraciones:

  • es permitido el uso de la sección de comentarios abiertamente para cualquier persona.
  • el uso de los comentarios deberá ser dentro de cada post exclusivamente con motivos relacionados al mismo.
  • los comentarios ofensivos, irracionales o que infrinjan en el buen funcionamiento del blog serán eliminados.

miércoles, 3 de diciembre de 2014

Que son las matrices en programación y para que sirven.

Matrices


una matriz en programación es un espacio en dos dimensiones que permite almacenar datos del mismo tipo.
Almacenar gran cantidad de valores distintos en los diferentes espacios de una sola variable(matriz).
Es similar a un vector, con la diferencia de que es posible desplazarse por ella en forma de  dos dimensiones y por lo tanto ofrece mas posibilidades.
al igual que los vectores a pesar de poder almacenar gran cantidad de valores, todos deberán pertenecer al mismo tipo de datos con que se declaro la matriz en primer lugar.
se declara similar a una variable normal, con la diferencia de que entre corchetes se escribe la cantidad de renglones y entre otros corchetes se escribe la cantidad de columnas que tendrá respectivamente.

Ejemplo:

TipoDeDato Nombre[NumeroDeRenglones][NumeroDeColumnas];

tomemos como ejemplo la imagen de la parte superior que dice que es una matriz de 3 renglones por 3 filas.
se declara:

int matriz[3][3];

normalmente para desplazarse por los espacios de la matriz se requiere de el uso de 2 ciclos for, uno para moverse por los renglones y otro para moverse por las columnas.


A continuación les dejo un vídeo que ejemplifica lo expuesto en este post.





Sistema que almacena estatura, peso y talla de zapatos de 10 personas preguntando si se desea ingresar a alguien mas (solución con matrices)

Sistema que almacena la estatura, peso y talla de zapatos de hasta

10 personas, preguntando si se desea almacenar los datos de otra

persona. Mostrar la matriz al final del programa hasta donde hubo

captura.

https://plus.google.com/101097498008201855631/posts

//declara librerías.
#include<iostream>
using namespace std;
//inicia función main.
main (void) {
//declara variables.
float par [10][3];//esta matriz permite almacenar los 3 datos de cada persona en las 3 columnas y almacena las 10 personas en los 10 renglones.
int i=0, ii, j=0;//estas variables se utilizan para desplazarse por la matriz mediante ciclos
int cic=1;

do {//este ciclo do permite que almacene al menos los datos de 1 persona antes de ofrecer el resto de opciones.
for (ii=0;ii<3;ii++){//este ciclo permite desplazarse por las columnas de cada renglón.
switch (ii){//este switch permite que se rellene los datos correspondientes de cada columna.
case 0:
cout<<"ingrese su estatura"<<endl;
cin>>par[i][0];
break;
case 1:
cout<<"ingrese su peso"<<endl;
cin>>par[i][1];
break;
case 2:
cout<<"ingrese su talla de zapatos"<<endl;
cin>>par[i][2];
break;
  }//finaliza el switch.
      }//finaliza el ciclo for.
cout<<"desea capturar mas datos? SI=1/NO=0"<<endl;//pregunta si se desea capturar mas datos y guarda la respuesta en la variable cic.
cin>>cic;
cout<<endl<<endl<<endl<<endl;
if(cic==0){//pregunta si la respuesta fue negativa.
break;//en caso de ser así, termina.
}
//en caso contrario aumenta el valor de la variable i, la cual representa la el renglón de la persona actual, con la finalidad de que al repetir el ciclo almacene los datos en otra persona.
else{
i=i+1;
}
} while (i<10);//pregunta si el contador de renglones es menor a 10, en caso de serlo, repite el ciclo hasta que ya no lo sea, y cuando eso pase terminara el ciclo.
for(i=i;i>=0;i--){//este ciclo for se desplaza por los renglones o personas maximas que se registraron y deciende hasta llegar a la ultima.
cout<<"renglon "<<i+1<<endl<<endl;//imprime el numero de persona a la que corresponden los datos.
for (ii=0;ii<3;ii++){//se desplaza por las columnas existentes.
cout<<"columna "<<ii+1<<endl<<par[i][ii]<<endl;//imprimer todos las columnas da cada renglon existente.

}
}
}

sistema que almacena todos los números primos desde 1 hasta 1001(solución con vectores).

5. Se necesita un sistema que almacena automáticamente todos
los números primos desde el uno hasta el mil uno; recordando
que un número primo es aquel que solamente es divisible entre
uno y si mismo.

Primero debemos establecer que es un vector en programación. un vector es una estructura de datos que permite guardar distintos datos del mismo tipo en el mismo bloque uno después de otro, a estos espacios donde se almacenan los valores se les puede nombrar mediante un nombre y un numero de espacio.
a continuación un vídeo explicándolo mejor.
Los derechos de este vídeo le pertenecen a su respectivo dueño.





he aquí la solución al problema planteado anteriormente.
Añadir leyenhttps://plus.google.com/101097498008201855631/postsda

//delara librerias.
#include <iostream>
using namespace std;
//declara las variables,
int num[1001];//este arreglo permite ir almacenando los 1001 números.
int i;//esta variable permite aumentar el valor del ciclo for.
int ii;//esta variable permite aumentar el valor del ciclo for.
int div=0;//esta variable se usa como contador.
//inicia la funcion main.
main (void){
    cout<<"1"<<endl;
for (i=1;i<1001;i++){//con este ciclo se va recorriendo de 1 en 1 por cada uno de los 1001 números.
    for (ii=1;ii<=i;ii++){//este ciclo for permite comparar el numero actual con cada uno de los numeros anteriores a este.
if (i%ii==0){//si el modulo de la división entre el numero actual y alguno de los anteriores.
div=div+1;//la variable div funciona como un contador y se incrementa cada vez que el numero actual es divisible entre alguno de los anteriores a el.
}
    }
    num[i]=i;//almacena los valores del ciclo for para ir completando los espacios de el vector.
if (div==2){//si el contador de veces que el numero se dividió exactamente entre otro es igual a 2, significa que solo fue divisible entre el mismo y entre 1.
cout<<num[i]<<endl;//imprime el numero siempre i cuando haya cumplido con la condicion anterior que lo comvertiria en un numero primo.
    }
div=0;//iguala el contador a 0 para que vuelva a contar a partir de 0 para el numero siguiente del primer ciclo for.
}
}


fuente:
http://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y-punteros-en-c/

capturar una serie de números e indicar cuantos son pares y cuantos impares(solución con vectores).

3. Necesitamos un sistema que capture 20 números y después de
capturarlos que haga la revisión de estos para indicarnos
cuantos son pares y cuantos son impares.

3. Necesitamos un sistema que capture 20 números y después de capturarlos que haga la revisión de estos para indicarnos cuantos son pares y cuantos son impares.
https://plus.google.com/101097498008201855631/posts

//declara librerías.
#include <iostream>
#include <cstdlib>
using namespace std;
//declara variables, en este caso vectores.
int num[20];//este vector almacenara los 20 números a capturar.
int mod=0;//esta variable sirve para almacenar los módulos de las divisiones.
int par=0;//esta variable almacenara la cantidad de números pares.
int imp=0;//esta variable almacenara la cantidad de números impares.
//inicia nuestra función main.
main(){
//se usa un ciclo for para ir almacenando los números a capturar en cada uno de los espacios de nuestro vector.
for (int i=0; i<20; i++){
cout<<"ingresa un numero "<<i+1<<": ";
cin>>num[i];
mod=num[i]%2;//al dividir el numero ingresado entre 2 y sacar su modulo con la función % podemos determinar si se trata de un numero par o impar.
if (mod==0){//si el modulo resultante de dicha operación es igual a 0, significa que el numero es un par ya que no dejo ningún residuo.
par=par+1;//la variable par se utiliza como un contador, que cada vez que un numero sea par, se le sumara una unidad al contador empezando en 0, que fue el valor inicial con que se declaro.
}
else{//en caso contrario, significa que hubo residuo y por lo cual sera un numero impar.
imp=imp+1;//utilizamos la variable imp de la misma manera que la variable par, pero este almacenara la cantidad de números impares.
}
}
//finalmente imprimimos los resultados fuera del ciclo for, para que los datos de la variable sean los últimos que almaceno, que en este caso seria la cantidad máxima de pares e impares de la serie de números.
cout<<"tus numeros pares son "<<par<<endl;
    cout<<"tus numeros impares son "<<imp;
}