You are on page 1of 23

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONOMICAS


DEPARTAMENTO DE COMPUTACION
COMPUTACIÓN I
UNIDAD II
GUIA DE CLASE #: 3

Introducción al Diseño de algoritmos”


Contenido
1. Introducción al diseño de algoritmos ....................................................................................... 1
1.1. Análisis del problema. ............................................................................................................... 1
1.1.1. Concepto de algoritmo. .............................................................................................. 1
1.1.2. Etapas del análisis del problema ................................................................................ 2
1.2. Tipos de algoritmos. .......................................................................................................... 6
1.2.1. Características, partes estructuras de Control de un algoritmo. ..................................... 7
1.2.2. Ejemplos de algoritmos narrados. .................................................................................. 7
1.2.3. Algoritmo narrado o pseudocódigo: ............................................................................... 8
1.2.4. Diagramas de flujo o flujogramas. ................................................................................. 9
1.2.5. Variables, constantes y expresiones aritméticas. ......................................................... 12
2. Estructuras de secuencia......................................................................................................... 15
2.1. Ejemplo de estructuras de secuencia ............................................................................... 16
3. Prueba de escritorio(tabla de seguimiento) ............................................................................ 17
4. Interprete. ............................................................................................................................... 18
5. Referencias Bibliográficas ..................................................................................................... 21
1. Introducción al diseño de algoritmos

La destreza para solucionar problemas es una habilidad de pensamiento de orden superior


necesaria, para que los profesionales de cualquier área puedan tener éxito en el mundo digital;
por esta razón, se requiere seleccionar estrategias efectivas para ayudar a que los futuros
profesionales la desarrollen. Para atender esta necesidad, la programación de computadores
constituye una buena alternativa, siempre y cuando se la enfoque al logro de esta destreza y no a
la formación de programadores.

En un artículo publicado por Ana Torres Menárguez en el periódico digital Elpais.com (2016)
sobre la forma de pensar de Ali Partovi cofundador de Code.org sobre la importancia que tiene el
desarrollo de la habilidad de programación donde él pone como ejemplo la Universidad de
Stanford afirmando que: “de los 65 grados que ofrece, al menos en la mitad se requieren
conocimientos de programación. Recientemente, han lanzado 14 nuevos grados que fusionan
humanidades (historia, literatura…) con Ciencias de la Computación. La universidad asegura en
su web que esta especialidad prepara a los estudiantes para trabajar en el Gobierno, en al ámbito
académico, empresarial o en la abogacía. Hoy el 90% de sus alumnos toman clases de
programación. Hay que saber cómo funcionan las máquinas que nos rodean por todas partes”,
añade Partovi.

El objetivo de esta unidad es que los estudiantes universitarios comprendan importancia de


desarrollar la habilidad de programación por medio del conocimiento y dominio de una
estrategia para diseñar una solución a un problema planteado.

Por consiguiente, se conocerán los conceptos básicos relacionados al diseño de algoritmos y se


desarrollará una serie de soluciones a problemas planteados utilizando una estrategia para el
análisis del problema y la implementación de la solución utilizando las diferentes estructuras de
un algoritmo: Estructuras de secuencia, de decisión e iterativas.

CICLO I-2019 Página 1 de 23


1.1. Análisis del problema.

Una de las acepciones que trae el Diccionario de Real Academia de la


Lengua Española (RAE) respecto a la palabra Problema es
“Planteamiento de una situación cuya respuesta desconocida debe
obtenerse a través de métodos científicos”. Con miras a lograr esa
respuesta, un problema se puede definir como una situación en la cual
se trata de alcanzar una meta y para lograrlo se deben hallar y utilizar
unos medios y unas estrategias.
La mayoría de problemas tienen algunos elementos en común: un estado inicial; una meta o un
estado final, lo que se pretende lograr; un conjunto de recursos, lo que está permitido hacer y/o
utilizar; y un dominio, el estado actual de conocimientos, habilidades y energía de quien va a
resolverlo (Moursund, 1999).

