Está en la página 1de 21

Unidad 1

Conceptos generales
Introducción. Uso de las computadoras

Objetivo de estudiar lenguajes y técnicas de


programación:

Usar la computadora como herramienta para la


resolución de problemas
Introducción. Uso de las computadoras

Cómo operan las computadoras?


Hay que conocer:

– La arquitectura
– El ritmo operativo
– Las instrucciones elementales que reconoce y
ejecuta
– El lenguaje que comprende
Lenguajes

CODIFICACION: Hasta fines de la década del ‘50

CODIFICACION ≠ PROGRAMACION (incluye el


diseño de los algoritmos)
Lenguajes

Características de la codificación:
– Dependiente del hardware
– Codificación artesanal: aplicación de artificios para
obtener máximo rendimiento de la máquina
– Mucho tiempo en descubrir errores
– Representación de un programa complejo 
secuencia lineal no estructurada de comandos
Lenguajes

Lenguajes de alto nivel permiten expresar nuestros


algoritmos en una notación adecuada que puede ser
reconocida y ejecutada por la computadora.

Cómo lograrlo?

Ordenes para Ordenes para


COMPILADOR
máquina Ideal máquina Física
Lenguajes

Beneficios de los lenguajes de alto nivel:


– Usuarios y programas nuevos
– Transportabilidad
– Legibilidad
Lenguajes

Lenguaje de máquina
Lenguaje ensamblador
Ejemplo: ADD (suma), DIV (dividir)
Lenguaje de alto nivel
Ejemplo:
If (x >0) then write (‘Es positivo’)
Si (x >0) entonces escribir (‘Es positivo’)
Lenguajes

Del programa fuente al programa ejecutable

Programa fuente (alto nivel) M instrucc

Compilación

Programa objeto (ensamblador)


Enlace

Programa ejecutable ( máquina) N microinstrucc


Gramática, Sintaxis, Semántica y Pragmática de un Lenguaje
ESTRUCTURA SINTACTICA  CÓMO están
constituidos los programas en dicho lenguaje.
Se especifica con gramáticas independientes de
contexto.
ESTRUCTURA SEMÁNTICA
La SEMÁNTICA  SIGNIFICADO.
Por ejemplo: la fecha 04/08/2001 podría referirse a 4
de agosto de 2001 o al 8 de abril de 2001

PRAGMÁTICA  UTILIDAD PRÁCTICA en dicho


lenguaje. Ej. Pascal es de propósito general.
Algoritmo: Concepto. Definiciones

Algoritmo  resuelve un problema

Problema: proposición dirigida a averiguar el modo de


obtener un resultado conociendo ciertos datos.
Algoritmo: Concepto. Definiciones

Definiciones:
• Conjunto de instrucciones perfectamente expresadas de
tal forma que pueden ser ejecutadas por una máquina o
persona, sin apelar a conocimientos adicionales a los que
requieren las mismas instrucciones
• Especificación paso a paso del planteamiento de la
solución de un problema en forma clara, precisa, de
modo que para una entrada dada en un número finito de
pasos arroje una salida.
• Conjunto finito y no ambiguo de etapas expresadas en un
cierto orden, para unas condiciones iniciales, permite
resolver un problema en un tiempo finito.
Algoritmo: Concepto. Definiciones

Definicion de algoritmo basado en el concepto de programa


(Wirth):
Todo programa describe una sucesión de transformaciones
sobre el conjunto de sus variables. Si el mismo programa
se ejecuta dos veces con valores iniciales diferentes,
sería un error afirmar que los dos procesos o cálculos son
iguales. Sin embargo, ambos exhibirán el mismo
comportamiento. La descripción de ese comportamiento,
sin hacer referencia a un procesador en particular, se
llama usualmente algoritmo
Algoritmo: Concepto. Definiciones

ALGORITMO  PROGRAMA

Debe especificar las reglas de comportamiento hasta en


los más mínimos detalles.
Debe componerse según reglas de notación estrictas.
Etapas en la resolución de problemas computacionales

• Definición
• Especificación
• Análisis
• Diseño
• Codificación
• Ejecución
• Depuración
• Mantenimiento
Definición: Modelización de problemas

 Abstracción: es el proceso de análisis del


mundo real para interpretar los aspectos
esenciales de un problema y expresarlo en
términos precisos.
 Modelización: consiste en abstraer un
problema del mundo real y simplificar su
expresión, tratando de encontrar los
aspectos principales que se pueden resolver
(requerimientos), los datos que se han de
procesar y el contexto del problema.
Especificación de problemas
 Precondición: es una información que se conoce como
verdadera antes de iniciar el programa.
 Poscondición: es una información que debiera ser verdadera al
concluir un programa, si se cumple adecuadamente el
requerimiento pedido.
 Especificación: es el proceso de analizar los problemas del
mundo real y determinar en forma clara y concreta el objetivo
que se desea.

Especificar un problema significa establecer en forma unívoca el


contexto, las precondiciones y el resultado esperado, del cual se
derivan las poscondiciones.

Se debe aclarar que el obtener un modelo del problema no implica


que el problema sea computable.
Análisis del problema

A partir del modelo se debe elaborar el análisis


de la solución mediante la descomposición
en subproblemas (divide y vencerás) y en
etapas sucesivas (refinamiento sucesivo)
hasta obtener subproblemas cuya solución
pueda ser implementada en la computadora.
Este análisis implica la determinación de
entradas, salidas y relaciones (procesos) que
vinculan entradas con salidas.
Diseño del algoritmo

En la etapa de diseño se establece cómo hace el


programa la tarea especificada.
En esta etapa se diseña un módulo (subprograma) para
cada subproblema. Los programas así estructurados
se dicen que tienen un diseño modular y se basan en
los principios de la programación modular.
Cada módulo puede ser diseñado, codificado,
comprobado y depurado independientemente y
posteriormente combinados para obtener el
programa.
Codificación
Es la escritura en un lenguaje de programación de la
representación del algoritmo.

Cuidados durante la programación


La estructura y la organización: claves para manejar
programas grandes.
Organización  mejora la legibilidad. Cada parte
puede entenderse en forma relativamente
independiente del resto.
Estructura  ayuda a mantener la situación dentro del
límite de atención humana.
Resolución de problemas
Las etapas que siguen son:

• Ejecución
• Depuración: detección de errores y
corrección.
• Mantenimiento: modificación y actualización
del programa.

También podría gustarte