0% encontró este documento útil (0 votos)
76 vistas32 páginas

Sesion 1

Este documento presenta la primera sesión de un curso de programación en Python. Introduce conceptos clave como algoritmos, programas, lenguajes de programación e implementación. Explica elementos básicos de programación como secuencia, decisión e iteración. También incluye un ejemplo de algoritmo para preparar un café y actividades para los estudiantes.

Cargado por

SandraIes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
76 vistas32 páginas

Sesion 1

Este documento presenta la primera sesión de un curso de programación en Python. Introduce conceptos clave como algoritmos, programas, lenguajes de programación e implementación. Explica elementos básicos de programación como secuencia, decisión e iteración. También incluye un ejemplo de algoritmo para preparar un café y actividades para los estudiantes.

Cargado por

SandraIes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 32

Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Sesión 1. Introducción a la Programación


Estructurada

Este documento forma parte del curso Programación con Python del CEFIRE CTEM.

Esta obra está sujeta a la licencia Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional


de Creative Commons. Para ver una copia de esta licencia, visitad
http://creativecommons.org/licenses/by-nc-sa/4.0/.

Autoría: José Luis Tomás Navarro


Revisión: Mª Paz Segura Valero
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

ÍNDICE

1.- Conceptos Previos

2.- Elementos Básicos: Secuencia, Decisión e Iteración

3.- Variables

4.- Módulos

5.- Fases en la Creación de un Programa

Página 1
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

1.- Conceptos Previos

Los conceptos que vamos a ver son los de Algoritmo, Programa, Lenguaje de
Programación e Implementación o Codificación.

Algoritmo => es una secuencia o lista finita de pasos que se deben realizar para
resolver un problema en un tiempo finito. Es importante señalar que se ha de definir el
orden en el que han de realizarse los pasos.

El término de algoritmo lo podemos emplear en cualquier ámbito no solo es exclusivo


de la informática o de la programación.

Normalmente se suele emplear el lenguaje natural para escribir la secuencia de pasos


de un algoritmo. Delante del primer paso de cada algoritmo se suele colocar la
palabra INICIO y después del último paso utilizaremos la palabra FIN.

Ejemplo: “Algoritmo para preparar un café”


1. INICIO
2. Abrir Tapa Cafetera
3. Si Hay Café
4. ...
N. FIN

Vemos que cada uno de los pasos del algoritmo está asociado a un número, que nos
ayuda a ver con más claridad cual es el orden en el se llevan a cabo los pasos. La
numeración de los pasos no es obligatoria, aunque en los primeros algoritmos que
realicemos nos puede servir de ayuda.

En la siguiente página, se muestra un ejemplo muy sencillo de un algoritmo, según el cual


vamos a retirar nuestro vehículo de un parking y tenemos que pagar en el cajero
automático. Suponemos que nos encontramos delante del cajero y que no hay nadie
delante. Para simplificar el ejemplo no vamos a centrarnos en el detalle de cómo vamos a
pagar el importe del parking.

Página 2
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

1. INICIO
2. Sacar Ticket
3. Introducir Ticket en el cajero
4. Si tenemos vale de descuento
4.1 Introducir vale en el cajero
5. Fin Si
6. Mientras el cajero calcula el importe
6.1 Esperar
7. Fin Mientras
8. Pagar importe
9. Retirar Ticket
10. FIN

Aunque entraremos en más detalle en el siguiente ejemplo, comentar que en el paso 4


aparece una pregunta Si ... y en el paso 6 una estructura repetitiva Mientras ...

Para realizar todas las actividades de esta sesión, tan solo necesitamos disponer de un
procesador de textos.

Actividad Diseño Algoritmo Preparación Café


Siguiendo con el primer ejemplo de la página anterior, se trata de diseñar un algoritmo
que nos permita preparar un café con una de las cafeteras antiguas, es decir, de las que
no son exprés.

Se propone realizar este algoritmo aunque la solución al mismo se encuentra en el


documento "Solución Algoritmo Preparación Café.pdf".

Los comentarios que explican la solución, se encuentran a continuación.

A la hora de resolver este algoritmo, en los pasos que forman parte del mismo, vemos que
aparecen preguntas en las que empleamos la palabra Si, por ejemplo:

Página 3
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Si el depósito esta lleno


Estas preguntas se corresponden con lo que se conoce con el nombre de Estructuras


Condicionales. La respuesta a estas preguntas, sólo puede tener dos posibles
valores: cierto o falso.

En el caso de que la respuesta sea cierta, se llevarán a cabo los pasos que hay
dentro del Si. No es el caso, pero asociado a la pregunta Si puede existir el bloque
del Si No, que es opcional.

De manera que si existe y la respuesta a esta pregunta es falsa, se llevarán a cabo