Cada disciplina dispone de estrategias específicas para resolver problemas de su ámbito; por
ejemplo, resolver problemas matemáticos implica utilizar estrategias propias de las matemáticas.
Sin embargo, algunos psicólogos opinan que es posible utilizar con éxito estrategias generales,
útiles para resolver problemas en muchas áreas.
El presente curso detalla la estrategia de resolver problemas utilizando el diseño de algoritmos.

1.1.1. Concepto de algoritmo.

Un algoritmo consiste en aplicar adecuadamente una serie de pasos detallados que aseguran una
Solución correcta. Por lo general, cada algoritmo es específico de un dominio del conocimiento.
La programación de computadores se apoya en este método.

Numerosos autores de libros sobre programación, plantean cuatro fases para elaborar un
procedimiento que realice una tarea específica.

CICLO I-2019 Página 1 de 23


Estas fases concuerdan con las operaciones mentales descritas por Polya (1957) para resolver
problemas:

1. Analizar el problema (Entender el problema)


2. Diseñar un algoritmo (Trazar un plan)
3. Traducir el algoritmo a un lenguaje de programación
(Ejecutar el plan)
4. Depurar el programa (Revisar)

1.1.2. Etapas del análisis del problema

CICLO I-2019 Página 2 de 23


1.1.2.1. Formular el problema.

La solución de un problema debe iniciar por determinar y comprender exactamente en qué


consiste ese problema, es decir definir y expresar el problema de forma clara y precisa en un
enunciado.
La formulación del problema se describe a partir de la situación actual o real plateada.
La comprensión lingüística del problema (entender el significado de cada enunciado) es muy
importante para poder responder preguntas como:
• ¿Puedo definir mejor el problema?
• ¿Qué palabras del problema me son desconocidas?
• ¿Cuáles son las palabras clave del problema?
• ¿He resuelto antes algún problema similar?
• ¿Qué información es importante?
• ¿Qué información puedo omitir?

Ejemplo de formulación de un problema:

Se requiere determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas
extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el
resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no
exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan
las horas normales y el resto al triple.

1.1.2.2. Precisar los resultados esperados

Para establecer los resultados que se esperan (estado final) es necesario identificar la información
relevante, ignorar los detalles sin importancia, entender los elementos del problema y activar el
esquema correcto que permita comprenderlo en su totalidad (Woolfolk, 1999).

Determinar con claridad cuál es el resultado final (producto) que debe devolver el programa es
algo que ayuda a establecer la meta. Es necesario analizar qué resultados se solicitan y qué
formato deben tener esos resultados (impresos, en pantalla, diagramación, orden, etc).

CICLO I-2019 Página 3 de 23


1.1.2.3. Identificar datos disponibles

Otro aspecto muy importante en la etapa de análisis del problema consiste en determinar cuál es
la información disponible, por lo que debemos preguntarnos en esta etapa:
 ¿Qué información es importante?
 ¿Qué información no es relevante?
 ¿Cuáles son los datos de entrada? (conocidos)
 ¿Cuál es la incógnita?
 ¿Qué información me falta para resolver el problema? (datos desconocidos)
 ¿Puedo agrupar los datos en categorías?

1.1.2.4.Determinar las restricciones

Resulta fundamental que los estudiantes determinen aquello que está permitido o prohibido hacer
y/o utilizar para llegar a una solución. En este punto se deben exponer las necesidades y
restricciones (no una propuesta de solución). El estudiante debe preguntarse:
• ¿Qué condiciones me plantea el problema?
• ¿Qué está prohibido hacer y/o utilizar?
• ¿Qué está permitido hacer y/o utilizar?
• ¿Cuáles datos puedo considerar fijos (constantes) para simplificar el problema?
• ¿Cuáles datos son variables?
• ¿Cuáles datos debo calcular?

