Anda di halaman 1dari 43

SINTAXIS Y SEMNTICA DE UN

LENGUAJE DE PROGRAMACIN DE
ALTO NIVEL
Fundamentos de Programacin
FIEC04341

Fundamentos de Programacin
ESPOL
2015

SSLP/ 1

Agenda
El rol de los algoritmos en el proceso de
resolucin de problemas.
Conceptos y propiedades de algoritmos.
Conceptos bsicos de lenguajes de
programacin.
Interpretadores y compiladores.
Ambientes de programacin.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 2

El rol de los algoritmos en el proceso


de resolucin de problemas.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 3

Comunicacin con el Computador

No es una tarea fcil.

Instrucciones

Fundamentos de Programacin
ESPOL
2015

Debemos aprender a
realizar las
instrucciones de forma
correcta para que el
computador lo
entienda

SSLP/ 4

Cmo resolvemos un problema


utilizando el computador?
El proceso de resolver un problema es complejo y se han
desarrollado metodologas formales.
De las metodologas podemos distinguir cuatro pasos bsicos:
Anlisis del problema (Entender el Problema)
Diseo de la solucin (Configurar un plan)
Implementacin de la solucin (escribir la solucin en un
lenguaje de programacin para que el computador
resuelva el problema o ejecute el plan trazado)
Revisin (Mirar hacia atrs)

Fundamentos de Programacin
ESPOL
2015

SSLP/ 5

Metodologa para resolver problemas


usando el computador
La solucin es correcta?
Hay una manera ms
sencilla de obtenerla?

ANLISIS DEL
PROBLEMA
Qu debe hacer el programa
Definir y entender el
problema
Conocer las variables de
entrada, los procesos y las
salidas
Identificar las reas de
conocimiento.

REVISIN

DISEO DE LA
SOLUCIN
Cmo va a resolver el
problema el programa
Divide y vencers
Algoritmo que lo resuelve
Tcnicas de
representacin de la
solucin

Fundamentos de Programacin
ESPOL
2015

IMPLEMENTACIN

Decirle exactamente al
computador qu hacer.
Implementar la
solucin en un lenguaje
formal que el
computador entienda

SSLP/ 6

Problemas diarios a resolver

Tomar el bus para ir a la Universidad


Comer
Jugar al ftbol
Poner un foco
Subir y bajar escaleras

Fundamentos de Programacin
ESPOL
2015

SSLP/ 7

Conceptos y propiedades de
algoritmos.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 8

Algoritmos
Claro

Sin ambigedades
para poder seguir y
ejecutar cada uno de
sus pasos

Para que todos los


pasos puedan
llevarse a cabo

Algoritmo
Efectivo

Finito

Fundamentos de Programacin
ESPOL
2015

Debe tener un
principio y un
final

SSLP/ 9

Algoritmos
Un algoritmo es una lista bien definida, ordenada y
finita de operaciones que permite llegar a la solucin
de un problema.
Dado un estado inicial y una entrada, a travs de
pasos sucesivos y bien definidos se llega a un estado
final, obteniendo una solucin.
Algoritmo

Entrada

Instrucciones

Fundamentos de Programacin
ESPOL
2015

Salida

SSLP/ 10

Una analoga sobre algoritmos


Podemos considerar un algoritmo como una receta de
cocina, donde los ingredientes son los datos iniciales
(entradas).
La receta nos indica una serie de pasos finitos que se
deben realizar para obtener el resultado, que en este
caso es el plato final preparado (salidas).
Puede existir ms de una solucin al mismo problema,
sin embargo el resultado final es el mismo (Hay varias
maneras de preparar el mismo plato, y el sabor puede
variar de acuerdo a la preparacin).
Fundamentos de Programacin
ESPOL
2015

SSLP/ 11

Una analoga sobre algoritmos


El encargado de escribir el algoritmo
para resolver el problema es el
programador (chef).
No siempre el programador ser quien
implemente la solucin al problema
(cocinero).
El algoritmo debe estar bien escrito para
que cualquier persona (cocinero novato)
pueda implementar dicha solucin y
obtener el mismo resultado.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 12

Formas de representar Algoritmos


Lenguaje Formal
(natural)

Diagrama de
Flujo

Lenguaje
hablado por las
personas
Puede no ser
muy claro
Suele ser
ambiguo

Representacin
grfica de la
solucin
Se utilizan
figuras
llamadas
Grafos

Fundamentos de Programacin
ESPOL
2015

Pseudocdigo
Utilizan
estructuras
formales
Parecido a un
lenguaje de
programacin

SSLP/ 13

