Presentación de la unidad
En la unidad anterior se
describieron los pasos que se requieren para construir un software, los cuales,
sin lugar a dudas, constituyen la fase más importante en el diseño de la
solución de problemas, ya que es aquí donde se debe crear el modelo que
contribuya a la solución del problema en cuestión.
Para llegar a esta solución se
requiere no sólo de inteligencia, sino también de creatividad, ya que el
programador sólo cuenta con la especificación del problema y su experiencia en
resolver problemas de una forma estructurada.
En este apartado te presentaremos
formalmente el concepto de algoritmo, del que estudiaremos sus características
y dos maneras de representarlo: una gráfica, conocida como diagramas de flujo;
y otra, similar a un lenguaje humano (en este caso español), la cual se
denomina pseudocódigo. También describiremos los tres tipos de estructuras de
control: secuenciales, selectivas y repetitivas, que son las instrucciones con
que se cuenta en la programación estructurada para diseñar soluciones.
Para logar nuestro objetivo
utilizaremos una situación ficticia a la que llamamos “el mundo de la ardilla”,
en donde se deben solucionar problemas mediante un conjunto de instrucciones
específicas que puede ejecutar una ardilla sobre un tablero o mundo
determinado.
Propósito de la unidad
- Identificarás los datos de entrada y la salida de un algoritmo.
- Diseñarás un algoritmo que solucione un problema.
- Representarás el algoritmo en diagrama de flujo y pseudocódigo.
- Verificarás que el algoritmo calcule el resultado correcto.
Competencia(s)
específica(s)
Diseñar algoritmos para resolver
problemas mediante su representación en un diagrama de flujo y la elaboración
del pseudocódigo.
2.1. Concepto de algoritmo y características
Antes de explicar cómo se
realizan los algoritmos en la programación, conviene tener claridad en el
significado de la palabra algoritmo.
Esta palabra, proviene del nombre
de un matemático persa, nacido alrededor del 780 d.C. en KhoWârizm, conocido
como Mohammad
Al-KhoWârizmi. Se le considera el padre de la algoritmia porque definió las reglas paso a
paso para sumar, restar, multiplicar y dividir números decimales.
La traducción al latín de Al-Khwārizmī es algoritmi, que da origen a la palabra
algoritmo (Joyanes & Zohanero, 2005).
Formalmente, un algoritmo se
define como una
secuencia finita de instrucciones precisas y eficaces para resolver un problema,
que trabaja a partir de cero o más datos (entrada) y devuelve un resultado (salida).
Para ilustrar este concepto te
presentamos el siguiente escenario ficticio, al que hemos llamado:
"El mundo de la
Ardilla"
Supongamos que tenemos una
ardilla, la cual ha sido entrenada para realizar determinadas funciones o
movimientos sobre un tablero o “mundo”. Hasta el momento, las
instrucciones que sabe llevar a cabo son las que se muestran en la siguiente
tabla:
Lista de Instrucciones que puede
ejecutar la ardilla
INSTRUCCIÓN
|
DESCRIPCIÓN DE LOS MOVIMIENTOS
DE LA ARDILLA
|
avanza()
|
Se
mueve una ubicación en la dirección actual
|
giraIzquierda()
|
Voltea
a la izquierda
|
dejaBellota()
|
Coloca
una bellota en la ubicación actual
|
hayBellota()
|
Responde
si hay o no bellotas en la posición actual
|
hayPared()
|
Responde
si hay o no pared en la ubicación siguiente
|
recogeBellota()
|
La
ardilla coloca en su boca una bellota que está en la ubicación actual
|
bellotasRecogidas()
|
Dice
el número de bellotas que tiene en la boca
|
Los paréntesis al final de cada
instrucción sirven para identificar que se trata de una orden que puede
ejecutar la ardilla.
Si observas la lista de
instrucciones podrás darte cuenta que, la ardilla no es capaz de voltear a la derecha y mucho
menos de responder a órdenes más complejas como “mueve una bellota que se
encuentra en la primera casilla del tablero al final del mismo”. Sin
embargo, podría realizar ambas tareas si se le dan las instrucciones precisas
en términos de las acciones que sabe hacer. Por ejemplo, para que la ardilla gire a la
derecha tendríamos que ordenarle tres veces que girara a la izquierda,
es decir, la secuencia de instrucciones que debe ejecutar es: giraIzquierda() giraIzquierda() giraIzquierda().
Estos pasos constituyen un algoritmo, el cual
soluciona el problema de hacer que la ardilla gire a la derecha.
Una de las características principales de los
algoritmos es que cada paso debe estar definido de forma clara y precisa,
sin ambigüedades, de tal manera que pueda ejecutarse de forma inequívoca, por ejemplo,
en el mundo de la ardilla, la instrucción gira() sería una instrucción ambigua, ya que
la ardilla no
sabría si debe girar a la derecha o a la izquierda.
Otra característica es que siempre terminan,
por lo que no
puede ser una lista infinita de pasos. Y tampoco puede contener pasos que sean
irrealizables o cuya ejecución sea infinita, pues en este caso no sería posible calcular el resultado deseado, si una instrucción está bien definida y es eficaz se
puede asegurar que su ejecución termina con éxito, sin embargo, esto no
garantiza, de ninguna manera, que el algoritmo también termine.
Por lo anterior, al diseñar un
algoritmo se
debe garantizar que dada cualquier entrada siempre termine y calcule la
respuesta correcta. Es por eso que todo algoritmo debe contar con
las siguientes características:
- Contar con entrada y salida.
- Estar definido.
- Ser eficaz.
- Tener una terminación.
Una vez que se ha diseñado un
algoritmo, se recomienda realizar una prueba de
escritorio para verificar si funciona correctamente, esta prueba
consiste en ejecutar el algoritmo utilizando papel
y lápiz, es decir, se proponen datos de entrada específicos (como los
que se ingresarían al programa ya funcionando) y se realiza cada una de las
instrucciones indicadas en el algoritmo de acuerdo con el orden establecido,
registrando los cambios que se producen después de la ejecución de cada
instrucción. De esta manera, se valida que el resultado obtenido en la prueba
de escritorio corresponda al resultado deseado (el correcto).
2.2. Representación de
algoritmos
Existen diversas formas de
representar un algoritmo, por ejemplo, en la unidad anterior expusimos diversas
formas de representar la solución del problema de calcular el área de un
rectángulo: primero, con el programa 1 en el que se expresó la solución en
pseudocódigo, después con el algoritmo donde se representa en lenguaje natural
(español) y posteriormente con la utilización del lenguaje de programación C;
además, se puede expresar mediante la fórmula matemática:
area = base x altura
Todas estas representaciones,
excepto el lenguaje natural, se consideran formales y cabe mencionar que,
aunque existen más, las más comunes son el pseudocódigo y los diagramas de flujo.
La primera, generalmente se utiliza por su parecido con el lenguaje natural
(español, inglés, francés o cualquier otro) y porque su codificación en un
lenguaje de programación estructurado y modular, como C, es directa.
En cambio, los diagramas de flujo son totalmente gráficos, lo que hace
más fácil seguir el orden en que se ejecutan las instrucciones.
Es importante mencionar que se
pueden utilizar cualquiera de las dos
representaciones para diseñar un algoritmo, pues en cualquiera de las
dos se puede expresar cualquier algoritmo estructurado, de tal manera que la
más conveniente depende de cada programador.
En las siguientes secciones se presenta cada uno de ellos para que
puedas determinar cuál prefieres.
2.2.1. Pseudocódigo
El pseudocódigo es un lenguaje de
especificación formal de algoritmos. La solución de un problema se representa
de manera narrativa utilizando palabras clave, generalmente verbos escritos en un
lenguaje natural, que en nuestro caso será español. Para ilustrarlo
construyamos un algoritmo que resuelva un problema. Para ello, nos apoyaremos
en El mundo de la Ardilla.
Problema 2.1: En la figura 2.1
(a) se muestra el estado inicial del mundo, el cual contiene en la primera
casilla (de izquierda a derecha) una bellota, y a la ardilla que está de frente
a la bellota. El problema consiste en diseñar un algoritmo que la ardilla pueda
ejecutar para llegar al estado meta
representado en la figura 2.1 (b), que implica que la ardilla lleve la
bellota a la última casilla. Para resolverlo se tiene la siguiente información:
1.
El mundo es conocido, es decir, se sabe de
antemano que el tablero está cercado por paredes y sólo tiene seis casillas
colocadas en línea.
2.
Al inicio la ardilla está en la primera casilla
volteando hacia arriba y no tiene ninguna bellota en la boca.
3.
En la primera casilla hay una bellota.
Análisis: Haciendo un rápido análisis del problema, nos podemos
dar cuenta que la ardilla debe recoger la
bellota, avanzar cinco casillas y soltar la bellota, esto traducido en
un algoritmo queda como se muestra en la imagen del lado derecho:
En este caso las instrucciones
son parecidas al lenguaje natural.
|
|
2.2.2. Diagrama de
flujo
Los diagramas de flujo son una
representación gráfica de un algoritmo que utiliza símbolos para representar
las instrucciones y flechas para unirlas e indicar el orden en que deben
ejecutarse llamadas líneas de flujo. Estos símbolos fueron normalizados por el
Instituto Norteamericano de Normalización ANSI (American National Standars
Institute, por sus siglas en inglés). Los símbolos más utilizados se muestran
en el siguiente documento, para descargarlo, da clic en el ícono siguiente: DSC_U2_FPR_2.pdf
En seguida analizaremos otro
problema para observar su solución mediante diagrama de flujo.
Problema 2.2: Ahora la tarea de la ardilla es cambiar las bellotas
que están en la primera fila, figura 2.2 (a), a la segunda y viceversa,
dejándolas en la misma columna, figura 2.2 (b).
Las condiciones de inicio son:
1.
El mundo es conocido y sabemos exactamente dónde
hay bellotas.
2.
La ardilla no tiene ninguna bellota en la boca
al inicio.
3.
El mundo está encerrado por paredes y si la
ardilla choca contra una se considerará un error garrafal.
4.
En este punto los científicos ya entrenaron a la
ardilla para ejecutar la orden giraDerecha(), por lo tanto, ya puede ser usada
en el algoritmo.
Análisis: De acuerdo con la figura 2.2, inciso (a), para que la
ardilla cumpla con su tarea debe realizar los siguientes pasos: recoger la bellota, girar a la derecha,
avanzar, dejar la bellota, girar a la izquierda, avanzar, recoger la bellota,
girar a la izquierda, avanzar, dejar la bellota, voltear a la derecha y avanzar.
Hasta este punto las coordenadas de la ardilla son: primera fila y tercera
casilla (volteando a la derecha, como al inicio).
Si la ardilla repite otra vez
este bloque de instrucciones, logrará cambiar las siguientes dos bellotas; al
repetirlo nuevamente cambiaría las últimas dos, salvo que cuando la ardilla
avance después de haber dejado la bellota chocará contra la pared, por lo
tanto, antes de que avance –última instrucción del bloque – tenemos que
verificar que no haya pared. La condición para que la ardilla repita el bloque
de instrucciones es que no haya pared.
De lo anterior tenemos el
siguiente algoritmo representado en diagrama de flujo.
Algoritmo 2.2.
Solución al problema 2.2
|
|
Actividad 1.
Representación de algoritmos
La intención de
esta actividad es que reflexionemos sobre el uso de los pseudocódigos y
diagramas de flujo, para lograrlo, te pedimos que realices lo siguiente:
Reflexiona sobre el uso de pseudocódigos y diagramas de
flujo. Las siguientes preguntas te pueden servir de guía:
¿Qué entiendo por pseudocódigo y qué por diagrama de flujo?
Pseudocódigo: se describen los algoritmos utilizando una mezcla de
lenguaje común, con instrucciones de programación, palabras claves, etc. El
objetivo es que el programador se centre en la solución lógica del algoritmo y
no en la implementación en un lenguaje de programación
Diagrama de flujo: es una representación gráfica de un algoritmo o
proceso, el cual muestra gráficamente los pasos o procesos a seguir para
alcanzar la solución de un problema
¿Cuál es la diferencia entre ellos?
Pseudocódigo: solo
utiliza palabras comunes o palabras clave para alcanzar la solución de un
problema
Diagrama de flujo: se
utilizan gráficos que muestran los pasos a seguir para alcanzar la solución de
un problema
¿Para qué casos me conviene usar uno u otro?
El pseudocódigo cuando
se desea detallar el algoritmo ocupando menos papel. El diagrama de flujo
cuando se desea tener una visión general del algoritmo.
En lo personal ¿Con cuál se me facilita más representar los
algoritmos?
Diagrama de flujo
¿Me cuesta trabajo alguno de los temas estudiados?
No.
Evidencia de
Aprendizaje. Planteamiento del problema
Bienvenido(a) a
la primera Evidencia de Aprendizaje, a partir de ahora trabajarás en la elaboración de un programa
para solucionar un problema a partir del uso de los elementos del
lenguaje de programación C.El programa lo
elaborarás conforme avances en el estudio de las unidades del curso, en las que
deberás incorporar los elementos de programación que vayas aprendiendo para
dotarle de nuevas funciones, hasta lograr que resuelva totalmente el problema
planteado.
Para esta Unidad,
plantea un problema de la vida real que quieras resolver mediante un programa
de computadora, pero ojo, procura que éste tenga un nivel de complejidad
intermedio pues, si es muy fácil de resolver no podrás implementar todos los
elementos de C que aprenderás, o si por el contrario, es demasiado complejo, no
alcanzará con lo aprendido.
2.3. Estructuras de
control
Los primeros lenguajes de
programación de alto nivel permitían realizar "saltos" a diferentes líneas
del código mediante la instrucción GOTO, esto tiene el gran inconveniente que cuando se hacía una modificación en el programa,
era necesario modificar todas las instrucciones
GOTO para asegurar que los saltos se hicieran a las líneas de código correctas.
Además de lo tedioso que podía ser estar
corrigiendo el programa, las instrucciones GOTO lo hacían difícil de
leer.
En 1966
Corrado Böhm y Giuseppe Jacopini demostraron que “cualquier algoritmo
puede ser diseñado e implementado utilizando únicamente tres tipos de estructuras de control: secuenciales, condicionales y repetitivas”;
esto es, sin
utilizar GOTO (Böhm & Jacopini, 1966), basándose en este
resultado, a principios de los años 70´s Edsger Dijkstra se dio
cuenta de que la forma en la que los lenguajes de programación de alto nivel
podían modificarse sin problemas era eliminando las instrucciones GOTO (o
similares), así que propuso un nuevo estilo de programación al que llamó
programación estructurada, ésta incluye estructuras secuenciales, selectivas y
repetitivas, conocidas como estructuras de control. A continuación las
estudiaremos.
2.3.1. Estructuras
secuenciales
Las estructuras secuenciales son
un bloque de instrucciones que se ejecutan una tras otra, en el mismo orden en
el que están escritas.
Un ejemplo de este tipo de
instrucciones son todas las que se utilizaron en el algoritmo 2.1. Pero veamos
otro ejemplo para que quede más claro.
Problema 2.3: Ahora la ardilla se enfrenta a un nuevo mundo
(ver figura 2.3) en el que su tarea consiste en recoger las dos bellotas
colocadas en las posiciones indicadas por la figura 2.3 (a) y llevarlas a la última casilla de la primera
fila, como se muestra en la figura 2.3 (b). Considerando que tenemos un mapa
del nuevo mundo y sabemos en qué casillas están colocadas las bellotas
diseñemos un algoritmo para que la ardilla realice su cometido.
Análisis: Nuevamente el
problema planteado es muy sencillo de analizar, la ardilla debe hacer los
movimientos que le permitan recoger la primer bellota, después ir por la
segunda y llegar a la última casilla de la primera fila. Otra posible opción
es que recoja la primer bellota, la lleve a la primer casilla, regrese por la
segunda bellota y también la lleve a la primer casilla. Esta última opción requiere
más esfuerzo por parte de la ardilla, dado que la ardilla no tiene limitado
el número de bellotas que puede llevar en la boca, entonces la primera opción
es más eficiente.
|
El algoritmo quedaría como
sigue:
Inicio
Avanza()
Giraizquierda()
Avanza()
Avanza()
Recogebellota()
Giraizquierda()
Avanza()
Giraderacha()
Avanza()
Avanza()
Recogebellota()
Avanza()
Dejabellota()
Dejabellota()
Fin
|
Las
instrucciones secuenciales, más usuales, que una computadora es capaz de
realizar son: Imprimir,
Leer y Asignar.
La representación en diagrama de
flujo de estas instrucciones se ilustra en la siguiente pantalla, en cuanto que
la representación en diagrama de flujo se utilizan los mismos verbos y símbolos
pero encerrados entre un símbolo de proceso.
2.3.2. Estructuras
selectivas
En esencia, las estructuras selectivas se utilizan
cuando la solución de un problema conlleva tomar una decisión, ya que se
ejecuta un conjunto determinado de instrucciones dependiendo de si se cumple
o no una condición en un momento determinado. Por ejemplo, la ardilla
solamente puede avanzar si no hay pared, en este caso la condición es no hayPared()
y la acción que se realiza es avanza().
|
|
Revisemos el siguiente ejemplo:
Problema 2.4: Nuevamente la
ardilla está en el mundo lineal que se ilustra en la figura 2.4.a, tiene que
recoger una bellota y llevarla a la última casilla como se muestra en la figura
2.4.b, sólo que ahora no sabe con
precisión en que casilla está la bellota y la única información con la que
cuenta es la siguiente:
1.
En el tablero hay una sola bellota. Las casillas
donde puede estar son la tercera o la
quinta, lo cual se representa con un círculo en la figura 2.4.a.
2.
Al inicio la ardilla no tiene ninguna bellota en
la boca.
3.
Es un error ordenar a la ardilla que recoja una
bellota en una casilla cuando ésta no contiene nada pues la ardilla no sabrá
que hacer.
4.
La ardilla ya ha sido entrenada para decir si
hay
Análisis: En este caso es
necesario asegurarnos que en la
casilla hay una bellota, antes de ordenarle a la ardilla que la recoja,
para ello vamos a utilizar una estructura selectiva, como la ardilla ya fue
entrenada para decir si hay una bellota o no, entonces esto lo utilizaremos como condición. Ya que tenemos dos posibles lugares dónde la ardilla
puede encontrar la bellota, ordenaremos a la ardilla que avance hasta la tercera casilla, si hay una bellota
entonces la recoge y después la
lleva a la última casilla, si no, la ardilla avanza hasta la quinta casilla
y ahí recoge la bellota, esto sin
preguntar si ahí se encuentra, pues una de las aseveraciones en el
planteamiento del problema es que en el tablero hay una bellota, así que si
ésta no estaba en la tercera casilla
es seguro que está en la quinta.
|
|
Observa que tanto en el primer
caso (Si) como en el segundo (Sino) cuando la ardilla está en la quinta
casilla y ya recogió la bellota, las siguientes órdenes son que avance y deje
la bellota (en la imagen del lado derecho ambas están remarcadas), de tal
manera que podemos modificar el algoritmo de la siguiente forma:
|
|
También podemos utilizar la
estructura Si dos veces, una para preguntar si la bellota está en la tercera
casilla y otra para preguntar en la quinta, como se muestra en el siguiente
algoritmo.
|
|
A diferencia de los dos
algoritmos anteriores, en éste último la ardilla va a verificar en las dos
casillas si hay bellota, aunque la hubiese encontrado en la primera opción,
esto implica un poco más esfuerzo para la ardilla.
Por otro lado, observa que en los
algoritmos 2.4 y 2.5 se definieron instrucciones para el caso que se cumple la
condición (Si) y para el caso que no (Sino); en cambio, en este último
algoritmo sólo se ha definido un conjunto de instrucciones que se ejecuta si la
condición se cumple, de no ser así no hay instrucciones específicas y la
ardilla continuará realizando las siguientes instrucciones del algoritmo. Es
importante destacar que ambas estructuras son equivalentes, es decir, que los
problemas que se solucionan con una también es posible hacerlo con la otra.
Existen tres tipos de estructuras selectivas
que se clasifican de acuerdo al número de
alternativas con que se cuenta, éstas son:
- Simples(Si): involucra un único bloque de instrucciones que se ejecuta sólo si una condición se cumple.
- Dobles(Si-Sino):abarca dos bloques de instrucciones, uno se ejecuta cuando la condición es verdadera y el otro cuando es falsa.
- Múltiples(Seleccionar): tiene más de dos bloques de instrucciones que se pueden ejecutar conforme al valor que tenga una variable, cada bloque equivale a un valor diferente.
Actividad 2. Diseño de
un algoritmo con estructuras selectivas.
1. Abre un
documento de Word y en él resuelve el problema
que te proporcionará tu facilitador(a)
utilizando estructuras selectivas.
2. Al terminar,
guarda el documento con el nombre FPR_U2_A2_XXYZ.doc y envíalo a tu facilitador(a) por medio de la sección
Tareas, él (ella) te hará las observaciones pertinentes para que puedas mejorar
tu trabajo en caso de que así lo
amerite.
2.3.3. Estructuras
repetitivas
Las
estructuras repetitivas, también llamadas ciclos, permiten ejecutar varias
veces un bloque de instrucciones en función de una condición. Para ilustrar
esto, volvamos al problema 2.1 en donde la ardilla debe llevar una bellota
desde la primera casilla hasta la última en un mundo. Observa que una vez que
la ardilla recoge la bellota y está
viendo de frente, debe avanzar una y otra vez mientras no se tope con la pared,
esto se puede modelar con un ciclo de la siguiente manera.
Generalmente,
un ciclo se utiliza cuando descubrimos un patrón, tal como se hizo en el
análisis del problema 2.2. Si observas el algoritmo 2.2 verás que al final
hay una flecha que regresa a la primera instrucción, representando con ello
un ciclo. La presentación en pseudocódigo de este algoritmo sería la que se
muestra aquí.
|
|
La clave para utilizar un ciclo es identificar el conjunto de
instrucciones que se deben repetir y la condición para que se ejecuten. Al
igual que en las estructuras selectivas, existen diferentes estructuras
repetitivas que se diferencian, principalmente, por el orden en el que se
evalúa la condición. Revisa el siguiente documento para conocerlas.
Actividad 3. Diseño de
un algoritmo con estructuras repetitivas.
1. Abre un documento de Word y en
él resuelve el problema que te proporcionará tu facilitador(a) utilizando
estructuras repetitivas.
2. Al terminar, guarda el documento
con el nombre FPR_U2_A3_XXYZ.doc y envíalo a tu facilitador(a) por medio de la sección
Tareas, él (ella) te hará las observaciones pertinentes para que puedas mejorar
tu trabajo en caso de que así lo amerite.
Evidencia de
Aprendizaje. Planteamiento del problema
Bienvenido(a) a
la primera Evidencia de Aprendizaje, a partir de ahora trabajarás en la
elaboración de un programa para solucionar un problema a partir del uso de los
elementos del lenguaje de programación C.
El programa lo
elaborarás conforme avances en el estudio de las unidades del curso, en las que
deberás incorporar los elementos de programación que vayas aprendiendo para
dotarle de nuevas funciones, hasta lograr que resuelva totalmente el problema
planteado.
Para esta Unidad, plantea un
problema de la vida real que quieras resolver mediante un programa de
computadora, pero ojo, procura que éste tenga un nivel de
complejidad intermedio pues, si es muy fácil de resolver no podrás implementar
todos los elementos de C que aprenderás, o si por el contrario, es demasiado
complejo, no alcanzará con lo aprendido.
Consulta a tu
Facilitador(a) y/o a tus compañeros(as) de grupo para delimitar mejor el
problema planteado (utiliza el Foro Planteamiento del Problema). Una vez
delimitado, envíalo mediante el Portafolio de evidencias para recibir la primer
retroalimentación del (la) Facilitador(a).
En un documento
de Word, redacta
de la manera más clara posible y con lujo de detalle el problema que elegiste y
guárdalo con la nomenclatura FPR_U2_EA_XXYZ.doc. Sustituye las XX
por las dos primeras letras de tu primer nombre, la Y por la inicial de tu
apellido paterno y la Z por la inicial de tu apellido materno.
Recuerda que sólo
tienes dos oportunidades para realizar tus envíos de evidencias, así que,
cuando recibas la primera retroalimentación, haz las adecuaciones necesarias y
hasta que consideres
que el problema planteado ya está perfectamente delimitado, vuelve a
enviarlo. Mientras tanto, puedes apoyarte del foro para recibir comentarios que
te permitan mejorar tu actividad. La versión final del
problema la deberás enviar antes de comenzar la siguiente unidad.
Consulta a tu Facilitador(a) si tienes dudas al respecto.
No olvides
revisar los aportes de tus compañeros(as) para ayudarles a plantear sus
problemas. Realiza, al menos, dos comentarios que sirvan para apoyarlos(as) en
la elaboración de su evidencia.
Para conocer los
lineamientos de evaluación de esta evidencia, descarga el siguiente documento.
Para enviar tu
documento: En la ruta (parte superior izquierda del aula) da clic en
Fundamentos. Se enlistarán las actividades de la unidad 2 y da clic en la Evidencia de aprendizaje. Planteamiento del problema.
Autoevaluación de la
Unidad 2
Además de
realizar las actividades formativas y las evidencias de aprendizaje, es
importante que realices otro tipo de actividades que te servirán para
autoevaluar tu aprendizaje en la parte teórica de los contenidos, es por eso
que te solicitamos realizar este cuestionario que te ayudará darte cuenta de
qué tanto has aprendido al respecto. Ingresa a la
Autoevaluación de la Unidad 2 y selecciona la respuesta que responda a cada una
de las preguntas. Para realizar la
Actividad: En la ruta (parte superior izquierda del aula) da clic en
Fundamentos. Se enlistarán las actividades de la unidad, da clic en la
Autoevaluación de la Unidad 2.
Cierre de la unidad
¡Felicidades!
Hemos acabado la unidad dos en la que estudiamos la manera de representar a los
algoritmos. Ahora ya sabemos que existen dos formas, una a través de los
diagramas de flujo, que nos ayudan a comprender de manera gráfica el flujo de
las instrucciones y los datos de nuestros programas; y la otra, mediante lo que
denominamos pseudocódigo, que es una forma de expresión más parecida al
lenguaje humano y que posteriormente nos servirá para traducirla al lenguaje de
programación que utilicemos.
Además,
aprendimos que las características de las distintas estructuras de control que
nos sirven para hacer más cortas y eficientes nuestras instrucciones.
En la
siguiente unidad comenzaremos a estudiar al lenguaje C, para lo cual
retomaremos parte de los contenidos vistos en esta ocasión, así que si
consideras que te hace falta mejorar en alguno de los temas, ahora es el
momento ideal para hacerlo.
Continuemos…
Fuentes de consulta
Böhm, C., & Jacopini, G. (1966).
Flow diagrams, Turing machines, and languages only with two formation
rules". Communications of the ACM, 9 (5), 366-371.
Cairó, O.
(2005). Metodología de la programación: Algoritmos, diagramas de flujo y
programas. México, D.F.: Alfaomega.
Joyanes, L.,
& Zohanero, I. (2005). Programación en C. Metodología, algoritmos y
estructuras de datos. España: Mc Graw Hill.
Reyes, A.,
& Cruz, D. (2009). Notas de clase: Introducción a la programación. México,
D.F.: UACM.
Viso, E.,
& Pelaez, C. (2007). Introducción a las ciencias de la computación con
Java. México, D.F.: La prensas de ciencias, Facultad de Ciencias, UNAM.
No hay comentarios:
Publicar un comentario