Está en la página 1de 33

Dra. Ing.

Rina Familia
Técnicas de Programación Aplicada

Algoritmos
Computacionales
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Contenido
Introducción a los algoritmos computacionales
Conceptos básicos……………………………………………………………… 4
Qué es un algoritmo?, características de un buen algoritmo, algoritmos
cualitativos y cuantitativos

Representación de un algoritmo……………………………………………… 5
Descripción Textual Secuencial Numerada
Pseudocódigo
Diagrama de Flujo…………………………………………………………….. 7
Simbología, tipos, reglas……………………………………………………. 8

Etapas básicas para la resolución de problemas…………………………. 12


Fase solución
Definición del problema
Análisis-dominio del problema
Esquema de solución E-P-S
Diseño y desarrollo del algoritmo
El algoritmo
Prueba de escritor
Fase de Implementación
Codificación
Compilación o interpretación del programa
Ejecución
Depuración
Documentación

Programa de computadora. Código…………………………………………… 15


Estructura de datos………………….…………………………..……………. 17

Clasificación de los datos…………………………………………………… 19


Alfanuméricas, numéricas, lógicas, variables y constantes

Expresiones, operadores y jerarquía de evaluación…………………… 20


Operadores aritméticos, relacionales y lógicos

Enfoques de programación……………………………………………...……… 22

Estructuras de control………………………………………………………………. 24
Secuencia, selección, repetición

Bibliografía………............……………..………..………….………………….. 32
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Introducción a los algoritmos


computacionales
En el contenido de la unidad 2 tratamos el tema de los softwares,
dentro de cuya clasificación se encuentran los lenguajes de
programación, herramientas utilizadas por los programadores Programador de
para codificar o crear sus programas computacionales, en los que computadoras o
indican al computador lo que debe hacer en cada momento. Pero el ingenieros de
software. Son
cómo son creados, las herramientas y técnicas utilizadas para especialistas en
hacerlo, son temas que trataremos en este contenido. la creación de
programas de
Esta unidad es muy importante, pues nos introduce a la resolución computadoras.
de problemas, con el objetivo de fomentar el pensamiento crítico y Crean los códigos
fuentes.
desarrollar una conciencia lógica que sirva de base para resolver
situaciones problemáticas proyectadas o presentadas, explicando y
aplicando algoritmos de computadora.

El computador, como hemos comentado anteriormente, viene a ser


una herramienta de propósito general, lo que quiere decir que
podemos utilizarla en cualquier área y que puede ayudarnos a
resolver todo tipo de problemas, siempre y cuando le sean dadas
las instrucciones (programa) que pueden ser descritas por medio
de algoritmos. Por lo general, diseñar un algoritmo es la parte que
antecede a la creación de un programa de computadora, con el
propósito precisamente de facilitar la programación o creación de
estos códigos. Su importancia es expresada por Luis Joyanes,
programador experto y escritor de muchos libros que versan sobre
la lógica y programación, cuando dice:

“Un lenguaje de programación es sólo un medio para


expresar un algoritmo y una computadora es sólo un
procesador para ejecutarlo”.

¿Qué es un algoritmo?
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

“un algoritmo (del griego y latin, dixit algorithmus y éste a su


vez del matemático persa Al Juarismi[1] ) es un conjunto
preescrito de instrucciones o reglas bien definidas,
ordenadas y finitas que permite realizar una actividad
mediante pasos sucesivos que no generen dudas a quien
deba realizar dicha actividad.[2] Dados un estado inicial y
una entrada, siguiendo los pasos sucesivos se llega a un
estado final y se obtiene una solución.”

