martes, 10 de enero de 2017

Lenguajes de Programacion

Los lenguajes de programación son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc..

Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.

Los lenguajes de programación de una computadora en particular se conoce como código de máquinas o lenguaje de máquinas.
Estos lenguajes codificados en una computadora específica no podrán ser ejecutados en otra computadora diferente.

Para que estos programas funcionen para diferentes computadoras hay que realizar una versión para cada una de ellas, lo que implica el aumento del costo de desarrollo.

Por otra parte, los lenguajes de programación en código de máquina son verdaderamente difíciles de entender para una persona, ya que están compuestos de códigos numéricos sin sentido nemotécnico.

Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leidas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar.

Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leidos por una persona.

Los lenguajes de programación son independientes de las computadoras a utilizar.
Existen estrategias que permiten ejecutar en una computadora un programa realizado en un lenguaje de programación simbólico. Los procesadores del lenguaje son los programas que permiten el tratamiento de la información en forma de texto, representada en los lenguajes de programación simbólicos.

Hay lenguajes de programación que utilizan compilador.


La ejecución de un programa con compilador requiere de dos etapas:

1) Traducir el programa simbólico a código máquina
2) Ejecución y procesamiento de los datos.

Otros lenguajes de programación utilizan un programa intérprete o traductor, el cual analiza directamente la descripción simbólica del programa fuente y realiza las instrucciones dadas.

El intérprete en los lenguajes de programación simula una máquina virtual, donde el lenguaje de máquina es similar al lenguaje fuente.

La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa, sin embargo su inconveniente es que la velocidad de ejecución es más lenta ya que debe analizar e interpretar las instrucciones contenidas en el programa fuente
.

lunes, 9 de enero de 2017

Funciones de Excel

Función
Descripción
Función SUMA
Use esta función para agregar los valores de las celdas.
Función SI
Use esta función para devolver un valor si una condición es verdadera y otro valor si es falsa. Aquí puede ver un vídeo acerca del uso de la función SI.
Función BUSCAR
Use esta función cuando necesite buscar en una sola fila o columna y encontrar un valor desde la misma posición en una segunda fila o columna.
Función CONSULTAV
Use esta función cuando necesite encontrar elementos en una tabla o en un rango por filas. Por ejemplo, busque los apellidos de un empleado por su número de empleado, o encuentre su número de teléfono mediante la búsqueda de sus apellidos (como en un listín telefónico).
Función COINCIDIR
Use esta función para buscar un elemento en un rango de celdas y después devolver la posición relativa de dicho elemento en el rango. Por ejemplo, si el rango A1:A3 contiene los valores 5, 7 y 38, la fórmula =COINCIDIR(7,A1:A3,0) devuelve el número 2, porque 7 es el segundo elemento del rango.
Función ELEGIR
Use esta función para seleccionar uno de los 254 valores posibles a partir del rango del argumento índice. Por ejemplo, si valor1 a valor7 son los días de la semana, ELEGIR devuelve uno de los días cuando se usa un número entre 1 y 7 como argumento núm_índice.
Función FECHA
Use esta función para devolver el número de serie secuencial que representa una fecha determinada. Esta función es muy útil en situaciones en las que el año, el mes y el día se proporcionan mediante fórmulas o referencias de celda. Por ejemplo, es posible que tenga una hoja de cálculo con fechas en un formato que Excel no reconoce, como AAAAMMDD.
Use la función SIFECHA para calcular el número de días, meses o años entre dos fechas.
Función DIAS
Use esta función para devolver el número de días entre dos fechas.
Funciones ENCONTRAR y ENCONTRAR
Las funciones ENCONTRAR y ENCONTRARB buscan una cadena de texto dentro de una segunda cadena. Devuelven el número de la posición inicial de la primera cadena de texto a partir del primer carácter de la segunda.
Función INDICE
Use esta función para devolver un valor o la referencia a un valor desde una tabla o rango.

