sábado, 27 de agosto de 2016

INFORMACIÓN BÁSICA DEL FUNCIONAMIENTO DE UN COMPUTADOR,PROGRAMAS DE ALMACENAMIENTO,TODO SOBRE DIAGRAMAS DE FLUJO Y ALGUNAS HERRAMIENTAS Y UTILIZACIÓN DE MATLAB

               HOLA AMIGOS HOY LES TRAIGO INFORMACIÓN BÁSICA DEL FUNCIONAMIENTO DE UN COMPUTADOR,  PROGRAMAS DE ALMACENAMIENTO, TODO SOBRE DIAGRAMAS DE FLUJO Y ALGUNAS HERRAMIENTAS Y UTILIZACIÓN DE MATLAB.                                                                   Almacenamiento en nube

Esencialmente se trata  de información de datos basados en programas computacionales creado en la década de los 60 donde los datos están alojados en espacios de almacenamiento virtualizados a continuacion detallaremos algunos de los los más importantes:

Dropbox
Dropbox es un servicio de alojamiento de archivos multiplataforma en la nube, operado por la compañía Dropbox.
El servicio permite a los usuarios almacenar y sincronizar archivos en línea y entre computadoras y compartir archivos y carpetas con otros usuarios y con tabletas y móviles.
Existen versiones gratuitas y de pago, cada una de las cuales tiene opciones variadas. Está disponible para Android, Windows Phone, Blackberry e iOS.

Google Drive
Google Drive es un servicio de alojamiento de archivos que fue introducido por Google el 24 de abril del 2012.
Es el reemplazo de Google Docs que ha cambiado su dirección URL, entre otras cualidades.
.


Gmail                                                                                                   Gmail, llamado en otros lugares Google Mail por problemas legales,es un servicio de correo electrónico con posibilidades POP3e IMAP gratuito proporcionado por la                         empresa estadounidense Google, Inc a partir del 15 de abril de 2004 y que ha captado la atención de los medios de información por sus innovaciones tecnológicas, su capacidad, y por algunas noticias que alertaban sobre la violación de la privacidad de los usuarios.         
Funcionamiento de la computadora
Una computadora procesa o elabora los datos que se le suministran, puede por ejemplo realizar el promedio de unos datos introducidos previamente, realizar una gráfica con esos datos o suministrar un listado ordenado de mayor a menor de dichos datos.
Para realizar estos procesos, la computadora debe disponer de recursos para almacenar la información mientras ésta es elaborada, al recurso que realiza esa función se le denomina memoria.
Esquemáticamente una computadora se compone de:               Unidad de Entrada: Permiten la introducción de información en la computadora, existen dos tipos de dispositivos, aquellos que convierten los datos en un formato capaz de ser interpretado por la computadora como el teclado y los que permiten su entrada directa como el escáner, lectores de tarjetas o códigos de barras o la pantalla táctil.                                                                                                                                                                                                                                                               Unidad de Almacenamiento o Memoria: Dispositivos donde se almacenan los datos y los programas para procesarlos. Existen dos tipos: Memoria Principal, constituida por circuitos integrados y que a su vez se subdivide en RAM y ROM; y la Memoria Secundaria, donde se almacenan otros datos que no tienen cabida en la principal, la constituyen los Discos duros , CD-ROM, disquetes, Unidades de cinta,..                                                                              Unidad Aritmético/Lógica: Es la parte encargada de procesar los datos, se conoce también como ALU . Las operaciones que realiza son de tipo aritmético: suma, resta, multiplicación y división; y de tipo lógico: igual, mayor que o menor que.                                                                                    Unidad de Control: Dirige la ejecución del programa y control a tanto el movimiento entre memoria y ALU, como las señales que circulan entre la CPU y los Periféricos.                                    Unidad de Salida: Presentan al usuario los datos ya elaborados que  se encuentran en la memoria de la computadora, los más habituales son la pantalla y la impresora.
Funcionamiento de la computadora
Hardware

La palabra hardware se refiere a las partes físicas tangibles de un sistema informático; sus componentes eléctricos, electrónicos, electromecánicos, mecánicos.



Software                                                                                      Se conoce como software al equipo lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware.


Sistema operativo
Un sistema operativo es un programa o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes.

Lenguaje de programación
Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.

