Está en la página 1de 69

DIAGRAMACIN Y ALGORITMOS

MDULO 2: ALGORITMOS

A. GUA DE TRABAJO:
Ficha tcnica:
1. Campo de formacin: Formacin tcnica.
2. Nmero de crditos: 2
3. Tipo de curso: Terico aplicado.
4. Autor: Lic. Yeimy Julieth Moreno Jimnez
Revisor: MsC. Javier Duvn Amado Acosta
5. Ao: 2008
6. Destinatarios: estudiantes del ciclo de formacin tcnico laboral.
Competencias de aprendizaje (generales).
Este modulo hace parte de la formacin tcnica especfica, donde el
estudiante desarrollar capacidades para el anlisis de situaciones
desde una perspectiva problmica centrada en la determinacin de
soluciones de tipo sistmico para eventos informticos de la realidad,
tratando de representar tales fenmenos en formas algortmicas, tanto
desde los seudo lenguajes como de otros esquemas de tipo informtico;
para la reformulacin y construccin de procedimientos congruentes con
la realidad problmica estudiada.

B. PROTOCOLO ACADMICO.

Introduccin.

El presente mdulo de trabajo esta orientado hacia la formacin de


competencias intelectuales y tecnolgicas dentro del campo de los
sistemas informticos. Para tal fin se presenta una serie de unidades
temticas que procuran realizar un recorrido a travs de diversas
maneras de estructurar una solucin o un camino de soluciones a un
problema surgido en la realidad, llevndolo al modelamiento algortmico.
Se parte de la necesaria activacin de las habilidades lgicas del
pensamiento a travs de diversas maneras de concretar la solucin y el
proceso a llevar a cabo para la misma ante un problema de tipo
informtico, tanto en trminos matemticos, como en trminos
lingsticos; siendo la necesidad formativa expresada en trminos de
desarrollo del pensamiento lgico, donde lo importante es la estructura
del proceso llevado a cabo, lo cual debe redundar en productos
confiables. El estudiante, debe necesariamente recurrir a aquellos textos
que analizan cada tpico en toda su complejidad.
Este mdulo propende por la conformacin lgica y estructural de la
metodologa para el desarrollo de algoritmos, independientemente de la
herramienta de programacin que se deba usar, desde una perspectiva
de desarrollo de aplicativos y aplicaciones de software.

Justificacin.

La formacin de competencias, capacidades y habilidades para el


desarrollo del pensamiento y a la vez el razonamiento lgico, se
consolida como el fundamento de la accin laboral, ocupacional y
profesional de cualquier sujeto que se desempee dentro del campo de
los sistemas informticos, sin importar el nivel, estructura de la labor o
rea ocupacional, surgiendo entonces la necesidad de conformar una
estructura de desarrollo lgico para la obtencin de procesos y
soluciones a contextos informticos aplicados a

la programacin,

desarrollo y estructuracin de aplicativos de software.


El desarrollo de la mente de desarrollador para cualquier profesional en
el campo de los sistemas informticos, desde el enfoque del manejo y
desarrollo de software, necesita desplegar una estructura que le
permita asumir cualquier problema y establecer un camino lgico para
su solucin. Un desarrollador es un solucionador de problemas, que ve
las necesidades donde otros las han obviado. Por ello el desarrollo de
una

estrategia

de

formulacin

de

problemas

en

trminos

de

programacin, independientemente de los lenguajes de programacin,


se constituye en una de las tareas prioritarias en su formacin.
El presente mdulo pretende precisamente conformar un ncleo de
contenidos que permitan dar respuesta efectiva a dicha formacin, a
dicho camino estructurado conocido como algoritmo. En tal sentido, se
revisan conceptos relacionados con informacin, datos y tipos de los
mismos, pasando por diversos ejercicios y formas de solucionar
problemas, para finalizar con al estrategia de diagramas de flujo,
reconocida por cualquier sujeto que en algn momento de la vida haya
estado vinculado a la accin de programar soluciones.

Objetivos.

Estructurar un proceso de anlisis de realidades informticas desde la


perspectiva problmica, para el desarrollo de soluciones a situaciones
contextuales de la ocupacin o labor del tcnico laboral en
administracin de sistemas; proporcionando contenidos formales acerca
de algunas tcnicas para el desarrollo de algoritmos.
En este sentido se plantean los siguientes objetivos especficos:

Proporcionar
resolucin

los
de

conocimientos
problemas

con

terico-aplicados
computadores

para

la

mediante

herramientas de programacin.

Determinar la estructura adecuada en trminos de datos para las


diferentes posibilidades de solucin de un problema especfico
del rea de formacin desde una perspectiva algortmica.

Competencias puntuales del aprendizaje

Capacidades para determinar y aplicar un modelo especfico de


anlisis de informacin desde la perspectiva de algoritmos en la
solucin de problemas informticos desde la perspectiva de los
sistemas computacionales.

Capacidad intelectual

de anlisis de la informacin y las

relaciones existentes entre los datos que dan significado a la


realidad de los sistemas en donde se produce, para determinar

caminos a seguir y estrategias de desarrollo para el tratamiento


algortmico de la misma.

1.

Unidades didcticas
Unidad 1: conceptos iniciales.
1.1.

Algoritmos.

1.1.1. Caractersticas de los algoritmos.


1.1.2. Tipos de algoritmos.
1.1.2.1.

Algoritmos cualitativos.

1.1.2.2.

Algoritmos cuantitativos o computacionales.

1.1.3. Construccin de un algoritmo.


1.2.

Datos.

1.2.1. Tipos de datos.


1.2.1.1.

Datos numricos.

1.2.1.2.

Datos lgicos.

1.2.1.3.

Datos tipo caracter y de cadena.

1.3.

Constantes y variables.

1.3.1. Tipos de variables.


1.3.1.1.

Variables por su contenido.

1.3.1.2.

Variables por su uso.

1.3.2. Identificadores.
1.4.

Asignaciones.

1.4.1. Tipos de asignaciones.


1.4.1.1.

Asignaciones aritmticas.

1.4.1.2.

Asignaciones lgicas.

1.4.1.3.

Asignaciones de cadenas de caracteres.

2.

Unidad 2: Resolucin de problemas con computadores.

3.

2.1.

Anlisis del problema.

2.2.

Diseo o desarrollo del algoritmo.

2.3.

Resolucin de problemas con computadores.

Unidad 3: Escritura de un Algoritmo (seudocdigo).


3.1.

Escritura inicial del algoritmo.

3.2.

Pseudocdigo.

3.2.1. Ventajas de los pseudocdigos.


3.2.2. Desventajas de los pseudocdigos.
4.

Unidad 4: Representacin grfica de un Algoritmo.


4.1.

Diagramas de flujo.

4.1.1. Simbologa.
4.1.2. Ventajas de los diagramas de flujo.
4.1.3. Desventajas de los diagramas de flujo.
4.2.

Diagramas Nassi-Schneiderman N-S.

4.2.1. Ventajas de los diagramas N-S.


4.2.2. Desventajas de los diagramas N-S.

Metodologa.

Los crditos sern la herramienta por medio de la cual se llevar a cabo


la labor acadmica a lo largo del desarrollo de la asignatura, de tal forma
que se garanticen los procesos de aprendizaje autnomo.
Como asignatura terico aplicada, cada uno de los contenidos se
encamina a potenciar las habilidades de los tcnicos laborales en
formacin. Mediante el mtodo inductivo deductivo, cimentado en la
perspectiva sistmica que pretende para los estudiantes el desarrollo de
los ejes temticos propuestos a travs del siguiente esquema de trabajo:

Actividades de estudio.

Actividades de anlisis.

Actividades de conceptualizacin

Ejercicios para cada unidad didctica (resueltos y propuestos)

Cada una de ellas enuncia unos principios tericos que marcan el


contexto de los contenidos a desarrollar, mediante definiciones o
elementos de estructura conceptual, las cuales se ven apoyadas por
preguntas de anlisis y auto evaluacin, elementos y cuestionamientos
para consultas, conceptos relacionados que se agrupan en los glosarios
y diversos ejercicios que apoyan en los talleres tericos y sesiones
prcticas de trabajo cooperativo que coadyuvan en la consecucin de
los objetivos propuestos.
El docente tutor, propiciar la adquisicin de los conocimientos y la
construccin de los conceptos propuestos en los mdulos escritos de tal
forma que se fortalezcan las competencias comunicativas y de trabajo
en equipo, para el anlisis de problemas y sntesis de soluciones.
El estudiante debe apoyarse en el uso efectivo de los recursos
bibliogrficos, manuales y sitios de Internet para la realizacin de
informes, trabajos de investigacin y ejercicios que complementen su
estudio, sea en forma individual o en equipo, mediante:

Realizacin de ejercicios de lgica bsica.

Presentacin de informes escritos sobre el proceso desarrollado.

Presentacin verbal de la experiencia obtenida en trabajos


realizados fuera del aula a travs de trabajo colaborativo.

Anlisis de casos afines a los temas de la asignatura, apoyados


en fuentes bibliogrficas, con miras a solucionar situaciones
problmicas.

Favorecer

el

desarrollo

de

habilidades

de

comunicacin

interpersonal, liderazgo y toma de decisiones en la realizacin de


diversos trabajos.

Fomentar el uso de los centros de informacin documental y


virtual, as como la asistencia a conferencias, seminarios,
simposios, entre otros.

Sistema de evaluacin.

La evaluacin como proceso continuo que busca apreciar las aptitudes,


actitudes, conocimientos, habilidades y destrezas del estudiante, frente
a una determinada disciplina, constatar el logro de objetivos
propuestos y se tendr en cuenta: Participacin en sesiones de trabajo,
trabajos de consulta e investigacin, casos, revisiones bibliogrficas y
procesos de indagacin propuestos en el modulo, los cuales sern
revisados por el docente tutor; igualmente la exposicin de trabajos,
los controles de lectura, para los que se emplearn cuestionarios,
pruebas escritas y documentacin.
La responsabilidad y la participacin en el desarrollo de los contenidos
temticos, es un compromiso por parte del estudiante.