(http://es.wikipedia.org/wiki/Algoritmo)

“(Quizá del lat. tardío *algobarismus, y este abrev. del ár.


clás. isābu lubār, cálculo mediante cifras arábigas). 1. m.
Conjunto ordenado y finito de operaciones que permite hallar
la solución de un problema.”.
(Real Academia Española)

Según estas definiciones, los algoritmos son entendidos como una


secuencia de pasos que deben llevar a la resolución de un
problema, de éstas, además, podemos obtener las características
que debe poseer todo buen algoritmo. Pero veamos las que se
listan según el científico de computación Donald Knuth, quien
ofreció un conjunto de cinco propiedades, las que son ampliamente
aceptadas como requisitos en un algoritmo:

1. Finito. Tiene fin; consta de un número


determinado de pasos.

2. Precisión. Cada paso de un algoritmo debe


estar precisamente definido; las operaciones a
llevar a cabo deben ser especificadas de manera
rigurosa y no ambigua para cada caso.

3. Entrada. Tiene cero o más entradas, cantidades


que le son dadas antes de que el algoritmo
comience, o dinámicamente mientras corre.

4. Salida. Tiene una o más salidas, cantidades que


se relacionan con las entradas.

5. Eficacia. Debe ser eficiente y efectivo. Se ha de


desarrollar en el menor tiempo posible.
Es muy importante que el algoritmo esté bien definido y sin
ambigüedades. Es decir, que al seguirlo o desarrollarlo dos veces,

Todo algoritmo
debe guardar
estas
características
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

el resultado obtenido sea el mismo cada vez, de lo contrario, el


algoritmo no es aceptado o no es de utilidad. Sin embargo, un
problema puede ser resuelto de distintas maneras, por lo que para
éste pueden crearse diferentes algoritmos, siendo siempre el mejor
y más eficiente el algoritmo más corto.

El algoritmo, también debe ser sencillo, legible, para que otras


personas puedan interpretarlo, aun cuando no intervengan en la
creación de éste, y puedan resolverlo al seguir las instrucciones en
el orden que establece. Por eso, también es importante que el
algoritmo sea lo más breve posible, sin que exceda las
instrucciones mínimas necesarias, ni supere las instrucciones
máximas requeridas, ni más ni menos, suficiente. La eficiencia del
algoritmo determina la rapidez y capacidad de tiempo de respuesta
del programa para el que ha sido creado.

Algoritmos cualitativos y algoritmos cuantitativos


Los algoritmos como herramienta para la solución de problemas,
son utilizados en diferentes áreas del saber, por lo que pueden ser
de tipo cualitativos o cuantitativos, dependiendo de la naturaleza
del problema. Un algoritmo es cualitativo cuando en sus pasos o
instrucciones no están involucrados cálculos numéricos. Las
instrucciones para armar un aeromodelo, para desarrollar una
actividad física, encontrar un tesoro o seguir una receta de cocina,
son ejemplos de algoritmos cualitativos.

Los algoritmos cuantitativos, por su parte, son aquellos que


involucran cálculos numéricos. Por ejemplo la solución de una
ecuación de segundo grado, encontrar el factorial o la raíz cuadrara
de un número, etc.

Representación de un algoritmo
Para escribir la solución de un problema no es conveniente utilizar
la redacción normal, como si fuera escribiendo una carta, donde se
instruye a hacer esto y aquello, ya que sería muy difícil que un
algoritmo escrito así pueda ser usado por alguien diferente de
quien lo escribe, debido a que estaría sujeto a la interpretación
personal, convirtiéndose esto en un gran problema, puesto que se
obtendrían resultados atendiendo a los puntos de vista de cada
quien, algo inaceptable en un algoritmo. De ahí que se utilicen
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

formatos estándares que han sido aceptados por la industria de la


computación, como los siguientes:

 Descripción textual secuencial numerada (escrita)


 Pseudocódigo. (escrita)
 Diagrama de flujo o flow chart, en ingles. (gráfica).

Estas formas de representar los algoritmos no son entendidas por


el computador, sólo son medios utilizados para expresar la solución
de un problema.

Descripción textual secuencial numerada


En esta forma los algoritmos se escriben utilizando sólo una parte
de un lenguaje natural, como el inglés o el español, donde se listan
los pasos o actividades que se ejecutarán para la resolución del
problema, siempre con una secuencia lógica y ordenada.

Ejemplo: Un cliente solicita préstamo a un banco. El ejecutivo


examina en su base de datos el historial crediticio del cliente, si el
cliente califica, entonces la solicitud es aprobada, en caso
contrario, es rechazada. Los pasos del algoritmo son:

1. Inicio
2. Leer datos del cliente
3. Analizar historial del cliente
4. Si el cliente califica, la solicitud es aprobada, en caso
contrario, es rechazada
5. Fin

Pseudocódigo
Esta forma de representar un algoritmo consiste en escribir una
lista ordenada de pasos que describe con precisión y en secuencia
lógica cada instrucción de la posible solución del problema, cuya
diferencia básica con la descripción textual secuencial numerada
es que tiene apariencia de código de programación, debido a que
mezcla el lenguaje natural (español o inglés, por ejemplo) con
comandos de lenguaje de programación y es precisamente por
eso que lleva el nombre de pseudocódigo: pseudo (falso), es decir
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Recuerda que los


lenguajes de
falso código, porque aunque integra comandos de programación, programación
no puede ser ejecutado por el computador. son usados por el
programador para
Algunas de las ventajas que ofrece el pseudocódigo es que comunicarse con
favorece la concentración del programador en la lógica y el el computador, a
través de
razonamiento, sin prestar atención a la sintaxis del lenguaje, ya que símbolos
es como escribir en el idioma hablado lo que quiere que suceda en convencionales.
el programa, así como también permite detectar errores lógicos en
una etapa temprana de la solución del problema, ahorrándose
perder el tiempo.

Ejemplo: Escribir algoritmo para la suma de dos números


cualesquiera.

Inicio
Suma=0
Escribir "Introduzca el primer valor: "; Leer a;
Escribir "Introduzca el segundo valor: "; Leer b;
Suma=a+b;
Escribir "El resultado de la suma es: ", Suma;
Fin

Diagrama de flujo
Flow chart, en ingles. Esta es la forma gráfica de representar un
algoritmo, indicando la manera en que se debe ir ejecutando cada La forma gráfica
es la más
instrucción a través de símbolos que se interconectan entre si por antigua y usada
medio de líneas y flechas. Los diagramas de flujo tienen ventajas para representar
sobre las anteriores formas, por el hecho de que pueden ser un algoritmo, tal
entendidos por cualquier persona, independientemente de su vez por lo que
idioma y de que sea o no del área de informática, de hecho, los dice el proverbio
chino de que
diagramas de flujo fueron desarrollados, inicialmente, para ser una imagen
aplicados en la administración de empresas en la representación (gráfico) dice
de procesos y procedimientos que se ejecutan en áreas como la más que mil
planificación estratégica, la elaboración de productos, ventas, entre palabras.
otras áreas dentro de las organizaciones. Sin embargo, su uso en
el desarrollo y creación de sistemas computacionales ha sido muy
destacado, además favorece la comprensión en el proceso para la
enseñanza-aprendizaje de creación y desarrollo de softwares,
razón por la que tal vez, es la forma más usada para representar la
solución de un problema.
El objetivo de los diagramas de flujo es facilitar la interpretación o
análisis de un proceso para encontrar la solución al problema más
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

fácilmente, sin embargo, los pseudocódigos pueden ser preferidos


en la representación de algoritmos complejos y extensos, debido al
poco espacio que se requiere para representar las instrucciones,
contario a los diagramas de flujo, que son usados mayormente en
algoritmos pequeños. Los símbolos que conforman los diagramas
de flujo son formas geométricas como cuadrados, rombos, círculos,
óvalos, etc., los que en ese contexto adquieren un significado ya
establecido de manera convencional por la ISO, y representan los
pasos que se deben seguir en un proceso, conectados por flechas
de un sólo sentido, que indica la secuencia en que se desarrolla.

Simbología de los diagramas de flujo

Entre los diferentes símbolos utilizados para la diagramación,


destacamos aquellos con los que se puede representar
prácticamente cualquier algoritmo informático por muy complejo
que sea. Estos símbolos básicos son:

Nombre/Símbolo Función/Descripción

Se utiliza para iniciar o terminar un diagrama y por


Inicio/Fin lo general se coloca la palabra inicio/fin dentro de
la figura.

Indica la entrada y salida de datos desde los


periféricos o registro de información.
Entrada
general

Es utilizado para indicar acción, es decir que


Proceso contiene cualquier tipo de operación que se debe
realizar a partir de los datos para generar la
transformación deseada en los mismos.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Como su nombre lo indica, esta figura representa


una disyuntiva, dada en forma de pregunta,
condición o expresión lógica, que se escribe en su
interior para ser evaluada como cierta o falsa, lo
que determina el flujo del programa, que puede
tomar uno de dos posibles caminos dentro del
diagrama.

Este símbolo es el único que puede contener dos


Decisión salidas y en cada una de ellas se suele poner un
rótulo de “si/no” o “cierto/falso”. Es bueno tener
pendiente, siempre que sea posible, utilizar un
lado fijo para cada uno. Por ejemplo el “sí” para la
derecha y el “no” para la izquierda, siempre del
mismo lado.
Conector misma página A medida que
Conecta dos partes de un diagrama dentro de la
vayamos
misma página, colocados uno en la salida y otro
desarrollando la
en la entrada.
unidad, podrán ir
entendiendo más
Conector páginas Conecta dos partes de un diagrama, igual que el cada uno de estos
diferentes anterior, sólo que en páginas diferentes. Con estos símbolos y la
conectores, es importante tener en cuenta, forma en que son
primero, que no intervienen en los procesos, por usados.
eso se denominan símbolos auxiliares y segundo,
que no es bueno abusar de su uso, ya que se
comenzaría a perder claridad, cosa que va en
contra del objetivo principal de un diagrama, que
es facilitar la comprensión del algoritmo.
Líneas de flujo Indica el sentido de la ejecución de las
operaciones o instrucciones del diagrama. El flujo
del diagrama puede ser percibido visualmente y
debe ser de arriba hacia abajo y de izquierda a
derecha.

Sub-proceso/(subrutina) Representa la llamada a una subrutina o


procedimiento determinado. Esta es una parte del
programa, es decir un subprograma utilizado para
realizar operaciones especiales o funciones
específicas.

Este es un símbolo combinado que integra al


símbolo de decisión y al de proceso (2 en 1),
Bucle (loop)
llamado bucle porque es usado en sentencias
repetitivas o ciclos para hacer más sencillo y
comprensible al diagrama de flujo, al reducir su
tamaño. En la parte superior se coloca el valor
inicial, en el centro la decisión o expresión lógica y
en la parte inferior, un contador que sólo se
detendrá cuando se cumpla una condición dada.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Existen plantillas que contienen la mayoría de estos símbolos, muy


usadas anteriormente, ya que son muy útiles para dibujar diagrama
de flujo manualmente, sin embargo hoy en día podemos encontrar
aplicaciones para crearlos usando el computador.

Ejemplo: Esquematizar en un diagrama de flujo las actividades


básicas del computador.

INICIO

LEER

PROCESAR

INFORMACION

FIN
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Tipos de diagrama de flujo


 De sistema. Su función es mostrar, en forma menos compleja,
el flujo lógico de un sistema, es decir de sus aplicaciones,
programas, procesos y dispositivos donde se guardan los
archivos de datos, de manera que al analizarlos podamos
comprender cómo es que estos elementos se interrelacionan
para ofrecer los resultados. Son de naturaleza general y pueden
incluir pasos donde no se usa la computadora.

Ej.: sistema de contabilidad.

 De programas. Los diagramas de flujo de programas


muestran las instrucciones y pasos lógicos que debe ejecutar la
computadora para resolver el problema. Son de naturaleza
específica y detallada. Pueden ser parte de un proceso más
general o sistema.

Ej.: programa de cuentas por cobrar, que forma parte del sistema
de contabilidad.

Reglas de los diagramas de flujo:


 Debe indicar claramente el inicio y el fin del diagrama, donde
el símbolo de inicio es preferible que se encuentre en la parte
superior o superior-izquierda del diagrama y el final se debe
procurar que quede en la parte inferior o inferior-derecha.

 Cualquier camino del diagrama debe llevar siempre al fin.

 Los símbolos deben estar organizados de forma que el flujo


viaje de arriba hacia abajo y de izquierda a derecha.

 No usar lenguaje de programación dentro de los símbolos.

 Centrar el diagrama en la página.

 Las líneas deben ser verticales u horizontales, nunca


diagonales.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Etapas para la solución de un problema

Antes de hablar de las etapas que


integran el proceso para la solución de
un problema, es bueno que tengamos un
concepto preciso de lo que es un
problema, el cual se concibe como un
conjunto de incógnitas que se plantean
alrededor de alguna situación, persona u
objeto, las que requerirán de uno o más
procedimientos y/o pasos para ser
resueltas. Es frecuente escuchar la frase de que todo problema
tiene solución, al menos una, sin embargo, los problemas pueden
ser clasificados en tratables y no tratables, precisamente porque a
los primeros se les puede encontrar soluciones simples y de rápida
ejecución, en cambio, los no tratables son considerados como
difíciles e incluso de no tener solución, en ocasiones, pero más
frecuentemente, lo que implican es simplemente mayor esfuerzo y
dedicación de mucho más tiempo o recursos computacionales para
alcanzar la solución, por lo que también son llamados, lentos e
ineficientes.

El proceso de programación, concebido como una serie de pasos,


es muy parecido al ciclo de vida de los sistemas de información,
como podrán notar. Estos pasos integran una especie de
planificación para desarrollar un algoritmo, sin lo cual la
programación puede resultar extremadamente difícil y el resultado
puede ser defectuoso o ineficaz, de ahí la importancia de utilizar
algunos criterios que puedan ayudar a tener ideas de qué hacer,
cómo, por dónde comenzar y qué resultados obtener. Los pasos
son:

 Definición del problema. Es básicamente entender el


problema. Este primer paso se conoce como análisis de
requerimientos, en este proceso la persona que plantea el
problema (cliente) expone sus necesidades a quien realizará el
programa (analista-programador), esto se lleva a cabo por
medio de diferentes técnicas, tales como: entrevistas,
cuestionarios y observación. Todo esto para determinar el
alcance, es decir, dónde comienza y dónde termina la solución
a la que se quiere llegar.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

 Análisis del problema. En base a la definición, resultado del


paso anterior, se descompone el
problema en partes individuales y se
decide cuáles son las operaciones
necesarias para resolver cada parte.
En este paso se consideran los
datos de entrada, como la materia
prima con la que se cuenta para la
solución del problema, el proceso
que debe realizar el computador a
partir de esos datos, que se refiere a los diferentes
procedimientos o pasos que se llevarán a cabo y los datos de
salida, que será la solución misma del problema. El esquema
de solución E-P-S (entrada, proceso y salida) es muy utilizado
por los programadores para Diagrama E-P-S para la elaboración de un pan
organizar sus posibilidades y
poder visualizar la solución de Entrada Proceso Salida
manera más fácil. Aquí se debe Ingredientes Preparación del Pan listo para
utensilios pan (juntar comer
examinar cuidadosamente la (harina, ingredientes,
situación a resolver, con el fin de huevos, sal, amasar,
obtener una idea clara de lo que mantequilla, hornear, etc.)
leche, etc.)
se quiere hacer y determinar los
datos que se necesitan para
resolver el mismo.

 Diseño y desarrollo del algoritmo. Esta fase es una actividad Estos primeros 3
esencialmente creativa, en la que se traduce con precisión los pasos son la base
requerimientos del cliente a un producto o programa fundamental y los
más importantes
terminado. En esta parte el programador desarrolla la lógica en este proceso,
que utilizará para la creación del programa, donde se obtiene pues representan
el algoritmo que puede ser representado en cualquiera de las la lógica del
formas que hemos explicado anteriormente (pseudocódigo, programador.
diagrama de flujo). Integran la
solución misma
del problema.
 Prueba de escritorio. Verificación de la eficacia del algoritmo,
es decir, comprobar si realmente da una solución confiable al
problema. Es el seguimiento manual de los pasos descritos en
el algoritmo, donde se verifica la lógica del mismo, probando
con diferentes valores (datos reales que puedan representar
todas las posibles entradas, utilizando, calculadora, lápiz y
papel) y tiene como fin detectar errores, depurar, y refinar el
algoritmo. Los algoritmos siempre pueden contener
ambigüedades, generalidades y errores, por lo que el
programador debe pulirlos, refinarlos, verificando las fallas y
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

procedimientos, perfeccionándolo para convertirlo en un


programa eficiente y eficaz.

A partir de los siguientes pasos, la solución del problema


comprende la parte de la implementación, llamada así porque
integra al computador, y es la diferencia básica entre solucionar un
problema manual y por computadora:

 Codificación. La codificación del algoritmo se refiere a escribir


el pseudocódigo o diagrama de flujo en algún lenguaje de
programación previamente seleccionado, de acuerdo a la
preferencia del programador, para digitar el pseudocódigo,
tomando en cuenta la sintaxis y estructura gramatical de dicho
lenguaje.

 Compilación del programa. Después de que el algoritmo es


codificado, se utiliza un software llamado compilador para
traducir las instrucciones escritas en el lenguaje de
programación elegido, en instrucciones comprendidas por el
computador, es decir las convierte en ceros y unos (0s y 1s).

Los softwares de compilación actuales, además de su función


de traductor, integran herramientas como un editor de textos,
un depurador (debugger) y otras utilidades de programación
que simplifican este proceso, ayudando además, en la
localización y corrección de errores sintácticos, de estructura o
lógicos, mostrando la posible ubicación de los mismos.

 Ejecución. Con el código objeto, obtenido en la fase anterior,


se pasa a la ejecución del programa en el computador para
llegar a los resultados esperados.

 Depuración (debug, en inglés). Operación de detectar,


localizar y eliminar errores del programa, esto es, probarlo y
evaluar los resultados para verificar si son correctos o no, pues
inevitablemente los programadores pueden cometer errores al
crear sus programas. Un programa puede arrojar resultados
incorrectos aún cuando la ejecución es perfecta.

Este paso de comprobación es muy importante, en el que el


programa se ejecuta varias veces con distintos valores, a fín
de depurar los errores que puedan ser detectados. Estos
errores, por lo general, pueden ser de dos tipos: de sintaxis,
cuando violan las reglas gramaticales del lenguaje, y lógicos,
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

cuando existe problema en la estructura lógica de


programación, siendo estos últimos los más difíciles de
encontrar y tal vez sólo se detecten después de algún tiempo
de su implementación y puesta en uso, a partir de lo cual, sólo
resta dar el mantenimiento requerido y solicitado por los
usuarios.

 Documentación. Se refiere a anotar los detalles y


observaciones, que luego, podrían ayudar a cualquier usuario
ajeno al programa, e incluso al mismo autor, a entender el
código fuente, indispensable a la hora de actualizar, dar
mantenimiento o depurar el programa. Esta documentación
puede ser en forma de manuales de ayuda, que contienen
todo lo que integra el programa: diagramas de flujo,
pseudocódigos e instrucciones para el usuario (documentación
externa), y en forma de comentarios, para explicar una sección
dentro del programa (documentación interna).

Programa de computadora. Código


En realidad el objetivo último de realizar todo este proceso para la
creación de un algoritmo, es poder convertirlo en código que el
computador pueda manejar y por tanto pueda ejecutar, resolviendo
el problema de forma automática. Por lo general, un algoritmo se
crea a petición de un usuario que necesita resolver un problema
dado, aún así es posible que no sea necesario crearle un algoritmo
personalizado, ya que hoy día existen tantos y tan diversos
programas de computadoras en el mercado, que la mayoría de las
veces el usuario suele encontrar uno de los ya existentes que se
ajuste a sus necesidades o que con algunas modificaciones pueda
convenirle perfectamente, de lo contrario, es necesario crearle uno
que cumpla con sus requerimientos.

El algoritmo, en cualquiera de sus formas es sólo una descripción


de la solución del problema, como hemos dicho antes, y no nos
servirá de mucho, si no se codifica para que pueda ser corrido o
ejecutado por el computador. Para esto, es necesario utilizar uno
de los lenguajes de programación existentes (de los que ya hemos
hablado en la unidad 2, de donde pueden releer el tema de
software, desde la Pág. 21 hasta la Pág. 25, que describe dichos
lenguajes).
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Ya hemos precisado en una unidad anterior lo que es un programa


de computadora, pero en esta parte veamos cómo lo define Peter
Norton:

“Conjunto de instrucciones o estipulaciones (también


llamadas código) ejecutadas por la CPU de la computadora.
Estas instrucciones pueden ser escritas en muchos
lenguajes diferentes”.

Este conjunto de sentencias, como también se les llama, se


organizan lógica y sintácticamente, para decirle al computador que
realice una tarea específica, son escritas por el programador
utilizando un editor de textos, como hemos dicho. Los programas
de computadoras, también pueden ser clasificados en:

Programa fuente. Es el que se escribe en el editor de líneas y


obedece a la sintaxis de un lenguaje de programación de alto nivel
(COBOL, BASIC, FORTRAN, Pascal, C, Java, entre otros). Este tipo
de programa no es entendido por el computador, por lo que debe
ser traducido a un lenguaje de bajo nivel. Este es el resultado del
paso de codificación que vimos en el tema anterior.

Programa objeto. Programa que resulta del proceso de traducción


o compilación del programa fuente. Este es el código de que se
habla en el paso de ejecución y es el programa que el computador
puede entender y ejecutar.

Como todo lenguaje, los de programación también tienen un


conjunto de signos con una estructura y normas establecidas para
que todo el que participe de ese lenguaje lo pueda comprender, es
decir, cada lenguaje tiene una sintaxis o gramática que define
cómo utilizar esta lengua. Es por esto que una instrucción de un
programa de computadoras es una frase u oración compuesta de
palabras, signos y parámetros, de acuerdo a su conjunto de
normas de sintaxis, las que se deben respetar para que esta frase
sea evaluada como correcta.

Ejemplo de sentencia: Write “la suma total es igual a”, Suma.

Esta sentencia propia del lenguaje BASIC le indica al computador


que debe escribir la cadena de caracteres que se encuentra entre
comillas.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

A este proceso de diseño y escritura de programas de


computadoras, se le llama programación Tema al que entraremos
en breve, pero antes debemos definir algunos conceptos
importantes para poder comprender mejor este tema, de los que ya
hemos visto algunos:

Estructura de datos

Los datos, como ya habíamos establecido, son los elementos


básicos a partir de los cuales se obtiene la información, que son
los datos ya procesados. La estructura de datos, se refiere a la
forma en que los datos son organizados para que sean usados o
manipulados por el programa, además de que define la manera en
que éstos se interrelacionan y se organizan, de la que debemos
definir los siguientes conceptos:

 Base de datos. Es un conjunto de archivos relacionados entre


sí, para un propósito determinado.

 Campo. Es la unidad más pequeña de datos que se puede


definir dentro de un archivo. Ejemplo: nombre, cédula de
Identidad y electoral, dirección, teléfono.

 Clave. Se denomina así, a un campo especial del registro que


sirve para identificarlo y es único. Ejemplo: cédula de Identidad
y electoral, código de producto o de empleado, etc.

 Registro. Es un conjunto de campos interrelacionados, que


forman un elemento completo de información y que forma
parte de un archivo. Ejemplo: uno de los contactos de una
agenda.

 Archivo. También denominado fichero (file, en inglés). Se


define como una unidad de datos, integrada por un conjunto
de registros relacionados y bien organizados, los que deben
ser homogéneos, es decir, deben tener la misma estructura
física, los mismos campos, etc. Ejemplo: agenda de contactos
(Conjunto de contactos).

Por lo general, se pueden realizar operaciones sobre un


archivo, tales como crear o ingresar, eliminar o borrar,
consultar o leer y actualizar o modificar registros.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Esta figura
nos muestra
cómo los
archivos son
almacenados
en carpetas,
y la lista de
los elementos
que integran
una
aplicación
determinada,
la que puede
contener
archivos de
distintas
extensiones,
dependiendo
del tipo que
sea, tales como .exe (ejecutable), .hlp (ayuda), .txt (texto), .ini
(inicialización), entre otros. Cuando se inicia un programa en el
computador, el archivo central es el que se ejecuta y se
conoce por su extensión .exe.

Los archivos pueden ser clasificados, según su uso, en:

 Archivos maestros. Aquellos cuyos registros son


relativamente permanentes, porque sufren poca variación en el
tiempo. Se actualizan periódicamente para mantenerlos al día.

 Archivos de movimiento. Son aquellos que se utilizan


conjuntamente con los maestros (constantes), y contienen
algún campo común en sus registros para el procesamiento de
las modificaciones experimentadas por los mismos.

Según su acceso, en:

 Secuenciales. En estos el acceso a los registros se hace


según el orden de llegada, uno detrás del otro, así como son
almacenados, es decir que para acceder a un registro
determinado hay que pasar por todos los registros anteriores a
éste.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

 Indexados. Son archivos en que los registros están


organizados de acuerdo a una clave que forma parte de los
datos del mismo, en forma de índice Tiene la ventaja de que
el acceso es directo, si se quiere acceder a un registro
específico, no hay que pasar por los anteriores. El índice y su
archivo correspondiente, ocupan posiciones contiguas en la
memoria, conteniendo la clave y la dirección de cada uno de
los registros para identificarlos.

 Directo. Es un archivo en el que cada registro cuenta con una


asignación de memoria específica, por lo que pueden ser
accedidos de manera directa, sólo con expresar su dirección
en el fichero por el número relativo del mismo.

Clasificación de los datos

Los datos que se utilizan durante la ejecución de un programa


pueden ser de diferentes tipos, dependiendo de las operaciones
que a partir de ellos se desee realizar:

 Alfanuméricas, de caracteres o de cadena. Son una mezcla


de los caracteres alfabéticos (letras de la A a la Z), números y
algunos símbolos especiales, tales como # y $. Estas
secuencias también pueden contener espacios en blanco y se
distinguen por estar encerradas entre comillas (“”).

 Numéricas. Contienen datos cuantificables representados por


números (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9) y pueden ser enteras y
reales o de punto flotante.

 Lógicas. Cuando aceptan sólo uno de dos valores: verdadero


(true) o falso (false), denominas también como booleanas.

 Variables. Son usadas para almacenar el valor de los datos


que están siendo procesados. Se reservan como un espacio de
almacenamiento temporal para la información que necesita el
programa durante su ejecución, y que, como su nombre lo
indica, pueden ir cambiando. Ejemplo: nombre, que en un
momento dado puede ser Carmen, en otro puede ser Rosa y
así sucesivamente. Estos espacios vacíos son reservados por
el programa.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

 Constantes. Estas guardan valores invariables durante la


ejecución del programa, y son definidas en la elaboración del
mismo. Existen constantes numéricas, de caracteres y lógicas.
Ejemplo: 7 es una constante numérica “y” es una constante de
caracteres, las que deben ser escritas entre comillas.

Los nombres asignados a los diferentes objetos o elementos de


datos usados en un programa, algunos de los cuales acabamos de
definir (variables, constantes, los tipos de datos, las etiquetas, las
subrutinas y funciones) son conocidos como identificador.
Nombrar a estos elementos es necesario para que puedan ser
referidos dentro del programa. Existen algunas consideraciones o
reglas que se deben tomar en cuenta a la hora de elegir esos
nombres, como cuáles son los caracteres y símbolos permitidos o
no por el lenguaje de programación usado, la longitud del nombre
(cantidad de caracteres), entre otros, algo que también se
recomienda es que el nombre asignado haga referencia al
contenido o valor del objeto a que se refiere, porque nombrar MISC
a una variable que contiene la edad de una persona, por ejemplo,
no tendría mucho sentido.

Expresiones, operadores y jerarquía de evaluación


Los operadores son símbolos matemáticos que relacionan a las Se llama operador
constantes y variables (operandos) usados en los diferentes unario cuando
procesos dentro de un programa, para determinar o indicar las opera sobre un
operaciones que se deben realizar sobre los operandos. Estos sólo valor u
pueden ser aritméticos y booleanos (de relación y lógicos): operando, y
binario, cuando
relaciona a dos
 Operadores aritméticos: integrados por los símbolos de valores en una
suma (+), resta (-), multiplicación (*), división (/) y expresión.
exponenciación (^).

 Operadores relacionales: mayor que (>), menor que (<),


igual a (=), mayor o igual que (>=), menor o igual que (<=),
diferente o no igual a (≠ o <>).

 Operadores lógicos: conjunción (Y o AND), disyunción (O u


OR), negación (NO o NOT). Con estos operadores es que se
construyen las tablas de verdad.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Esta figura muestra algunos ejemplos del uso de los operadores


lógicos y de relación.

OPERANDO OPERANDO VALOR


OPERADOR TIPO
A B LOGICO
NOT
V V F Unario
(NO)(A)
V AND(Y) F F Binario

F OR(O) V V Binario

F = F V Binario

V > V F Binario

La jerarquía de evaluación se refiere a la prioridad que tienen los


operadores dentro de la expresión, si hay más de uno. Es decir
que el orden específico en que los computadores evalúan tales
expresiones, es determinado atendiendo a la jerarquía de éstos,
desde el más importante al más simple, de la forma que se muestra
en el siguiente cuadro:

PRIORIDAD OPERADORES DESCRIPCION

valores paréntesis se evalúan primero y con


1 (()) paréntesis anidados, de adentro hacia
afuera
2 ^ Exponenciación
Multiplicación y división. Con la misma
3 *, / prioridad. En una misma expresión se
evalúan de izquierda a derecha.
Suma y resta al mismo nivel. Con la misma
4 +, - prioridad. En una misma expresión se
evalúan de izquierda a derecha.
5 =, <, >, <=, >=, <> Relacionales. Al mismo nivel.

6 NOT (NO) Operador lógico de negación

7 AND (Y) Operador lógico de conjunción

8 OR(O) Operador lógico de disyunción


Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Enfoques de programación.
El enfoque tradicionalista de la programación se basa en un
paradigma lineal, donde las diferentes incógnitas que integran el
problema se solucionan paso a paso, sin descomponerlo, lo que
daba como resultado, el llamado código “spaghetti”, haciendo su
lectura, comprensión y actualización algo casi imposible. Sin
embargo, para obtener un rendimiento máximo y mejores
resultados en la tarea de programar, es importante asumir las
técnicas o métodos, que a través del tiempo se han ido
desarrollando en la programación de computadoras como es la
programación estructurada, que es un conjunto de técnicas para
desarrollar algoritmos fáciles de escribir leer y modificar. No
contempla la sentencia GOTO, la que representa un dolor de
cabeza a la hora de actualizar los códigos fuentes y una desventaja
de la programación lineal, usada anteriormente.

Este modelo de programación viene a ser una estrategia que


excluye esos problemas, haciendo más fácil y eficiente la actividad
de programar y aumentando la productividad del que programa.
Un programa concebido bajo este enfoque, debe ser escrito de
acuerdo a las reglas del diseño modular y descendente, en el que
los módulos se organizan jerárquica y lógicamente, a través de un
proceso de refinamiento, con el objetivo de simplificar la
complejidad que presentan algunos problemas, desglosándolo en
problemas más simples o subprogramas, que al codificarlos, sean
capaces de ser ejecutados de forma independiente.

Estos subprogramas, procedimientos, funciones o subrutinas, que


como dijimos, son módulos independientes que forman parte de un
programa más grande, definidos para realizar operaciones
especiales o tareas específicas. Una subrutina se utiliza entonces,
para reemplazar un grupo de sentencias sucesivas que se repiten
una o más veces en el programa principal. A esta se le asigna un
nombre por el que será llamada o referida dentro del programa
cada vez que se necesite ejecutar, utilizando la sentencia
correspondiente: gosub/return, perform o procedure, dependiendo
del lenguaje utilizado para la codificación (BASIC, COBOL, PASCAL,
etc.). Estas ofrecen la ventaja de que pueden usarse en más de un
lugar en el mismo programa, o en otro diferente, sin tener que
reescribirlo cada vez. Muy convenientes para el desarrollo de
funciones matemáticas como los logaritmos, la raíz cuadrada, o
funciones trigonométricas.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Cuando una subrutina es llamada, el código principal se detiene


para que el código de la misma sea ejecutado, cuando termina, se
retorna al programa principal y se ejecuta la sentencia
inmediatamente siguiente a la sentencia que la llamó.

El avance y modernización que continúa experimentando la


programación, se demuestra con el desarrollo de la programación
orientada a objetos (Object-Oriented Programming, OOP, por sus
siglas en inglés) alrededor de los años 80. Este enfoque, también
se basa en la programación estructurada, pero mejorada, es decir
que la programación en un lenguaje orientado a objetos mantiene
el concepto modular, pues los objetos son especies de módulos
terminados que forman parte de un programa que pueden ser
transportados hacia otra aplicación, lo que permite al programador
ahorrar más tiempo cuando desea crear un nuevo programa, al no
tener que empezar de cero, sino que puede emplear los objetos o
módulos de otros programas en una nueva aplicación, por ejemplo
C++.

La programación visual, por su parte, ofrece un entorno en donde


la codificación tradicional queda en un segundo plano. Muy usado
por personas que se identifican más con lo visual, permite a los
creadores de software construir partes importantes de sus
programas sólo con arrastrar imágenes y haciendo clic, permitiendo
ahorrarse gran parte del fastidioso tipeo de instrucciones, por lo
que personas inexpertas en programación con intenciones de
incursionar a la industria del software, e incluso no programadores,
han sido atraídos por este entorno gráfico que les permite de
manera más simple, hacer sus creaciones dejando la codificación
de problemas más complejos a los expertos. Ejemplo Visual Basic
de la Microsoft.

Se ha determinado que todo programa de computadora puede ser


escrito en base a tres estructuras de control básicas, que al
combinarse entre sí, permiten escribir cualquier programa,
independientemente de su complejidad. Estas se refieren a las
estructuras lógicas que controlan el flujo de control del programa,
es decir, controlan el orden en que son ejecutadas las instrucciones
que lo integran. Por consiguiente, son de suma importancia en los
lenguajes de programación.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Estas estructuras de control son las de secuencia, de selección y


de repetición:

1) Secuencia. Las instrucciones que integra el programa son