Introducción-Terminología 
La Terminología tiene aspectos comunes con la Lexicografía, pero las diferencias entre la naturaleza de los objetos léxicos estudiados ha dado lugar al desarrollo de sus propias teorías sobre los elementos léxicos de una lengua y de una metodología fundamentada en dichas teorías, todo lo cual permite considerar a la Terminología como una ciencia separada de la Lexicografía. “Terminología” es una palabra polisémica que hace referencia a tres aspectos distintos relacionados con la recopilación, la descripción y la presentación de los términos.
Tecnicas de resolucion de algoritmos
Para lograr resolver cualquier problema se deben seguir básicamente los siguientes pasos:
1.      Análisis del Problema: en este paso se define el problema, se lo comprende y se lo analiza con todo detalle.
2.      Diseño del Algoritmo: se debe elaborar una algoritmo que refleje paso a paso la resolución del problema.
3.      Resolución del Algoritmo en la computadora: se debe codificar el algoritmo.



Algoritmos de búsqueda y ordenación
Ordenación
         Existen diferentes algoritmos de ordenación elementales o básicos cuyos detalles de implementación se pueden encontrar en diferentes libros de algoritmos. Los algoritmos presentan diferencias entre ellos que los convierten en más o menos eficientes y prácticos según sea la rapidez y eficiencia demostrada por cada uno de ellos.
Búsqueda
Búsqueda Secuencial.- Este algoritmo compara uno a uno los elementos del arreglo hasta recorrerlo por completo indicando si el número buscado existe. Su implementación en el lenguaje C.

2.3. Tipos de datos elementales
         Se llama tipo primitivo o tipo elemental a los tipos de datos originales de un lenguaje de programación, esto es, aquellos que nos proporciona el lenguaje y con los que podemos (en ocasiones) construir tipos de datos abstractos y estructuras de datos.
Generalmente ejemplos de tipos primitivos son:
1.      Char (Carácter)
2.      Int (Entero)
3.      Float (Real - Coma flotante)
·         Otros tipos de datos que pueden ser considerados primitivos ya que la mayoría de lenguajes de programación así los proporcionan (aunque no todos) son:
Booleano (Lógico: Verdadero, Falso)
String (Cadena de caracteres)
Puntero (Dirección de memoria - Int)
2.3.1. Clasificaciones en los tipos de datos
         En Pascal existen gran variedad y cantidad de tipos de datos. Pero en este tutorial sólo se trataran los básicos para que puedas ir construyendo tus primeros programas.
         Existen muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que mires, te mostrarán una u otra. A continuacón tienes una de las posibles clasificaciones:
1.      Dinámicos
2.      Estáticos
3.      El tipo cadena
4.      Estructurados
5.      Simples
6.      Ordinales
7.      No-ordinales
8.      Tipos estáticos
Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se tratarán debido a su complejidad.
Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria no puede variar durante la ejecución del programa. Es decir, una vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuir.
2.3.2. Tipos dinámicos
Dentro de esta categoría entra solamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el programa se está ejecutando.
         Los punteros quizás sean el concepto más complejo a la hora de aprender un lenguaje de programación, sobre todo si es el primero que aprendes. Debido a esto, no lo trataremos. Además, lenguajes que están muy de moda (por ejemplo Java) no permiten al programador trabajar con punteros.
2.3.3. Tipos simples
         Como su nombre indica son los tipos básicos en Pascal. Son los más sencillos y los más fáciles de aprender. Por todo esto, serán en los que nos centremos.
         Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de los lenguajes de programación los soportan, no como ocurre con los estructurados que pueden variar de un lenguaje a otro.
2.3.4. Tipos estructurados
         Mientras que una variable de un tipo simple sólo referencia a un elemento, los estructurados se refieren a colecciones de elementos.
         Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy variadas: tenemos colecciones ordenadas que se representan mediante el tipo array, colecciones sin orden mediante el tipo conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros.
2.3.5. Tipos ordinales
         Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice que es ordinal porque el conjunto de valores que representa se puede contar, es decir, podemos establecer una relación uno a uno entre sus elementos y el conjunto de los números naturales.
Dentro de los tipos simples ordinales, los más importantes son:
1.      El tipo entero (integer)
2.      El tipo lógico (boolean)
3.      El tipo carácter (char)
2.3.6. Tipos no-ordinales
         Simplificando, podríamos reducir los tipos simples no-ordinales al tipo real. Este tipo nos sirve para declarar variables que pueden tomar valores dentro del conjunto de los números reales.
         A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se puede establecer una relación uno a uno entre ellos y los número naturales. Dicho de otra forma, para que un conjunto se considere ordinal se tiene que poder calcular la posición, el anterior elemento y el siguiente de un elemento cualquiera del conjunto.
2.4. Diagramas de flujo iniciales.
     Es la representación gráfica de un  algoritmo o proceso. Se utiliza en disciplinas como programación,economía, procesos industriales.
     En  UML, un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.


     Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin del proceso.

