lunes, 11 de diciembre de 2017

Metodos de programación

  Análogamente a los procedimientos en lenguajes imperativos, un método consiste generalmente de una serie de sentencias para llevar a cabo una acción, un juego de parámetros de entrada que regularán dicha acción o, posiblemente, un valor de salida (o valor de retorno) de algún tipo.
La diferencia entre un procedimiento (generalmente llamado función si devuelve un valor) y un método es que este último, al estar asociado con un objeto o clase en particular, puede acceder y modificar los datos privados del objeto correspondiente de forma tal que sea consistente con el comportamiento deseado para el mismo. Así, es recomendable entender a un método no como una secuencia de instrucciones sino como la forma en que el objeto es útil (el método para hacer su trabajo). Por lo tanto, podemos considerar al método como el pedido a un objeto para que realice una tarea determinada o como la vía para enviar un mensaje al objeto y que éste reaccione acorde a dicho mensaje
Tipos de métodos:
Como ya se mencionó, los métodos de instancia están relacionados con un objeto en particular, mientras que los métodos estáticos o de clase (también denominados métodos compartidos), están asociados a una clase en particular. En una implementación de constructores, siendo estos métodos de instancia especiales llamados automáticamente cuando se crea una instancia de alguna clase. En Java y C++ se distinguen por tener el mismo nombre de la clases a la que están asociados. Lenguajes como Smalltalk no requieren constructores ni destructores.
Los métodos de acceso son un tipo de método normalmente pequeño y simple que se limita a proveer información acerca del estado de un objeto. Aunque introduce una nueva dependencia, la utilización de métodos es preferida a acceder directamente a la información para proveer de una nueva capa de abstracción (programación orientada a objetos). Por ejemplo, si una clase que modela una cuenta bancaria provee de un método de acceso "obtenerBalance()" en versiones posteriores de la clase se podría cambiar el código de dicho método substancialmente sin que el código dependiente de la clase tuviese que ser modificado (un cambio sería necesario siempre que el tipo de dato devuelto por el método cambie). Los métodos de acceso que pueden cambiar el estado de un objeto son llamados, frecuentemente, métodos de actualización o métodos de mutación; a su vez, los objetos que proveen de dichos métodos son denominados objetos mutables.Resultado de imagen para metodos de programacionResultado de imagen para metodos de programacionResultado de imagen para metodos de programacion


Scratch



Scratch es un lenguaje de programación visual desarrollado por el MIT Media Lab.​ Scratch es utilizado por estudiantes, académicos, profesores y padres para crear fácilmente animaciones, juegos (también educativos) e interacciones etc. Para las escuelas se convierte en una oportunidad para ayudar a los estudiantes en el desarrollo de habilidades mentales mediante el aprendizaje de la programación sin necesidad de saber del programa. Sus características ligadas al pensamiento computacional han hecho que sea muy difundido actualmente en la educación de niños adolescentes y adultos.
Scratch es usado por estudiantes, escolares, profesores y padres para crear animaciones de forma sencilla y servir de trampolín hacia el más avanzado mundo de la programación. También puede usarse para un gran número de propósitos educativos construccionistas y de entretenimiento, como proyecto de ciencias o matemáticas, incluyendo simulación y visualización de experimentos, conferencias grabadas con presentaciones animadas, historias animadas de las ciencias sociales, arte interactivo, música.​ Se pueden ver los diferentes proyectos existentes en la web de Scratch, modificarlos e incluso probarlos sin llegar a guardar los cambios ya que no requiere ningún tipo de registro.
Scratch permite a los usuarios usar programación dirigida por eventos con múltiples objetos activos llamados sprites.1​ Los sprites pueden pintarse como gráficos vectoriales o mapa de bits, desde la propia web de Scratch usando un simple editor que es parte del proyecto, o pueden también importarse desde fuentes externas incluyendo webcams.
Desde 2013, Scratch 2 está disponible en línea y como aplicación de escritorio para WindowsOS X y Linux (requiere Adobe Air).​ El código fuente de Scratch 1.x se liberó bajo licencias GPLv2 y "Scratch Source Code Licencse

