viernes, 22 de febrero de 2013

Programa de encuesta a estudiantes


//Programa de encuesta a estudiantes
#include <iostream>

using std::cout;
using std::endl;

#include <iomanip>

using std::setw;

int main()
{
      system("cls");

      //define el tamaño de los arreglos
      const int tamanoRespuestas = 40;   //tamaño del arreglo respuestas
      const int tamanoFrecuencia = 11;   //tamaño del arreglo frecuencia

      //coloca las respuestas de la encuesta en el arreglo respuestas
      int respuestas[ tamanoRespuestas ] = { 1, 2, 6, 4, 8, 5, 9, 7, 8,
            10, 1, 6, 3, 8, 6, 10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7,
            5, 6, 6, 5, 6, 7, 5, 6, 4, 8, 6, 8, 10 };

      //inicializa contadores de frecuencia en 0
      int frecuencia[ tamanoFrecuencia ] = { 0 };

      //para cada respuesta, seleccione un valor de un elemento del arreglo
      //respuestas y utilicelo como subíndice del arreglo
      //frecuencia para determinar el elemento a incrementar
      for( int respuesta = 0; respuesta < tamanoRespuestas; respuesta++ )
            ++frecuencia[ respuestas[ respuesta ] ];

      //despliega los resultados
      cout << "Calificacion" << setw ( 17 ) << "Frecuencia" << endl;

      //muestra las frecuencias en formato tabular
      for( int calificacion = 1; calificacion < tamanoFrecuencia; calificacion++ )
            cout << setw( 6 ) << calificacion
                   << setw( 17 ) << frecuencia[ calificacion ] << endl;


      system("pause");
      return 0;  // indica terminacion exitosa
}//fin de main

Programa para desplegar un histograma


//Programa para desplegar un histograma
#include <iostream>

using std::cout;
using std::endl;

#include <iomanip>

using std::setw;

int main()
{
      system("cls");

      const int tamanoArreglo = 10;

      int n[ tamanoArreglo ] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 };

      cout << "Elemento" << setw( 13 ) << "Valor"
             << setw( 17 ) << "Histograma" << endl;

      //para cada elemento del arreglo n, muestra una barra en el histograma
      for ( int i = 0; i < tamanoArreglo; i++)
      {
            cout << setw( 7 ) << i << setw( 13 ) << n[ i ] << setw( 9 );

            for( int j = 0; j < n[ i ]; j++)//despliega una barra
                  cout << '*';

            cout << endl;//inicia la siguiente línea de salida
      }//fin de la estructura for externa

      system("pause");
      return 0; // indica terminacion exitosa
}//fin de main

Inicializa el arreglo s con los enteros pares de 2 a 20


//Inicializa el arreglo s con los enteros pares de 2 a 20
#include <iostream>

using std::cout;
using std::endl;

#include <iomanip>

using std::setw;

int main()
{
      system("cls");

      //la variable constante se puede utilizar para
      //especificar el tamaño del arreglo.

      const int tamanoArreglo = 10;

      int s[ tamanoArreglo ]; //el arreglo s tiene 10 elementos

      for( int i = 0; i < tamanoArreglo; i++ ) // establece los valores
            s[ i ] = 2 + 2 * i;

      cout << "Elemento" << setw(13) << "Valor" << endl;

      //muestra el contenido del arreglo s en formato tabular
      for( int j = 0; j < tamanoArreglo; j++ )
            cout << setw(7) << j << setw( 13 ) << s[ j ] << endl;

      system("pause");
      return 0; //indica terminacin exitosa
}//fin de main

Inicializacion de un arreglo con una declaracion


//Inicializacion de un arreglo con una declaracion
#include <iostream>

using std::cout;
using std::endl;

#include <iomanip>

using std::setw;

