Programación Fundamental y Básica



Bienvenidos a esta los Conceptos básicos de Programación:


Quiero en este blog, dejarte los conceptos más aceptados en el ámbito de las teorías de la Programación, definiendo todos sus procesos y componentes, ya que no solo es la palabra programación cuyo significado puede ser muy ambiguo, es que existen unos procesos y términos, y mundo muy amplio en la programación, es que sabemos que no todo es tan fácil como lo pintan las definiciones que vemos a diario en los portales, en los sitios web, en los libros, y muchos canales de Youtube, de personas que si en verdad saben de programación, pero que para personas muchas veces ajena al desarrollo,  o lo peor ajeno al área de la Tecnología, que quiera incursionar en aprender la programación, aprender el desarrollo de Software o solamente inventar algún proyecto personal, esto le resulta muy extraño.

Porque se encuentra con tantas cosas que al final termina desanimado y se marcha de inmediato, y deja de interesarle, y no voy a decir que programar es fácil, no lo es, aunque claro no es igual para todos, unos tienen talento y lo cultivan en esas ramas, otros hacen el esfuerzo, pero en la medida que alguien se mete de lleno en ello, y lucha por ponerse al nivel, pues logra las bases fundamentales de la programación, y el manejo de los lenguajes y las estructuras que son las que al final definirán tu talento para la programación, la cuestion esta en no perder de vista el objetivo que te lleva a ello que es el placer de poder crear algo, y que ese algo sirva para resolver problemas del mundo real, donde cada cosa que existe en el planeta, está conectada directa o indirectamente con la programación, y es que no existe en el mundo nada que no esté presente la programación, sea esta bajo un lenguaje, o una secuencias de pasos o procesos, siempre está presente en todo.

Como muestra la imagen más arriba, el mundo ya no es lo que era, y ello es gracias a la Tecnología, la cual ha evolucionado de manera gradual año tras años, dando unos pasos muy agigantados en el ámbito tecnológico, tanto a nivel de Hardware o a Nivel de Software.

Es que como nos indica "La Ley Moore", que tiene unos 50 años, donde se ha observado que durante todos estos años la tendencia de los procesadores y los componentes Hardware de computador aun Disminuido en Tamaño, pero aumentan en Velocidad y Rendimiento al Doble cada Año. 



Pero esto, de alguna manera no te parecera algo que tenga que ver con la Programación en si, y permiteme decirte que estas equivocado, la programación es el corazón de todo lo que conocemos hoy dia, desde la complejidad de los productos tan innovadores que conoces como las Computadoras, los Teléfonos o Smartphone, las Tablets, los SmartTV, la Robótica, la Domótica, el internet de las cosas LoT, los Coches Autónomos, la Inteligencia Artificial, la Nanotecnología, las Redes de comunicación, los satélites, las maquinarias para las empresas industriales, los programas que utilizan los circuitos que están presente hoy en todo los electrodomesticos, y todo lo que usamos a diario, sin la programación no existieran, si es sorprendente, pero existen muchas otras cosas que no conoces, y ellas son dirigidas por la programación y todos los lenguajes correspondientes, 



Quien quiera aprender un lenguaje de programación tendrá que leer mucho, esto lo he aprendido de una persona que considero muy experta en el área de Desarrollo de Software y de la Enseñanza Online, Freddy Vegas de @platzi, que dice que el 80% de la programación es lectura, el otro 20% es escritura, te pasarás el 20% escribiendo tu código.

Mi consejo para todos aquellos que quieran dar el primer paso es leer sin parar libros de tecnologias, libros de programación, consultar foros en lineas, blog, canales en Youtube que están dedicados a hablar y hacer tutoriales de programación en diferentes lenguajes. La mejor práctica es hacer de la lectura tu amiga, porque mientras mas lees mas te gusta la programación, y al mismo tiempo te sientas las bases para de conocimiento necesarias y útiles para los posteriores procesos y pasos que deberás dar.

Lo bueno es que existe un foro para cada lenguaje y una respuesta para casi todas las preguntas imaginables o, al menos, una solución. En el remoto caso de que no encuentres la información que estás buscando, siempre puedes plantear tu pregunta en alguna de las comunidades online, donde, por lo general, siempre habrá alguien con los conocimientos necesarios para responder a tus dudas. Es importante que tomes nota de aquellas ideas importantes ya en esta primera fase de aproximación al tema. Tener algunos apuntes resulta muy útil para solucionar preguntas sistemáticamente en el futuro, además de ser un instrumento para trabajar con mayor eficacia.

Cada uno de estos lenguajes tiene un grado de complejidad diferente y, por lo tanto, algunos serán más fáciles de aprender que otros. Es por esto que antes de aprender a programar es necesario definir la intención: ¿quieres aprender a programar para, en un futuro, crear páginas web?, ¿quieres desarrollar aplicaciones para tablets y Smartphone?, o ¿prefieres programar microcontroladores que sean aplicables a la vida cotidiana, por ejemplo, en coches?

Para empezar a entender lo que es la programación, primero tenemos que tener ciertos conocimientos sobre todo lo que la rodea. Empezaremos con unas definiciones un poco técnicas, pero que son imprescindibles para el aprendizaje. 

Tecnología 

Dentro del campo que nos interesa a nosotros, la tecnología tiene el objetivo de eliminar las tareas repetitivas, facilitando el trabajo y haciéndolo más eficiente así como aumentando la productividad y los beneficios de la empresa.

¿Qué es la programación?

La programación se define como el proceso de crear, probar, depurar, compilar y mantener un programa de computadora, todo ello mediante sentencias lógicas escritas en un lenguaje humano y que después será traducido a un lenguaje que la computadora pueda procesar.

Para comenzar a iniciarse en el mundo de la programación a continuación dejo los diez primeros conceptos esenciales que un programador o estudiante debe conocer.

La programación es una de las etapas más importantes del ciclo de vida de un proyecto (explicaremos más adelante lo que es este término), y requiere un método de trabajo. La programación es el resultado de dicho trabajo. 

La programación es el instrumento que permite la ejecución de las tareas automatizadas de un sistema informático. 

Las herramientas que utilizaremos para programar son los lenguajes de programación, a través de las cuales codificamos los programas. 

Que es un Programa?


Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con los datos que se estén procesando, es un algoritmo desarrollado para ser utilizado por la computadora.

Puede ser una Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una máquina de cómputo.