Lenguaje Formal
Algoritmo para revisar un vehculo antes de un viaje:

Fundamentos de Programacin
ESPOL
2015

SSLP/ 14

Diagrama de Flujo
Inicio

Entrada de datos
(teclado)

Instrucciones
Asignacin y Clculos

Salidas de resultados
(pantalla)
Fin
Fundamentos de Programacin
ESPOL
2015

SSLP/ 15

Pseudocdigo
Algoritmo para ir al trabajo en el auto:
AVANZA 500
GIRA DER 180
AVANZA 90

Manual de Pseudocdigo:
http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo
Fundamentos de Programacin
ESPOL
2015

SSLP/ 16

Ejemplo: La Tienda de Libros


Considere el siguiente problema:
Un cliente americano compra un libro en una tienda
localizada en la frontera con Canad en 41.27 dlares
canadienses. El cliente le da al dependiente 40 dlares
americanos, conociendo que el dlar americano tiene un
cambio mayor que el canadiense. La poltica de la tienda
es retornar el cambio con el mismo tipo de moneda con la
cual paga el cliente. Suponga que un dlar canadiense
cuesta 0.72 dlares americanos.
Qu pasos debe realizar el dependiente para dar el
cambio correcto?
Fundamentos de Programacin
ESPOL
2015

SSLP/ 17

Anlisis del Problema


Se deben responder las siguientes preguntas:

Qu debe hacer el programa?


Cules son las entradas?
Cules son las salidas ?

Fundamentos de Programacin
ESPOL
2015

SSLP/ 18

Diseo de la Solucin
1. Inicio.
2. Obtener el precio del libro.
3. Obtener el monto de dinero recibido en dlares
americanos.
4. Obtener la tasa de cambio.
5. Calcular el equivalente en dlares canadienses:
MONTO_CANADIENSE = DINERO_RECIBIDO TASA

6. Calcular el cambio canadiense:

CAMBIO = MONTO_CANADIENSE - PRECIO_DEL_LIBRO

7. Calcular el equivalente en dlares americanos:


CAMBIO_DOLARES = CAMBIO X TASA

8. Dar el cambio en dlares al cliente.


9. Fin.
Fundamentos de Programacin
ESPOL
2015

SSLP/ 19

Implementacin de la solucin
Implementar la solucin al
problema usando un lenguaje
de programacin: Python, C,
JAVA, entre otros.
Se usan estructuras formales
en un lenguaje que el
computador
entiende
(sintaxis y semntica).
Se obtiene un programa.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 20

Revisin de los Resultados


Se prueba el programa y se verifica si la solucin que
provee es la correcta.

Se puede simular con diferentes entradas para analizar el


comportamiento del programa.
Fundamentos de Programacin
ESPOL
2015

SSLP/ 21

Ejercicio: La Licencia de Conducir


Considere el siguiente problema:

Una persona se presenta ante la Comisin de Trnsito para


solicitar su licencia de conducir. El funcionario que recepta
la solicitud debe verificar los requisitos de acuerdo a la ley,
con respecto a la edad del solicitante.
Qu pasos debe realizar el funcionario para saber la edad
del solicitante y entregar o no la licencia de conducir?

No considerar prerrequisitos como aprobacin de la escuela de


conduccin, o exmenes de habilidades fsicas.
Fundamentos de Programacin
ESPOL
2015

SSLP/ 22

Conceptos bsicos de
Lenguajes de Programacin.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 23

Qu es un Computador?
HW

SW
Sistema Operativo
Controladores de HW
Aplicaciones

CPU
Memoria
I/O
Fundamentos de Programacin
ESPOL
2015

SSLP/ 24

Qu es un Computador?
Es un dispositivo capaz de realizar clculos y tomar
decisiones lgicas mucho ms rpido que los
humanos.
El computador procesa datos bajo el control de
instrucciones secuenciales a los que llamamos
programas.
Estos programas
programacin.

se

escriben

Fundamentos de Programacin
ESPOL
2015

en

lenguajes

de

SSLP/ 25

Lenguajes de Programacin
El computador solo comprende unos y ceros.

En que lenguaje nos comunicamos?


Binario/Hexadecimal
Ingls
Fundamentos de Programacin
ESPOL
2015

SSLP/ 26

Lenguajes de Programacin
Un computador por si solo NO es inteligente.
Los usuarios deben expresar sus necesidades en un
lenguaje no ambiguo.

Este curso es una introduccin a la programacin,


con nfasis en impartir las habilidad bsicas para
programar en cualquier lenguaje de programacin
que se desee aprender.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 27

Para comunicarnos con los computadores existen