1.1.2.5. Establecer procesos.

Consiste en determinar los procesos que permiten llegar a los resultados esperados a partir de
los datos disponibles. Se debe preguntar:
• ¿Qué procesos necesito?
• ¿Qué fórmulas debo emplear?
• ¿Cómo afectan las condiciones a los procesos?
• ¿Qué debo hacer?
• ¿Cuál es el orden de lo que debo hacer?

CICLO I-2019 Página 4 de 23


En la medida de lo posible, es aconsejable dividir el problema original en otros más pequeños y
fáciles de solucionar (submetas), hasta que los pasos para alcanzarlas se puedan determinar con
bastante precisión (módulos). Esto es lo que en programación se
denomina diseño descendente o top-down (Joyanes, 2001).

El diseño descendente se utiliza en la programación estructurada de computadores debido a que


facilita:
• La comprensión del problema
• Las modificaciones en los módulos
• La verificación de la solución

Al realizar divisiones sucesivas del problema en otros más pequeños y manejables (módulos),
hay que tener cuidado para no perder de vista la comprensión de este como un todo. Luego de
dividir el problema original en submetas (módulos), debe integrar cada parte de tal forma que le
permita comprender el problema como un todo (Woolfolk, 1999).

1.1.2.6. Método de la caja negra para solucionar problemas (análisis del problema).

Ejemplo No.1

I. Formulación del problema:

Dada la base y la altura de un triángulo rectángulo, se requiere hallar el área del triángulo
rectángulo.

II. Planteamiento del problema:

Entrada de datos Salida de datos

Área del
Base
triángulo
Proceso rectángulo
Altura

III. Definición de variables de salida (Resultados)


CICLO I-2019 Página 5 de 23
Nombre Tipo Descripción
Área Real Área de un triángulo rectángulo

IV. Definición de variables de entrada (datos disponibles)

Nombre Tipo Descripción


Base Real Base de un triángulo rectángulo
Altura Real Altura de un triángulo rectángulo

VI. Restricciones: la base y la altura debe ser un número real mayor a 0

Base >0
Altura>0

VII. procesos:

El área de un triángulo rectángulo es igual a multiplicar la base por la altura y luego dividir el
resultado entre 2:
Área = Base x Altura /2

VIII. Variables de proceso.


No hay variables de proceso.

1.2. Tipos de algoritmos.

Luego de analizar detalladamente el problema hasta entenderlo completamente, se procede a


diseñar un algoritmo (trazar un plan) que lo resuelva por medio de pasos sucesivos y organizados
en secuencia lógica y cronológica. El concepto intuitivo de algoritmo (procedimientos y reglas)
se puede encontrar en procesos naturales de los cuales muchas veces no se es consciente. Por
ejemplo, el proceso digestivo es un concepto intuitivo de algoritmo con el que se convive a
diario sin que haga falta una definición “matemática” del mismo.

En el ámbito de la computación, los Algoritmos son una herramienta que permite describir
claramente un conjunto finito de instrucciones, ordenadas secuencialmente y libres de
ambigüedad, que debe llevar a cabo un computador para lograr un resultado previsible. Vale la
pena recordar que un programa de computador consiste de una serie de instrucciones muy
precisas y escritas en un lenguaje de programación que el computador entiende (Logo, Java,
Pascal, etc.).

En resumen, un Algoritmo es una secuencia ordenada de instrucciones, pasos o procesos que


llevan a la solución de un determinado problema. Los hay tan sencillos y cotidianos como seguir
la receta del médico, abrir una puerta, lavarse las manos, etc.; hasta los que conducen a la
solución de problemas muy complejos.

CICLO I-2019 Página 6 de 23


1.2.1. Características, partes estructuras de Control de un algoritmo.

a.) Características:
 Tener un principio
 Ser simples, claros, precisos, exactos.
 Tener un orden lógico.
 Debe ser finito.
 Tener un fin.