las acciones o pasos del Si No. La necesariedad o no de incluir el apartado Si No en la
resolución de un algoritmo, depende de la naturaleza del problema que tengamos que
resolver.

En el siguiente esquema podemos apreciar cómo funciona la estructura condicional:

Si Formulación de una Pregunta


Paso 1 del Si
Conjunto de Pasos que sólo se llevan a cabo

cuando la respuesta a la pregunta es cierta
Paso N del Si
Bloque Opcional

Si No
Paso 1 del Si No Conjunto de Pasos que sólo se llevan a cabo
… cuando la respuesta a la pregunta es falsa
Paso N del Si No
Fin Si

También vamos a encontrar la palabra Mientras… En este caso se trata de


Estructuras Repetitivas del tipo:

Página 4
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Mientras …
Paso 1 del Mientras
Conjunto de Pasos que sólo se llevan a cabo

mientras la respuesta a la pregunta es cierta
Paso N del Mientras
Fin Mientras

Paso 1 después del Mientras


Conjunto de Pasos que sólo se llevan a cabo
...
cuando la respuesta a la pregunta es falsa
Paso N después del Mientras

En este caso Mientras la respuesta a la pregunta sea cierta, se van a ir repitiendo los
pasos que hay dentro de la Estructura Mientras. Cuando la respuesta a la pregunta sea
falsa se continuarán realizando los pasos que hay después de Fin Mientras.

En la solución del algoritmo de preparación del café, tenemos varias estructuras de este
tipo, por ejemplo, la que aparece a continuación:

9. Mientras el agua no llegue a la válvula

9.1. Poner agua

10. Fin Mientras

Es importante resaltar que en la estructuras repetitivas los pasos que se encuentran


entre el Mientras y el Fin Mientras se van a estar repitiendo continuamente. Es decir,
cuando acaben de realizarse los pasos volveremos otra vez al paso donde se encuentra
el Mientras, de manera que se volverá a realizar la pregunta.

Esta estructura finalizará cuando la respuesta a la pregunta del Mientras sea falsa.

Página 5
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Programa => es similar a un algoritmo. La diferencia radica en que los pasos que han
de resolver un problema deben escribirse en un determinado lenguaje de
programación y es ejecutado en un ordenador. Por tanto, un programa sería la
secuencia de instrucciones que indican las acciones que ha de ejecutar un ordenador
para resolver un determinado problema.

Lenguaje de Programación => está formado por un conjunto de palabras reservadas,


símbolos y reglas sintácticas que se utilizan para construir un programa. Ejemplo:
Python, C, Pascal, Cobol, PHP, Java, etc.

Implementación o Codificación => es el proceso de traducción de un algoritmo a un


determinado lenguaje de programación para la creación de un programa. Esto implica
la escritura de las sentencias o instrucciones en un determinado lenguaje de
programación.

Página 6
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

2.- Elementos Básicos: Secuencia, Decisión e Iteración


Los tres elementos básicos que se utilizan en la programación estructurada para
construir programas son: la secuencia, la decisión y la iteración.

Estos tres elementos son los que ya hemos detectado de forma intuitiva a la hora de
construir algoritmos, con lo cual podemos ver que no son elementos exclusivos de la
programación, sino que son inherentes a la resolución de cualquier problema de forma
estructurada.

Secuencia
Estos elementos son los más simples y se utilizan cuando tenemos que llevar a cabo
unas acciones o pasos, uno detrás del otro. Otra característica es que se realizan todos
los pasos sin que dependan de ninguna condición. A continuación podemos ver un
ejemplo:
16. Poner cafetera en el fuego
17. Encender el fuego

Decisión
Este elemento nos permite formular preguntas, de manera que en función de la
respuesta a la pregunta formulada, cierta o falsa, se llevará a cabo un bloque de
acciones u otro. Recordemos el esquema que veíamos en el punto anterior:

Si Formulación de una Pregunta


Paso 1 del Si
Conjunto de Pasos que sólo se llevan a cabo

cuando la respuesta a la pregunta es cierta
Paso N del Si
Bloque Opcional

Si No
Paso 1 del Si No Conjunto de Pasos que sólo se llevan a cabo
… cuando la respuesta a la pregunta es falsa
Paso N del Si No
Fin Si

Página 7
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Como podemos ver, el bloque de pasos del Si y el bloque de pasos del Si No son
excluyentes, es decir, o se realiza uno o se realiza el otro pero nunca los dos en la
misma situación.

Ejemplo:
7. Si el depósito está lleno
7.1 Vaciar depósito
8. Fin Si