.
2.4.1 Pasos para elaborar un diagrama de flujo.
1.      Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama.
2.      Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.
3.      Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
4.      Si el nivel de detalle definido incluye actividades menores, listarlas también.
5.      Identificar y listar los puntos de decisión.
6.      Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos
7.      Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.
2.4.2 Tipos de diagramas de flujos. 


Formato vertical.-  En él el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito.



Formato horizontal.-  En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha.

Ventajas de los diagrama de flujo.
1.      Favorecen la comprensión del proceso a través de mostrarlo como un dibujo.
2.      El cerebro humano reconoce fácilmente los dibujos.
3.      Un buen diagrama de flujo reemplaza varias páginas de texto.
4.      Permiten identificar los problemas y las oportunidades de mejora del proceso.
5.      Se identifican los pasos redundantes, los flujos de los re-procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.
6.      Realizan, facilitando a los empleados el análisis de las mismas.
7.      Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.
2.4.4. Símbolos de los diagramas de flujo.



MATLAB
Tambien conocido como laboratorio de matrices matemático que ofrece un entorno de desarrollo integrado con un lenguaje de programación propio. Está disponible para la plataforma, WINDOWS, MAC IOS X y GNU. Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario y la comunicación con programas en otros lenguajes    y con otros dispositivos. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber,Simulink  y GUIDE . Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas ; y las de Simulink con los paquetes de bloques .Es un software muy usado en universidades y centros de investigación y desarrollo. En los últimos años ha aumentado el número de prestaciones, como la de programar directamente procesadores digitales de señal o crear código VHDL.
ALGUNOS COMANDOS EN MATLAB
 
Los cálculos que no se asignan a una variable en concreto se asignan a la variable de respuesta por defecto que es ans (del inglés, answer): >>2+3
ans = 5
Sin embargo, si el cálculo se asigna a una variable, el resultado queda guardado en ella: 
>>x=2+3
x = 5
Para conocer el valor de una variable, basta teclear su nombre: >>x
x = 5
 Si se añade un punto y coma (;) al final de la instrucción, la máquina no muestra la respuesta... 
>>y=5*4;
... pero no por ello deja de realizarse el cálculo. 
>>y
y = 20

Las operaciones se evalúan por orden de prioridad: primero las potencias, después las multiplicaciones y divisiones y, finalmente, las sumas y restas. Las operaciones de igual prioridad se evalúan de izquierda a derecha:>>2/4*3
ans = 1.5000
>>2/(4*3)
ans = 0.1667

 Se pueden utilizar las funciones matemáticas habituales. Así, por ejemplo, la función coseno,>>cos(pi) % pi es una variable con valor predeterminado 3.14159...
ans = -1
o la función exponencial 
>>exp(1)    % Función exponencial evaluada en 1, es decir, el número e
ans = 2.7183

 Además de la variable pi, MATLAB tiene otras variables con valor predeterminado; éste se pierde si se les asigna otro valor distinto. Por ejemplo: >>eps       % Épsilon de la máquina. Obsérvese que MATLAB trabaja en doble precisión
ans = 2.2204e-016
pero... >>eps=7
eps = 7

 Otro ejemplo de función matemática: la raíz cuadrada; como puede verse, trabajar con complejos no da ningún tipo de problema. La unidad imaginaria se representa en MATLAB como  i o j, variables con dicho valor como predeterminado: >>sqrt(-4)ans = 0+ 2.0000i

 El usuario puede controlar el número de decimales con que aparece en pantalla el valor de las variables, sin olvidar que ello no está relacionado con la precisión con la que se hacen los cálculos, sino con el aspecto con que éstos se muestran: >>1/3
ans = 0.3333
>>format long
>>1/3
ans = 0.33333333333333
>>format       % Vuelve al formato estándar que es el de 4 cifras decimales

  Para conocer las variables que se han usado hasta el momento: >>who
Your variables are:
ans eps x y
o, si se quiere más información (obsérvese que todas las variables son arrays): 
>>whos
Name  Size  Bytes      Class
 ans   1x1    8     double array
 eps   1x1    8     double array
   x   1x1    8     double array
   y   1x1    8     double array
Grand total is 4 elements using 32 bytes
Para deshacerse de una variable>>clear y 
>>who
Your variables are:
ans eps x
 Para definir un vector fila, basta introducir sus coordenadas entre corchetes: >>v=[1 2 3]     % Vector de 3 coordenadas
