Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SESIÓN N° 01:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Introducción al lenguaje LOGO
Comandos básicos logo
¿Cómo usar MSW LOGO?
Instrucciones secuenciales
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
El mundo actual está dominado por la tecnología, ese dominio está muy influenciado y
dominado por dos aspectos muy importantes, el primero la electrónica, que es una
ingeniería que constantemente crea y produce objetos que mejoran la calidad de vida y la
forma de hacer las cosas y la segunda es la ingeniería de sistemas que produce y administra
el software que los objetos electrónicos usan para hacer las tareas para las cuales han sido
diseñados.
El objeto electrónico más importante de esta corriente tecnológica es la computadora,
gracias a las capacidades de cálculo de este instrumento el ser humano ha sido capaz de
desarrollar mucha tecnología e inventos, la modernidad y actualidad tecnológica esta
siempre asociado al uso de computadoras. Pero no se trata sólo del uso de las
computadoras, existe un binomio hardware/software necesario para el funcionamiento
idóneo de las computadoras, es así que la estrella en el software son los programas[1].
Los programas de computadora son conjuntos de instrucciones ordenadas y debidamente
estructuradas que nos van a permitir hacer que la computadora lleve a cabo una acción o
un conjunto de tareas.
Al proceso de creación de programas se le llama programación de computadoras, pero este
proceso a pesar de no der difícil ni complicado requiere de cierto tipo de enfoque de parte
del aprendiz, esto debido a que la computadora funciona como una caja negra que recibe
órdenes y las ejecuta en el sentido y dimensión de lo que interpreta como correcto, esto es
sin corregir la forma como se le dieron las ordenes, debido a esto es necesario a que
nosotros antes de aprender a hacer cualquier cosa como aprendices de programación
debemos entender primero que la computadora actúa bajo las ordenes que se le
proporcionan sin hacer ningún tipo de corrección ni alertar de forma clara sobre las
ambigüedades en las órdenes dadas[2].
En esta práctica nosotros empezaremos haciendo uso de un lenguaje de computadora muy
sencillo llamado LOGO, este lenguaje tiene un ambiente interactivo y nos permite entender
lo que hace la computadora de forma directa cuando se le ingresa una orden, el propósito
en las primeras prácticas es entender la forma como las computadoras actúan con los
programas que les ingresamos.
A. EJECUTAR EL MSWLOGO
Para ejecutar al intérprete del lenguaje LOGO debemos hacer clic sobre su icono en el
escritorio de la computadora o en su defecto en la agrupación de programas del botón Inicio.
FORWARD 100
RIGHT 90
FORWARD 100
RIGHT 90
FORWARD 100
RIGHT 90
FORWARD 100
El código anterior debe ser ingresado línea por línea e inmediatamente se verán los
right 30
forward 100
right 120
forward 100
right 120
forward 100
hideturtle
cs
forward 100
right 60
forward 100
right 60
forward 100
right 60
forward 100
right 60
forward 100
right 60
forward 100
hideturtle
La primera instrucción es para borrar la pantalla.
5. INSTRUCCIONES SECUENCIALES
Con instrucciones secuenciales nos referimos a todo instrucción que se especifica de forma
simple indicando que se realiza una sola acción de forma incondicional, generalmente esta
acción no está ligada a una acción anterior o posterior de forma explícita fuera de la lógica
que el programador pretende incorporar en el programa, tampoco se repite un número de
veces determinado, esta es una sola acción, estas instrucciones siempre son las más
simples del lenguaje de programación[4].
make “a 10
make “a 12
Declaramos la variable a con un valor inicial de 10, luego cambiamos el valor de 10 por el
de 12 y el valor anterior desaparece quedándose con el ultimo asignado.
forward 100
right 90
forward 100
right 90
forward 100
right 90
forward 100
hideturtle
Pero si quiero que el cuadrado tenga de longitud un valor que yo ingrese por teclado debería
hacer algo así.
make "a 0
make "a first questionbox [Ingreso de dato][Ingrese un numero]
forward :a
right 90
forward :a
right 90
forward :a
right 90
forward :a
hideturtle
label :a
label 4+5
3+4
You don't say what to do with 7
Los resultados de las operaciones deben ser asignados o a un variable o a la salida por
pantalla, de lo contrario el programa nos dice que no sabe qué hacer con el resultado.
label 3+4
make "a 10
make "a :a+10
En este caso se muestra que declaramos una variable a, esta variable recibe un valor inicial
de 10, a continuación al valor de a le sumamos 10, este procedimiento dentro de un bucle
podría implementarse como contador.
make "a 0
make "b 3
make "c 4
make "a :b+:c
label :a
6. RESUMEN
Las instrucciones secuenciales se ejecutan una tras otra en el mismo orden en que fueron
especificadas, se ejecutan de forma incondicional y siguiendo un solo camino, no habiendo
la posibilidad de una ejecución alterna, y solo ejecutan una vez ya que no es posible la
ejecución repetitiva. Por lo general las instrucciones secuenciales están dirigidas a realizar
una sola orden y están en términos de ingreso y salida de datos, declaración y asignación
de valores a variables, operaciones matemáticas, etc. Las variables son nombres que
representan a datos de forma genérica, de esa forma es posible hacer instrucciones de
carácter genérico y no particular.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
VI
CUESTIONARIO
1. ¿Qué es un algoritmo?
2. ¿Qué es un programa?
3. ¿Qué es un lenguaje de programación?
4. ¿Qué es una computadora?
5. ¿Qué es un microprocesador?
6. ¿Qué es una IDE?
7. ¿Cómo se escribe un algoritmo?
8. ¿Cómo se escribe un programa?
9. ¿Cómo se interactúa con la computadora?
10. ¿Cuál es la función del lenguaje de programación?
11. ¿Qué es una instrucción o sentencia?
12. ¿Qué es una instrucción secuencial?
13. ¿Qué es una variable?
14. ¿Qué tipos de instrucciones secuenciales tenemos?
15. ¿Cuáles son las similitudes entre los diferentes tipos de instrucciones secuenciales?
16. ¿Cuáles son las instrucciones secuenciales para ingreso y salida de datos?
17. ¿Cómo asignamos un valor a una variable mediante una instrucción secuencial?
18. ¿Cómo se especifica una instrucción secuencial de operación matemática?
19. ¿Cuál es la función de las variables?
20. ¿cómo visualizamos el valor almacenado por una variable?
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 02:
I
OBJETIVOS
Conocer los principios básicos que rigen el uso de las instrucciones control e iterativas.
Aprender como diseñar instrucciones de control e iterativas en programas.
Apreciar las características y ventajas provistas por las instrucciones de control e iterativas
a los programas.
II
TEMAS A TRATAR
Introducción.
Instrucciones de control
Instrucciones iterativas
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
La lógica de las instrucciones de control está justificada por la necesidad de establecer
puntos donde las acciones a realizar no sean obligatorias si no por el contrario sean
ejecutadas bajo el cumplimiento de alguna condición, esto nos lleva a pensar que es
necesario contar con algún recurso que nos permita poder hacer que el flujo de ejecución
secuencial de instrucciones en un programa pueda tener caminos paralelos al mismo
tiempo, y la ruta que se siga a través de estos caminos este condicionada al cumplimiento
de ciertos controles, la ruta seguida es solamente una, no pudiéndose seguir dos rutas de
secuencia de instrucciones al mismo tiempo[1].
Es posible incorporar en un programa estos puntos de control, los puntos de control
establecidos están en función de una condición dada, la condición debe ser clara y debe
tener dos posibles estados en el momento de su evaluación, es decir cualquier condición
puede ser falsa o verdadera en función de los valores evaluados, los valores evaluados
deben estar almacenados en variables para hacer flexible la condición.
Las instrucciones de control están estructuradas de tal forma que primero se evalúa el
estado de la condición, una condición generalmente se escribe función de una comparación
entre dos expresiones, el resultado de la comparación sólo puede estar en términos de
verdadero o falso, de ser verdadero una o un bloque de instrucciones se ejecutan, de ser
falso otro bloque o instrucción se ejecuta[2].
La ejecución no está estructurada de la forma única de que si es verdadero se debe ejecutar
una instrucción y si es falso otra instrucción, también es posible estructurarla de tal forma
que si es verdadero se ejecuta una instrucción y si no lo es no se ejecuta nada en lo
absoluto. En este segundo caso se tiene una sola salida de instrucción condicional.
La mayoría de las veces debemos hacer que un conjunto de acciones se repitan una y otra
vez, en esos casos en que las acciones deben ejecutarse un número determinado de veces
es conveniente disponer de un mecanismo que nos permita controlar el numero
determinado de veces en que deba repetirse una acción, a este tipo de instrucción se le
llama instrucción iterativa, repetitiva, de bucle o lazo.
Este tipo de instrucciones es muy útil porque nos permite hacer que una instrucción o un
conjunto de ellas se repita de forma condicionada o a veces incondicional, lo que quiere
decir que el número de veces en que la instrucción deba repetirse es controlada por el
programador en base al tipo de instrucción iterativa que utiliza, algunas veces se hace que
la instrucción repita un grupo de instrucciones un número n de veces en otros caso se hace
la repetición se lleve a cabo mientras que algún evento o condición particular se cumpla.
2. INSTRUCCIONES DE CONTROL
En cualquier lenguaje de programación una instrucción condicional o de control tiene una
estructura muy simple compuesta por la palabra clave que ordena la evaluación de la
condición asociada, esta palabra es el SÍ condicional, en ingles se utiliza como IF, a
continuación se coloca la expresión que denota la condición y luego lo que se hace si es
cierto[3].
make "Angulo 0
make "Angulo first questionbox [Ingreso de dato][Ingrese medida del angulo(45
o 90)]
if :Angulo = 45 [forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo
forward 100 right :Angulo ]
hideturtle
make "Angulo 0
make "Angulo first questionbox [Ingreso de dato][Ingrese medida del angulo(60
o 72)]
ifelse :Angulo = 45 [forward 100 right 60
forward 100 right 60
forward 100 right 60
forward 100 right 60
forward 100 right 60
forward 100 ]
[forward 100 right 72
forward 100 right 72
forward 100 right 72
forward 100 right 72
forward 100]
hideturtle
3. INSTRUCCIONES ITERATIVAS
La función primordial de las instrucciones iterativas es el no tener que reiterar una orden
que es repetitiva, de esta forma sólo debemos indicar cuantas veces se debe llevar a cabo
y con esa información es posible que se ejecuten las veces indicadas.
repeat N [instrucciones]
La instrucción es muy simple, se utiliza la palabra clave repeat para indicar el bucle, N
indica el número de veces que debe repetirse la acción y entre corchetes se indican la o las
instrucciones que se repetirán en el orden que deban ejecutarse, el número de veces en
que deba ejecutarse una orden también puede ser indicado mediante una variable[2].
En el ejemplo hacemos uso de la instrucción repeat con ella hacemos que se repita 4
veces las instrucciones indicadas entre corchetes.
make "veces 4
repeat :veces [forward 100 right 90]
hideturtle
En este segundo caso tenemos que el número de veces que se ejecuta las instrucciones
entre corchetes esta controlado por el valor que almacene la variable.
En este otro ejemplo el número de veces en que se ejecutan las instrucciones depende del
valor que es ingresado por teclado y almacenado en la variable veces.
La instrucción usada es muy simple y también es posible de anidarla, eso quiere decir que
podemos poner dentro de los corchetes otra instrucción repeat y así hacer que el proceso
de repeat se ejecute varias veces.
En este caso estamos haciendo que se dibujen 6 cuadrados de lado 100, después de dibujar
cada cuadrado giramos a la derecha 60° y con ello hacemos que se dibujen al costado y no
sobre el cuadrado anterior[4].
En el uso de instrucciones iterativas es muy conveniente el uso de variables para poder
mejorar su desempeño.
make "largo 1
repeat 6 [repeat 360 [forward :largo right 1] make "largo :largo + 0.25]
En este caso se dibuja un circulo de perímetro 360, en las siguientes iteraciones se aumenta
en un 0.25 por vez para cada circulo hasta completar los 6.
La palabra clave while indica que el bloque se ejecutará mientras la condición sea cierta
o verdadera.
La parte [true/false condition] es la expresión condicional que debe satisfacerse
para que la instrucción o el bloque de instrucciones se ejecuten.
Finalmente entre corchetes se colocan a las instrucciones o instrucción que se ejecutará
repetitivamente
En este ejemplo capturamos un valor ingresado por teclado en la variable veces, luego
usamos la variable para construir la expresión condicional indicando que mientras veces
sea mayor que 0 se ejecutarán las instrucciones entre corchetes, en el bloque de
instrucciones se indica lo siguiente, se avanza 100, se gira a la derecha 90 grados y luego
se hace que la variable veces se decremente en 1, eso hace que veces en algún momento
tenga que valer 0, cuando veces sea 0 la condición no se cumplirá y se dejará de ejecutar
el bloque de instrucciones[4].
4. RESUMEN
Las instrucciones condicionales pueden ser simples, dobles o múltiples, en este caso el
lenguaje LOGO puede incorporar las dos primeras, es decir ante la evaluación de una
condición puede tener un bloque de instrucciones para ejecutar si es cierta y nada si es
falsa, en este caso es una condicional simple; cuando se trata de una condicional doble se
tienes dos bloque de acciones a ejecutar, si fuera cierta la primera y si fuera falsa la
segunda, de esta forma siempre se utiliza alguna de las salidas de la instrucción.
Es algo complicado establecer las expresiones que se van a evaluar para la ejecución de
los bloques de instrucciones asociadas con verdadero o falso, pero la forma más simple de
implementar esto es sabiendo cual es el objeto del control, es decir saber que variable o
parámetro es la que determina lo que se está controlando y además debemos tener en
cuenta que algunos valores relacionados deben estar en ciertos rangos, la comparación es
la expresión más común, pero en lenguajes más sofisticados no es la única forma de
determinarlo.
Las instrucciones iterativas tiene la función de hacer que una instrucción o un bloque de
ellas se repitan un número de veces especificado mediante algún mecanismo que les indica
cuantas veces deben repetirse, lo más simple es indicar el número de veces, de esa forma
la instrucción repeat solo debe indicar cuantas veces se realiza o lleva a cabo una
instrucción o bloque de instrucciones, se ejecuta de forma incondicional y sin impedimentos,
por el contrario existen mecanismos más complicados y sofisticados que hacen que las
instrucciones que deban repetirse estén supeditadas al cumplimiento de una expresión
condicional, eso quiere decir que hacemos uso de una instrucción diferente en este caso
while, que significa que mientras la expresión condicional sea verdadera se ejecutará el
bloque de instrucciones asociado, dentro del bloque de instrucciones debe existir algún
mecanismo que permita que en un momento dado y planificado esta expresión condicional
sea falsa, para que así el bucle no sea infinito.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 03:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción
¿Qué es un algoritmo?
Modelos computacionales
Programas: Algoritmos para ser ejecutados por un ordenador
¿Qué instrucciones ejecuta un ordenador?
Traductores e intérpretes
Lenguajes interpretados vs. lenguajes compilados
III
MARCO TEORICO
1. INTRODUCCIÓN
Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones
que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para
crear programas que controlen el comportamiento físico y lógico de una máquina, para
expresar algoritmos con precisión, o como modo de comunicación humana. Está formado
de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba,
se depura, se compila y se mantiene el código fuente de un programa informático se le
llama programación.
También la palabra programación se define como el proceso de creación de un programa
de computadora, mediante la aplicación de procedimientos lógicos, a través de los
siguientes pasos: [5]
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación específico
(codificación del programa)
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y
'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación
y a otros más, como por ejemplo el HTML. (lenguaje para el marcado de páginas web que
no es propiamente un lenguaje de programación sino un conjunto de instrucciones que
permiten diseñar el contenido y el texto de los documentos) [5] [1].
Permite especificar de manera precisa sobre qué datos debe operar una computadora,
cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada
gama de circunstancias[5]. Todo esto, a través de un lenguaje que intenta estar
relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje
Léxico. Una característica relevante de los lenguajes de programación es precisamente que
más de un programador pueda usar un conjunto común de instrucciones que sean
comprendidas entre ellos para realizar la construcción del programa de forma
colaborativa[2].
2. ¿QUÉ ES UN ALGORITMO?
Es un conjunto finito de instrucciones que se deben seguir para resolver un problema. No
obstante, desde el punto de vista de la programación de ordenadores, la definición del
algoritmo como la especificación de una serie de pasos, es incompleta. Debe observarse
que los ordenadores son equipos que tienen limitaciones físicas en cuanto a capacidad de
almacenamiento y procesamiento. Por consiguiente debemos refinar un poco más nuestra
definición de algoritmo para hacerla aplicable de manera efectiva en el ámbito de la
informática.
A. DEFINICIÓN:
Un algoritmo se entiende como una sucesión finita de pasos que debe cumplir las siguientes
especificaciones [6]:
Cada paso del algoritmo debe estar bien definido: Esto significa que la definición de un
paso debe ser suficientemente clara, para que una persona pueda entenderla y
realizarla. Si bien no se puede dar un criterio determinístico para decidir si un paso está
bien definido, debemos apelar al sentido común para decidir que un paso está
especificado sin ambigüedades. [6]
Un algoritmo debe tener un principio y un fin: Un programa es un algoritmo escrito con
un objetivo: conseguir un resultado. No tiene sentido crear un programa que espere ~
segundos (infinitos segundos) y luego escriba en pantalla "Hola Mundo!", del mismo
modo que un algoritmo debe tener un principio bien definido (tampoco tiene sentido el
algoritmo "haz nada, y luego escribe Hola Mundo!"). [6]
3. MODELOS COMPUTACIONALES
Un modelo computacional es un modelo matemático en las ciencias de la computación que
requiere extensos recursos computacionales para estudiar el comportamiento de un
sistema complejo por medio de la simulación por computadora. El sistema bajo estudio es
a menudo un sistema complejo no lineal para el cual las soluciones analíticas simples e
intuitivas no están fácilmente disponibles. En lugar de derivar una solución analítica
matemática para el problema, la experimentación es hecha con el modelo cambiando los
parámetros del sistema en la computadora, y se estudian las diferencias en el resultado de
los experimentos. Las teorías de la operación del modelo se pueden derivar/deducir de
estos experimentos de computacionales.[6][3]
Ejemplos de modelos de computacionales comunes son modelos de el pronóstico del
tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, modelos de
plegamiento molecular de proteínas, y modelos de red neural.[6]
redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una máquina
como los bucles for. Los compiladores se encargan de traducir esos ficheros al lenguaje
ensamblador que corresponda, el ensamblador de traducirlos a lenguaje máquina y el
enlazador de juntar todo ese código máquina en un solo archivo, el programa. Y el
microprocesador, se encarga de ir encendiendo o apagando transistores según lo que le
diga el código máquina. Es fácil entender el lenguaje de alto nivel en comparación al
lenguaje maquina pero de la evolución surgieron.
A. LENGUAJE DE MÁQUINA
Cada tipo de microprocesador contiene un conjunto de instrucciones que realizan ciertas
operaciones sobre una o más palabras de bits; las instrucciones van también codificadas
en bits. No queremos hacer aquí una discusión sobre arquitectura de ordenadores, por lo
que con esto debe valer por ahora. [6][4].
Se entiende que escribir sólo con dos teclas, el 0 y el 1, es incómodo. Históricamente, a la
hora de diseñar un algoritmo para que el ordenador ejecutara, se escribía mediante unas
etiquetas mnemotécnicas; éste fue el origen del lenguaje ensamblador. Por ejemplo quizás
en una cierta arquitectura la instrucción de borrado de memoria (Memory Clear, en inglés)
corresponda al código 010. Pronto surgieron programas que leían, siguiendo el ejemplo,
MC, y lo sustituían por 010. [6]
B. LENGUAJE ENSAMBLADOR
El código máquina tenía dos grandes inconvenientes para los programadores: [6]
El primero es que se trata de unas instrucciones difíciles de recordar ya que no guardan
relación con la operación que se está realizando. [6]
El segundo inconveniente es que puede haber, y de hecho hay, diferencias entre las
instrucciones de un procesador a otro. [6]
Todo esto ha llevado a "poner nombre" a las instrucciones de código máquina de manera
que a una secuencia concreta de bits que realiza una operación se le pone un nombre
sencillo que identifique la operación. Esta traducción a un lenguaje más sencillo para las
personas resulta en una mayor comodidad para el programador, además el proceso de
traducción inverso de lenguaje ensamblador a código máquina puede ser realizado por un
sencillo programa. [6]
6. TRADUCTORES E INTÉRPRETES
Tras la escritura del algoritmo, un compilador o un intérprete (otros programas)
transformarán el texto en código máquina que el procesador es capaz de ejecutar.
Toda esta abstracción permite resolver problemas alejados de sumar números binarios,
como pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D.
COMPILADOS
Los lenguajes interpretados nacen como respuesta a la dificultad de manejo de los
compilados. Un lenguaje compilado es sólo apto para un sistema operativo o formato de
ejecutable (en Linux y Unix System V es ELF, en Windows o incluso en BSD es muy
diferente), y es tedioso de manejar: para comprobar bugs o errores el computador debe:[7]
Compilar cada uno de los ficheros de código.
Ensamblarlos en ficheros objeto.
Enlazar los ficheros objeto.
Volverlos a ensamblar.
Todo eso no es gran derroche de recursos para un ordenador medio actualmente, pero dura
sus 10 o 15 segundos. En cambio, con un lenguaje interpretado, el programa intérprete
analiza el fichero de código y lo va ejecutando en tiempo real, sin compilarlo ni ensamblarlo.
Otra de las ventajas de los lenguajes interpretados es que son multiplataforma: un programa
en Perl, por ejemplo, no debe ser compilado dos veces (una para Unix y otra para Windows).
Con que haya diferentes versiones del intérprete en cada uno de esos ordenadores,
específicamente compilados para ellos, basta. [7]
Sus desventajas:
Consume muchos recursos de memoria, sobre todo RAM. [7]
Se depende del intérprete: si no tienes instalado el intérprete que corresponda, no
podrás ejecutar el programa. [7]
Ejemplos de lenguajes interpretados son PHP, Perl, Python, Tcl/Tk, BASIC, LISP (en
algunas de sus versiones). [7]
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo que nos permita lavar una pila de platos de tamaño N.
2. Elaborar un algoritmo que nos permita entregar N cartas en las direcciones respectivas.
3. Al algoritmo anterior agregarle las instrucciones necesarias para que el algoritmo haga la
entrega certificada de cartas.
4. Elaborar un algoritmo que nos permita repartir una baraja de cartas a 5 jugadores (5 naipes
a cada uno) por vez.
5. Elaborar un algoritmo que nos permita servir sopa de una olla.
6. Elaborar un algoritmo que nos permita subir las escaleras de un piso n a un pis n+1.
VI
CUESTIONARIO
1. ¿Qué es un algoritmo?
2. ¿Qué es un lenguaje de programación?
3. ¿Qué es el lenguaje ensamblador?
4. ¿Qué es el lenguaje de máquina?
5. ¿Qué es la semántica?
6. ¿Qué es la sintaxis?
7. ¿Qué es una instrucción?
8. ¿Cómo se ejecutan las instrucciones por la computadora?
9. ¿Cómo se especifican las instrucciones que ordenan la repetición del mismo proceso varias
veces?
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 04:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Características
Ventajas de los diagrama de flujo
Tipos de diagramas de flujos
Símbolos
III
MARCO TEORICO
1. INTRODUCCIÓN
Un diagrama de flujo es una representación gráfica de un algoritmo. Se utiliza en disciplinas
como la programación, la economía, los procesos industriales y la psicología cognitiva.
Estos diagramas utilizan símbolos con significados bien definidos que representan los
pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los
puntos de inicio y de término[1].
2. CARACTERÍSTICAS
Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.
Además, todo camino de ejecución debe permitir llegar desde el inicio hasta el término.[5]
Las siguientes son acciones previas a la realización del diagrama de flujo: [5]
Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar
presentes el dueño o responsable del proceso, los dueños o responsables del proceso
anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.
Definir qué se espera obtener del diagrama de flujo.
Identificar quién lo empleará y cómo.
Establecer el nivel de detalle requerido.
Determinar los límites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son : [5]
Establecer el alcance del proceso a describir. De esta manera quedará fijado el
comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso
previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que están incluidos en el
proceso a describir y su orden cronológico.
Si el nivel de detalle definido incluye actividades menores, listarlas también.
Identificar y listar los puntos de decisión.
Construir el diagrama respetando la secuencia cronológica y asignando los
correspondientes símbolos.
Asignar un título al diagrama y verificar que esté completo y describa con exactitud el
proceso elegido.
5. SÍMBOLOS
Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin
embargo, algunos símbolos especiales pueden también ser desarrollados cuando sean
requeridos. Algunos símbolos estándares, que se requieren con frecuencia para diagramar
programas de computadora se muestran a continuación[6] [3]:
Cinta magnética
Disco magnético
Conector de pagina
Líneas de flujo
Observación: Para obtener la correcta elaboración de los símbolos, existen plantillas. Las
puedes conseguir en Papelerías.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
b) Utilice la herramienta de depuración para verificar como lleva a cabo los procesos el
diagrama de flujo(trace).
4. Revisar los valores que gestiona el diagrama en las diferentes variables mediante la
herramienta de inspección(depuración).
V
EJERCICIOS
1. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar dos números
enteros por teclado y luego mostrar el resultado de su suma por pantalla.
2. Elaborar un diagrama de flujo en el programa DFD que nos permita pedir el nombre del
usuario y luego mostrar un saludo personalizado al usuario.
3. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar dos cadenas
de caracteres y luego mostrar la unión de las mismas por pantalla.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995
[5] http://es.calameo.com/books/0011878956b80385caf43
[6] http://www.monografias.com/trabajos70/introduccion-diagrama-flujo/introduccion-
diagrama-flujo.shtml
SESIÓN N° 05:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Concepto
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
En un diagrama de flujo las instrucciones secuenciales son el tipo de instrucción más simple
que hay, las instrucciones secuenciales implican la ejecución de una sola acción, esta
acción esta desligada de pre o post condiciones y se lleva a cabo por una sola vez, las
instrucciones secuenciales pueden estar agrupadas por bloques y estos bloques pueden
estar subordinados a otros tipos de instrucción, pero una instrucción secuencial nunca
puede tener instrucciones subordinadas, una instrucción secuencial es en si una sola
expresión sin ligazones estructurales adicionales[1].
Las instrucciones secuenciales son de varios subtipos, es decir tenemos varios tipos de
instrucciones, como: de entrada y salida, de asignación, de declaración, de operaciones
matemáticas, etc.
Las instrucciones secuenciales pueden tener otros tipos de naturaleza más específicas
según el lenguaje de programación usado, en cada caso hay que tener en cuenta la forma
de implementación de acuerdo al lenguaje[2].
2. CONCEPTO
Una instrucción en un diagrama de flujo es secuencial si las instrucciones se ejecutan una
tras otra, a modo de una secuencia lineal, es decir que una instrucción no inicia su ejecución
mientras que no finaliza la anterior, ni hace que se bifurque el flujo del programa, ni genera
ningún tipo de repetición autónoma independiente de cualquier otra instrucción[3].
Para nuestro trabajo haremos uso del programa DFD 1.0, en este programa algunas figuras
para la interacción son algo diferentes al formato normal.
Figura N° 9: Figura para ingreso y salda de datos, en DFD solo se puede ingresar datos.
Para los diagramas de flujo normales se puede usar la primera figura (con relleno), pero en
el programa la figura que representa el ingreso de datos es la que tiene en su interior la
variable A, el valor ingresado acabará almacenado en dicha variable.
Para mostrar el contenido de una variable como el caso de A o para mostrar mensajes,
como se muestra en la figura los mensajes deben estar acotados por apostrofes.
El rectángulo representa la ejecución de operaciones, así como también se puede usar para
la asignación de valores a las variables.
Se realiza una sola operación que llevará a un solo resultado almacenado en una sola
variable.
3. RESUMEN
Las instrucciones secuenciales son las instrucciones más simples de formular, se refieren
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar los datos de
un círculo y mostrar en pantalla su área.
2. Elaborar un diagrama de flujo en el programa DFD que nos permita ingresar los datos de
un círculo y mostrar en pantalla su perímetro.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 06:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Control de flujo simple
Control de flujo doble
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Un diagrama de flujo posee una secuencia de ejecución específica, algunas veces es
necesario especificar rutas alternativas de ejecución, las cuales se encuentran delineadas
de forma paralela y exclusiva, para tomar una decisión sobre que ruta seguir en el diagrama
para su ejecución es necesario implantar en su secuencia una instrucción con la capacidad
de evaluar condiciones, este tipo de instrucciones son las instrucciones de control de flujo,
estás instrucciones de control son de tipo, simple, doble y múltiple[1].
Las instrucciones condicionales simples únicamente permiten la realización de una acción
o proceso si la expresión evaluada es verdadera, cuando esta es falsa simplemente no se
hace nada más y se sigue con la siguiente instrucción la cual es independiente de la
condicional; pero a veces es necesario o es posible aprovechar dicha evaluación y ejecutar
alguna instrucción o proceso subordinada a la condicional cuando la evaluación de la
expresión es falsa, en esos casos estamos hablando de condicionales dobles, los cuales
son muy útiles para controlar el flujo de ejecución en una secuencia de instrucciones.
Adicionalmente es posible tener condicionales múltiples, este tipo de condicionales
funcionan de manera algo distinta evaluando el valor de un elemento y siguiendo una ruta
exclusiva y a parte de las demás en función del valor que esta tenga[2].
Luego haga clic sobre el punto del diagrama donde se quiere insertar dicha figura.
Luego haga doble clic sobre la condicional e ingrese la expresión lógica a evaluar.
Luego agregue una figura de asignación o del tipo que necesite y especifique la actividad
que debe ser realizada.
INICIO
NO
CONDICION
SI
BLOQUE BLOQUE
FIN
Luego haga clic sobre el punto del diagrama donde se quiere insertar dicha figura.
Luego haga doble click sobre la condicional e ingrese la expresión lógica a evaluar.
Luego agregue una figura de asignación o del tipo que necesite y especifique la actividad
que debe ser realizada, esto se hace en cada rama de la condicional.
4. RESUMEN
Para construir una instrucción de control se debe tener en cuenta que se está estableciendo
un punto de control y que el algoritmo se bifurcará en ese punto, luego debemos establecer
la expresión condicional que ejerce el control, es decir la condición que se debe cumplir
para que la rama de verdadero se ejecute, o en su defecto la rama de falso, establecer esta
expresión es quizá el aspecto más complicado, solo debemos enfocarnos en la materia del
control, en base a comparaciones entre los parámetros de control y las variables
involucradas.
Existen dos tipos básicos de instrucciones, las simples que tienen una sola salida cuando
es verdadero, es decir de ser falso no se hace nada, y las dobles que son de doble salida,
se hace algo al ser la condición verdadera y otra cosa diferente al ser falsa.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Modifique el diagrama del punto 4 para que se muestre por pantalla si es mayor, es menor
o son iguales usando condicionales sucesivos.
2. Modifique el diagrama anterior para que el mismo que se muestre al mayor y al menor entre
tres números utilizando una variable adicional y estructurando una sucesión de
condicionales.
3. Modifique el diagrama anterior para que se muestre si los 3 números ingresados son
iguales.
4. Modifique el diagrama del punto 5 para saber si el valor ingresado es positivo, negativo o
cero utilizando condicionales sucesivos.
5. Elaborar un diagrama de flujo que nos permita hacer la conversión entre grados centígrados
a grados Fahrenheit y viceversa.
6. Modifique el diagrama del punto 9 para que se muestre por pantalla si es mayor, es menor
o son iguales, anidando condicionales dobles.
7. Modifique el diagrama anterior para que el mismo que se muestre al mayor y al menor entre
tres números, anidando condicionales dobles.
8. Modifique el diagrama anterior para que se muestre si los 3 números ingresados son
iguales.
9. Modifique el diagrama del punto 10 para saber si el valor ingresado es positivo, negativo o
cero.
10. Elaborar un diagrama de flujo que nos permita hacer la conversión entre grados centígrados
a grados Fahrenheit y viceversa.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 07:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Bucle for
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un
trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse.
Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir
varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su
modificación en el futuro. El bucle y los condicionales representan la base de la
programación estructurada. Es una evolución del código ensamblador, donde la única
posibilidad de iterar un código era establecer una sentencia jump (que en los lenguajes de
programación fue sustituida por el "ir a" o GOTO) [5].
La instrucción iterativa for es una instrucción diseñada con la perspectiva que el
programador establezca una progresión de ejecución desde un valor inicial hasta un valor
final, se considera que se sabe a priori cuantas veces se va a ejecutar pero nada impide
hacer de un bucle una ejecución repetitiva indeterminada de veces[2].
2. BUCLE FOR
En muchas ocasiones se conoce de antemano el número de veces que se desean ejecutar
las acciones de un bucle. En estos casos en el que el número de iteraciones es fijo, se debe
usar la estructura desde o para (for en inglés).[6]
La estructura FOR ejecuta las acciones del cuerpo del bucle un número especificado de
veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo
del bucle[3]. [6]
La representación del FOR en los diagramas de flujo se hace con los iconos IF: [6]
INICIO A=0
NO NO
CONDICIÓN A<=10
SI SI
PROCESO 1 PROCESO 1
PROCESO N PROCESO N
INCREMENTO A=A+1
Dónde:
INICIO: Representa a la inicialización de la variable de control con el valor donde se
inicializa el ciclo.
CONDICIÓN: Representa a la expresión lógica que controla la ejecución del siguiente ciclo.
INCREMENTO: Representa a la expresión matemática que modifica al valor de la variable
de control para que en algún momento la expresión lógica de la condición sea falsa[4].
Al usar la aplicación DFD se tiene un icono especial, después de agregar la figura se debe
especificar la variable, el inicio, la finalización y el incremento.
Luego se agregan todos los procesos a realizar subordinados al ciclo for, estos están antes
de la figura de cierre. Este bloque de procesos es de una naturaleza amplia y repetirán su
accionar mientras la condición sea verdadera.
3. RESUMEN
Las instrucciones iterativas poseen un mecanismo de repetición controlado de instrucciones
subordinadas a éstas, es decir que debemos aplicar la repetición a un conjunto diferente de
instrucciones o a una instrucción individual, el número de veces en que la instrucción debe
repetirse depende de las condiciones establecidas en la expresión condicional de la
instrucción, esto quiere decir que el número de veces se debe pensar en función de una
progresión de ejecuciones sucesivas de la misma instrucción o el mismo bloque,
generalmente se ha establecido un límite de ejecuciones y para llegar a ese límite debe
existir un mecanismo interno que nos lleve al término de éste. Las instrucciones
condicionales son de diferentes tipos, la instrucción for es un tipo de instrucción con un
mecanismo de repetición fija cuando ha sido establecido, tiene un mecanismo de progresión
incorporado, pero aun así se puede utilizar para un número de repeticiones no conocidas a
priori.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Modifique el diagrama del punto 3 para que se pueda definir por teclado la cantidad de
números a ingresar utilizando un bucle for.
2. Modifique el diagrama del punto 4 para que se muestren los números impares entre un
límite inferior y un límite superior definidos por teclado utilizando un bucle for.
3. Crear un diagrama de flujo para que nos muestre la serie Fibonacci hasta un número
ingresado por teclado utilizando un bucle for.
4. Elaborar un diagrama de flujo que nos permita invertir un número entero de 6 cifras
utilizando un bucle for.
VI
CUESTIONARIO
1. ¿Qué es un bucle?
2. ¿Cómo controlamos la ejecución de un bucle?
3. ¿Qué es un bucle for?
4. ¿Qué tipo de expresión controla el bucle for?
5. ¿Cómo se establece la inicialización de un bucle for?
6. ¿Cómo se establece la finalización del bucle for?
7. ¿Cómo finaliza abruptamente un bucle for?
8. ¿Qué es una variable contador?
9. ¿Qué es una variable acumulador?
10. ¿Qué es un bucle infinito?
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 08:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Bucle while.
Resumen.
III
MARCO TEORICO
1. INTRODUCCIÓN
Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un
trozo aislado de código o bloque subordinado, hasta que la condición asignada a dicho
bucle deje de cumplirse. Generalmente, un bucle es utilizado para hacer una acción repetida
sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código
más claro y facilita su modificación en el futuro[1]. El bucle y los condicionales representan
la base de la programación estructurada. Es una evolución del código ensamblador, donde
la única posibilidad de iterar un código era establecer una sentencia jump (que en los
lenguajes de programación fue sustituida por el "ir a" o GOTO) [2].
Las instrucciones tipo while ejecutan una o un bloque de instrucciones “mientras”la
expresión condicional asociada sea verdadera, al convertirse en falsa se finaliza la
ejecución y se abandona la instrucción y se continua con la siguiente, este tipo de
instrucción tiene una estructura de funcionamiento para hacer un número de repeticiones
no necesariamente determinado[3].
2. BUCLE WHILE
La estructura repetitiva hacer mientras (en inglés DO WHILE) es aquella en que el cuerpo
del bucle se repite mientras se cumple una determinada condición. Al dejar cumplirse la
expresión lógica utilizada se deja de ejecutar el ciclo; pero en este caso la evaluación de la
expresión se hace al final del bucle.
Las estructuras iterativas de este tipo se ejecutan 1 o más veces, la naturaleza de este
comportamiento está sustentado en la necesidad de ejecutar incondicionalmente un bloque
de instrucciones por lo menos una vez, de esta forma si la expresión llega a ser falsa en la
primera ejecución ya se ejecuta una segunda vez[4].
INICIO A=0
PROCESO1 PROCESO1
PROCESON-1 PROCESON-1
MECANISMO DE A=A+1
TERMINACIÓN
SI SI
CONDICIÓN A < 10
NO NO
Dónde:
INICIO: Representa a la inicialización que permitirá que la expresión lógica evaluada sea
verdadera dependiendo del contexto de la solución del problema.
CONDICIÓN: Representa a la expresión lógica que controla la ejecución del siguiente ciclo.
MECANISMO DE TERMINACIÓN: Representa a la expresión matemática o instrucción que
modifica al resultado de la expresión lógica para que esta sea falsa y así abandone el ciclo.
Al usar la aplicación DFD se tiene un icono especial, después de agregar la figura se debe
especificar la expresión lógica que controla el ciclo, el inicio debe ser especificado por el
diseñador de acuerdo al contexto del problema, la finalización está en función de cuando la
expresión se haga falsa y el mecanismo de terminación son las instrucciones que harán que
el bucle finalice en determinado momento[4].
Luego se agregan todos los procesos a realizar subordinados al ciclo while, estos están
antes de la figura de cierre. Este bloque de procesos es de una naturaleza amplia y
repetirán su accionar mientras la condición especificada sea verdadera.
3. RESUMEN
Las instrucciones iterativas poseen un mecanismo de repetición controlado de instrucciones
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Modifique el diagrama del punto 3 para que se pueda definir por teclado la cantidad de
números a ingresar usando la instrucción while.
2. Modifique el diagrama del punto 4 para que se muestren los números impares entre un
límite inferior y un límite superior definidos por teclado usando la instrucción while.
3. Crear un diagrama de flujo para que nos muestre la serie Fibonacci hasta un número
ingresado por teclado usando la instrucción while.
4. Elaborar un diagrama de flujo que nos permita invertir un número entero de 6 cifras usando
la instrucción while.
5. Elabore los programas usando for, while y do while.
VI
CUESTIONARIO
1. ¿Qué es un bucle?
2. ¿Qué tipo de expresión controla el bucle?
3. ¿Cómo controlamos la ejecución de un bucle?
4. ¿Qué es un bucle while?
5. ¿Cuántas veces se puede ejecutar un bucle while?
6. ¿Cómo controlamos la ejecución de un bucle while?
7. ¿Qué formas de terminar un bucle while existen?
8. ¿Cómo se establece la inicialización de un bucle while?
9. ¿Cómo finaliza abruptamente un bucle while?
10. ¿Qué es un bucle infinito?
11. ¿Qué diferencias existen entre un bloque do while, while y un bucle for?
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 09:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Anidamientos de instrucciones de control simple.
Anidamientos de instrucciones de control doble
Resumen.
III
MARCO TEORICO
1. INTRODUCCIÓN
En las anteriores ocasiones se han utilizado instrucciones de control simples y dobles para
alterar el flujo de ejecución de instrucciones en un diagrama de flujo, especialmente en una
decisión, ahora lo que vamos a hacer es colocar instrucciones de control anidadas, es decir
unas dentro de otras para poder agregar más expresiones condicionales que restringen la
ejecución de una instrucción particular, a este proceso de diseño de diagramas de flujo se
le llama anidamiento de instrucciones y nos sirve para poder establecer un control de flujo
más complejo y estricto, en algunos casos es posible establecer el flujo de esta forma para
poder simplificar las expresiones de control que se diseñan con conectores lógicos tipo
&(and), poder hacer este tipo de anidamientos nos permite una simplificación muy
estructurada de las condiciones[1].
Las instrucciones de control sean simples, dobles o múltiples se pueden anidar entre si y
con otros tipos de instrucción, no existe límite para este tipo de especificaciones[2].
Nada impide que dentro de una instrucción de control simple no existan otras instrucciones
adicionales junto con una o varias otras instrucciones de control.
El proceso de diseño nos indica siempre una solución a un problema planteado, no existen
soluciones únicas pero si soluciones ideales, se pueden hacer uso de expresiones
condicionales con el uso de conectores lógicos, en el caso del conector lógico and se puede
hacer que una estructura anidada de instrucciones de control lo represente[4].
Al igual que en el caso anterior es posible también agregar otro tipo de instrucciones al
anidamiento, sin que tengan que ser estas instrucciones de control.
Se aprecia claramente que las salidas de cada decisión están dadas en función si la
evaluación de la expresión condicional fue verdadera o falsa, es decir que no siempre s.e
va a llegar a la parte más interna de la estructura de esta forma nosotros tenemos las salidas
estructuradas en función de los valores de las variables empleadas, claramente se puede
apreciar que existe una salida que deja de lado la otra rama de la condicional.
Tal como sucedía con las instrucciones condicionales simples las dobles también pueden
contener instrucciones condicionales simples y viceversa. Las salidas se aprecian
claramente en el gráfico, es necesario ver que la secuencia de ejecución debe estar clara
en la mente del programador, la más mínima mala interpretación nos dará una idea muy
herrada de cómo debe d ejecutarse el algoritmo en todos los casos y con todos los posibles
conjuntos de valores que las variables podrán asumir para la ejecución del programa.
4. RESUMEN
Las instrucciones de control ya sean simples, dobles o múltiples pueden ser anidadas y en
el proceso se puede establecer condiciones o expresiones condicionales más complejas y
estrictas, no debemos olvidar que dichas expresiones se establecen para condicionar que
sea ejecutado una secuencia de instrucciones de diversa índole incluyendo instrucciones
de control, el aplicar anidamientos nos permite mayor control y diversidad de opciones en
la ejecución de instrucciones, las opciones de ejecución serán más específicas y los
resultados de la ejecución de un programa serán más claros. Las instrucciones dobles
pueden tener las dos salidas con condicionales anidados o tal vez solo una, siendo en este
caso siempre la salida del verdadero, además de anidar instrucciones de control podemos
anidar instrucciones de otro tipo y a la vez más de una instrucción, todo depende del diseño
del algoritmo que estemos haciendo.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Diseñar un diagrama de flujo que nos permita ingresar números enteros en 7 variables y a
continuación con instrucciones de control dobles anidadas mostrar al número mayor
ingresado por pantalla.
2. Modifique el diagrama anterior para que se muestre por pantalla al mayor y al menor de los
números ingresados.
VI
CUESTIONARIO
1. ¿Qué es anidamiento?
2. ¿Cuándo se anidan instrucciones?
3. ¿Las instrucciones secuenciales se pueden anidar?
4. ¿Cómo se anidan las instrucciones condicionales simples?
5. ¿Cuántos niveles de anidamiento se pueden hacer con instrucciones condicionales
simples?
6. ¿Qué tipo de instrucciones se pueden anidar dentro de una condicional simple?
7. ¿Cuántas instrucciones se pueden colocar en un mismo nivel de anidamiento con
condicionales simples?
8. ¿Cómo se anidan las instrucciones condicionales dobles?
9. ¿Cuántos niveles de anidamiento se pueden hacer con instrucciones condicionales dobles?
10. ¿Qué tipo de instrucciones se pueden anidar dentro de una condicional doble?
11. ¿Cuántas instrucciones se pueden colocar en un mismo nivel de anidamiento con
condicionales dobles?
12. ¿Cuándo se deja una salida vacía en anidamientos con condicionales dobles?
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 10:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Anidamientos de instrucciones iterativas.
Anidamientos de instrucciones de control en instrucciones iterativas.
Resumen.
III
MARCO TEORICO
1. INTRODUCCIÓN
El anidamiento de instrucciones no se remite tan solo a instrucciones de control, también
es posible anidar instrucciones iterativas entre sí, o con otras instrucciones que crean o
generan bloques de instrucciones dependientes, esto quiere decir que no hay anidamiento
en instrucciones secuenciales, ya que por su simplicidad de ser una sola línea esto no es
posible; sin embargo esto nos conduce a tener instrucciones iterativas o de bucle anidadas,
por la necesidad de hacer que un proceso se realice n*n veces, o por el contrario también
es posible anidar instrucciones de control dentro de instrucciones iterativas lo que nos lleva
a que el control se ejecute n veces[1].
La necesidad de este tipo de procesos es resultado de la cantidad de operaciones que son
necesarias de llevar a cabo para la resolución de un problema, cada nivel de anidamiento
lleva a la ejecución del proceso por n veces, en el caso de las instrucciones iterativas, por
cada nivel de anidamiento estaremos agregando otras n veces de ejecución que en la
cuenta final se multiplican a los anteriores niveles, debemos basar el numero de niveles en
la cantidad de veces que se necesite el proceso teniendo en cuenta los incios y finales de
cada bucle anidado[2].
En el ejemplo anterior se muestra dos instrucciones para(for) anidadas que mostrarán por
pantalla las tablas de multiplicar; la instrucción para(for) por defecto obliga a especificar el
inicio del proceso, que en estos caso está supeditado al valor inicial asignados a las
variables x y z, la progresión y su forma de crecimiento, que aquí se da en crecimiento de
1 en 1 y la condición para la finalización determinada por el valor final de 9 y 10 en cada
caso[3].
El mismo ejemplo anterior lo mostraremos con el doble anidamiento de las instrucciones
mientras(while):
4. RESUMEN
Las instrucciones iterativas se pueden anidar por varios niveles, las instrucciones para(for)
tiene una estructura que les permite controlar las partes que la componen, por lo que solo
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Diseñar un diagrama de flujo que nos permita ingresar números enteros en 7 variables y a
continuación con instrucciones de control dobles anidadas mostrar al número mayor
ingresado por pantalla.
2. Modifique el diagrama anterior para que se muestre por pantalla al mayor y al menor de los
números ingresados.
VI
CUESTIONARIO
1. ¿Qué es anidamiento?
2. ¿Cuándo se anidan instrucciones?
3. ¿Cuántos niveles de anidamiento se pueden hacer con instrucciones iterativas?
4. ¿Qué tipo de instrucciones se pueden anidar dentro de una instrucción iterativa?
5. ¿Cuántos niveles de anidamiento se pueden hacer con instrucciones iterativas?
6. ¿Cuántas instrucciones se pueden colocar en un mismo nivel de anidamiento de
instrucciones iterativas?
7. ¿Cómo se puede alterar el flujo de una instrucción iterativa con instrucciones condicionales?
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 11:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Variable contador
Variable acumulador
Variable interruptor
Variable interruptor múltiple
Bucle infinito
Bucles controlados por centinela
Bucles controlados por banderas
III
MARCO TEORICO
1. INTRODUCCIÓN
En las anteriores ocasiones se han usado los bucles bajo una forma un tanto parametrada,
es decir siempre se ha diseñado de forma evidente una inicialización, un control de
expresión, un proceso que haga que en algún momento la expresión condicional se haga
falsa[1].
Pero en la programación los bucles actúan bajo muchos tipos diferentes de estrategias, es
así que se diseñan de forma que sean controlados de diferentes formas especiales, esto es
necesario para satisfacer los requerimientos de operación del programa final que usará
dicha codificación, en esta práctica aprenderemos más sobre ello, es decir como diseñar
bucles y como usar variables para el control de ejecución así como otros tipos de
instrucción.
2. VARIABLE CONTADOR
Una variable contador es la que se incrementa o decrementa con cada vuelta al ciclo o
repetición del bucle, esta variable se define al principio del algoritmo, o con anterioridad al
bloque de la instrucción iterativa y posteriormente se inicializa con el valor que marcará el
inicio del bucle, este valor puede ser 0, 1 o alguno que marque el inicio o tal vez el valor
final esperado si se diseña para ir en progresión inversa, luego en cada vuelta se le
incrementa o decrementa en 1, o en el valor determinado por el programador para cumplir
con el proceso esperado, para que de esa forma llegue a un valor final. Estas variables son
muy útiles ya que siempre queremos controlar el número de veces que se repitió un ciclo y
ese valor es útil en muchas circunstancias[2].
A=0
PROCESO1
A=A+1
PROCESON
SI
A<10
NO
3. VARIABLE ACUMULADOR
Una variable acumulador almacena una serie de adiciones o sumas sucesivas constantes
hechas dentro de un bucle, es decir en cada vuelta del ciclo la variable agrega una nueva
cantidad a las que ya tiene sumada, podríamos equiparar a este tipo de variables con el
resultado de una sumatoria de valores, de esta forma almacenamos el valor de la suma
vuelta tras vuelta y al final tenemos una sumatoria final en resultado almacenada en la
variable utilizada para este propósito, este tipo de variable es similar al contador con la única
diferencia que no es una progresión constante si no un grupo de cantidades diferentes en
cada vez[3].
A=0
PROCESO1
SU = SU + B
PROCESON
SI
A<10
NO
4. VARIABLE INTERRUPTOR
Estos tipos de variables se crean para almacenar únicamente dos valores, o en algunas
ocasiones especiales un número determinado y formateado de valores, que pueden ser 1
ó 0, cuando se trata de dos valores o en su defecto verdadero o falso, estos valores están
asociados a la realización o no de un proceso, es decir la variable toma ese valor como un
indicativo que llevo a cabo algo. Estas variables también reciben el nombre de switch o
banderas. Para los casos en los que se toman más de dos valores este tipo de variables
toma un conjunto de valores determinado y cada uno de los valores tiene un significado
muy particular y asociado a la naturaleza del programa, este tipo de significado es
proporcionado por el programador y no guarda relación con otras situaciones ajenas al
programa[4].
F=0
PROCESO1
NO
F=0
SI
F=1
SI
F=0
NO
F=0
PROCESO1
NO
X=0
SI
F=3 NO
SI
F=2
F=0
SI
NO
6. BUCLE INFINITO
Por definición un bucle debe contener condiciones que establezcan cuándo empieza y
cuándo acaba, de manera que, mientras las condiciones se cumplan, ejecute una secuencia
de código de manera repetitiva en función de como ha sido diseñada hasta completar el
ciclo de ejecución[3].
En el caso de ciclo infinito, como la condición de finalización no se alcanza, el bucle sigue
ejecutando el segmento de código indefinidamente. Es por eso que al establecer la variable
de control en la expresión lógica que controla la ejecución del bucle se debe especificar
claramente cuando llega a su fin el bucle. En el ejemplo siguiente la variable A nunca será
mayor a 10.
A=0
PROCESO1
B=A+1
PROCESON
SI
A<10
NO
PROCESO1
INGRESAR A
PROCESON
SI
A<10
NO
PROCESO1
INGRESAR A
PROCESON
SI
A=0
NO
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un diagrama de flujo que nos permita ingresar 4 números enteros y luego mostrar
el mínimo común múltiplo, para ello use variables switch.
2. Modifique el diagrama anterior para que halle el mcm de N números enteros.
3. Crear un diagrama de flujo para que nos muestre la el máximo común divisor de tres
números haciendo uso de bucles infinitos.
4. Use la técnica del centinela para hallar el factorial de un número entero ingresado por
teclado, haga la progresión de forma inversa.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 12:
I
OBJETIVOS
Hacer que el alumno tenga mayor practica en la especificación de algoritmos con diagramas
de flujo.
Aplicar las instrucciones y los anidamientos en diagramas de flujo.
Diseñar bucles infinitos, controlados por banderas y contadores.
II
TEMAS A TRATAR
Introducción.
Concepto de Diagrama de Flujo.
Características comunes
Ventajas de los diagramas de flujo
Tipos de diagramas de flujo
Simbología y significado
Conclusiones
III
MARCO TEORICO
1. INTRODUCCIÓN
Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través
de sistemas de tratamiento de información. Los diagramas de flujo describen que
operaciones y en que secuencia se requieren para solucionar un problema dado[1].
El diagrama de flujo es la representación gráfica del algoritmo o proceso. Se utiliza en
disciplinas como la programación, la economía, los procesos industriales y la psicología
cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que
representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas
que conectan los puntos de inicio y de fin de proceso[1].
3. CARACTERÍSTICAS COMUNES
Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.
Además, todo camino de ejecución debe permitir llegar desde el inicio hasta el término.
Las siguientes son acciones previas a la realización del diagrama de flujo:
Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar
presentes el dueño o responsable del proceso, los dueños o responsables del proceso
anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.
Definir qué se espera obtener del diagrama de flujo.
Identificar quién lo empleará y cómo.
Establecer el nivel de detalle requerido.
Determinar los límites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son:
Establecer el alcance del proceso a describir. De esta manera quedará fijado el
comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso
previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que están incluidos en el
proceso a describir y su orden cronológico.
Si el nivel de detalle definido incluye actividades menores, listarlas también.
Identificar y listar los puntos de decisión.
Construir el diagrama respetando la secuencia cronológica y asignando los
correspondientes símbolos.
Asignar un título al diagrama y verificar que esté completo y describa con exactitud el
proceso elegido.
6. SIMBOLOGÍA Y SIGNIFICADO
Se tiene símbolos como los siguientes:
Óvalo o Elipse: Inicio y término (Abre y/o cierra el diagrama).
Rectángulo: Actividad (Representa la ejecución de una o más actividades o
procedimientos).
Rombo: Decisión (Formula una pregunta o cuestión).
Círculo: Conector (Representa el enlace de actividades con otra dentro de un
procedimiento).
Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).
7. CONCLUSIONES
Los diagramas de flujo son una herramienta valiosa para la mejora de los procesos,
permiten detectar las actividades que agregan valor y aquéllas que son redundantes o
innecesarias[4].
También son de gran utilidad durante el desarrollo de la documentación de los Sistemas de
Gestión, pues proveen una descripción de los procesos y un detalle de las operaciones
mucho más amigable que los procedimientos e instructivos basados en texto.
Contribuyen a resolver uno de los principales problemas, que es la resistencia del personal
a emplear los documentos como referentes para el desempeño de las tareas. Una copia
ampliada del diagrama de flujo al alcance de los operadores del proceso facilita la consulta
y promueve la creatividad. Es conveniente emplear programas específicos para la
confección de los diagramas de flujo. En general, estos programas son de manejo sencillo
y facilitan notablemente la tarea.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un diagrama de flujo que nos permita ingresar 4 números enteros y luego mostrar
el mínimo común múltiplo, para ello use variables switch.
2. Modifique el diagrama anterior para que halle el mcm de N números enteros.
3. Crear un diagrama de flujo para que nos muestre la el máximo común divisor de tres
números haciendo uso de bucles infinitos.
4. Use la técnica del centinela para hallar el factorial de un número entero ingresado por
teclado, haga la progresión de forma inversa.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 13:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Algoritmo
Diagramas de Nassi – Schneiderman
Estructuras secuenciales
Estructuras condicionales
III
MARCO TEORICO
1. INTRODUCCIÓN
Elaborar programas de computadora implica desarrollar algunas técnicas que se adquieren
con el tiempo, el pseudocódigo, los diagramas de flujo y los diagramas ns son una forma
de aprender a diseñar programas de computadora de forma fácil y comprensible, en
especial los diagramas ns ayudan a estructurar el código de una forma muy fácil es una
forma simple de aprender a crear programas de computadora haciendo uso de un número
de recursos bastante fácil y simple, los diagramas ns utilizar cajones de diferente diseño
para crear sus diagramas y expresar los algoritmos que luego se convertirán en programas,
una de las principales ventajas de los diagramas ns es que cuenta con un número reducido
de figuras que permiten crear programas de forma simple y ocupando poco espacio en el
papel por el contrario de los diagramas de flujo tienden a ser engorrosos por las flechas y
por los caminos que van bifurcándose ocupando demasiado espacio sobre la superficie
donde son diseñados[1].
Los algoritmos nos han permitido elaborar esquemas resolución de problemas paso a paso
Es decir de forma secuencial con ellos en los diagramas de flujo de manera gráfica hemos
descrito una forma de enfocar la solución de un problema paso a paso. en las sesiones
anteriores hemos hecho uso, de los diagramas de flujo para esquematizar la solución con
la estructura de un programa de computadora de forma básica, los diagramas de flujo como
herramienta nos permiten estructurar nuestras ideas y ordenar las instrucciones de forma
secuenciada y esquematizado además la secuencia del flujo de la ejecución del algoritmo
dado, sin embargo para algunas personas resulta complicado y estructurar las ideas que
permitan dar solución a un problema por lo que otro tipo de estructuras qué nos permiten
idealizar algoritmos son los diagramas ns también conocidos como diagramas de Chapín.
Dichos diagramas nos permiten de una manera simple y fácil y a la vez gráfica estructurar
ordenadamente nuestras ideas a la hora de crear un programa y con ello dar solución a un
problema planteado los diagramas ns ofrecen la ventaja de no poseer flechas de orientación
sino más bien utilizar rectángulos estructurados que fluye de arriba hacia abajo lo que para
algunas personas se ve como más simple y más explícito a la hora de entender un
algoritmo[2].
2. ALGORITMO
Se considera bajo el término de algoritmo a cualquier conjunto de pasos ordenados y
estructurados que ha sido elaborado bajo un conjunto de reglas que nos permiten dar
solución a un problema de forma precisa o con instrucciones precisas que no permiten ni
ambigüedad ni duda mi duda cada paso dentro del algoritmo se conoce como una
instrucción cada una de las instrucciones es escrita de forma precisa sin ambigüedad ni
imprecisión[3].
Se conoce como algoritmo a un conjunto secuencial de pasos que tienen un orden lógico
de ejecución y tienen a la vez una ejecución exacta que nos dará siempre el mismo
resultado.
Los algoritmos tienen por contenido un conjunto de especificaciones que explican la
realización de un proceso en particular los procesos pueden ser largos o pequeños pero
siempre es conveniente desfragmentar en pequeñas partes dicho proceso para hacerlo más
fácil de diseñar y más entendible al diseñador[4].
Es importante aprender a crear algoritmos porque así podemos especificar más claramente
y de forma muy programática los sucesos o las acciones que deben llevarse a cabo para
ejecutar cualquier proceso esto nos lleva a dominar completamente el proceso y a poder
cambiar y rediseñar algunas partes para mejorar y optimizar dicho proceso al diseñar un
algoritmo no debemos dejar ninguna ningún tipo de instrucción de forma ambigua ni trivial
es necesario que las instrucciones sean especificadas de forma correcta completa y sin
ambigüedades.
3. CARACTERÍSTICAS DE UN ALGORITMO
Los algoritmos para ser considerado como tal deben cumplir con algunas reglas específicas:
Precisión el algoritmo debe tener instrucciones claras Y sin ambigüedades las cuales se
deben desarrollar en un orden estricto yo vencer a un orden lógico.
Proceso definido los algoritmos desarrollan o implementan la solución algún problema
determinado los cuales deben tener un conjunto de datos de entrada instrucciones que
definan claramente cuáles son los pasos a seguir los algoritmos deben tener algunas
características especiales para ser considerado como la precisión, los algoritmos deben
desarrollarse en un orden lógico estricto que represente una secuencia natural del proceso
que está reflejando.
Bien definido los algoritmos son la esquematización de un proceso que estamos tratando
de automatizar los pasos que se han programado son los únicos que ejecutará el
computador cuando el algoritmo se transforma en un programa.
Finito los pasos incluidos dentro de un algoritmo deben ser de un número limitado y pequeño
para que el proceso que estamos tratando de representar en automatización sea
comprensible para la persona que lo programas hay para las personas que lo ejecutan.
Representación formal cualquier persona debe ser capaz de leer un algoritmo ya que es
como un lenguaje que representa cómo es que se tiene que llevar a cabo un proceso en
específico,
Corrección los algoritmos deben estar completos en todas sus líneas y en todas sus
estructuras para que así puedan representar adecuadamente el proceso que deben llevarse
a cabo de forma automatizada por una computadora,
Eficiencia los algoritmos deben representar los procesos que están tratando de automatizar
de la forma más eficiente posible ahorrando la mayor cantidad de recursos y de tiempo, en
la vida cotidiana uno puede encontrar muchas formas de algoritmos cualquier proceso
cíclico formal y repetitivo puede ser considerado un algoritmo o puede ser representado por
tal.
Los algoritmos son una forma de automatizar los procesos que diariamente realizamos y
así simplificar la vida de los humanos ahorrando tiempo y esfuerzo en cumplir tareas
repetitivas y tediosas[4].
4. DIAGRAMAS NS
Los diagramas ns son una forma gráfica de representar algoritmos tienen una combinación
Por una parte de las especificaciones tal cómo se hace en el pseudocódigo y de los objetos
gráficos al estilo de un diagrama de flujo sin ser tan tedioso ni tan complejo en su confección
es ventajoso frente a los diagramas de flujo ya que no ocupa tanto espacio cuando los
algoritmos son grandes no es demasiado engorroso construirlo y es fácil de seguir el flujo
de los procesos ya que se hace de forma descendente de arriba hacia abajo son los
siguientes:
Instrucciones secuenciales Cómo inició fin leer y escribir asignación de operaciones
Matemáticas.
Instrucciones condicionales como la decisión simple la decisión doble y la decisión
múltiple.
Instrucciones cíclicas como mientras, para y hasta.
A. ESTRUCTURAS SECUENCIALES
Como estructuras secuenciales en cualquier tipo de algoritmo tenemos las operaciones de
lectura de datos las operaciones para visualizar datos en pantalla las operaciones
Matemáticas, las asignaciones de valores a variables las declaraciones de variables etc.
B. DEFINICIÓN
Las instrucciones secuenciales son aquellas que siguen una secuencia ordenada de
ejecución y no son estructuradas, es decir que no existen instrucciones subordinadas: la
declaración de variables, asignación, instrucción Leer e instrucción Escribir.
Debemos tener en cuenta que los algoritmos trabajan con datos, los datos se ingresan y
luego ellos se procesan, finalmente los datos se convierten en información y se muestran
por pantalla y se entregan al ejecutor del programa.
C. DECLARACIÓN DE VARIABLES
Declarar variables significa que los identificadores que almacenaran datos son introducidos
formalmente al programa, dichos identificadores y nombres asocian posiciones de memoria
con nombres del programa, es importante definir una forma o manera estándar de
declaración pensando en la compatibilidad de los diferentes lenguajes. Ejemplo:
Entero: edad
Real: estatura, peso, sueldo
Cadena: nombre, dirección
Es una buena práctica declarar las variables al inicio de un algoritmo, rutina y proceso.
Declarar variables en cualquier punto a pesar que es posible no es aconsejable, debido a
que se pierde el orden y adicionalmente en la mayoría de los lenguajes de programación el
ámbito de vigencia de la variable está supeditado al bloque de declaración[4].
D. ASIGNACIÓN
Asignar un valor a una variable significa que almacenaremos un dato en un espacio de
memoria asignado al identificador o nombre que estamos usando, las asignaciones
permiten entregar los datos de derecha a izquierda, en los algoritmos frecuentemente se
usan flechas para indicar como se mueve el valor de derecha a izquierda y queda
almacenado en la variable a la izquierda la operación no elimina el dato si está en una
variable a la derecha. Una expresión de asignación tiene la forma:
Variable = expresión
En donde la expresión puede estar formada por una constante, valor, por un conjunto de
Edad = 10
Estatura = 1.80
Resultado = 2*3
Donde edad y resultado son variables de tipo entero y estatura de tipo real que se supone
declaradas previamente.
La asignación tiene tres componentes, una variable, el signo igual o una flecha que apunta
a la izquierda y la expresión cuyo valor se asigna a la variable. La variable se encontrará a
la izquierda siempre del símbolo igual o la flecha, mientras que la expresión siempre estará
a la derecha. Ejemplos:
Entero: X, Y
X = 10
Y = X * 2 + 8
E. INSTRUCCIÓN LEER
La instrucción LEER especifica que se ingresa datos desde teclado estándar a una variable
LEER captura el dato y lo almacena en la variable, el dato quedará almacenado bajo el
formato de la variable. En diagrama N-S la instrucción de entrada se representa así:
Ejemplo:
Leer a, b
Donde "a" y "b" son las variables que recibirán los valores y que deben haberse declarado
previamente.
F. INSTRUCCIÓN ESCRIBIR
La instrucción ESCRIBIR nos permite enviar datos y mensajes desde la memoria hacia un
dispositivo de salida como la pantalla o la impresora. La información que se envía puede
ser constante es decir valores fijos o también el contenido de variables.
Ejemplo:
Escribir a, b
5. RESUMEN
Las instrucciones secuenciales son tan iguales como al de los otros tipos de métodos de
diseños de algoritmos y lenguajes de programación, se debe tener en cuenta que los
diagramas N-S, son una mezcla de diagramas de flujo y pseudocódigo, esto hace que sea
un poco más sencillo que sea más estructurado y que no hayan problemas de diseño y de
flujo de instrucciones.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en Diagramas N-S para que se muestre por pantalla al menor, al
mayo o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en Diagramas N-S que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
3. Modifique el algoritmo anterior para que se muestre por pantalla la opción elegida.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995
SESIÓN N° 14:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Algoritmo
Diagramas de Nassi – Schneiderman
Estructuras secuenciales
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Los algoritmos nos han permitido elaborar esquemas resolución de problemas paso a paso
Es decir de forma secuencial con ellos en los diagramas de flujo de manera gráfica hemos
descrito una forma de enfocar la solución de un problema paso a paso. en las sesiones
anteriores hemos hecho uso, de los diagramas de flujo para esquematizar la solución con
la estructura de un programa de computadora de forma básica, los diagramas de flujo como
herramienta nos permiten estructurar nuestras ideas y ordenar las instrucciones de forma
secuenciada y esquematizado además la secuencia del flujo de la ejecución del algoritmo
dado, sin embargo para algunas personas resulta complicado y estructurar las ideas que
permitan dar solución a un problema por lo que otro tipo de estructuras qué nos permiten
idealizar algoritmos son los diagramas ns también conocidos como diagramas de Chapín.
Dichos diagramas nos permiten de una manera simple y fácil y a la vez gráfica estructurar
ordenadamente nuestras ideas a la hora de crear un programa y con ello dar solución a un
problema planteado los diagramas ns ofrecen la ventaja de no poseer flechas de orientación
sino más bien utilizar rectángulos estructurados que fluye de arriba hacia abajo lo que para
algunas personas se ve como más simple y más explícito a la hora de entender un
algoritmo[1].
2. ESTRUCTURAS CONDICIONALES
Las estructuras de decisión, se pueden llamar estructuras condicionales, de control o
también llamadas de selección, nos permiten que el algoritmo pueda tomar diferentes
caminos es decir que en determinados puntos el algoritmo siga un camino dependiendo de
una condición que bajo un contexto es verdadero y bajo otro es falso, la selección alternativa
evita que se siga un trayecto[2]. Se pueden manejar tres tipos de decisiones: simple, doble
y múltiple.
Las condicionales dobles por el contrario tienen ambas salidas consideradas con
instrucciones sucesivas[3]:
H. DECISIÓN MÚLTIPLE
La forma como se ejecuta una decisión múltiple es tomando una variable que puede tomar
un numero finito de alternativas[4]. En diagrama N-S la estructura de selección múltiple tiene
la forma:
3. RESUMEN
Las condicionales tienen la función principal de que el código se ejecute o no según los
resultados de evaluaciones o el valor de las variables usadas en el control del flujo, de esta
forma vamos a controlar la ejecución de bloques de instrucciones y vamos a diferenciar
correctamente los procesos que deben ser ejecutados según un estado, por lo mismo los
diferentes tipos de condicionales se usan de formas diversas según las características que
se quieren ejecutar con el algoritmo, es importante tener presente que lo que buscamos
siempre será ejecutar el código por caminos de forma alternativa y excluyente.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en Diagramas N-S para que se muestre por pantalla al menor, al
mayo o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en Diagramas N-S que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
3. Modifique el algoritmo anterior para que se muestre por pantalla la opción elegida.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 15:
Introducción al Pseudocódigo
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Pseudocódigo
instrucciones secuenciales en pseudocódigo
Ventajas del pseudocódigo sobre los diagramas de flujo
III
MARCO TEORICO
1. INTRODUCCIÓN
Los diagramas de flujo son muy útiles para aprender la lógica de la programación, sin
embargo carecen de un pequeña característica que hace que tengamos que aprender más
con otros recursos, los programas son implementados en lenguajes de programación que
no guardan mucha relación con elementos gráficos, sino más bien con expresiones de
lenguaje natural con reglas especiales, por lo que para hacernos una mejor idea en el
desarrollo de la lógica de programación tendremos que hacer uso de recursos de
descripción de la codificación diferentes, a este tipo de recursos se le conoce como
pseudocódigo, y es muy útil porque se utiliza lenguaje natural con características de reglas
similares a los lenguajes de programación convencionales, este tipo de recurso lo
utilizaremos con un intérprete de pseudocódigo que nos permitirá ejecutar los programas
hechos en pseudocódigo[1].
2. PSEUDOCÓDIGO
El pseudocódigo (falso lenguaje) es una descripción de alto nivel de un algoritmo que
emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de
lenguajes de programación, como asignaciones, ciclos y condicionales. Es utilizado para
describir algoritmos en libros y publicaciones científicas, y como producto intermedio
durante el desarrollo de un algoritmo.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un
algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una
implementación. Programadores diferentes suelen utilizar convenciones distintas, que
pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo,
el pseudocódigo en general es comprensible sin necesidad de conocer o utilizar un entorno
de programación específico, y es a la vez suficientemente estructurado para que su
implementación se pueda hacer directamente a partir de él [2].
A <- 0;
J. LECTURA DE DATOS
La lectura de datos significa que los datos digitados desde teclado se direccionan y
almacenan en una variable, la cual corresponde al tipo de dato que se está manipulando,
se expresa con la palabra reservada Leer y luego se indica la variable que capturará los
datos, si se ingresarán datos para más de una variables es necesario separar las variables
con comas(,);
Leer A;
Lee A,B;
K. ESCRITURA DE EXPRESIONES
Para escribir expresiones utilizamos el comando escribir, es necesario recalcar que
después de dicha instrucción es necesario especificar lo que se escribe en pantalla, ya sea
una variable o una expresión distinta[4];
Escribir lista_de_expresiones;
Escribir A;
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en pseudocódigo flujo que nos permita visualizar en pantalla un menú
de opciones.
2. Modifique el algoritmo anterior para que se muestre por pantalla la opción elegida.
VI
CUESTIONARIO
1. ¿Qué es un algoritmo?
2. ¿Qué es el pseudocódigo?
3. ¿Qué elementos tiene el pseudocódigo?
4. ¿Qué tipos de instrucciones existen en la programación estructurada?
5. ¿Qué es una instrucción secuencial?
6. ¿Qué es una instrucción de control?
7. ¿Qué tipos de instrucciones secuenciales tenemos?
8. ¿Cómo se declara una variable?
9. ¿Cómo se le asigna el valor a una variable?
10. ¿Cómo se declara una constante?
11. ¿Cuáles son las ventajas del pseudocódigo sobre los diagramas de flujo?
VII
BIBLIOGRAFIA Y REFERENCIAS
[2] E. Alcalde y A. García, “Metodología de la Programación”, 3ra Edición. Ed. Madrid: McGraw
Hill, 2005.
[3] L. Joyanes Aguilar, “Metodología de la Programación”, 1ra Edición, Ed. Madrid: McGraw
Hill, 1987
[4] L. Joyanes Aguilar, “Metodología de la programación: diagramas de flujo, algoritmos y
programación estructurada”, 1ra Edición, Ed. Madrid: McGraw Hill, 1995.
[5] https://es.wikipedia.org/wiki/Pseudoc%C3%B3digo
[6] http://documents.mx/documents/el-pseudocodigo.html
SESIÓN N° 16:
Instrucciones Condicionales
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Estructuras condicionales
Anidamiento de estructuras condicionales
III
MARCO TEORICO
1. INTRODUCCIÓN
Al igual que en los diagramas de flujo las instrucciones que nos permiten tomar diferentes
rutas o caminos en la ejecución del algoritmo son indispensables para poder realizar
algunas tareas, en especial cuando queremos que el código o las instrucciones se ejecuten
condicionadas a ciertos parámetros, es indispensable tener en cuenta que en pseudocódigo
existen tres tipos de estructuras condicionales o de selección: las simples, las dobles y las
múltiples, este tipo de estructuras están más acorde con la forma como se especifican en
los lenguajes de programación los algoritmos planteados para crear programas, debemos
tener en cuenta que los lenguajes de programación hacen uso .de este tipo de estructura
con diferencias muy pequeñas en su forma de empleo[1].
2. ESTRUCTURAS CONDICIONALES
En la redacción del pseudocódigo se utiliza tres tipos de instrucciones condicionales, las
condicionales simples, las condicionales dobles y las condicionales múltiples.
Si <expresion_logica> Entonces
acciones_por_verdadero
FinSi
Si x=y Entonces
x<-a+1;
FinSi
Si expresion_logica Entonces
acciones_por_verdadero
Sino
acciones_por_falso
FinSi
Si x=y Entonces
x<-y;
Sino
y<-x;
FinSi
Leer x;
Segun x Hacer
1:
x<-1;
2:
x<-2;
3:
x<-3;
De Otro Modo:
x<-5;
FinSegun
Escribir x;
Si x=y Entonces
Si expresion_logica Entonces
acciones_por_verdadero
Sino
acciones_por_falso
FinSi
Sino
Si expresion_logica Entonces
acciones_por_verdadero
Sino
acciones_por_falso
FinSi
FinSi
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 17:
Instrucciones Iterativas I
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Estructuras iterativas
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Al diseñar algoritmos es necesario algunas veces hacer anidamientos de instrucciones, es
decir debemos colocar una instrucción dentro de otra, este tipo de procesos hace que la
complejidad de la solución diseñada aumente y de alguna manera el programador deba
tener más cuidado en la construcción de estructuras de programación, sin embargo al
dominar estas técnicas nos hace diseñar código más potente y útil que al final nos darán
una mayor versatilidad y provecho en su aplicación. En si muchas veces debemos anidar
las instrucciones unas dentro de otras para conseguir una extensión de la operatividad, esto
hace que un simple condicional tenga más opciones de decisión o que una bucle pueda
ejecutarse una mayor numero de veces[1].
2. ESTRUCTURAS ITERATIVAS
Las instrucciones iterativas representan la ejecución de una instrucción o de un bloque de
instrucciones en más de una vez. Es decir que su número consecutivo es ejecuciones es
de uno o más, dependiendo claro de la estructura y naturaleza de la condición.
M. BUCLE MIENTRAS
El bucle(ciclo) mientras(while) se repite mientras la condición P sea cierta, si al llegar por
primera vez al bucle mientras la condición es falsa, el cuerpo del bucle no se ejecuta ni una
sola vez, si es verdadera ingresa al bloque de instrucciones dentro del bucle y las ejecuta
una y otra vez, en cada inicio de ciclo se verifica primero que la expresión condicional P es
verdadera, de serlo se ejecuta el ciclo una vez más, de ser falsa se abandona el bucle
mientras y se continua con la instrucción inmediatamente posterior[2].
Donde:
{expresion_logica}: complete aquí la condición que se debe evaluar para realizar
una iteración.
{secuencia_de_acciones}: complete aqui la lista de instrucciones que desea
repetir mientras la condición {expresion_logica} sea verdadera. Recuerde que
debe incluir aquí alguna acción que pueda modificar dicha condición.
Para construir adecuadamente bloques while o mientras se debe tener en cuenta que la
condición debe estar preparada de tal forma que sea cierta al comenzar el bucle y debe
dejar de ser verdadera en alguna parte del proceso para poder abandonar el bucle[3].
leer a;
Mientras a<10 Hacer
Escribir a;
a<-a+1;
FinMientras
3. RESUMEN
Las estructuras iterativas a mientras requieren de un inicio o inicialización donde la variable
d control debe tener un valor que permita que el bucle se pueda ejecutar al inicio, la
condición con esta misma variable de control que nos permita que el bucle pueda ejecutarse
el número de veces para el cual fue diseñado, y finalmente el mecanismo que hará que la
condición que gobierna el bucle se vuelva falsa.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 18:
Instrucciones Iterativas II
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Estructuras iterativas
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Al diseñar algoritmos es necesario algunas veces hacer anidamientos de instrucciones, es
decir debemos colocar una instrucción dentro de otra, este tipo de procesos hace que la
complejidad de la solución diseñada aumente y de alguna manera el programador deba
tener más cuidado en la construcción de estructuras de programación, sin embargo al
dominar estas técnicas nos hace diseñar código más potente y útil que al final nos darán
una mayor versatilidad y provecho en su aplicación. En si muchas veces debemos anidar
las instrucciones unas dentro de otras para conseguir una extensión de la operatividad, esto
hace que un simple condicional tenga más opciones de decisión o que una bucle pueda
ejecutarse una mayor numero de veces[1].
2. ESTRUCTURAS ITERATIVAS
Las instrucciones iterativas representan la ejecución de una instrucción o de un bloque de
instrucciones en más de una vez. Es decir que su número consecutivo es ejecuciones es
de uno o más, dependiendo claro de la estructura y naturaleza de la condición.
A. BUCLE PARA
El bucle(ciclo) para(for) es una estructura repetitiva que se ejecuta de preferencia un
número determinado de veces, en la instrucción se establece un punto de inicio y un límite
que determina el final de las iteraciones, en la mayoría de los lenguajes de programación la
progresión es fija y controlada a través de variables que forman parte de la estructura del
bucle, se utiliza de preferencia cuando se sabe el número de veces que dará vueltas el
proceso[2].
Donde:
{variable_numerica}: Es la variable de control del bucle para, la que
determina cuantas vueltas ejecuta.
{valor_inicial}: establece el valor inicial donde la variable de control
inicia su ejecución.
{valor_final}: Establece el limite hasta donde llega la variable de
control en su progresión de iteraciones.
{paso}: determina la dimensión de la progresión de la variable de control
en cada iteración.
{secuencia_de_acciones}: especifica el conjunto de instrucciones que se
van a ejecutar en cada iteración.
Para construir adecuadamente bloques for o para se debe tener en cuenta que el limite
inicial y final deben estar establecidos de forma adecuada así como la progresión, de forma
tal que se pueda ejecutar el bucle.
Proceso para_que_no_ejecuta
definir i Como Entero;
Para i<-10 Hasta 5 Con Paso 1 Hacer
Escribir i;
FinPara
FinProceso
En el ejemplo anterior se establece como valor inicial para la variable de control i, el valor
de 10, se define como valor máximo el 5, y el paso en que debe progresar la variable de
control 1, el bucle para no se ejecuta debido a que el valor inicial es mayor que el fianl y la
progresión avanza de 1 en 1[3].
Proceso para_que_no_ejecuta
definir i, a, b Como Entero;
leer a;
leer b;
Para i<-a Hasta b Con Paso 1 Hacer
Escribir i;
FinPara
FinProceso
En este último ejemplo depende del ingreso de valores a las variables a y b, si a resulta ser
mayor que b nunca se ejecutará el bucle debido a que la progresión es de 1 en 1, lo mismo
sucede si son iguales[4].
4. RESUMEN
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final.
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, la variable de control que usemos nos ayudará a
control ese número de iteraciones que deben ser ejecutadas.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 19:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Estructuras iterativas
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Al diseñar algoritmos es necesario algunas veces hacer anidamientos de instrucciones, es
decir debemos colocar una instrucción dentro de otra, este tipo de procesos hace que la
complejidad de la solución diseñada aumente y de alguna manera el programador deba
tener más cuidado en la construcción de estructuras de programación, sin embargo al
dominar estas técnicas nos hace diseñar código más potente y útil que al final nos darán
una mayor versatilidad y provecho en su aplicación. En si muchas veces debemos anidar
las instrucciones unas dentro de otras para conseguir una extensión de la operatividad, esto
hace que un simple condicional tenga más opciones de decisión o que una bucle pueda
ejecutarse una mayor numero de veces[1].
2. ESTRUCTURAS ITERATIVAS
Las instrucciones iterativas representan la ejecución de una instrucción o de un bloque de
instrucciones en más de una vez. Es decir que su número consecutivo es ejecuciones es
de uno o más, dependiendo claro de la estructura y naturaleza de la condición[2].
A. BUCLE REPETIR
El bucle(ciclo) repetir…hasta(repeat … until) es una estructura repetitiva que se ejecuta un
número indeterminado de veces, se diferencia de las anteriores debido a que primero se
ejecuta por lo menos una vez y luego se vuelve a ejecutar una o más iteraciones en función
del cumplimiento de la condición formulada, la instrucción o bloque de instrucciones
subordinado se repite hasta que la condición o expresión lógica de control sea verdadera,
esto es completamente inverso a la instrucción Mientras[2].
Dentro de las instrucciones subordinadas se debe tener diseñado un mecanismo de
finalización del bucle que lleve a que la condición de control sea verdadera cuando se tenga
que finalizar el bucle. Es necesario recalcar que la ejecución del bucle se lleva a cabo por
lo menos una vez aun así la condición sea verdadera y no se vuelva a ejecutar el bucle,
todo lo contrario a lo que ocurre con mientras que se ejecuta sólo si la condición es
verdadera[3].
Repetir
secuencia_de_acciones
Hasta Que expresion_logica
Donde:
{secuencia_de_acciones}: Aquí se coloca una o mas instrucciones que se
deban ejecutar repetidas veces en función de si la {expresion_logica}
es falsa. Dentro de estas instrucciones debe existir algún mecanismo que
convierta en veradera la {expresion_logica} para finalizar la ejecución
del bucle.
expresion_logica}: es una expresión condicional que controlará la
ejecución del bucle, si es falsa se ejecutará el bucle, si es verdadera
se finaliza la ejecución.
Para construir adecuadamente bucles repetir…hasta o repeat … until se debe tener en
cuenta que bucle se ejecuta siempre por lo menos una vez, que las siguientes iteraciones
se darán si la expresión lógica que controla el bucle es falsa y que al volverse verdadera se
finaliza el bucle[4].
Proceso repite_una_sola_vez
Definir a Como Entero;
Repetir
a <- 10;
Hasta Que a = 10
FinProceso
En el ejemplo anterior se establece como expresión de control a que la variable a sea igual
a 10, la instrucción subordinada asigna 10 a la variable a, por lo que solo se ejecutará una
vez.
Proceso repite_una_sola_vez
Definir a Como Entero;
Definir f como Logico;
f <- verdadero;
Repetir
a <- 10;
Hasta Que f
FinProceso
Si nos fijamos en el último ejemplo el bucle estaba preparado para que no se vuelva a
repetir, es decir si hubiera sido un bucle mientras no debería ejecutarse[4].
4. RESUMEN
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final. Un bucle repetir…hasta es ideal para
ejecutar un proceso o un conjunto de instrucciones un número indeterminado de veces, el
cual puede ejecutarse una sola vez de forma incondicional, la variable de control que
usemos nos ayudará a control ese número de iteraciones que deben ser ejecutadas.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayor
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 20:
Instrucciones Iterativas IV
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Bucle Para controlado por contador
Bucle mientras controlado por contador
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
En el diseño de algoritmos es necesario algunas veces hacer control de la ejecución de una
instrucción iterativa basándonos en un número de veces de la repetición del bucle, el
número de veces de la repetición del bucle juega diferentes propósitos de acuerdo al
problema y al enfoque que el programador provea para la solución, existe una técnica que
se llama control de bucle basado en un contador, donde una variable de control es usada
como contador del número de veces en que el bucle es repetido[1]. Los controles están
asociados a una expresión lógica de comparación, la cual actúa en función del número de
veces que el contador registra que se ejecutó el bucle. Esto es en función de la instrucción
iterativa usada ya que es necesario la inicialización de la variable contador de acuerdo al
contexto del bloque de código[1].
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Definir suma Como Entero
Definir cantidad Como Entero
Escribir "Ingresar la cantidad de numeros a sumar: "
Leer cantidad
Para varContador <- 1 Hasta cantidad Con Paso 1 Hacer
Escribir "Ingresar dato ", varContador,": "
Leer dato
suma <- suma + dato
varContador <- 1
Fin Para
Escribir "La sumatoria es: ", suma
FinProceso
En el ejemplo anterior en cada vuelta el valor de varContador vuelve a 1, por lo que nunca
llegará a valer 10[3]. Otro problema es no tener una instrucción que permita el incremento
de la variable contador, al suceder esto nunca llegará al valor final, pero en el bucle para es
solo posible si se decrementa en el cuerpo.
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Definir suma Como Entero
Definir cantidad Como Entero
Escribir "Ingresar la cantidad de numeros a sumar: "
Leer cantidad
Para varContador <- 1 Hasta cantidad Con Paso 1 Hacer
Escribir "Ingresar dato ", varContador,": "
Leer dato
suma <- suma + dato
varContador <- varContador - 1
Fin Para
Escribir "La sumatoria es: ", suma
FinProceso
La variable contador siempre debe ser inicializada en el extremo opuesto a el valor final del
control, de lo contrario no se ejecutará ni una sola vez[4].
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Definir suma Como Entero
Para varContador <- 10 Hasta 0 Con Paso 1 Hacer
Escribir "Ingresar dato ", varContador,": "
Leer dato
suma <- suma + dato
Fin Para
Escribir "La sumatoria es: ", suma
FinProceso
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Definir suma Como Entero
Para varContador <- 0 Hasta 10 Con Paso 1 Hacer
Escribir "Ingresar dato ", varContador,": "
Leer dato
suma <- suma + dato
Fin Para
Escribir "La sumatoria es: ", suma
FinProceso
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
varContador <- 0
Mientras varContador < 10 Hacer
varContador <- 0
Leer dato
Escribir dato
varContador <- varContador + 1
Fin Mientras
FinProceso
En el ejemplo anterior en cada vuelta el valor de varContador vuelve a 0, por lo que nunca
llegará a valer 10.
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Mientras varContador < 10 Hacer
varContador <- 0
Leer dato
Escribir dato
varContador <- varContador + 1
Fin Mientras
FinProceso
Otro problema es no tener una instrucción que permita el incremento de la variable contador,
al suceder esto nuca llegará al valor final.
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
Mientras varContador < 10 Hacer
varContador <- 0
Leer dato
Escribir dato
Fin Mientras
FinProceso
La variable contador siempre debe ser inicializada en el extremo opuesto a el valor final del
control, de lo contrario no se ejecutará ni una sola vez.
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
varContador <- 11
Mientras varContador < 10 Hacer
Leer dato
Escribir dato
Fin Mientras
FinProceso
Proceso bucle_contador_infinito
Definir varContador Como Entero
Definir dato Como Entero
varContador <- 1
Mientras varContador < 10 Hacer
Leer dato
Escribir dato
varContador <- varContador + 1
Fin Mientras
FinProceso
4. RESUMEN
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final.
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, la variable de control que usemos nos ayudará a
control ese número de iteraciones que deben ser ejecutadas.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 21:
Instrucciones Iterativas V
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Bucle mientras controlado por centinela
Bucle repetir … hasta controlado por centinela
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Al diseñar algoritmos es necesario algunas veces hacer control de la ejecución de una
instrucción iterativa basándonos en un valor límite, el valor límite juega diferentes propósitos
de acuerdo al problema y al enfoque que el programador provea para la solución, existe
una técnica que se llama control de bucle basado en centinela, donde un valor usado como
límite es usado en forma de constante o asignado a la variable de control[1].
Los controles están asociados a una expresión lógica de comparación, la cual actúa en
función de la naturaleza de la expresión de comparación y al propio mecanismo de la
instrucción iterativa usada[1].
Proceso repite_una_sola_vez
Definir suma Como Entero;
Definir f como Entero;
f <- 0;
Mientras f != 10 Hacer
suma <- suma + f;
Leer f;
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso
En el ejemplo anterior se ingresan valores por teclado y mientras el valor centinela no sea
ingresado la suma y captura de números continúa, es necesario recalcar que el valor
centinela debe ser asociado o comparado con la variable de control como constante o en
otra variable que vendría a ser la variable centinela[2].
Proceso repite_una_sola_vez
Definir suma Como Entero;
Definir f como Entero;
f <- 0;
Mientras suma <= 100 Hacer
suma <- suma + f;
Leer f;
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso
Proceso repite_una_sola_vez
Definir suma Como Entero;
Definir f Como Entero;
Definir Centinela Como Entero;
Escribir "Ingrese el valor del centinela: ";
Leer Centinela;
f <- 0;
Mientras suma <= Centinela Hacer
suma <- suma + f;
Leer f;
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso
Hemos variado el proceso haciendo que una variable Centinela reciba su valor por teclado,
esto hará que el límite sea variable y el bucle más adaptable a otras condiciones.
Otra forma de aplicar esto es haciendo uso de una expresión lógico basada en igual(==),
donde el valor de la variable de control permanece invariable mientras se repita la ejecución
del bucle[2].
Proceso repite_una_sola_vez
Definir suma Como Entero;
Definir f Como Entero;
Definir Centinela Como Entero;
Centinela <- 10;
f <- 10;
Mientras f == Centinela Hacer
suma <- suma + f;
Leer f;
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso
Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
f <- 0;
suma <- 0;
Repetir
suma <- suma + f;
Leer f;
Hasta Que f == 10
Escribir "La sumatoria es: ", suma;
FinProceso
En el ejemplo anterior se ingresan valores por teclado y hasta que el valor centinela no sea
ingresado(10) la suma y captura de números continúa, es necesario recalcar que el valor
centinela debe ser asociado o comparado con la variable de control como constante o en
otra variable que vendría a ser la variable centinela[3].
Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
f <- 0;
suma <- 0;
Repetir
suma <- suma + f;
Leer f;
Hasta Que suma >= 100
Escribir "La sumatoria es: ", suma;
FinProceso
Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
Definir Centinela Como Entero;
Escribir "Ingrese el valor del centinela: ";
Leer Centinela;
f <- 0;
suma <- 0;
Repetir
suma <- suma + f;
Leer f;
Hasta Que suma >= Centinela
Escribir "La sumatoria es: ", suma;
FinProceso
Hemos variado el proceso haciendo que una variable Centinela reciba su valor por teclado,
esto hará que el límite sea variable y el bucle más adaptable a otras condiciones.
Otra forma de aplicar esto es haciendo uso de una expresión lógico basada en igual(==),
donde el valor de la variable de control espera el valor señalado como centinela para
ejecutar una y otra vez el bloque de instrucciones subordinadas al bucle[4].
Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
Definir Centinela Como Entero;
Escribir "Ingrese el valor del centinela: ";
Leer Centinela;
f <- 0;
suma <- 0;
Repetir
suma <- suma + f;
Leer f;
Hasta Que f == Centinela
Escribir "La sumatoria es: ", suma;
FinProceso
4. RESUMEN
Las estructuras iterativas diseñadas bajo la estrategia de centinela requieren de un inicio o
inicialización y un límite establecido donde la variable de control debe tener un valor que
permita que el bucle se pueda ejecutar al inicio, la progresión debe permitir que la variable
de control itere progresivamente y de forma fija des el limite inicial hasta el límite final.
Un bucle mientras o repetir…hasta son ideales para ejecutar un proceso o un conjunto de
instrucciones un número determinado y ya conocido de veces, la variable de control que
usemos nos ayudará a control ese número de iteraciones que deben ser ejecutadas[4].
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 22:
Instrucciones Iterativas VI
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Bucle para controlado por bandera
Bucle mientras controlado por bandera
Bucle repetir…hasta controlado por bandera
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
En las anteriores prácticas hemos realizado el control de los bucles basados en una variable
contador, variable o valor centinela y finalmente veremos cómo se hace con una variable
bandera.
A diferencia de las estrategias anteriores podemos hacer que una variable asuma estados,
es decir verdadero o falso, o en su defecto tres o más estados asociados con el proceso
que estamos realizando, esta estrategia es ideal para trabajar con bucle mientras y repetir
… hasta, pero la usaremos también para bucles para[1].
Proceso repite_hasta_que
Definir suma Como Entero;
Definir f como Entero;
Definir dato como Entero;
Definir Bandera Como Logico;
Bandera <- falso;
f <- 0;
suma <- 0;
dato <- 0;
Para f<-0 Hasta 3 Con Paso 1 Hacer
suma <- suma + dato;
Leer dato;
Si dato > 100 Entonces
Proceso repite_hasta_que
Definir suma Como Entero;
Definir dato como Entero;
Definir Bandera Como Logico;
Bandera <- falso;
f <- 0;
suma <- 0;
dato <- 0;
Mientras Bandera == Falso Hacer
suma <- suma + dato;
Leer dato;
Si dato > 100 Entonces
Bandera <- Verdadero;
FinSi
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso
Proceso repite_hasta_que
Definir suma Como Entero;
Definir dato como Entero;
Definir Bandera Como Entero;
Bandera <- 0;
suma <- 0;
dato <- 0;
Mientras Bandera == 0 | Bandera == 1 Hacer
suma <- suma + dato;
Leer dato;
Si dato > 100 Entonces
Bandera <- 2;
SiNo
Bandera <- 1;
FinSi
FinMientras
Escribir "La sumatoria es: ", suma;
FinProceso
En este último ejemplo vemos que la variable bandera ejecuta el bucle mientras sean su
valor 0 ó 1. La variable asume tres estados distintos, no hay una relación lógica de los tres
estados por lo corto del código.
Proceso repite_hasta_que
Definir suma Como Entero;
Definir dato como Entero;
Definir Bandera Como Entero;
Bandera <- 0;
suma <- 0;
dato <- 0;
Repetir
suma <- suma + dato;
Leer dato;
Si dato > 100 Entonces
Bandera <- 2;
SiNo
Bandera <- 1;
FinSi
Hasta Que Bandera == 2
Escribir "La sumatoria es: ", suma;
FinProceso
5. RESUMEN
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final.
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, pero podemos hacer que el contador que progresa
automáticamente decremente en cada vuelta y se asigne el valor final si la variable de
control de hace falsa.
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 23:
Revisión de Pseudocódigo
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Estructuras iterativas
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Los diagramas de flujo son muy útiles para aprender la lógica de la programación, sin
embargo carecen de un pequeña característica que hace que tengamos que aprender más
con otros recursos, los programas son implementados en lenguajes de programación que no
guardan mucha relación con elementos gráficos, sino más bien con expresiones de lenguaje
natural con reglas especiales, por lo que para hacernos una mejor idea en el desarrollo de la
lógica de programación tendremos que hacer uso de recursos de descripción de la
codificación diferentes, a este tipo de recursos se le conoce como pseudocódigo, y es muy
útil porque se utiliza lenguaje natural con características de reglas similares a los lenguajes
de programación convencionales, este tipo de recurso lo utilizaremos con un intérprete de
pseudocódigo que nos permitirá ejecutar los programas hechos en pseudocódigo[1].
2. PSEUDOCÓDIGO
El pseudocódigo (falso lenguaje) es una descripción de alto nivel de un algoritmo que emplea
una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes
de programación, como asignaciones, ciclos y condicionales. Es utilizado para describir
algoritmos en libros y publicaciones científicas, y como producto intermedio durante el
desarrollo de un algoritmo.
A. INSTRUCCIONES SECUENCIALES
Son aquellas que se ejecutan una después de otra. Se tienen tres tipos de instrucciones
secuenciales: la declaración de variables, asignación, instrucción Leer e instrucción
Escribir[1].
La mayoría de algoritmos actúan sobre un conjunto de datos suministrados por el usuario y
se espera que a partir de dichos valores y desarrollando los procesos programados se genere
información de salida o resultados.
a) DECLARACIÓN DE VARIABLES
Teniendo en cuenta la compatibilidad con la mayoría de los lenguajes, se recomienda que
desde el diseño del programa se utilice una forma determinada para la declaración de las
variables. Esta consiste en escribir el tipo de datos y la lista de identificadores que se tendrán
de dicho tipo, separando cada identificador por medio de comas (,). Para mejorar la claridad
de la declaración se puede colocar dos puntos (:) para separar el tipo de datos de la lista de
identificadores[2].
Ejemplo:
Entero: edad
Real: estatura, peso, sueldo
Cadena: nombre, dirección
b) ASIGNACIÓN
Asignar un valor a, una variable equivale a decir que se guarda dicho valor en la posición de
memoria reservado para la variable en mención, debido a esto para realizarlo es necesario
primero haber declarado una variable, con lo cual se reserva un espacio de memoria
suficiente para guardar un dato del tipo especificado[2].
Variable = expresión
Donde la expresión puede estar formada por un valor, por un conjunto de valores y
operadores o por una función.
c) INSTRUCCIÓN LEER
Se utiliza para enviar información desde un dispositivo de entrada de datos hacia la memoria.
En la memoria los datos son ubicados mediante el identificador (nombre de variable) utilizado
como complemento de la instrucción Leer.
d) INSTRUCCIÓN ESCRIBIR
Permite enviar datos desde la memoria hacia un dispositivo de salida como la pantalla o la
impresora. La información que se envía puede ser constante o también el contenido de
variables.
B. INSTRUCCIONES CONDICIONALES
En la redacción del pseudocódigo se utiliza tres tipos de instrucciones condicionales, las
condicionales simples, las condicionales dobles y las condicionales múltiples[4].
Si <expresion_logica> Entonces
acciones_por_verdadero
FinSi
Si x=y Entonces
x<-a+1;
FinSi
Si expresion_logica Entonces
acciones_por_verdadero
Sino
acciones_por_falso
FinSi
Si x=y Entonces
x<-y;
Sino
y<-x;
FinSi
Leer x;
Segun x Hacer
1:
x<-1;
2:
x<-2;
3:
x<-3;
De Otro Modo:
x<-5;
FinSegun
Escribir x;
F. INSTRUCCIONES ITERATIVAS
a) BUCLE MIENTRAS
El bucle(ciclo) mientras(while) se repite mientras la condición P sea cierta, si al llegar por
primera vez al bucle mientras la condición es falsa, el cuerpo del bucle no se ejecuta ni una
sola vez, si es verdadera ingresa al bloque de instrucciones dentro del bucle y las ejecuta
una y otra vez, en cada inicio de ciclo se verifica primero que la expresión condicional P es
verdadera, de serlo se ejecuta el ciclo una vez más, de ser falsa se abandona el bucle
mientras y se continua con la instrucción inmediatamente posterior.
b) BUCLE PARA
El bucle(ciclo) para(for) es una estructura repetitiva que se ejecuta de preferencia un número
determinado de veces, en la instrucción se establece un punto de inicio y un límite que
determina el final de las iteraciones, en la mayoría de los lenguajes de programación la
progresión es fija y controlada a través de variables que forman parte de la estructura del
bucle, se utiliza de preferencia cuando se sabe el número de veces que dará vueltas el
proceso.
c) BUCLE REPETIR
El bucle(ciclo) repetir…hasta(repeat … until) es una estructura repetitiva que se ejecuta un
número indeterminado de veces, se diferencia de las anteriores debido a que primero se
ejecuta por lo menos una vez y luego se vuelve a ejecutar una o más iteraciones en función
del cumplimiento de la condición formulada, la instrucción o bloque de instrucciones
subordinado se repite hasta que la condición o expresión lógica de control sea verdadera,
esto es completamente inverso a la instrucción Mientras.
Repetir
secuencia_de_acciones
Hasta Que expresion_logica
3. RESUMEN
La codificación en pseudocódigo desarrolla en el estudiante la capacidad de abstraer el
código de una forma más simplificada, y ausente de todas las restricciones léxico sintácticas
que aplica un lenguaje de programación de alto nivel.
Las estructuras iterativas para requieren de un inicio o inicialización y un límite establecido
donde la variable de control debe tener un valor que permita que el bucle se pueda ejecutar
al inicio, la progresión debe permitir que la variable de control itere progresivamente y de
forma fija des el limite inicial hasta el límite final.
Un bucle para es ideal para ejecutar un proceso o un conjunto de instrucciones un número
determinado y ya conocido de veces, la variable de control que usemos nos ayudará a control
ese número de iteraciones que deben ser ejecutadas.
IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla un
menú de opciones, haciendo uso de las condicionales múltiples.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 24:
Introducción a Python
I
OBJETIVOS
Introducción.
Usando el intérprete de Python
El intérprete y su entorno
Usar Python como una calculadora
Primeros pasos hacia la programación
Resumen.
III
MARCO TEORICO
1. INTRODUCCIÓN
El Lenguaje Python es un recurso poderoso para la programación, es simple, fáciol de usar
y tiene a su vez capacidades de abstracción y soporta el paradigma orientado a objetos,
posee gran cantidad de compiladores para diversas plataformas, asu vez el ser simple y
elegante en su estructura y permitir múltiples estructuras de datos lo hace idal para el
scripting por ser interpretado[1]. Python es un lenguaje interpretado, su intérprete posee una
vasta biblioteca de carácter libre a disposición del programador para resolver m últiples
problemas de programación. La programación en Python va en aumento sobre todo por la
simplicidad de abstracción que posee el lenguaje[1].
2. EL INTÉRPRETE DE PYTHON
A. EJECUTANDO EL INTÉRPRETE
En computadoras con la familia de SO Windows, la instalación de Python suele en
encontrarse en C:\Python27, durante la instalación se debe especificar el directorio de
destino y puede que se haya cambiado. Podemos añadir el directorio al path o camino, se
debe ingresar el siguiente comando en el prompt de DOS:
set path=%path%;C:\python34
Para ejecutar el Shell de Python hacer clic en el botón Inicio y luego en Buscar Programas
y archivos escribir Python y al aparecer el Shell darle enter[2]. Para salir del intérprete se
ingresa el carácter de fin de archivo (Control-D en Unix, Control-Z en Windows) en el prompt
B. EL MODO INTERACTIVO
En este modo se muestra el prompt primario, usualmente tres signos mayor-que (>>>). Antes
de mostrar el prompt primario, el intérprete muestra un mensaje de bienvenida reportando su
número de versión y una nota de copyright:
C:\Users\Alumno>python
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information. >>>
3. EL INTÉRPRETE Y SU ENTORNO
C. NÚMEROS
El intérprete actúa como una simple calculadora; se ingresan expresiones y este escribirá los
valores. La sintaxis es sencilla: los operadores +, -, * y / funcionan como para cualquier
lenguaje; los paréntesis (()) se usan para agrupar[3]. Por ejemplo:
>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5 # la división retorna un punto flotante
1.6
La división (/) siempre retorna un punto flotante. En Python, se calcula potencias con **:
>>> 5 ** 2 # 5 al cuadrado
25
>>> 2 ** 7 # 2 a la potencia de 7
128
Con el signo igual (=) se asigna un valor a la variable. Ningún resultado es visto antes del
siguiente prompt:
>>> ancho = 20
>>> largo = 5 * 9
>>> ancho * largo
900
D. CADENAS DE CARACTERES
El lenguaje Python puede tratar cadenas de caracteres o texto, se expresan de distintas
formas. Pueden estar limitadas en comillas simples ('...') o dobles ("...") con el mismo
resultado. \ se usa como secuencia de escape de las comillas[4]:
Si no se quiere que los caracteres antepuestos por \ sean interpretados como caracteres
especiales, se puede usar cadenas crudas agregando una r antes de la primera comilla:
Las cadenas de caracteres pueden tener múltiples líneas de texto. Por ejemplo:
La función print() se usa para escribir el valor de el o los argumentos que se le pasan.
>>> i = 256*256
>>> print('El valor de i es', i)
El valor de i es 65536
El parámetro nombrado end puede usarse para evitar el salto de línea al final de la salida, o
terminar la salida con una cadena diferente:
5. RESUMEN
El lenguaje de Programación Python es simple, fácil de aprender e interpretado, permite
abstracciones de alto nivel con una gestión de tipos de datos primitivos y agregados. La
simplicidad de su estructura y estilo de codificación permite la construcción de software muy
complejo y útil a la vez.
IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES
1. Modifique el diagrama del punto 3 para que se pueda definir por teclado la cantidad de
números a ingresar usando la instrucción while.
2. Modifique el diagrama del punto 4 para que se muestren los números impares entre un límite
inferior y un límite superior definidos por teclado usando la instrucción while.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 25:
I
OBJETIVOS
Introducción.
Usando el intérprete de Python
El intérprete y su entorno
Primeros pasos hacia la programación
Resumen.
III
MARCO TEORICO
1. INTRODUCCIÓN
El Lenguaje Python es un recurso poderoso para la programación, es simple, fácil de usar y
tiene a su vez capacidades de abstracción y soporta el paradigma orientado a objetos, posee
gran cantidad de compiladores para diversas plataformas, a su vez el ser simple y elegante
en su estructura y permitir múltiples estructuras de datos lo hace ideal para el scripting por
ser interpretado[1].
Python es un lenguaje interpretado, su intérprete posee una vasta biblioteca de carácter libre
a disposición del programador para resolver múltiples problemas de programación.
Las instrucciones condicionales o de control siempre guardan una estructura simple, doble y
múltiple, en casi todos los lenguajes de programación los condicionales se basan en if else,
los condicionales múltiples se diferencian entre algunos lenguajes, la mayoría usa la
instrucción switch pero Python usa otro tipo de estrategia para esto[2].
if expression:
statement(s)
else:
statement(s)
Ejemplo
var1 = 100
if var1:
print "1 - Got a true expression value"
print var1
else:
print "1 - Got a false expression value"
print var1
var2 = 0
if var2:
print "2 - Got a true expression value"
print var2
else:
print "2 - Got a false expression value"
print var2
3. LA SENTENCIA ELIF
La declaración elif le permite comprobar múltiples expresiones de TRUE y ejecutar un bloque
de código tan pronto como una de las condiciones evalúa como TRUE.
Al igual que el otro, la declaración elif es opcional. Sin embargo, a diferencia de los demás,
para los cuales no puede haber a lo sumo una declaración, no puede haber un número
arbitrario de declaraciones elif tras un if[3].
Sintaxis
if expression1:
statement(s)
elif expression2:
statement(s)
elif expression3:
statement(s)
else:
statement(s)
El Core Python no proporciona sentencias switch o de caso como en otros lenguajes, pero
podemos utilizar if..elif ... declaraciones para simular caso del interruptor de la siguiente
manera[4]. Ejemplo
var = 100
if var == 200:
print "1 - Got a true expression value"
print var
elif var == 150:
print "2 - Got a true expression value"
print var
elif var == 100:
print "3 - Got a true expression value"
print var
else:
print "4 - Got a false expression value"
print var
IV
V
EJERCICIOS
1. Modifique el diagrama del punto 3 para que se pueda definir por teclado la cantidad de
números a ingresar usando la instrucción while.
2. Modifique el diagrama del punto 4 para que se muestren los números impares entre un límite
inferior y un límite superior definidos por teclado usando la instrucción while.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 26:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Bucle for
Contadores y acumuladores
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
El bucle for(PARA) o ciclo for es una estructura de programación iterativa en la que podemos
definir el número de veces en se debe repetir un bloque de código subordinado a este.
La principal diferencia de un bucle for con respecto a los bucles MIENTRAS Y REPETIR, es
que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo cual
muchas veces puede redundar en una optimización del código por parte de los compiladores.
Los condicionales constituyen junto con los bucles los pilares de la programación
estructurada, y su uso es una evolución de una sentencia de lenguaje ensamblador que
ejecutaba la siguiente línea o no en función del valor de una condición[1].
El bucle for se ha convertido en el bucle más ampliamente utilizado en la programación, ya
que con la evolución de los lenguajes la mayoría de las condiciones de fin.
2. BUCLE FOR
Un blucle for es una instrucción iterativa que se ejecuta el número n de veces que especifica
la instrucción cada vuelta es una iteración y las instrucciones subordinadas son llamadas
cuerpo del bucle[2].
La sintaxis de un bucle for en Python:
for variable in elemento recorrible (lista, cadena, range, etc.): cuerpo
del bucle
La variable de control se ejecuta con el bucle y el rango se determina en el propio bucle. Por
ejemplo:
print("Final")
Las listas de biucles for puede contener cualquier dato la ejecución dura lo que duren los
elementos[3]. Por ejemplo:
3. CONTADORES Y ACUMULADORES
Son variables que llevan la cuenta de cuantas veces se ejecutó un proceso, se incrementan
de uno en uno o variables que hacen sumatorias[4].
A. CONTADOR
Cuenta en uno es decir le suma uno por cada vuelta:
4. RESUMEN
Llegados a este punto debemos recordar que, como veremos en los ejemplos, las
excepciones generadas pueden ser de diverso tipo (según el tipo de error), y que también
pueden existir diversos manejadores. De hecho se debe incluir el manejador correspondiente
a cada excepción que se pueda generar.
IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES
V
EJERCICIOS
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 27:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Bucle while
Bucles infinitos
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
Las instrucciones iterativas tienen diferentes propósitos, en un caso se requiérela ejecución
de un número determinado de veces y en otros un número variable de veces, cuando se
trata de un número variable de veces existen muchas estrategias como lo vimos en los
pseudocódigos, pero aparte debemos recordar que la estructura tiene tres elementos como
son el control, la progresión y la inicialización.
El bucle while en python es mucho más simple que en otros lenguajes, recordemos que se
hace uso de la indentación para indicar la subordinación del bloque y aparte los dos puntos
seguidos a la expresión de control para indicar el inicio de del bloque subordinado[1].
Dentro del bucle se debe poseer un mecanismo que haga que en el momento preciso o
indicado la condición de ejecución para el bucle sea falsa, para que de esta forma el bucle
termine, si esto no se diseña de esta forma acabaremos teniendo un bucle sin fin. Es posible
también terminar la ejecución de un bucle haciendo uso de la instrucción break.
2. BUCLE WHILE
Un bucle while permite repetir la ejecución de un grupo de instrucciones mientras se cumpla
una condición (es decir, mientras la condición tenga el valor True) [2] .
La sintaxis del bucle while es la siguiente:
Cuando llega a un bucle while, Python evalúa la condición y, si es cierta, ejecuta el cuerpo
del bucle. Una vez ejecutado el cuerpo del bucle, se repite el proceso (se evalúa de nuevo
la condición y, si es cierta, se ejecuta de nuevo el cuerpo del bucle) una y otra vez mientras
la condición sea cierta. Únicamente cuando la condición sea falsa, el cuerpo del bucle no
El ejemplo anterior se podría haber programado con un bucle for. La ventaja de un bucle
while es que la variable de control se puede modificar con mayor flexibilidad, como en el
ejemplo siguiente:
Otra ventaja del bucle while es que el número de iteraciones no está definida antes de
empezar el bucle, por ejemplo porque los datos los proporciona el usuario. Por ejemplo, el
siguiente ejemplo pide un número positivo al usuario una y otra vez hasta que el usuario lo
haga correctamente[4]:
3. BUCLES INFINITOS
Si la condición del bucle se cumple siempre, el bucle no terminará nunca de ejecutarse y
tendremos lo que se denomina un bucle infinito[3].
Los bucles infinitos deben evitarse pues significan perder el control del programa. Para
interrumpir un bucle infinito, hay que pulsar la combinación de teclas Ctrl+C. Al interrumpir
un programa se mostrará un mensaje de error similar a éste:
Por desgracia, es fácil programar involuntariamente un bucle infinito, por lo que es inevitable
hacerlo de vez en cuando, sobre todo cuando se está aprendiendo a programar.
Estos algunos ejemplos de bucles infinitos:
El programador ha olvidado modificar la variable de control dentro del bucle y el
programa imprimirá números 1 indefinidamente:
i = 1 while i > 0:
print(i, "", end="") i += 1
4. RESUMEN
Un bucle while se diseña en lenguaje python en función del cumplimiento de una expresión
lógica, el valor de esa expresión lógica puede ser true para indicar que dicho bucle se
ejecute siempre y dentro del bucle diseñar un mecanismo de finalización, el mecanismo de
finalización puede ser un contador que al llegar a un límite convierte en falas la expresión
lógica, o el ingreso desde teclado de un valor que hace que la expresión lógica sea falsa, o
IV
(La práctica tiene una duración de 2 horas) ACTIVIDADES
V
EJERCICIOS
1. Diseñar y codificar un programa que cree archivos de acceso secuencial en sus diferentes
formas.
2. Diseñe y codifique un programa que nos permita leer y escribir registros de forma secuencial
sobre un archivo de acceso secuencial en sus diferentes formas.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS
SESIÓN N° 28:
I
OBJETIVOS
II
TEMAS A TRATAR
Introducción.
Instrucción Pass
Instrucción With
Resumen
III
MARCO TEORICO
1. INTRODUCCIÓN
El lenguaje Python trae instrucciones especiales no disponibles en otros lenguajes de
programación más extendidos como C++ o Java, dos de estas instrucciones son pass y
with, dichas instrucciones son introducidas como un aporte y un valor agregado al lenguaje,
es decir para mejorar la facilidad de la tarea de escritura del código.
La instrucción pass se utiliza generalmente para indicar que continúe la ejecución de
instrucciones al siguiente bloque o instrucción, esto se hace debido a que muchas veces no
tenemos bien definido o diseñado el conjunto de operaciones necesarias para completar
una aplicación o programa y la instrucción pass ayuda en las tareas de diseño y
depuración[1].
La instrucción with por el contrario es una instrucción que depende del protocolo de
manejador de contexto, y es aplicable a objetos que lo soportan. Muchas veces al diseñar
rutinas se hace evidente el nexo entre instrucciones, es decir que debemos ejecutar
instrucciones de forma obligatoria porque se ejecutó algo inicialmente, la instrucción with
ejecuta esa instrucción de forma implícita sin necesidad de ser llamada[2].
2. INSTRUCCIÓN PASS
¿Qué es la instrucción o sentencia pass?
Es una instrucción nula que no ejecuta ninguna acción en particular.
A diferencia de un comentario el intérprete no ignora su ejecución, la cual resulta en no
ejecutar nada[3].
Al diseñar el código indicamos que en ese punto se escribirá un bloque o instrucción pero
aún no se completa y pass lo reemplaza por el momento.
def function(args):
pass
While True :
... pass # Ocupado - esperar a interrupción de teclado ( Ctrl + C )
class MyEmptyClass:
... pass
def initlog(*args):
... pass # Remember to implement this!
.
3. INSTRUCCIÓN WITH
IV
(La práctica tiene una duración de 2 horas)
ACTIVIDADES
V
EJERCICIOS
1. Elaborar un algoritmo en pseudocódigo para que se muestre por pantalla al menor, al mayo
o en su defecto si son iguales, al hacer el ingreso de dos números enteros.
2. Elaborar un algoritmo expresado en pseudocódigo que nos permita visualizar en pantalla
un menú de opciones, haciendo uso de las condicionales múltiples.
VI
CUESTIONARIO
VII
BIBLIOGRAFIA Y REFERENCIAS