martes, 15 de mayo de 2012

Teoría Semana 1, 2 y 3


1) Estructura de datos, Variables, Arreglos (Vectores y matrices)
En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema.
Una estructura de datos define la organización y conexión de estos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones básicas son:
§  Alta, adicionar un nuevo valor a la estructura.
§  Baja, eliminar un valor de la estructura.
§  Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados).
§  Ordenamiento, de los elementos pertenecientes a la estructura.
§  Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para llevar a cabo  cada operación. De esta forma, la elección de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operación sobre los datos.
Estructuras de datos
1.       Vectores
2.       Matrices
3.       Listas
4.       Arboles

Matriz O Vector 
En programación, una matriz o vector (llamados en inglés arrays) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo
Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).

0
1
2
3
4
0
2
4
6
8

Vectores son llamados arreglos también, los cuales sirven como campos virtuales en donde puedes almacenar datos temporalmente.
Por ejemplo, un vector (5,1)
significa que podemos guardar temporalmente 5 datos.

La matriz en un conjunto de arreglos en los cuales podemos guardar datos temporalmente.
La diferencia con los vectores es que podemos tener un cojunto de arreglos mas extensa.
Por ejemplo, una matriz de (5,5) o matriz cuadrada de 5.
Aqui podemos guardar 25 datos

Tipos De Datos
                Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

Tipos de Datos Simples
Ø  Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye a los números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes.

Ø  Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos).

Ø  Datos Alfanuméricos (String): Es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.
                Ejemplo:
                               “Instituto Tecnológico de Peru”
                               “1997”
Operadores y Operandos
Ø 
Operadores:
Son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir, los operadores nos permiten manipular valores.
                                         Aritméticos
Tipos de Operadores       Relaciónales
                                         Lógicos
Ø  Operadores Aritméticos: permiten efectuar operaciones matemáticas con los valores (variables y constantes).

Operadores Aritméticos      
            +          Suma
            -           Resta
            *          Multiplicación
            /          División
               Mod             Modulo           (residuo de la división entera)

Ejemplos:
      Expresión  Resultado       
         7 / 2          3.5
      12 mod 7     5
      4  + 2 * 5     14

Operadores Relaciónales:
h       Se utilizan para establecer una conexion entre dos valores.
h       Compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso).
h       comparan valores del mismo tipo (numéricos o cadenas)
h       Los operadores relaciónales tiene menor prioridad que los aritméticos.

Operadores Relaciónales
                        >          Mayor que
                        <          Menor que
                        > =       Mayor o igual que
                        < =       Menor o igual que
                        < >       Diferente
                        =          Igual

Ejemplos:
            Si a = 10          b = 20              c = 30

                        a + b > c          Falso
                        a - b < c           Verdadero
                        a - b = c           Falso
                        a * b < > c       Verdadero

Operadores Lógicos:
h       Estos operadores se utilizan para establecer relaciones entre valores lógicos.
h       Estos valores pueden ser resultado de una expresión relacional.

            Operadores Lógicos
                        And      Y
                        Or        O
                        Not      Negación

Operador And
Operando1           Operador              Operando2           Resultado
     T                           AND                         T                             T
     T                                                             F                             F        
     F                                                             T                             F
     F                                                             F                             F

Operador Or
Operando1           Operador              Operando2           Resultado                             
     T                           OR                            T                             T
     T                                                             F                             T
     F                                                             T                             T
     F                                                             F                             F

Operador Not
Operando             Resultado
     T                             F
     F                             T

            Ejemplos:                              
                        (a < b) and (b < c)
                        ((a > = b) or (a < d)) and (( a > = d) and (c > d))
not (a = c) and (c > b)

Constantes y Variables

Ø  Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.
      Ejemplo:
            pi = 3.1416

Ø  Variable: Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambia durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.
            Ejemplo:                     área = pi * radio ^ 2
            Las variables son : el radio, el área y la constate es pi

2) Lenguaje y programación (altos, bajos, maquina, ejemplos)

Lenguajes de Programación

Es un conjunto de símbolos, caracteres y normas  que le permiten a las personas comunicarse con la computadora.
Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten ejecutar operaciones de entrada/salida, calculo, manipulación de textos, lógica/comparación y almacenamiento/recuperación.
Los lenguajes de programación se clasifican en:

Ø  Lenguaje Maquina: Son aquellos cuyas  instrucciones son directamente  entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria mas pequeña el bit (dígito binario 0 o 1).