ejecutadas por la computadora en el orden en que son
escritas, una tras otra, a menos que se indique lo contrario
con alguna sentencia de salto. Es el patrón lógico más
simple e integra la siguiente sintaxis:

Inicio
sentencia(s) A; Sentencia A
El punto y coma
…………… es usado para
…………… separar las
sentencia(s) Z; instrucciones.
Sentencia B
Fin

Ejemplo: calcular el producto de dos números. Representar


mediante: a) pseudocódigo y b) diagrama de flujo:

a) Representación mediante pseudocódigo: b) Diagrama de flujo

Inicio Inicio
Escribir "Introduzca el primer valor: ";
Leer A; A, B
Escribir "Introduzca el segundo valor: ";
Leer B;
Producto=A*B
Producto<-A*B;
Escribir "El resultado del producto es: ", Producto;
Fin.
Producto

Cuando queremos manipular datos en un programa, como en este


ejemplo que pide leer o introducir dos valores A y B usando la Fin
sentencia Leer, donde A y B son las variables que serán
introducidas o leídas desde el teclado o una unidad de disco, para
luego multiplicarlas, podemos hacerlo por su asociación con
contantes, por su asignación a variables, como ya hemos visto, o
por una sentencia de entrada o lectura, que es la que hemos
usado en el ejemplo: Leer A; Esta es una forma muy conveniente
si queremos tratar diferentes datos cada vez que se ejecuta el
programa.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

