2. FUNDAMENTOS DE PROGRAMACIÓN
1. ¿QUÉ ES UN PROGRAMA? ELEMENTOS.
2. ALGORITMOS
3. PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO
(DFD)
4. LENGUAJES DE PROGRAMACIÓN
1. CLASIFICACIÓN
2. GENERACIONES
3. LENGUAJES MÁS EMPLEADOS. INDICE
TIOBE
5. TRADUCTORES: COMPILADOR E
INTÉRPRETE
6. INTERFAZ GRÁFICA DE USUARIO
7. DEPURACIÓN DE CÓDIGO
3. 1.¿QUÉ ES UN PROGRAMA?
Un programa es una secuencia de pasos o instrucciones
para realizar una tarea específica en una computadora.
Para escribir programas empleamos los lenguajes de
programación.
Un programa permite especificar de manera precisa sobre
qué datos debe operar una computadora, cómo deben ser
almacenados o transmitidos y qué acciones debe tomar
bajo una variada gama de circunstancias.
Los elementos son: variables, constante, sentencias
4. 2.ALGORITMO
Un algoritmo es un conjunto ordenado de operaciones que
permite hacer un cálculo y hallar la solución de un tipo de
problemas.
Ejemplos de algoritmos:
El algoritmo para cálculo de la división,
El algoritmo para hallar las raíces cuadradas…. (es el
método de resolución del problema).
Algoritmo para resolver una ecuación de segundo
grado.
Calcular el área de un rectángulo, triángulo…
7. 3.PSEUDOCÓDIGO Y DFD
El pseudocódigo es una descripción de alto nivel
compacta e informal del algoritmo de un programa.
Consiste en escribir el algoritmo en lenguaje natural,
de forma comprensible, describiendo cada paso del
programa.
Un Diagrama de Flujo de Datos o DFD es la
representación gráfica de un algoritmo
8. Ejemplo pseudocódigo
Algoritmo Suma // Suma dos valores y devuelve la suma
Escribir "Ingrese el primer numero:"
Leer A
Escribir "Ingrese el segundo numero:"
Leer B
// Se calcula la suma y se guarda el resultado en la variable C mediante la asignación
C A+B
// finalmente, se muestra el resultado, precedido de un mensaje para avisar al usuario,
todo en una sola instrucción Escribir
Escribir "El resultado es: ",C
FinAlgoritmo
12. LENGUAJES DE PROGRAMACIÓN
Un lenguaje de programación es un lenguaje formal que
permite dar órdenes o instrucciones al ordenador
para que ejecute un programa.
Ejemplos de lenguajes:
• Fortran (1957), Cobol (1959)
• Basic (1964) para estudiantes
• Pascal, publicado en 1970
• C (1972), C++(objetos), C#
• JavaScript, PHP (1997), ASP (desarrollo web)
• Python(1989)
• Visual Basic (1991)
• Java (1995),
• Gambas (VB para Linux, 2002)
13. 4. LENGUAJES DE PROGRAMACIÓN
• Un lenguaje de programación es un lenguaje formal
que explica una serie de instrucciones para que una
computadora (ordenador, tablet, smartphone u otros
dispositivos móviles y electrónicos) generen diversas
clases de datos.
• Los lenguajes de programación pueden usarse para
crear programas que pongan en práctica algoritmos
específicos, los cuales controlan el comportamiento
físico y lógico de una computadora.
14. Algunos lenguajes
LENGUAJE USOS VENTAJAS INCONVENIENTES IDE
JAVA Aplicaciones web, aplic.
de escritorio, en
servidores, móviles
Popularidad y
demanda
Lenguaje estable
Gran comunidad
de apoyo
Plataforma Java, con decenas
de miles de clases. Precisa
mayor capacidad de
pensamiento analítico.
Perdona mucho menos los
fallos.
Netbeans ,
Eclipse
C++ Alto rendimiento, portable,
permite llamadas al sistema,
ensamblador…
Multiplataforma
multiparadigma,
muy extendido
lenguaje muy amplio (con
muchos años y muchas líneas
de código), El manejo de
librerías es más complicado
que otros lenguajes como Java
o .NET. No visual
Visual Studio,
DevC++
C# Aplic.móviles, desarrollo de
juegos y software
empresarial
Fácil de
aprender, API
deventanas
La plataforma .NET con
muchas clases,
El despliegue en ciertos
entornos puede ser
complejo
Visual Studio
PYTHON Aplic web y escritorio, IA,
machine learning,
scripts, drones, robótica,
webscripting, análisis de
big data,videojuegos…
Sintaxis sencilla,
gran comunidad,
módulos para
todo
No indicado para
aplicaciones
móviles
Thonny,
Anaconda,
Visual Studio
Code,
Eclipse,PyDev
15. El índice Tiobe
• El índice TIOBE o índice de la comunidad de programación
TIOBE mide la popularidad de los lenguajes de
programación. Fue creado por la compañía TIOBE, con
sede en Eindhoven, Países Bajos.
• Hay 3 candidatos al título de lenguaje del año 2022:
Python, C y C++.
• Python y C han ganado multiples veces anteriormente,
C++ sólo lo hizo en 2003. El incremento de popularidad de
C++ va en detrimetno de Java. C++ sobrepasa a Java por
1ª vez en la historia del TIOBE index, pasando Java a la
posición 4 ahora.
• Es la primera vez que Java no es parte del top 3 desde que
empezó el ranking del TIOBE index en 2001.
https://www.tiobe.com/tiobe-index/
19. LENGUAJES MÁS USADOS EN 2019
• El Índice TIOBE se elabora a partir de diversos criterios o
parámetros, por ejemplo, el número de ingenieros cualificados
en determinado lenguaje, las búsquedas que hacen los
usuarios a través de los buscadores solicitando información de
los distintos lenguajes de programación, la demanda de cursos
o los lenguajes que están siendo más usados.
20. 4.1. CLASIFICACIÓN DE LOS LENGUAJES
• 1. Lenguaje máquina: lo comprende directamente la
máquina (computadora) y utiliza el alfabeto binario, es
decir, el 0 y el 1.
• 2. Lenguajes de bajo nivel: a diferencia del lenguaje
máquina es más sencillo de utilizar, pero dependen
mucho de la máquina o computadora. Ensambladores
• 3. Lenguajes de programación de alto nivel: son más
fáciles de aprender porque se emplean palabras o
comandos del lenguaje natural, generalmente del
inglés. Este es el caso del Python, C++,BASIC, C, Java…
Según el nivel de abstracción, los lenguajes de programación
se clasifican en:
21. LENGUAJES DE BAJO NIVEL
• LENGUAJE MÁQUINA: binario ejecutable
• LENGUAJE ENSAMBLADOR: Consiste en un
conjunto de nemónicos que representan
instrucciones básicas para el microprocesador.
Depende de la arquitectura del ordenador. (código de
instrucciones máquina, nº de bits, direcc. Memoria…)
22. LENGUAJES DE ALTO NIVEL
• Son lenguajes independientes de la
arquitectura del ordenador.
• Permiten al programador olvidarse del
funcionamiento interno de la máquina (código
de instrucciones máquina, nº de bits, direc.
Memoria…)
• Se dividen en generaciones
• C/C++, Java, Python, Basic, Javascript….
23. LENGUAJES DE ALTO NIVEL
Los tipos de lenguajes de programación de alto nivel, según
su utilidad y filosofía, son:
• Lenguajes imperativos: Cobol, Pascal, C y Ada.
• Lenguajes declarativos: el Lisp y el Prolog.
• Lenguajes de programación orientado a objetos: Java,
Smalltalk y el C++.
• Lenguajes orientados al problema: son aquellos lenguajes
específicos para gestión.
• Lenguajes de programación natural: son los nuevos
lenguajes que pretender aproximar el diseño y la
construcción de programas al lenguaje de las personas.
(lenguajes de la IA: Lisp, Prolog)
24. CLASIFICACIÓN SEGÚN EL PARADIGMA
DE PROGRAMACIÓN
• LENGUAJES IMPERATIVOS: especifican un algoritmo
para resolver el problema. Ej: C, Pascal, PHP, Basic…
• LENGUAJES DECLARATIVOS: especifican las
propiedades que la solución debe tener, pero no el
detalle de la implementación.Ej:Lisp, Prolog
• LENGUAJES ORIENTADOS A OBJETOS: el programa
es una colección de objetos que interactúan
enviándose mensajes. Java, C++, Python…
25. TIPOS DE LENGUAJES DE
PROGRAMACION LENG. DE BAJO NIVEL
LENG. DE ALTO NIVEL
LENG. COMPILADOS
LENG. INTERPRETADOS
DECLARATIVOS
IMPERATIVOS
ORIENTADOS A
OBJETOS
26. 4.2.GENERACIONES DE LENGUAJES
• Primera generación: el lenguaje máquina (binario).
• Segunda generación: lenguaje ensamblador de bajo nivel. Se usan en
kernels y unidades de hardware, además de ser usados comúnmente
para edición de vídeo, gráficos y videojuegos.
• Los lenguajes de tercera generación - 3GL, son lenguajes de alto nivel,
como C, C++, C#, Java, BASIC, JavaScript y Visual Basic.
• Los lenguajes de cuarta generación - 4GL, son lenguajes que consisten
en declaraciones similares a las declaraciones hechas en un lenguaje
humano. Los lenguajes de cuarta generación se usan comúnmente en la
programación de bases de datos y los ejemplos de scripts incluyen Unix
Shell, Perl, PHP, Python, Ruby y SQL.
• Los lenguajes de quinta generación - 5GL, son lenguajes de
programación que contienen herramientas visuales para ayudar a
desarrollar un programa y lenguajes de la IA. Ejemplos de lenguajes de
quinta generación incluyen Mercury, OPS5, Lisp y Prolog.
• En resumen, los lenguajes de las generaciones 1GL y 2GL son también
de bajo nivel y los de las generaciones 3GL, 4GL y 5GL son de alto nivel.
27. GENERACIONES DE LENGUAJES
• 1GL: Lenguaje máquina (binario)
• 2GL: Lenguaje Ensamblador
• 3GL: son lenguajes de programación de alto nivel imperativo,
pero mucho más utilizados y vigentes en la actualidad (Python
1989, Java (1995), ALGOL 8, PL/I, PASCAL, MODULA).
• 4GL:Lenguajes de cuarta generación: usados en aplicaciones
de gestión y manejo de bases de datos: NATURA, SQL (1974), y
lenguajes de scripts, como Unix Shell, Perl, PHP, Python (1989),
Ruby (1995)
• Lenguajes de quinta generación: creados para la inteligencia
artificial y para el procesamiento de lenguajes naturales (LISP,
PROLOG).
1GL.
1940-50
2GL.
1950-60
3GL
1970-80-90
4GL:BBDD y
scripts
5GL: IA y
Visuales
28. 5. TRADUCTORES
• Todos los lenguajes de programación generan
un programa que para ser ejecutado debe ser
traducido a binario.
• Un traductor convierte el código del programa
(código fuente) a binario (código maquina)
• Los traductores se dividen en 2 categorías:
• COPILADORES
• INTÉRPRETES
29. COMPILADORES E INTERPRETES
• COMPILADOR: traduce todo el programa a código máquina
y genera un archivo ejecutable. (programa.exe)
• VENTAJAS: mayor velocidad de ejecución. Genera un
ejecutable
• Ejemplos: Javascript, Basic
31. • Un intérprete es un programa capaz de analizar y ejecutar otros
programas. Va interpretando instrucción a instrucción, y
normalmente no guardan el resultado de dicha traducción. Basic,
Javascript, Python son interpretados.
•Inconvenientes:
• Más lento que el compilador.
• El programa intérprete debe estar en memoria
INTÉRPRETE
32.
33. MÁQUINA VIRTUAL JAVA
• En el caso de Java, el código fuente es traducido a
bitecodes (código intermedio). Éste es interpretado por
la Máquina Virtual Java (JVM)
• Ventajas: portabilidad (multiplataforma)
34. SEGÚN LA FORMA DE EJCUCIÓN
El código fuente debe ser traducido a
código máquina. Hay dos formas:
• LENGUAJES COMPILADOS
• LENGUAJES INTERPRETADOS
35. 6. INTERFAZ GRÁFICA DE USUARIO
• GUI: Graphical User Interface
• Sistema visual de ventanas, menús,
controles…y demás elementos gráficos que
componen la interfaz gráfica de la aplicación.
• Con ella interactúa el usuario
• Debe ser amigable: fácil de usar.
36. IDE: integrated Development
Environment
• ENTORNO DE DESARROLLO INTEGRADO
• Programa que sirve para crear otros
programas
• Software de desarrollo
• Incluye opciones para editar código, compilar,
depurar, generar ejecutable…
• Depurar es identificar errores en tiempo de
compilación para corregirlos (debugger).
38. 7. DEPURACIÓN DEL CÓDIGO
•Depurar código significa eliminar errores del
código.
•DEPURACIÓM: Proceso de detección y corrección
de errores en el código antes de convertir el código
fuente a binario (ejecutable).
•Debbuger: parte del compilador que permite
depurar, con puntos de ruptura, ejecución paso a
paso….
39. 8. PROGRAMACIÓN MODULAR
•Al aplicar la programación modular, un problema
complejo debe ser dividido en varios subproblemas
más simples, y estos a su vez en otros subproblemas
más simples aún.
•Esto debe hacerse hasta obtener subproblemas lo
suficientemente simples como para poder ser resueltos
fácilmente con algún lenguaje de programación.
•Esta técnica se llama refinamiento sucesivo, divide y
vencerás o análisis descendente (Top-Down).
•Un 'módulo' es cada una de las partes de un
programa que resuelve uno de los subproblemas en
que se divide el problema complejo original.
40. 9. REUTILIZACIÓN DE CÓDIGO
• Las funciones o módulos son reutilizables: se
pueden usar en todos los programas que las
llamen.
• Ejemplos: función potencia(), función raíz(),
función NumAleatorio(), función
imprimirMensajeError()
41. 10. POO
• La programación orientada a objetos (POO) es un
modelo de programación que organiza el diseño de
software en torno a datos u objetos, en lugar de
funciones y lógica.
• Un objeto se puede definir como un campo de datos
que tiene atributos y comportamiento únicos.
• La programación orientada a objetos se centra en los
objetos que los desarrolladores quieren manipular en
lugar de enfocarse en la lógica necesaria para
manipularlos. Este enfoque de programación es
adecuado para programas que son grandes, complejos
y se actualizan o mantienen activamente.