2018
2ºBACH B
TIC II Andrea Azaña-Sanz López y José Domingo Gómez Martínez
[PROGRAMACIÓN]
[PROGRAMACIÓN]
2
Contenido
1. La programación en la sociedad actual. .........................................................................................................3
2. Creación de un programa informático: ciclo de vida del software...................................................................3
2.1. Análisis del problema.................................................................................................................................3
2.2. Diseño de algoritmos.................................................................................................................................3
2.3. Codificación del programa..........................................................................................................................4
2.4. Pruebas y depuración ................................................................................................................................4
2.5. Documentación .........................................................................................................................................4
3. Diseño de algoritmos....................................................................................................................................4
3.1. Algoritmo: definición y características que deben cumplir...........................................................................4
3.2. Diagramas de flujo: símbolos utilizados......................................................................................................5
3.3. Pseudocódigo............................................................................................................................................5
4. Lenguajes de programación ..........................................................................................................................5
4.1. Evolución histórica de los lenguajes............................................................................................................5
4.2. Sintaxis de los lenguajes de programación..................................................................................................6
4.3. Variables y constantes ...............................................................................................................................6
4.4. Tipo de datos y ejemplos ...........................................................................................................................6
4.5. Estructuras secuenciales ............................................................................................................................6
4.5.1. Sentencias....................................................................................................................................................... 6
4.5.2. Llamadas a funciones ..................................................................................................................................... 7
4.5.3. Asignación....................................................................................................................................................... 7
4.5.4. Operaciones aritméticas................................................................................................................................. 7
4.6. Estructuras selectivas.................................................................................................................................7
4.6.1. Sentencia if-else: operadores de comparación y lógicos ............................................................................... 7
4.6.2. Sentencia switch............................................................................................................................................. 7
4.7. Estructuras repetitivas...............................................................................................................................8
4.7.1. Mientras (while) ............................................................................................................................................. 8
4.7.2. Hacer mientras (do-while).............................................................................................................................. 8
4.7.3. Para (for)......................................................................................................................................................... 8
4.8. Funciones..................................................................................................................................................8
4.9. Funciones recursivas..................................................................................................................................9
5. Algunos lenguajes de programación: C++, Java, JavaScript, PHP y Python.......................................................9
[PROGRAMACIÓN]
3
1. La programación en la sociedad actual.
El rol de la programación en los últimos sesenta años ha sido crucial para comprender la evolución que ha
tenido la sistematización de tareas y el manejo de la información que hoy en día damos por hecho. La
programación tiene como principal función la de conseguir que innumerables trabajos que antes ejercíamos de
forma manual y con un alto costo sean ejecutados por un ordenador con un ahorro significativo de tiempo. Por
otro lado, dada la increíble cantidad de información que actualmente se maneja para distintas tareas, la
programación es una herramienta de enorme valor porque permite manejarla con muchísima facilidad.
Con el desarrollo de las primeras computadoras, ya no solo el trabajo físico pudo reemplazarse por máquinas,
sino también el trabajo intelectual. En efecto, las computadoras pueden realizar cada vez con mayor poder cifras
enormes de cálculos complejos que tienen la posibilidad de procesar y generar datos para el beneficio humano.
La programación, en particular, es la adaptación de ese potencial de las computadoras a las necesidades del
hombre, generando distintos procesos automáticos que generan resultados que sirven desde diversos aspectos,
como por ejemplo el laboral, el estético, el lúdico, etc.
2. Creación de un programa informático: ciclo de vida del software.
Un programa viene definido como un proyecto o planificación organizada de las distintas partes o
actividades que componen algo que se va a realizar. Al conjunto de instrucciones y reglas ordenadas que guían el
desarrollo de estas actividades se denomina algoritmo.
Un programa informático, por ello, es un conjunto de instrucciones escritas en un lenguaje de programación
para que un ordenador lo pueda entender. Basada en el uso de algoritmos, la creación de un programa
informático sigue diferentes fases conocidas como Ciclo de vida del software:
2.1. Análisis del problema.
Se hace un estudio detallado del problema a resolver, lo cual
requiere un análisis exhaustivo del mismo para conocer las
propiedades y restricciones que debe tener el programa
desarrollado. Por ejemplo, a quién va dirigido el software, para qué
plataformas se desarrollará, qué resultados se desea obtener etc.
2.2. Diseño de algoritmos
Esta fase cosiste en la creación de algoritmos que permitan
resolver el problema. Con el fin de representarlos, se utilizan
diagramas de flujo y pseudocódigos.
[PROGRAMACIÓN]
4
2.3. Codificación del programa
Para traducir el lenguaje algorítmico a un lenguaje de programación que el ordenador pueda entender, se
utiliza la codificación, o instrucciones que se almacenan en ficheros denominados código fuente, que se traducen
a programas ejecutables.
2.4. Pruebas y depuración
Debemos someter nuestro programa a una serie de pruebas para detectar posibles errores, en caso de
hacerlo, debe corregirse antes de crear el programa ejecutable definitivo. Las actualizaciones corrigen errores
que se han detectado en las aplicaciones después de su lanzamiento.
2.5. Documentación
Durante la programación es importante añadir comentarios al código fuente con el objeto de clarificar y
explicar cada elemento del programa. Esta documentación sirve para hacer más comprensible el código.
3. Diseño de algoritmos
Para solucionar un problema es necesario:
 Entender el problema, analizando toda la información de la que se disponga.
 Trazar un plan, escogiendo alguna estrategia de resolución: ensayo/error, heurística,