En el ámbito de la ingeniería informática, scratching quiere decir reutilizar código, el cual puede ser usado de forma beneficiosa y efectiva para otros propósitos y fácilmente combinado, compartido y adaptado a nuevos escenarios, lo cual es una característica clave de Scratch. De esta forma, cualquier usuario puede descargarse y trabajar sobre proyectos públicos subidos y desarrollados por otros usuarios. También se reconoce a los participantes que construyeron y crearon el programa original. El nombre es un derivado de la técnica de turntablismscratching, es decir, mezclar sonidos, relacionando de este modo la facilidad de mezclar sonidos con la facilidad de mezclar proyectos creados con Scratch.
Scratch supuso un avance en la comprensión de la efectividad y el diseño innovador de las TIC para mejorar el aprendizaje en los centros escolares y otras modalidades de educación informal, y amplió las oportunidades de los jóvenes en general que gracias a Scratch pudieron entrar en el mundo del diseño y desarrollo de aplicaciones gracias a las nuevas tecnologías. Scratch fue desarrollado de forma iterativa basándose en la interacción permanente con los jóvenes y el personal en Computer Clubhouses.8​ El uso de Scratch en estos clubes sirvió de modelo para otros centros post-educacionales demostrando cómo los entornos de apr pueden apoyar el desarrollo de la tecnología, permitiendo a los jóvenes diseñar y programar proyectos que son importantes para ellos y sus comunidades.​
La primera versión de Scratch, disponible solo en versión de escritorio, fue desarrollada y publicada en 2003 conjuntamente por el MIT Media Lab, dirigido por Mitchel Resnick, y la compañía Playful Invention Company, con sede en Montreal y cofundada por él junto a Brian Silverman y Paula Bonta. El propósito fue ayudar a la gente joven, principalmente con edades a partir de los ocho años, a aprender a programar.​
Scratch 2 se publicó en mayo de 2013.​ A partir de esta versión, se permite definir "bloques personalizados" dentros de los proyectos.

Resultado de imagen para scratch

Programacion


La programación informática o programación algorítmica, acortada como programación, es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas de computadora. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.

Para crear un programa, y que la computadora lo interprete y ejecute las instrucciones escritas en él, debe escribirse en un lenguaje de programación. En sus inicios las computadoras interpretaban solo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho solo consiste en cadenas de números 1 y 0 (sistema binario). Para facilitar el trabajo de programación, los primeros científicos, que trabajaban en el área, decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o abreviaturas provenientes del inglés; las codificaron y crearon así un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se podría usar la letra A de la palabra inglesa add (sumar).
La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador)

Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un diagrama de flujo, en forma de código como en pseudocódigo o un lenguaje de programación, en forma explicativa.
Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y se conoce como "refino progresivo".
Según Niklaus Wirth, un programa está formado por los algoritmos y la estructura de datos.
La programación puede seguir muchos enfoques, o paradigmas, es decir, diversas maneras de formular la resolución de un problema dado. Algunos de los principales paradigmas de la programación son:
  • Programación declarativa
  • Programación estructurada
  • Programación modular
  • Programación orientada a objetos


Resultado de imagen para programacion
Resultado de imagen para programacion

lunes, 30 de octubre de 2017

Tipos de programación

Tipos de programación

Hay técnicas de programación muy variadas, sin embargo todas tienen la misma finalidad resolver el problema. 

1.- Programación estructurada: es la primera que surge y viene de un pasado remoto de como iniciaba la diagramación, todo esto va evolucionando, eta compuesta por un conjunto de técnicas que igual han evolucionado, se aumenta de buena manera la productividad del programa y el tiempo de depuración (si es eficiente o no para el programa) y con este viene el mantenimiento, tienes que darte mantenimiento cada cierto tiempo para que el programa funcione mejor. 
Utiliza un numero limitado de estructuras de control, con esto se reduce el numero de errores. Incorpora un diseño top-down, aquí el problema se descompone en etapas o estructurado en manera jerarquicas, otro elemento empleado es en uso de recursos abstractos. Esta técnica te permite descartar opciones complejas en otras mas simples para entenderse y resolverse con mayor facilidad.

Se incorporan estructuras de 3 tipos: 
1.-Secuenciales: las acciones son consecutivas, una detrás de otra, una acción da entrada a otra. 
Selectivas: se evalúan las condiciones y en función de ellas se ejecutan, se utilizan expresiones lógicas.
Repetivtiva: son secuencias que se repiten determinado numero de veces, tambien se conoce como iteractiva.

2.- Programacion modular: hay varias secciones y cada una hace una cosa y ya unidas hacen una acción, cuando se juntan los módulos crean el programa.

3.-Programacion orientada a objetos (OP): incrementa considerablemente la velocidad de un desarrollo gracias al uso de objetos

MÉTODOS CPM Y PERT

Actividad ficticia: es una actividad irreal que nos creamos para poder establecer determinadas relaciones entre las actividades. No consumen ni tiempo ni recursos. También se corresponden con arcos pero para diferenciarlas de las anteriores las dibujaremos discontinuas.
  Suceso inicial o de salida: punto de partida para iniciar el proyecto. De él parten actividades pero no llega ninguna. 
 Suceso final o de conclusión: situación final del proyecto. A él llegan actividades pero de él no sale ninguna.

Reglas para elaborar la red:
 Se debe definir el suceso de salida y el de conclusión del proyecto.
 Todas las actividades están limitadas por un suceso inicial y otro final.
 Dos actividades no pueden tener los mismos sucesos inicial y final.
 Todas las actividades que llegan a un suceso deben preceder a todas las que
salen de él.
 Las redes deben representar de forma lógica la ejecución de todas las actividades.
 No pueden existir ni bucles ni circuitos.
 La red debe ser continua y conexa, no pueden existir actividades desconectadas.
 Los sucesos deben numerarse porque así todas las actividades quedan definidas
