SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
PROGRAMACIÓN
Nerea Sánchez Moreno 2ºC
Contenido
2.1 Análisis del problema.................................................................5
2.2 Diseño de algoritmos .................................................................5
2.3 Codificación del problema...........................................................6
2.4 Pruebas y depuración ................................................................6
2.5 Documentación.........................................................................6
3.1 Algoritmo: definición y características que debe cumplir ..................8
3.2 Diagramas de flujo: símbolos utilizados ........................................9
3.3 Pseudocódigo ......................................................................... 10
4.1 Evolución histórica de los lenguajes ........................................... 11
 Primera generación: Lenguaje máquina ...................................... 11
 Segunda generación: Lenguaje ensamblador ............................... 11
 Tercera generación: Lenguajes de alto nivel ................................ 11
 Cuarta generación: Programación orientada a objetos................... 11
 Quinta generación: Lenguaje natural e inteligencia artificial ........... 12
4.2 Sintaxis de los lenguajes de programación .................................. 12
4.3 Variables y constantes ............................................................. 12
4.4 Tipos de datos........................................................................ 13
4.5 Estructuras secuenciales .......................................................... 14
 Sentencias ............................................................................. 14
 Llamadas a funciones .............................................................. 14
 Asignación ............................................................................. 14
 Operaciones aritméticas........................................................... 14
4.6 Estructuras selectivas .............................................................. 15
 Sentencia if-else ..................................................................... 15
 Sentencia switch..................................................................... 15
4.7 Estructuras repetitivas ............................................................. 15
 Mientras (while)...................................................................... 15
 Hacer-Mientras (do-while) ........................................................ 16
 Para (for) .............................................................................. 16
4.8 Funciones .............................................................................. 16
4.9 Funciones recursivas ............................................................... 16
5.1 C++ ..................................................................................... 16
5.2 Java...................................................................................... 17
5.3 JavaScript.............................................................................. 17
5.4 PHP ...................................................................................... 17
5.5 Python .................................................................................. 18
1.La programación en la sociedad actual
El propósito de la programación informática es desarrollar aplicaciones
que faciliten las tareas cotidianas, tales como hacer compras, escuchar
música, comunicarse con otros usuarios, etc.; en definitiva, mejorar
localidad de vida de la sociedad.
Para la comunicación con un ordenador se utilizan los lenguajes de
programación. Estos lenguajes son un conjunto de símbolos y reglas que,
siguiendo una estructura lógica, permiten escribir las líneas de código que
componen las aplicaciones.
En los inicios de la era informática, era necesario crear programas a partir
de un lenguaje muy complejo de ceros y unos. La evolución de los
ordenadores ha llevado consigo el desarrollo de nuevos lenguajes de
programación que permiten crear entornos de desarrollo visuales que no
requieren escribir ningún código para la creación de aplicaciones.
La tecnología necesita profesionales capaces de ampliar sus horizontes, por
lo que la tendencia actual es potenciar el pensamiento creativo y el
razonamiento sistemático a edades cada vez más tempranas. Para ello, hay
lenguajes diseñados para ser utilizados por niños y adolescentes, como
Scratch, App Inventor…
2.Creación de un programa informático
En informática, los algoritmos son la base para crear los programas. Se
denomina algoritmo al conjunto de instrucciones y reglas ordenadas que
guían el desarrollo de estas actividades.
Un programa informático es un conjunto de instrucciones, escritas en un
lenguaje de programación para que el ordenador lo pueda entender. Para
crear un programa informático se siguen diferentes fases de desarrollo
conocidas como Ciclo de vida del software:
o Análisis del problema.
o Diseño del algoritmo.
o Codificación del programa
o Pruebas y depuración
o Documentación
2.1 Análisis del problema
Consiste en hacer un estudio detallado del problema a resolver, con
la finalidad de que el resultado final coincida con lo que se esperaba.
Esta es una de las fases más complejas, ya que requiere hacer un
estudio exhaustivo del problema para conocer todas las
características, propiedades y restricciones que debe tener el
programa desarrollado.
En esta fase hay que identificar correctamente aspectos como a quién
va dirigido el software, qué debe hacer exactamente, etc.
2.2 Diseño de algoritmos
En esta fase se crean los algoritmos que permiten resolver el
problema. Para representarlos se utilizan diagramas de flujo y
pseudocódigos. Estos se basan en la utilización de símbolos gráficos
denominados bloques, en los que escribimos las acciones que tiene
que realizar el algoritmo.
2.3 Codificación del problema
Es la traducción del lenguaje algorítmico a un lenguaje de
programación que el ordenador puede entender, como Java, Python…
Para crear los programas, se utilizan entornos de desarrollo que
facilitan la escritura de las instrucciones. Estas instrucciones se
almacenan en ficheros denominados código fuente, que se traducen
con un compilador a lenguaje máquina, es decir, a programas
ejecutables.
2.4 Pruebas y depuración
Una vez escrito el programa, hay que someterlo a una serie de
pruebas para detectar posibles errores de funcionamiento. Es
importante examinar todas las opciones y posibilidades del programa,
ya que si se da por finalizada la fase de pruebas sin haber realizado
un chequeo completo, se corre el riesgo de que el programa pueda
fallar en cualquier momento durante su ejecución. En caso de
detectar algún error, este debe corregirse en el programa antes de
crear el programa ejecutable definitivo. Las actualizaciones corrigen
errores detectados en las aplicaciones tras su lanzamiento.
2.5 Documentación
Cada uno de los pasos anteriores debe llevar asociado un documento
con todas las especificaciones necesarias. 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 a otros programadores
que tengan que hacer futuras revisiones. Para ello, se suelen utilizar
símbolos como // y /*..*/.
El código de apertura es el siguiente: <!– y el cierre del comentario
se escribe así: –>
Ejemplo:
…………………………………………………………………………………………………………………
En este ejemplo se observa que los comentarios escritos no se ven.
Sólo podremos verlos a través del código fuente de la página.
3.Diseño de algoritmos
3.1 Algoritmo: definición y características que
debe cumplir
Un algoritmo es un conjunto prescrito de instrucciones o reglas
bien definidas, ordenadas y finitas que permite llevar a cabo una
actividad mediante pasos sucesivos que no generen dudas a quien
deba hacer dicha actividad. Dados un estado inicial y una entrada,
siguiendo los pasos sucesivos se llega a un estado final y se
obtiene una solución.
En términos de programación, un algoritmo es una secuencia de
pasos lógicos que permiten solucionar un problema.
Las características que debe cumplir todo algoritmo son:
 Un algoritmo debe ser preciso e indicar el orden de