Controles en Visual Basic

Nombre de controlNombre de claseDescripción
   
Casilla de verificaciónCheckBoxPresenta una opción de tipoVerdadero o Falso.
Cuadro combinadoComboBoxCambina un cuadro de texto y un cuadro de lista.
Botón de comandoCommandButtonEjecuta un comando o una acción cuando el usuario hace clic en él.
DatosDataPermite conectar una base de datos existente y presentar información en ella en los formularios.
Cuadro de lista de directoriosDirListBoxPresenta directorios y rutas de acceso.
Cuadro de lista de archivosFileListBoxPresenta una lista de archivos.
Cuadro de lista de unidadesDriveListBoxPresenta una lista de unidades de disco validas.
MarcoFrameProporciona un contenedor visual y funcional para los controles.
Barras de desplazamiento horizontal y verticalHScrollBar y VScrollBarPermite que un usuario agregue barras de desplazamiento a controles que no las tienen de forma automática.
ImagenImagePresenta mapas de bits, iconos o metarchivos de Windows, archivos JPEG o GIF, y actúa como un botón de comando cuando se hace clic en él.
EtiquetaLabelPresenta texto con el cual el usuario no puede interactuar ni modificar.
LíneaLineAgrega un segmento de línea recta a un formulario.
Cuadro de listaListBoxPresenta una lista de elementos entre los que el usuario puede elegir.
Contenedor OLEOLEIncrusta datos en una aplicación de Visual Basic.
Botón de opciónOptionButtonEl control OptionButton, como parte de un grupo de opciones con otros botones de opción. Presenta varias opciones entre las ue el usuario sólo puede elegir una.
Cuadro de imágenPictureboxPresenta mapas de bits, íconos o metarchivos de Windows y otros tipos de archivos graficos compatibles. También presenta texto o actúa como contenedor visual para otros controles..
FormaShapeAgrega un rectángulo, un cuadrado, una elipse o un circulo a un formulario, marco o cuadro de imagen.
Cuadro de textoTextBoxProporciona una área para escribir o presentar texto.
CronómetroTimerEjecuta eventos periódicos a intervalos de tiempo específicado.

Propiedades de Visual Basic

DateStringDevuelve o establece un valor String que representa la fecha actual de acuerdo con el sistema.
NowDevuelve un valor Date que contiene la fecha y la hora actuales de acuerdo con el sistema.
ScriptEngineDevuelve un objeto String que representa el motor en tiempo de ejecución actual que se utiliza.
ScriptEngineBuildVersionDevuelve un valor de tipo Integer que contiene el número de versión de compilación del motor en tiempo de ejecución que se usa.
ScriptEngineMajorVersionDevuelve un valor de tipo Integer que contiene el número de versión principal del motor en tiempo de ejecución que se usa.
ScriptEngineMinorVersionDevuelve un valor de tipo Integer que contiene el número de versión secundaria del motor en tiempo de ejecución que se usa.
TimeOfDayDevuelve o establece un valor Date que contiene la hora del día actual de acuerdo con el sistema.
TimerDevuelve un valor Double que representa el número de segundos transcurridos desde la medianoche.
TimeStringDevuelve o establece un valor de tipo String que representa la hora actual del día según el sistema.
TodayDevuelve o establece un valor Date que contiene la fecha actual de acuerdo con el sistema.

Convercion de binarios a decimal

El sistema numérico binario (en base dos) tiene dos valores posibles (normalmente representados como 1 y 0) por cada valor posicional. En contraste al sistema numérico decimal (en base diez) que tiene diez valores posibles (0,1,2,3,4,5,6,7,8, o 9) por cada valor posicional. Para evitar la confusión cuando utilices diferentes sistemas numéricos, escribe la base de cada número como un subíndice del mismo. Por ejemplo, el número binario 10011100 se puede especificar como en "base dos" escribiéndolo como 100111002. El número decimal 156, puedes escribirse como 15610 y leerse como "ciento cincuenta y seis en base diez". Debido a que el sistema numérico binario es el lenguaje interno de las computadoras, los programadores deben saber cómo convertir de binario a decimal. Por lo general, convertir de forma inversa, es decir de decimal a binario es más difícil de aprender.