Iteración
Este elemento nos permite repetir un bloque de acciones o pasos, podemos distinguir dos
tipos de estructura repetitiva o iterativa, las estructuras repetitivas variables y las
estructuras repetitivas fijas. Las primeras las utilizamos cuando no conocemos a priori
cuantas veces tenemos que repetir los pasos que se encuentran dentro del bloque repetir.
El esquema sería el siguiente:

MIENTRAS Condición
Paso 1

Paso N
FIN MIENTRAS

Todos los ejemplos de estructuras repetitivas en la solución al algoritmo de preparación


del café son estructuras repetitivas variables. Por ejemplo:

9. Mientras el agua no llegue a la válvula


9.1 Poner agua
10. Fin Mientras
12. Mientras el café no llegue al borde
12.1 Poner café
13. Fin Mientras

Página 8
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Las estructuras repetitivas fijas, por el contrario, las utilizamos cuando sí que
conocemos a priori cuantas veces tenemos que repetir los pasos. Para representar este
tipo de estructuras repetitivas se suelen emplear dos notaciones diferentes, aunque las
dos son compatibles.

A continuación podemos apreciar estas dos notaciones diferentes.

REPETIR N VECES PARA CADA ELEMENTO

Paso 1 Paso 1

… …

Paso N Paso N

FIN REPETIR FIN PARA

Parece que la primera forma queda más clara porque se expresa de forma explícita el
número de veces que se han de repetir los pasos. En cambio, la segunda forma es más
genérica.

Ejemplo: Suponemos que tenemos un número determinado de vasos, en este caso 10,
dentro de un lavavajillas. Los vasos están limpios y tenemos que sacarlos y guardarlos.
Las acciones para realizar esta tarea, utilizando las dos variantes, serían las siguientes:

REPETIR 10 VECES PARA CADA VASO

Sacar Vaso Sacar Vaso

Guardar Vaso Guardar Vaso

FIN REPETIR FIN PARA

Los pasos que se encuentran dentro de la estructura repetitiva, se denominan


cuerpo de la estructura repetitiva o cuerpo del bucle.

Página 9
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Para resolver un problema vamos a poder combinar estos tres elementos de la forma
y modo que necesitemos. Es decir, podemos anidar un elemento dentro de otro,
siempre y cuando el anidamiento sea correcto.

Las preguntas que nos podemos formular en este punto son:


- ¿ Puedo emplear una estructura condicional dentro de otra estructura condicional?
- ¿ Puedo utilizar una estructura repetitiva dentro de otra estructura repetitiva?
- ¿ Puedo emplear una estructura condicional dentro de una estructura repetitiva?
- ¿ Puedo hacer uso de una estructura repetitiva dentro de una estructura condicional?
- ...
La respuesta a todas estas preguntas es SI.

La combinación de los tres elementos básicos que emplearemos para resolver un


problema dependerá de la naturaleza del mismo. Es decir, dependerá de qué es lo
que tenemos que resolver o cuál es el problema que se nos plantea.

Como ya hemos comentado anteriormente, lo único con lo que debemos de tener


cuidado es con el anidamiento correcto de estas estructuras.

Por ejemplo, los siguientes fragmentos de algoritmos no serían correctos porque las
estructuras condicionales e iterativas no están bien anidadas.

Mientras condición 1 Si condición 1


Paso 1 mientras Paso 1 Si
Si condicion 2 Mientras condicion 2
Paso 1 Si Paso 1 Mientras
... ...
Fin Mientras Fin Si
.... ....
Paso N Mientras Paso N Si
Fin Si Si No
...
Fin Mientras

Página 10
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

En lugar de esto, lo correcto sería lo siguiente:

Mientras condición 1 Si condición 1


Paso 1 mientras Paso 1 Si
Si condicion 2 Mientras condicion 2
Paso 1 Si Paso 1 Mientras
... ...
Fin Si Fin Mientras
.... ....
Paso N Mientras Paso N Si
Fin Mientras Si No
...
Fin Si

Como podemos apreciar, los elementos o pasos secuenciales son los que aparecen
como pasos individuales, es decir, Paso 1 Si, Paso 1 Mientras, los cuales se realizan
uno detrás del otro.

Llegados a este punto, se dejan planteadas dos actividades para crear dos algoritmos. El
objetivo es poder disponer de material suficiente para practicar y familiarizarnos con todos
los conceptos vistos hasta ahora. No son tareas obligatorias pero pueden servirnos para
tener recursos de apoyo a la hora de asimilar bien los conceptos.

A continuación se adjuntan los enunciados de los dos algoritmos. Las soluciones a estos
algoritmos se encuentran en los siguientes documentos: Solución Algoritmo Apertura
Puerta.pdf y Solución Algoritmo Suma Numeros.pdf.

Actividad Voluntaria: Diseño Algoritmo Apertura de una Puerta