algoritmo, descomposición del problema, etc.
 Ejecutar un plan, llevando a cabo las operaciones en el orden establecido.
 Revisar cada fase y comprobar que la solución es la apropiada.
3.1. Algoritmo: definición y características que deben cumplir
Un algoritmo es un conjunto de instrucciones o reglas establecidas que, por medio de una sucesión de
pasos, permite solucionar un problema determinado.
Los pasos de todo algoritmo deben ser los siguientes:
 Finitos. Solamente hay un inicio y un final, de forma que el
algoritmo debe estar constituido por un conjunto
determinado de pasos.
 Definidos. Si se aplica el algoritmo varias veces, para los mismos datos de entrada,
se debe obtener siempre el mismo resultado.
[PROGRAMACIÓN]
5
 Precisos. Establece claramente los pasos a seguir, sin posibilidad de ambigüedad en ningún
momento.
3.2. Diagramas de flujo: símbolos utilizados
Es la representación gráfica de un algoritmo. Cuando este diagrama incluye símbolos específicos para
su resolución con un ordenador, también se le denomina ordinograma.
Líneas de flujo: indican la secuencia en laque se van a ejecutar los pasos del algoritmo.
Terminal: se utiliza para representar el inicio y el final de la tarea a realizar. También puede representar una
pausa o interrupción.
Proceso: representa una o varias instrucciones que se realizan de forma secuencial.
No Decisión: se usa para representar una operación lógica o una comparación de datos para que, en función
del resultado, se siga por un camino u otro. Lo normal es que tenga dos salidas, pero puede tener más, en cuyo
caso se denomina «decisión múltiple».
Función: es un módulo independiente que realiza una tarea determinada Permite agrupar varias instrucciones
que se realizan de forma repetitiva. Por ejemplo, dibujar un círculo a partir de su radio.
Entrada/Salida: simboliza la introducción de datos o la salida de información a través de cualquier medio. En el
caso de un sistema informático se puede sustituir por cualquiera de los siguientes periféricos:
3.3. Pseudocódigo
El pseudocódigo se utiliza para describir un algoritmo en lenguaje natural. Aunque no existen reglas para
su escritura, se suelen utilizar expresiones similares a las de los lenguajes de programación pero que cualquier
usuario puede entender sin dificultad.
4. Lenguajes de programación
Son conjuntos de reglas y símbolos que se utilizan para codificar las instrucciones de los programas de
ordenador. Estas instrucciones se traducen al lenguaje binario que el ordenador es capaz de entender.
4.1. Evolución histórica de los lenguajes
Primera generación: Los primeros ordenadores se programaban directamente en código binario (0,1).
Cada ordenador tenía que ser programado utilizando un conjunto de instrucciones específicas.
Segunda generación: Lenguaje ensamblador, que utilizaba instrucciones sencillas, en lugar del código
binario, de modo que los programas eran más legibles utilizando un traductor para convertir cada instrucción a
su equivalente en lenguaje máquina.
Tercera generación: Lenguajes de alto nivel que sustituyen las instrucciones simbólicas por códigos
independientes de la máquina y mucho más cercanos al lenguaje natural. La mayoría de lenguajes de esta
[PROGRAMACIÓN]
6
generación siguen el paradigma de la programación estructurada, basada en que todo programa puede escribirse
utilizando únicamente instrucciones secuenciales, selectivas y repetitivas. Algunos ejemplos son Pascal, Ada, C,
etc. .
Cuarta generación: Programación orientada a objeto, modalidad de programación más cercana a la vida
real, ya que los programas se escriben en términos de objetos sobre los que se realizan acciones y que
interaccionan mediante el envío de mensajes entre ellos. Por ejemplo, Java o JavaScript.
Quinta generación: Lenguaje natural o inteligencia artificial, que se basa en el uso del lenguaje natural, o
muy similar, para describir problemas que, utilizando técnicas de inteligencia artificial, el ordenador es capaz de
resolver. Destacan lenguajes como Prolog y Lisp.
4.2. Sintaxis de los lenguajes de programación
Es el conjunto de reglas que se deben seguir al escribir el código fuente. Gran parte de los lenguajes de
programación utilizan secuencias de texto que incluyen palabras, números y signos de puntuación. Por otra
parte, los lenguajes visuales utilizan recursos gráficos para crear los programas.
Para realizar las diferentes construcciones de órdenes, los lenguajes suelen utilizar variables, constantes,
estructuras secuenciales, bucles, funciones, etc.
4.3. Variables y constantes
Tal y como ocurre en la vida real, los datos pueden ser de distinta naturaleza: numéricos, alfanuméricos,
lógicos, fechas, etc. Si un dato no va a cambiar durante la ejecución del programa se puede definir como
constante, mientras que los datos cuyos valores pueden cambiar son variables.
4.4. Tipo de datos y ejemplos
Los lenguajes de programación proporcionan un conjunto de tipos de datos que indican al ordenador las
características del dato que contienen. Los tipos básicos son:
 Entero: Representa los números enteros. En algunos lenguajes hay diferentes tipos de variables