Por ejemplo, para pasar a binario un número decimal, empezamos por la derecha y vamos multiplicando cada cifra por las sucesivas potencias de 2, avanzando hacia la izquierda:

101102 = 0 · 1 +  1 · 2 + 1 · 4 + · 8 + 1 · 16 =  2 + 4 + 16 = 2210
1102 = 0 · 1 + 1 · 2 + · 4 = 2 + 4 = 610

Hardware

La palabra hardware en informática se refiere a las partes físicas tangibles de un sistema informático; sus componentes eléctricos, electrónicos, electromecánicos y mecánicos.1 Cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado componen el hardware; contrariamente, el soporte lógico e intangible es el llamado software.
El término es propio del idioma inglés, su traducción al español no tiene un significado acorde, por tal motivo se lo ha adoptado tal cual es y suena. La Real Academia Española lo define como «Conjunto de los componentes que integran la parte material de una computadora».2 El término, aunque sea lo más común, no solamente se aplica a las computadoras, también es a menudo utilizado en otras áreas de la vidia diaria y la tecnología. Por ejemplo, hardware también se refiere a herramientas y máquinas, y en electrónica hardware se refiere a todos los componentes electrónicos, eléctricos, electromecánicos, mecánicos, cableados y tarjetas de circuito impreso o PCB. También se considera al hardware como uno de tres pilares fundamentales en diseño electrónico. Otros ejemplos donde se aplica el término hardware son: un robot3 4 , un teléfono móvil, una cámara fotográfica, un reproductor multimedia o cualquier otro dispositivo electrónico. Cuando dichos dispositivos procesan datos poseen además de hardware, firmware y/o software.
La historia del hardware de computador se puede clasificar en cuatro generaciones, cada una caracterizada por un cambio tecnológico de importancia. Una primera delimitación podría hacerse entre hardware principal, como el estrictamente necesario para el funcionamiento normal del equipo, y el complementario, como el que realiza funciones específicas.
Un sistema informático se compone de una unidad central de procesamiento (UCP o CPU), encargada de procesar los datos, uno o varios periféricos de entrada, los que permiten el ingreso de la información y uno o varios periféricos de salida, que posibilitan dar salida (normalmente en forma visual o auditiva) a los datos procesados. Su abreviatura es Hw.

Clasificación del hardware

Microcontrolador Motorola 68HC11 y chips de soporte que podrían constituir el hardware de un equipo electrónico industrial.
Una de las formas de clasificar el hardware es en dos categorías: por un lado, el principal, que abarca el conjunto de componentes indispensables necesarios para otorgar la funcionalidad mínima a una computadora; y por otro lado, el hardwarecomplementario, que, como su nombre indica, es el utilizado para realizar funciones específicas (más allá de las básicas), no estrictamente necesarias para el funcionamiento de la computadora.
Necesita un medio de entrada de datos, la unidad central de procesamiento, la memoria RAM, un medio de salida de datos y un medio de almacenamiento constituyen el hardware básico.
Los medios de entrada y salida de datos estrictamente indispensables dependen de la aplicación: desde el punto de vista de un usuario común, se debería disponer, al menos, de un teclado y un monitor para entrada y salida de información, respectivamente; pero ello no implica que no pueda haber una computadora (por ejemplo controlando un proceso) en la que no sea necesario teclado ni monitor; bien puede ingresar información y sacar sus datos procesados, por ejemplo, a través de una placa de adquisición/salida de datos.
Las computadoras son aparatos electrónicos capaces de interpretar y ejecutar instrucciones programadas y almacenadas en su memoria; consisten básicamente en operaciones aritmético-lógicas y de entrada/salida.9 Se reciben las entradas (datos), se las procesa y almacena (procesamiento), y finalmente se producen las salidas (resultados del procesamiento). Por ende todo sistema informático tiene, al menos, componentes y dispositivos hardware dedicados a alguna de las funciones antedichas;10 a saber:
  1. Procesamiento: unidad central de procesamiento
  2. Almacenamiento: Memorias
  3. Entrada: Periféricos de entrada (E)
  4. Salida: Periféricos de salida (S)
  5. Entrada/Salida: Periféricos mixtos (E/S)