Muchas autores lo definen como un conjunto de instrucciones entendibles por el ordenador que permiten realizar un trabajo o resolver un problema.   Un programa debe ser finito, es decir, tiene que tener un inicio y un fin. Tiene que estar bien confeccionado para que, al introducir un dato, salga una solución y si se volviese a introducir el mismo dato, saliese de nuevo la misma solución. 

Sistema:
 Un sistema Informático es el conjunto de partes interrelacionadas, resulta de la interacción entre los componentes físicos que se denominan Hardware y los lógicos que se denominan Software. A estos hay que agregarles el recurso humano, parte fundamental de un sistema informático. Este componente es llamado Peopleware. 


Aplicación:
Es el conjunto de programas informáticos que realizan procesos específicos, diseñado como herramienta para permitir a un usuario realizar uno o diversos tipos de trabajo. Suele tener un único objetivo: navegar en la web, revisar correo, explorar el disco duro, editar textos, jugar (un juego es un tipo de aplicación), etc. 

Datos: 
El dato es una representación simbólica (numérica, alfabética, algorítmica etc.), un atributo o una característica de una entidad. El dato no tiene sentido en sí mismo, pero si recibe un tratamiento (procesamiento) apropiado, se puede utilizar en la realización de cálculos o toma de decisiones. Es de empleo muy común en el ámbito informático y, en general, prácticamente en cualquier disciplina científica. En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo. En Estructura de datos, es la parte mínima de la información. 



Información: 



Es un conjunto organizado de datos, que constituye un mensaje sobre un cierto fenómeno o ente. La información permite resolver problemas y tomar decisiones, ya que su uso racional es la base del conocimiento. Por lo tanto, otra perspectiva nos indica que la información es un fenómeno que aporta significado o sentido a las cosas, ya que mediante códigos y conjuntos de datos, forma los modelos de pensamiento humano. 



Clasificación del Software: Sistemas Operativos y Aplicaciones.

1)   Sistemas Operativos:

Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislandolo 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 nivel, herramientas y utilidades de apoyo que permiten su mantenimiento.


2)   Sistemas de Aplicaciones:
El 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.

Es aquel que nos ayuda a realizar una tarea determinada, existen varias categorías de Software de Aplicación porque hay muchos programas (solo nombramos algunos) los cuales son:


  • Aplicaciones de negocio. 
  • Aplicaciones de Utilería.
  • Aplicaciones Personales. 
  • Aplicaciones de Entretenimiento.

Etapas para el tratamiento de la Información: Entrada, Proceso y Salida. 


Entrada: El Proceso de Entrada consiste en:

1)     -Recopilar o reunir todos los datos. 
2)    -Depurar o hacer limpieza, quitar los datos que no necesito. Solo dejar los datos que sirven a lo que estoy enfocado. 
3)    -Una vez hecho esto, esos datos son almacenados o guardados. 

Proceso: Consiste en Operaciones Matemáticas y Operaciones Lógicas. 

1)     -En las Operaciones matemáticas: sumo, resto, multiplico, divido, etc., mis datos para obtener el resultado que estoy buscando. 
2)    -En las Operaciones Lógicas: Se usan todas las condiciones necesarias para transformar toda la información original a lo que esté buscando, es decir: Información en bruto a información pulida. Las condiciones son procesos llamados Operaciones Lógicas. 

Salida: No es otra cosa que a la información procesada volverla a recoger o agrupar. Porque para procesar desagrupamos para hacer con ella los procesos que deseábamos, después de hacer todo esto, tenemos que volver a reordenar los datos para obtener información. 




 Un Ejemplo de Entrada, Salida y Proceso es el Siguiente como forma mínima, donde se da el caso de evaluar si un Número es Par o es impar Partiendo de una entrada, la cual es el número dado por el usuario, el proceso es el analisis logico matematico que se hace para determinar si es o no, y la salida será el resultado de ese valor.



Hardware: 
Corresponde a todas las partes físicas y tangibles de una computadora: sus componentes eléctricos, electrónicos, electromecánicos y mecánicos; sus cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado. El término es propio del idioma inglés pero se define como «Conjunto de los componentes que integran la parte material de una computadora. 


Software: 

Es el equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas. Los componentes lógicos incluyen, entre muchos otros, aplicaciones informáticas; tales como el procesador de textos, o el software de sistema, tal como el sistema operativo, que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y con el resto de las aplicaciones, proporcionando también una interfaz para el usuario. 

Peopleware: 

Puede referirse a cualquier cosa que tenga que ver con el papel de las personas en el desarrollo o uso de software y sistemas hardware, incluyendo cuestiones como productividad de los desarrolladores, trabajo en equipo, dinámicas de grupo, la psicología de la programación, gestión de proyectos, factores de organización, diseños de interfaces de usuario e interacción hombre-máquina. 


Clasificación del Peopleware: Dirección, Análisis y Diseño, Programadores, Usuarios Finales. 

1)     Personal de Dirección: 

Son los que verifican que los recursos informáticos sean aprovechados. 

2)    Personal de Análisis: 

Analiza el proyecto para la empresa y diseña las soluciones. 

3)    Personal de Programadores: 

Son los que codifican, instalan, detectan errores, consiguen y modifican los sistemas, aplicaciones y programas de utilidad de la empresa. 

4)    Los Usuarios Finales: 

Son las personas que receptan el sistema, las aplicaciones o los programas de utilidad y los utilizan a cada momento para su trabajo. 

Clasificación del Hardware: Entrada, Salida, Proceso y Almacenamiento.




1)   Entrada:

                               

Un dispositivo de entrada o periférico de entrada es cualquier periférico (pieza del equipamiento del hardware de computadora) utilizado para proporcionar datos y señales de control a un sistema de procesamiento de información (por ejemplo, un equipo).

2)   Salida:

 Son aquellos que permiten emitir o dar salida a la información resultante de las operaciones realizadas por la CPU (procesamiento).Los dispositivos de salida aportan el medio fundamental para exteriorizar y comunicar la información y datos procesados; ya sea al usuario o bien a otra fuente externa, local o remota.

3)   Proceso:

Las unidades centrales de proceso (CPU) no sólo están presentes en las computadoras personales (PC), sino también en otros tipos de dispositivos que incorporan una cierta capacidad de proceso o "inteligencia electrónica”.

4)   Almacenamiento:


Se encargan de guardar los datos de los usuarios. El hardware de almacenamiento sirve para almacenar permanentemente información y programas que la computadora deba recuperar en algún momento.