realización de cada paso.
 Un algoritmo debe estar definido. Si se sigue un
algoritmo dos veces, se debe obtener el mismo resultado
cada vez.
 Un algoritmo debe ser finito. el algoritmo se debe
terminar en algún momento; o sea, debe tener un número
finito de pasos.
 Un algoritmo debe ser legible. El texto que describe debe
ser claro, tal que permita leerlo y entenderlo fácilmente.
Los diagramas de flujo sirven
para representar algoritmos de
manera gráfica
3.2 Diagramas de flujo: símbolos utilizados
El diagrama de flujo 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 la que 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.
 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. Si tiene más de 2 salidas se
denomina decisión múltiple.
 Función: es un modelo independiente que realiza una tarea
determinada. Permite agrupar varias instrucciones que se
realizan de forma repetitiva.
 Entrada/Salida: simboliza la introducción de datos o la salida
de 9información a través de cualquier medio.
3.3 Pseudocódigo
El pseudocódigo es una forma de escribir los pasos que van a realizar
un programa de la forma más cercana al lenguaje de programación
que vamos a utilizar posteriormente.
Una de las mayores dificultades con las que se encuentran los
hispanoparlantes que empiezan a programar es el idioma. Por eso es
bueno utilizar el pseudocódigo, que ayuda a asimilar con más
facilidad las ideas básicas. Este pseudocódigo vale para pasarlo
posteriormente a cualquier lenguaje de programación, no importa el
que quieras usar.
Ventajas de utilizar un Pseudocódigo a un Diagrama de
Flujo
 Ocupa menos espacio en una hoja de papel.
 Permite representar de forma fácil operaciones repetitivas
complejas.
 Es muy fácil pasar de Pseudocódigo a un programa en un algún
lenguaje de programación.
 Si se siguen las reglas se puede observar claramente los
niveles que tiene cada operación.
¿Qué quiero
hacer?
Lo escribo en
pseudocódigo
Escribo el
programa en
mi lenguaje de
programación
4.Lenguajes de programación
4.1 Evolución histórica de los lenguajes
Atendiendo a la evolución histórica, se realiza una clasificación
general de los lenguajes desde su aparición.
 Primera generación: Lenguaje máquina
Los primeros ordenadores se programaban en código binario (0,1). Cada
ordenador tenía que ser programado utilizando un conjunto de
instrucciones específicas, por lo que se llama lenguaje máquina. En la
actualidad, aunque se utilizan lenguajes de alto nivel, 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 propio del lenguaje máquina. Este lenguaje utiliza un
traductor para convertir cada instrucción a su equivalente en lenguaje
máquina. Algunos lenguajes utilizan instrucciones en lenguaje
ensamblador para hacer más eficientes los programas.
 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 generar el programa en código
máquina. Inicialmente se desarrollaron lenguajes no estructurados, que
utilizaban alguna instrucción para indicar o modificar la secuencia de
ejecución de las instrucciones. No obstante, la mayoría de los lenguajes
de esta generación siguen el paradigma de la programación
estructurada, basada en que todo programa puede escribirse utilizando
únicamente instrucciones secuenciales, selectivas y repetitivas.
 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. La mayoría de lenguajes actuales están orientados a objetos:
C++, Java, etc.
 Quinta generación: Lenguaje natural e inteligencia