por su suceso inicial (i) y su suceso final (j). La numeración siempre se hará de
forma que se cumpla i<j. Conviene numerar en múltiplos de 10 por si más adelante
se quiere descomponer una actividad.

Métodos: conjunto de instrucciones a las que se les asocia un nombre de modo que si se desea ejecutarlas, sólo basta o referenciarlas a través de dicho nombre en vez de tener que escribilas.
Resultado de imagen para tipos programacionResultado de imagen para tipos programacion






lunes, 2 de octubre de 2017

La Codificacion

La codificación


Se llama codificación a la transformación de la formulación de un mensaje a través de las reglas o normas de un código o lenguaje predeterminado.


Conocemos a la codificación como cualquier operación que implique la asignación de un valor de símbolos o caracteres a un determinado mensaje verbal o no verbal con el propósito de transmitirlo a otros individuos o entidades que compartan el código.
La codificación es algo tan simple como lo que realizamos a diario cuando transformamos imágenes visuales o entidades conceptuales en palabras, oraciones, textos y las comunicamos a aquellos que nos rodean. También es codificación aquellas operaciones más complejas que implican códigos compartidos por menos interlocutores, como puede ser un mensaje cifrado o información emitida mediante el código Morse. Metafóricamente, además, se puede hablar de mensajes codificados cuando estos encierran un valor críptico o ininteligible para el público medio.



En informática, por lo tanto, la codificación es también aquella operación que tiene lugar para enviar datos de un lugar a otro, procesarlos y obtener resultados a partir de ellos. Todas las operaciones informáticas están cifradas en código binario, o bien, combinaciones más o menos complejas de unos y ceros que ocurren constantemente.


A su vez, determinadas operaciones con ordenadores requieren un segundo nivel de codificación. Son aquellas que precisan de aspectos de seguridad y confidencialidad y, por ende, implican la creación de mensajes cifrados que sólo pueden ser leídos por cierto tipo de ordenadores o por el usuario que los ha creado, como ocurre con las contraseñas y datos personales en transacciones en línea.
Este tipo de codificación tiene un alto valor de confiabilidad y se utiliza en todo tipo de tareas y entornos informáticos, en cuestiones tan simples como crear una cuenta en una red social y tan complejas como realizar operaciones bancarias y financieras por Internet.




Resultado de imagen para la codificacion
       Resultado de imagen para la codificacion
 


Sistema binario

Un sistema de numeración es una serie de símbolos que se utilizan, de acuerdo a ciertas reglas, para construir aquellos números que se consideran válidos. Entre los diferentes sistemas de numeración, encontramos el sistema binario.
Antes de avanzar en la definición, podemos analizar a qué se refiere la noción. Un sistema es un conjunto de componentes que interactúan y están interrelacionados entre sí. Binario, por su parte, es aquello que está formado por dos componentes o unidades.
El sistema binario, de este modo, emplea sólo dos dígitos o cifras: el cero (0) y el uno (1). Distinto es el caso, por ejemplo, del sistema decimal, que utiliza diez dígitos (del cero al nueve), o del hexadecimal, con sus dieciseis elementos (del cero al nueve, y luego de la ‘A’ a la ‘F’). Si bien el sistema decimal es el más conocido por todos, dado que es el primero que nos enseñan en la escuela y el que usamos para los cálculos básicos de la vida cotidiana, los otros dos tienen una gran importancia en diferentes campos, tales como la informática.En la actualidad, la popularidad del sistema binario radica en que es el empleado por los ordenadores (computadoras o computadores, según la región). Como estos equipos, a nivel interno, funcionan con dos grados diferentes de voltaje, apelan al sistema binario para indicar el apagado, desenergizado, “cero voltios” o inhibido (representado con el 0) o el encendido, energizado, +5 o +12 voltios (1).
Aunque puede parecer extraño, cualquier número del sistema decimal (el más empleado en la vida cotidiana) puede expresarse a través del sistema binario. Sólo hay que seguir alguno de los métodos establecidos para encontrar la equivalencia. Existen algunos casos especiales para los cuales no es necesario recurrir a ningún procedimiento; por ejemplo, el 0 y el 1, que se mantienen iguales en ambos sistemas.
El método más común consiste en dividir la cantidad del sistema decimal por 2: el número entero que da como resultado se divide nuevamente por 2, de forma sucesiva hasta que el dividendo resulta inferior al divisor. Hecho esto, los restos de cada división se ordenan desde el último resto hasta el primero.
De este modo, si queremos expresar el número 34 en el sistema binario, haremos lo siguiente:

34 / 2 = 17 (resto = 0)

17 / 2 = 8 (resto = 1)

8 / 2 = 4 (resto = 0)
4 / 2 = 2 (resto = 0)
2 / 2 = 1 (resto = 0)
1 / 2 = 0 (resto = 1)




  Resultado de imagen para sistema binario