b) La definición de un algoritmo debe describir tres partes:


 Entrada.
 Proceso.
 Salida

c) Estructuras de control de un algoritmo:


Un Algoritmo está compuesto por instrucciones de diferentes tipos, organizadas secuencialmente,
en forma de estructuras de control. De estas estructuras, las más comunes y que se cubren en esta
guía son las siguientes:
 Secuencial.
 Condicional (decisión, selección).
 Iterativa (repetición).

1.2.2. Ejemplos de algoritmos narrados.

EJEMPLO No 1 DE ALGORITMO NARRADO


Un procedimiento que realizamos varias veces al día consiste en lavarnos los dientes. Veamos la
forma de expresar este procedimiento como un Algoritmo:
1. Tomar la crema dental
2. Destapar la crema dental
3. Tomar el cepillo de dientes
4. Aplicar crema dental al cepillo
5. Tapar la crema dental
6. Abrir la llave del lavamanos
7. Remojar el cepillo con la crema dental
8. Cerrar la llave del lavamanos
9. Frotar los dientes con el cepillo
10. Abrir la llave del lavamanos
11. Enjuagarse la boca
12. Enjuagar el cepillo
13. Cerrar la llave del lavamanos
14. Secarse la cara y las manos con una toalla

CICLO I-2019 Página 7 de 23


EJEMPLO No.2 ALGORITMO NARRADO.

El ejemplo de cambiar una bombilla (foco) fundida es uno de los más utilizados por su sencillez
para mostrar los pasos de un Algoritmo:
1. Ubicar una escalera debajo de la bombilla fundida
2. Tomar una bombilla nueva
3. Subir por la escalera
4. Girar la bombilla fundida hacia la izquierda hasta soltarla
5. Enroscar la bombilla nueva en el plafón hasta apretarla
6. Bajar de la escalera
7. Fin

Según la forma o el método en que se representan los algoritmos se pueden clasificar en


diferentes tipos. En este curso utilizaremos dos tipos de representación de un algoritmo:
1. Pseudocódigo.
2. Diagramas de flujo de datos.

1.2.3. Algoritmo narrado o pseudocódigo:

Es la técnica que permite expresar la solución de un problema mediante un algoritmo escrito en


palabras normales de un idioma (por ejemplo, el español), utilizando palabras imperativas. Es
común encontrar en pseudocódigo palabras como: Inicie, lea, imprima, sume, divida, calcule,
finalice. No hay un léxico obligado para el pseudocódigo, pero con el uso frecuente se han
establecido algunos estándares.

EJEMPLO DE SEUDOCÓDIGO
Elaborar un Algoritmo para calcular el área de cualquier triángulo rectángulo y presentar el
resultado en pantalla.

SEUDOCÓDIGO
Paso 1: INICIO
Paso 2: Definir base, altura como real
Paso 3: LEER la base del triángulo y guardarla en la variable "base"
Paso 4: LEER la altura del triángulo y guardarla en la variable "altura"
Paso 5: GUARDAR en la variable "Área" el valor de multiplicar "base" por "altura"
Paso 6: IMPRIMIR el valor de la variable "área"
Paso 7: FIN

Por lo regular, los algoritmos se escriben por refinamiento: se escribe una primera versión que
luego se descompone en varios subproblemas (el número depende de la complejidad el problema)
independientes entre sí. Si es necesario se va refinando cada vez las instrucciones hasta que las
proposiciones generales en español como las del ejemplo anterior se puedan codificar en el
lenguaje seleccionado para hacer la programación.

CICLO I-2019 Página 8 de 23


1.2.4. Diagramas de flujo o flujogramas.

Definición de un diagrama de flujo:


Un diagrama de flujo representa la esquematización gráfica de un algoritmo, por medio del cual
se muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema.

La correcta construcción del diagrama de flujo es sumamente importante porque, a partir del
mismo se escribe un programa en algún lenguaje de programación.
Si el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de
programación es relativamente simple y directo.

