miércoles, 31 de octubre de 2018

MATRICES



QUE SON  LAS MATRICES DE DATOS?

Una matriz en programación es justamente lo mismo que una matriz en matemáticas , con la diferencia que su propósito es un poco mas practico y elemental ...en programación una matriz es un conjunto de vectores o mejor dicho es un vector de muchas direcciones .


Cuando necesitamos manejar muchos datos, generalmente hay soluciones más efectivas que tener muchas variables. Por ejemplo, si hay que guardar 10 números, resultará incómodo usar 10 variables llamadas n1, n2, n3, n4, n5, n6, n7, n8, n9, n10; si se trata de 100 números, puede pasar de resultar incómodo a ser totalmente inviable. En esos casos, será más eficiente almacenar esos 100 datos "juntos", formando lo que se conoce como una "matriz", en vez de usar 100 variables distintas.
La palabra "matriz" es una traducción del inglés "array". Algunos autores lo traducen alternativamente como tabla, vector o incluso "arreglo".
Normalmente, en una matriz podremos acceder individualmente a cada uno de sus elementos usando corchetes: el primer dato sería algo como "dato[1]".
Como primer contacto, se puede crear una matriz de 3 elementos, guardar datos en sus 3 posiciones y mostrar el primer dato.
Como una matriz puede contener muchos datos, es frecuente recorrerlas de forma repetitiva, empleando una orden "para". Así un ejemplo que nos pida 6 datos y luego los muestre en orden contrario al que se han introducido podría ser:
Algoritmo MostrarAlReves
 
    Dimension datos[6]
 
    Para i <- 1 Hasta 6 Hacer
        Escribir "Dime el dato numero ", i
        Leer datos[i]
    FinPara
 
    Escribir "Los datos al reves son: "
    Para i <- 6 Hasta 1 Con Paso -1 Hacer
        Escribir datos[i]
    FinPara
 
FinAlgoritmo
 
Que mostraría algo como:
(Haremos ejemplos más avanzados como parte de los ejercicios)
Ejercicio de repaso propuesto 9.1: Crea un programa que pida un número al usuario un número de mes (por ejemplo, el 4) y diga cuántos días tiene (por ejemplo, 30). Debes usar una matriz.
Ejercicio de repaso propuesto 9.2: Haz un programa que pida al usuario 5 datos, los guarde en una matriz y luego muestre su media (la suma de los 5 datos, dividida entre 5).
Ejercicio de repaso propuesto 9.3: Crea una versión ampliada del ejercicio 9.2, en la que se pida al usuario 5 datos, se guarden en una matriz y finalmente se calcule su media, se muestre ésta y se muestren también los valores mayores que la media).
Ejercicio de repaso propuesto 9.4: Si has estudiado lo que es un vector, crea un programa que reserve espacio para dos vectores de 3 componentes, pida al usuario sus valores y calcule la suma de ambos vectores (su primera componente será x1+y1, la segunda será x2+y2 y así sucesivamente).
Ejercicio de repaso propuesto 9.5: Si has estudiado lo que es un vector, prepara un programa que reserve espacio para dos vectores de 3 componentes, pida al usuario sus valores y calcule su producto escalar (x1·y1+ x2·y2+x3·y3).
Ejercicio de repaso propuesto 9.6: Haz un programa que pida al usuario 7 números enteros y calcule (y muestre) cuál es el mayor de ellos. Nota: para calcular el mayor valor de una matriz, hay que comparar cada uno de los valores que tiene almacenados con el que hasta ese momento es el máximo provisional. El valor inicial de este máximo provisional no debería ser cero (porque el resultado sería incorrecto si todos los números son negativos), sino el primer elemento de la matriz.
Ejercicio de repaso propuesto 9.7: Crea un programa que prepare un array con 10 datos prefijados, luego pregunte al usuario qué dato desea buscar, avise si ese dato no aparece, y que en caso contrario diga cuántas veces se ha encontrado.

También se pueden crear arrays "de dos dimensiones" (por ejemplo, 3 filas y dos columnas), que se acercan más al concepto matemático de matriz:
Algoritmo Matriz32
 
    Dimension datos[3,2]
 
    datos[1,1] <- 10
    datos[2,1] <- 25
    datos[3,1] <- 50
 
    datos[1,2] <- 11
    datos[2,2] <- 26
    datos[3,2] <- 51
 
    Escribir "El primer dato en la primera columna es ", datos[1,1]
    Escribir "Y el ultimo de la segunda columna ", datos[3,2]
 
FinAlgoritmo
 