También vemos, cómo la sentencia de asignación es utilizada en


los programas para almacenar o asignar valores a variables,
ubicando un valor determinado en una posición de memoria. En un
pseudocódigo, la sentencia de asignación opera con el símbolo <-
indicando que el valor de la derecha será almacenado en la
variable de la izquierda, como en este ejemplo, donde
Producto<-A*B, es lo mismo que decir que el resultado de
multiplicar A*B se estará almacenando en la variable denominada
producto, y como pueden inferir, producto es una variable, porque
almacenará valores distintos cada vez que nuevos valores sean
introducidos y multiplicados.

En el caso de la operación de salida, usada para visualizar los


resultados obtenidos durante la ejecución de un programa, se
utilizan las sentencias de salida o escritura, que se presenta de la
siguiente forma Escribir "El resultado del producto es: ", Producto;
tal como muestra el ejemplo, donde la variable de salida, que en
este caso es Producto, presenta los resultados por impresora, lo
que también podría ser por pantalla, por un dispositivo de
almacenamiento o un puerto de E/S (de comunicación).

En el ejemplo anterior, también se pueden ver sentencias o


instrucciones, que como hemos dicho antes, describen las
acciones que deben ser ejecutadas en un programa, de acuerdo al
algoritmo que les crea. La sentencia Escribir "Introduzca el primer
valor: “; entra en la clasificación de sentencias no ejecutables, que
tienen una función que se podría denominar como abstracta, ya
que no intervienen en la ejecución del programa, sino que ayudan
a entenderlo, como en este caso que cuando presente este
mensaje entre comillas, establece claramente que se debe
introducir el primer valor que será parte de la operación en el
programa. En cambio, las sentencias Leer B y Producto<-A*B, son
denominadas sentencias ejecutables, que son las que definen
operaciones aritméticas y de entrada y salida de datos, como en
este caso.