Metodología de la programación 

Se entiende como metodología de la programación al conjunto de normas, métodos y anotaciones que nos indican la forma de programar.  
Cada lenguaje de programación sigue una metodología distinta. 

Metodología de desarrollo de software en ingeniería de software es un marco de trabajo usado para estructurar, planificar y controlar un proyecto de desarrollo, que permite llevarlo a cabo con altas posibilidades de éxito.

Podemos distinguir tres etapas;
  • Planificación; planeamiento detallado
  • Implementación; conjunto de actividades para llevarlo a cabo
  • Puesta en marcha; presentación al cliente
Un punto aparte merecen las siguientes etapas;

  • Inicio; Idea embrionaria, define donde queremos ir y no el "como"
  • Control en producción
 Paradigmas de la programación
Son las estrategias para crear la estructura de un programa. Existen 2 grande grupos, Imperativa y Declarativa (revisar)

Clasificación de las metodologías
Existen 2, analogas a los paradigmas, programación estructurada (imperativa) y orientada a objetos (declarativa)

Ciclos de vida
Los modelos principales son;
  • Ciclo de vida lineal
  • Ciclo de vida en cascada puro
    • Ciclo de vida en cascada con retroalimentación
    • Ciclo de vida con componentes
    • Ciclo de vida en V
    • Ciclo de vida Sashimi
    • Ciclo de vida en cascada con subproyectos
    • Ciclo de vida iterativo
  • Ciclo de vida por prototipos
    • Ciclo de vida en espiral
  • Ciclo de vida evolutivo
  • Ciclo de vida incremental
  • Ciclo de vida orientado a objetos


Las etapas principales en un ciclo de vida de software son;
  1. Análisis: Construye un modelo de los requisitos
  2. Diseño: A partir del modelo de análisis se deducen las estructuras de datos, la estructura en la que descompone el sistema y la interfaz de usuario.
  3. Codificación: Construye el sistema. La salida de esta fase es código ejecutable.
  4. Pruebas: Se comprueba que se cumplen criterios de corrección y calidad.
  5. Mantenimiento: En esta fase, que tiene lugar después de la entrega se asegura que el sistema siga funcionando y adaptándose a nuevos requisitos.

Ciclo de vida en Cascada
El ciclo de vida inicialmente propuesto por Royce en 1970, fue adaptado para el software a partir de ciclos de vida de otras ramas de la ingeniería. Es el primero de los propuestos y el más ampliamente seguido por las organizaciones (se estima que el 90% de los sistemas han sido desarrollados así).


Pasos para la programación de una metodología

La programación, resumiendo, determina el proceso para la creación de una solución de carácter informático, cualquiera que sea su objetivo o naturaleza. Cada problema es distinto, del mismo modo que los pasos para implementar la solución. Pero al margen de esto, los programas informáticos diseñados para tal fin no pueden obviar una serie de elementos básicos. Veamos en qué consisten:
  • Diálogo o intercambio: el programa empieza por identificar el problema. Luego se centra en la comprensión del mismo. Cuanta mayor información se obtenga en esta primera fase, más acertada será la programación de la solución.
  • Especificación: en esta segunda etapa se establecen de manera precisa las condiciones que debe cumplir el programa para alcanzar su objetivo, que es la solución del problema identificado. Todo lo relativo a la solución debe quedar descrito y clarificado en este punto.
  • Diseño: el siguiente paso consiste en la construcción de un algoritmo que siga las especificidades descritas en el punto anterior.
  • Codificación: esta fase es una de las más importantes de todo el proceso. El algoritmo que se ha diseñado anteriormente es traducido al lenguaje propio de la programación. O dicho de otra forma, el programa cobra entidad.
  • Verificación: en última instancia, los responsables del proyecto realizan una serie de pruebas para confirmar la viabilidad y la utilidad de la solución. Si cumple con lo establecido en la fase de diseño, se implementa en procesos que lo requieran. Si no es así, se deben tomar medidas para corregir los fallos que impidan su normal desarrollo.
  • Mantenimiento: la solución implementada, que ya ha adquirido la categoría de programa informático, precisa mantenimiento cada cierto tiempo. También de esto depende su grado de eficiencia.

La documentación en un proceso de programación
Otro elemento transversal en el proceso de diseño de una solución informática es el de la documentación. Se requiere que sus responsables reúnan todos los datos de interés para la implementación del programa y que se haga un registro en cada una de las fases del proceso, atendiendo, claro está, a necesidades como:
  • Comentarios relacionados con el proceso de diseño y codificación.
  • Especificación de datos.
  • Diagramas de flujo o pseudocódigo.
  • Especificación de requisitos.
  • Listado de programas fuente.
  • Explicación de los algoritmos.

Entorno de programación o entorno de desarrollo 

Es el conjunto de herramientas utilizadas para la elaboración de un programa. 

Recursos
 

Conjunto de componentes hardware que utilizaremos para la elaboración de un programa (CPU, Disco Duro...). 

Una vez conocidos los conceptos básicos necesarios para el aprendizaje de la programación podemos empezar a ver los diferentes tipos de lenguajes de programación.

Paradigma de programación.
Un paradigma de programación es la propuesta tecnológica adoptada e implementada como metodología para resolver problemas definidos, su núcleo no varía en absoluto y su esquema básico tampoco.

Existen actualmente muchos paradigmas de programación, entre los más comunes se encuentran los siguientes:
  • Programación imperativa.
  • Programación estructurada.
  • Programación lógica.
  • Programación declarativa.
  • Programación orientada a objetos.
  • Programación dirigida por eventos.

A día de hoy el paradigma de programación más utilizado es el de la 
programación orientada a objetos, aunque lo más normal es que un mismo lenguaje de programación soporte más de un paradigma, estos lenguajes son conocidos como multiparadigma y algunos de estos lenguajes son C++, Visual Basic o PHP.

Generaciones De la Programación:

La evolución de los lenguajes de programación se puede dividir en 5 etapas o generaciones. 

Primera generación: empezó en los años 1940-1950 en este lenguaje se utilizaba códigos binarios, que eran representados ene secuencias de ceros y unos, y cada modelo de ordenador tenía su propio código. Por eso se llama lenguaje máquina.


Segunda generación: a fines de los 50´ llamado también lenguaje simbólico, así mismo propio de la máquina, permitían simplificar la escritura de las instrucciones y las hacían más legibles.


Tercera generación: hacia los años 60´ ya este es un nivel más alto de programación que sustituyo los símbolos por los códigos independientes de la máquina.