Ejercicio de repaso propuesto 9.8: Crea un programa que pida al usuario dos bloques de 10 números cada uno (usando un array de dos dimensiones). Después deberá mostrar el mayor dato que se ha introducido en cada uno de esos dos bloques.
Ejercicio de repaso propuesto 9.9: Si has estudiado álgebra matricial, haz un programa que calcule el determinante de una matriz de 2x2, a partir de datos que introduzca el usuario.
Ejercicio de repaso propuesto 9.10: Si has estudiado álgebra matricial, prepara un programa que calcule el determinante de una matriz de 3x3.
Actualizado el: 06-08-

jueves, 18 de octubre de 2018

sintaxis

 FOR LENGUAJE C


for basada en intervalo para construir los bucles que se deben ejecutar a lo largo de un "intervalo", que se define como cualquier elemento que se puede recorrer en iteración; por ejemplo, std::vector, o cualquier otra secuencia de STL cuyo intervalo esté definido por begin() y end(). El nombre que se declara en la parte for-range-declaration es local de la instrucción for y no se puede volver a declarar en expression o statement. Tenga en cuenta que es preferible utilizar la palabra clave auto en la parte for-range-declaration de la instrucción.
En este código se muestra cómo utilizar bucles for con intervalos para recorrer en iteración una matriz y un vector:
  
// range-based-for.cpp  
// compile by using: cl /EHsc /nologo /W4  
#include <iostream>  
#include <vector>  
using namespace std;  
  
int main()   
{  
    // Basic 10-element integer array.  
    int x[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };  
  
    // Range-based for loop to iterate through the array.  
    for( int y : x ) { // Access by value using a copy declared as a specific type.   
                       // Not preferred.  
        cout << y << " ";  
    }  
    cout << endl;  
  
    // The auto keyword causes type inference to be used. Preferred.  
  
    for( auto y : x ) { // Copy of 'x', almost always undesirable  
        cout << y << " ";  
    }  
    cout << endl;  
  
    for( auto &y : x ) { // Type inference by reference.  
        // Observes and/or modifies in-place. Preferred when modify is needed.  
        cout << y << " ";  
    }  
    cout << endl;  
  
    for( const auto &y : x ) { // Type inference by reference.  
        // Observes in-place. Preferred when no modify is needed.  
        cout << y << " ";  
    }  
    cout << endl;  
    cout << "end of integer array test" << endl;  
    cout << endl;  
  
    // Create a vector object that contains 10 elements.  
    vector<double> v;  
    for (int i = 0; i < 10; ++i) {  
        v.push_back(i + 0.14159);  
    }  
  
    // Range-based for loop to iterate through the vector, observing in-place.  
    for( const auto &j : v ) {  
        cout << j << " ";  
    }  
    cout << endl;  
    cout << "end of vector test" << endl;  
}  
  


WHILE  LENGUAJE C

La instrucción while ejecuta una instrucción o un bloque de instrucciones mientras una expresión booleana especificada se evalúa como true. Como esa expresión se evalúa antes de cada ejecución del bucle, un bucle while se ejecuta cero o varias veces. Esto es diferente del bucle do que se ejecuta una o varias veces.
En cualquier punto del bloque de instrucciones while, se puede salir del bucle mediante la instrucción break.
Puede ir directamente a la evaluación de la expresión while mediante la instrucción continue. Si la expresión se evalúa como true, la ejecución continúa en la primera instrucción del bucle. En caso contrario, la ejecución continúa en la primera instrucción después del bucle.
También se puede salir de un bucle while mediante las instrucciones gotoreturn o throw.

Ejemplo

En el ejemplo siguiente se muestra el uso de la instrucción while. Haga clic en Ejecutar para ejecutar el código de ejemplo. Después, puede modificar el código y volver a ejecutarlo.
C#
int n = 0;
while (n < 5)
{
    Console.WriteLine(n);
    n++;
}
DO WHILE LENGUAJE C


El expresión de prueba se evalúa; si es truecuerpo de expresión se ejecuta y se vuelve a evaluar la expresión de prueba. El cuerpo de expresión debe tener tipo unit. Si la expresión de prueba es false, los extremos de la iteración.
El ejemplo siguiente muestra el uso de la while...do expresión.
F#
open System

let lookForValue value maxValue =
  let mutable continueLooping = true
  let randomNumberGenerator = new Random()
  while continueLooping do
    // Generate a random number between 1 and maxValue.
    let rand = randomNumberGenerator.Next(maxValue)
    printf "%d " rand
    if rand = value then
       printfn "\nFound a %d!" value
       continueLooping <- false

lookForValue 10 20



















MATRICES

QUE SON  LAS MATRICES DE DATOS? Una matriz en programación es justamente lo mismo que una matriz en matemáticas , con la diferencia que ...