2) Selección (de decisión). En este tipo de estructura se


requiere tomar una decisión lógica en base a una condición
dada, dependiendo de cuyo resultado (sí/verdadero o
no/falso), el computador seguirá uno de dos caminos para
ejecutar su o sus respectivas instrucciones.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

La sentencia if-then-else (si-entonces-sino) es utilizada en


este tipo de estructuras de control y muestra la siguiente
sintaxis:

si Condición no
si (condición o expresión lógica) entonces ¿?
sentencia(s) 1;
sino sentencia(s)1 sentencia(s)2
sentencia(s) 2;

Ejemplo: realizar algoritmo, usando pseudocódigo y diagrama


de flujo, que determine el mayor de dos números para dividirlo
entre el menor, e imprimir dicho número y el resultado de la
división.

a) Pseudocódigo b) diagrama de flujo

Inicio

Inicio
Leer a, b; a, b
si a>b entonces
div<-a/b;
Escribir "el no. mayor es: ", a; si no
Escribir "el resultado es: ", div; a>b
sino
div<-b/a; div<-a/b div<-b/a
Escribir "el no. mayor es: ", b;
Escribir "el resultado es: ", div;
fin si div, a div, b
Fin

Inicio

En este caso usamos la sentencia selectiva if-then-else, que nos


