2. Índice
Contenido
1 La programación en la sociedad actual...................................................................1
2 Creación de un programa informático: ciclo de vida del software ..........................1
2.1 Análisis del problema......................................................................................1
2.2 Diseño de algoritmos ......................................................................................1
2.3 Codificación del programa ..............................................................................1
2.4 Pruebas y depuración .....................................................................................1
2.5 Documentación ..............................................................................................1
3 Diseño de algoritmos .............................................................................................2
3.1 Algoritmo: definición y características que deben cumplir ..............................2
3.2 Diagramas de flujo: símbolos utilizados ..........................................................2
3.3 Pseudocódigo .................................................................................................3
4 Lenguajes de programación ...................................................................................3
4.1 Evolución histórica de los lenguajes ................................................................3
4.2 Sintaxis de los lenguajes de programación ......................................................4
4.3 Variables y constantes ....................................................................................4
4.4 Tipo de datos y ejemplos ................................................................................5
4.5 Estructuras secuenciales .................................................................................6
3. Programación TIC 2
1
1 La programación en la sociedad actual
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 como un hecho.
2 Creación de un programa informático: ciclo de vida del software
El desarrollo de un programa o de un conjunto de aplicaciones se basa en un concepto
llamado ciclo de vida, se compone en diferentes etapas.
2.1 Análisis del problema
En esta fase se especifican los procesos y estructuras de datos que se van a emplear en el
producto. En el análisis se emplean varias técnicas tales como: diagramas de flujo de datos,
modelos de datos, diccionario de datos, definición de los interfaces de usuario…
2.2 Diseño de algoritmos
En el diseño se alcanza con mayor precisión una solución óptima de la aplicación, teniendo
en cuentas los recursos físicos del sistema y los recursos lógicos. Hay varias etapas: diseño
externo, diseño de datos, diseño modular y diseño procedimental.
2.3 Codificación del programa
Es el proceso por el cual se traducen los resultados obtenidos a un determinado lenguaje de
programación.
2.4 Pruebas y depuración
Se deben realizar una serie de pruebas para comprobar la calidad y estabilidad del
programa:
·Pruebas unitarias: comprueban que cada módulo realice bien su tarea.
·Pruebas de interconexión: comprueban el buen funcionamiento en conjunto de todos sus
módulos en el programa.
·Pruebas de integración: comprueban el funcionamiento correcto del conjunto de
programas que forman la aplicación.
La depuración de programas es el proceso de identificar y corregir errores de programación.
2.5 Documentación
La documentación para el usuario constituye un elemento de consulta para toda aquella
persona que va a usar el programa por primera vez o que trata de saber si el programa
servirá a sus objetivos.
4. Programación TIC 2
2
3 Diseño de algoritmos
3.1 Algoritmo: definición y características que deben cumplir
Algoritmo: es un conjunto ordenado de operaciones sistemáticas que permite hacer un
cálculo y hallar la solución de un tipo de problemas.
Características:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso, debe estar
definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito y debe terminar en algún momento; o sea, debe tener un
número finito de pasos.
Un algoritmo debe ser legible: el texto que lo describe debe ser claro, tal que permita
entenderlo y leerlo fácilmente.
3.2 Diagramas de flujo: símbolos utilizados
Los diagramas de flujo usan formas especiales para representar diferentes tipos de acciones
o pasos en un proceso. Estos símbolos son líneas y flechas que muestran la secuencia de los
pasos y la relación entre ellos.
5. Programación TIC 2
3
3.3 Pseudocódigo
El pseudocódigo (o falso lenguaje) es comúnmente utilizado por los programadores para
omitir secciones de código o para dar una explicación del paradigma que tomó el mismo
programador para hacer sus códigos, esto quiere decir que el pseudocódigo no es
programable sino facilita la programación.
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la
forma más detallada posible, y a su vez lo más parecida posible al lenguaje que
posteriormente se utilizará para la codificación del mismo.
El objetivo al que apunta es que quien lo pone en práctica se centre más en la solución del
algoritmo o el diseño de un software que en el programa que utiliza para crearlo. Y esto es
posible porque es más fácil de manipular ya que no tiene que tener en mente el lenguaje en
sí y además, más fácil de codificar.
4 Lenguajes de programación
4.1 Evolución histórica de los lenguajes
Primera generación. Lenguaje máquina.
Los primeros ordenadores debían ser programados directamente en código binario.
En la actualidad, todos los programas deben ser convertidos a lenguaje máquina para
que el ordenador los pueda ejecutar.
Segunda generación. Lenguaje ensamblador.
El lenguaje ensamblador utilizaba instrucciones sencillas en lugar de código binario.
Este lenguaje utiliza un traductor para convertir cada instrucción a su equivalente en
lenguaje máquina.
Tercera generación. Lenguajes de alto nivel.
Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos
independientes de la máquina y mucho más cercanos al lenguaje natural. Necesitan
un compilador para generara el programa en código máquina. La mayoría de
lenguajes de esta generación siguen el paradigma de la programación estructurada.
Cuarta generación. Programación orientada a objetos.
Es una 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. Ej: C++, C#, Java...
Quinta generación. Lenguaje natural e inteligencia artificial.
Se basan en el uso del lenguaje natural, para describir problemas que el ordenador es
capaz de resolver. Ej: Prolog y Lisp.
6. Programación TIC 2
4
4.2 Sintaxis de los lenguajes de programación
Es el conjunto de reglas que se deben seguir al escribir el código fuente, de modo que
los programas resulten sintácticamente correctos y pueda generarse posteriormente
el código máquina sin errores. Gran parte de los lenguajes de programación utilizan
palabras, números y signos de puntuación. Para realizar las diferentes órdenes, los
lenguajes utilizan variables, constantes , bucles…
4.3 Variables y constantes
Variables: una variable es un nombre asociado a un elemento de datos que está
situado en posiciones contiguas de la memoria principal, y su valor puede cambiar
durante la ejecución de un programa. Hay tres tipos: la declaración, la iniciación y la
utilización.
Constante: una constante es un dato cuyo valor no puede cambiar durante la
ejecución del programa. Recibe un valor en el momento de la compilación y este
permanece inalterado durante todo el programa. Hay tres tipos : constantes literales,
declaradas y de expresión. Las literales son valores de cualquier tipo, no tienen
nombre. Las declaradas son las que se le asigna un valor directamente y las de
expresión no se le asigna un valor directamente, sino que se les asigna una expresión.
7. Programación TIC 2
5
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 contienen. Tipos:
• Representa los números enteros. Hay diferentes tipos de variable
según la magnitud del número a guardar.
• Int edad = 18;
Dato entero
• Almacena números deciamles. Hay varios tipos según la magnitud
a guardar y de la precisiónque se quiera tener.
• Float e = 2,718281;
Dato real
• Es un dígito que puede ser numérico, una letra o un símbolo
• Char letra = "t"
Dato carácter
• Se emplea para valores lógicos, por lo que su valor puede ser o
Verdadero o Falso.
• Boolean si = false;
Dato booleano
• Almacena una cadena de carácteres de longitud variable
• String cad = "adiós";
Dato cadena
• Almacena un conjunto de elementos de tipo variable.
• Producto[2] = 40;
Dato array
8. Programación TIC 2
6
4.5 Estructuras secuenciales
Es aquella en la que la acción sigue a otra
en secuencia. La salida de una tarea es la
entrada de la siguiente.
4.5.1 Sentencias
Son instrucciones que realizan acciones. Cada una se coloca en una línea del
programa, seguida de un punto y coma. Para agruparlas, ya que se ejecutan en
bloque, se utilizan llaves.
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.
4.5.3 Asignación
La asignación consiste, en el paso de valores o resultados a una zona de la memoria.
Dicha zona será reconocida con el nombre de la variable que recibe el valor. La
asignación se puede clasificar de la siguiente forma:
Simpes: Pasa de un valor constante a una variable.
Contador: Es un verificador del número de veces que se realiza un proceso.
Acumulador: Se usa como un sumador en un proceso.
De trabajo: Recibe el resultado de una operación matemática que involucra muchas
variables.
4.5.4 Operaciones aritméticas
Realizan sumas, restas, productos, divisiones y calculan el resto.
Son necesarios una serie de operadores para modificar el valor de las variables a
partir de su valor anterior.
9. Programación TIC 2
7
4.6 Estructuras selectivas
Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que también
se conocen como estructuras de decisión o alternativas.
En las estructuras selectivas se evalúa una condición, y en función del resultado de la
misma se toma un camino u otro.
Las condiciones se establecen
usando expresiones lógicas.
La representación de una estructura
selectiva se hace con palabras (Si-
entonces-si_no), con una figura
geométrica en forma de rombo, que
incluye dos salidas. La salida que se
utiliza depende del resultado de
evaluar la expresión lógica que se
encuentra en la parte interna del
rombo.
4.6.1 Sentencia if-else: operadores de comparación y lógicos
Otro tipo de operadores fundamentales en programación son los operadores lógicos
o de comparación. Se usan para comparar dos variables o expresiones y obtener un
valor verdadero o falso. Como operadores de comparación disponemos de:
SÍMBOLO SIGNIFICADO EJEMPLO
= Igual que A = B
> Mayor que A > B
< Menor que A < B
>= Mayor o igual que A >= B
<= Menor o igual que A <= B
<> Distinto que A <> B
10. Programación TIC 2
8
4.6.2 Sentencia switch
La sentencia switch da una alternativa mucho más refinada a la necesidad de utilizar
o implementar múltiples sentencias condicionales if cuando deseamos que una
determinada variable tome diferentes valores para cada condición. Generalmente, la
sentencia switch se
implementa cuando es
necesario la utilización de
un menú de opciones ya
que el usuario deberá
escoger una de las
opciones, a esto me
refiero cuando comento
que la variable puede
tomar diferentes valores.
4.7 Estructuras repetitivas
Las estructuras repetitivas son aquellas que sirven para evitar la molestia de andar
repitiendo unas acciones varias veces. Estas sirven para que una acción se ejecute un
determinado número de veces, y depende del cumplimiento de una determinada
acciones (una condición).
4.7.1 Mientras (while)
Repite el cuerpo del bucle mientras se cumpla una determinada condición.
Mientras condición
Acción_1
Acción_2
Acción_3
Acción_n
Fin_mientras
11. Programación TIC 2
9
4.7.2 Hacer mientras (do-while)
La estructura repetir cumple la misma función que la estructura mientras. La
diferencia está en que la estructura mientras comprueba la condición al inicio y
repetir lo hace al final. Es por ello que la estructura repetir se ejecuta por lo menos
una vez.
Hacer
Acción_1
Acción_2
Acción_3
Acción_n
Mientras condición
4.7.3 Para (for)
Esta estructura ejecuta las acciones del cuerpo del bucle un número especificado de
veces, y de modo automático controla el número de iteraciones o pasos.
Desde i=0 hasta 100
Acción_1
Acción_2
Acción_3
Acción_n
Fin_desde
4.8 Funciones
El diseño de un programa resuelve un problema dividiéndolo en partes más sencillas.
La abstracción es la herramienta para abordar la solución de los problemas complejos.
Permite disponer en muchos bloques de código que pueden ser utilizados son los
programas.
Son un conjunto de instrucciones que realizan una tarea específica. Toman ciertos
valores llamados parámetros y proporcionan un valor de salida (return).
12. Programación TIC 2
10
Los lenguajes de programación incluyen un conjunto de bibliotecas con colecciones de
funciones ya programadas que facilitan el diseño. Para utilizarlas hay que incluir el
nombre de la librería con directivas.
La definición de una función se realiza de forma análoga al de una variable o
constante.
4.9 Funciones recursivas
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.
El factorial de un número se expresa con un signo de admiración debajo y es igual al
producto de todos los números naturales que hay entre n y 1.
Todas deben tener un caso base o parada.
13. Programación TIC 2
11
5 Algunos lenguajes de programación
Java JavaScript
Es un lenguaje de programación de propósito
general, utilizado tanto en aplicaciones
tradicionales de computadores como en
desarrollos web.
Es un lenguaje de programación de propósito
específico (desarrollos web)
Es un lenguaje que requiere de compilación
(traducción previa a código máquina antes de ser
ejecutado).
Es un lenguaje que no requiere de compilación al
ser interpretado directamente por los
navegadores.
Es un lenguaje que se puede considerar pesado,
potente y robusto en el sentido de que permite
hacer de todo con un gran control.
Es un lenguaje que se puede considerar ligero,
ágil y poco robusto en el sentido de que no
permite hacer todo lo que permiten otros
lenguajes.
Es un lenguaje bajo la filosofía o paradigma de
orientación a objetos completamente.
Es un lenguaje no clasificable bajo un paradigma
concreto y admite algunas formas de
programación no admitidas por Java.
Se puede utilizar tanto del lado del servidor como
del lado del cliente. Tiene su uso principal del lado
del servidor.
Se puede utilizar tanto del lado del servidor
como del lado del cliente. Tiene su uso principal
del lado del cliente.
C++
C++ es un lenguaje de propósito general,
orientado a objetos. Su punto fuerte son las
aplicaciones de escritorio, y la mayoría de
las que usas día a día están realizadas en
este lenguaje.
PHP
PHP es un lenguaje totalmente orientado a
la web, y aunque tiene cierta funcionalidad
para linea de comandos e incluso interfaz
gráfico, su punto fuerte es añadir contenido
dinámico a páginas en el servidor.
Python
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.