jueves, 22 de agosto de 2019

¿Que es programar?

¿Que Es Programa?
¿Que es la programación y los tipos de programación que existen?
La programación es un proceso que se utiliza para idear y ordenar las acciones que se realizarán en el marco de un proyecto; al anuncio de las partes que componen un acto o espectáculo; a la preparación de máquinas para que cumplan con una cierta tarea en un momento determinado; a la elaboración de programas para la resolución de problemas mediante ordenadores, y a la preparación de los datos necesarios para obtener una solución de un problema.[cita requerida]
En la actualidad, la noción de programación se encuentra muy asociada a la creación de aplicaciones informática y videojuegos. Es el proceso por el cual una persona desarrolla un programa valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, como C++, Java y Python, entre otros) y de otra que sea capaz de “traducirlo” a lo que se conoce como lenguaje de máquina, que puede comprender el microprocesador.[cita requerida]

Estructurada
Un programa en C es un conjunto de funciones, definiciones de tipos de datos y declaraciones de variables contenidos en un conjunto de ficheros. Un programa en C siempre comienza a ejecutar por la función con nombre main. Cualquier función puede llamar a cualquier función, y las variables declaradas fuera de las funciones tienen ámbito global o local al fichero que las contiene (si se declaran con el prefijo static). La siguiente figura ilustra la estructura de un programa en C contenido en varios ficheros.

El compilador es el programa encargado de traducir un conjunto de funciones, definiciones y declaraciones en múltiples ficheros a un fichero ejecutable. El compilador de C tiene un comportamiento sorprendentemente sencillo y realiza mucho menos trabajo del que se está acostumbrado con otros compiladores como el de Java. Para crear un ejecutable, el compilador procesa los ficheros de código uno a uno de forma independiente, de forma que las definiciones de variables y funciones de un fichero no las recuerda cuando procesa el fichero siguiente. Además, el compilador realiza una única pasada por el texto, por lo que cuando se traduce un fichero, en un punto concreto del texto, sólo se dispone de las definiciones que se han encontrado hasta ese punto.
Como consecuencia de este comportamiento, una variable no puede ser utilizada, a no ser que se haya declarado previamente en ese mismo fichero. Igualmente, una función no puede ser invocada a no ser que se haya incluido previamente en el mismo fichero. Para poder dividir igualmente el código en múltiples ficheros el lenguaje permite la definición de “prototipos de funciones” (el tipo del resultado que devuelven, seguido del nombre de la función y del tipo de sus parámetros entre paréntesis) sin incluir el código, y además permite la definición de variables como “externas”, es decir, que están en otro fichero. A continuación se muestran dos ficheros en los que la función fill_in y la variable table están definidas en un fichero pero las utiliza la función main en el otro fichero.

Orientada a objetos


La programación orientada a objetos es un enfoque de programación que combina datos y acciones asociadas (métodos) en estructuras lógicas (objetos). Este enfoque aumenta la capacidad para administrar la complejidad del software, lo cual resulta especialmente importante cuando se desarrollan y mantienen aplicaciones y estructuras de datos de gran tamaño. (MATLAB, 2018).

La programación Orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos en sus interacciones, para diseñar aplicaciones y programas informáticos.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos. (Ángel Roldán, 2017).

La POO es una forma especial de programar, este paradigma de programación es cercano a como expresamos las cosas en la vida real en nuestro día a día. Con la POO tenemos que aprender a pensar las cosas de una manera distinta para poder escribir nuestros programas en términos de objetos, propiedades y métodos. La POO tiene como principio que todo en la vida es un objeto programable, entonces para empezar a programar con este paradigma tendríamos que empezar con desarrollar nuestro pensamiento basado en objetos.

¿Cómo pensar en objetos?
Pensar en términos de objetos es pensar de manera natural como lo haríamos en la vida real. Por ejemplo al pensar en un coche para modelarlo en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades o métodos asociados al mismo, como pueden ser ponerse en marcha, parar o acelerar.

En un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.

Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos, por ejemplo un taller de coches, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc.
Algunas de las ventajas de la programación orientada a objetos son los siguientes:
Los componentes se pueden reutilizar.
Facilidad de mantenimiento y modificación de los objetos existentes.
Una estructura modular clara se puede obtener, la cual no revelará el mecanismo detrás del diseño.
Se proporciona un buen marco que facilita la creación de rica interfaz gráfica de usuario aplicaciones (GUI).
Se acopla bien a la utilización de bases de datos, debido a la correspondencia entre las estructuras.
Orientada eventos
Eventos:

Los eventos son todas las acciones que el usuario inicia, dar clic sobre un botón, presionar las teclas del teclado, etc. Cada vez que se produce un evento, se crea un objeto. La clase padre de los eventos es "java.awt.event".

Cada lenguaje de programación tiene su propio modelo de eventos, en Java se definen clases auxiliares llamadas escuchadores (listeners) que reciben eventos específicos.

Los escuchadores se registran en las fuentes de eventos (teclado, ratón, etc). Estas envían objetos del tipo EventObjet la los escuchadores registrados al producirse un evento. Cada escuchador utiliza la información recibida a través del objeto para realizar las acciones adecuadas.

Dentro de "java.awt.event", los eventos están categorizados dentro de una jerarquía de clases.
La clase "java.util.EventObject" es la clase base de todos los
eventos en Java.
La subclase "java.awt.AWTEvent" es la clase base de todos los
eventos que se utilizan en la construcción de GUIs.
Cada tipo de evento "xxEvent" tiene asociada una interfaz "xxListener" que es la que nos permite definir escuchadores de eventos.
Para simplificar la implementación de algunos escuchadores de eventos, el paquete "java.awt.event" incluye clases base xxAdapter que implementan las interfaces xxListener.
Existen distintos tipos de eventos, los cuales son:

Eventos de Ventana

Son los que se generan en respuesta a los cambios de una ventana, un frame o un dialogo.
    WINDOW_DESTROY
    WINDOW_EXPOSE
    WINDOW_ICONIFY
    WINDOW_DEICONIFY
    WINDOW_MOVED
Eventos de Teclado

Son generados en respuesta a cuando el usuario pulsa y suelta una tecla mientras un Componente tiene el foco de entrada.
    KEY_PRESS
    KEY_RELEASE
    KEY_ACTION
    KEY_ACTION_RELEASE
Eventos de Ratón

Son los eventos generados por acciones sobre el ratón dentro de los límites de un Componente.
    MOUSE_DOWN
    MOUSE_UP
    MOUSE_MOVE
    MOUSE_ENTER
    MOUSE_EXIT
    MOUSE_DRAG
Eventos de Barras

Son los eventos generados como respuesta a la manipulación de barras de desplazamiento (scrollbars).
    SCROLL_LINE_UP
    SCROLL_LINE_DOWN
    SCROLL_PAGE_UP
    SCROLL_PAGE_DOWN
    SCROLL_ABSOLUTE
Eventos de Lista

Son los eventos generados al seleccionar elementos de una lista.
    LIST_SELECT
    LIST_DESELECT
Eventos Varios

Son los eventos generados en función de diversas acciones.
    ACTION_EVENT
    LOAD_FILE
    SAVE_FILE
    GOT_FOCUS
    LOST_FOCUS
Errores:

Los errores en la programación suelen ser comunes, ya que es casi imposible programar sin que exista un solo error, inclusive en productos finales existen errores de software, que casi siempre tratan de corregir con parches de seguridad y actualizaciones.

En algún momento por alguna causa, podría generarse algún conflicto en el programa. Ya sea porque no hay conexión a Internet, usuario o contraseña incorrecta, valores alfanuméricos en campos solo para números, y en algunos casos el código del programa no esta escrito correctamente, sin embargo, este ultimo se analizara en el siguiente tema (Diseño de pruebas unitarias).

Existen formas para detectar y corregir errores en un programa por medio de opciones alternativas llamadas excepciones.

Excepciones:

Las excepciones en Java están destinadas, al igual que en el resto de los lenguajes que las soportan, para la detección y corrección de errores.

Si hay un error, la aplicación no debería morirse y generar un core . Se debería lanzar (throw) una excepción que nosotros deberíamos capturar (catch) y resolver la situación de error.

Existen muchos tipos de excepciones,casi una por cada tipo de error, por lo que si tenemos error de entrada/salida de datos, el programa deberia de lanzar una excepción de tipo IOException.

En Java, cada excepción es una clase hija de "java.lang.Exception", por lo que podemos crear nuestras propias excepciones en lugar de utilizar las ya predefinidas.

Y de bloques

El bloque de código es una sección de código con una o más declaraciones y sentencias. Un lenguaje de programación que permite bloques, incluyendo bloques anidados dentro de otros bloques es llamado un lenguaje de programación estructurado por bloques. Ideas de la estructura del bloque se desarrollaron en la década de los años 1950, durante el desarrollo de los primeros autocodes y fueron formalizados en los informes de Algol 58 y Algol 60. Algol 58 introdujo la noción de la "sentencia compuesta", que estaba relacionada únicamente con control de flujo.1​ El posterior informe revisado que describe la sintaxis y la semántica de Algol 60 introdujo la noción de un bloque, consistiendo en "una secuencia de sentencias encerrada entre begin y end..." en la que "cada declaración aparece en un bloque de esta manera y es válida solo para ese bloque".2​ La función de los bloques de programación es permitir que grupos sentencias sean tratados como si fueran una sola sentencia, y restringir el ámbito léxico de las variables, los procedimientos y funciones declaradas en un bloque para que no entre en conflicto con variables con el mismo nombre utilizadas para diferentes propósitos en otras partes de un programa. La noción de bloques es introducida por diferentes sintaxis en diferentes lenguajes, pero hay dos grandes familias: la familia del ALGOL en que los bloques están delimitados por las palabras clave begin y end, y la familia de C en la que los bloques están delimitados por llaves { y }. Algunas otras técnicas utilizadas son el uso de indentación, y s-expression con una palabra clave sintáctica como lambda o let (como en la familia del Lisp). En un lenguaje de programación estructurado en bloque, los nombres de las variables y otros objetos, como los procedimientos que son declarados en bloques externos son visibles dentro de otros bloques internos, a menos que sean sombreado por un objeto del mismo nombre. Algunos lenguajes que soportan bloques con declaraciones de variables no soportan completamente todas las declaraciones; por ejemplo muchos lenguajes derivados de C no permitan la definición de una función dentro de un bloque. Y a diferencia de su antecesor Algol, Pascal no soporta el uso de bloques con sus propias declaraciones dentro del begin y end de un bloque existente, sólo sentencias compuestas permitiendo una secuencia de declaraciones agrupadas en if, while, repeat y otras sentencias de control.

No hay comentarios:

Publicar un comentario

Cadenas

#include<stdlib.h> #include<stdio.h> #include<iostream> #include<string.h> using namespace std; char nom[...