Cuarta generación: es toda aquella herramienta que permite crear una aplicación combinando piezas prefabricadas, algunos piensan que no se le puede dar el nombre de lenguaje a este tipo de herramientas y que proponen el nombre de cuarta generación para la programación orientada a objetos.

Quinta generación: lenguaje de inteligencia artificial (IA) se desarrolló a principios de los 80´. Tiene una mayor legibilidad de los programas, portabilidad, facilidad de aprendizaje y facilidad de modificación.




Se pueden utilizar muchos lenguajes para programar una computadora. El más básico es el lenguaje de maquina, una colección de instrucciones muy detallada que controla la circuitería interna de la maquina. Este es el dialecto natural de la maquina. Muy pocos programas se escriben actualmente en lenguaje de maquina por dos razones importantes: primero, porque el lenguaje de maquina es muy incomodo para trabajar y segundo por que la mayoría de las maquinas se pide programar en diversos tipos de lenguajes, que son lenguajes de alto nivel, cuyas  instrucciones son más compatibles con los lenguajes y la forma de pensar humanos como lo es el lenguaje c que además es de propósito general.

Debido a que los programas diseñados en este lenguaje se pueden ejecutar en cualquier máquina, casi sin modificaciones. Por tanto el uso del lenguaje de alto nivel ofrece tres ventajas importantes, sencillez, uniformidad y portabilidad.  




Lenguaje de programación:
Un  lenguaje de programación es un conjunto de palabras y expresiones que conforman un idioma artificial y que sirven para expresar en lenguaje humano las operaciones y procesos que debe realizar un computador. Surge de la necesidad de encontrar una forma de mandar instrucciones a la computadora sin usar el lenguaje máquina, el único que la computadora comprende.

Es un conjunto de reglas semánticas así como sintácticas que los programadores usan para la codificación de instrucciones de un programa o algoritmo de programación.  Existen varios lenguajes de programación. 

Cada lenguaje de programación contiene sus propias normas sintácticas y semánticas que hay que respetar para que el programa comprenda perfectamente lo que le queremos transmitir.

Los lenguajes se pueden clasificar en muchos grupos dependiendo de sus funcionalidades y características.

a)    Lenguajes de programación fuertemente o débilmente tipados.
b)    Lenguajes de bajo, medio o alto nivel.
c)    Lenguajes compilados o interpretados.
d)    Lenguajes de programación declarativos, imperativos, orientados a objetos, etc. Es decir, clasificados según su paradigma.

Lenguaje de programación: Sistema de símbolos y reglas  que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz.

Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica / comparación y almacenamiento / recuperación.

Tipos de lenguajes de programación:


Existen tres tipos de lenguajes claramente diferenciados; Los Lenguajes Maquinas, los lenguajes de bajo nivel y los de alto nivel.
El ordenador sólo entiende un lenguaje conocido como código binario o código máquina, consistente en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar cualquier acción. 

Los lenguajes más próximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran más cercanos a los programadores y usuarios se denominan lenguajes de alto nivel. 

Los lenguajes de programación se clasifican en:

·         Lenguaje Máquina: 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 más pequeña el bit (dígito binario 0 ó 1).



·         Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.






·         Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol, fortran, 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 inglés), lo que facilita la escritura y comprensión del programa.

LOS LENGUAJES MÁS POPULARES:
Los lenguajes de programación más populares de la actualidad son: Java, C, C++, C# y Python.  Así lo asegura el Índice TIOBE  en su última actualización de febrero 2016. Probablemente te preguntes qué se supone que debas interpretar por lenguaje de programación "más popular". A continuación te explica.

Una parte importante de la investigación y preparación es averiguar qué lenguajes de programación existen y cuál es el que mejor se adapta a las necesidades de tus proyectos. Los más conocidos y utilizados son:

1)   Java
2)   C
3)   C++
4)   C#
5)   Objective-C
6)   Python
7)   Visual Basic .NET
8)   PHP
9)   JavaScript
10) Android.

DEFINICIONES:

Java: Reconocido por su legibilidad y simplicidad, Java es uno de los lenguajes de programación más adoptados: más 9 millones de desarrolladores lo usan y está presente en 7 mil millones de dispositivos en todo el mundo. Su enorme popularidad se debe a su poder de permanencia, cuestión que asegura el funcionamiento a largo plazo de las aplicaciones que lo utilizan.

Asimismo, cabe destacar que el manejo de Java está incluido dentro de las 20 habilidades más valoradas por los empleadores en 2016, según un estudio elaborado por LinkedIn.

C: Fue creado en 1972. Sus creadores habían diseñado con anterioridad el sistema operativo UNIX, y su intención al desarrollar el lenguaje C fue la de conseguir un lenguaje idóneo para la programación de sistemas que fuese independiente de la máquina con el cual escribir su sistema UNIX

C++
Conocido por el nombre “C Plus Plus”, este lenguaje de programación orientado a objetos surge como una continuación y ampliación del C. Hay una gran cantidad de programas escritos en C++, como por ejemplo los paquetes de Adobe.

C#
También llamado “C Sharp”, este lenguaje de programación orientado a objetos fue desarrollado en el año 2000 por Microsoft para ser empleado en una amplia gama de aplicaciones empresariales ejecutadas en el framework .NET. C Sharp es una evolución del C y C++ que se destaca por su sencillez y modernidad.

Fortran: Es un lenguaje especializado en aplicaciones técnicas y científicas, caracterizándose por su potencia en los cálculos matemáticos, pero estando limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes.

Visual Basic. NET
Una gran cantidad de personas a lo largo del mundo que trabajan con Visual Basic.net. Muchas personas que no cuentan con conocimientos profundos como desarrolladores, encuentran en visual Basic, además de una sintaxis sencilla, la posibilidad de automatizar sus propios procesos y crear sus propias aplicaciones web. Es visto como uno de los lenguajes más amigables para los que recién comienzan, sobre todo a comparación de C#.

COBOL: Es el lenguaje más usado en las aplicaciones de gestión, a fin de disponer de un lenguaje universal para aplicaciones comerciales como expresa su nombre (COmmon Business Oriented Language).

PL/1: Fue creado a comienzos de los años 60 por IBM para ser usado en sus equipos del sistema 360. El PL/1 (Programming Language 1) se desarrolló con el objetivo de obtener un lenguaje lo más general posible, útil para aplicaciones técnico-científicas, comerciales, de proceso de textos, de bases de datos y de programación de sistemas.