Glosario de trminos.

ASCII: acrnimo ingls de American Standard Code for Information


Interchange (Cdigo Estadounidense Estndar para el Intercambio de
Informacin); es un cdigo de caracteres basado en el alfabeto latino tal
como el usado en ingls moderno y en otras lenguas occidentales. Casi
todos los sistemas informticos actuales utilizan el cdigo ASCII o una
extensin compatible para representar textos y para el control de
dispositivos que manejan texto.
CARACTER: se denomina as, cualquier signo de escritura o de
imprenta reconocido por el estndar de codificacin para computadores
ASCII.
COMPILADOR: es un programa que traduce los programas hechos por
el programador a un lenguaje entendible por el computador. En trminos
de programacin este programa traduce los programas fuentes escritos
en lenguajes de alto nivel al lenguaje de la mquina.
DIAGRAMA DE FLUJO: es una representacin grfica o esquema que
representa un fenmeno informtico o una sucesin de hechos,
acciones u operaciones mostrando sus relaciones.
EJECUTAR: accin mediante la cual el usuario le indica al computador
la realizacin de las instrucciones del programa objeto, una por una. La
ejecucin hace que el computador realice lo que el programa dice.
LENGUAJE DE PROGRAMACIN: se entiende como aquel conjunto de
seales, sentencias, palabras e instrucciones, usado para escribir
programas de computadores.

MDULO: parte integral de un programa que en s mismo maneja un


algoritmo especfico y entrega datos al programa principal u otro
mdulo.
PERIFRICO: dispositivo que acepta datos y los enva a un ordenador
para su tratamiento, o bien los recibe del computador y los traslada a un
medio adecuado para su interpretacin.
POLGONO: es una figura plana limitada por una lnea poligonal
cerrada. Los segmentos de la lnea poligonal se llaman lados.
PROGRAMADOR: es una persona encargada del diseo o construccin
de un programa o algoritmo.
PRUEBA DE ESCRITORIO:

proceso

de

comprobacin

que

el

programador realiza a un algoritmo para determinar la viabilidad de la


solucin realizada. Como su nombre lo indica, se trata de una prueba
sobre papel.
PSEUDOLENGUAJE: estrategia de representacin de un algoritmo que
busca establecer un punto medio entre el lenguaje de programacin que
se va a usar para procesar el algoritmo y el lenguaje natural del sujeto
programador.
SENTENCIA: secuencia de expresiones que especifica una o varias
operaciones a ser realizadas por el lenguaje de programacin.

Fuentes documentales (bibliografa y sitios Web).

BECERRA, Csar. Algoritmos: conceptos bsicos. Santaf de Bogot,


Kimpres Ltda., 1992.
AGUILAR, Lus. Fundamentos de programacin. Algoritmos y estructura
de datos. Editorial Mc Graw Hill. Madrid. 1996.
Fundacin Universitaria del rea Andina. Especializacin en Informtica
y Telemtica. Introduccin a la lgica de programacin. [En lnea].
Disponible

en:

http://www.cordecol.com/eit/index.php?

option=com_weblinks&task=view&catid=2&id=3 (Consultada el 20 de
diciembre de 2007).
MARTNEZ,

Carlos.

Algoritmos.

Corporacin

Iberoamericana

de

Estudios, departamento de publicaciones. Bogot. 2002.


TREJOS, Omar. La esencia de la lgica de programacin. Editorial
Papiro. Pereira, 1999.
TEJADA, lvaro. El arte de programar en [En lnea]. Disponible en:
http://www.iespana.es/singlepath (Consultada el 20 de diciembre de
2007).

C. GUA DE ACTIVIDADES.

Unidad 1: Conceptos iniciales.


Leccin 1: Algoritmos.
La palabra algoritmo se deriva del nombre Mohammed al-Khowarizmi, matemtico
persa que alcanz gran reputacin por el enunciado de las reglas paso a paso
para sumar, restar, multiplicar y dividir nmeros decimales durante el siglo IX.
Actualmente el trmino algoritmo se entiende como aquel conjunto de pasos
secuenciales y ordenados que permiten solucionar un problema; son secuenciales
porque deben ser ejecutados uno despus de otro y pasos ordenados quiere decir
que deben llevar un orden quasi-obligatorio (u obligatorio en la mayora de los
casos); por tanto, un algoritmo debe cumplir con las siguientes condiciones o
caractersticas:

Precisin: debe indicar el orden de realizacin de cada paso.

Claridad y definicin: puesto que debe brindar el mismo resultado


cada vez que sea comprobado o repetido su proceso.

Finitud: es decir, si se sigue un algoritmo, se debe terminar en


algn momento.

Tipos de algoritmos.
Algoritmos cualitativos: algoritmos en los que los pasos son descritos usando
palabras comunes al sujeto; se definen como todos aquellos algoritmos que no
son realizables a travs de un computador o que al menos no lo son fcilmente.

En las actividades cotidianas se usan algoritmos con el propsito de llegar a


ciertos resultados esperados, por ejemplo, encontrar un tema en un libro de texto,
encontrar un nmero telefnico en el directorio de las pginas blancas, ir a casa,
estudiar para un examen, hacer limpieza al cuarto, conseguir un trabajo, realizar
un ejercicio, dar un beso, fritar huevos, entre otros.
Un ejemplo muy comn de tales algoritmos es el siguiente:
Proceso para la elaboracin de una taza de caf (comnmente llamado tinto en
Colombia).

Insumos: Estufa, caf molido, agua, taza, fuego, azcar, cuchara


y olleta.

Proceso:
Encender la estufa
Poner la olleta con agua sobre el fogn encendido
Dejar hervir
Agregar caf al gusto
Hervir durante cinco minutos ms
Apagar la estufa
Servir el caf en la taza
Agregar azcar al gusto
Degustar

Puede notarse que se trata de una descripcin pormenorizada del proceso que al
ser repetido en cualquier circunstancia, obteniendo con siempre el mismo
resultado u cumpliendo con el objetivo propuesto. Cabe anotar que este algoritmo
no es nico, en el sentido que pueden existir otras formas diversas de elaborar
una taza de caf, que muchas veces depende de los insumos para llevar a cabo la

accin; por ejemplo si en lugar de estufa se dispone de una cafetera elctrica, el


proceso cambia radicalmente.
Algoritmos cuantitativos o computacionales: son aquellos en los que se utilizan
clculos numricos para definir los pasos del proceso. Se consideran como tales
todos aquellos algoritmos que deben ser preferiblemente implementados en un
computador para aprovechar su velocidad de procesamiento. Un ejemplo puede
ser el de un algoritmo que genere los primeros 100 nmeros primos; un nmero
primo es aquel que solo tiene dos nmeros enteros divisores, y aunque podran
ser calculados fcilmente sin necesidad de un sistema de cmputo, utilizando un
simple lpiz y papel. La utilizacin de un computador en unin con el algoritmo
adecuado va a dar un resultado mucho ms rpido y absolutamente confiable
aunque depende igualmente de que el algoritmo sea muy confiable).
En el desarrollo de los algoritmos computacionales, tema central del presente
mdulo, la metodologa para llegar a la solucin final que permita lograr un
objetivo (igualmente computacional) contiene los siguientes pasos:

Trascripcin: proceso que permite convertir un algoritmo, escrito


cualitativamente, en un listado de instrucciones entendibles para
el computador y que se ajustan a las reglas sintcticas que el
mismo usa. Se podra decir que es la traduccin de un algoritmo
con la ortografa de un lenguaje de programacin, de forma tal
que para escribir un algoritmo cuantitativo o computacional en
trminos entendibles a un computador, lo nico que se necesita
saber es cada una de las reglas sintcticas del lenguaje en el cual
se pretende implementar.

Compilacin: proceso realizado por el lenguaje de programacin


en el cual se implementa el algoritmo en el computador, con el
cual se hace un ajuste a las reglas sintcticas del lenguaje

elegido en trminos de sintaxis del programa; tal revisin indicar


los posibles errores y, en los casos ms selectos, indicar la lnea
del programa en donde estn los errores, sugiriendo la
correccin. Tal proceso se realiza a travs de una rutina o
subprograma

que

los

lenguajes

de

programacin

taren

incorporados y que se conoce como compilador, que evala los


siguientes tipos de errores:

Errores de Sintaxis: son los errores que comete el


programador al escribir el cdigo del programa, en
trminos de errores de ortografa desde el lenguaje de
programacin usado, por ejemplo al omitir letras,
intercambiarlas, olvidar signos de puntuacin y dems.

Errores de Precaucin: son aquellos que hacen, por


decirlo as, cierto tipo de recomendaciones para efectos
de mejoramiento o aseguramiento de los programas
realizados; por ejemplo con las ayudas de los lenguajes
de programacin del tipo Visual.

Errores Lgicos: estos errores aunque no los detecta el


computador, porque el compilador no va a discutir
acerca de lo que quiere hacer el programador y cmo
quiere hacerlo; este tipo de errores pueden detectarse
en la prueba de escritorio, que consiste en el
seguimiento por medio de datos aleatorios, al proceso
propuesto por el algoritmo, buscando determinar fallas,
equivocaciones, redundancias, ciclos perdidos y de
forma general, irregularidades en la lgica usada en el
algoritmo. La prueba de escritorio propone el manejo
de unos pocos datos con valores pequeos para que,

al ejecutar el algoritmo paso a paso, el programador


pueda vigilar el comportamiento de todas las variables 1.

Ejecucin o Puesta en Marcha: siguiente paso a la realizacin de


las correcciones pertinentes, cuando el compilador ha reportado
cero errores de sintaxis y cero errores de precaucin. A
continuacin el motor de ejecucin del lenguaje de programacin
pone en funcionamiento el programa completo, puesto que se
han cumplido las condiciones para ser ejecutado por el
computador. Tambin se conoce como correr el programa.