1.2.4.1. Simbología de los diagramas de flujo

La estandarización de los símbolos para la elaboración de Diagramas de Flujo tardó varios años.
Con el fin de evitar la utilización de símbolos diferentes para representar procesos iguales, la
Organización Internacional para la Estandarización (ISO, por su sigla en inglés) y el Instituto
Nacional Americano de Estandarización (ANSI, por su sigla en inglés), estandarizaron los
símbolos que mayor aceptación tenían en 1985. Los siguientes son los principales símbolos para
elaborar Diagramas de Flujo:

SIMBOLO DESCRIPCION
Inicio/Final
Se utiliza para indicar el inicio y el final de un diagrama; del Inicio
sólo puede salir una línea de flujo y al Final sólo debe llegar una
línea.

Decisión
Indica la comparación de dos datos y dependiendo del resultado
lógico (falso o verdadero) se toma la decisión de seguir un camino
del diagrama u otro.

Símbolo utilizado para representar una decisión. En su interior se


almacena una condición y dependiendo del resultado de la evaluación
de la misma se sigue por una de las ramas o caminos alternativos:
verdadero o falso.
Entrada General

Entrada/Salida de datos en General.

Símbolo utilizado para introducir los datos de entrada. Expresa


lectura.

CICLO I-2019 Página 9 de 23


Entrada por teclado
Instrucción de entrada de datos por teclado. Indica que el computador
debe esperar a que el usuario teclee un dato que se guardará en una
variable o constante.

Salida Impresa
Indica la presentación de uno o varios resultados en forma impresa.

Salida en Pantalla
Instrucción de presentación de mensajes o resultados en pantalla.

Iteración ciclo for


Indica que una instrucción o grupo de instrucciones deben ejecutarse
varias veces.

Llamada a subrutina
Indica la llamada a una subrutina o procedimiento determinado.

Acción/Proceso General
Indica una acción o instrucción general que debe realizar el
computador (cambios de valores de variables, asignaciones,
operaciones aritméticas, etc.).

Conector
Indica el enlace de dos partes de un diagrama dentro de la misma
página.

Flujo
Indica el seguimiento lógico del diagrama. También indica el sentido
o dirección de ejecución de las operaciones.

Conector fuera de página


Indica el enlace de dos partes de un diagrama en páginas diferentes.

CICLO I-2019 Página 10 de 23


1.2.4.2. Reglas para la elaboración de diagramas de flujo.

Cuando el algoritmo se desea expresar en forma de diagrama de flujo, se deben tener en cuenta
algunas reglas o principios básicos para su elaboración (Rojas & Ñacato, 1980):
• Poner un encabezado que incluya un título que identifique la función del algoritmo; el nombre
del autor; y la fecha de elaboración;
• Sólo se pueden utilizar símbolos estándar (ISO 5807);
• Los diagramas se deben dibujar de arriba hacia abajo y de izquierda a derecha;
• La ejecución del programa siempre empieza en la parte superior del diagrama;
• Los símbolos de “Inicio” y “Final” deben aparecer solo una vez;
• La dirección del flujo se debe representar por medio de flechas (líneas de flujo);
• Todas las líneas de flujo deben llegar a un símbolo o a otra línea;
• Una línea de flujo recta nunca debe cruzar a otra.
• Se deben inicializar las variables que se utilicen o permitir la asignación de valores mediante
consulta al usuario;
• Las bifurcaciones y ciclos se deben dibujar procurando una cierta simetría;
• Cada rombo de decisión debe tener al menos dos líneas de salida (una para SI y otra para NO);
• Las acciones y decisiones se deben describir utilizando el menor número de palabras posible;
sin que resulten confusas o poco claras;
• Si el Diagrama se vuelve complejo y confuso, es mejor
utilizar símbolos conectores para reducir las líneas de flujo;
• Todo el Diagrama debe ser claro, ordenado y fácil de Inicio
recorrer;
• El Diagrama se debe probar recorriéndolo con datos iniciales
simples (prueba de escritorio). Definir base, altura, area
como real