Basic: Fue diseñado en 1965 con el objetivo principal de conseguir un lenguaje fácil de aprender para los principiantes, como se indica en su nombre Benginner’s All-purpose Symbolic Instruction Code (Código de instrucción simbólico de propósito general para principiantes).

Pascal: Fue creado basándose en el lenguaje AL-GOL, en cuyo diseño había participado en los años 60. Su nombre proviene del filósofo y matemático francés Blaise Pascal, que inventó la primera máquina de tipo mecánico para sumar.

PHP
Creado en 1994 por el programador canadiense Rasmus Lerdorf, nunca pretendió ser un lenguaje de programación, sino que fue creado con la intención de contar con un conjunto de herramientas para el mantenimiento de las páginas web. Es de fácil acceso para nuevos programadores y a su vez ofrece a los más experimentados muchas posibilidades.

ADA: Entre las características del lenguaje se encuentran la compilación separada, los tipos abstractos de datos, programación concurrente, programación estructurada, libertad de formatos de escritura, etc., presentando como principal inconveniente su gran extensión.











Herramientas de Desarrollo o IDES.
No creo que haga falta ir a Wikipedia para mostrar la definición de herramienta, simplemente como en el mundo real, es una ayuda que nos permitirá terminar nuestro programa de manera más rápida y eficiente. Existen cientos o tal vez miles de herramientas para los programadores, pero sin duda alguna la más importante son los IDEs, te dejo una lista de los mejores IDEs para la mayoría de los lenguajes de programación.

a)   Java – Netbeans, Eclipse
b)   C# – Visual Studio, SharpDevelop
c)   Objetive-C – Xcode
d)   Delphi – RAD Studio
e)   Object Pascal – Delphi, Lazarus
f)   C, C++ – Visual Studio, Vim
g)   PHP – Eclipse, Netbeans, Nusphere PHPed
h)   Python – Eclipse, IDLE
i)    Perl – Padre
j)    Ruby – TextMate
k)   Visual Basic – Visual Studio.


Algoritmo y programa informático.
Un algoritmo es un término usado en ciencias de la computación, matemáticas y lógicas, se define como un conjunto de instrucciones ordenadas, sucesivas y perfectamente definidas gracias a las cuales se puede realizar una actividad sin interrupciones ni errores.

Un programa informático es la representación de un algoritmo en un lenguaje de programación ciñéndose a las normas de éste. Al conjunto de texto que conforman las instrucciones que una computadora debe ejecutar se le conoce como código fuente.

Etimología del Algoritmo. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX.

Tipos de Algoritmo. 

Para representarlos, se utiliza, fundamentalmente, dos tipos de notación: 

a)   Pseudocódigo.
b)   Diagramas de Flujo. 

La solución a cualquier problema de cómputo involucra la ejecución de una serie de acciones en orden específico. Un procedimiento para resolver un problema en términos de:

a) Las acciones a ejecutarse.
b) el orden en el cual estas acciones deben ejecutarse se llama algoritmo.

Un ejemplo de un algoritmo para llegar a la escuela

a)            Salir de la cama
b)           Quitarse la pijamas
c)            Darse un baño
d)           Vestirse
e)            Desayunar
f)            Utilizar el transporte ( autobús, carro , bicicleta, etc)


COMPILACIÓN Y DEPURACIÓN.
La compilación es el procedimiento por el cual un programa traduce un lenguaje de programación a lenguaje máquina para que la computadora pueda interpretarlo. Al programa encargado de realizar ésta tarea se le conoce como compilador.

La depuración es el proceso de búsqueda, identificación y corrección de errores de programación. Existen varios métodos de depuración como técnicas de revisión, programas de detección de errores (depuradores), herramientas integradas en el entorno de desarrollo o revisión manual por parte del programador usando un papel y bolígrafo o sentencias auxiliares dentro del programa.















Definición del Problema
Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.
Análisis del Problema
Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
            Los datos de entrada.
            Cual es la información que se desea producir (salida)
            Los métodos y fórmulas que se necesitan para procesar los datos.
Una recomendación muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.
Diseño del Algoritmo
Las características de un buen algoritmo son:
            Debe tener un punto particular de inicio.
            Debe ser definido, no debe permitir dobles interpretaciones.
            Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.
            Debe ser finito en tamaño y tiempo de ejecución.
Codificación
La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.
Prueba y Depuración
Los errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración.
La prueba consiste en la captura de datos hasta que el programa no presente errores (los más comunes son los sintácticos y lógicos).
Documentación
Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas.
A menudo un programa escrito por una persona, es usado por otra. Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento).
La documentación se divide en tres partes:
            Documentación Interna

            Documentación Externa

            Manual del Usuario
·         Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente para hacer mas claro el entendimiento de un proceso.
·         Documentación Externa: Se define en un documento escrito los siguientes puntos:
                        Descripción del Problema
                        Nombre del Autor
                        Algoritmo (diagrama de flujo o pseudocódigo)
                        Diccionario de Datos
                        Código Fuente (programa)
·         Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado.
Mantenimiento
Se lleva acabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.



































PROGRAMACIÓN

LOS DATOS Y OPERACIONES BÁSICAS.

1. IDENTIFICADOR. Un identificador es una serie de caracteres formados por  letras, dígitos y el carácter subrayado (_) que no inicie con dígito, asi mismo es el nombre que damos a todo lo que manipulamos dentro de un programa (variables, constantes, funciones, etc). Por ejemplo variables, constantes, funciones, tipos definidos por el usuario etc.

2. 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: Numéricos, de Carácter, Fecha y Hora, Lógicos. 

a)    Numéricos: Este tipo de dato puede ser real o entero, dependiendo del tipo de dato que se vaya a utilizar. 
b)    Enteros: son los valores que no tienen punto decimal, pueden ser positivos o negativos y el cero. 
c)    Reales: estos caracteres almacenan números muy grandes que poseen parte entera y parte decimal. 
d)    Carácter: El tipo de dato carácter es un digito individual el cual se puede representar como numéricos (0 al 9), letras (a-z) y símbolo ($, _). NOTA: En lenguaje java la codificación Unicode permite trabajar con todos los caracteres de distintos idiomas. 
e)    Fecha y Hora: Se utiliza para marcar un registro con la fecha de inserción - actualización. Se actualiza automáticamente cada vez que insertamos o modificamos los datos. 
f)   Lógicos: El tipo lógico también denominado booleano, es aquel dato que solo puede tomar uno de dos valores: Cierto o Verdadero (True) y Falso (False). 

