domingo, 22 de septiembre de 2013

UT 02: Eventos, Propiedades y Controles

UT2:       Entorno de programación Visual (10 períodos)

Eventos, Propiedades y Controles (26 períodos)

Hechos/conceptos (contenidos soporte)
  • ü  Programas para el entorno Windows, Modo de Diseño y Modo de Ejecución, Formularios y Controles
  • ü  Objetos y Propiedades.  Nombres de objetos, Eventos,  Métodos
  • ü   Proyectos y ficheros
  • ü   Eventos,  Eventos generales,  Carga y descarga de formularios
  • ü   El foco (focus), KeyPress, KeyUp y KeyDown,
  • ü   Eventos relacionados con el ratón:  Click y DblClick, MouseDown, MouseUp y MouseMove
  • ü   Botón de comando (Command Button),  Botones de opción (Option Button)
  • ü   Botones de selección (Check Box), Barras de desplazamiento (Scroll Bars)
  • ü  Etiquetas (Labels), Cajas de texto (Text Box), Listas (List Box), Cajas combinadas (ComboBox)
  • ü  Control Timer, Arrays de controles
  • ü  Formularios múltiples, Apertura de controles en forma modal 

UT 01: Programación Orientada a Objetos

Informática
Infor= información    matica=automática
La informática, también llamada computación,1 es una ciencia que administra métodos, técnicas y procesos con el fin de almacenar, procesar y transmitir información y datos en formato digital.
De esta forma, la informática se refiere al procesamiento automático de información mediante dispositivos electrónicos y sistemas computacionales. Los sistemas informáticos deben contar con la capacidad de cumplir tres tareas básicas: entrada (captación de la información), procesamiento y salida (transmisión de los resultados). El conjunto de estas tres tareas se conoce como algoritmo.
DATO, PROCESO E INFORMACIÓN
Dato e información son dos términos que suelen confundirse. Se consideran datos a toda entrada de información a una computadora. Estos datos pueden ser administrativos, científicos, comerciales, etc. son elementos primitivos, de los cuales a través del procesamiento se obtiene la información.
La computadora se utiliza para procesar en forma automática y a gran velocidad esos datos. Como resultado del procesamiento de esos datos se obtiene la información deseada, la cual será útil en la toma de decisiones.
DATO
PROCESO
INFORMACION
                     
 Partes del computador
UCP Y Periféricos
UCP
Unidad central de procesamiento, donde se ejecutan las instrucciones de programas y se controla el funcionamiento de los distintos componentes de una computadora;
 Periféricos
En informática, un periférico de entrada/salida o E/S (en inglésinput/output o I/O) es aquel tipo de dispositivo periférico de un computador capaz de interactuar con los elementos externos a ese sistema de forma bidireccional, es decir, que permite tanto que sea ingresada información desde un sistema externo, como emitir información a partir de ese sistema.
                                      

PROGRAMA INFORMÁTICO

Un programa informático o programa de computadora es una secuencia de instrucciones, escritas para realizar una tarea específica en una computadora.1​ Este dispositivo requiere programas para funcionar, por lo general, ejecutando las instrucciones del programa en un procesador central.2​ El programa tiene un formato ejecutable que la computadora puede utilizar directamente para ejecutar las instrucciones. El mismo programa en su formato de código fuente legible para humanos, del cual se derivan los programas ejecutables (por ejemplo, compilados), le permite a un programador estudiar y desarrollar sus algoritmos. Una colección de programas de computadora y datos relacionados se conoce como software.

TIPOS DE PROGRAMAS

Software del sistema.  Aquellos programas básicos que permiten el uso del computador, vinculando al usuario con los distintos aspectos de hardware y/o redes del sistema, así como con las aplicaciones instaladas en el mismo. Este tipo de programas dan soporte a las aplicaciones y en muchos casos vienen ya instalados e incluso empotrados en el computador. Por ejemplo: controladores de hardware, Sistemas Operativos, líneas de comandos, etc.

Software de aplicación. Toda la diversidad de programas secundarios que podemos descargar o instalar en nuestro computador y que permiten llevar a cabo numerosas funciones: procesadores de texto, hojas de cálculo, exploradores Web, videojuegos, software de telecomunicaciones, reproductores multimedia, etc.

                        

Software lenguaje de programación:

 Un lenguaje de programación es un lenguaje formal que proporciona una serie de instrucciones que permiten a un programador escribir secuencias de órdenes y algoritmos a modo de controlar el comportamiento físico y lógico de una computadora con el objetivo de que produzca diversas clases de datos. A todo este conjunto de órdenes y datos escritos mediante un lenguaje de programación se le conoce como programa.

Algunos de estos lenguajes están formados por un conjunto de símbolos (llamado alfabeto), reglas gramaticales (léxico/morfológicas y sintácticas) y reglas semánticas, que en conjunto definen las estructuras válidas en el lenguaje y su significado. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación, que es la que define la creación de software mediante la aplicación de procedimientos lógicos a través de los siguientes pasos:

El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).

Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.

Prueba y depuración del programa.

Desarrollo de la documentación.


¿Qué es un lenguaje de programación?

En informática, se conoce como lenguaje de programación a un programa destinado a la construcción de otros programas informáticos. Su nombre se debe a que comprende un lenguaje formal que está diseñado para organizar algoritmos y procesos lógicos que serán luego llevados a cabo por un ordenador o sistema informático, permitiendo controlar así su comportamiento físico, lógico y su comunicación con el usuario humano.

Dicho lenguaje está compuesto por símbolos y reglas sintácticas y semánticas, expresadas en forma de instrucciones y relaciones lógicas, mediante las cuales se construye el código fuente de una aplicación o pieza de software determinado. Así, puede llamarse también lenguaje de programación al resultado final de estos procesos creativos.

Generaciones de lenguajes de programación

Primera generación: Los primeros ordenadores se programaban directamente en código de máquina (basado en sistema binario), que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina u ordenadores.
1GL:  Código máquina y Ensambladores
La primera generación de lenguajes de programación consistía enteramente de una secuencia de 0s y 1s que los controles de la computadora interpretan como instrucciones, eléctricamente.
Representan los primeros lenguajes de programación que la computadora podía entender, son conocidos como lenguaje máquina.
Segunda generación: Los lenguajes simbólicos, asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles. También surgieron en esta generación los lenguajes ensambladores.

2GL:  Primeros lenguajes de alto nivel, no estructurados – Fortran, Cobol, Basic

La segunda generación de lenguajes de programación consistía se identificaron como lenguajes ensambladores. Un lenguaje ensamblador convierte las secuencias de 0s y 1s a un lenguaje entendido por los seres humanos, como “añadir”, “sumar”, etc.

El código escrito en un lenguaje ensamblador se convierte en lenguaje de máquina (1GL)
Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.


3GL:  Lenguajes estructurados: Algol, Pascal, C, ADA.

Lenguajes Específicos: Lisp, Prolog, Smalltalk

La tercera generación de lenguajes de programación se conoce como lenguajes de alto nivel. Un lenguaje de alto nivel tiene una gramática y sintaxis similar a las palabras en una oración. Un compilador se encarga de traducir el lenguaje de alto nivel a lenguaje ensamblador o código máquina.
Todos los lenguajes de programación de software necesitan ser traducidos a código de máquina para una computadora para utilizar las instrucciones que contienen.


Cuarta generación:
Se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.

Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características son:
- Acceso a base de datos.    - Capacidades Gráficas.       - Generación de código automáticamente.
- Puede programarse visualmente como Visual Basic (Programación Visual).

4GL:  Lenguajes Declarativos: SQL Generadores de aplicaciones, Herramientas CASE (Computer Aided Software Engineering, ingeniería de software asistida por computador).

Programación Visual: Visual Basic, Visual C

Lenguajes Orientados a Objeto C++, Java, Eiffel

La cuarta generación de lenguajes de programación avanza en la sintaxis utilizada. Lenguajes 4GL se utilizan típicamente para acceder a bases de datos.

Quinta generación:

se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.

5GL:  Imitación de la mente humana

La quinta generación de lenguajes de programación es utilizada para redes neuronales. Una red neuronal es una forma de inteligencia artificial que trata de imitar la mente humana.

ALGORITMOS

En informática, un algoritmo es una secuencia de instrucciones secuenciales, gracias al cual pueden llevarse a cabo ciertos procesos y darse respuesta a determinadas necesidades o decisiones. Se trata de conjuntos ordenados y finitos de pasos, que nos permiten resolver un problema o tomar una decisión.
Los algoritmos no tienen que ver con los lenguajes de programación, dado que un mismo algoritmo o diagrama de flujo puede representarse en diversos lenguajes de programación, es decir, se trata de un ordenamiento previo a la programación.

Visto así, un programa no es otra cosa que una serie compleja de algoritmos ordenados y codificados mediante un lenguaje de programación para su posterior ejecución en un computador.

Los algoritmos también son frecuentes en la matemática y la lógica, y son la base de la fabricación de manuales de usuario, folletos de instrucciones, etc. Su nombre proviene del latín algoritmus y éste apellido del matemático persa Al-Juarismi. Uno de los algoritmos más conocidos de la matemática es el atribuido a Euclides, para obtener el máximo común divisor de dos enteros positivos, o el llamado “método de Gauss” para resolver sistemas de ecuaciones lineales.

Partes de un algoritmo
Todo algoritmo debe constar de las siguientes partes:

Input o entrada. El ingreso de los datos que el algoritmo necesita para operar.

Proceso. Se trata de la operación lógica formal que el algoritmo emprenderá con lo recibido del input.
Output o salida. Los resultados obtenidos del proceso sobre el input, una vez terminada la ejecución del algoritmo.