v= 1 2 3
>>w=[4 5 6];
El operador ' es el de trasposición (en realidad trasposición y conjugación): >>w'
ans =
4
5
6
Si queremos declarar un vector de coordenadas equiespaciadas entre dos dadas, por ejemplo, que la primera valga 0, la última  20  y la distancia entre coordenadas sea 2, basta poner:>>vect1=0:2:20
vect1 = 0 2 4 6 8 10 12 14 16 18 20
Equivalentemente, si lo que conocemos del vector es que la primera coordenada vale 0, la última 20 y que tiene 11 en total, escribiremos: >>vect2=linspace(0,20,11)
vect2 = 0 2 4 6 8 10 12 14 16 18 20
A las coordenadas de un vector se accede sin más que escribir el nombre del vector y, entre paréntesis, su índice: >>vect2(3)
ans = 4
y se pueden extraer subvectores, por ejemplo: 
>>vect2(2:5)
ans= 2 4 6 8
o,
>>vect1(:)
ans=
0
2
4
6
8
10
12
14
16
18
20

 Las matrices se escriben como los vectores, pero separando las filas mediante un punto y coma; así una matriz 3x3: >>M=[1 2 3;4 5 6;7 8 9]
M =
1 2 3
4 5 6
7 8 9
>>M'                  % Su traspuesta (su adjunta)
ans =
1 4 7
2 5 8
3 6 9
>>mat=[v;w;0 0 1]     % También es una matriz 3x3
mat =
1 2 3
4 5 6
0 0 1
A los elementos de una matriz se accede sin más que escribir el nombre de la matriz y, entre paréntesis, los respectivos índices: >>mat(1,3)    % Elemento en la primera fila y tercera columna de la matriz matlab.
ans = 3
También se puede acceder a un fila o columna completas,>>mat(:,2)    % Segunda columna de matlab.
ans =
2
5
0
>>mat(2,:)    % Su segunda fila
ans = 4 5 6
acceder a la matriz como si fuera una columna, 
>>M(2:7)      % Los elementos segundo a séptimo de la matriz como columna
ans =
4
7
2
5
8
3
o acceder a cualquiera de sus submatrices 
>>mat(2:3,[1 3])   % Submatriz formada por los elementos que están en
% "todas" las filas que hay entre la segunda y la tercera y  % en las columnas primera y tercera
ans =
4 6
0 1
Existen algunas matrices definidas previamente; por ejemplo, la matriz identidad, >>eye(5)    % eye se pronuncia en inglés como:
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
la matriz nula,
>>zeros(3)
ans =
0 0 0
0 0 0
0 0 0
o la matriz cuyos elementos valen todos 1:
>>ones(4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Se puede conocer el tamaño de una matriz y la longitud de un vector:>>size(mat) % Dimensiones de la matriz mat (número de filas y de columnas)
ans = 3 3
>>size(v)
ans = 1 3
>>length(v) % Longitud del vector (número de coordenadas)
ans = 3
Existen comando que permiten crear de forma sencilla matrices. Por ejemplo:>>diag(v)  % Matriz diagonal cuya diagonal es el vector.
ans =
1 0 0
0 2 0
0 0 3
>>diag(diag(M)) % Matriz diagonal con la diagonal de M. La sentencia diag(M) da
% el vector formado por la diagonal de la matriz M
ans =
1 0 0
0 5 0
0 0 9
>>diag(ones(1,4),1)+diag(ones(1,4),-1) % Matriz tridiagonal 5x5 con 0 en la diagonal
% principal y 1 en la sub y superdiagonal
ans =
0 1 0 0 0
1 0 1 0 0
0 1 0 1 0
0 0 1 0 1
0 0 0 1 0
>>tril(M) % Matriz formada por la parte triangular inferior de M.
ans =
1 0 0
4 5 0
7 8 9
>>triu(M) % Matriz formada por la parte triangular superior de M.
ans =
1 2 3
0 5 6
0 0 9
MATLAB tiene un gran potencial de herramientas gráficas. Se pueden dibujar los valores de un vector frente a otro (de la misma longitud): 
>>x=pi*(-1:0.1:1);
>>y=x.*sin(x);
>>plot(x,y)        % Por defecto une los puntos (x(i),y(i)) mediante una poligonal 
También permite dibujar superficies. La forma más sencilla es mediante el comando ezsurf,
>>ezsurf('sin(x*y)',[-2 2 -2 2]

Aunque se pueden realizar gráficas más sofisticadas:

>>t=0:0.001:0.009;
>>v=900:1025;
>>[T V]=meshgrid(t,v);
>>aux1=16*pi^2*(T.^2).*((V-918).^2).*((V-1011).^2);
>>aux2=aux1+(2*V-1929).^2;
>>w=T./aux2;
>>z=35000000*w;
>>surfl(t,v,z);     % Este comando dibuja la superficie creada mediante las
>>shading interp;   % ordenes anteriores. Los siguientes sirven para modificar
>>colormap(pink);   % el dibujo obtenido
>>rotate3d;         % Sirve para girar la figura mediante el ratón.