3. VARIABLES. Una variable es un identificador que puede tomar diferentes valores dependiendo del tipo que esta se declare.
Una variable es un identificador que puede cambiar de valor durante la ejecución de un programa.
Una variable es una posición de memoria donde se puede almacenar un valor para uso de un programa.

5. INICIALIZACIÓN DE VARIABLES
Inicializar una variable es el darle un valor después que se ha declarado pero antes de que se ejecuten las sentencias en las que se emplea.

6. CONSTANTES. Constantes son los valores que no pueden ser modificados. En C, pueden ser de cualquier tipo de datos.
Además de los ejemplificados anteriormente, Podemos crear constantes de caracteres con barra invertida. Estos corresponden a los caracteres que son imposibles introducir desde el teclado.

7. OPERADORES
Un operador es un símbolo que indica al compilador que realice manipulaciones lógicas o matemáticas específicas.
 Los operadores del mismo nivel de precedencia son evaluados por el compilador de izquierda a derecha. Por supuesto, se puede utilizar paréntesis para ordenar la evaluación.
También, conviene utilizar paréntesis para hacer más claro el orden en que se producen las evaluaciones, tanto para la persona que lo elabora o para los que después tengan que seguir el programa.

8. LOS CONTADORES Y LOS ACUMULADORES. 

- Contador: Es una variable cuyo valor se incrementa o decrementa en un valor fijo (en cada iteración de un bucle). Un contador suele utilizarse para contar el número de veces que itera un bucle. Pero, a veces, se utiliza para contar, solamente, aquellas iteraciones de un bucle en las que se cumpla una determinada condición. 

- Acumulador: Es una variable cuyo valor se incrementa o decrementa en un valor que no tiene por qué ser fijo (en cada iteración de un bucle). Un acumulador suele utilizarse para acumular resultados producidos en las iteraciones de un bucle. 

9. OPERADORES MATEMÁTICOS Y OPERADORES RELACIONALES (SÍMBOLOS).
Un operador es un símbolo matemático que indica que debe ser llevada a cabo una operación especificada sobre un cierto número de operandos.
- Operadores Matemáticos: Las operaciones aritméticas pueden ser entendidas, desde un punto de vista operacional, como operadores bivariantes o como operadores a derecha.
Adición +
Resta   -
Multiplicación *
División /
Potenciación ^
- Operadores Racionales: Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa.
<           Menor Que
>           Mayor Que
=          Igual A
<>         Diferente A
<=         Menor o Igual Que
>=         Mayor o Igual Que

Operadores Lógicos:

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

Los operadores lógicos nos proporcionan un resultado a partir de que se cumpla o no una cierta condición. Esto genera una serie de valores que, en los casos más sencillos, pueden ser parametrizados con los valores numéricos 0 y 1, como se puede apreciar en los ejemplos de abajo. La combinación de dos o más operadores lógicos conforma una función lógica. 

Operadores Lógicos:

1)     And     Y
2)    Or        O
3)    Not      Negación

Prioridad de los Operadores Lógicos:

1)     Not
2)    And
3)    Or

 Operadores de Asignación. Los operadores de asignación se utilizan para formar expresiones de asignación, en las que se asigna el valor de una expresión a un identificador.  ***** Por definir el operador de asignación****.
            Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas.
            Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:
-       Aritméticas
-       Relaciónales
-       Lógicas

10. PALABRAS RESERVADAS.

            Son palabras que tienen un significado especial para el lenguaje y no se pueden utilizar como identificadores.
11. COMENTARIOS.
            Los comentarios pueden aparecer en cualquier parte del programa, mientras estén situados entre los delimitadores /* comentario */. Los comentarios son útiles para identificar los elementos principales de un programa o para explicar la lógica subyacente de estos.            

12. LAS FÓRMULAS (EXPRESIONES) Y LAS FUNCIONES. 

a)    Fórmulas: 
Es una ecuación que calcula un valor nuevo a partir de los valores existentes. El resultado será asignado al lugar en la cual se introduce dicha fórmula. Pueden crearse una amplia diversidad de fórmulas, desde fórmulas que ejecuten una simple operación aritmética hasta fórmulas que analicen un modelo complejo de fórmulas. Una fórmula puede contener números, operadores matemáticos, etc.

b)    Funciones: 

Es un grupo de instrucciones con un objetivo en particular y que se ejecuta al ser llamada desde otra función o procedimiento. Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función recurrente). Las funciones pueden recibir datos desde afuera al ser llamadas a través de los parámetros y deben entregar un resultado. Se diferencian de los procedimientos porque estos no devuelven un resultado. 


























DIAGRAMA DE FLUJO:

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.
Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre sí mediante líneas que indican el orden en que se deben ejecutar los procesos.

Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).

Recomendaciones para el diseño de Diagramas de Flujo.
    Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.
Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos.
Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).
·         Todo diagrama debe tener un inicio y un fin.
·         Se deben se usar solamente líneas de flujos horizontales y/o verticales.
·         Se debe evitar el cruce de líneas utilizando los conectores.
·         Se deben usar conectores solo cuando sea necesario.
·         No deben quedar líneas de flujo son conectar.
·         Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.
·         Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.
·         Evitar la terminología de un lenguaje de programación o maquina.
·         Utilizar comentarios ya sea al margen o mediante el símbolo grafico comentarios para que este sea entendible por cualquier persona que lo consulte.
·         Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde viene y a donde se dirige.
2. Pseudocódigo
Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.
            Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.

            El pseudocódigo se concibió para superar las dos principales desventajas del Diagrama de Flujo: el diagrama de flujo es lento de crear y difícil de modificar sin un nuevo redibujo. Por otra parte el pseudocódigo es más fácil de utilizar ya que es similar al lenguaje natural.
Al contrario de los lenguajes de programación de alto nivel como Pascal o Basic no existe un conjunto de reglas que definan con precisión lo que es y lo que no es pseudocódigo. Varia de un programador a otro.
El pseudocódigo requiere de ciertos símbolos que ya tienen significado preciso y establecido a los que se les conoce como palabras clave. Es necesario que exista una palabra clave para la selección y otra para la iteración condicional, así como para las instrucciones adicionales y otras estructuras de control.

En la redacción del pseudocódigo se utiliza tres tipos de estructuras de control: las secuenciales, las selectivas y las iterativas.