según la magnitud del número a guardar.
 Real: Podrá almacenar números decimales. En algunos lenguajes hay varios tipos según la magnitud
del número a guardar y de la precisión que se quiera tener.
 Carácter: Es un dígito que puede ser numérico (O al 9), una letra (az, AZ) o un símbolo.
 Booleano: Se emplea para valores lógicos, por lo que su valor es verdadero o falso.
 Cadena: Almacena una cadena de caracteres de longitud variable.
 Array: Almacena un conjunto de elementos de tipo variable.
4.5. Estructuras secuenciales
Son técnicas que facilitan la tarea de programar, utilizando ciertas estructuras básicas, que se podrían
clasificar en estructuras secuenciales, estructuras selectivas y estructuras repetitivas.
4.5.1. Sentencias
Son instrucciones que realizan acciones. Cada sentencia suele colocarse en una línea del programa,
seguida de un punto y coma (;). Para agrupar un conjunto de sentencias, que se ejecutan en bloque, se utilizan las
llaves {}.
[PROGRAMACIÓN]
7
4.5.2. Llamadas a funciones
Ejecutan instrucciones que se encuentran fuera del programa, ya sea en una biblioteca o en otra parte
del programa. Por ejemplo:
Máximo - Común - Divisor (8,4, 10, 29, 12, 18)
4.5.3. Asignación
Permite el almacenamiento de un valor en una variable o una constante. La asignación se realiza con el
símbolo igual (=), por lo que es importante no confundirlo con el operador de comparación igual a (==).
4.5.4. Operaciones aritméticas
Realizan sumas, restas, productos, divisiones y calculan el resto (+, *, /, %).
4.6. Estructuras selectivas
Las estructuras selectivas, también conocidas como condicionales o de control, se utilizan para tomar
decisiones lógicas. En ellas se evalúa una condición y, en función del resultado de esta, se realizan unas u otras
acciones.
4.6.1. Sentencia if-else: operadores de comparación y lógicos
La estructura de selección if permite realizar una acción concreta en caso de cumplirse una condición; si
no se cumpliera la condición, el programa seguiría con la siguiente sentencia sin haber realizado ninguna acción.
Si hay dos sentencias condicionales que se ejecutarán de forma secuencial; podría ocurrir que
se realizaran las dos sentencias, solo alguna o ninguna.
Como alternativa, se puede utilizarla sentencia if-else, de modo que si la condición evaluada es
verdadera, se ejecutan las sentencias del bloque if, y en caso de ser falsa, las del bloque else.
4.6.2. Sentencia switch
La sentencia switch se utiliza para las decisiones múltiples, es decir, cuando la evaluación de una
expresión puede dar como resultado varios valores. Es equivalente a utilizar varios if-else anidados. Por ejemplo:
Operador Expresión Equivalencia Descripción
[PROGRAMACIÓN]
8
4.7. Estructuras repetitivas
Las estructuras repetitivas, también denominadas bucles, se utilizan para repetirla ejecución de un
determinado grupo de sentencias, dependiendo de determinadas condiciones.
4.7.1. Mientras (while)
Mientras tiene como propósito repetir un bloque de sentencias mientras se cumpla una condición. La
evaluación de la condición se realiza antes de la ejecución de las sentencias, de modo que:
 Si es verdadera, las sentencias se realizan y se vuelve a evaluar la condición.
 Si es falsa, la estructura Mientras finaliza y el control pasa a la siguiente instrucción del programa.
