TC2 U6 T1 Contenidos v01
TC2 U6 T1 Contenidos v01
Imagen de Flickrcc
Imagen de Flickrcc
1 Programas y algoritmos
b) Programa objeto
c) Programa
b) Interpretado
c) Algoritmos
b) Interpretado
c) Ejecutable
Comprobar
Para construir un edificio, hay que empezar por los cimientos. Esto se puede aplicar tambin a
la programacin. A lo largo del tema, aprenders cmo se crea un programa y un algoritmo.
Pero antes de llegar a este punto, es necesario establecer una serie de normas o condiciones
que debe cumplir el diseo de un algoritmo para que su desarrollo posterior, y por tanto el del
programa que genere, sea correcto.
Ya te has dado cuenta de que no hemos explicado estas condiciones. Como son sencillas,
seguro que eres capaz de indicar a qu se refiere cada una de ellas.
- Debe cumplir las especificaciones para las que fue creado.
- Debe tener una o varias entradas que puedan ser interpretadas
por el ordenador.
- Debe poder realizarse en un nmero concreto de pasos.
- Debe definirse de forma precisa, evitando toda ambigedad.
- Debe tener una o varias salidas relacionadas con las entradas.
Comprobar
1.1 Programacin
La programacin se basa en una serie de factores los cuales se pueden interpretar como
normas a seguir por los programadores. stos son los siguientes:
Imagina que eres programador y tienes que disear un programa que consiste en "ir al
cajero automtico a sacar dinero". Te proponemos las siguientes opciones para resolver
el problema, pero ojo! en cada una de ellas falta algn factor fundamental en
programacin. Identifica cul es.
a) Despus de encontrar el cajero, la tarjeta no es vlida
en l.
b) Cuando llego al cajero, est estropeado y no puedo sacar
el dinero.
c) Despus de llegar al cajero e introducir la tarjeta, me
pide una clave, despus el tipo de moneda, despus otra
clave y al final me enva a otro cajero.
d) Para ir al cajero que est a 1 Km, decido pasar primero a
visitar a un amigo, tomar un caf en su casa y volver en
autobs.
Comprobar
ISO/IEC
9126
ISO/IEC
9241
Ahora que ya conoces los paradigmas de programacin, seras capaz de indicar cul es
su principal caracterstica?
- Basado en la lgica de primer orden, especifica qu
debe hacer el programa y no cmo hacerlo.
- Contienen instrucciones que dicen al ordenador cmo
realizar una tarea.
- Su objetivo es dividir el programa en mdulos de
forma que cada uno realice una funcin.
- Expresa un programa como un conjunto de objetos
que colaboran para realizar tareas.
Comprobar
En este apartado slo hemos expuesto las caractersticas generales de los paradigmas
de programacin. En el siguiente documento, podrs encontrar ejemplos de cada
modelo y ampliar los conocimientos sobre ellos.
Paradigmas de Programacin
Como en casi todos los campos, tambin existen mapas visuales de los paradigmas de
programacin. Te mostramos a continuacin uno de ellos publicado en un blog sobre
programacin: Lambda the ultimate. En l se muestran los distintos paradigmas, las
relaciones que hay entre ellos y los lenguajes de ms representativos de cada uno de
ellos.
La
primera
frase
define
perfectamente la intencin de los
paradigmas
de
programacin.
Aunque est en ingls, te la
traducimos: "Ms no es mejor (o
peor)
que
menos,
slo
es
diferente".
Ya has visto las fases de creacin de un programa, pero seras capaz de determinar
en que consite cada una de ellas?
Comprobar
Los algoritmos pueden ser expresados de muchas maneras, destacando el lenguaje natural,
los diagramas de flujo y el pseudocdigo. En la prctica, se utilizan los dos ltimos ya que el
lenguaje natural es ms extenso.
Para entenderlo mejor, te proponemos que estudies atentamente este ejemplo en el que se
realiza el algoritmo de un programa que leer dos nmero introducidos por el teclado y
mostrar en pantalla el menor de los dos.
Diagrama de flujo
Pseudocdigo
Ya te habrs dado cuenta de que aqu falta algo. A estas alturas del tema, todava no te
hemos explicado lo que significa cada uno de los smbolos utilizados para realizar un
diagrama de flujo.
En
el
ejercicio
anterior,
has
aprendido mucho sobre diagramas de
flujo. En la siguiente pgina web
encontrars desarrollados algunos
algoritmos importantes pero en
pseudocdigo. Se trata de un
proyecto de la Universitat Politcnica
de Valencia en el que se ha creado el
programa Grafo.
Son algoritmos complicados y no te
vamos a pedir que los estudies, pero
s que te fijes en el pseudocdigo ya
que entenders mucho mejor los
algoritmos.
Anlisis de grafos
Un ejemplo: algoritmo de Dijkstra
Img 3. Anlisis de grafos
Imagen de Grafos con licencia Creative
Commons
2. Lenguajes de programacin
Somos capaces de comunicarnos con el ordenador en su propio idioma? Puede que con un
poco de tiempo... No, no podramos realizar los programas "hablando" con 0 y 1. Los
lenguajes de programacin pretenden acercarse lo ms posible al lenguaje humano o natural
para comunicarnos con el ordenador en su propio idioma, es decir, en cdigo mquina.
a) La mquina.
b) Objetos.
a) BASIC
b) PASCAL
c) C
a) La mquina.
b) Objetos.
Lenguaje mquina
Es el lenguaje que entiende el ordenador y utiliza el cdigo binario. Fue el primero que se
utiliz, pero tiene algunas desventajas que han hecho que prcticamente ya no se utilice.
Aunque los programas se cargan directamente en la memoria, con lo cual la velocidad de
ejecucin es alta, no se puede utilizar el mismo programa en ordenadores de diferentes
caractersticas. Tambin es poco manejable porque las instrucciones son difciles de escribir
y de memorizar.
Lenguaje ensamblador
Es ms sencillo que el
lenguaje mquina, pero
no puede ser ejecutado
directamente
por
el
ordenador, necesitando
la mediacin de un
programa traductor que
es
el
llamado
ensamblador.
Los
primeros
ensambladores
surguieron en la dcada
de los 50, pero en la
actualidad
poseen
grandes posibilidades de
abstraccin, lo cual los
hace ms fciles de
manejar.
Los
ensambladores
avanzados
permiten
utilizar procedimientos
de
alto
nivel,
declaracin
de
funciones, variedad en
los
tipos
de
datos
(estructuras, registros,
uniones)
y
procesamiento
de
macros.
Img 4. Estructura de un programa ensamblador
Imagen obtenida en Universidad Carlos III con licencia Creative Commons
2) El ensamblador es:
a) Un programa traductor.
b) Instrucciones de un lenguaje ensamblador.
b) Difcil de escribir.
a) Datos.
b) Cdigo.
c) Nemotcnicos.
Si,
es
otra
vez
el
programa
"HOLA,
MUNDO".
Los lenguajes de alto nivel son aquellos que utilizan el lenguaje natural para realizar
programas y, por tanto, necesitan otro programa para generar el cdigo mquina ya que
el ordenador no los entiende directamente. Este programa puede ser:
FORTRAN
COBOL
BASIC
PASCAL
"HOLA, MUNDO"
en C
MODULA-2
A finales de los aos 70, Nicklaus Wirth, creador del
lenguaje PASCAL, dirige el desarrollo del MODULA-2 con la
intencin de incluir las necesidades de la programacin de
sistemas del PASCAL. Este nuevo lenguaje supera las
carencias del PASCAL y ha sido adoptado como
herramienta para la enseanza de la programacin.
ADA
Se public en 1983 con el nombre de ADA en honor de la
considerada primera programadora de la historia Augusta
Ada Byron, condesa de Lovelace. Tiene grandes ventajas
como la compilacin separada y los tipos abstractos de
datos, pero su mayor inconveniente es su gran extensin.
DELPHI
Es una herramienta visual basada en lenguaje PASCAL. La
primera versin de DELPHI fue lanzada por Borland en
1994 y es un lenguaje capaz de generar aplicaciones de
menor tamao y mucho ms rpidas que las de productos
similares.
Comprobar
PERL
Fue diseado por Larry Wall en 1987 y destaca por no tener
ninguna de las limitaciones de los otros lenguajes de script.
Es un lenguaje especializado en el procesamiento de textos,
particularmente
extraer
y
validar
las respuestas a
cuestionarios incluidos en pginas Web.
PYTHON
Es un lenguaje de programacin interpretado creado por Guido van Rossum en el
ao 1991. Python es el lenguaje opositor a Perl ya que se considera mucho ms limpio
y elegante para programar.
En la actualidad Python se desarrolla como un proyecto de cdigo abierto.
El
desarrollador
de Python,
Tim Peters,
describi la
filosofa del
lenguaje en
una serie de
principios de
legibilidad y
transparencia,
contrarios al
cdigo opaco
u ofuscado.
Este cdigo se
dice que es
"pythonico" y
constituye El
Zen de
Python.
Curioso
verdad?
Img 7. El Zen de
Python
Imagen de
produccin propia
JAVA
Fue presentado por Sun
Microsystems en 1995. James
Gossling
y
su
equipo
desarrollaron
un
nuevo
lenguaje
de
programacin
capaz
de
adecuarse
a
cualquier entorno de ejecucin
(portable) y basado en la
simplicidad.
JAVA es un lenguaje de
programacin
orientado
a
objetos, independiente de la
plataforma en la que se
ejecute y preparado para
trabajar en internet.
Applets de java
Seguro que has odo estas palabras muchas veces, pero qu es un applet?
Un applet es un componente de una aplicacin que se ejecuta en un navegador web.
Un applet Java es un applet escrito en el lenguaje de programacin Java que se
ejecutan utilizando la Java Virtual Machine (JVM).
Estos son slo algunos ejemplos y en los enlaces siguientes encontrars muchos ms.
recopilacin de applets de java
applets de fsica
applets de matemticas
RUBY
Fue creado por Yukihiro Matsumoto en el ao 1993
Japn. Es un lenguaje de programacin basado en
paradigma de la orientacin a objetos.
Es rpido y sencillo ya las variables no necesitan
declaradas, tiene una sintaxis clara y simple y la gestin
memoria se realiza automticamente.
en
el
se
de
de
textos,
SQL
El Lenguaje de Consulta Estructurado SQL (Structured Query Language) es un
lenguaje declarativo de acceso a bases de datos relacionales que permite realizar
operaciones como consultas o modificaciones en stas. Su predecesor es el SEQUEL de
IBM, aunque fue Oracle quien lo desarroll. En 1986 fue publicado y el ao siguiente
confirmado por la ISO.
Una de sus caractersticas es el manejo del lgebra y el clculo relacional. Permite
una alta productividad en codificacin ya que se orienta al manejo de conjuntos de
registros, y no a registros individuales. Una sola sentencia puede equivaler a uno o
ms programas en un lenguaje de bajo nivel.
Los sistemas ms conocidos que utilizan SQL son DB2, MySQL, ORACLE y SQL
Server.
Clasificacin
programacin
lenguajes
de