INTRODUCCIÓN A LA PROGRAMACIÓN
Presentación de los diferentes paradigmas de los
lenguajes de programación. Así como de sus
carácterísticas fundamentales. Introducción a las formas
de descripción formal de los lenguajes de programación.
Objetivo
Temas
Definición de LP
Características de los lenguajes de programación
Paradigmas de programación
Definición de programa
Proceso de programación
Definición de algoritmos
Pseudo-código
Diagramas de flujo
¿ Qué es un LP ?
Computación
Legibilidad por parte de la máquina
Legibilidad por parte del ser humano
Definición: Un lenguaje de programación es un sistema
notacional para describir operaciones computacionales de
una forma legible tanto para la máquina como para el ser
humano.
Características
Eficiencia
Expresividad
Capacidad de mantenimiento
Legibilidad
Confiabilidad
Seguridad
Simplicidad
Productividad
Abstracciones
Clases: Datos y control
Niveles: básicas, estructuradas y unitarias
Abstracciones de datos:
● Básicas: tipos básicos (enteros, reales, ...)
● Estructuradas: tipos estructurados (arreglos, registros)
● Unitarias: Tipos abstractos de datos (TDAs), paquetes,
módulos, clases, componentes
Abstracciones
Abstracciones de control
Básicas: asignación, goto
Estructuradas: condicionales e iteradores
Unitarias: paquetes, módulos, hilos y tareas.
Paradigmas de programación
Imperativo
Modelo de Von Neuman, cuello de botella de
Von Neuman
Funcional
Noción abstracta de función, recursividad, listas
Orientado a Objetos
TDAs, encapsulación, modularidad, reutilización
Lógico
Lógica simbólica, programación declarativa
Paradigmas de programación
Tipos de programación
Distintas formas de programar una aplicación
– Programación secuencial
– Programación estructurada
– Programación orientada a objetos
– Programación lógica
Paradigmas de programación
Programación secuencial
Conjunto de sentencias escritas de forma secuencial
Su ejecución sigue la secuencia
Se utilizan etiquetas para marcar parte del código
Se accede a una etiqueta utilizando la sentencia goto
Basic, Assembler, Fortran, Cobol
Programación orientada a objetos
Cada componente del programa es concebido como un objeto que tiene
propiedades y métodos
Las propiedades y métodos de los objetos se especifican en su clase
Primero se definen las clases y luego se crean instancias de objetos
JAVA, C++, Delphi, ASP.NET, VISUAL BASIC
Paradigmas de programación
Programación lógica
Lo importante es definir un conjunto de hechos y un conjunto de reglas
Hechos y reglas conforman la base del conocimiento
Utiliza lenguajes de alto nivel que se parecen mucho a los lenguajes de las
personas
Una de las utilidades es la inteligencia artificial
Paradigmas de programación
Definición del lenguaje de
programación
Sintaxis (estructura)
Gramáticas libres de contexto, estructura léxica,
tokens
Semántica (significado)
Lenguaje natural
Semántica operacional
Semántica denotacional
Traducción del lenguaje
Traductor es un programa que acepta otros
programas escritos en un lenguaje y:
los ejecuta directamente (interprete)
los transforma en una forma adecuada para su
ejecución (compilador).
entrada
código
fuente
salida intérprete
Traducción
Pseudointérpretes: intermedio entre
interprete y compilador: lenguajes
intermedios
Operaciones de un traductor: analizador
léxico (tokens), analizador sintáctico,
analizador semántico, preprocesador
código
fuente traducción
adicional compilación
código
objeto código
ejecutable
Traducción
Tiempo de compilación y tiempo de
ejecución
Propiedades estáticas: tiempo de
compilación
Propiedades dinámicas: tiempo de
ejecución
Recuperación de errores (compilación y
ejecución)
Eficiencia y optimización (compilación o
ejecución)
LENGUAJES DE PROGRAMACIÓN
Programa
Conjunto de reglas, herramientas y condiciones
Permiten crear programas o aplicaciones
Tres grandes grupos
–Lenguaje máquina
–Lenguaje de bajo nivel
–Lenguaje de alto nivel
LENGUAJES DE PROGRAMACIÓN
Lenguaje máquina
Lo entiende una computadora sin necesidad de ninguna conversión
Las instrucciones se escriben en binario
Existen programas que transforman el código que escribe un programador en
código binario
LENGUAJES DE PROGRAMACIÓN
Lenguaje de bajo nivel
Las sentencias están formadas por códigos nemotécnicos
Dependen de la arquitectura de cada procesador
Una vez escrito un programa en lenguaje de bajo nivel, el programa
ensamblador lo traduce a lenguaje máquina
Lenguaje de alto nivel
Poseen sentencias formadas por palabras similares al lenguaje de las personas
Algunos ejemplos: Pascal, Delphi, Cobol, FoxPro, JAVA
Lenguajes visuales: Visual Basic, Visual FoxPro
LENGUAJES DE PROGRAMACIÓN
Historia
1950 1960 1970 1980 1990
Fortran(54)
PL/I(66)
Ada(95)
Java(96)
Basic(66)
C(72)
Pascal(70)
Cobol(58)
Algol(60)
Simula(67) Smalltalk(80)
C++(89)
EN
SA
MB
LA
DO
R
Eiffel (86)
Ada(83)
Visual
Basic(93)
Proceso de programación
Análisis del problema
Recolectar y analizar información para identificar
– Datos de entrada
– Datos de salida
– Proceso, que permita obtener los datos de salida deseados
Proceso de programación
Construcción de un algoritmo
Determinar cómo se llevará a cabo el proceso
Dividir el proceso en tareas más fáciles de implementar
Escribir el algoritmo
Ejemplo: incrementar un número de unidad en unidad hasta llegar a 100,
mostrando dicho número en cada iteración
Codificación del algoritmo
Elegir el lenguaje de programación adecuado a las necesidades del problema
Pruebas, ajustes y documentación
Depuración: para encontrar errores siguiendo la ejecución de un programa paso
a paso
Documentación
– Para el trabajo futuro
– Manuales de usuario
Definición algoritmos
Algoritmos
Método para resolver un problema mediante una serie de pasos precisos,
definidos y finitos
– preciso, tiene que indicar el orden de realización en cada paso
– definido, si el algoritmo se prueba dos veces, se debe obtener el mismo
resultado
– finito, el algoritmo tiene que tener un número determinado de pasos
Instrucciones
Expresión: constante o variable, es un conjunto de operadores
y operandos.
Ejemplo: x = 12 + 3 * 4
Operador
Numérico: +, -, *, /, div, mod
Relaciones: >, <, ==, >=, <=, <>
Lógicos: NOT, AND, OR
Operando: es una variable, una constante, etc.. un elemento que
tiene un valor.
Algoritmos
Pseudocódigo
• Lenguaje natural
• Permite escribir las instrucciones que conducen a la resolución
de problema utilizando estructuras básicas de programación
• Reglas
• Cada instrucción en una línea
• Conjunto de palabras reservadas: Inicio, Si, Si entonces, Si
no, Ciclo, Fin ciclo, Repetir Hasta, Mientras, Fin, etc …
• Referencia a módulos entre <NOMBRE-MODULO>
• Código identado
Pseudo-Código
Pseudo-Código
El pseudocódigo se utiliza para escribir
algoritmos en un lenguaje natural
Ejemplo 1: Sumar dos números. Desarrollo
Inicio
“Ingrese los 2 números a sumar”
Almacenarlos en num1,num2
resultado = num1 + num2
“La suma es: resultado”
Fin
Estructura
Programa: NOMBRE correspondiente al programa
Entorno:
Declaración de las estructuras de datos en general.
Algoritmo:
Secuencia de instrucciones que forman el programa.
Fin del programa.
Programa: ARRANCA_VEHICULO
Entorno:
Algorítmo:
Empujar el “clutch” con pie izquierdo
Poner en neutro
Dar ignición
Empujar el “clutch”
Poner la marcha primera
Quitar el freno de mano
Levantar el pie del “clutch” y acelerar
Fin del programa
Ejemplo
Pseudo-código
Ejemplo 2: Sacar el promedio de “n”
números. Desarrollo
Inicio
“Ingrese los n números”
Almacenarlos en X1,X2,…,Xn
resultado = X1+X2+…+Xn
resultado = resultado/n
“El promedio es: resultado”
Fin
Pseudo-Código
Ejemplo 3: Determinar el mayor de dos
números. Desarrollo
Inicio
“Ingrese los 2 números”
Almacenarlos en num1,num2
Si (num1 > num2) entonces
“El mayor es: num1”
Si no
“El mayor es: num2”
Fin
Pseudo-Código
Ejemplo 4: Sumar del 1 al 1000. Desarrollo
Inicio
x = 0
resultado = 0
Ciclo (x =< 1000)
resultado = resultado + x
x = x + 1
Fin Ciclo
“La suma es: resultado”
Fin
Pseudo-Código
Solución: Determinar el mayor de TRES
números. Desarrollo
Inicio
“Ingrese los 3 números”
Almacenarlos en X1,X2,X3
mayor = X1
Si (mayor < X2) entonces
mayor = X2
Si (mayor < X3) entonces
mayor = X3
“El mayor es: mayor”
Fin
El valor de X1 se
almacena en mayor
Pseudo-Código
Son diagramas que modelan un algoritmo, se
aprecia en ellos el flujo de los datos y las
acciones que los procesan.
Hay de 3 tipos:
1.- Secuenciales
2.- Selectivos
3.- Repetitivos
Diagramas de Flujo
Características de un diagrama de flujo
• Inicio y Fin
• Arriba abajo, izquierda derecha
• Un símbolo por acción
• A todos los procesos debe llegar una flecha y salir otra.
• Simetría en los elementos
Diagramas de flujo
Representa el flujo de datos de un proceso
Si No
Inicio
Entrada / Salida
Instrucción
Decisión
Fin
Elementos de un
diagrama de flujo
Diagramas de flujo
Elementos
Proceso. Acciones del programa
Decisión. Indica operaciones lógicas o de
comparación, así como expresiones
Entrada/Salida. Nos permite introducir datos en un
periférico, así como mostrarlos
Conector. Se coloca al principio y fin de un pedazo
de programa, enlaza dos partes de un programa.
Linea de flujo. Indica la dirección de ejecución del
algoritmo.
Salida. Usado para mostrar datos por impresora.
Terminal. Representa el inicio y fin de un programa
Subprograma. Usado para realizar una llamada a un
subprograma o subrutina.
Diagramas de flujo
Diagramas de Flujo Secuenciales
Inicio
acción 1
acción 2
…
acción n
Fin
Diagrama de Flujo
acción 1
acción n
acción 2
Pseudo-Código
…
Diagramas de Flujo Secuenciales
Inicio
“Ingrese los números”
Almacenar en X1,X2,…,Xn
prom=(X1+X2+…+Xn)/n
“El promedio es: prom”
Fin
Diagrama de Flujo
Almacenar en X1,X2,…,Xn
Pseudo-Código
Ejemplo: Calcular promedio de ‘n’ números
prom=(X1+X2+…+Xn)/n
“Ingrese los números”
“El promedio es: prom”
Diagramas de Flujo Selectivos
Diagrama de Flujo Pseudo-Código
Si (condición)
entonces acción 1
Si no
acción 2
acción 2
condición no si
acción 1
Diagramas de Flujo Selectivos
Diagrama de Flujo Pseudo-Código
Inicio “Ingrese los 2 números” Almacenarlos en num1,num2 Si (num1 > num2) entonces “El mayor es: num1”
Si no “El mayor es: num2”
Fin
num1>num2
no si
Ejemplo: Determinar el mayor de dos números
“Ingrese los 2 números”
Almacenarlos en num1,num2
“El mayor es: num1” “El mayor es: num2”
Diagramas de Flujo Selectivos 2
Diagrama de Flujo Pseudo-Código
Caso (Alternativa)
Alternativa 1 : acción 1
Alternativa 2 : acción 2
……
Alternativa n : acción n
Selectivos Múltiples
acción 1
alternativa
acción 2 acción n
1
2
n
…
Diagramas de Flujo Selectivos 2
Pseudo-Código
Inicio
Caso (Color)
Rojo : “Red”
Azul : “Blue”
Verde : “Green”
Fin
Ejemplo: Colores de Español a Inglés
Diagrama de Flujo
“Red”
Color
“Blue” “Green”
Rojo
Azul Verde
Diagramas de Flujo Repetitivos
Diagrama de Flujo Pseudo-Código
Ciclo <condición>
acción
acción
condición
sí
no
Diagramas de Flujo Repetitivos
Pseudo-Código
Inicio x = 0 suma = 0 Ciclo (x =< 1000) suma = suma + x x = x + 1 Fin Ciclo “La suma es: suma”
Fin
Ejemplo: Sumar números del 1 al 1000
Diagrama de Flujo
suma=suma+x
x=<1000
sí
no
x = 0
resultado = 0
Contadores, acumuladores e interruptores
Existen una serie de variables especiales usadas en estructuras
de tipo repetitivo bien para evaluar una condición o bien de ayuda
para realizar acciones.
Dichas variables son las siguientes:
• Contadores
• Acumuladores
• Interruptores
Representación de algoritmos
Contadores
Un contador es una variable cuyo valor se incrementa o
decrementa en cada iteración de un ciclo, sirve para averiguar cual
es el estado de un ciclo.
PSEUDOCÓDIGO:
Inicio
X=0
Repetir
X=X+1
ESCRIBE(“HOLA”)
Hasta (X=100)
Fin X=100?
X=0
SI
X=X+1
NO
INICIO
ESCRIBE “HOLA”
FIN
Representación de algoritmos
Acumuladores
Parecido a un contador, pero su uso es almacenar cantidades
procedentes de acciones en cada iteración.
PSEUDOCÓDIGO:
Inicio
X=0
SUMA=0
Repetir
X=X+1
SUMA=SUMA+X
Hasta(X=10)
ESCRIBE(SUMA)
Fin
X=10?
X=0, SUMA=0
SI
X=X+1
NO
INICIO
FIN
SUMA=SUMA+X
ESCRIBE SUMA
Representación de algoritmos
Interruptores
Un interruptor es una variable cuyo valor puede tomar los valores
verdadero o falso. Se usa para control de ciclos y estructuras
selectivas.
PSEUDOCÓDIGO:
Inicio
LLAMADA=FALSO
Repetir
ESPERO LLAMADA
SI LLAMADA ENTONCES
FABRICO PIZZA
LLEVO PIZZA
Hasta INFINITO
LLAMADA
LLAMADA=FALSO
SI
NO
INICIO
ESPERO LLAMADA
FABRICO PIZZA
LLEVO PIZZA
Representación de algoritmos
TAREA 1: Pseudo-Código & Diagramas
de Flujo
1. Hacer un algoritmo que calcule el factorial de un número determinado de enteros:
Factorial es el producto de los n números enteros positivos que van desde 1 hasta n y se simboliza por n! es decir n!= 1*2*3...(n-2)(n-1)n ej. 4!= 1*2*3*4=24
2. Diseñe un algoritmo que lea tres longitudes y determine si forman o no un triángulo:
Si es un triángulo determine de que tipo de triángulo se trata entre: equilátero (si tiene tres lados iguales), isósceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales). Considere que para formar un triángulo se requiere que: "el lado mayor sea menor que la suma de los otros dos lados".
3. Diseñe un algoritmo para encontrar la solución a la ecuación de segundo grado: ax²+bx+c=0 donde a≠0 viene dada por la fórmula:
La cantidad D=b²-4ac recibe el nombre de discriminante de la ecuación. Si el discriminante es negativo, no existe solución real. Si D=0, entonces existe una solución única. Si D es positivo(>0), existen dos soluciones x1, x2, X=-b/2a la fórmula nos da los dos valores buscados.
a
acbbx
2
42
Top Related