c)    -Estructuras secuenciales: Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo. Las instrucciones se ejecutan dependiendo de la condición dada dentro del algoritmo.
d)    -Estructuras selectivas: Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse, según el cumplimiento de una condición.
e)    -Estructuras iterativas: Las instrucciones iterativas representan la ejecución de instrucciones en más de una vez.

Programación estructurada
Método disciplinado de escribir programas que sean claros, que se demuestren que son correctos y fáciles de modificar
Un programa se compone de:
a)    Estructuras de datos.- Los hechos reales, representación en forma de datos, manera en que se organizan los datos.
b)    Operaciones primitivas elementales.- Son acciones que se ejecutan sobre los datos para transformarlos en información.
c)    Estructuras de control.- Son los métodos que existen para dirigir el flujo de acciones que la computadora deberá ejecutar sobre los datos manejados por el programa.
Estructura de control secuencial
La computadora ejecutará automáticamente enunciados uno después del otro, en el orden en el cual se han escrito de inicio a fin.

Ejemplo  Sumar dos números:

Pseudocódigo

Inicio
Entero a,b,c                 declara las variables a utilizar
Leer a,b                       solicita el valor de a y b
c= a+b                          suma a y b y lo almacena en c
Imprimir c                   muestra el resultado almacenado en la variable c
Fin

Diagrama de flujo




Existen tres tipos de estructuras de control selectivas, estas se basan en una condición o en una opción para decidir la parte del programa por el que pasará.
a)    Simple             b)Doble o compuesta    c)Múltiple

Selectiva simple.- evalúa una condición, si esta es verdadera ejecuta la acción o acciones especificadas, si es falsa no realiza ninguna acción.       


Nota: Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin, en caso contrario si, como se muestra en el diagrama anterior.
Selectiva doble o compuesta.- evalúa una condición, si esta es verdadera ejecuta la acción o acciones especificadas, si es falsa ejecuta otra acción o acciones.

Nota: Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin como en este caso que la condición fue falsa, en caso contrario si, en este ejemplo cuando la condición fue verdadera.

 

Ejemplo: Imprimir si un número es positivo o negativo



Nota: las variables no se especifican en el diagrama de flujo, pero si en el pseudocódigo.


10.¿Qué es una Herramienta Case?

Son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costes, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras.

11.Bit, Byte, Kilobyte, Megabyte, Gigabyte, Terabyte.

- El Bit O Dígito Binario: Un bit es la unidad de información más pequeña que el procesador manipula y físicamente se representa con un elemento como un pulso o un punto. Ocho bits constituyen un byte.

- El Byte O Unidad Mínima De Almacenamiento: Cuenta con 8 bits. Equivale a un sólo carácter, como una letra o un número.

- El Kilobyte (KB): Equivale a 1.024 bytes y a menudo es la unidad en la que se registra el almacenamiento de archivos pequeños como documentos de texto o imágenes en baja resolución.

- El Megabyte (MB): Equivale a más de un millón de bytes, y comúnmente archivos de tamaño considerable se almacenan en esta unidad. Por ejemplo, imágenes en alta resolución, archivos, carpetas, documentos y hasta programas.

- El Gigabyte (GB): Equivale a mil millones de bytes. Es la unidad que más típicamente se maneja hoy en día, y los ordenadores más comunes proveen de un espacio de más de 100 GB para memoria. Los archivos de todo un ordenador de tamaño considerable se miden en GB.

- El Terabyte (TB): Equivale a 1024 Gigabytes y es una medida que se utiliza para referir a ordenadores de alta complejidad.

Medida Cantidad de Bytes    Equivalente
Kilobyte (KB)  1024   1024 Bytes
Megabyte (MB)       1048576      1024 Kilobytes
Gigabyte (GB) 1073741824  1024 Megabytes
Terabyte (TB) 1099511627776      1024 Gigabytes


Códigos Binarios y Códigos Hexadecimales: Conceptos y Diferencias.

- Códigos Binarios: El código ó sistema binario, en matemáticas e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Es el que se utiliza en las computadoras, pues trabajan internamente con dos niveles de voltaje, por lo que su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).

- Códigos Hexadecimales: El sistema Hexadecimal es el sistema de numeración de base 16, su uso actual está muy vinculado a la informática y ciencias de la computación, pues los computadores suelen utilizar el byte u octeto como unidad básica de memoria y, un byte representa 28 valores posibles.

13. Código RGB y Código CMYK: Conceptos, Para que se usan.

- Código RGB: La descripción RGB de un color hace referencia a la composición del color en términos de la intensidad de los colores primarios con que se forma: el rojo, el verde y el azul. Es un modelo de color basado en la síntesis aditiva, con el que es posible representar un color mediante la mezcla por adición de los tres colores luz primario.
RGB son colores, para trabajar solo en pantalla (web, multimedia, etc.) o para impresiones digitales.
Nombre        Código
Negro / Black “#000000”
Plata / Silver “#C0C0C0”
Gris / Gray    “#808080”
Blanco / White       “#FFFFFF”
Marrón / Maroon     “#800000”
Rojo / Red    “#FF0000”
Púrpura / Purple      “#800080”
Fucsia / Fuchsia      “#FF00FF”
Verde / Green “#008000”
Azul / Blue “#0000FF”
Lima / Lime   “#00FF00”
Oliva / Olive  “#808000”
Azul Naval / Navy    “#000080”
Agua / Aqua  “#00FFFF”
Amarillo / Yellow     “#FFFF00”

- Código CMYK: La codificación CMY (Cyan, Magenta, Yellow, o Cian, Magenta, Amarillo en español, CMA) es a la síntesis sustractiva lo que la codificación RGB es a la síntesis aditiva. Este modelo consiste en dividir un color en valores de cian, magenta y amarillo. La ausencia de estos tres componentes da como resultado blanco mientras que la suma de ellos da como resultado negro.
CMYK es para trabajos offset (imprenta) Se trabajan en base a una cuatricromía o mezcla de Cyan, magenta, Yellow y black. La combinación de todo esto da un trabajo a full color.


QUE ES EL CODIGO BINARIO? 
El codigo binario es una forma de escribir muy usada por la computadora en su bajo nivel, ósea los procesos de datos que no vemos pero que la computadora realiza 

DE QUE ME SIRVE SABER BINARIO? 
La verdad no de mucho, pero este post esta mas dedicado a quienes le interesa el origen de las cosas, en este caso el binario es el comienzo de lo que es la tecnología hoy en día 

