Está en la página 1de 17

Introduccin a la Programacin

Resolucin de un problema:
1. Definicin o anlisis del problema
2. Diseo del algoritmo
3. Transformacin del algoritmo en un programa
4. Ejecucin y validacin del programa
Un algoritmo es un mtodo para resolver
un problema
Algoritmo Programa
Problema
Algoritmo
Conjunto de operaciones que se utiliza para resolver un
problema especfico
Especifica la secuencia de operaciones que se han de
realizar para la transformacin de los datos de entrada
en datos de salida.
El algoritmo se puede llevar a cabo con ordenadores
una vez convertido en un programa de ordenador.
La traza de un algoritmo se define como la ejecucin
manual de forma secuencial de las sentencias que lo
componen. Se puede ir calculando el contenido de las
variables a medida que se va ejecutando un programa.
Programacin Estructurada
Partes de un algoritmo:
Entrada
Proceso
Salida
Cules son los datos de entrada
necesarios?
Cules son los datos de salida?
Qu hay que hacer para producirlos?
Diseo descendente (refinamiento).
qu hace? cmo lo hace?
Anlisis del problema Diseo de un algoritmo Resolucin del problema con el ordenador
Resolucin de un problema
Definicin del problema Especificaciones de entrada Especificaciones de salida
Anlisis del problema
Diseo descendente Refinamiento por pasos Herramientas de programacin
Diseo de un algoritmo
Codificacin del programa Ejecucin del programa Comprobacin del programa
Resolucin del problema con ordenador
Herramientas de Programacin
Diagrama de flujo
Diagrama N-S (Nassi-Schneiderman)
Pseudocdigo
Diagrama de flujo
Proceso Decisin
no
si
Linea
conectora
Conector
distinta pag.
Entrada/
Salida
Terminal
Decisin
mltiple
Indicador
de direccin
Conector
Proceso
manual
impresora
teclado
pantalla
Proceso
predefinido
Historia de los Lenguajes
40-50. Programacin en cdigo mquina: lenguajes mquina y ensamblador
50-60. Primeros lenguajes de alto nivel:
FORTRAN (FORmula TRANslator): clculos matemticos
LISP (LISt Processing): clculos simblicos
ALGOL (ALGOrithmic Language)
COBOL (COmmon Business Oriented Language): gestin empresarial
70. Consolidacin de tendencias:
Smalltalk: programacin orientada a objetos
Pascal: lenguaje docente
C: programacin de sistemas informticos
Prolog (PROgramming in LOGic)
ML: programacin funcional
80. Mejoras en cada tendencia
Ada: sucesor de Pascal
C++: sucesor de C
90. Lenguajes para la red: Java
Lenguajes de Programacin
Instrucciones bsicas:
De entrada/salida
Aritmtico-lgicas
Selectivas
Repetitivas
Tipos de lenguajes:
Lenguaje mquina
Lenguaje de bajo nivel (ensamblador)
Lenguajes de alto nivel
Lenguajes Mquina
Lenguajes binarios inteligibles por la mquina, ya que
las cadenas de instrucciones especifican operaciones y
direcciones de memoria
Dependen del hardware
Ventaja: velocidad de ejecucin por no necesidad de
traduccin.
Inconvenientes:
dificultad y lentitud en la codificacin
poca fiabilidad
dificultad de verificacin
slo ejecutables con el mismo procesador
Lenguajes de Bajo Nivel
(Ensamblador)
Ms fciles que los lenguajes mquina
Tambin dependientes de la mquina
Instrucciones mnemotcnicas

Facilidad de codificaci
Facilidad de codificaci

n?
n?
Traduccin a lenguaje mquina

Velocidad de ejecuci
Velocidad de ejecuci

n?
n?
Programa
ENSAMBLADOR
Programa
objeto
en lenguaje
mquina
Programa
fuente
en lenguaje
ensamblador
Lenguajes de Alto Nivel
Mayor facilidad de codificacin
Independencia de la mquina: Transp
ortables
ortables
Varias traducciones del programa:
Ejecuci
Ejecuci