int main()
{
      system("cls");

      //utiliza una lista de inicializacion para
      //inicializar el arreglo n
      int n[10] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };

      cout << "Elemento" << setw(13) << "Valor" << endl;

      //salida del contenido del arreglo n en formato tabular
      for(int i = 0; i < 10; i++)
            cout << setw(7) << i << setw(13) << n[i] << endl;

      system("pause");
      return 0;  // indica terminacion exitosa
}// fin de main

Inicializacion de un arreglo


//Inicializacion de un arreglo
#include <iostream>

using std::cout;
using std::endl;

#include <iomanip>

using std::setw;

int main()
{
      system("cls");
      int n[10];  // n es un arreglo de 10 enteros

      //Inicializa los elementos del arreglo n en 0
      for( int i = 0; i < 10; i++)
            n[i] = 0;   //establece el elemento de la ubicacion i en 0

      cout << "Elemento" << setw(13) << "Valor" << endl;

      //despliega el contenido de un arreglo n en forma tabular
      for(int j = 0; j < 10; j++)
            cout << setw(7) << j << setw(13) << n[j] << endl;
     
      system("pause");
      return 0;  //indica terminacion exitosa
}//fin de main

martes, 19 de febrero de 2013

DISCOS DINÁMICOS FRENTE A DISCOS BÁSICOS.


Discos dinámicos frente a discos básicos.

Se elimina el límite de 4 particiones primarias.

Eliminan el límite que tenían los discos básicos y permiten configuraciones más avanzadas.

Al crear, creamos volúmenes en vez de particiones.

   1     Volumen simple: equivalente a la partición del disco básico.

   2     Volumen distribuido: ofrece la inclusión de zonas no consecutivas (suma de varios volúmenes simples en un solo volumen).

   3 RAID 0 conjunto dividido (bandas): Distribuye equitativamente los datos en los disco sin proporcionar redundancia y aumentando el rendimiento.

Número mínimo de discos: 2 Discos.

Aprovechamiento del espacio: 100%.

Precio: 2x.

Precio GB: y.

Probabilidad pérdida de datos: 2z.

Observaciones: velocidad acceso.

   4 RAID 1 (espejo): Crea una copia exacta o espejo de datos en los discos. Es útil para el      rendimiento de la lectura sobre la capacidad.

Número mínimo de discos: 2 Discos.

Aprovechamiento del espacio: 50%.

Precio: 2x.

Precio GB: 2y

Probabilidad pérdida de datos: z al cuadrado= 0,001.

Observaciones: ofrece más seguridad frente a pérdida de datos. Menos espacio.


    5 RAID 5: Reparte los datos a nivel de bloques distribuyendo la información de seguridad entre los discos, con coste de redundancia muy bajo. Se emplean tres unidades de disco para implementación.

Número mínimo de discos: 3 Discos.

Aprovechamiento del espacio: 66%.

Precio: 3x.

Precio gb: 1.5y.

Probabilidad pérdida de datos.

Observaciones: 

Más seguridad que RAID 0, menos que RAID 1 y más velocidad que RAID 1 y más espacio que RAID 1.

SCRIPTS BÁSICOS EN LINUX


1. Vamos a realizar un script, muy sencillo, que nos muestre los días de la semana.
Para ello usamos un bucle for, que recorre las variables que nosotros le metemos, en este caso los días de la semana.
 
#!/bin/bash
for var in lunes martes miercoles jueves viernes sabado domingo
do
    echo $var
done 

2. Ejemplo sencillo que nos muestra, con una variable global, donde nos encontramos actualmente.

# Ejemplo de variable global
function EstasAqui
{
local donde='Dentro de la funcion'
}
donde='En el script'
echo $donde
EstasAqui
echo $donde

3.Script que nos dice si el archivo que le pasamos como parámetro es un directorio o no lo es.


#/bin/bash

if [! -d $1]
then
    echo "$1 no es valido"
else
    cd $1
         for archivo in `ls *txt`
do
  echo $archivo >> misTxt
   cat $archivo >> misTxt
 

done
fi