AHORA LO INTERESANTE! 
Bueno como la mayoría ya saben el codigo binario está compuesto por 0 (ceros) y 1 (unos)  
ustedes se preguntaran " que ****** significa el 0 y el 1?" bueno el 0 es el nivel físico del pc o lo que usemos, impide el paso de corriente  y el 1 hace que circule  
a través de esta forma básica funciona un pc, lo único es que lo hace muy pero muy rápido 
asi que ya sabes si mando un instante de corriente (1) y dejo 3 instantes sin mandar nada (0) es decir 1000 la pc esto lo traduce mostrándote un "8" en el monitor 

ahora pues imagina la cantidad de caracteres (letras , numeros , etc) que escribes por segundo , bien con eso imagina la cantidad de 0s y 1s que a bajo nivel está representando tu pc, y por ultimo imagina a un nivel microscópico dentro de tu pc el paso de corriente , la cantidad de cortes y puentes que permiten el paso de la misma , tan solo para escribir una palabra  
que loco no? en 3 palabras que escribes hay cientos de acciones a nivel microscópico que realza tu pc 



Muy bien , ahora que tenemos una base de lo que es el codigo binario comencemos a traducirlo 
para entender como traducir el binario hay que tener una mínima base de matemática, bueno comenzamos con lo más sencillo:
CONTAR 
como contamos las personas bueno ustedes dirán, "como mierda vamos a contar? si me dicen que cuente del 1 al 12 yo le digo 1 2 34 5 6 7 89 10 11 12 boludo" 
pues está bien , pero si nos fijamos en la base del conteo , podemos decir que contamos con decimales y ustedes me dirán : "deja de hacerte el rico y decime que mierda son los decimales! 
Bueno los decimales son los numeros naturales (del 0 al 9) en base 10 
si ven 0 1 2 3 4 5 6 7 8 9 ahí 10 numeros de ahí viene decimal es decir en base 10 
es decir que cualquier numero lo podemos representar con esos 10 numeros 

ejemplo 
36 como se representa? 

Bueno Acá Viene El Conocimiento En Matemática.

Tienen que saber o haber oído alguna vez lo que son las potencias, por ejemplo 10^2 = 100 que es lo mismo que decir 10*10 (* = por)  o 10 ^ 3 = 1000 es lo mismo que 10*10*10 o 100*10 
para que sirve esto bueno porque nuestro conteo es en base 10, es decir cualquier número se representa como suma de numeros naturales en base 10. Aclaración!  en base 10 significa que se multiplica un numero por 10 elevado a la otro número.
Por ejemplo el 36 
se puede representar como 
3*10^1 + 6*10^0 

nota: 
cualquier número a la 0 es 1  y cualquier número a la 1 es el mismo número  entonces queda 3*10 + 6*1  que es lo mismo que 30+6  que es 36 ahora si ya saben la base del conteo ! 

Bueno ahora que saben contar vamos a pasar al binario 

Porque binario? 
Porque es en base 2 

Bueno ahora pasamos a ver las diferencias con el conteo binario y el decimal (el común)  el decimal dijimos que era un número del 0-9 por 10 (porque del 0 al 9 hay 10 numeros) a la otro número.

bueno el binario como solo ahy 2 numeros  el 0 y el 1 entonces no es a la 10 , es a la 2 
ejemplo 
1*2^0 = 1 
bien ya sabemos que el 1 en binario es igual al 1 en decimal! 

Bueno ahora representemos el numero 8 como lo mencionamos antes dijimos que el 8 es igual a 1000 en binario veamos por qué 
1000 para pasarlo a decimal ahí que multiplicar la primer cifra *2^0 , la segunda *2^1 , la tercera *2^2 y asi sucesivamente 

entonces 1000 = 1*2^3 + 0*2^2 + 0*2^1 + 0*2^0 que es lo mismo que 1*8+0*4+0*2+0*1 que es igual a 8+0+0+0 = 8  listo ya sabemos leer binario 
space space space 
Con el mismo procedimiento se obtienen todos los decimales 

un ejemplo al revés 

como hacemos el 25 en binario? 

Bueno 25 en decimal es igual a 2*10^1 + 5*10^0 

y en binario es igual a 1*2^4 + 1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 16+8+0+0+1 = 25 
entonces tomando el primer número de cada termino tenemos que 25 = 11001 

listo! 
Ya sabemos escribir binario!! 

Una última cosa! 
Y LAS LETRAS? 

bueno para eso está el Código Estadounidense Estándar para el Intercambio de Información 

Codigo ASCII 

Bueno entre nosotros , es la forma de escribir todas las letras con combinaciones de numeros 
por ejemplo el más conocido es el número 64 que es el arroba @ se puede escribir con Alt y su combinación , en este caso alt+64  las letras empesan desde la "A" con el 65 en adelante , por eso el alt+65 es la "A"  bueno en el binario si escribimos el numero 65 (1000001) representaría a la "A" en binario o al 65 dependiendo del contexto.

Bueno ahora si se saben todo sobre leer y escribir en binario! 

una última cosa para los que no tiene ganas de leer todo el post porque tienen bases de matemáticas y conocimiento del binario  esta formulita les puede ser útil para leer y escribir binario 

_*2^n+_*2^n-1+_*2^n-2+............+_*2^3+_*2^2+_*2^1+_*2^0  pueden rellenar el "_" con 1 o 0 

y una tablita del ASCII 





          D Appleby, y J.J. VandeKopple, Lenguajes de programación: paradigma y práctica, McGraw-Hill Interamericana, 1998
          T.W. Pratt y M.V. Zelkowitz, Lenguajes de programación: diseño e implementación, Prentice-Hall Hispanoamericana, 3ª ed., 1998
          R. Sethi, Lenguajes de programación: conceptos y constructores, Addison-Wesley Iberoamericana, 1992
          http://programavideojuegos.blogspot.com/2013/05/25-ejercicios-resueltos-de-estructuras.html

https://learn.mikroe.com/ebooks/microcontroladorespicbasic/chapter/lenguajes-de-programacion/
           


Juancito Peña Vizcaino



No hay comentarios:

Publicar un comentario

Puedes hacer cualquier comentario que pueda aportar al mejoramiento del Blog o la Entrada de tu interes:

Entrada destacada

Aprende como convertirte en freelance, crear tu propio negocio Online o Startup usando tecnologías Actuales. http://www.faztweb.com/tutori...

Popular Posts