n m
n m

s lenta
s lenta
No se aprovechan los recursos de la mquina
Ms memoria
C C++ COBOL FORTRAN BASIC
PASCAL
PASCAL VISUAL BASIC
Clipper Ada
Modula-2 Prolog
LISP Smalltalk
Visual Object
Delphi
Delphi Miranda
Traductores de Lenguaje

Compiladores:
Compiladores:
Programas que traducen los programas
fuente escritos en lenguajes de alto
nivel a programas objeto escritos en
lenguaje mquina.
Programa
fuente
Compilador
Programa
objeto
Linkador
Programa
ejecutable
Estructura General de un
Programa
Cabecera:
program nombre;
Cuerpo del algoritmo:
Bloque de declaraciones:
const nombre=valor;
tipos de datos definidos por el usuario type
var variable1, variable2:tipo_de_dato;
Bloque de instrucciones, con comentarios entre (* *)
begin
de asignacin variable:=valor_o_expresion;
de lectura readln(variable1,variable2);
de escritura writeln(texto,variable1,variable2);
de bifurcacin
end.
http://webpages.ull.es/users/cryptull/InfI/ejemplo1.pas
Datos Simples
Numrico
Carcter
char
Lgico
boolean
Entero
int
"Real
real
Datos
Constantes
const
Variables
var
Expresiones
http://webpages.ull.es/users/cryptull/InfI/ejemplo2.pas
Ejemplo Bsico
PROGRAM Ejemplo;
CONST
Mil = 1000;
VAR
Entero: integer;
BEGIN
write('Introduzca un entero ');
readln (Entero);
Entero := 2 * Entero; (*duplicamos*)
writeln ('El doble es: ', Entero);
readln;
END.
http://webpages.ull.es/users/cryptull/InfI/ejemplo3.pas
Prioridades
Prioridades
de operadores
Operador Significado Tipos de
operandos
Tipo de
resultado
^,**
Exponenciacin Entero o real Entero o real
+
Suma Entero o real Entero o real
-
Resta Entero o real Entero o real
*
Multiplicacin Entero o real Entero o real
/
Divisin Real Real
div
Divisin entera Entero Entero
mod
Mdulo (resto) Entero Entero
de operadores
^
no
/, *, div, mod, y
+, -, o
<, >, =, <=, >=, <>
http://webpages.ull.es/users/cryptull/InfI/ejemplo4.pas
Funcin Descripcin Tipo de
argumento
Resultado
abs(x)
valor absoluto de x entero o real igual que el
argumento
arctan(x)
arcotangente de x entero o real real
cos(x)
coseno de x entero o real real
cuadrado(x)
cuadrado de x entero o real igual que el
argumento
ent(x)
parte entera de x real entero
exp(x)
e elevado a x entero o real real
ln(x)
logaritmo neperiano
de x
entero o real real
log10(x)
logaritmo en base
10 de x
entero o real real
raiz2(x) raiz cuadrada de x entero real
redondeo(x)
redondea x al entero
ms prximo
real entero
sen(x) seno de x entero o real real
trunc(x) parte entera de x real entero
sqr(x)
int(x)
sqrt(x)
round(x)
sin(x)
http://webpages.ull.es/users/cryptull/InfI/ejemplo5.pas
Lectura y Escritura
read versus readln: Despus de pulsar la tecla INTRO, el cursor
permanece (o salta) inmediatamente despus del ltimo carcter
introducido. Es conveniente leer variables por separado. Se suele usar
readln al final de los programas para leer la ltima salida.
write versus writeln: Se visualizan todo en la misma lnea y al terminar, el
cursor se queda (o salta) al comienzo de la siguiente lnea.
Formatos de escritura:
x := 265.7892;
writeln(x :10 :4); { 265.7892}
writeln(x :10 :2); {265.79}
y := 14;
writeln(y :4); {14}
z := AB
writeLn(z :4); {AB}
http://webpages.ull.es/users/cryptull/InfI/ejemplo6.pas