Ejemplo de diagrama de flujo: base

Elaborar un diagrama de flujo para calcular el área de


cualquier triángulo rectángulo y presentar el resultado en
pantalla. altura

area = (base *altura)/2

“El área es”,


area

Fin

CICLO I-2019 Página 11 de 23


1.2.5. Variables, constantes y expresiones aritméticas.

1.2.5.1. Variables

Para poder utilizar algoritmos con diferentes conjuntos de datos iniciales, se debe establecer una
independencia clara entre los datos iniciales de un problema y la estructura de su solución. Esto
se logra mediante la utilización de Variables (cantidades que se suelen denotar con letras –
identificadores- y que pueden tomar cualquier valor de un intervalo de valores posibles).

En programación, las Variables son espacios de trabajo (contenedores) reservados para guardar
datos (valores).
El valor de una Variable puede cambiar en algún paso del Algoritmo o permanecer invariable;
por lo tanto, el valor que contiene una variable es el del último dato asignado.

Una variable se utiliza para representar un dato tipo entero, real (flotante), o una constante de
carácter. Por ejemplo:
Variable área es de tipo real
Variable i es de tipo entero,
Variable opción es de tipo carácter.

1.2.5.2. Constantes

Las Constantes consisten en datos que, luego de ser asignados, no cambian en ninguna
instrucción del Algoritmo. Pueden contener constantes matemáticas (pi) o generadas para
guardar valores fijos (3.8, "Jorge", etc.).
Existen tipos de constantes como tipos de datos, por lo tanto, puede haber constantes enteras,
reales (flotantes), de carácter, de cadenas de caracteres, booleanas, etc.

1.2.5.3. Reglas para Identificar variables, constantes y procedimientos.

En el proceso de definir los nombres que se dan a los elementos utilizados para resolver un
problema y poder diferenciar unos de otros, como son los nombres (identificadores) a variables,
constantes y procedimientos se debe tener en cuenta algunas reglas:
 Los nombres pueden estar formados por una combinación de letras y números (saldo Mes,
salario, fecha2, baseTriangulo, etc).
 El primer carácter de un nombre debe ser una letra.
 La mayoría de los lenguajes de programación diferencian las mayúsculas de las minúsculas.
 Los nombres deben ser nemotécnicos, con solo leerlos se puede entender lo que contienen.
Deben ser muy descriptivos; no utilizar abreviaturas, a menos que se justifique plenamente.
 Es conveniente utilizar una sola palabra para nombrar páginas, controles, variables, etc.
 No utilizar caracteres reservados (%, +, /, >, etc.). Se debe tener en cuenta que algunos
lenguajes de programación no admiten las tildes.
 No utilizar palabras reservadas por los lenguajes de programación.

CICLO I-2019 Página 12 de 23


 Para cumplir con convenciones ampliamente utilizadas (Jiménez, 2002), los nombres de
procedimientos, variables y constantes deben empezar con minúscula. Ejemplo, fecha, suma,
etc.
Si es un nombre compuesto por varias palabras, cada una de las palabras (con excepción de la
primera) debe empezar con mayúscula. Ejemplo: fechaInicial, baseTriangulo, etc.

1.2.5.4. Expresiones aritméticas.

Para poder realizar operaciones aritméticas necesitamos de operadores aritméticos.


Estos operadores nos permiten realizar operaciones aritméticas entre operandos: números,
constantes o variables. El resultado de una operación aritmética es un número.

Operado Precedencia o Operación Ejemplo Resultado


jerarquía del
operador
^ 1 Potencia 3^2 9
* 2 Multiplicación 5.25*3 15.75
/ 2 División 17/4 4.25
Mod 2 Módulo (residuo) 5 Mod 2 1
+ 3 Suma 58+79 137
- 3 Resta 25.96-11.25 14.71