artificial
Se basan 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 Prolong.
4.2 Sintaxis de los lenguajes de programación
A la forma visible de un lenguaje de programación se le conoce como
sintaxis. La mayoría de los lenguajes de programación son puramente
textuales, es decir, utilizan secuencias de texto que incluyen
palabras, números y puntuación, de manera similar a los lenguajes
naturales escritos. Por otra parte,
hay algunos lenguajes de
programación que son más gráficos
en su naturaleza, utilizando
relaciones visuales entre símbolos
para especificar un programa.
La sintaxis de un lenguaje de
programación describe las
combinaciones posibles de los
símbolos que forman un programa
sintácticamente correcto. El
significado que se le da a una
combinación de símbolos es
manejado por su semántica (ya sea
formal o como parte del código duro
de la referencia de implementación).
4.3 Variables y constantes
Los sistemas informáticos descomponen la información en datos
sobre los que se opera hasta obtener el resultado deseado.
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. Es mejor entender el concepto
variable como un contenedor de un dato, que podrá cambiar tantas
veces como sea necesario y que siempre estará disponible en dicho
contenedor. En ocasiones se trabaja con un conjunto de variables que
del mismo tipo, que se almacenan de forma consecutiva, lo que se
define en programación como array o cadena.
Las variables y constantes se crean especificando su nombre y tipo
de datos que almacenan.
Con frecuencia se resaltan los
elementos de la sintaxis con colores
diferentes para facilitar su lectura. Este
ejemplo está escrito en Python.
4.4 Tipos de datos
Para programar, es necesario identificar a qué tipo de datos
pertenecen cada una de las variables o constantes, ya sean estos
números, letras, palabras, frases, entre otros y cada uno corresponde
a un tipo de dato, que requerirá de una manipulación específica para
obtener los resultados deseados. Cada lenguaje de programación
dispone de un conjunto de tipos de datos que puede manipular; sin
embargo los que aquí se presentan corresponden a aquellos que
todos los lenguajes de programación disponen, y que se conocen
como tipos de datos estándares.
Tipo de dato Subtipo Descripción
Numéricos
Enteros
Este tipo dato corresponde a
aquellas variables que
exclusivamente pueden
recibir VALORES SIN PARTE
DECIMAL.
Reales
Este tipo de dato, en cambio
corresponde a aquellas variables
cuyos VALORES TIENEN PARTE
DECIMAL, aunque al mismo tiempo
puede contener valores enteros.
Texto
Caracteres
En este tipo de dato se encuentran
todos los caracteres conocidos, una
letra, un número, un símbolo
especial. Por lo tanto, está
conformado por los DÍGITOS:'0',
'1', '2', ... , '9';
LETRAS: 'a', 'b', 'c', ... , 'z';
MAYÚSCULAS: 'A', 'B', 'C', ...
, 'Z'; y CARACTERES
ESPECIALES: '%', '*', '?', ... , '/'
Cadenas
Constituyen conjuntos de caracteres,
es decir la UNIÓN DE VARIOS
CARACTERES, que pueden ser
palabras o frases. El valor de este
tipo de datos se encierra
generalmente entre comillas (" ").
Lógicos Boolean
Únicamente reciben dos valores:
true ó false. Se utilizan
generalmente como banderas, para
identificar si se realizó o no un
proceso.
4.5 Estructuras secuenciales
Proporcionan técnicas que facilitan la tarea de programar, ya que
reducen el tiempo requerido para escribir, verificar, depurar y
modificar los programas.
Una estructura secuencial es aquella en la que cada instrucción sigue
a la anterior, de modo que se realizan todas sin saltarse ni repetir
ninguna de ellas.
Se pueden encontrar diferentes expresiones:
 Sentencias
Son instrucciones que realizan acciones. Cada sentencia se coloca en
una línea del programa, seguida de un “;”. Para agrupar un conjunto de
sentencias se utilizan {}.
 Llamadas a funciones
Ejecutan instrucciones que se encuentran fuera del programa, ya sea en
una biblioteca o en otra parte del programa.
 Asignación
Es la que permite el almacenamiento de un valor en una variable o una
constante. La asignación se realiza se realiza con el símbolo =, por lo
que es importante no confundirlo con el operador de comparación ==.
 Operaciones aritméticas
Los operadores aritméticos (+,-,*,/) realizan sumas, restas, productos,
divisiones y calculan el resto.
La mayoría de lenguajes permiten simplificar las instrucciones
aritméticas en que se modifica el valor de una variable a partir de su
valor anterior.
Ejemplos:
 += Incrementa el valor de la variable x en y.
 -= Resta el valor de la variable x el valor y
 *= Multiplica el valor de la variable x por y
 /= Divide el valor de la variable x por y
 %= Asigna a la variable x el resto de dividir x por y
 ++ Incrementa el valor de la variable x en uno.