Se trata de diseñar un algoritmo que nos permita abrir una puerta, para ello contaremos
con un llavero con un número indeterminado de llaves. Tendremos que ir probando con
cada una de las llaves, hasta que encontremos una llave que abra la puerta. Las llaves
que probemos y no abran la cerradura, tendremos que sacarlas del llavero.

Página 11
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Suponemos que alguna de las llaves abrirá la puerta.

Suponemos que todas las llaves entran en la cerradura pero, evidentemente, no todas la
pueden abrir.

Actividad Voluntaria: Diseño Algoritmo Suma de 2 Números


En esta ocasión, vamos a plantear la secuencia de pasos (algoritmo) que se tendrían que
llevar a cabo, en un determinado lenguaje de programación, para solicitar 2 números al
usuario por teclado, sumarlos y visualizar el resultado por la pantalla.

La secuencia de pasos sería la siguiente:


1. Visualizar: "Introduce el primer número"
2. Leer numero1
3. …

Aunque en esta actividad se menciona lo de "lenguaje de programación", evidentemente,


para crear el algoritmo utilizaremos el lenguaje natural, tal y como hemos hecho en el
algoritmo de la preparación de un café. Se ha empleado esta nomenclatura porque la
resolución de este problema ha de llevarse a cabo en un ordenador, según se desprende
el enunciado cuando dice: "solicitar 2 números al usuario por teclado, sumarlos y
visualizar el resultado por la pantalla".

Ampliación 1:
Ahora una vez introducidos los 2 números, se calcularán y visualizarán las tres
operaciones aritméticas restantes: resta, multiplicación y división.

Actividad Entrega Obligatoria: Diseño Algoritmo Recogida Campo de Lechugas


Suponemos que tenemos un campo de lechugas organizado como una matriz de filas y
columnas.

Sabemos que el campo cuenta con diez columnas pero no sabemos cuantas
lechugas maduras hay en cada columna, es decir, habrá un número indeterminado de

Página 12
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

lechugas maduras en cada columna.

Suponemos que todas las columnas cuentan con el mismo número de lechugas.

Además, contamos con un robot para poder recoger el campo de lechugas.

La entrega de esta actividad es obligatoria. Más adelante se plantearán tres


ampliaciones de esta actividad que deben considerarse actividades de entrega voluntaria.

A continuación, podemos ver el aspecto que presenta el campo y que está orientado en
dirección Norte-Sur.

. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .

Col. 1 Col. 2 Col. 3 Col. 4 Col. 5 Col. 6 Col. 7 Col. 8 Col. 9 Col. 10

Página 13
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Inicialmente el robot se encuentra mirando hacia el norte, debajo de la primera


columna.

Las órdenes que conoce el robot son las que se recogen en la siguiente tabla:

ORDEN DESCRIPCIÓN
Muevete El robot avanza una posición de manera que, si está dentro del
campo, pasará de una lechuga a otra.
Coge Lechuga El robot es capaz de recoger o cortar una lechuga, siempre y
cuando esté situado encima de una lechuga.
Gira Izquierda El robot girará 90º a la izquierda.

En principio el robot no sabe girar a la derecha, con lo cual, cada


vez que queramos que el robot gire 90º a la derecha, tendremos
que utilizar la orden gira izquierda varias veces.
Guarda Lechuga Permite guardar la lechuga en un depósito que lleva incorporado el
robot.

El robot también es capaz de determinar si son ciertas las siguientes preguntas:

PREGUNTA DESCRIPCIÓN
Hay Lechuga El robot es capaz de determinar si en la posición sobre la que
se encuentra existe una lechuga.
Esta la Lechuga Madura El robot es capaz de determinar si en la posición sobre la que
se encuentra existe una lechuga madura.
Es Dirección Norte El robot es capaz de determinar si se encuentra orientado en
dirección norte.
Es Dirección Sur El robot es capaz de determinar si se encuentra orientado en
dirección sur.
Es Dirección Este El robot es capaz de determinar si se encuentra orientado en
dirección este.
Es Dirección Oeste El robot es capaz de determinar si se encuentra orientado en
dirección oeste.

Página 14
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Suponemos que cuando el robot sale del campo, o bien porque se han acabado las
lechugas de una columna o bien cuando entra debido a que tiene que empezar a
recoger una columna, siempre se mueve una posición.

Respecto a las preguntas que conoce lel robot, vamos a poder formulárselas de forma
parecida a los siguientes ejemplos:

Si Esta la Lechuga Madura


Si es Dirección Norte
Si Hay Lechuga

La respuesta a estas preguntas sólo puede ser cierta o falsa.

La actividad consiste en diseñar un algoritmo con las órdenes adecuadas para que el
robot recoja todas las lechugas maduras del campo.