permite codificar una condición o expresión lógica, necesaria para
resolver el problema planteado en el ejemplo. Esta le indica al
computador que (if) si el resultado de la comparación ¿a>b?, es sí
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

(verdadero), (then) entonces, deberá seguir las instrucciones del


sí (a la izquierda en el diagrama de flujo), que son dividir a entre b:
div<-b/a e imprimir el número mayor que es la variable a, y el
resultado de la división, almacenado en la variable div. En caso
contrario, (else) sino, deberá seguir las instrucciones del no (a la
derecha del diagrama de flujo), que son dividir b entre a: div<-b/a e
imprimir el número mayor que es la variable b y el resultado de la
división almacenado en la variable div.

Como ven, este patrón lógico llamado selección, permite alterar la


secuencia de ejecución del programa, dependiendo del resultado
de la comparación, lo que se conoce como bifurcación, que es la
transferencia de un punto del programa a otro, la que puede ser
incondicional o condicional, como en este caso, que requiere que
se cumpla una condición para hacer la transferencia.

Cada una de las opciones en la sentencia if-then-else, representa


una rama de la bifurcación, es decir representa la sentencia que se
debe ejecutar cuando el resultado de la evaluación lo permita, la
que puede ser otra sentencia if-then-else, en cuyo caso estaríamos
frente a if (si) anidados, los que se utilizan para crear decisiones
con diferentes alternativas. Los if anidados muestran la siguiente
sintaxis:

si condición 1 entonces
sentencia(s) a
sino
si condición 2 entonces
sentencia(s) b
sino
sentencia(s) c

Esta sintaxis nos indica que cuando la condición 1 sea verdadera,


se ejecutará la sentencia(s) a, pero en el caso de ser falsa, se
ejecutará otra sentencia if-then-else, la cual al evaluar la condición
2, ejecuta la sentencia(s) b, cuando sea verdadera, y la
sentencia(s) c, cuando sea falsa.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Ejemplo: escribir algoritmo que pida 3 números e identifique


cuál de ellos es el mayor. Imprimir el resultado.

a) Pseudocódigo b) Diagrama de flujo

fin
Inicio
a<-0;
mayor<-0; a, b,c
Escribir "Introduzca el primer valor: "; leer a
Escribir "Introduzca el segundo valor: "; leer b
Escribir "Introduzca el tercer valor: "; leer c
si a>b entonces s n
si a>c entonces i a>b o
mayor<-a;
sino
s n s n
mayor<-c; a>c b>c
i o i o
finsi
sino
si b>c Entonces Mayor= Mayor= Mayor= Mayor=
a c b c
mayor<-b;
sino
mayor<-c;
finsi
finsi mayor
Escribir "el número mayor es: ", mayor;
Fin
fin