¿Para qué sirve un algoritmo?

Dicho muy llanamente, un algoritmo sirve para resolver paso a paso un problema. Se trata de una serie de instrucciones ordenadas y secuenciadas para guiar un proceso determinado.

En las Ciencias de la computación, no obstante, los algoritmos constituyen el esqueleto de los procesos que luego se codificarán y programarán para que sean realizados por el computador.

Tipos de algoritmos

Existen cuatro tipos de algoritmos en informática:

Algoritmos computacionales. Un algoritmo cuya resolución depende del cálculo, y que puede ser desarrollado por una calculadora o computadora sin dificultades.

Algoritmos no computacionales. Aquellos que no requieren de los procesos de un computador para resolverse, o cuyos pasos son exclusivos para la resolución por parte de un ser humano.

Algoritmos cualitativos. Se trata de un algoritmo en cuya resolución no intervienen cálculos numéricos, sino secuencias lógicas y/o formales.

Algoritmos cuantitativos. Todo lo contrario, es un algoritmo que depende de cálculos matemáticos para dar con su resolución.

Características de los algoritmos
Algoritmo informático
Un algoritmo debe ofrecer un resultado en base a sus funciones.
Los algoritmos presentan las siguientes características:
Secuenciales. Los algoritmos operan en secuencia, debe procesarse uno a la vez.
Precisos. Los algoritmos han de ser precisos en su abordaje del tema, es decir, no pueden ser ambiguos o subjetivos.
Ordenados. Los algoritmos se deben establecer en la secuencia precisa y exacta para que su lectura tenga sentido y se resuelva el problema.
Finitos. Toda secuencia de algoritmos ha de tener un fin determinado, no puede prolongarse hasta el infinito.
Concretos. Todo algoritmo debe ofrecer un resultado en base a las funciones que cumple.
Definidos. Un mismo algoritmo ante los mismos elementos de entrada (input) debe dar siempre los mismos resultados.
Fuente: https://concepto.de/algoritmo-en-informatica/#ixzz5yyrY8K00

TIPOS DE LENGUAJES DE PROGRAMACION
Lenguajes de bajo nivel. Se trata de lenguajes de programación que están diseñados para un hardware específico y que por lo tanto no pueden migrar o exportarse a otros computadores. Sacan el mayor provecho posible al sistema para el que fueron diseñados, pero no aplican para ningún otro.
Lenguajes de alto nivel. Se trata de lenguajes de programación que aspiran a ser un lenguaje más universal, por lo que pueden emplearse indistintamente de la arquitectura del hardware, es decir, en diversos tipos de sistemas. Los hay de propósito general y de propósito específico.
Lenguajes de nivel medio. Este término no siempre es aceptado, que propone lenguajes de programación que se ubican en un punto medio entre los dos anteriores: pues permite operaciones de alto nivel y a la vez la gestión local de la arquitectura del sistema.



Programación orientada a objetos
La programación orientada a objetos o POO (OOP según sus siglas en inglés)
 es un paradigma de programación que usa los objetos en sus interacciones,
para diseñar aplicaciones y programas informáticos.
 Está basado en varias técnicas, incluyendo herenciacohesiónabstracciónpolimorfismo,
acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los
años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que
soportan la orientación a objetos.

CONCEPTOS FUNDAMENTALES
La programación orientada a objetos es una forma de programar que trata de encontrar una
 solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos
antiguos ya conocidos. Entre ellos destacan los siguientes:
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación  es la lectura de estas definiciones y la creación de un objeto a partir de ellas.
(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la
 clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos  y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos  métodos y variables públicas declaradas en C. Los componentes registrados como "privados"  (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO.
Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema  (del programa). Es una instancia a una clase.
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la  recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación  de un "evento" con un nuevo mensaje para otro objeto del sistema.
Evento
Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto  pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto;  es decir, la acción que genera.
Atributos
Características que tiene la clase
Mensaje
Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con
 ciertos parámetros asociados al evento que lo generó.
Propiedad o atributo
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los  datos visibles desde fuera del objeto y esto se define como sus características predeterminadas,
y cuyo valor puede ser alterado por la ejecución de algún método.
Estado interno
Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto  (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
Componentes de un objeto
Atributos, identidad, relaciones y métodos.
Identificación de un objeto
Un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos  y funciones correspondientes.
En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor interno
del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno
del método del objeto.
CARACTERÍSTICAS DE LA POO]
Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son las más importantes:
Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada
objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo,
informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar
 cómo se implementan estas características. Los procesos, las funciones o los métodos
 pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas  para ampliar una abstracción. El proceso de abstracción permite seleccionar las características  relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos  de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar  la realidad o el problema que se quiere atacar.
Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Se denomina modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple.
La recolección de basura o garbage collector es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse expresamente.