La estrategia que podemos seguir para simplificar el problema consiste en pensar


inicialmente que el robot sólo tiene que recoger una columna de lechugas.

Como las columnas tienen un número indeterminado de lechugas parece razonable


pensar que tenemos que emplear una estructura repetitiva para poder recoger una
columna.

INICIO

Mientras ...
… Recogida de una columna
Fin Mientras

FIN

Página 15
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Una vez que tenemos resuelta la recogida de una columna vamos a centrarnos en
recoger todo el campo.

Recordemos que el campo cuenta con diez columnas y que todos los pasos empleados
para recoger una columna tenemos que repetirlos diez veces. Queda claro que tenemos
que emplear una estructura repetitiva. La diferencia respecto a las estructuras repetitivas
que hemos empleado en las actividades que hemos visto anteriormente ( estructuras
repetitivas variables) es que en esta ocasión sí que conocemos a priori cuantas veces
tenemos que realizar la repetición (10).

Como ya comentábamos en el punto 2, a este tipo de estructuras las denominaremos


estructuras repetitivas fijas. Recordemos las dos notaciones para ellas.

REPETIR N VECES PARA CADA ELEMENTO


Paso 1 Paso 1
… …
Paso N Paso N
FIN REPETIR FIN PARA

La solución completa a la recogida del campo debería tener una estructura semejante a
ésta:

INICIO
REPETIR 10 VECES

Mientras …
... Recogida de una columna Recogida de todo el campo
Fin Mientras
Pasos para cambiar de columna

FIN REPETIR
FIN

Página 16
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Podemos apreciar como, después de recoger una columna, se tienen que encontrar los
pasos destinados a cambiar de columna. Es decir, debemos situar al robot en disposición
de recoger la siguiente columna.

El documento que tenemos que crear se llamará: actividad_sesion_1.odt, el cual


subiremos al enlace del Moodle de la sesión que dice: Entrega Actividad Obligatoria
Sesión 1.

Página 17
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

3.- Variables

En este punto vamos a introducir y explicar el concepto de variable aplicado al


diseño de algoritmos.

Las variables son unos elementos que utilizan todos los lenguajes de
programación. Explicarlas en este momento nos ayudará a entender mejor su manejo
cuando abordemos el lenguaje de programación Python.

Podemos definir una variable como un objeto o elemento que nos permite
almacenar información. Todas las variables tienen un nombre que las identifica y
permite distinguirlas del resto de variables.

Para poder entender mejor este concepto podemos representar gráficamente una
variable como una caja o compartimento con un nombre que nos permite almacenar
alguna información.

Nombre Variable

Contenido de la variable

En un algoritmo o en un programa podemos tener tantas variables como necesitemos.

Nombre Variable 1 Nombre Variable 2 Nombre Variable N

Contenido de la variable 1 Contenido de la variable 2 ... Contenido de la variable N

Evidentemente, la utilidad de las variables no consiste sólo en almacenar


información, ésta se almacena para luego poder ser consultada, procesada,
visualizada, etc.

Página 18
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Por ejemplo, una de las formas que tenemos de almacenar un valor en una variable lo
podemos ver cuando un usuario introduce un valor por teclado y éste es asignado a una
variable. En el algoritmo de la suma de dos números tenemos un ejemplo de esto en el
paso Leer numero1, tal y como podemos ver a continuación:

INICIO
Visualizar: "Introduce el primer número"
Leer numero1
...
FIN

Al llevar a cabo el paso Leer numero1, podemos considerar que el valor introducido por
teclado se almacena en la variable numero1. Si el usuario ha tecleado un 5, tendremos
dentro de la caja o compartimento representado por la variable con el nombre numero1,
un 5.
numero1

Una vez almacenado este valor podemos utilizarlo posteriormente para procesarlo,
por ejemplo, siguiendo con el algoritmo para realizar la suma de 2 números.

Calcular suma, suma = numero1 + numero2

El valor contenido en la variable numero1, es utilizado o consultado en la expresión


que calcula la suma, tal y como podemos ver.

Este ejemplo también nos sirve para explicar que otra de las formas para almacenar
información en una variable es a través de una expresión.

Si suponemos que el contenido de la variable numero1 es 5 y el contenido de la variable

Página 19
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

numero2 es 4, después de realizar la expresión aritmética de la suma, el contenido de la


variable suma será 9, tal y como podemos ver en la siguiente imagen:

suma numero 1 numero 2

9 5 + 4
=

A continuación, vamos a ver otra forma de consultar el valor de una variable.

Recordemos la ampliación del algoritmo de la suma de los 2 números, cuando teníamos