Las sangrías usadas en este pseudocódigo, sirven para


estructurarlo y hacerlo más legible.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

3) Repetición. Esta es una estructura de control que permite


repetir un conjunto de sentencias que generalmente es
llamado bucle (loop en inglés), que en español significa lazo
o ciclo.

Los comandos de repetición usados para crear bucles,


dependiendo de las características del problema a resolver,
son el FOR/NEXT, DO/WHILE, DO/LOOP, Repeat/Until y
WHILE/WEND, donde las palabras FOR, DO, Repeat o WHILE
(para, hacer, repetir y mientras), marcan el inicio del bucle,
y las palabras NEXT, LOOP, Until y WEND (siguiente o
próximo, lazo o bucle, hasta que, y While Ends o fin de
mientras) terminan o cierran el ciclo.

La sentencia Mientras (While) muestra la siguiente sintaxis:

mientras (condición o expresión lógica) hacer no


sentencia(s) 1; condición
¿?
finmientras
si

sentencia/s

Ejemplo: escribir algoritmo para obtener la sumatoria de los


números del 1 al 100 e imprima resultado. Inicio

a) Pseudocódigo b)Diagrama de flujo n<-0

s<-0

Inicio
n<-0; no
n<100
s<-0;
Mientras n<100 Hacer si

n<-n+1; n<-n+1
s<-s+n;
FinMientras
s<-s+n
Escribir "la suma del 1 al 100 es igual a: ", s;
Fin

"la suma del 1 al 100 es igual a: ", s

Fin
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Ejemplo: usando la sentencia Repetir/Hasta (Do/Until) Inicio

n<-0
a) Pseudocódigo b)Diagrama de flujo div<
-a/b
s<-0
div<
Inicio -a/b
div<
n<-0; n<-n+1
-a/b
s<-0;
Repetir s<-s+n
n<-n+1;
s<-s+n;
Hasta que n>=100; no
n≥100
Escribir "la suma del 1 al 100 es igual a: ", s;
Fin si

"la suma del 1 al 100 es igual a: ",


s;

Fin

Debido a que se deben sumar los números comprendidos entre 1 y


100, se requiere crear un bucle donde la suma es el ciclo que se
repite desde n=1 hasta n=100. En estos casos se usan comandos
de repetición que ofrecen los lenguajes de programación. El
comando de repetición repeat/until (repetir/hasta), que es un bucle
condicional usado cuando desconocemos el número de
iteraciones. Repetir marca el inicio del bucle y hasta que, lo Se llama iteración
cierra, encerrando entre estas dos palabras claves la o las a cada repetición
instrucciones que forma el cuerpo del bucle y que se deben del cuerpo del
bucle.
ejecutar siempre, al menos una vez, repetidamente hasta que la
condición evaluada sea verdadera. En este caso el cuerpo del
bucle es:
n<-n+1;
s<-s+n;

Luego se reanuda la ejecución con la sentencia que le sigue:


Escribir "la suma del 1 al 100 es igual a: ", s; y termina con la
sentencia Fin.

Al crear los bucles debemos tener la precaución de que éstos no


sean indefinidos o que nunca sean ejecutados. Los comandos
repetitivos mencionados anteriormente, definen ciertos criterios
para evitar estos típicos errores, por ejemplo en este caso, al usar
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

la instrucción Repetir hasta (Repeat until), se debe asegurar que


la condición dada contenga una variable cuyo valor se modifique
en el cuerpo del bucle, para que en algún momento esta condición
tome un valor verdadero y el bucle pueda detenerse. Además,
como se puede notar, esta sentencia realiza el proceso antes de
verificar la condición, contrario a la sentencia Mientras (While) que
el proceso se ejecuta después, tal como se puede ver en el primer
ejemplo.

Utilizar For cuando el número de iteraciones es conocido de antemano.


Utilizar While cuando el número de iteraciones es desconocido y el bucle
no se debe ejecutar si la condición es falsa la primera vez.
Utilizar Repeat-until cuando el número de iteraciones es desconocido y
el bucle debe ejecutarse siempre, al menos una vez.

Como en el ejemplo anterior debemos sumar de uno en uno hasta


llegar a 100, se utiliza una variable llamada n como contador, Contador. Variable
inicializada en 1, límite inferior de los números a sumar y se que se incrementa
incrementará en 1 cada vez que se produzca una iteración. Los o disminuye en un
valor igual a la
contadores se utilizan generalmente para contar la cantidad de unidad (1) u otra
veces que se repite un proceso, para lo que se utiliza una cantidad constante
constante que se incrementa de acuerdo a lo requerido en el al ser ejecutada.
problema, de la forma: n<-n+constante.

En este ejemplo, también se debe establecer una variable que


acumule la sumatoria a medida que el contador se incremente y
llegue a su límite superior que es 100, de la forma s<-s+n que
funciona como un acumulador, el cual es similar a un contador,
con la diferencia de que sus incrementos o decrementos no son
constantes sino que varían cada vez, siendo n la cantidad variable.
Los acumuladores se utilizan para almacenar cantidades
homogéneas pero diferentes, tales como salarios, edades, pesos,
etc. La variable se repite a ambos lados del signo =. Si usted va a
almacenar los salarios de cierto número de personas, debe utilizar
un contador para las personas y un acumulador para los salarios.

Los contadores y acumuladores son de gran utilidad en


programación, pues permiten ahorrar tiempo y trabajo en rutinas
repetitivas. Los contadores son una buena forma de controlar los
bucles o ciclos.
Dra. Ing. Rina Familia
Técnicas de Programación Aplicada

Bibliografía

 Norton, 2006 6ta Edición, Introducción a la Computación,


McGraw Hill.

 Parsons & Oja, 2006 Sexta Edición, Conceptos de


Computación, Nuevas Perspectivas.

 Beekman, Binet; Durán, Melenciano & Vásquez,


Introducción a la Informática, 2009 1ra Edición, Pearson-
Prentice Hall.

 Robertson, L. A. (2003) Simple Program Design: A Step-


by-Step Approach. 4th ed. Melbourne: Thomson.

 Joyanes, Luis: Problemas de Metodología de la


programación. (1990). McGrawHill.

 Joyanes, Luis: Fundamentos de programación. Libro de


problemas. McGraw-Hill.

 Joyanes, Luis: Metodología de la programación. McGraw-


Hill.

 Libros para principiantes en la programación


computacional: http://www.agapea.com/Programacion--
Otros-cn280p1i.htm.

 http://algoritmia.org/index.php?option=com_content&task=
view&id=18&Itemid=1

También podría gustarte