Ø  Lenguaje de Bajo Nivel (Ensamblador): El término ensamblador (del inglés assembler) describe a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.
Funcionamiento

El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación propio en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador.

Ø  Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol,  c, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensión del programa.

Como una computadora únicamente puede interpretar y ejecutar el lenguaje máquina, existen programas traductores, que traducen, programas desde el lenguaje simbólico al lenguaje máquina.

Los traductores se dividen en: Intérpretes y compiladores.

Un intérprete es un programa  que lee línea a línea un programa escrito en un lenguaje; el lenguaje fuente, y lo va traduciendo a un código intermedio, para ejecutarlo. Un compilador es un programa que lee un programa escrito en un lenguaje; el lenguaje fuente, y lo traduce a un programa objeto. El proceso de la traducción de programas fuente a programas objeto es la fase de compilación. El programa objeto obtenido de este proceso ha sido traducido normalmente al código común del lenguaje máquina. El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable.

Ø Lenguajes Orientados a objetos: La POO (programación orientada  a objetos) intenta solventar principalmente los problemas de la Ingeniería del Software como: portabilidad, reusabilidad y mantenimiento entre otros. Para ello se base en características claves como el encapsulamiento, la herencia, el polimorfismo, y el desarrollo orientado primero hacia el qué, y luego hacia el cómo (interfaces).
El elemento principal de la POO es la Clase, la cual simboliza abstractamente un elemento del mundo existente o una unidad que agrupa propiedades y funcionalidades comunes.

Ø Internet y las nuevas exigencias del software

La aparición de Internet cambió el foco de los sistemas informáticos. Industrialmente, son pocas las aplicaciones desktop (de escritorio) que se diseñan, a menos que se necesiten específicamente. Los negocios de una empresa dependen de datos que casi nunca están centralizados, y se necesita que esos datos puedan ser consultados y manipulados por clientes internos y externos vía un navegador de Internet.
Podemos fácilmente distinguir entre una aplicación Web y una aplicación de Escritorio: esta última se caracteriza por llevar a cabo casi la totalidad de operaciones de negocios, la seguridad impera en este modo, debido a que el equipo donde se encuentra instalada puede contar con diferentes mecanismos de defensa frente a virus, troyanos, software espía, &c; el rendimiento y velocidad de procesamiento son también un punto a favor.
Por otro lado, sigue el paradigma de multiplataforma, ya que a través de un único navegador es capaz de acceder a la aplicación como tal y llevar operaciones como si se tratará de una aplicación más instalada en el equipo local. Sus usuarios pueden acceder (siempre que se haya concedido este permiso) desde cualquier máquina con conexión a internet.

4) Programas

Programa: Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora para la solución de un problema.

Metodología para la solución de un problema por medio de la computadora:

·                     Definición del problema: Es el  enunciado del problema, el cual necesita una definición clara y precisa
·                     Análisis: Es necesario definir; los datos de entrada, la información que se desea producir, los métodos y formulas
·                     Diseño de algoritmo: Debe  partir de un inicio, ser finito en tamaño y tiempo de ejecución.
·                     CodificaciónEs una serie de instrucciones detalladas , es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo),
·                     Depuración y verificación del problemaEs el proceso de identificar y eliminar errores, para dar paso a una solución.
·                     Documentación: Es la guía o comunicación escrita sirve para ayudar a comprender o usar un programa
·                     Mantenimiento: Se lleva a cabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio o ajuste


¿Qué es un Algoritmo?
n   Son un conjunto de instrucciones bien definida, ordenada y finita, que permiten efectuar una actividad específica mediante pasos sucesivos que no generen dudas a quien lo vaya a ejecutar.
n   Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada), en una solución (salida).
  

Formas de expresión de un Algoritmo

Lenguaje natural

1.       Diagramas de Flujo  
Es la expresión detallada en forma gráfica de cómo deben efectuarse los pasos en la computadora para lograr la solución de un problema.  Es la expresión gráfica de un algoritmo.

2.       Pseudocódigo
     Es una mezcla de lenguaje de programación y español (o ingles) que se emplea, dentro de la programación, para el diseño de  programas.

3.       Lenguajes de Programación
    Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a cabo por las computadoras.
Entender  la  estructura

Una estructura es la esquematización de un problema y puede ser:

SecuencialSe ejecuta un proceso y luego se ejecuta otro, pero, no tiene la posibilidad de expandirse. Son procesos consecutivos.




 



No hay comentarios:

Publicar un comentario