Desde un punto de vista básico y general, un dispositivo de entrada es el que provee el medio para permitir el ingreso de información, datos y programas (lectura); un dispositivo de salida brinda el medio para registrar la información y datos de salida (escritura); la memoria otorga la capacidad de almacenamiento, temporal o permanente (almacenamiento); y la CPU provee la capacidad de cálculo y procesamiento de la información ingresada (transformación).11
Un periférico mixto es aquél que puede cumplir funciones tanto de entrada como de salida; el ejemplo más típico es el disco rígido (ya que en él se lee y se graba información y datos).

Hardware típico de una computadora personal:
1. Monitor.
2. Placa principal.
3. Microprocesador (CPU) y zócalo.
4. Un módulo de RAM y tres ranuras.
5. Dos tarjetas de expansión y tres ranuras.
6. Fuente de alimentación.
7. Unidad de disco óptico (CDDVDBD).
8. Unidad de disco duro ó unidad de estado sólido.
9. Teclado.
10. Ratón.
La palabra hardware en informática se refiere a las partes físicas tangibles de un sistema informático; sus componentes 

Software


Existen varias definiciones similares aceptadas para software, pero probablemente la más formal sea la siguiente:
Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de las operaciones de un sistema de computación.

Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuentebinario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.
El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la información procesada por los sistemas informáticos: programas y datos.
El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencialLa teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión.

Clasificación del software

Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres tipos:
  • Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivelcontroladores, herramientas y utilidades de apoyo que permiten el mantenimiento del sistema global. Incluye entre otros:
    • Sistemas operativos
    • Controladores de dispositivos
    • Herramientas de diagnóstico
    • Herramientas de Corrección y Optimización
    • Servidores
    • Utilidades
  • Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas de informática, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluyen en forma básica:
    • Editores de texto
    • Compiladores
    • Intérpretes
    • Enlazadores
    • Depuradores
    • Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
  • Software de aplicación: Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre muchos otros:
    • Aplicaciones para Control de sistemas y automatización industrial
    • Aplicaciones ofimáticas
    • Software educativo
    • Software empresarial
    • Bases de datos
    • Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
    • Videojuegos
    • Software médico
    • Software de cálculo numérico y simbólico.
    • Software de diseño asistido (CAD)
    • Software de control numérico (CAM)

Proceso de creación del software