El ensamblador no es mucho mejor.
Elvarias
lenguaje alternativas:
de mquina es poco prctico.
Se escriben muchas lneas para
programas relativamente sencillos.

Lenguaje de Mquina (Bits)


Lenguaje de Bajo Nivel (Ensamblador)
Lenguaje de Alto Nivel (Logo, Scilab, C)

Parecidos al ingls con notacin matemtica. Se programa mucho ms rpido.

Lenguaje
Natural

Alto nivel
Bajo Nivel
Mquina

Fundamentos de Programacin
ESPOL
2015

Lenguaje del
Computador

SSLP/ 28

Interpretadores y compiladores.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 29

Compiladores e Interpretadores
El paso de traduccin de lenguaje natural a
lenguaje de mquina debe ocurrir en algn
momento.
Dependiendo de cundo se realice, se denomina:
Compilacin: Una sola vez, al terminar de escribir el
programa.
Interpretacin: Cada vez que se ejecuta el programa,
durante la ejecucin.

Ambas estrategias tienen ventajas y desventajas.


Fundamentos de Programacin
ESPOL
2015

SSLP/ 30

Proceso de Compilacin
Cdigo fuente (.c)
/*Programa Sencillo*/
#include <stdio.h>
void main()
{

printf(Hola !\n);

Compilador
Traductor

Cdigo objeto(.obj)
0101010101010101010
0101010101010101010
0101010101010101010

Programa
Ejecutable (.exe)

Libreras (.lib)
Fundamentos de Programacin
ESPOL
2015

SSLP/ 31

Compiladores vs. Interpretadores


Compilador

Interpretador

1. Toma como entrada todo el


cdigo fuente.
2. Genera un cdigo intermedio de
objeto independiente del
compilador .
3. Es ms rpido de ejecutar.
4. Los programas son compilados
una sola vez.
5. Los errores son mostrados
despus que se verifica todo el
programa.
2015/5/21

1. Toma como entrada una


instruccin simple.
2. No se genera cdigo intermedio.
3. Es mas lento de ejecutar.
4. Los programas necesitan ser
interpretados cada vez que se
ejecutan.
5. Los errores son mostrados por
cada instruccin interpretada

Fundamentos de Programacin
ESPOL
2015

SSLP/ 32

Grficos con LOGO


Comando

Reaccin

forward 50

Avanzar 50 pasos

right 90

Girar 90

clearscreen

Reiniciar Pantalla

forward 100
right 120
forward 100
right 120
forward 100
right 120

Fundamentos de Programacin
ESPOL
2015

fd 200
rt 144
fd 200
rt 144
fd 200
rt 144
fd 200

SSLP/ 33

Grficos con LOGO

Fundamentos de Programacin
ESPOL
2015

SSLP/ 34

Grficos con LOGO


La curva se construye poco a poco.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 35

Fundamentos de Programacin
ESPOL
2015

SSLP/ 36

Prueba

Investiga

Divirtete

Fundamentos de Programacin
ESPOL
2015

SSLP/ 37

Ambientes de programacin.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 38

Ambiente de Desarrollo Integrado


I D E por sus siglas en ingls.
Existen diversos desde los ms simples hasta los mas
complejos.
Normalmente consta de editor de cdigo fuente,
herramientas de construccin automticas y un
depurador.
La mayora tienen autocompletado inteligente.
Algunos son dirigidos a un lenguaje de programacin
especficos otros no.

2015/5/21

Fundamentos de Programacin
ESPOL
2015

SSLP/ 39

Python Consola

Python IDE

2015/5/21

Fundamentos de Programacin
ESPOL
2015

SSLP/ 40

Manejo de Errores

Errores de sintaxis: Suceden mientras se escribe el


cdigo fuente.
Errores lgicos: Suceden al momento de ejecutarse
el programa. Por ejemplo una divisin por cero.

Fundamentos de Programacin
ESPOL
2015

SSLP/ 41

Puntos para recordar


Para resolver un problema y expresar su solucin
formalmente, podemos utilizar los Algoritmos.
Existe ms de una forma de expresar una solucin a un
problema.
El software es una parte indispensable para el
funcionamiento de una computadora.
Escribir un programa significa codificar una serie de
instrucciones en un lenguaje de programacin.
Los lenguajes de programacin son traducidos a lenguaje
de mquina con la ayuda de un intrprete o compilador.
Fundamentos de Programacin
ESPOL
2015

SSLP/ 42

Prxima sesin

TIPOS DE DATOS, VARIABLES Y OPERADORES


BSICOS

Fundamentos de Programacin
ESPOL
2015

SSLP/ 43

Anda mungkin juga menyukai