1.2.5.4.1. Precedencia de los operadores aritméticos

Cuando hay varias operaciones en una misma expresión, cada parte de la misma se evalúa y se
resuelve en un orden determinado. Ese orden se conoce como prioridad de los operadores o
precedencia de los operadores.
Se pueden utilizar paréntesis para modificar el orden de prioridad y forzar la resolución de
algunas partes de una expresión antes que otras.
Las operaciones entre paréntesis son siempre ejecutadas antes que las que están fuera del
paréntesis. Sin embargo, dentro de los paréntesis se mantiene la prioridad normal de los
operadores.

Cuando hay multiplicación, división y Módulo en la misma expresión, cada operación es resuelta
a medida que aparece, de izquierda a derecha. Del mismo modo, cuando se presentan adiciones y
sustracciones en una misma expresión, cada operación es resuelta en el orden en que aparece, de
izquierda a derecha.

En resumen, al evaluar expresiones que contienen operadores aritméticos debemos respetar la


jerarquía en el orden de aplicación. Es decir, si tenemos en una expresión más de un operador,
debemos aplicar primero el operador de mayor jerarquía, resolver esa operación y así
sucesivamente.

CICLO I-2019 Página 13 de 23


Por ejemplo:
Dados los siguientes casos, resolver cada caso aplicando las reglas correspondientes:

a) 7 + 5 – 6 =6
b) 9 +7 * 8 – 36 / 5 =57.8
c) 7 * 5 ^ 3 / 4 mod 3 =2.75
d) (5 + 2) * (4 + 4) = 56
e) 7 + 3 * 2 + (2 - 1) = 14
f) 6 * 2 + 4 * 3 + 5 / 2 = 26,5
g) 5 + 1 * 4 / 2 * 7 - (8 + 2) = 9
h) 8 + (5 * 6) - 6 = 32
i) 9 + 5 * 3 = 24
j) 4 / 2 * (10 - 5) * 3 = 30

CICLO I-2019 Página 14 de 23


2. Estructuras de secuencia.

Una estructura se define como un esquema con cierta distribución y orden que permite
representar una idea de forma simplificada y que bajo ciertas condiciones es constante
(Trejos, 1999). La estructura de control secuencial es la más sencilla. También se la conoce
como estructura lineal. Se compone de instrucciones que deben ejecutarse en forma
consecutiva, una tras otra, siguiendo una línea de flujo. Solamente los problemas muy
sencillos pueden resolverse haciendo uso únicamente de esta estructura. Normalmente, la
estructura secuencial hace parte de soluciones a problemas complejos en las que se la utiliza
mezclada con estructuras iterativas (repetir varias veces un conjunto de instrucciones) y
condicionales (tomar decisiones).

Una estructura de control secuencial puede contener cualquiera de las siguientes


instrucciones:
• Declaración variable
• Asignación de valores
• Entrada de datos
• Procesamiento de datos.
• Reporte de resultados. (Salidas)

Inicio

Definir variables

Leer datos
(Entrada)

Procesos

Reporte de
resultados (salidas)

Fin

CICLO I-2019 Página 15 de 23


2.1. Ejemplo de estructuras de secuencia

Calcular e imprimir el sueldo de un empleado, se pedirá la clave del empleado, las horas
trabajadas y el pago por hora trabajada.

Algoritmo Calcular el sueldo de un empleado

1. Inicio
2. Declaración de variables:
idEmpleado: Caracter, ht: entero
pht, sueldo: real (flotante)
3. Leer idEmpleado, ht, pht
4. sueldo = ht * pht
5. Imprimir “El Sueldo de”, idEmpleado, “es”, sueldo
6. Fin

Inicio

Definir idEmpleado: Carácter,


Ht: Entero, pht, sueldo : real

idEmpleado,
ht, pht

sueldo= ht*pht

“El sueldo
de”,idEmpleado,
“es”, sueldo

Fin