4.7.2. Hacer mientras (do-while)
La estructura Hacer-Mientras tiene como propósito repetir un bloque de sentencias mientras
se cumpla una condición. La condición se evalúa al final de las sentencias, de modo que:
 Si es verdadera, las sentencias se vuelven a repetir.
 Si es falsa, la estructura Hacer-Mientras finaliza y el control pasa a la siguiente
instrucción del programa.
4.7.3. Para (for)
La estructura for permite fijar el número de veces que se ha de repetir un bloque de
sentencias. Para ello, se utiliza un contador que comienza con un valor inicial que incrementa o
disminuye en cada iteración del bucle, La estructura finaliza cuando se deje de cumplir una condición.
4.8. Funciones
La herramienta fundamental para abordar la solución de problemas complejos es la abstracción,
con la que se puede tratar un problema identificando sus elementos fundamentales y sin entrar en
detalles secundarios. En programación, la abstracción permite disponer de funciones que pueden ser
utilizadas en los programas.
Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general,
toman ciertos valores de entrada llamados parámetros y proporcionan un valor de salida (return),
aunque ambos son opcionales y pueden no existir.
switch(expresión){
case (valor)1:
sentencia 1;
break;
case (valor)2:
sentencia2;
break;
default;
sentencia3;
}
[PROGRAMACIÓN]
9
Para utilizarlas, es suficiente con incluir el nombre de la librería con directivas como #include, no
obstante, cada programador puede añadir las funciones que desee en su aplicación.
4.9. Funciones recursivas
Una función recursiva es aquella que se llama a sí misma para resolverse. En cada llamada varían
los parámetros y se obtienen los resultados necesarios para resolver la función inicial.
Un ejemplo típico de recursividad es la resolución del factorial de un número. Por ejemplo:
5. Algunos lenguajes de programación: C++, Java, JavaScript, PHP y
Python.
C++: es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup.
La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que
permitieran la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes
orientados a objetos, el C++ es un lenguaje híbrido.
Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos
paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a
objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.
En la actualidad, el C++ es un lenguaje versátil, potente y general. Su éxito entre los programadores
profesionales le ha llevado a ocupar el primer puesto como herramienta de desarrollo de aplicaciones.
Java: es un lenguaje de programación y una plataforma informática comercializada por primera
vez en 1995 por Sun Microsystems. Java es rápido, seguro y fiable. Desde portátiles hasta centros de
datos, desde consolas para juegos hasta súper computadoras, desde teléfonos móviles hasta Internet,
Java está en todas partes.
La intención de Sun era crear un lenguaje con una estructura y una sintaxis similar a C y C++,
aunque con un modelo de objetos más simple y eliminando las herramientas de bajo nivel.
Los pilares en los que se sustenta Java son: la programación orientada a objetos, la posibilidad de
ejecutar un mismo programa en diversos sistemas operativos, la inclusión por defecto de soporte para
trabajo en red, la opción de ejecutar el código en sistemas remotos de manera segura y la facilidad de
uso.
Función factorial (n)
si n> 1 entonces
factorial = n *factorial (n-1)
sino
factorial = 1
Fin función
…
…
X = factorial (4)
…
[PROGRAMACIÓN]
10
JavaScript: es un lenguaje que puede ser utilizado por profesionales y para quienes se inician en
el desarrollo y diseño de sitios web. No requiere de compilación ya que el lenguaje funciona del lado del
cliente, los navegadores son los encargados de interpretar estos códigos.
Muchos confunden el Javascript con el Java pero ambos lenguajes son diferentes y tienes sus
características singulares. Javascript tiene la ventaja de ser incorporado en cualquier página web, puede
ser ejecutado sin la necesidad de instalar otro programa para ser visualizado.
Es un lenguaje con muchas posibilidades, utilizado para crear pequeños programas que luego son
insertados en una página web y en programas más grandes, orientados a objetos mucho más
complejos. Con Javascript podemos crear diferentes efectos e interactuar con nuestros usuarios.
Este lenguaje posee varias características, entre ellas podemos mencionar que es un lenguaje
basado en acciones que posee menos restricciones.
PHP: es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede
ser incrustado en HTML. Código abierto significa que es de uso libre y gratuito para todos los
programadores que quieran usarlo. Incrustado en HTML significa que en un mismo archivo vamos a
poder combinar código PHP con código HTML, siguiendo unas reglas.
PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática a
aquella cuyos contenidos permanecen siempre igual, mientras que llamamos páginas dinámicas a
aquellas cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base
a los cambios que haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc.
Python: es un lenguaje de scripting independiente de plataforma y orientado a objetos,
preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o
incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código
fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes
como una menor velocidad.
En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:
 La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio
lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas
desde cero.
 La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener
de 3 a 5 líneas de código menos que su equivalente en Java o C.
 La cantidad de plataformas en las que podemos desarrollar, como Unix, Windows, OS/2, Mac,
Amiga y otros.
 Además, Python es gratuito, incluso para propósitos empresariales.

Programacio nfin

  • 1.
    2018 2ºBACH B TIC IIAndrea Azaña-Sanz López y José Domingo Gómez Martínez [PROGRAMACIÓN]
  • 2.
    [PROGRAMACIÓN] 2 Contenido 1. La programaciónen la sociedad actual. .........................................................................................................3 2. Creación de un programa informático: ciclo de vida del software...................................................................3 2.1. Análisis del problema.................................................................................................................................3 2.2. Diseño de algoritmos.................................................................................................................................3 2.3. Codificación del programa..........................................................................................................................4 2.4. Pruebas y depuración ................................................................................................................................4 2.5. Documentación .........................................................................................................................................4 3. Diseño de algoritmos....................................................................................................................................4 3.1. Algoritmo: definición y características que deben cumplir...........................................................................4 3.2. Diagramas de flujo: símbolos utilizados......................................................................................................5 3.3. Pseudocódigo............................................................................................................................................5 4. Lenguajes de programación ..........................................................................................................................5 4.1. Evolución histórica de los lenguajes............................................................................................................5 4.2. Sintaxis de los lenguajes de programación..................................................................................................6 4.3. Variables y constantes ...............................................................................................................................6 4.4. Tipo de datos y ejemplos ...........................................................................................................................6 4.5. Estructuras secuenciales ............................................................................................................................6 4.5.1. Sentencias....................................................................................................................................................... 6 4.5.2. Llamadas a funciones ..................................................................................................................................... 7 4.5.3. Asignación....................................................................................................................................................... 7 4.5.4. Operaciones aritméticas................................................................................................................................. 7 4.6. Estructuras selectivas.................................................................................................................................7 4.6.1. Sentencia if-else: operadores de comparación y lógicos ............................................................................... 7 4.6.2. Sentencia switch............................................................................................................................................. 7 4.7. Estructuras repetitivas...............................................................................................................................8 4.7.1. Mientras (while) ............................................................................................................................................. 8 4.7.2. Hacer mientras (do-while).............................................................................................................................. 8 4.7.3. Para (for)......................................................................................................................................................... 8 4.8. Funciones..................................................................................................................................................8 4.9. Funciones recursivas..................................................................................................................................9 5. Algunos lenguajes de programación: C++, Java, JavaScript, PHP y Python.......................................................9
  • 3.
    [PROGRAMACIÓN] 3 1. La programaciónen la sociedad actual. El rol de la programación en los últimos sesenta años ha sido crucial para comprender la evolución que ha tenido la sistematización de tareas y el manejo de la información que hoy en día damos por hecho. La programación tiene como principal función la de conseguir que innumerables trabajos que antes ejercíamos de forma manual y con un alto costo sean ejecutados por un ordenador con un ahorro significativo de tiempo. Por otro lado, dada la increíble cantidad de información que actualmente se maneja para distintas tareas, la programación es una herramienta de enorme valor porque permite manejarla con muchísima facilidad. Con el desarrollo de las primeras computadoras, ya no solo el trabajo físico pudo reemplazarse por máquinas, sino también el trabajo intelectual. En efecto, las computadoras pueden realizar cada vez con mayor poder cifras enormes de cálculos complejos que tienen la posibilidad de procesar y generar datos para el beneficio humano. La programación, en particular, es la adaptación de ese potencial de las computadoras a las necesidades del hombre, generando distintos procesos automáticos que generan resultados que sirven desde diversos aspectos, como por ejemplo el laboral, el estético, el lúdico, etc. 2. Creación de un programa informático: ciclo de vida del software. Un programa viene definido como un proyecto o planificación organizada de las distintas partes o actividades que componen algo que se va a realizar. Al conjunto de instrucciones y reglas ordenadas que guían el desarrollo de estas actividades se denomina algoritmo. Un programa informático, por ello, es un conjunto de instrucciones escritas en un lenguaje de programación para que un ordenador lo pueda entender. Basada en el uso de algoritmos, la creación de un programa informático sigue diferentes fases conocidas como Ciclo de vida del software: 2.1. Análisis del problema. Se hace un estudio detallado del problema a resolver, lo cual requiere un análisis exhaustivo del mismo para conocer las propiedades y restricciones que debe tener el programa desarrollado. Por ejemplo, a quién va dirigido el software, para qué plataformas se desarrollará, qué resultados se desea obtener etc. 2.2. Diseño de algoritmos Esta fase cosiste en la creación de algoritmos que permitan resolver el problema. Con el fin de representarlos, se utilizan diagramas de flujo y pseudocódigos.
  • 4.
    [PROGRAMACIÓN] 4 2.3. Codificación delprograma Para traducir el lenguaje algorítmico a un lenguaje de programación que el ordenador pueda entender, se utiliza la codificación, o instrucciones que se almacenan en ficheros denominados código fuente, que se traducen a programas ejecutables. 2.4. Pruebas y depuración Debemos someter nuestro programa a una serie de pruebas para detectar posibles errores, en caso de hacerlo, debe corregirse antes de crear el programa ejecutable definitivo. Las actualizaciones corrigen errores que se han detectado en las aplicaciones después de su lanzamiento. 2.5. Documentación Durante la programación es importante añadir comentarios al código fuente con el objeto de clarificar y explicar cada elemento del programa. Esta documentación sirve para hacer más comprensible el código. 3. Diseño de algoritmos Para solucionar un problema es necesario:  Entender el problema, analizando toda la información de la que se disponga.  Trazar un plan, escogiendo alguna estrategia de resolución: ensayo/error, heurística, algoritmo, descomposición del problema, etc.  Ejecutar un plan, llevando a cabo las operaciones en el orden establecido.  Revisar cada fase y comprobar que la solución es la apropiada. 3.1. Algoritmo: definición y características que deben cumplir Un algoritmo es un conjunto de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permite solucionar un problema determinado. Los pasos de todo algoritmo deben ser los siguientes:  Finitos. Solamente hay un inicio y un final, de forma que el algoritmo debe estar constituido por un conjunto determinado de pasos.  Definidos. Si se aplica el algoritmo varias veces, para los mismos datos de entrada, se debe obtener siempre el mismo resultado.
  • 5.
    [PROGRAMACIÓN] 5  Precisos. Establececlaramente los pasos a seguir, sin posibilidad de ambigüedad en ningún momento. 3.2. Diagramas de flujo: símbolos utilizados Es la representación gráfica de un algoritmo. Cuando este diagrama incluye símbolos específicos para su resolución con un ordenador, también se le denomina ordinograma. Líneas de flujo: indican la secuencia en laque se van a ejecutar los pasos del algoritmo. Terminal: se utiliza para representar el inicio y el final de la tarea a realizar. También puede representar una pausa o interrupción. Proceso: representa una o varias instrucciones que se realizan de forma secuencial. No Decisión: se usa para representar una operación lógica o una comparación de datos para que, en función del resultado, se siga por un camino u otro. Lo normal es que tenga dos salidas, pero puede tener más, en cuyo caso se denomina «decisión múltiple». Función: es un módulo independiente que realiza una tarea determinada Permite agrupar varias instrucciones que se realizan de forma repetitiva. Por ejemplo, dibujar un círculo a partir de su radio. Entrada/Salida: simboliza la introducción de datos o la salida de información a través de cualquier medio. En el caso de un sistema informático se puede sustituir por cualquiera de los siguientes periféricos: 3.3. Pseudocódigo El pseudocódigo se utiliza para describir un algoritmo en lenguaje natural. Aunque no existen reglas para su escritura, se suelen utilizar expresiones similares a las de los lenguajes de programación pero que cualquier usuario puede entender sin dificultad. 4. Lenguajes de programación Son conjuntos de reglas y símbolos que se utilizan para codificar las instrucciones de los programas de ordenador. Estas instrucciones se traducen al lenguaje binario que el ordenador es capaz de entender. 4.1. Evolución histórica de los lenguajes Primera generación: Los primeros ordenadores se programaban directamente en código binario (0,1). Cada ordenador tenía que ser programado utilizando un conjunto de instrucciones específicas. Segunda generación: Lenguaje ensamblador, que utilizaba instrucciones sencillas, en lugar del código binario, de modo que los programas eran más legibles utilizando un traductor para convertir cada instrucción a su equivalente en lenguaje máquina. Tercera generación: Lenguajes de alto nivel que sustituyen las instrucciones simbólicas por códigos independientes de la máquina y mucho más cercanos al lenguaje natural. La mayoría de lenguajes de esta
  • 6.
    [PROGRAMACIÓN] 6 generación siguen elparadigma de la programación estructurada, basada en que todo programa puede escribirse utilizando únicamente instrucciones secuenciales, selectivas y repetitivas. Algunos ejemplos son Pascal, Ada, C, etc. . Cuarta generación: Programación orientada a objeto, modalidad de programación más cercana a la vida real, ya que los programas se escriben en términos de objetos sobre los que se realizan acciones y que interaccionan mediante el envío de mensajes entre ellos. Por ejemplo, Java o JavaScript. Quinta generación: Lenguaje natural o inteligencia artificial, que se basa en el uso del lenguaje natural, o muy similar, para describir problemas que, utilizando técnicas de inteligencia artificial, el ordenador es capaz de resolver. Destacan lenguajes como Prolog y Lisp. 4.2. Sintaxis de los lenguajes de programación Es el conjunto de reglas que se deben seguir al escribir el código fuente. Gran parte de los lenguajes de programación utilizan secuencias de texto que incluyen palabras, números y signos de puntuación. Por otra parte, los lenguajes visuales utilizan recursos gráficos para crear los programas. Para realizar las diferentes construcciones de órdenes, los lenguajes suelen utilizar variables, constantes, estructuras secuenciales, bucles, funciones, etc. 4.3. Variables y constantes Tal y como ocurre en la vida real, los datos pueden ser de distinta naturaleza: numéricos, alfanuméricos, lógicos, fechas, etc. Si un dato no va a cambiar durante la ejecución del programa se puede definir como constante, mientras que los datos cuyos valores pueden cambiar son variables. 4.4. Tipo de datos y ejemplos Los lenguajes de programación proporcionan un conjunto de tipos de datos que indican al ordenador las características del dato que contienen. Los tipos básicos son:  Entero: Representa los números enteros. En algunos lenguajes hay diferentes tipos de variables según la magnitud del número a guardar.  Real: Podrá almacenar números decimales. En algunos lenguajes hay varios tipos según la magnitud del número a guardar y de la precisión que se quiera tener.  Carácter: Es un dígito que puede ser numérico (O al 9), una letra (az, AZ) o un símbolo.  Booleano: Se emplea para valores lógicos, por lo que su valor es verdadero o falso.  Cadena: Almacena una cadena de caracteres de longitud variable.  Array: Almacena un conjunto de elementos de tipo variable. 4.5. Estructuras secuenciales Son técnicas que facilitan la tarea de programar, utilizando ciertas estructuras básicas, que se podrían clasificar en estructuras secuenciales, estructuras selectivas y estructuras repetitivas. 4.5.1. Sentencias Son instrucciones que realizan acciones. Cada sentencia suele colocarse en una línea del programa, seguida de un punto y coma (;). Para agrupar un conjunto de sentencias, que se ejecutan en bloque, se utilizan las llaves {}.
  • 7.
    [PROGRAMACIÓN] 7 4.5.2. Llamadas afunciones Ejecutan instrucciones que se encuentran fuera del programa, ya sea en una biblioteca o en otra parte del programa. Por ejemplo: Máximo - Común - Divisor (8,4, 10, 29, 12, 18) 4.5.3. Asignación Permite el almacenamiento de un valor en una variable o una constante. La asignación se realiza con el símbolo igual (=), por lo que es importante no confundirlo con el operador de comparación igual a (==). 4.5.4. Operaciones aritméticas Realizan sumas, restas, productos, divisiones y calculan el resto (+, *, /, %). 4.6. Estructuras selectivas Las estructuras selectivas, también conocidas como condicionales o de control, se utilizan para tomar decisiones lógicas. En ellas se evalúa una condición y, en función del resultado de esta, se realizan unas u otras acciones. 4.6.1. Sentencia if-else: operadores de comparación y lógicos La estructura de selección if permite realizar una acción concreta en caso de cumplirse una condición; si no se cumpliera la condición, el programa seguiría con la siguiente sentencia sin haber realizado ninguna acción. Si hay dos sentencias condicionales que se ejecutarán de forma secuencial; podría ocurrir que se realizaran las dos sentencias, solo alguna o ninguna. Como alternativa, se puede utilizarla sentencia if-else, de modo que si la condición evaluada es verdadera, se ejecutan las sentencias del bloque if, y en caso de ser falsa, las del bloque else. 4.6.2. Sentencia switch La sentencia switch se utiliza para las decisiones múltiples, es decir, cuando la evaluación de una expresión puede dar como resultado varios valores. Es equivalente a utilizar varios if-else anidados. Por ejemplo: Operador Expresión Equivalencia Descripción
  • 8.
    [PROGRAMACIÓN] 8 4.7. Estructuras repetitivas Lasestructuras repetitivas, también denominadas bucles, se utilizan para repetirla ejecución de un determinado grupo de sentencias, dependiendo de determinadas condiciones. 4.7.1. Mientras (while) Mientras tiene como propósito repetir un bloque de sentencias mientras se cumpla una condición. La evaluación de la condición se realiza antes de la ejecución de las sentencias, de modo que:  Si es verdadera, las sentencias se realizan y se vuelve a evaluar la condición.  Si es falsa, la estructura Mientras finaliza y el control pasa a la siguiente instrucción del programa. 4.7.2. Hacer mientras (do-while) La estructura Hacer-Mientras tiene como propósito repetir un bloque de sentencias mientras se cumpla una condición. La condición se evalúa al final de las sentencias, de modo que:  Si es verdadera, las sentencias se vuelven a repetir.  Si es falsa, la estructura Hacer-Mientras finaliza y el control pasa a la siguiente instrucción del programa. 4.7.3. Para (for) La estructura for permite fijar el número de veces que se ha de repetir un bloque de sentencias. Para ello, se utiliza un contador que comienza con un valor inicial que incrementa o disminuye en cada iteración del bucle, La estructura finaliza cuando se deje de cumplir una condición. 4.8. Funciones La herramienta fundamental para abordar la solución de problemas complejos es la abstracción, con la que se puede tratar un problema identificando sus elementos fundamentales y sin entrar en detalles secundarios. En programación, la abstracción permite disponer de funciones que pueden ser utilizadas en los programas. Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general, toman ciertos valores de entrada llamados parámetros y proporcionan un valor de salida (return), aunque ambos son opcionales y pueden no existir. switch(expresión){ case (valor)1: sentencia 1; break; case (valor)2: sentencia2; break; default; sentencia3; }
  • 9.
    [PROGRAMACIÓN] 9 Para utilizarlas, essuficiente con incluir el nombre de la librería con directivas como #include, no obstante, cada programador puede añadir las funciones que desee en su aplicación. 4.9. Funciones recursivas Una función recursiva es aquella que se llama a sí misma para resolverse. En cada llamada varían los parámetros y se obtienen los resultados necesarios para resolver la función inicial. Un ejemplo típico de recursividad es la resolución del factorial de un número. Por ejemplo: 5. Algunos lenguajes de programación: C++, Java, JavaScript, PHP y Python. C++: es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitieran la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma. En la actualidad, el C++ es un lenguaje versátil, potente y general. Su éxito entre los programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de desarrollo de aplicaciones. Java: es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems. Java es rápido, seguro y fiable. Desde portátiles hasta centros de datos, desde consolas para juegos hasta súper computadoras, desde teléfonos móviles hasta Internet, Java está en todas partes. La intención de Sun era crear un lenguaje con una estructura y una sintaxis similar a C y C++, aunque con un modelo de objetos más simple y eliminando las herramientas de bajo nivel. Los pilares en los que se sustenta Java son: la programación orientada a objetos, la posibilidad de ejecutar un mismo programa en diversos sistemas operativos, la inclusión por defecto de soporte para trabajo en red, la opción de ejecutar el código en sistemas remotos de manera segura y la facilidad de uso. Función factorial (n) si n> 1 entonces factorial = n *factorial (n-1) sino factorial = 1 Fin función … … X = factorial (4) …
  • 10.
    [PROGRAMACIÓN] 10 JavaScript: es unlenguaje que puede ser utilizado por profesionales y para quienes se inician en el desarrollo y diseño de sitios web. No requiere de compilación ya que el lenguaje funciona del lado del cliente, los navegadores son los encargados de interpretar estos códigos. Muchos confunden el Javascript con el Java pero ambos lenguajes son diferentes y tienes sus características singulares. Javascript tiene la ventaja de ser incorporado en cualquier página web, puede ser ejecutado sin la necesidad de instalar otro programa para ser visualizado. Es un lenguaje con muchas posibilidades, utilizado para crear pequeños programas que luego son insertados en una página web y en programas más grandes, orientados a objetos mucho más complejos. Con Javascript podemos crear diferentes efectos e interactuar con nuestros usuarios. Este lenguaje posee varias características, entre ellas podemos mencionar que es un lenguaje basado en acciones que posee menos restricciones. PHP: es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede ser incrustado en HTML. Código abierto significa que es de uso libre y gratuito para todos los programadores que quieran usarlo. Incrustado en HTML significa que en un mismo archivo vamos a poder combinar código PHP con código HTML, siguiendo unas reglas. PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática a aquella cuyos contenidos permanecen siempre igual, mientras que llamamos páginas dinámicas a aquellas cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base a los cambios que haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc. Python: es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad. En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:  La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero.  La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener de 3 a 5 líneas de código menos que su equivalente en Java o C.  La cantidad de plataformas en las que podemos desarrollar, como Unix, Windows, OS/2, Mac, Amiga y otros.  Además, Python es gratuito, incluso para propósitos empresariales.