Verificacin de Resultados: ultima etapa del proceso en al que la


ejecucin del programa arroja un informa acerca del cumplimiento
adecuado o inadecuado del objetivo que se pretenda alcanzar
con el algoritmo. Cuando no se cumple el objetivo inicial, el
programador deber revisar los pasos para la ejecucin del
mismo, verificando cada etapa del proceso y realizando nuevas
pruebas de escritorio, para dado el caso modificar el algoritmo,
tomando en cuenta fallas como:

No se tena claro el objetivo y se fall en todo el


proceso para alcanzar el mismo.

No se realiz una adecuada prueba de escritorio o se


salt creyendo que el algoritmo estaba bien hecho.

No se conocan las reglas sintcticas del lenguaje con


el que se hizo la programacin.

Sea cual fuere la falla, siempre podrn hacerse modificaciones o


ampliaciones.
1

El concepto de variable ser abordado en la Leccin 3 de ste mdulo.

Construccin de un algoritmo.
La construccin de un algoritmo debe tener tres pasos: entrada, proceso y salida;
igualmente debe contar con un grupo limitado de pasos expresados claramente y
sin ambigedad, acordes con las un grupo de condiciones iniciales que al
ejecutarse, producen unos resultados en un tiempo limitado.
Ejemplo 1.
Buscar en un libro de matemticas, el tema de trinomio cuadrado perfecto.
Solucin:
Insumos: libros de matemticas de diversos autores y editoriales, as como para
diferentes niveles de formacin.
Proceso: partiendo de la seleccin aproximada de un nmero finito de libros, se
necesita desarrollar un conjunto de pasos ordenados que permiten seguir el
camino para encontrarlo.
El primer paso es seleccionar el grado en que dicho tema es trabajado: octavo
grado.
Entre tales libros, escoger uno de ellos de acuerdo con algunos criterios,
impuestos por las necesidades del problema o elecciones del programador;
algunos pueden ser:

Cuyo ao este prximo al vigente.

El libro ms antiguo.

Los libros que estn publicados entre 2000 y 2007.

Para el ejemplo, se tom como base el texto: Procesos Matemticos de Editorial


Santillana (168 pginas) y a partir de all hay varias formas para llegar a la
solucin:

Buscar en el ndice la unidad que hace referencia al tema


deseado, luego ubicar el tema.

Buscar en todo el libro, desde la primera unidad hasta la ltima el


tema requerido.

Buscar en todo el libro, desde la ltima unidad hasta la primera el


tema.

Buscar aleatoriamente el tema deseado.

Cualquiera de estos mtodos tarde o temprano permitir alcanzar la solucin; sin


embargo, un algoritmo siempre busca determinar la manera eficaz para
aprovechar la organizacin del libro.
Llegados a este punto, se puede limitar y establecer un conjunto de instrucciones
para determinar con claridad el tema de Trinomio Cuadrado Perfecto, como sigue:
Inicio
1.

Determinar el tema a buscar.

2.

Identificar de que asignatura es el tema.

3.

Buscar los libros que sirven y seleccionar uno de ellos.

4.

Ubicar la unidad(es) correspondiente(s) al tema.

5.

Situar el tema deseado.

Fin.
Este es un ejemplo de algoritmo, que marca el inicio del proceso y el final del
mismo, lo cual se constituye en caracterstica imprescindible para el 90% de los
lenguajes de programacin, actualmente vigentes en el mercado.

Ejemplo 2.
Proceso de seguimiento al pedido de un cliente, es decir: un cliente realiza un
pedido a una fbrica; la fbrica examina en su base de datos la ficha del cliente, si
el cliente aparece referenciado como responsable, entonces la empresa acepta el
pedido; en caso contrario, rechazar el pedido.
Redactar un algoritmo para este caso
Solucin:
Inicio.
1. Leer el pedido.
2. Examinar la ficha del cliente.
3. Si el cliente es responsable, aceptar pedido; en caso contrario,
rechazar pedido.
Fin.
Actividad leccin 1
1. Construya los algoritmos que resuelvan los siguientes problemas:
a. Ir al cine (sol@ o acompanad@).
b. Colocar la mesa para comer.
c. Hacer palomitas de maz, con una olla puesta al fuego con aceite, sal y
maz.
d. Hacer una llamada telefnica. Considerar los siguientes pasos:
Con operadora.
Automtico.
e. Deshinchar la llanta de un vehiculo.
f. Hacer el mercado para la casa.
g. Quitarse los zapatos.
h. Silbar.

i. Estudiar para un examen.


j. Tomar un bao.
Recuerde entregar un informe de los resultados a su tutor.
2. Especifique cuales son los pasos que debe tener un programador a la hora de
enfrentarse a un problema.
3. Describa el proceso de ejecucin de un programa.
Leccin 2. Datos.
Se entiende por datos como la mnima expresin de la informacin con sentido
completo, capaz de recibir tratamiento informtico. Los datos son los antecedentes
o la informacin necesaria para llegar al conocimiento exacto de las cosas, es la
expresin general que describe los objetos con los cuales opera un computador.
En programacin un dato es un conjunto o secuencia de bits (dgitos del sistema
binario). La mayora de los computadores pueden trabajar con distintos tipos de
datos; los algoritmos y los programas correspondientes operan sobre datos.
Tipos de datos.
Los datos pueden tomar rangos de valores aceptados por la mquina, que deben
ser tipificados y descritos en cada programa, para evitar redundancias,
desbordamientos de memoria u otros accidentes del sistema relacionados con el
tamao o clase de dato que deba alojar una parte del programa o algoritmo; as
por ejemplo, no es posible ejecutar operaciones matemticas con datos de tipo
alfabtico, porque la lgica computacional no entiende el sentido de sumar A + A.

Los distintos tipos de datos se representan en diversas formas en el computador,


estos pueden ser simples o compuestos2.

Figura 1. Tipos de datos.


Los tipos de datos simples son aquellos que solamente estan constituidos por una
estructura especifica (nmeros, caracteres) siendo los ms frecuentes y utilizados
por casi todos los lenguajes de programacin los numricos, lgicos y de caracter.

Datos numricos: este tipo de datos es el conjunto de los valores


numricos, que permiten la realizacin de operaciones aritmticas
comunes y representar valores escalares de forma numrica. En
este tipo de datos estn los nmeros enteros y los nmeros
reales.

Tipo numrico entero: es un subconjunto finito del


conjunto de los nmeros enteros. Los nmeros enteros
mximos y mnimos de un computador comnmente es
de -32768 a 32767.

Tipo numrico real: es un subconjunto del conjunto de


los nmeros reales, el computador reconoce un dato
tipo real si ste es representado por un nmero
decimal, por ejemplo12.3 o 23.5.

Los datos compuestos se estudiarn en el modulo 3.

Los clculos que se efectan en las expresiones


aritmticas que implican tipos de datos reales y enteros
suelen dar resultados del mismo tipo si los operandos
lo son tambin. Por ejemplo el producto de operandos
reales produce un real, vase la tabla 1.
Tabla 1. Tipos de datos en los operadores.
Operador
+
*

/
Div
Mod

Nombre
Tipos de operandos
Adicin
Entero o real
Substraccin
Entero o real
Multiplicacin
Entero o real
Exponencial
Entero o real
Divisin
Real
Divisin entera
Entero
Resto
Entero

Tipo de resultado
Entero o real
Entero o real
Entero o real
Entero o real
Real
Entero
Entero

Al igual que los operandos aritmticos, las funciones


internas determinan un tipo de dato como se muestra
en la tabla 2.
Tabla 2. Tipos de datos en las funciones internas.
Funcin
Abs(x)
Arctan(x)
Cos(x)
exp(x)
ln(x)
Log10(x)
redondeo(x)
round(x)
sen(x)
sin(x)
cuadrado(x)
sqr(x)
Raz2(x)
sqrt(x)

Descripcin
Valor absoluto de x
Arco tangente de x
Coseno de x
Exponencial de x
Logaritmo natural de x
Logaritmo en base 10 de x

Tipo de argumento
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real

Resultado
Igual que argumento
Real
Real
Real
Real
Real

Redondeo de x

Real

Entero

Seno de x

Entero o real

Real

Cuadrado de x

Entero o real

Igual que argumento

Raz cuadrada de x

Entero o real

Real

Funcin
trunc(x)

Descripcin
Truncamiento de x

Tipo de argumento
real

Resultado
Entero

Datos lgicos: este tipo de dato tambin es llamado booleano y


es aquel dato que nicamente acepta dos valores: verdadero o
falso. Este tipo de dato es el resultado de comparaciones de mas
datos, vase la unidad 1 del modulo 1.

Datos tipo caracter y de cadena: este tipo de datos es un conjunto


finito y ordenado de caracteres

que el computador reconoce

como una unidad en si misma. Un dato tipo caracter solo contiene


un caracter.

Los caracteres que reconocen los computadores no son estndar;


sin embargo la mayora son conocidos como cdigo ASCII, e
identificados de la siguiente forma:

Caracteres alfabticos: (A, B, C, D, , Z, a, b, c, d,


.., z)

Caracteres numricos: (0, 1, 2, , 9)