Se define como proceso al conjunto ordenado de pasos a seguir para llegar a la solución de un problema u obtención de un producto, en este caso particular, para lograr un producto software que resuelva un problema específico.
El proceso de creación de software puede llegar a ser muy complejo, dependiendo de su porte, características y criticidad del mismo. Por ejemplo la creación de un sistema operativo es una tarea que requiere proyecto, gestión, numerosos recursos y todo un equipo disciplinado de trabajo. En el otro extremo, si se trata de un sencillo programa (por ejemplo, la resolución de una ecuación de segundo orden), éste puede ser realizado por un solo programador (incluso aficionado) fácilmente. Es así que normalmente se dividen en tres categorías según su tamaño (líneas de código) o costo: de «pequeño»«mediano» y «gran porte». Existen varias metodologías para estimarlo, una de las más populares es el sistema COCOMO que provee métodos y un software (programa) que calcula y provee una aproximación de todos los costos de producción en un «proyecto software» (relación horas/hombre, costo monetario, cantidad de líneas fuente de acuerdo a lenguaje usado, etc.).
Considerando los de gran porte, es necesario realizar complejas tareas, tanto técnicas como de gerencia, una fuerte gestión y análisis diversos (entre otras cosas), la complejidad de ello ha llevado a que desarrolle una ingeniería específica para tratar su estudio y realización: es conocida como Ingeniería de Software.
En tanto que en los de mediano porte, pequeños equipos de trabajo (incluso un avezado analista-programador solitario) pueden realizar la tarea. Aunque, siempre en casos de mediano y gran porte (y a veces también en algunos de pequeño porte, según su complejidad), se deben seguir ciertas etapas que son necesarias para la construcción del software. Tales etapas, si bien deben existir, son flexibles en su forma de aplicación, de acuerdo a la metodología o proceso de desarrollo escogido y utilizado por el equipo de desarrollo o por el analista-programador solitario (si fuere el caso).
Los «procesos de desarrollo de software» poseen reglas preestablecidas, y deben ser aplicados en la creación del software de mediano y gran porte, ya que en caso contrario lo más seguro es que el proyecto no logre concluir o termine sin cumplir los objetivos previstos, y con variedad de fallos inaceptables (fracasan, en pocas palabras). Entre tales «procesos» los hay ágiles o livianos (ejemplo XP), pesados y lentos (ejemplo RUP), y variantes intermedias. Normalmente se aplican de acuerdo al tipo y porte del software a desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo. Algunos de esos procesos son Programación Extrema (en inglés eXtreme Programming o XP), Proceso Unificado de Rational (en inglés Rational Unified Process o RUP), Feature Driven Development (FDD), etc.
Cualquiera sea el «proceso» utilizado y aplicado al desarrollo del software (RUP, FDD, XP, etc), y casi independientemente de él, siempre se debe aplicar un «modelo de ciclo de vida».6
Se estima que, del total de proyectos software grandes emprendidos, un 28 % fracasan, un 46 % caen en severas modificaciones que lo retrasan y un 26 % son totalmente exitosos.7
Cuando un proyecto fracasa, rara vez es debido a fallas técnicas, la principal causa de fallos y fracasos es la falta de aplicación de una buena metodología o proceso de desarrollo. Entre otras, una fuerte tendencia, desde hace pocas décadas, es mejorar las metodologías o procesos de desarrollo, o crear nuevas y concientizar a los profesionales de la informática a su utilización adecuada. Normalmente los especialistas en el estudio y desarrollo de estas áreas (metodologías) y afines (tales como modelos y hasta la gestión misma de los proyectos) son los ingenieros en software, es su orientación. Los especialistas en cualquier otra área de desarrollo informático (analista, programador, Lic. en informática, ingeniero en informática, ingeniero de sistemas, etc.) normalmente aplican sus conocimientos especializados pero utilizando modelos, paradigmas y procesos ya elaborados.
Es común para el desarrollo de software de mediano porte que los equipos humanos involucrados apliquen «metodologías propias», normalmente un híbrido de los procesos anteriores y a veces con criterios propios.
El proceso de desarrollo puede involucrar numerosas y variadas tareas,6 desde lo administrativo, pasando por lo técnico y hasta la gestión y el gerenciamiento. Pero, casi rigurosamente, siempre se cumplen ciertas etapas mínimas; las que se pueden resumir como sigue:
  • Captura, elicitación8 , especificación y análisis de requisitos (ERS)
  • Diseño
  • Codificación
  • Pruebas (unitarias y de integración)
  • Instalación y paso a producción
  • Mantenimiento
En las anteriores etapas pueden variar ligeramente sus nombres, o ser más globales, o contrariamente, ser más refinadas; por ejemplo indicar como una única fase (a los fines documentales e interpretativos) de «análisis y diseño»; o indicar como «implementación» lo que está dicho como «codificación»; pero en rigor, todas existen e incluyen, básicamente, las mismas tareas específicas.