Documente Academic
Documente Profesional
Documente Cultură
a la programacin
M. Jess Marco Galindo
Josep Vilaplana Past
PID_00149895
FUOC PID_00149895 Introduccin a la programacin
ndice
Introduccin .......................................................................................... 5
Objetivos ................................................................................................. 6
1. Conceptos bsicos de programacin .......................................... 7
1.1. Definiciones .................................................................................. 7
1.2. Ejemplos ....................................................................................... 10
2. La programacin como disciplina de ingeniera .................... 12
2.1. Etapas en el desarrollo de un programa ....................................... 12
2.1.1. Anlisis de requerimientos. Definicin del problema ...... 13
2.1.2. Diseo del algoritmo ......................................................... 13
2.1.3. Implementacin del programa ......................................... 14
2.1.4. Pruebas .............................................................................. 14
2.1.5. Operacin, mejoras y mantenimiento .............................. 15
2.2. Conclusiones y motivacin .......................................................... 15
3. Objetivos de la asignatura ............................................................ 17
3.1. Etapas del diseo de un algoritmo ............................................... 17
3.1.1. Entender el problema ........................................................ 18
3.1.2. Plantear y planificar la solucin ....................................... 19
3.1.3. Formular la solucin ......................................................... 19
3.1.4. Evaluar la correccin de la solucin ................................. 19
3.2. Implementacin de un programa ................................................ 20
Resumen .................................................................................................. 22
Glosario ................................................................................................... 23
Bibliografa ............................................................................................ 23
FUOC PID_00149895 5 Introduccin a la programacin
Introduccin
Este mdulo introduce el mundo de la programacin como disciplina de la in-
geniera. A partir de aqu se comprendern mejor los objetivos que hay que al-
canzar para convertirse en un buen programador. En realidad, ste es, como
veris, el objetivo de esta asignatura.
La finalidad bsica de la programacin es solucionar problemas mediante el
ordenador. Al igual que en cualquier disciplina, el aprendizaje debe ser progre-
sivo: primero hay que aprender a resolver problemas sencillos a partir de un
conjunto de herramientas bsicas, y ms adelante se intentan resolver proble-
mas ms complejos que requieren ms herramientas. As pues, este material
est formado por una serie de mdulos con una estructura orientada al apren-
dizaje progresivo de los contenidos y, por lo tanto, es muy importante asimilar
los contenidos de un mdulo antes de pasar al siguiente.
Antes de entrar en materia tenemos que saber de qu hablamos. Para poder se-
guir el discurso de la asignatura es indispensable conocer, en primer lugar, el
significado de los conceptos con que trabajaremos. En el primer apartado de
este mdulo definiremos estos conceptos bsicos.
A partir de los conceptos podremos dar un paso adelante y seguir con el segun-
do apartado, que nos presenta la programacin como una disciplina de la in-
geniera y nos muestra cmo hay que emprender el desarrollo de un programa
para convertirse en un buen profesional. Pensad que la programacin no es un
arte, sino una tcnica.
Con todo esto, ya seremos capaces de entender los objetivos de la asignatura,
que se exponen en el tercer apartado.
Una vez situados y conocidos todos estos aspectos, en el mdulo siguiente es-
taremos en condiciones de empezar el aprendizaje de las herramientas y m-
todos que necesitamos para desarrollar un programa.
FUOC PID_00149895 6 Introduccin a la programacin
Objetivos
Los objetivos de este mdulo son los siguientes:
1. Comprender los conceptos bsicos de programacin, algoritmo y programa.
2. Conocer las etapas bsicas de desarrollo de un programa.
3. Entender la diferencia entre diseo e implementacin, y comprender la
importancia que el diseo de algoritmos tiene en la programacin.
4. A partir de la comprensin de los conceptos bsicos, conocer cules son los
objetivos de la asignatura.
FUOC PID_00149895 7 Introduccin a la programacin
1. Conceptos bsicos de programacin
Para entender en qu consiste la programacin como disciplina y cules son
los objetivos de esta asignatura, necesitamos, antes que nada, comprender los
conceptos bsicos que deberemos utilizar. As pues, los definiremos de una
manera sencilla y clara.
1.1. Definiciones
Situmonos primero en uno de los conceptos ms importantes con los que tra-
bajaremos: el concepto de algoritmo.
Por lo tanto, podemos pensar en un algoritmo como una receta o guin que
hay que seguir para resolver un problema determinado, normalmente a partir
de una informacin que tenemos de entrada (por ejemplo, una receta para co-
cinar un plato). Un algoritmo, sin embargo, es un mtodo general para resol-
ver todos los casos posibles del mismo problema y, por lo tanto, debe ser
independiente de los datos de entrada de cualquier caso concreto.
Para comprender completamente este concepto de algoritmo, ser preciso de-
finir ahora los conceptos entorno, accin, proceso y procesador.
El entorno es el conjunto de objetos necesario para llevar a cabo una tarea de-
terminada. El estado del entorno en un momento determinado es la descrip-
cin del estado de los objetos del entorno en aquel momento concreto. Un
algoritmo acta de manera que hace cambiar progresivamente el estado de su
entorno.
Una accin es un suceso finito en el tiempo y que tiene un efecto definido y
previsto. Una accin puede actuar sobre un entorno y lo puede modificar, es
decir, se parte de un estado inicial y se llega a un estado final diferente. Una
accin elemental es una accin que el destinatario de un algoritmo entiende
y sabe procesar.
Un proceso es la ejecucin de una o varias acciones. El algoritmo expresa unas
pautas que hay que seguir para llevar a cabo una tarea concreta. El encargado
de llevar a cabo el proceso es el procesador. Un procesador es una entidad ca-
Un algoritmo se define como una descripcin no ambigua y precisa de
las acciones que hay que realizar para resolver un problema bien defini-
do en un tiempo finito.
Encontraris los objetivos
de los fundamentos de la
programacin en el apartado 3
de este mdulo.
Definicin de algoritmo
segn el diccionario
Segn el Diccionario de la
Lengua Espaola de la R.A.E,
algoritmo es:
Conjunto ordenado y finito de
operaciones que permite hallar
la solucin de un problema.
Ejemplo de entorno
y estado
En el caso de una receta de
cocina, el entorno estara con-
formado por los utensilios de
cocina (ollas, sartenes, etc.)
y los ingredientes.
El estado de las sartenes, por
ejemplo, cambiar de limpias
a sucias.
FUOC PID_00149895 8 Introduccin a la programacin
paz de comprender y ejecutar eficazmente un algoritmo. El destinatario del al-
goritmo es, pues, el procesador.
Ahora que ya sabemos qu es un algoritmo, debemos decidir cmo lo expresa-
mos. Deberemos encontrar un lenguaje que nos permita realizar una descrip-
cin no ambigua y precisa de las acciones que componen nuestros algoritmos.
Denominamos lenguaje natural el lenguaje que normalmente utilizamos
para comunicarnos. No obstante, debido a su complejidad y ambigedad, ve-
remos que el lenguaje natural no nos permite definir las acciones con la pre-
cisin y claridad que queremos. En realidad, si nosotros actuamos como
procesadores de alguien que nos indica cmo hay que realizar una tarea, a me-
nudo pedimos puntualizaciones y aclaraciones de qu hay que hacer.
Necesitamos, pues, un lenguaje ms reducido y preciso. En los mdulos siguien-
tes describiremos un lenguaje concreto creado ex professo para poder expresar
cualquier algoritmo con la claridad y precisin necesarias. Lo denominaremos
lenguaje algortmico o notacin algortmica.
En esta asignatura nos dedicaremos a aprender las tcnicas bsicas para disear
algoritmos. Por lo tanto, necesitaremos aprender este lenguaje algortmico que
acabamos de mencionar. En el mdulo Introduccin a la algortmica, descri-
biremos el lenguaje algortmico, y en los mdulos siguientes aprenderemos a
utilizarlo de manera progresiva, conjuntamente con las tcnicas para el diseo
de algoritmos.
Una vez hemos llegado a este punto, ya hemos definido la mayora de los con-
ceptos principales con los que trabajaremos; y prestad atencin al hecho de
que, curiosamente, todava no hemos hablado de programas.
Definiremos un programa en relacin con todo lo que hemos definido hasta
ahora. Para hacerlo, necesitamos aclarar tambin qu es un ordenador o
computador.
El ordenador procesar nuestros algoritmos, pero para hacerlo es necesario
que entienda nuestro lenguaje algortmico. Ser preciso, pues, transcribir
nuestros algoritmos a un lenguaje de programacin, es decir, a un lenguaje ca-
paz de ser comprendido por un ordenador.
Aunque ya tenemos una idea de lo qu es, un ordenador se puede defi-
nir formalmente como una mquina compuesta por circuitos electrni-
cos que tiene la capacidad de resolver problemas bajo el control de unas
instrucciones dadas. Un ordenador est formado bsicamente por un
procesador, la memoria y los dispositivos de entrada y salida que permi-
ten su comunicacin con el exterior.
Un procesador puede ser
una persona, una lavadora,
un ordenador, etc.
La lengua espaola o la inglesa
seran ejemplos de lenguajes
naturales.
Lenguajes no naturales
No es la primera vez que os
encontris en la situacin
de tener que utilizar una nueva
notacin (diferente del lengua-
je natural) para expresar
conceptos; por ejemplo, estis
muy acostumbrados a utilizar
la notacin matemtica
(+, , >, log, etc.).
Ejemplos de lenguajes
de programacin
Algunos lenguajes de programa-
cin son Pascal, C, C++, Cobol,
Fortran, VisualBasic, Java, etc.
Otra definicin
de ordenador
En este punto, podemos defi-
nir tambin un ordenador
como un autmata de clculo
gobernado por un programa.
FUOC PID_00149895 9 Introduccin a la programacin
Para expresar y disear algoritmos, siempre utilizamos la notacin algortmi-
ca; por otro lado, el uso y la definicin de lenguajes de programacin estn
sujetos a factores de disponibilidad, tecnologa actual, etc.
En esta asignatura, a medida que aprendamos a disear algoritmos con nues-
tro lenguaje algortmico, aprenderemos tambin a implementarlos en un len-
guaje de programacin para que se puedan ejecutar en nuestro ordenador.
Bsicamente, hay dos tipos de lenguajes de programacin: los lenguajes im-
perativos o lenguajes procedimentales y los declarativos, que a la vez se di-
viden en lenguajes funcionales y lenguajes lgicos.
En esta asignatura estudiaremos slo la programacin imperativa, que tradicio-
nalmente ha sido la ms extendida y utilizada.
Algunos lenguajes de programacin facilitan el seguimiento de una metodo-
loga concreta de programacin. Una de las ms ampliamente aceptada actual-
mente es la orientacin a objetos*.
En asignaturas posteriores veris el paradigma de la orientacin a objetos apli-
cado a la programacin. En esta asignatura introducimos los fundamentos b-
sicos en los que iris profundizando ms adelante. Prestad atencin al hecho
de que lo realmente importante es llegar a saber disear un algoritmo que re-
suelva un problema determinado. El hecho de codificarlo para obtener el pro-
grama correspondiente consiste, simplemente, en realizar una traduccin.
El lenguaje algortmico que definiremos y utilizaremos para disear algorit-
mos es suficientemente genrico como para que resulte bastante sencillo rea-
lizar la codificacin en cualquier lenguaje de programacin imperativo.
A medida que avancis en esta materia, entenderis ms a fondo algunas de
estas definiciones que puede ser que inicialmente no os queden completamente
claras. Por lo tanto, conviene que repasis continuamente este mdulo.
As pues, un programa es slo la codificacin de un algoritmo en un len-
guaje que el ordenador entienda.
En la programacin imperativa, los programas son secuencias de ins-
trucciones que deben llevarse a cabo como una receta o guin para re-
solver un problema determinado.
La orientacin a objetos determina un estilo de programacin que se
caracteriza por el modo de manipular la informacin.
Ejemplos de lenguajes
de programacin
a) Ejemplos de lenguajes
imperativos: Pascal, Cobol y C.
b) Ejemplos de lenguajes
declarativos:
Lenguajes funcionales: Lisp.
Lenguajes lgicos: Prolog.
Los materiales correspondientes
a la codificacin en un lenguaje de
programacin los encontraris en el aula.
Con el estudio de estos materiales
podris implementar programas. Os
aconsejamos que empecis a partir
de los diseos que encontraris en estos
mdulos.
* Por ejemplo, C++, Object Pascal
son, respectivamente,
extensiones de C y Pascal que
facilitan el uso de esta
metodologa.
En la asignatura Programacin
orientada al objeto se explicar
en qu consiste la programacin
bajo el paradigma de la orientacin
a objetos.
FUOC PID_00149895 10 Introduccin a la programacin
1.2. Ejemplos
En este subapartado veremos algunos ejemplos que nos permitirn aclarar de
manera intuitiva los conceptos que acabamos de definir.
En realidad, algunos de los conceptos que hemos visto son aplicables a cualquier
entorno del mundo real, no estn restringidos al entorno de la informtica.
Podramos pensar en una lavadora como un autmata, ya que es una mquina
capaz de realizar una tarea de manera autnoma, en este caso, lavar la ropa.
Si pedimos a nuestra lavadora que nos lave la ropa blanca, la lavadora seguir
el proceso siguiente:
Utilizar el agua y el jabn del cajn.
Calentar el agua a 40 grados.
Dar vueltas durante 20 minutos (lavar).
Expulsar el agua.
Tomar ms agua.
Dar vueltas durante 10 minutos (primer aclarado).
Expulsar el agua.