que realizar las tres operaciones restantes: resta, multiplicación y división. En el caso de
la división teníamos que preguntar si el número 2 era distinto de cero para poder realizar
la división:

INICIO numero2
...
Si numero2 es distinto de 0 4
...
Si No
...
Fin Si
...
FIN

La flecha que se ha mostrado arriba, y que va desde el compartimento que representa


la variable hacia la estructura condicional, intenta representar la consulta que se
realiza desde el algoritmo para preguntar si el valor almacenado en la variable numero2
es distinto de 0.

Por último, cuando queríamos visualizar el resultado de la suma en el algoritmo


empleábamos el siguiente paso:

Página 20
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

INICIO
...
Visualizar resultado_suma
...
FIN

En este caso, el contenido de la variable suma será visualizado por la pantalla, como
podemos apreciar en la siguiente imagen:

resultado_suma

9 9

La idea es que, tanto a la hora de procesar una variable en una expresión, como en la
consulta en una expresión condicional o a la hora de visualizar el contenido de la misma,
utilizar simplemente el nombre de la variable implica que estamos accediendo a su
compartimento para recuperar su valor.

Una cuestión importante que tenemos que resaltar, relacionada con las variables se
refiere al nombre que empleamos para hacer referencia a las mismas. Los nombres de
las variables deben de ser identificativos, esto quiere decir que el nombre debe estar
relacionado con la información que almacena.

Por ejemplo, no hubiera tenido mucho sentido nombrar a las variables que almacenan los
números 1 y 2 como x e y o a y b. Lo más sensato es emplear los nombres numero1 y
numero2 u operando1 y operando2. Estos últimos nombres ya nos dan una idea de cual
es el contenido que almacenan.

Aunque en los ejemplos que hemos vistos hasta ahora las variables sólo almacenan
números, podría n almacenar cualquier tipo de información: cadenas de texto,
caracteres, fechas, datos de tipo booleano, etc.

Página 21
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

En el diseño de algoritmos no hace falta que seamos estrictos con la notación empleada a
la hora de utilizar nombre de variables. Sin embargo, es conveniente que tengamos claras
unas reglas básicas que serán de utilidad a la hora de establecer el nombre de las
variables en el lenguaje de programación Python.

• No utilizar espacios. Por ejemplo: si tenemos que emplear una variable para
almacenar el resultado de la suma, podemos emplear los nombres
resultado_suma, rdo_suma o simplemente suma, en lugar de resultado suma.
• No utilizar acentos, signos de exclamación, interrogación, etc. Por ejemplo: en
lugar de emplear como nombres de variables número 1 ó número 2,
emplearemos numero1 y numero2 o bien numero_1 y numero_2.

Actividad Voluntaria Variables I: Modificación Algoritmo Recogida Campo Lechugas


Vamos a modificar este algoritmo para introducir la utilización de variables. Para ello,
lo que haremos es contabilizar las lechugas que nos vamos encontrando en el campo,
tanto las que vamos cogiendo como las que se quedan sin coger.

Una vez que hayamos recogido todo el campo, tendremos que visualizar el número de
lechugas que hemos cogido, el número de lechugas que se han quedado sin coger
y el número total de lechugas que había inicialmente en el campo.

Los nombres que podemos utilizar para las variables son:


num_lechugas_cogidas, num_lechugas_por_coger y num_total_lechugas

En programación es habitual tener que inicializar o poner un valor inicial a las variables
que vamos a utilizar. Para las variables numéricas dicho valor inicial suele ser el cero,
sobretodo cuando estamos contabilizando un determinado número de cosas.

En nuestro ejemplo tendríamos que inicializar las variables que almacenarán el número
de lechugas cogidas y el número de lechugas que quedan por coger.

En los algoritmos podemos utilizar esta notación: inicializa num_lechugas_cogidas a 0

Página 22
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

O bien, si queremos acercarnos a la notación empleada por los lenguajes de


programación, podemos emplear la siguiente expresión: num_lechugas_cogidas = 0

En programación, también es muy habitual tener que incrementar o decrementar el valor


almacenado en una variable una cantidad determinada. Por ejemplo, cuando tenemos
que contabilizar una determinada cantidad de objetos o elementos.

En esta ampliación nos pasaría esto con num_lechugas_cogidas y


num_lechugas_por_coger.

La forma de indicar que queremos incrementar en 1 el número de lechugas cogidas sería:


Incrementa en 1 num_lechugas_cogidas

Ahora bien, si empleamos la notación pensando ya en un lenguaje de programación,


tendríamos la siguiente expresión:
num_lechugas_cogidas = num_lechugas_cogidas + 1

Esta expresión que, matemáticamente, es incorrecta, es muy habitual en programación


cuando queremos incrementar el valor de una variable en un valor (en este caso 1).