Caracteres especiales: ({+, -, *, /, , , ?, , !, =, ., ;, :,


{, }, )

Una cadena de caracteres, llamada tambin string, es una


secuencia de caracteres alfanumricos que permiten representar
valores identificables de forma descriptiva, esto incluye nombres
de personas, direcciones, caractersticas de objetos, nmeros
telefnicos, entre otros. Esta sucesin de caracteres se encuentra
delimitada por una comilla (apostrofe) o dobles comillas, segn el
tipo de lenguaje de programacin. La longitud de una cadena de

caracteres es el nmero de ellos comprendidos entre los


separadores o limitadores. Por ejemplo:
hola Tatiana
Felices pascuas
25 de febrero de 1942
Es posible representar nmeros como alfanumricos, pero estos
pierden su propiedad matemtica puesto que no es posible hacer
operaciones con ellos.
Actividad leccin 2.
1. De acuerdo con el siguiente listado de datos, clasifique cada uno de ellos
explicando cada eleccin.
a. La mayora de cisnes son blancos!.
b. 19.2345
c. 1992
d. 34
e. 3 < 1
f. 5 o 9
2. Podra usarse diferentes tipos de datos en el desarrollo de un algoritmo?
Realice ejemplos para verificar y justificar su respuesta.

Leccin 3: Constantes y variables.


Los programas para computador tienen cierto tipo de valores que no deben
cambiar durante la ejecucin del programa, as como valores que cambian durante
su ejecucin, debido a las mismas operaciones entre datos o simplemente a la
manipulacin de los mismos; los primeros son conocidos como constantes,
mientras los segundos como variables.
Una constante es una partida de datos que permanecen sin cambios durante el
desarrollo del algoritmo (ejecucin del programa). La mayora de los lenguajes de
programacin permiten diferentes tipos de constantes: enteras, reales, de
caracteres y lgicas (booleanas) y representan datos de esos tipos.
Una variable es una partida de datos, la cual ocupa un espacio en la memoria del
computador que permite almacenar temporalmente un dato durante la ejecucin
de un proceso, su contenido puede cambiar durante la ejecucin del programa.
Para poder reconocer una variable en la memoria del computador, es necesario
darle un nombre para identificarla dentro de un algoritmo. Por ejemplo:
rea =

* radio ^ 2

Las variables son: radio y rea.


La constate es

Tipos de variables.
Dependiendo del lenguaje, hay diferentes tipos de variables, entre las cuales se
destacan: las enteras, reales, de caracter, lgicas y de cadena. Una variable que
es de cierto tipo puede tomar nicamente valores de ese tipo. Por ejemplo un
variables tipo caracter solo puede tomar valores tipo caracter, mientras que una
variable real puede tomar slo valores reales.

Una variable se identifica por, el nombre que se le asigna y el tipo de dato que
describe el uso de la variable. Las variables se clasifican por su contenido y por su
uso:

Figura 2. Tipos de variables.

Variables por su contenido: entre ellas se encuentran:

Variables Numricas: Son aquellas en las cuales se


almacenan valores numricos, positivos o negativos, es
decir datos de tipo numrico. Por ejemplo: iva = 0.15;

= 3.1416; costo = 2500.

Variables Lgicas: Son aquellas que solo pueden tener


dos valores (verdadero o falso). Representan el
resultado de una comparacin entre otros datos.
Cuando la comparacin es entre datos de tipo caracter
se tiene en cuenta que cuando son letras el orden
stas siguen su orden alfabtico (A < B,), los
dgitos estn en su orden natural (1 < 2) y los
especiales

tienen

exigen

una

consulta

en

el

computador. Cuando se utilizan los operadores de


relacin, con valores lgicos, la constante false (falso)
es menor que la constante true (verdadero).

Variables Alfanumricas: Esta formada por caracteres


alfanumricos

(letras,

nmeros

caracteres

especiales). Por ejemplo: letra = a apellido = Lpez


direccin = Av. Esperanza con 26

Variables por su uso3: entre ellas se encuentran

Variables de Trabajo: estas reciben el resultado de una


operacin

matemtica

completa,

que

se

usan

normalmente dentro de un programa. Por ejemplo:


Suma = (a + b) /c

Contadores: Se utilizan para llevar el control del


nmero de ocasiones en que se realiza una operacin
o se cumple una condicin.

Acumuladores: Forma que toma una variable y que


sirve para llevar la suma acumulativa de una serie de
valores

que

se

van

leyendo

calculando

progresivamente.
Identificadores.
Los nombres de las variables son conocidos como identificadores, suelen constar
de varios caracteres que sirven para identificar una posicin en la memoria del
computador permitiendo acceder a su contenido. Los identificadores representan
los datos de un programa (constantes, variables y tipos de datos).
Para establecer un identificador se deben tener en cuenta las siguientes
condiciones:

Esta clasificacin se ver en posteriores unidades.

Debe comenzar con una letra (A hasta Z, maysculas o


minsculas) y no deben contener espacios en blanco.

Letras, dgitos y caracteres como la subraya (_) estn permitidos


despus del primer caracter.

La longitud de identificadores puede ser de varios caracteres.


Pero es recomendable una longitud promedio de 8.

El nombre del identificador debe dar una idea del valor que
contiene, para recordar con mayor facilidad su contenido.

Los siguientes identificadores son un ejemplo de las condiciones para su


formacin.
Nombre=Marcela
Nombre_apellidos= Marcela Snchez
E= 2.718282
PI=3.141592
Actividad leccin 3
1. En el siguiente listado, cules constantes no son vlidas?
a. 234
b. 32.767
c. 3.6E + 7
d. 0.0001
e.
f. -7E12
g. Ernesto
2. Cules de los siguientes identificadores no son vlidos?
a. XRAYO
b. X_RAYO

c. N14
d. 3NOMBRE
e. 45
f. ZZZzz
g. Ernesto
3. Escriba 3 ejemplos relacionados con los tipos de variables por su
contenido. Entregue su trabajo al docente tutor.

Leccin 4. Asignaciones.
Para almacenar informacin en la memoria se debe definir una localizacin de
almacenamiento, esta operacin es el modo de darle valores a una variable. Esta
se representa con el smbolo y se conoce como instruccin o sentencia de
asignacin cuando se refiere a un lenguaje de programacin.
La flecha es el operador de asignacin y ser utilizada en la redaccin del
algoritmo para evitar ambigedades; sin embargo este operador se sustituye en
algunos lenguajes de programacin por, := (en pascal o C/C++) o = (BASIC,
FORTRAN), entre otros.
De forma general en el algoritmo, una instruccin de asignacin debe escribirse de
la siguiente manera:
Variable valor
La variable debe estar representada por su identificador. El valor asignado puede
ser una constante, una variable, una expresin aritmtica o una funcin; es decir
un dato.

Si se quiere almacenar en la memoria el nmero 8 con el nombre i se denota


como: i 8 (a la variable i se le ha asignado el valor 8). Esta localizacin de
almacenamiento puede cambiar su contenido cuando se mueva, o se asigne o se
almacene otra informacin a la variable. Por ejemplo, en la secuencia de
operaciones:
a 25
a 120
a5
cuando se han ejecutado todas las instrucciones u operaciones, el valor que se
encuentra almacenado al final en la variable a es 5, los valores 25 y 120 han
desaparecido, siendo reemplazados consecutivamente.
Cuando a una variable se le asigna una expresin, el computador ejecuta la
sentencia en dos pasos. En el primero de ellos se calcula el valor de la expresin
al lado derecho del operador, obtenindose un valor de un tipo especfico. En el
segundo paso, este valor se almacena en la variable cuyo nombre aparece en la
izquierda del operador de asignacin y si la variable tena un valor anteriormente
lo sustituye. Por ejemplo:
x3
z 10
xz+1
es decir, el valor de la expresin z + 1, que ser igual a 11 se asigna a la variable
x, sustituyendo el 3 que tena anteriormente.
Es posible usar el mismo nombre a ambos lados del operador de asignacin, por
ello acciones como x x + 1 tienen sentido, pues el valor actual de la variable x
se va incrementado en uno y el resultado se le asigna a la misma variable. Al
suponer que:
x4

xx+1
como x + 1 es igual a 5, a x se le cambia el valor de 4 por el 5.
Tipos de asignaciones.
Las acciones de asignacin se clasifican segn sea el tipo de expresiones en,
aritmticas, lgicas y de caracter.

Asignacin Aritmtica: son las que asignan expresiones


aritmticas a una variable.
Ejemplo 3.
operacin 5 + 2 1
se evala la expresin 5 + 2 1 y se asigna a la variable
operacin, es decir 6 ser el valor de operacin.
Ejemplo 4.
a 14.5 + 8
b 32.5 * 2
ca/b
se evalan las expresiones 14.5 + 8 y 32.5 * 2, luego se dividen
los resultados de cada expresin y se asigna a la variable c.

Asignacin Lgica: la expresin que se evala en la operacin de


asignacin es lgica y las variables tendrn valores de verdadero
o falso.
d -10 < -20
e 5 = 3 o 5 <> 3

w no4 d
al evaluar las expresiones, las variables d, e y w tomaran los
valores falso, verdadero y verdadero respectivamente.

Asignacin de cadenas de caracteres: esta asignacin es muy


sencilla, pues la expresin que se evala es de tipo cadena y se
asigna a la variable correspondiente. Por ejemplo:
Nom_apellido Josefa Martnez la accin de asignacin fija la
cadena de caracteres Josefa Martnez a la variable tipo cadena
Nom_apellido.

En las asignaciones no se pueden asignar valores a una variable de un tipo


diferente al suyo. Se presentar un error si se trata de asignar valores de tipo
caracter a una variable numrica o un valor numrico a una variable de tipo
caracter.
Ejemplo 5.
Cul es el valor de x despus de las siguientes operaciones?
x2
x cuadrado (x + x)
x raz2(x + raz2(x) + 5)
Solucin.
Los resultados de cada expresin son:
x2

x toma el valor de 2

x cuadrado (2 + 2)

x toma el valor 4 al cuadrado; es decir, 16.

x raz2 (16 + raz2(16) + 5)

se evala primero raz2(16), que produce


4 y, por ultimo, raz2 (16 + 4 + 5) que
proporciona raz2 (25), es decir 5.

Algunos lenguajes de programacin usan simbologa en ingls, not.

Luego los resultados de las expresiones sucesivas son:


x2
x 16
x5
Entrada y salida de informacin.
Los clculos que realizan los computadores requieren una entrada de los datos
necesarios para ejecutar las operaciones que posteriormente se convertirn en
resultados, es decir, datos de salida.
Las operaciones de entrada permiten leer determinados valores y asignarlos a
determinadas variables. Esa entrada se conoce como operacin de lectura (read).
Los datos de entrada se introducen al procesador mediante dispositivos de
entrada (teclados, tarjetas perforadas, entre otros). La salida puede aparecer en
un dispositivo de salida (pantalla impresora, entre otros) y esta se denomina
escritura (write). Estas acciones usadas en los algoritmos se representan como:
Leer (lista de variables de entrada)
Escribir (lista de expresiones de salida)
Por ejemplo: Leer (A, B, C) representa tres valores de escritura de entrada que se
asigna a las variables A, B y C. y Escribir (bienvenido) Visualiza en la pantalla o
escribe en un dispositivo de salida el mensaje bienvenido
Nota: Las palabras leer y escribir se pueden sustituir por las palabras read y write
respectivamente, segn corresponda al lenguaje de programacin que se haya
elegido.
Actividad leccin 4

1. Deducir el valor la variable X si a = 12.5, b = 25, c = 5.


a. X a + b + c
b. X a + b * c
c. X a + b / c
d. X a + b mod c
e. X raiz2 (b / c)
f. X Sqr (c) abs (a)
Justifique sus respuestas
2. Cules son los valores de a, b y c despus de la ejecucin de las
siguientes operaciones? Por qu?
a. a 3
b4
ca+2*b
cc+b
bca
ab*c
b. a 3
b 20
ca+b
ba+b
abc
3. Encontrar el valor de la variable VALOR despus de la ejecucin de las
siguientes operaciones:
a. VALOR 4.0*5
x 3.5

y 2.0
VALOR x

y y

VALOR 5
x3
VALOR VALOR * x
b. VALOR 20.0
x 3.7
y 2.0
VALOR 3 2 2
VALOR 5
x 13
VALOR VALOR * x
4. Escriba una expresin lgica que sirva para evaluar cada una de las
condiciones que se presentan a continuacin, despus asgneles una
variable y determine su valor.
a. Es falso que el nmero 0 sea igual a la letra O
b. Un nmero x es impar y mltiplo de 5
c. Un cdigo COD es un nmero entero positivo de dos cifras.
d. Un da de la semana (DIA) no es sbado ni domingo.
e. Una persona es mujer soltera y mayor de edad.
5. Encuentre el valor de la variable W.
a. W no (-1 < -1.2)
b. W (3 >= 0) y (3 < -5)
c. W (-2 < -1) o (2 > 1)
d. W No (B > C)
e. W (3 + 5 < 3 * 5) o (2 * 3 = 15 div 5) y (A < a)

6. Cmo se intercambian los valores de dos valores a y b? comprubelo con


un ejemplo.
7. Si se tienen 3 variables r, s y t, escribir las instrucciones necesarias (en
forma de algoritmo) para intercambiar entre s sus valores del modo
siguiente:
a. s toma el valor de r.
b. t toma el valor de s.
c. r toma el valor de t.
al finalizar comprubelo con los valores de r = 5, s = 10 y t = 15.
Nota: solo se debe utilizar una variable auxiliar.
8. Realice tres algoritmos en los cuales sea necesaria la entrada de datos
para el proceso, es decir, teniendo en cuenta la entrada y salida de
informacin.
9. Escriba el algoritmo para declarar dos variables, una de tipo Entero y la otra
de tipo Cadena, el usuario debe ingresar su nombre y su edad y el
programa le devolver un saludo en donde se encuentre el nombre y la
edad.

Unidad 2: Resolucin de problemas con computadores


La resolucin o solucin de problemas con computador a travs del uso de
algoritmos, requiere de un proceso claramente establecido as: dado un
determinado problema, el programador debe idear una solucin y expresarla
usando un algoritmo; luego de esto, debe codificarlo en un determinado lenguaje
de programacin y por ltimo ejecutar el programa en el computador, el cual refleja
una solucin al problema inicial.
La parte que corresponde a esta unidad es la de: Dado un determinado problema
se debe idear una solucin y expresarla usando un ALGORITMO. La meta que
debe tener un programador o desarrollador de software es aprender a resolver
problemas mediante computadores de un modo riguroso y sistemtico. La
resolucin de problemas exige el diseo de un algoritmo que resuelva el problema
propuesto.

RESOLUCIN
DE UN
PROBLEMA

ANLISIS DEL
PROBLEMA

DISEO DEL
ALGORITMO

RESOLUCIN DEL
PROBLEMA CON EL
COMPUTADOR

Figura 3. Resolucin de un problema.


La resolucin de un problema de computadores se puede dividir en tres fases:
1. Anlisis del problema
2. Diseo o desarrollo del algoritmo
3. Resolucin del algoritmo en el computador.

Recuerde, que para la resolucin de un problema se debe tener en cuenta lo


aprendido en el modulo 1.

Leccin 1. Anlisis del problema.


El primer paso para la resolucin de un problema anlisis del problema
requiere que el problema sea definido y comprendido claramente para que pueda
ser analizado con todo detalle (que no falte algo). En trminos generales, analizar
es descomponer un todo en sus partes y en trminos de programacin, el anlisis
del problema consiste en determinar qu elementos y qu acciones deben
considerarse en cada una de las etapas del sistema de computacin.
Una vez que se ha comprendido lo que se desea del computador, es necesario
definir:

Los datos de entrada. El usuario le suministra datos al


computador y este los almacena en la memoria.

Los mtodos y frmulas que se necesitan para procesar los


datos. El computador realiza operaciones con los datos
almacenados en la memoria para producir los datos que requiere
la solucin del problema.

La informacin que se desea producir (salida). El computador


muestra, a travs de un medio de salida, los datos que necesita
conocer el usuario.

Si se quiere definir con precisin el problema, los datos de entrada y salida deben
ser descritos con detalle. Una buena definicin del problema, junto con una
descripcin detallada de las especificaciones de entrada y salida, son los
requisitos ms importantes para llegar a una solucin eficaz.

El anlisis del problema exige una lectura previa del problema a fin de obtener una
idea general de lo que se solicita. La segunda lectura deber servir para responder
a las preguntas que se proponen a continuacin y que estn relacionadas con los
tems definidos anteriormente (entrada, proceso y salida).

Qu datos se debe suministrar al computador durante la fase de


entrada?

Que operaciones debe realizar el computador durante la fase de


proceso para obtener los resultados requeridos?

Qu datos debe imprimir el computador?

Una recomendacin muy prctica es el de colocarse en el lugar del computador y


analizar qu es lo que se necesita que se ordene y en qu secuencia para
producir los resultados esperados.

ANLISIS DEL
PROBLEMA

DEFINICIN
DEL
PROBLEMA

ESPECIFICACIONES
DE ENTRADA

ESPECIFICACIONES
DE PROCESO

ESPECIFICACIONE
S DE SALIDA

Figura 4. Anlisis del problema.


Ejemplo 1.
Leer el radio de un crculo y calcular e imprimir su superficie y la longitud de la
circunferencia5.
5

AGUILAR, Lus. Fundamentos de programacin. Algoritmos y estructura de datos. Madrid, McGraw-Hill,


1996

Solucin:
Anlisis.
Las entradas de datos en este problema se concretan en el radio del crculo. Dado
que el radio puede tomar cualquier valor dentro del rango de los nmeros reales,
el tipo de datos radio debe ser real.
Las salidas sern dos variables: superficie y circunferencia, que tambin sern de
tipo real.
Entradas: radio del circulo (variable RADIO)
Operaciones de proceso: calcular la superficie del crculo.
Calcular la longitud de la circunferencia.
Salidas: superficie del circulo (variable AREA)
Longitud de la circunferencia (variable LONGITUD)
Variables: RADIO, AREA, LONGITUD (tipo real).
Como se haba mencionado en el modulo 1, es importante que el programador
antes de realizar el diseo del algoritmo haga el respectivo anlisis al problema
para poder orientar su pensamiento en la direccin correcta. Adems debe
requerir de dos condiciones para hacer acertado su anlisis:

Entender claramente la solucin planteada en el enunciado del


problema. Mientras no se entienda el problema, no se puede
buscar una solucin adecuada.

Conocer el campo de aplicacin del problema. Por ejemplo, nadie


puede solucionar por computador un problema de contabilidad si
antes no sabe como se manejan los procesos contables de la
empresa.

Actividad leccin 1.

1. Realice el anlisis correspondiente a los siguientes problemas.


a. Cmo sumar, restar y multiplicar dos nmeros enteros?
b. Cmo calcular el precio a pagar por cierta cantidad de productos?
c. Cmo realizar un algoritmo que pregunte si es fin de semana?
d. Cmo realizar un algoritmo que determine el da de la semana?
e. Cmo pedir al usuario un nmero mayor que 0 y menor que 10?
f. Cmo imprimir el nombre del usuario?
g. Cmo imprimir un nmero 5 veces?
Presente sus avances al docente tutor.
Leccin 2. Diseo o desarrollo del algoritmo.
Un computador no tiene la capacidad de solucionar un problema por s solo. Este
solicita que le proporcionen los pasos sucesivos a realizar (introducirle
instrucciones u ordenes que le digan lo que tiene que hacer) estos pasos como ya
se menciono anteriormente es lo que se constituye como algoritmo.
La informacin proporcionada al algoritmo establece su entrada y la informacin
producida por el algoritmo establece su salida. Los problemas complejos se
pueden resolver dividindolos, muchas veces si es necesario, en subproblemas
cada vez ms sencillos para que sea ms eficaz y prctico el camino a su
solucin. Estas descomposiciones se denominan diseo descendente.
El primer esquema del algoritmo normalmente es incompleto porque indicar solo
unos pocos pasos, la tarea del programador es ampliarla en una descripcin ms
detallada que implique ms pasos y estos sean ms especficos. Este proceso es
conocido como refinamiento del algoritmo. Para resolver problemas se necesitan

varios niveles de refinamiento antes de obtener un algoritmo claro, preciso y


completo.
Por consiguiente el ejemplo 1 de esta unidad, se puede descomponer en
subproblemas ms simples, obteniendo los siguientes refinamientos:
Tabla 3. Ejemplo de un refinamiento.
Subproblema
Leer datos de entrada
Calcular superficie
Calcular longitud de la circunferencia
Escribir resultados

Refinamiento
Leer radio
AREA = 3.1416 * RADIO 2
LONGITUD = 2 * 3.1416 * RADIO
Escribir RADIO, AREA, LONGITUD

Las caractersticas ms importantes del diseo descendente son:

El problema se divide en partes ms simples para comprenderlos


ms fcilmente.

Si se requiere modificaciones, en las partes divididas (llamadas


mdulos) son ms fciles.

Si el problema est divido en partes ms sencillas, la


comprobacin se puede verificar ms fcilmente.

Tras el diseo descendente y refinamiento de pasos es preciso presentar el


algoritmo mediante una determinada herramienta de programacin llamadas
pseudocdigo, diagramas de flujo, entre otros (estas herramientas sern vistas en
las unidades posteriores del presente modulo). As pues el diseo de un algoritmo
se descompone como aparece en la figura.

DISEO DEL
ALGORITMO

DISEO
DESCENDENTE

REFINAMIENTO
POR PASOS

HERRAMIENTAS DE
PROGRAMACIN

Figura 5. Diseo del algoritmo.


Recuerde: un algoritmo debe tener las siguientes caractersticas:

Debe tener un punto particular de inicio.

Debe ser definido, no debe permitir dobles interpretaciones.

Debe ser general, es decir, soportar la mayora de las variantes


que se puedan presentar en la definicin del problema.

Debe ser finito en tamao y tiempo de ejecucin.

Diseo del Algoritmo

Prueba de escritorio o Depuracin

Ejemplo 2.
Se desea obtener el salario neto de un trabajador conociendo el nmero de horas
trabajadas, el salario hora y la tasa de impuestos que se le debe deducir.
Solucin.
El algoritmo general es:
1. obtener valores de horas trabajadas, salario_hora y tasas.
2. Calcular salario_bruto, total de impuestos y salario_neto.
3. visualizar salario_bruto, total de impuestos y salario_neto.

Entradas: horas trabajadas, salario_hora, tasas.


Salidas: paga bruta, total de impuestos y pago neto.
Refinamiento descendente:
1. obtener valores de horas trabajadas, salario_hora y tasas
2. Calcular salario_bruto, total de impuestos y salario_neto.
Calcular salario bruto multiplicando las horas trabajadas por el
salario_hora
Calcular el total de impuestos multiplicando salario bruto con
tasas (tanto por ciento de impuestos)
Calcular el salario neto restando el total de impuestos del pago
bruto.
3. Visualizar salario bruto, total de impuestos, salario neto.
Existe otro diseo, el diseo ascendente, pero por las dificultades que tiene la
creacin de algoritmos es basado sobre la tcnica descendente, la cual brinda el
diseo ideal para la solucin de un problema.
Actividad leccin 2.
1. Aplique la tcnica de refinamiento descendente para los problemas
propuestos en la actividad de la leccin 1 de la presente unidad.
Leccin 3. Resolucin de problemas con computadores.
Una vez que el algoritmo este diseado se debe pasar a la solucin practica del
problema con el computador. Esta fase se clasifica en:

Codificacin del algoritmo. Esta parte consiste en escribir el


algoritmo en un lenguaje de programacin que el computador

pueda entender y ejecutar. El programador aprende los cdigos y


la sintaxis y los utiliza en el diseo del algoritmo.

Ejecucin del programa. Ejecutar o correr un programa es pedirle


al computador una por una las instrucciones del programa objeto.
Esta operacin la realiza el computador despus que el usuario le
haya

dado una orden. Al ejecutar el computador hace

exactamente lo que el computador dice.

Comprobacin del programa. Comprobar el programa permite


saber si un algoritmo funciona adecuadamente.

El diseo del algoritmo describe en una herramienta de programacin; sin


embargo el programa que implementa el algoritmo debe ser escrito en un lenguaje
de programacin y siguiendo con las reglas gramaticales o sintaxis del mismo
(codificacin). Tras la codificacin del programa, deber ejecutarse en el
computador y a continuacin de comprobar los resultados pasar a la fase final de
documentacin.

RESOLUCIN
DEL
PROBLEMA

CODIFICACIN
DEL
PROGRAMA

EJECUCIN DEL
PROGRAMA

COMPROBACIN
DEL PROGRAMA

Figura 6. Resolucin del problema mediante un computador.

Unidad 3: Escritura de un Algoritmo.


Leccin 1. Escritura inicial del algoritmo.
Como ya se haba mencionado anteriormente un algoritmo es una serie de pasos
organizados que describe el proceso que se debe seguir, para dar solucin a un
problema especfico. El algoritmo debe tener las siguientes propiedades:

Debe estar seguida de alguna secuencia definida de pasos hasta


que se obtenga un resultado coherente,

Slo puede ejecutarse una operacin a la vez.

Recurdese la construccin de un algoritmo vista en la unidad 1 del presente


modulo.
Algunas veces cuando se ejecuta varios pasos en la construccin del algoritmo es
probable que se encuentre la solucin sin necesidad de ms pasos, veamos la
siguiente construccin de un algoritmo que desea encontrar un nmero telefnico
en el directorio de las pginas blancas.
Ejemplo 1.
Inicio.
1.

Determinar nombres y apellidos de la persona requerida.

2.

Buscar el directorio.

3.

Ubicar seccin identificada por la primera letra del primer


apellido de la persona.

4.

Ubicar el grupo de personas del mismo primer apellido.

5.

Ubicar el grupo de personas con el miso primer nombre.

6.

Ubicar el grupo de personas con el mismo segundo nombre.

7.

Ubicar el grupo de personas con el mismo segundo apellido.

Final.
Cuando se ejecuta cualquiera de los ltimos cuatro pasos se puede ubicar la
persona sin necesidad de ms consultas. Por ende, se debe completar el
algoritmo de tal forma que al encontrarse la ubicacin de la persona no se
ejecuten ms pasos.
Es decir,
Inicio
Determinar nombres y apellidos de la persona requerida.
Buscar el directorio.
Ubicar seccin identificada por la primera letra del primer apellido de
la persona.
Ubicar el grupo de personas del mismo primer apellido.
Sino se encontr el nombre de la persona entonces
Ubicar el grupo de personas con el miso primer nombre.
Sino se encuentra el nombre de la persona entonces
Ubicar el grupo de personas con el mismo segundo
nombre.
Sino se encontr el nombre de la persona entonces
Ubicar el grupo de personas con el mismo
segundo apellido.
Sino se encontr el nombre de la persona
entonces
La persona no est.
Fin.
Fin.
Fin.
Fin.

Final.
Ejemplo 2.
Qu hacer para ver la pelcula Harry Potter?
Recuerde que la respuesta es muy sencilla y puede ser descrita en forma de un
algoritmo general as:
Inicio
1. Ir al cine
2. Comprar una entrada (billete o ticket)
3. Ver la pelcula regresar a casa
Fin.
El algoritmo consta de cuatro opciones bsicas, cada una de las cuales puede ser
ejecutada antes de realizar la siguiente. En trminos de computador, cada accin
se codificara en una o varias sentencias que ejecutan una tarea particular.
El algoritmo descrito es muy sencillo; sin embargo, como ya se ha indicado en
prrafos anteriores, el algoritmo general se descompondr en pasos ms simples
en un procedimiento denominado refinamiento sucesivo, ya que cada accin
puede descomponerse a su vez en otras acciones ms simples. As por ejemplo
un primer refinamiento del algoritmo ir al cine se puede describir de la siguiente
forma:
1. Inicio
2. Ver la cartelera de cines en el peridico.
3. si no proyectan Harry Potter entonces
3.1. Decidir otra actividad
3.2. Bifurcar el paso 7
si_no

3.3. Ir al cine
Fin_si
4. Si hay cola entonces
4.1. Ponerse en ella
4.2. Mientras haya personas delante hacer
4.2.1. Avanzar en la cola
Fin_mientras
Fin_si
5. Si hay localidades entonces
5.1. Comprar una entrada pasar a la sala
5.2. pasar a la sala
5.3. Localizar la(s) silla(s)
5.4. Mientras proyectan la pelcula hacer
5.4.1. Ver la pelcula
Fin_mientras
5.5. Abandonar el cine
si_no
5.6. Refunfuar
Fin_si
6. Regresar a casa
7. Fin
Fjese que con estos dos ejemplos hay dos consideraciones. El primero es que el
programador es el que decide como ordena u organiza los pasos del algoritmo de
forma tal que los entienda. La segunda consideracin es, las palabras que estn
en negrilla describen las estructurales de control fundamentales (seleccin o
decisin y repeticin o ciclos). Las de seleccin son expresadas por si-entoncessi_no (if-then-else) y de repeticin expresadas con mientras-hacer o repetir-hasta
e iterar-fin-iterar (while-do y repeat-until); aunque estas estructuras se estudiaran

con mayor profundidad en el modulo siguiente en esta unidad se tomaran algunas


caractersticas bsicas.
Por ahora lo importante es que se tenga claro que para realizar un algoritmo
estarn enmarcadas tres estructuras:

Secuencias de acciones: Para escribir una secuencia de rdenes


o acciones se coloca una nueva orden o una nueva accin
despus de la ltima que haya colocado. De esta manera se
entiende la secuencia y el orden en la ejecucin de esas acciones

Decisin de accin: esta estructura depender de una condicin.


La condicin es la que permite decidir cul es el camino lgico
correcto a tomar.

Ciclos de acciones: esta estructura permite repetir condiciones


que el programador establece. La palabra mientras establece, en
relacin con una condicin el inicio de un conjunto de acciones,
que se repiten precisamente mientras esa condicin lo permita.

Cabe anotar que cuando se utiliza un Fin este indica el final del bloque
correspondiente; por ejemplo el Fin_Mientras indica en donde termina el bloque de
instrucciones que se deben operar.
Siguiendo con el ejemplo 2, observe que todava se puede descomponer uno de
los pasos localizar la(s) silla(s) en unos ms simples. Si el nmero de los
asientos estn impresos en la entrada, la accin compuesta se resuelve con el
siguiente algoritmo:
1. inicio// para encontrar la silla del espectador.
2. caminar hasta llegar a la primera fila de sillas
3. repetir

Compara numero de fila con numero de impreso de boleta


si no son iguales, entonces pasar a la siguiente fila
hasta_que localice la fila correcta
4. mientras numero de butaca no coincida con numero de boleta
hacer avanzar a travs de la fila a la siguiente silla
fin_mientras
5. sentarse en la silla
6. fin.
Fjese que en este algoritmo la repeticin se ha mostrado de dos modos, repetir
hasta_que y mientras fin_mientras. Y se ha considerado, como ocurre
normalmente que el nmero del asiento y fila coincide con el nmero y fila del
rotulo en la boleta.
Actividad leccin 1.
1. Realizar un algoritmo para inspeccionar las camisas en un almacn de ropa
2. Realizar un algoritmo para vigilar desde una ventana.
3. Realizar un algoritmo para colocarse una camisa.
4. Realizar un algoritmo para asomarse en la ventana.
5. Realizar un algoritmo que sume mltiple y reste dos nmeros reales.
6. Disear un algoritmo que indique la manera cmo se debe buscar en el
directorio de las pginas amarillas el nombre de un almacn.

Leccin 2. Pseudocdigo.
El Pseudocdigo se puede definir como un lenguaje de especificaciones
(descripciones) de algoritmos. Es decir, es la representacin narrativa de los pasos
que debe seguir un algoritmo para dar solucin a un problema determinado; a su

vez facilita su posterior trascripcin a un lenguaje de Programacin y por tal razn


es considerado como un borrador. ste utiliza un pseudolenguaje muy parecido a
nuestro idioma, pero respeta las directrices y los elementos de los lenguajes de
programacin.
Para escribir un algoritmo bajo la forma de pseudocdigo algunas normas a
considerar son:
1. Siempre se le coloca un nombre al algoritmo de manera que sea lo primero
que se lea. Es conveniente acostumbrarse a que dicho nombre no supere
los ocho caracteres y preferiblemente que su nombre haga una referencia
aproximada a lo que contiene.
2. Luego de colocado el nombre del seudocdigo se debe declarar las
variables con las cuales se va a trabajar durante el programa. Todas las
variables que vayan a ser utilizadas deben ser declaradas. Declararlas
significa escribir el tipo de dato que van a almacenar y el nombre que
dichas variables van a llevar (datos de tipo numrico, lgicos o de caracter)
3. Todo el cuerpo del algoritmo debe estar entre las palabras Inicio y Fin
indicando en donde se comienza y en donde se termina el pseudocdigo.
4. Si se quiere que salga un ttulo en la pantalla todo lo que tiene que hacer es
utilizar la orden Escriba y a continuacin colocar entre comillas dobles lo
que se quiere que salga en pantalla. Si se quiere que salga en pantalla el
contenido de una variable entonces se utiliza la orden Escriba y a
continuacin y sin comillas dobles el nombre de la variable que quiere
escribir. Si se quiere que en pantalla salga un ttulo y a continuacin salga
el contenido de la variable entonces se coloca el ttulo entre comillas dobles
y, luego de haberlas cerrado, se coloca el nombre de la variable que usted
quiere escribir al lado del ttulo. Si quiere mostrar en pantalla el contenido
de varias variables entonces simplemente se da la orden Escriba y

separadas por comas puede escribir los nombres de las variables que se
quiere escribir.
5. Cuando usted vaya a leer un dato para que sea almacenado en una
variable determinada utilice la orden Lea. Para no tener que escribir (por
ejemplo) Lea un dato entero y gurdelo en la variable N que tambin es
entera, recuerde solo tiene que escribir Lea N y el computador lo entender
correctamente. Cuando necesite leer ms de un dato para ser almacenado
en diferentes variables todo lo que tiene que hacer es utilizar la orden Lea y
escribir las variables separadas por comas. No necesariamente cuando se
lean dos o mas variables utilizando una sola orden Lea, stas deben ser del
mismo tipo.
6. Cuando necesite tomar una decisin deber utilizar la orden Si, a
continuacin escriba la condicin correspondiente y luego las instrucciones
que se han de realizar en caso de que la condicin sea Verdadera. En caso
de que la condicin sea Falsa y tenga instrucciones a realizarse cuando as
sea entonces deber existir una alternativa Si_no. Al finalizar toda la
decisin deber existir un indicador Fin_Si.
7. Se utilizar como estructura de ciclo bsica la siguiente:
Mientras Haga

Cuerpo del ciclo

Fin_Mientras
En el Cuerpo del Ciclo se colocan las ordenes que se van a repetir (o iterar)
mientras la condicin sea Verdadera.
8. Cada que usted vaya a utilizar un conjunto de instrucciones deber indicar
claramente en donde comienza ese conjunto de instrucciones y en donde
termina utilizando apropiadamente las palabras Inicio y Fin.

Ejemplo 3
Disear un algoritmo que lea cuatro nmeros y calcule e imprima su producto,
suma y media aritmtica.
Anlisis.
Entrada: numero1, numero2, numero3 y numero4.
Salida: producto, suma y media.
Proceso: multiplicar y sumar los cuatro nmeros. El resultado de la suma de los
cuatro nmeros se divide en 4 para obtener la media aritmtica.
Pseudocodigo.
inicio
leer numero1, numero2, numero3, numero4
producto numero1 * numero2 * numero3 * numero4
suma numero1 + numero2 + numero3 + numero4
media (numero1 + numero2 + numero3 + numero4) / 4
escribir producto, suma, media
fin
Ejemplo 4.
Un corredor de maratn ha recorrido la carrera en 2 horas 25 minutos. Hacer un
algoritmo que calcule el tiempo medio en minutos por kilmetros. La distancia es
de 42195 km.
Anlisis.
Entrada: cantidad total de tiempo empleado en la carrera; se establece el nmero
total de kilmetros en 42195.
Salida: nmero medio de minutos por kilmetro, transformando previamente el
tiempo total a minutos.

Proceso: dividir el tiempo total en minutos por el nmero de kilmetros.


Pseudocodigo.
Inicio
leer tiempo
Verificar entrada correcta
distancia 42195
minutos 2 * 60 +25
medio minutos / distancia
escribir tiempo_medio
fin.
Ventajas de los pseudocdigos.

Ocupa menos espacio en una hoja de papel

Permite representar en forma fcil operaciones repetitivas


complejas

Es muy fcil pasar de Pseudocdigo a un programa en algn


lenguaje de programacin.

Si se siguen las reglas se puede observar claramente los niveles


que tiene cada operacin.

En su uso, en la planificacin de un programa, el programador se


puede concentrar en la lgica y en las estructuras de control y no
preocuparse de las reglas de un lenguaje especfico.

Es fcil modificar el pseudocodigo si se descubren errores o


anomalas en la lgica del programa, mientras que en muchas
ocasiones suele ser difcil el camino en la lgica, una vez que
esta codificado en un lenguaje de programacin.

Permite expresar la solucin algortmica a un problema en


nuestro propio lenguaje y casi con nuestras propias reglas

Si el programador es ordenado, esta puede llegar a ser la tcnica


ms entendible.

Desventajas de los pseudocdigos.

Exige mucho orden para ser utilizada eficientemente.

Exige el mantenimiento claro de los conceptos de algoritmos


como tales.

Las decisiones deben estar encasilladas dentro de los alcances


de los operadores lgicos.

Actividad leccin 2.
1.

Realice los pseudocodigos correspondientes de la leccin 1. Si usted cree


conveniente realice su respectivo anlisis.

Unidad 4: Representacin grfica de un Algoritmo.


Para representar un algoritmo se debe utilizar algn mtodo que permita
independizar dicho algoritmo del lenguaje de programacin elegido. Para poder
conseguir que un algoritmo pueda ser codificado indistintamente en cualquier
lenguaje se precisa que el algoritmo sea representado grfica o numricamente,
de modo que las sucesivas acciones no dependan de la sintaxis de ningn
lenguaje de programacin, sino que la descripcin pueda servir fcilmente para la
transformacin en un programa (su codificacin).
Los mtodos usuales a parte del pseudocodigo visto en la unidad anterior son:
diagramas de flujo, diagrama N-S (Nassi-Schneiderman), entre otros.
Leccin 1. Diagramas de flujo.
Un diagrama de flujo es una tcnica de representacin grfica de un algoritmo.
Esta representacin grfica es un diagrama que utiliza smbolos (cajas) estndar y
en cada una de ellas estn los pasos de un algoritmo. Estas cajas se unen por
flechas, denominadas lneas de flujo, e indican la secuencia en que se deben
ejecutar dichos pasos.
Simbologa.
Los smbolos estndar utilizados han sido normalizados por el instituto
norteamericano de normalizacin (ANSI). Los smbolos principales se encuentran
en la tabla 4 y los secundarios en la tabla 5.
Tabla 4. Smbolos principales de los diagramas de flujo.

Smbolos
principales

Nombre

Funcin
Indica el inicio y el final de un programa.

Terminal.

Puede representar tambin una parada o


interrupcin programada que se necesario
realizar en el programa.
Indica cualquier tipo de informacin de
introduccin de datos en la memoria desde

Entrada/Salida.

los

perifricos

el

registro

de

la

informacin procesada en un perifrico. Es


decir, la entrada o salida de informacin.
Indica la asignacin de un valor en la
memoria,
Proceso

es

decir

cualquier

tipo

de

operacin que pueda originar un cambio


de

valor,

informacin

formato

posicin

almacenada

en

de

la

memoria,

operaciones, entre otras.


Indica la realizacin de comparaciones
entre datos (generalmente son dos) u
no
si

Decisin.

operaciones lgicas. Normalmente tiene


dos salidas SI o NO, pero puede tener tres
o ms segn sean los casos.
Indica el resultado de una comparacin

Decisin mltiple.

siguiendo uno de los diferentes caminos


de acuerdo con dicho resultado.
Indica el enlazamiento de dos partes
cualesquiera de un diagrama a travs de

Conector.

un conector en la salida y otro en la


entrada. Se refiere a la conexin en la

Direccin o lnea

misma pgina del diagrama.


Indica la direccin o sentido de ejecucin

Smbolos
principales

Nombre

Funcin

de flujo.

de las operaciones.

Lnea que conecta.

Conector.

Indica la unin entre dos smbolos.


Indica la conexin entre dos puntos del
diagrama situado en pginas diferentes.
Indica una subrutina, es decir es un

Subprograma o
proceso
predeterminado.

mdulo

independiente

principal,

que

recibe

del
una

programa
entrada

procedente de dicho programa, realiza una


tarea determinada y regresa, al terminar, el
programa principal.

Tabla 5. Smbolos secundarios de los diagramas de flujo.


Smbolos
secundarios

Nombre
Pantalla.

Impresora.

Teclado.

Disco
magntico.
Comentarios.

Funcin
Se utiliza en ocasiones reemplazando el smbolo
de Entrada/Salida.
Se utiliza en ocasiones reemplazando el smbolo
de Entrada/Salida.
Se utiliza en ocasiones reemplazando el smbolo
de Entrada/Salida.
Se utiliza en ocasiones reemplazando el smbolo
de Entrada/Salida.
Se usa para aadir comentarios clasificadores a
otros smbolos del diagrama de flujo. Se pueden
dibujar a cualquier lado del smbolo.

Cada smbolo representa el tipo de operacin a ejecutar y el diagrama de flujo


ilustra grficamente la secuencia en las que se ejecutan las operaciones. Los
smbolos ms usados en los diagramas de flujo son:

Decisin

Entrada/Salid
a

Terminal

no

si

Subprograma

Proceso

Conecto
r

Conector

Figura 7. Smbolos ms usados en los diagramas de flujo.


Ejemplo 1.
Representar por medio de un diagrama de flujo lo siguiente:

Disear un algoritmo que lea cuatro nmeros y calcule e imprima


su producto, suma y media aritmtica.

Inicio.

Numero1, numero2,
numero3, numero 4.

producto numero1 * numero2 *


numero3 * numero4

suma numero1 + numero2 +


numero3 + numero4

media suma / 4

producto, suma, media

Fin.

Figura 8. Ejemplo 1 representado por medio de un diagrama de flujo.


No existen normas fijas para la elaboracin de los diagramas de flujo que permitan
incluir todos los detalles que el usuario desee introducir. Pueden existir diferentes
diagramas de flujo como tcnica para el diseo de un algoritmo, pues lo
importante es llegar el objetivo propuesto.
En resumen, en un diagrama de flujo:

Existe una caja etiquetada inicio, que es de tipo elptico.

Existe otra caja etiquetada fin de tipo elptico.

Si existen otras cajas, generalmente son rectangulares, o tipo


rombo, o paralelogramo.

Generalmente el resto de las figuras se usan solo en diagramas


de flujo generales o de detalle y no siempre son imprescindibles.

Se puede escribir ms de un paso del algoritmo en una sola caja


rectangular. El uso de las flechas indica que la caja no necesita
ser escrita debajo de su antecesor. Sin embargo, abusar
demasiado de esta flexibilidad conduce a diagramas de flujo
complicados y confusos.

Las recomendaciones para la elaboracin de un diagrama de flujo son:

Se escribe de arriba hacia abajo y de izquierda a derecha

Siempre se usan flechas verticales u horizontales, jams curvas

Se debe evitar cruce de flujos, para no tener complicaciones a la


hora de entenderlos.

Ventajas de los diagramas de flujo.

Permite una rpida comprensin de las relaciones.

Se evidencia un anlisis efectivo de las diferentes secciones del


programa.

Pueden usarse como modelos de trabajo en el diseo de nuevos


programas o sistemas.

Documenta y codifica eficaz y adecuadamente los programas

Permite la depuracin y pruebas ordenadas de programas.

Permite visualizar grficamente el camino que sigue la solucin a


un problema.

Por ser tan simplificado es muy entendible.

No se necesitan muchos conocimientos tcnicos para utilizar este


mtodo.

Desventajas de los diagramas de flujo.

Cuando los diagramas son complejos y detallados suelen ser


laboriosos en su planteamiento y diseo

Acciones a seguir tras la salida de un smbolo de decisin,


pueden ser difciles de seguir si existen diferentes caminos.

Dado que los flujos (representados con flechas) pueden ir de


cualquier lugar a cualquier lugar da espacio para que el diagrama
no se llegue a entender.

Deben conocerse bien los smbolos que se van a utilizar pues no


todos los smbolos estn estandarizados

Los ciclos deben ser reinterpretados para poder ser diagramados


en esta tcnica

Algunas veces la analoga entre el diagrama y la codificacin en


el Lenguaje de Programacin resulta ser compleja.

Es lento de crear y difcil de modificar sin un nuevo dibujo.

Ejemplo 2.
Un corredor de maratn ha recorrido la carrera en 2 horas 25 minutos. Hacer un
algoritmo que calcule el tiempo medio en minutos por kilmetros. La distancia es
de 42195 km.
Solucin.
En la unidad anterior se vio la solucin a este mismo problema representando por
medio de un pseudocodigo. Ahora vea el diagrama de flujo.

inicio

leer
Tiempo

no
Tiempo
<=0
si
Escribir
mensaje de
error

distancia 42195

minutos 2 * 60 +25

medio minutos / distancia

Escribir medio

Fin

Figura 9. Ejemplo 2 representado por medio de un diagrama de flujo.


Leccin 2. Diagramas Nassi-Schneiderman. N-S
El diagrama N-S tambin, conocido como diagrama de Chapn o diagramas
rectangulares estructurados, es un diagrama que usa flechas y sus cajas son
contiguas. Estas cajas se leern de arriba-abajo y sus estructuras lgicas son las
siguientes:
Tabla 6. Estructuras lgicas de los diagramas N-.S.
Estructura lgica

Descripcin.
Representa secuencias de
instrucciones se coloca cada
instruccin en una lnea enmarcada.

condicin
si

no

Decisin.

acciones

acciones

En caso que variable =


1
otro
A
c
c
i

2
A
c
c
i

A
c
c
i

Decisin mltiple.

Mientras.

Mientras (expresin lgica) hacer

Acciones

Acciones

Repeticin.

Repetir hasta que (condicin)

Son una herramienta que favorece la programacin estructurada y rene


caractersticas grficas propias de diagramas de flujo y lingsticas propias de
pseudocdigos.
Siguiendo con el ejemplo de disear un algoritmo que lea cuatro nmeros y
calcule e imprima su producto, suma y media aritmtica que ya se ha
representado promedio de pseudocodigos y diagrama de flujo, por diagramas N-S
se tiene que:

Figura 10. Ejemplo 1 representado por medio de un diagrama N-S.


Ejemplo 3.

Hacer un algoritmo que escriba si un nmero es igual o diferente de 10.


Solucin.
Inicio
Leer numero
Numero=10

si
Escribir numero
= 10

no
Escribir numero
10

Fin

Figura 11. Ejemplo representado por medio de un diagrama N-S.


Ventajas de los diagramas N-S

Permite tener un marco referencial concreto y definido para la


representacin de los algoritmos.

Solo tiene tres esquemas principales que permiten a su vez


representar las tres estructuras bsicas (secuencia, decisin y
ciclo).

Exige orden en la representacin de un algoritmo.

Es muy entendible y no se presentan ambigedades.

La analoga entre la codificacin y el diagrama normalmente es


directa y por lo tanto muy sencilla.

Desventajas de los diagramas N-S

Exige una fundamentacin tcnica que permita representar la


solucin a cualquier problema a travs de las tres estructuras
bsicas.

No es una tcnica muy popularizada.

Actividad unidad 4.
Represente cada algoritmo por medio de un pseudocodigo, un diagrama de flujo y
un diagrama N-S para encontrar la solucin de los problemas mencionados en los
tems posteriores. Recuerde que debe utilizar todo lo visto en este modulo
particularmente las tcnicas de resolucin de problemas para encontrar mas
eficazmente su solucin.
1. Ir de la casa al trabajo.
2. Que permita elegir el deporte favorito tome como opcin: ftbol, natacin,
voleibol, baloncesto, ninguno de los anteriores o no le gusta el deporte.
3. Escribir un algoritmo que lea un nombre de una marca de carros seguida
del nombre de u modelo correspondiente e informe del modelo seguido del
nombre.
4. Sumar todos los nmeros pares comprendidos entre 2 y 100.
5. Encontrar el total de nmeros 0 que ingresa el usuario. Por ejemplo si el
usuario ingresa los nmeros: 2 9 5 3 0 0 7 0 5 0 2 0 se debe realizar un
algoritmo que diga que hay cinco 0 ingresados.
6. Dados tres nmeros, determinar si la suma de cualquier pareja de ellos es
igual al tercer nmero. Si se cumple esta condicin el programa debe
escribir que son iguales y en caso contrario escribir que son diferentes.
7. Definir el algoritmo necesario para intercambiar los valores de dos variables
numricas.
8. Calcular el rea de un tringulo dado la base y la altura.
9. Dado una cantidad en metros, convertirlo a pies y a pulgadas (1 metro =
39.37, 1 pie = 12 pulgadas)
10. Calcular el permetro de una figura poligonal dados los lados del polgono.

Realice las representaciones por medio de diagramas de flujo o diagramas N-S de


los algoritmos propuestos en los ejercicios de las unidades anteriores y presente
un informe con las conclusiones a su docente tutor.

También podría gustarte