CICLO I-2019 Página 16 de 23


3. Prueba de escritorio(tabla de seguimiento)

La prueba de escrito consiste en una tabla de seguimiento para comprobar la valides de cada una
de las instrucciones de la algoritmo.

Instrucción Variable1 Variable2 Variable n Salida


Instrucción 1
Instrucción 2
Instrucción 3
Instrucción n

Veamos el siguiente ejemplo

Algoritmo:

1. Inicio
2. Declaración de variables:
idEmpleado: Caracter, ht: entero
3. pht, sueldo: real (flotante)
4. Leer idEmpleado, ht, pht
5. sueldo = ht * pht
6. Imprimir “El Sueldo de”, idEmpleado, “es”, sueldo
7. Fin

Prueba de escritorio (tabla de seguimiento):

Instrucción IdEmpleado ht pht Sueldo Salida


Leer idEmpleado, ht, pht Lg202 160 10

sueldo = ht * pht 1600

Imprimir “El Sueldo de”, El sueldo de Lg202


idEmpleado, “es”, sueldo es 1600

CICLO I-2019 Página 17 de 23


4. Interprete.

Un intérprete es una aplicación que ejecuta directamente las instrucciones escritas en un lenguaje
de programación de alto nivel (Lenguaje más cercano al lenguaje humano o natural) y las
traduce al lenguaje de máquina para que el procesador pueda comprenderlas ( lenguaje binario).

Un lenguaje de programación es un lenguaje artificial utilizado para describir una secuencia de


instrucciones para ser procesadas por una computadora.
En este curso no utilizaremos un lenguaje de programación específico, pero si se utilizará un
intérprete para diseñar los algoritmos utilizando un lenguaje de alto nivel más cercano al
lenguaje humano.

Pseint.

PSeInt, es la abreviatura de Pseudocode Interprete, Intérprete de Pseudocódigo. Este programa


fue creado como proyecto final para la materia Programación 1 de la carrera Ingeniería en
Informática de la Facultad de Ingeniería y Ciencias Hídricas de la Universidad Nacional del
Litoral, del en aquel momento estudiante Pablo Novara(Castillo,2016).

Pseint es software libre, el cual puede ser descargado en el siguiente sitio:


http://pseint.sourceforge.net/

En el enlace anterior se encuentra la información necesaria para su instalación y uso.

CICLO I-2019 Página 18 de 23


Para iniciar y no tener problemas con la sintaxis (forma correcta de escribir las instrucciones) de
un pseudolenguaje específico, selecciones Opciones del lenguaje (perfiles) del menú configurar
y luego selecciona el perfil flexible

Ejemplo de instrucciones en el área de trabajo del intérprete:

Para ejecutar el algoritmo presiones F9 o dé clic en el botón ejecutar:

CICLO I-2019 Página 19 de 23


Se mostrará la ventana de ejecución donde puede introducir los valores que utilizado en la prueba
de escritorio o tabla de seguimiento:

CICLO I-2019 Página 20 de 23


5. Referencias Bibliográficas

Juan Carlos López García, ALGORITMOS Y PROGRAMACIÓN (GUÍA PARA DOCENTES)


SEGUNDA EDICIÓN, 2007, 2009., Recuperado de http://www.eduteka.org

SENA Producción, Fase de análisis, año 2012 edición 01, Lógica de programación: Recuperado
de:
https://senaintro.blackboard.com/bbcswebdav/pid-50036296-dt-content-rid-
993553_2/courses/CONTENIDO_MULTIMEDIA/FA%20Logica%20programacion.pdf

Rommel Castillo (2016). Programación con PSeIntPág. 1Programación en: PSeInt. Recuperado
de:
https://www.edu.xunta.gal/centros/iesvalleinclan/aulavirtual2/pluginfile.php/12875/mod_resourc
e/content/1/Manual%20PSeInt.pdf

CICLO I-2019 Página 21 de 23

You might also like