La explicación es la siguiente: al valor que tuviera almacenado la variable se le suma 1 y


se vuelve a almacenar en la variable. Realmente estamos realizando varias tareas en
una: consultar el valor de la variable, modificar dicho valor y almacenar el nuevo valor en
la variable.

Por ejemplo, antes de realizar la operación de incremento el valor almacenado en la


variable sería 3:

num_lechugas_cogidas

Página 23
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Después de realizar la operación num_lechugas_cogidas = num_lechugas_cogidas +


1 el valor almacenado en la variable será 4:

num_lechugas_cogidas

La solución propuesta a esta actividad estará disponible en el Moodle con el nombre:


Solución Actividad Voluntaria Variables I - Recogida Campo Lechugas

Actividad Voluntaria Variables II: Modificación Algoritmo Recogida Campo


Lechugas
Las modificaciones de esta actividad las vamos a realizar sobre la actividad voluntaria
anterior.

Vamos a incorporar que el depósito con el que cuenta el robot para guardar las
lechugas tiene una capacidad determinada, de manera que esta capacidad será
introducida por el usuario al principio, antes de que el robot se ponga a recoger el
campo. Podemos llamar a esta variable capacidad_deposito.

Antes de guardar una lechuga en el depósito debemos tener en cuenta si cabe, es decir,
si el número de lechugas existentes en el depósito (num_lechugas_deposito) es menor
que la capacidad del mismo. En otras palabras, tendremos que comparar el valor de las
variables num_lechugas_deposito y capacidad_deposito.

En el caso de que el depósito esté lleno, vamos a suponer que para vaciarlo, el robot
empleará la orden Vacía Depósito.

La solución a esta actividad planteada estará colgada en el Moodle con el nombre:


Solución Actividad Voluntaria Variables II - Recogida Campo Lechugas

Página 24
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

4.- Módulos

Los módulos son uno de los elementos con los que cuenta la programación
estructurada que permiten dividir un problema en partes más pequeñas, cada una de
las cuales realizará una tarea específica que contribuye a resolver el problema global.

Otra característica importante consiste en la reutilización funcional que presentan estos


módulos de manera que, a la hora de resolver el problema global, cada vez que
necesitemos hacer uso de las prestaciones que lleva a cabo un determinado módulo,
no tendremos nada más que invocarlo o llamarlo.

Normalmente, en los lenguajes de programación este tipo de elementos se sitúan en una


“zona reservada” que suele ubicarse físicamente antes del programa principal. Por tanto,
nosotros a la hora de utilizar los módulos en los algoritmos, también los ubicaremos
antes del Algoritmo Principal.

Podemos ubicar en esta zona tantos módulos como necesitemos a la hora de resolver el
problema en cuestión.

Ejemplo:
MODULO Modulo_1
Paso 1
….
Paso N
Fin MODULO_1

INICIO
Paso 1 Algoritmo Principal
Modulo_1 Invocación del Modulo_1

Paso n Algoritmo Principal

Página 25
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Modulo_1
Paso m Algoritmo Principal Invocación del Modulo_1
Modulo_1
...
FIN

En el ejemplo anterior hemos definido un nuevo módulo con el nombre Modulo_1 y en el


Algoritmo Principal lo hemos utilizado o invocado tres veces. Ésta es una de las ventajas
notables que presenta trabajar con módulos: la reutilización de los recursos. De
manera que el conjunto de pasos que forman un determinado módulo sólo se escribe una
vez y, posteriormente, se utiliza tantas veces como se necesite, con tan sólo hacer
referencia a su nombre.

Los lenguajes de programación también se refieren a estos elementos, como


funciones, procedimientos, rutinas, etc, pero la idea es similar.

Un ejemplo muy claro en el que se puede aplicar con éxito es la utilización de los módulos
en el algoritmo de la recogida del campo de lechugas.

Si pensamos que, cada vez que el robot tiene que girar a la derecha, debe de realizar
tres giros a la izquierda, parece evidente que es necesario crear el módulo
GIRA_DERECHA, que podríamos definir de esta manera:

Módulo GIRA_DERECHA
gira izquierda
gira izquierda
gira izquierda
Fin GIRA_DERECHA

En la resolución del algoritmo será necesario que el robot gire a la derecha en múltiples
ocasiones, así que queda clara la ventaja de incorporar este nuevo módulo.

Página 26
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

Actividad Voluntaria Módulos I: Modificación Algoritmo Recogida Campo Lechugas


Se trata de incorporar a la resolución del algoritmo la utilización de módulos. Por una
parte incluiremos el módulo que hemos comentado anteriormente GIRA_DERECHA y,
por otra, añadiremos un nuevo módulo que se encargará de realizar los pasos
destinados a poder cambiar de columna cuando el robot ha finalizado el recorrido de una
columna.