4.6 Estructuras selectivas
Se utilizan para tomar decisiones lógicas. En ellas, se evalúa una
condición y, en función del resultado, se realizan unas u otras
acciones.
 Sentencia if-else
La estructura de selección if permite realizar una acción concreta en
caso de cumplirse una condición.
Se puede utilizar la sentencia if-else, de modo que si la condición
evaluada es verdadera, se ejecutan las sentencias de bloque if, y en
caso de ser falsa se ejecutan las secuencias del bloque else.
 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.
El programa asignará un valor a una variable mediante la expresión
escrita al comienzo de la sentencia. Posteriormente, irá comparando el
valor de esa variable con los valores especificados en los distintos
subapartados (case); cuando localice el caso del valor que tiene la
variable, solo se realizarían las sentencias escritas en el bloque default.
Para evaluar condiciones, se utilizan operadores de comparación y
lógicos:
 == Igual.
 > Mayor.
 < Menor.
 >= Mayor o igual.
 <= Menor o igual
 && Y. si tanto a como b son verdaderas.
4.7 Estructuras repetitivas
Se utilizan para repetir la ejecución de un determinado grupo de
sentencias, dependiendo de determinadas condiciones. Las más
comunes son:
 Mientras (while)
Tiene como función 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:
o Si es verdadera, las sentencias se realizan y se vuelve a
evaluar la condición.
o Si es falsa, la estructura Mientras finaliza y el control pasa a
la siguiente instrucción del programa.
 Hacer-Mientras (do-while)
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:
o Si es verdadera, las sentencias se vuelven a repetir.
o Si es falsa, la estructura Hacer-Mientras finaliza y el control pasa
a la siguiente instrucción del programa.
 Para (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
Las funciones son un conjunto de instrucciones que realizan una
tarea específica. Toman ciertos valores de entrada llamados
parámetros y proporcionan un valor de salida (return), aunque
ambos son opcionales y pueden no existir.
4.9 Funciones recursivas
Es aquella que se llama así misma para resolverse. En cada llamda
varían los parámetros y se obtienen los resultados necesarios para
resolver la función inicial.
5. Algunos lenguajes de programación
5.1 C++
C++ es un lenguaje de programación diseñado a mediados de los
años 1980. La intención de su creación fue el extender al lenguaje de
programación C mecanismos que permiten 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 sumaron a los paradigmas de programación
estructurada y programación orientada a objetos. Por esto se suele
decir que el C++ es un lenguaje de programación multiparadigma.
Actualmente existe un estándar, denominado ISO C++, al que se han
adherido la mayoría de los fabricantes de compiladores más
modernos. Existen también algunos intérpretes, tales como ROOT.
Una particularidad del C++ es la posibilidad de redefinir
los operadores, y de poder crear nuevos tipos que se comporten
como tipos fundamentales.
5.2 Java
Java es un lenguaje de programación de propósito
general, concurrente, orientado a objetos, que fue diseñado
específicamente para tener tan pocas dependencias de
implementación como fuera posible. Su intención es permitir que
los desarrolladores de aplicaciones escriban el programa una vez y lo
ejecuten en cualquier dispositivo (conocido en inglés como WORA, o
"write once, run anywhere"), lo que quiere decir que el código que es
ejecutado en una plataforma no tiene que ser recompilado para
correr en otra. Java es, a partir de 2012, uno de los lenguajes de
programación más populares en uso, particularmente para
aplicaciones de cliente-servidor de web, con unos diez millones de
usuarios reportados.
5.3 JavaScript
Es un lenguaje de programación interpretado, dialecto del
estándar ECMAScript. Se define como orientado a objetos, basado en
prototipos, imperativo, débilmente tipado y dinámico.
Se utiliza principalmente en su forma del lado del cliente (client-side),
implementado como parte de un navegador web permitiendo mejoras
en la interfaz de usuario y páginas web dinámicas aunque existe una
forma de JavaScript del lado del servidor (Server-side JavaScript o
SSJS). Su uso en aplicaciones externas a la web, por ejemplo en
documentos PDF, aplicaciones de escritorio es también significativo.
5.4 PHP
Es un lenguaje de programación de propósito general de código del
lado del servidor originalmente diseñado para el desarrollo
web de contenido dinámico. Fue uno de los primeros lenguajes de
programación del lado del servidor que se podían incorporar
directamente en un documento HTML en lugar, de llamar a un archivo
externo que procese los datos. El código es interpretado por un
servidor web con un módulo de procesador de PHP que genera el
HTML resultante.
PHP ha evolucionado por lo que ahora incluye también una interfaz
de línea de comandos que puede ser usada en aplicaciones gráfica sin
dependientes. Puede ser usado en la mayoría de los servidores web
al igual que en muchos sistemas operativos y plataformas sin ningún
costo.
5.5 Python
Es un lenguaje de programación interpretado cuya filosofía hace
hincapié en una sintaxis que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma, ya que
soporta orientación a objetos, programación imperativa y, en menor
medida, programación funcional. Es un lenguaje interpretado,
usa tipado dinámico y es multiplataforma.

Más contenido relacionado

La actualidad más candente

Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacionguestd5974a6
 
Programac io n pdf
Programac io n pdfProgramac io n pdf
Programac io n pdfjose peralta
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionjoel210696
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacionAnaisMar22
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASadark
 
Tema1
Tema1Tema1
Tema1UH
 
Tema1
Tema1Tema1
Tema1UH
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de ProgramaciónKudos S.A.S
 
programacion INFORMATICA.pptx
programacion INFORMATICA.pptxprogramacion INFORMATICA.pptx
programacion INFORMATICA.pptxDavidOrtega737036
 

La actualidad más candente (17)

Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacion
 
Programac io n pdf
Programac io n pdfProgramac io n pdf
Programac io n pdf
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
 
01 alp u3
01 alp u301 alp u3
01 alp u3
 
Programacio nfin
Programacio nfinProgramacio nfin
Programacio nfin
 
Tema1 b
Tema1 bTema1 b
Tema1 b
 
Tema vi
Tema viTema vi
Tema vi
 
Tema vi
Tema viTema vi
Tema vi
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacion
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
 
Diapositivas fundamentos-de-programacion
Diapositivas fundamentos-de-programacionDiapositivas fundamentos-de-programacion
Diapositivas fundamentos-de-programacion
 
Tema1
Tema1Tema1
Tema1
 
Tema1
Tema1Tema1
Tema1
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
programacion INFORMATICA.pptx
programacion INFORMATICA.pptxprogramacion INFORMATICA.pptx
programacion INFORMATICA.pptx
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 

Similar a Programacion

Fundamentos de programación semana 3 ppt
Fundamentos de programación semana 3 pptFundamentos de programación semana 3 ppt
Fundamentos de programación semana 3 pptpedro millapi montiel
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadoraFaridCastillo2
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadoraJulioVizcarra5
 
tecnologia patiño.pdf
tecnologia patiño.pdftecnologia patiño.pdf
tecnologia patiño.pdfsofia patiño
 
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Dulcevelazquez6
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujocasdilacol
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONSol López
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Marquina, Santiago
 
Tecnologia actividad 2 9-3.pdf
Tecnologia actividad 2 9-3.pdfTecnologia actividad 2 9-3.pdf
Tecnologia actividad 2 9-3.pdfCamilaMuoz590596
 
Solución de problemas del computador
Solución de problemas del computadorSolución de problemas del computador
Solución de problemas del computadoromar_tisalema
 

Similar a Programacion (20)

Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Fundamentos de programación semana 3 ppt
Fundamentos de programación semana 3 pptFundamentos de programación semana 3 ppt
Fundamentos de programación semana 3 ppt
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Programación
ProgramaciónProgramación
Programación
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
tecnologia patiño.pdf
tecnologia patiño.pdftecnologia patiño.pdf
tecnologia patiño.pdf
 
tecnologia patiño.pdf
tecnologia patiño.pdftecnologia patiño.pdf
tecnologia patiño.pdf
 
MP.pptx
MP.pptxMP.pptx
MP.pptx
 
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
 
Bloque 1
Bloque 1Bloque 1
Bloque 1
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3
 
Tecnologia actividad 2 9-3.pdf
Tecnologia actividad 2 9-3.pdfTecnologia actividad 2 9-3.pdf
Tecnologia actividad 2 9-3.pdf
 
periodo 2.pdf
periodo 2.pdfperiodo 2.pdf
periodo 2.pdf
 
Solución de problemas del computador
Solución de problemas del computadorSolución de problemas del computador
Solución de problemas del computador
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (19)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Programacion

  • 2. Contenido 2.1 Análisis del problema.................................................................5 2.2 Diseño de algoritmos .................................................................5 2.3 Codificación del problema...........................................................6 2.4 Pruebas y depuración ................................................................6 2.5 Documentación.........................................................................6 3.1 Algoritmo: definición y características que debe cumplir ..................8 3.2 Diagramas de flujo: símbolos utilizados ........................................9 3.3 Pseudocódigo ......................................................................... 10 4.1 Evolución histórica de los lenguajes ........................................... 11  Primera generación: Lenguaje máquina ...................................... 11  Segunda generación: Lenguaje ensamblador ............................... 11  Tercera generación: Lenguajes de alto nivel ................................ 11  Cuarta generación: Programación orientada a objetos................... 11  Quinta generación: Lenguaje natural e inteligencia artificial ........... 12 4.2 Sintaxis de los lenguajes de programación .................................. 12 4.3 Variables y constantes ............................................................. 12 4.4 Tipos de datos........................................................................ 13 4.5 Estructuras secuenciales .......................................................... 14  Sentencias ............................................................................. 14  Llamadas a funciones .............................................................. 14  Asignación ............................................................................. 14  Operaciones aritméticas........................................................... 14 4.6 Estructuras selectivas .............................................................. 15  Sentencia if-else ..................................................................... 15  Sentencia switch..................................................................... 15 4.7 Estructuras repetitivas ............................................................. 15  Mientras (while)...................................................................... 15  Hacer-Mientras (do-while) ........................................................ 16  Para (for) .............................................................................. 16 4.8 Funciones .............................................................................. 16 4.9 Funciones recursivas ............................................................... 16 5.1 C++ ..................................................................................... 16 5.2 Java...................................................................................... 17
  • 3. 5.3 JavaScript.............................................................................. 17 5.4 PHP ...................................................................................... 17 5.5 Python .................................................................................. 18
  • 4. 1.La programación en la sociedad actual El propósito de la programación informática es desarrollar aplicaciones que faciliten las tareas cotidianas, tales como hacer compras, escuchar música, comunicarse con otros usuarios, etc.; en definitiva, mejorar localidad de vida de la sociedad. Para la comunicación con un ordenador se utilizan los lenguajes de programación. Estos lenguajes son un conjunto de símbolos y reglas que, siguiendo una estructura lógica, permiten escribir las líneas de código que componen las aplicaciones. En los inicios de la era informática, era necesario crear programas a partir de un lenguaje muy complejo de ceros y unos. La evolución de los ordenadores ha llevado consigo el desarrollo de nuevos lenguajes de programación que permiten crear entornos de desarrollo visuales que no requieren escribir ningún código para la creación de aplicaciones. La tecnología necesita profesionales capaces de ampliar sus horizontes, por lo que la tendencia actual es potenciar el pensamiento creativo y el razonamiento sistemático a edades cada vez más tempranas. Para ello, hay lenguajes diseñados para ser utilizados por niños y adolescentes, como Scratch, App Inventor…
  • 5. 2.Creación de un programa informático En informática, los algoritmos son la base para crear los programas. Se denomina algoritmo al conjunto de instrucciones y reglas ordenadas que guían el desarrollo de estas actividades. Un programa informático es un conjunto de instrucciones, escritas en un lenguaje de programación para que el ordenador lo pueda entender. Para crear un programa informático se siguen diferentes fases de desarrollo conocidas como Ciclo de vida del software: o Análisis del problema. o Diseño del algoritmo. o Codificación del programa o Pruebas y depuración o Documentación 2.1 Análisis del problema Consiste en hacer un estudio detallado del problema a resolver, con la finalidad de que el resultado final coincida con lo que se esperaba. Esta es una de las fases más complejas, ya que requiere hacer un estudio exhaustivo del problema para conocer todas las características, propiedades y restricciones que debe tener el programa desarrollado. En esta fase hay que identificar correctamente aspectos como a quién va dirigido el software, qué debe hacer exactamente, etc. 2.2 Diseño de algoritmos En esta fase se crean los algoritmos que permiten resolver el problema. Para representarlos se utilizan diagramas de flujo y pseudocódigos. Estos se basan en la utilización de símbolos gráficos denominados bloques, en los que escribimos las acciones que tiene que realizar el algoritmo.
  • 6. 2.3 Codificación del problema Es la traducción del lenguaje algorítmico a un lenguaje de programación que el ordenador puede entender, como Java, Python… Para crear los programas, se utilizan entornos de desarrollo que facilitan la escritura de las instrucciones. Estas instrucciones se almacenan en ficheros denominados código fuente, que se traducen con un compilador a lenguaje máquina, es decir, a programas ejecutables. 2.4 Pruebas y depuración Una vez escrito el programa, hay que someterlo a una serie de pruebas para detectar posibles errores de funcionamiento. Es importante examinar todas las opciones y posibilidades del programa, ya que si se da por finalizada la fase de pruebas sin haber realizado un chequeo completo, se corre el riesgo de que el programa pueda fallar en cualquier momento durante su ejecución. En caso de detectar algún error, este debe corregirse en el programa antes de crear el programa ejecutable definitivo. Las actualizaciones corrigen errores detectados en las aplicaciones tras su lanzamiento. 2.5 Documentación Cada uno de los pasos anteriores debe llevar asociado un documento con todas las especificaciones necesarias. 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 a otros programadores que tengan que hacer futuras revisiones. Para ello, se suelen utilizar símbolos como // y /*..*/. El código de apertura es el siguiente: <!– y el cierre del comentario se escribe así: –> Ejemplo:
  • 7. ………………………………………………………………………………………………………………… En este ejemplo se observa que los comentarios escritos no se ven. Sólo podremos verlos a través del código fuente de la página.
  • 8. 3.Diseño de algoritmos 3.1 Algoritmo: definición y características que debe cumplir Un algoritmo es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. En términos de programación, un algoritmo es una secuencia de pasos lógicos que permiten solucionar un problema. Las características que debe cumplir todo algoritmo son:  Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.  Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.  Un algoritmo debe ser finito. el algoritmo se debe terminar en algún momento; o sea, debe tener un número finito de pasos.  Un algoritmo debe ser legible. El texto que describe debe ser claro, tal que permita leerlo y entenderlo fácilmente. Los diagramas de flujo sirven para representar algoritmos de manera gráfica
  • 9. 3.2 Diagramas de flujo: símbolos utilizados El diagrama de flujo 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 la que 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.  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. Si tiene más de 2 salidas se denomina decisión múltiple.  Función: es un modelo independiente que realiza una tarea determinada. Permite agrupar varias instrucciones que se realizan de forma repetitiva.  Entrada/Salida: simboliza la introducción de datos o la salida de 9información a través de cualquier medio.
  • 10. 3.3 Pseudocódigo El pseudocódigo es una forma de escribir los pasos que van a realizar un programa de la forma más cercana al lenguaje de programación que vamos a utilizar posteriormente. Una de las mayores dificultades con las que se encuentran los hispanoparlantes que empiezan a programar es el idioma. Por eso es bueno utilizar el pseudocódigo, que ayuda a asimilar con más facilidad las ideas básicas. Este pseudocódigo vale para pasarlo posteriormente a cualquier lenguaje de programación, no importa el que quieras usar. Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo  Ocupa menos espacio en una hoja de papel.  Permite representar de forma fácil operaciones repetitivas complejas.  Es muy fácil pasar de Pseudocódigo a un programa en un algún lenguaje de programación.  Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación. ¿Qué quiero hacer? Lo escribo en pseudocódigo Escribo el programa en mi lenguaje de programación
  • 11. 4.Lenguajes de programación 4.1 Evolución histórica de los lenguajes Atendiendo a la evolución histórica, se realiza una clasificación general de los lenguajes desde su aparición.  Primera generación: Lenguaje máquina Los primeros ordenadores se programaban en código binario (0,1). Cada ordenador tenía que ser programado utilizando un conjunto de instrucciones específicas, por lo que se llama lenguaje máquina. En la actualidad, aunque se utilizan lenguajes de alto nivel, 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 propio del lenguaje máquina. Este lenguaje utiliza un traductor para convertir cada instrucción a su equivalente en lenguaje máquina. Algunos lenguajes utilizan instrucciones en lenguaje ensamblador para hacer más eficientes los programas.  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 generar el programa en código máquina. Inicialmente se desarrollaron lenguajes no estructurados, que utilizaban alguna instrucción para indicar o modificar la secuencia de ejecución de las instrucciones. No obstante, la mayoría de los lenguajes de esta generación siguen el paradigma de la programación estructurada, basada en que todo programa puede escribirse utilizando únicamente instrucciones secuenciales, selectivas y repetitivas.  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. La mayoría de lenguajes actuales están orientados a objetos: C++, Java, etc.
  • 12.  Quinta generación: Lenguaje natural e inteligencia artificial Se basan 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 Prolong. 4.2 Sintaxis de los lenguajes de programación A la forma visible de un lenguaje de programación se le conoce como sintaxis. La mayoría de los lenguajes de programación son puramente textuales, es decir, utilizan secuencias de texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más gráficos en su naturaleza, utilizando relaciones visuales entre símbolos para especificar un programa. La sintaxis de un lenguaje de programación describe las combinaciones posibles de los símbolos que forman un programa sintácticamente correcto. El significado que se le da a una combinación de símbolos es manejado por su semántica (ya sea formal o como parte del código duro de la referencia de implementación). 4.3 Variables y constantes Los sistemas informáticos descomponen la información en datos sobre los que se opera hasta obtener el resultado deseado. 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. Es mejor entender el concepto variable como un contenedor de un dato, que podrá cambiar tantas veces como sea necesario y que siempre estará disponible en dicho contenedor. En ocasiones se trabaja con un conjunto de variables que del mismo tipo, que se almacenan de forma consecutiva, lo que se define en programación como array o cadena. Las variables y constantes se crean especificando su nombre y tipo de datos que almacenan. Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para facilitar su lectura. Este ejemplo está escrito en Python.
  • 13. 4.4 Tipos de datos Para programar, es necesario identificar a qué tipo de datos pertenecen cada una de las variables o constantes, ya sean estos números, letras, palabras, frases, entre otros y cada uno corresponde a un tipo de dato, que requerirá de una manipulación específica para obtener los resultados deseados. Cada lenguaje de programación dispone de un conjunto de tipos de datos que puede manipular; sin embargo los que aquí se presentan corresponden a aquellos que todos los lenguajes de programación disponen, y que se conocen como tipos de datos estándares. Tipo de dato Subtipo Descripción Numéricos Enteros Este tipo dato corresponde a aquellas variables que exclusivamente pueden recibir VALORES SIN PARTE DECIMAL. Reales Este tipo de dato, en cambio corresponde a aquellas variables cuyos VALORES TIENEN PARTE DECIMAL, aunque al mismo tiempo puede contener valores enteros. Texto Caracteres En este tipo de dato se encuentran todos los caracteres conocidos, una letra, un número, un símbolo especial. Por lo tanto, está conformado por los DÍGITOS:'0', '1', '2', ... , '9'; LETRAS: 'a', 'b', 'c', ... , 'z'; MAYÚSCULAS: 'A', 'B', 'C', ... , 'Z'; y CARACTERES ESPECIALES: '%', '*', '?', ... , '/' Cadenas Constituyen conjuntos de caracteres, es decir la UNIÓN DE VARIOS CARACTERES, que pueden ser palabras o frases. El valor de este tipo de datos se encierra generalmente entre comillas (" "). Lógicos Boolean Únicamente reciben dos valores: true ó false. Se utilizan generalmente como banderas, para identificar si se realizó o no un proceso.
  • 14. 4.5 Estructuras secuenciales Proporcionan técnicas que facilitan la tarea de programar, ya que reducen el tiempo requerido para escribir, verificar, depurar y modificar los programas. Una estructura secuencial es aquella en la que cada instrucción sigue a la anterior, de modo que se realizan todas sin saltarse ni repetir ninguna de ellas. Se pueden encontrar diferentes expresiones:  Sentencias Son instrucciones que realizan acciones. Cada sentencia se coloca en una línea del programa, seguida de un “;”. Para agrupar un conjunto de sentencias se utilizan {}.  Llamadas a funciones Ejecutan instrucciones que se encuentran fuera del programa, ya sea en una biblioteca o en otra parte del programa.  Asignación Es la que permite el almacenamiento de un valor en una variable o una constante. La asignación se realiza se realiza con el símbolo =, por lo que es importante no confundirlo con el operador de comparación ==.  Operaciones aritméticas Los operadores aritméticos (+,-,*,/) realizan sumas, restas, productos, divisiones y calculan el resto. La mayoría de lenguajes permiten simplificar las instrucciones aritméticas en que se modifica el valor de una variable a partir de su valor anterior. Ejemplos:  += Incrementa el valor de la variable x en y.  -= Resta el valor de la variable x el valor y  *= Multiplica el valor de la variable x por y  /= Divide el valor de la variable x por y  %= Asigna a la variable x el resto de dividir x por y  ++ Incrementa el valor de la variable x en uno.
  • 15. 4.6 Estructuras selectivas Se utilizan para tomar decisiones lógicas. En ellas, se evalúa una condición y, en función del resultado, se realizan unas u otras acciones.  Sentencia if-else La estructura de selección if permite realizar una acción concreta en caso de cumplirse una condición. Se puede utilizar la sentencia if-else, de modo que si la condición evaluada es verdadera, se ejecutan las sentencias de bloque if, y en caso de ser falsa se ejecutan las secuencias del bloque else.  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. El programa asignará un valor a una variable mediante la expresión escrita al comienzo de la sentencia. Posteriormente, irá comparando el valor de esa variable con los valores especificados en los distintos subapartados (case); cuando localice el caso del valor que tiene la variable, solo se realizarían las sentencias escritas en el bloque default. Para evaluar condiciones, se utilizan operadores de comparación y lógicos:  == Igual.  > Mayor.  < Menor.  >= Mayor o igual.  <= Menor o igual  && Y. si tanto a como b son verdaderas. 4.7 Estructuras repetitivas Se utilizan para repetir la ejecución de un determinado grupo de sentencias, dependiendo de determinadas condiciones. Las más comunes son:  Mientras (while) Tiene como función 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: o Si es verdadera, las sentencias se realizan y se vuelve a evaluar la condición.
  • 16. o Si es falsa, la estructura Mientras finaliza y el control pasa a la siguiente instrucción del programa.  Hacer-Mientras (do-while) 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: o Si es verdadera, las sentencias se vuelven a repetir. o Si es falsa, la estructura Hacer-Mientras finaliza y el control pasa a la siguiente instrucción del programa.  Para (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 Las funciones son un conjunto de instrucciones que realizan una tarea específica. Toman ciertos valores de entrada llamados parámetros y proporcionan un valor de salida (return), aunque ambos son opcionales y pueden no existir. 4.9 Funciones recursivas Es aquella que se llama así misma para resolverse. En cada llamda varían los parámetros y se obtienen los resultados necesarios para resolver la función inicial. 5. Algunos lenguajes de programación 5.1 C++ C++ es un lenguaje de programación diseñado a mediados de los años 1980. La intención de su creación fue el extender al lenguaje de programación C mecanismos que permiten 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 sumaron a los paradigmas de programación estructurada y programación orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.
  • 17. Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT. Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos que se comporten como tipos fundamentales. 5.2 Java Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos, que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos diez millones de usuarios reportados. 5.3 JavaScript Es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio es también significativo. 5.4 PHP Es un lenguaje de programación de propósito general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en un documento HTML en lugar, de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera el HTML resultante.
  • 18. PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de comandos que puede ser usada en aplicaciones gráfica sin dependientes. Puede ser usado en la mayoría de los servidores web al igual que en muchos sistemas operativos y plataformas sin ningún costo. 5.5 Python Es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.