A este nuevo módulo podemos llamarle CAMBIA_COLUMNA.

La solución a esta actividad planteada, estará colgada en el Moodle con el nombre:


Solución Actividad Voluntaria Módulos I - Recogida Campo Lechugas

Página 27
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

5.- Fases en la Creación de un Programa

Los pasos necesarios para crear un programa podemos representarlos en el siguiente


esquema:

QUÉ ANÁLISIS

COMO DISEÑO

ASÍ IMPLEMENTACIÓN

Las tres principales fases que podemos distinguir para crear un programa son: Análisis,
Diseño e Implementación y las podemos asociar con tres palabras: Qué, Como y Así.

ANÁLISIS (QUÉ): En esta fase, como indica la palabra asociada, se especifica qué es lo
que debe de hacer el programa, es decir, los requisitos que tiene. Normalmente estos
requisitos se especifican mediante un documento textual en el que se indican las
funcionalidades que debe presentar el programa llamado Análisis de Requisitos. Esta
fase tiene una complejidad inherente, puesto que muchas veces la persona que hace el
análisis no capta la totalidad de funcionalidades y características que debe tener el
programa. De manera que el programa resultante no cumple las necesidades reales.
Éste no es, ni mucho menos, el objetivo del curso, de manera que el análisis siempre será
proporcionado y consistirá en un enunciado relativamente sencillo.

Página 28
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

DISEÑO (COMO): Una vez que tenemos claro qué es lo que debe hacer el programa, en
este paso trataremos de indicar cómo conseguir que el programa resultante lleve a cabo
las funcionalidades que se plantean. La forma de hacerlo es a base del Diseño de
Algoritmos, tal y como hemos visto en la documentación de esta sesión, y del empleo de
herramientas gráficas como los organigramas.

IMPLEMENTACIÓN (ASÍ): Una vez que hemos visto como vamos a resolver el problema,
en esta fase vamos a realizar el proceso de traducción de los pasos establecidos en
un algoritmo o en un organigrama, a un determinado lenguaje de programación,
puesto que al final el programa tendrá que ejecutarse en un ordenador. Una de las
decisiones que debemos de tomar en esta fase es el lenguaje de programación que
vamos a utilizar.

Podemos ampliar un poco más esta visión tan resumida, a la hora de establecer las fases
que tenemos que realizar para crear un programa, contemplando 2 fases más:
Compilación y Ejecución y Prueba. De manera que así podemos cerrar un bucle en lo
que se refiere a las fases de creación de un programa, tal y como podemos ver en el
esquema que aparece más adelante.

Podemos volver a enumerar los pasos que se necesitan para la creación de un programa
de la siguiente manera:
1.- Análisis de Requisitos: en esta fase tratamos de averiguar qué es lo debe hacer
el programa o cuales son las necesidades que tenemos. Normalmente los requisitos
vendrán especificados de forma textual en un documento.

2.- Diseño del algoritmo: describe la secuencia ordenada de pasos que nos llevan a
la solución de un problema dado. Se puede utilizar un lenguaje textual (natural) o
alguna herramienta gráfica mediante la utilización de organigramas.

3.- Codificación / Implementación del programa en un lenguaje de programación


para obtener lo que se llama el programa fuente. Esta fase, al igual que las dos
siguientes la realizaremos en la sesión siguiente, cuando veamos el lenguaje de

Página 29
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

programación Python.

4.- Compilación o comprobación de errores a partir del programa fuente (el que
nosotros escribimos). Mediante el proceso de compilación se genera el programa
objeto que es el que se ejecuta en el ordenador. En la siguiente figura, podemos
apreciar un esquema de este proceso:

Este paso puede implicar realizar varias tareas, ya que si se detectan errores “de
escritura” no se generará el programa objeto. En este caso, el compilador
informará de la lista de errores y el programador deberá corregirlos, realizando las
correcciones oportunas en el código fuente. Repetiremos este paso hasta que no
exista ningún error.

5.- Ejecución y Prueba del programa para comprobar si el resultado al ejecutar el


programa es correcto, es decir para ver si el programa hace lo que esperamos. Esta
fase puede ocasionar que tengamos que volver atrás, en el proceso de creación de
programa, en concreto al paso 2, puesto que si el programa no hace lo que
queremos tendremos que volver a rediseñar el algoritmo.

Es necesario indicar que un programa bien escrito, porque ha pasado la fase de

Página 30
Curso de Programación en Python – Sesión 1: Introducción a la Programación Estructurada

compilación satisfactoriamente, puede no resolver correctamente el problema


planteado. De ahí la necesidad de esta última fase de pruebas.

Página 31

También podría gustarte