Vous êtes sur la page 1sur 33

Dra. Ing.

Rina Familia
Tcnicas de Programacin Aplicada

Algoritmos
Computacionales
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Contenido
Introduccin a los algoritmos computacionales
Conceptos bsicos 4
Qu es un algoritmo?, caractersticas de un buen algoritmo, algoritmos
cualitativos y cuantitativos

Representacin de un algoritmo 5
Descripcin Textual Secuencial Numerada
Pseudocdigo
Diagrama de Flujo.. 7
Simbologa, tipos, reglas. 8

Etapas bsicas para la resolucin de problemas. 12


Fase solucin
Definicin del problema
Anlisis-dominio del problema
Esquema de solucin E-P-S
Diseo y desarrollo del algoritmo
El algoritmo
Prueba de escritor
Fase de Implementacin
Codificacin
Compilacin o interpretacin del programa
Ejecucin
Depuracin
Documentacin

Programa de computadora. Cdigo 15


Estructura de datos.... 17

Clasificacin de los datos 19


Alfanumricas, numricas, lgicas, variables y constantes

Expresiones, operadores y jerarqua de evaluacin 20


Operadores aritmticos, relacionales y lgicos

Enfoques de programacin... 22

Estructuras de control. 24
Secuencia, seleccin, repeticin

Bibliografa................... 32
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Introduccin a los algoritmos


computacionales
En el contenido de la unidad 2 tratamos el tema de los softwares,
dentro de cuya clasificacin se encuentran los lenguajes de
programacin, 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
cmo son creados, las herramientas y tcnicas utilizadas para especialistas en
hacerlo, son temas que trataremos en este contenido. la creacin de
programas de
Esta unidad es muy importante, pues nos introduce a la resolucin computadoras.
de problemas, con el objetivo de fomentar el pensamiento crtico y Crean los cdigos
fuentes.
desarrollar una conciencia lgica que sirva de base para resolver
situaciones problemticas proyectadas o presentadas, explicando y
aplicando algoritmos de computadora.

El computador, como hemos comentado anteriormente, viene a ser


una herramienta de propsito 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, disear un algoritmo es la parte que
antecede a la creacin de un programa de computadora, con el
propsito precisamente de facilitar la programacin o creacin de
estos cdigos. Su importancia es expresada por Luis Joyanes,
programador experto y escritor de muchos libros que versan sobre
la lgica y programacin, cuando dice:

Un lenguaje de programacin es slo un medio para


expresar un algoritmo y una computadora es slo un
procesador para ejecutarlo.

Qu es un algoritmo?
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

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


vez del matemtico 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 solucin.

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

(Quiz del lat. tardo *algobarismus, y este abrev. del r.


cls. isbu lubr, clculo mediante cifras arbigas). 1. m.
Conjunto ordenado y finito de operaciones que permite hallar
la solucin de un problema..
(Real Academia Espaola)

Segn estas definiciones, los algoritmos son entendidos como una


secuencia de pasos que deben llevar a la resolucin de un
problema, de stas, adems, podemos obtener las caractersticas
que debe poseer todo buen algoritmo. Pero veamos las que se
listan segn el cientfico de computacin 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 nmero


determinado de pasos.

2. Precisin. 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 ms entradas, cantidades


que le son dadas antes de que el algoritmo
comience, o dinmicamente mientras corre.

4. Salida. Tiene una o ms 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
ambigedades. Es decir, que al seguirlo o desarrollarlo dos veces,

Todo algoritmo
debe guardar
estas
caractersticas
Dra. Ing. Rina Familia
Tcnicas de Programacin 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 ms eficiente el algoritmo ms corto.

El algoritmo, tambin debe ser sencillo, legible, para que otras


personas puedan interpretarlo, aun cuando no intervengan en la
creacin de ste, y puedan resolverlo al seguir las instrucciones en
el orden que establece. Por eso, tambin es importante que el
algoritmo sea lo ms breve posible, sin que exceda las
instrucciones mnimas necesarias, ni supere las instrucciones
mximas requeridas, ni ms 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 solucin 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 estn involucrados clculos numricos. Las
instrucciones para armar un aeromodelo, para desarrollar una
actividad fsica, encontrar un tesoro o seguir una receta de cocina,
son ejemplos de algoritmos cualitativos.

Los algoritmos cuantitativos, por su parte, son aquellos que


involucran clculos numricos. Por ejemplo la solucin de una
ecuacin de segundo grado, encontrar el factorial o la raz cuadrara
de un nmero, etc.

Representacin de un algoritmo
Para escribir la solucin de un problema no es conveniente utilizar
la redaccin normal, como si fuera escribiendo una carta, donde se
instruye a hacer esto y aquello, ya que sera muy difcil que un
algoritmo escrito as pueda ser usado por alguien diferente de
quien lo escribe, debido a que estara sujeto a la interpretacin
personal, convirtindose esto en un gran problema, puesto que se
obtendran resultados atendiendo a los puntos de vista de cada
quien, algo inaceptable en un algoritmo. De ah que se utilicen
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

formatos estndares que han sido aceptados por la industria de la


computacin, como los siguientes:

Descripcin textual secuencial numerada (escrita)


Pseudocdigo. (escrita)
Diagrama de flujo o flow chart, en ingles. (grfica).

Estas formas de representar los algoritmos no son entendidas por


el computador, slo son medios utilizados para expresar la solucin
de un problema.

Descripcin textual secuencial numerada


En esta forma los algoritmos se escriben utilizando slo una parte
de un lenguaje natural, como el ingls o el espaol, donde se listan
los pasos o actividades que se ejecutarn para la resolucin del
problema, siempre con una secuencia lgica y ordenada.

Ejemplo: Un cliente solicita prstamo 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

Pseudocdigo
Esta forma de representar un algoritmo consiste en escribir una
lista ordenada de pasos que describe con precisin y en secuencia
lgica cada instruccin de la posible solucin del problema, cuya
diferencia bsica con la descripcin textual secuencial numerada
es que tiene apariencia de cdigo de programacin, debido a que
mezcla el lenguaje natural (espaol o ingls, por ejemplo) con
comandos de lenguaje de programacin y es precisamente por
eso que lleva el nombre de pseudocdigo: pseudo (falso), es decir
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Recuerda que los


lenguajes de
falso cdigo, porque aunque integra comandos de programacin, programacin
no puede ser ejecutado por el computador. son usados por el
programador para
Algunas de las ventajas que ofrece el pseudocdigo es que comunicarse con
favorece la concentracin del programador en la lgica y el el computador, a
travs de
razonamiento, sin prestar atencin a la sintaxis del lenguaje, ya que smbolos
es como escribir en el idioma hablado lo que quiere que suceda en convencionales.
el programa, as como tambin permite detectar errores lgicos en
una etapa temprana de la solucin del problema, ahorrndose
perder el tiempo.

Ejemplo: Escribir algoritmo para la suma de dos nmeros


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 grfica de representar un
algoritmo, indicando la manera en que se debe ir ejecutando cada La forma grfica
es la ms
instruccin a travs de smbolos que se interconectan entre si por antigua y usada
medio de lneas 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 informtica, de hecho, los dice el proverbio
chino de que
diagramas de flujo fueron desarrollados, inicialmente, para ser una imagen
aplicados en la administracin de empresas en la representacin (grfico) dice
de procesos y procedimientos que se ejecutan en reas como la ms que mil
planificacin estratgica, la elaboracin de productos, ventas, entre palabras.
otras reas dentro de las organizaciones. Sin embargo, su uso en
el desarrollo y creacin de sistemas computacionales ha sido muy
destacado, adems favorece la comprensin en el proceso para la
enseanza-aprendizaje de creacin y desarrollo de softwares,
razn por la que tal vez, es la forma ms usada para representar la
solucin de un problema.
El objetivo de los diagramas de flujo es facilitar la interpretacin o
anlisis de un proceso para encontrar la solucin al problema ms
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

fcilmente, sin embargo, los pseudocdigos pueden ser preferidos


en la representacin 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 pequeos. Los smbolos que conforman los diagramas
de flujo son formas geomtricas como cuadrados, rombos, crculos,
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 slo sentido, que indica la secuencia en que se desarrolla.

Simbologa de los diagramas de flujo

Entre los diferentes smbolos utilizados para la diagramacin,


destacamos aquellos con los que se puede representar
prcticamente cualquier algoritmo informtico por muy complejo
que sea. Estos smbolos bsicos son:

Nombre/Smbolo Funcin/Descripcin

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


perifricos o registro de informacin.
Entrada
general

Es utilizado para indicar accin, es decir que


Proceso contiene cualquier tipo de operacin que se debe
realizar a partir de los datos para generar la
transformacin deseada en los mismos.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Como su nombre lo indica, esta figura representa


una disyuntiva, dada en forma de pregunta,
condicin o expresin lgica, 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 smbolo es el nico que puede contener dos


Decisin salidas y en cada una de ellas se suele poner un
rtulo 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 pgina A medida que
Conecta dos partes de un diagrama dentro de la
vayamos
misma pgina, colocados uno en la salida y otro
desarrollando la
en la entrada.
unidad, podrn ir
entendiendo ms
Conector pginas Conecta dos partes de un diagrama, igual que el cada uno de estos
diferentes anterior, slo que en pginas diferentes. Con estos smbolos y la
conectores, es importante tener en cuenta, forma en que son
primero, que no intervienen en los procesos, por usados.
eso se denominan smbolos auxiliares y segundo,
que no es bueno abusar de su uso, ya que se
comenzara a perder claridad, cosa que va en
contra del objetivo principal de un diagrama, que
es facilitar la comprensin del algoritmo.
Lneas de flujo Indica el sentido de la ejecucin 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
especficas.

Este es un smbolo combinado que integra al


smbolo de decisin y al de proceso (2 en 1),
Bucle (loop)
llamado bucle porque es usado en sentencias
repetitivas o ciclos para hacer ms sencillo y
comprensible al diagrama de flujo, al reducir su
tamao. En la parte superior se coloca el valor
inicial, en el centro la decisin o expresin lgica y
en la parte inferior, un contador que slo se
detendr cuando se cumpla una condicin dada.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Existen plantillas que contienen la mayora de estos smbolos, muy


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

Ejemplo: Esquematizar en un diagrama de flujo las actividades


bsicas del computador.

INICIO

LEER

PROCESAR

INFORMACION

FIN
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Tipos de diagrama de flujo


De sistema. Su funcin es mostrar, en forma menos compleja,
el flujo lgico 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 cmo 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 lgicos que debe ejecutar la
computadora para resolver el problema. Son de naturaleza
especfica y detallada. Pueden ser parte de un proceso ms
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 smbolo 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 smbolos deben estar organizados de forma que el flujo


viaje de arriba hacia abajo y de izquierda a derecha.

No usar lenguaje de programacin dentro de los smbolos.

Centrar el diagrama en la pgina.

Las lneas deben ser verticales u horizontales, nunca


diagonales.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Etapas para la solucin de un problema

Antes de hablar de las etapas que


integran el proceso para la solucin de
un problema, es bueno que tengamos un
concepto preciso de lo que es un
problema, el cual se concibe como un
conjunto de incgnitas que se plantean
alrededor de alguna situacin, persona u
objeto, las que requerirn de uno o ms
procedimientos y/o pasos para ser
resueltas. Es frecuente escuchar la frase de que todo problema
tiene solucin, 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 rpida
ejecucin, en cambio, los no tratables son considerados como
difciles e incluso de no tener solucin, en ocasiones, pero ms
frecuentemente, lo que implican es simplemente mayor esfuerzo y
dedicacin de mucho ms tiempo o recursos computacionales para
alcanzar la solucin, por lo que tambin son llamados, lentos e
ineficientes.

El proceso de programacin, concebido como una serie de pasos,


es muy parecido al ciclo de vida de los sistemas de informacin,
como podrn notar. Estos pasos integran una especie de
planificacin para desarrollar un algoritmo, sin lo cual la
programacin puede resultar extremadamente difcil 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,
cmo, por dnde comenzar y qu resultados obtener. Los pasos
son:

Definicin del problema. Es bsicamente entender el


problema. Este primer paso se conoce como anlisis 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 tcnicas, tales como: entrevistas,
cuestionarios y observacin. Todo esto para determinar el
alcance, es decir, dnde comienza y dnde termina la solucin
a la que se quiere llegar.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Anlisis del problema. En base a la definicin, resultado del


paso anterior, se descompone el
problema en partes individuales y se
decide cules 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
solucin 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 llevarn a cabo y los datos de
salida, que ser la solucin misma del problema. El esquema
de solucin E-P-S (entrada, proceso y salida) es muy utilizado
por los programadores para Diagrama E-P-S para la elaboracin de un pan
organizar sus posibilidades y
poder visualizar la solucin de Entrada Proceso Salida
manera ms fcil. Aqu se debe Ingredientes Preparacin del Pan listo para
utensilios pan (juntar comer
examinar cuidadosamente la (harina, ingredientes,
situacin 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.

Diseo y desarrollo del algoritmo. Esta fase es una actividad Estos primeros 3
esencialmente creativa, en la que se traduce con precisin los pasos son la base
requerimientos del cliente a un producto o programa fundamental y los
ms importantes
terminado. En esta parte el programador desarrolla la lgica en este proceso,
que utilizar para la creacin del programa, donde se obtiene pues representan
el algoritmo que puede ser representado en cualquiera de las la lgica del
formas que hemos explicado anteriormente (pseudocdigo, programador.
diagrama de flujo). Integran la
solucin misma
del problema.
Prueba de escritorio. Verificacin de la eficacia del algoritmo,
es decir, comprobar si realmente da una solucin confiable al
problema. Es el seguimiento manual de los pasos descritos en
el algoritmo, donde se verifica la lgica del mismo, probando
con diferentes valores (datos reales que puedan representar
todas las posibles entradas, utilizando, calculadora, lpiz y
papel) y tiene como fin detectar errores, depurar, y refinar el
algoritmo. Los algoritmos siempre pueden contener
ambigedades, generalidades y errores, por lo que el
programador debe pulirlos, refinarlos, verificando las fallas y
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

procedimientos, perfeccionndolo para convertirlo en un


programa eficiente y eficaz.

A partir de los siguientes pasos, la solucin del problema


comprende la parte de la implementacin, llamada as porque
integra al computador, y es la diferencia bsica entre solucionar un
problema manual y por computadora:

Codificacin. La codificacin del algoritmo se refiere a escribir


el pseudocdigo o diagrama de flujo en algn lenguaje de
programacin previamente seleccionado, de acuerdo a la
preferencia del programador, para digitar el pseudocdigo,
tomando en cuenta la sintaxis y estructura gramatical de dicho
lenguaje.

Compilacin del programa. Despus de que el algoritmo es


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

Los softwares de compilacin actuales, adems de su funcin


de traductor, integran herramientas como un editor de textos,
un depurador (debugger) y otras utilidades de programacin
que simplifican este proceso, ayudando adems, en la
localizacin y correccin de errores sintcticos, de estructura o
lgicos, mostrando la posible ubicacin de los mismos.

Ejecucin. Con el cdigo objeto, obtenido en la fase anterior,


se pasa a la ejecucin del programa en el computador para
llegar a los resultados esperados.

Depuracin (debug, en ingls). Operacin 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 an cuando la ejecucin es perfecta.

Este paso de comprobacin es muy importante, en el que el


programa se ejecuta varias veces con distintos valores, a fn
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 lgicos,
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

cuando existe problema en la estructura lgica de


programacin, siendo estos ltimos los ms difciles de
encontrar y tal vez slo se detecten despus de algn tiempo
de su implementacin y puesta en uso, a partir de lo cual, slo
resta dar el mantenimiento requerido y solicitado por los
usuarios.

Documentacin. Se refiere a anotar los detalles y


observaciones, que luego, podran ayudar a cualquier usuario
ajeno al programa, e incluso al mismo autor, a entender el
cdigo fuente, indispensable a la hora de actualizar, dar
mantenimiento o depurar el programa. Esta documentacin
puede ser en forma de manuales de ayuda, que contienen
todo lo que integra el programa: diagramas de flujo,
pseudocdigos e instrucciones para el usuario (documentacin
externa), y en forma de comentarios, para explicar una seccin
dentro del programa (documentacin interna).

Programa de computadora. Cdigo


En realidad el objetivo ltimo de realizar todo este proceso para la
creacin de un algoritmo, es poder convertirlo en cdigo que el
computador pueda manejar y por tanto pueda ejecutar, resolviendo
el problema de forma automtica. Por lo general, un algoritmo se
crea a peticin de un usuario que necesita resolver un problema
dado, an as es posible que no sea necesario crearle un algoritmo
personalizado, ya que hoy da existen tantos y tan diversos
programas de computadoras en el mercado, que la mayora 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 slo una descripcin


de la solucin 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 programacin existentes (de los que ya hemos
hablado en la unidad 2, de donde pueden releer el tema de
software, desde la Pg. 21 hasta la Pg. 25, que describe dichos
lenguajes).
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

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


de computadora, pero en esta parte veamos cmo lo define Peter
Norton:

Conjunto de instrucciones o estipulaciones (tambin


llamadas cdigo) ejecutadas por la CPU de la computadora.
Estas instrucciones pueden ser escritas en muchos
lenguajes diferentes.

Este conjunto de sentencias, como tambin se les llama, se


organizan lgica y sintcticamente, para decirle al computador que
realice una tarea especfica, son escritas por el programador
utilizando un editor de textos, como hemos dicho. Los programas
de computadoras, tambin pueden ser clasificados en:

Programa fuente. Es el que se escribe en el editor de lneas y


obedece a la sintaxis de un lenguaje de programacin 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 codificacin que vimos en el tema anterior.

Programa objeto. Programa que resulta del proceso de traduccin


o compilacin del programa fuente. Este es el cdigo de que se
habla en el paso de ejecucin y es el programa que el computador
puede entender y ejecutar.

Como todo lenguaje, los de programacin tambin 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 gramtica que define
cmo utilizar esta lengua. Es por esto que una instruccin de un
programa de computadoras es una frase u oracin compuesta de
palabras, signos y parmetros, 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
Tcnicas de Programacin Aplicada

A este proceso de diseo y escritura de programas de


computadoras, se le llama programacin 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 habamos establecido, son los elementos


bsicos a partir de los cuales se obtiene la informacin, 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, adems 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 propsito determinado.

Campo. Es la unidad ms pequea de datos que se puede


definir dentro de un archivo. Ejemplo: nombre, cdula de
Identidad y electoral, direccin, telfono.

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


sirve para identificarlo y es nico. Ejemplo: cdula de Identidad
y electoral, cdigo de producto o de empleado, etc.

Registro. Es un conjunto de campos interrelacionados, que


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

Archivo. Tambin denominado fichero (file, en ingls). Se


define como una unidad de datos, integrada por un conjunto
de registros relacionados y bien organizados, los que deben
ser homogneos, es decir, deben tener la misma estructura
fsica, 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
Tcnicas de Programacin Aplicada

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

Los archivos pueden ser clasificados, segn su uso, en:

Archivos maestros. Aquellos cuyos registros son


relativamente permanentes, porque sufren poca variacin en el
tiempo. Se actualizan peridicamente para mantenerlos al da.

Archivos de movimiento. Son aquellos que se utilizan


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

Segn su acceso, en:

Secuenciales. En estos el acceso a los registros se hace


segn el orden de llegada, uno detrs 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
Tcnicas de Programacin Aplicada

Indexados. Son archivos en que los registros estn


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
especfico, no hay que pasar por los anteriores. El ndice y su
archivo correspondiente, ocupan posiciones contiguas en la
memoria, conteniendo la clave y la direccin de cada uno de
los registros para identificarlos.

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


asignacin de memoria especfica, por lo que pueden ser
accedidos de manera directa, slo con expresar su direccin
en el fichero por el nmero relativo del mismo.

Clasificacin de los datos

Los datos que se utilizan durante la ejecucin de un programa


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

Alfanumricas, de caracteres o de cadena. Son una mezcla


de los caracteres alfabticos (letras de la A a la Z), nmeros y
algunos smbolos especiales, tales como # y $. Estas
secuencias tambin pueden contener espacios en blanco y se
distinguen por estar encerradas entre comillas ().

Numricas. Contienen datos cuantificables representados por


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

Lgicas. Cuando aceptan slo uno de dos valores: verdadero


(true) o falso (false), denominas tambin como booleanas.

Variables. Son usadas para almacenar el valor de los datos


que estn siendo procesados. Se reservan como un espacio de
almacenamiento temporal para la informacin que necesita el
programa durante su ejecucin, 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 vacos son reservados por
el programa.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Constantes. Estas guardan valores invariables durante la


ejecucin del programa, y son definidas en la elaboracin del
mismo. Existen constantes numricas, de caracteres y lgicas.
Ejemplo: 7 es una constante numrica 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 cules son los caracteres y smbolos permitidos o
no por el lenguaje de programacin usado, la longitud del nombre
(cantidad de caracteres), entre otros, algo que tambin 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 tendra mucho sentido.

Expresiones, operadores y jerarqua de evaluacin


Los operadores son smbolos matemticos 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 slo valor u
pueden ser aritmticos y booleanos (de relacin y lgicos): operando, y
binario, cuando
relaciona a dos
Operadores aritmticos: integrados por los smbolos de valores en una
suma (+), resta (-), multiplicacin (*), divisin (/) y expresin.
exponenciacin (^).

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


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

Operadores lgicos: conjuncin (Y o AND), disyuncin (O u


OR), negacin (NO o NOT). Con estos operadores es que se
construyen las tablas de verdad.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Esta figura muestra algunos ejemplos del uso de los operadores


lgicos y de relacin.

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 jerarqua de evaluacin se refiere a la prioridad que tienen los


operadores dentro de la expresin, si hay ms de uno. Es decir
que el orden especfico en que los computadores evalan tales
expresiones, es determinado atendiendo a la jerarqua de stos,
desde el ms importante al ms simple, de la forma que se muestra
en el siguiente cuadro:

PRIORIDAD OPERADORES DESCRIPCION

valores parntesis se evalan primero y con


1 (()) parntesis anidados, de adentro hacia
afuera
2 ^ Exponenciacin
Multiplicacin y divisin. Con la misma
3 *, / prioridad. En una misma expresin se
evalan de izquierda a derecha.
Suma y resta al mismo nivel. Con la misma
4 +, - prioridad. En una misma expresin se
evalan de izquierda a derecha.
5 =, <, >, <=, >=, <> Relacionales. Al mismo nivel.

6 NOT (NO) Operador lgico de negacin

7 AND (Y) Operador lgico de conjuncin

8 OR(O) Operador lgico de disyuncin


Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Enfoques de programacin.
El enfoque tradicionalista de la programacin se basa en un
paradigma lineal, donde las diferentes incgnitas que integran el
problema se solucionan paso a paso, sin descomponerlo, lo que
daba como resultado, el llamado cdigo spaghetti, haciendo su
lectura, comprensin y actualizacin algo casi imposible. Sin
embargo, para obtener un rendimiento mximo y mejores
resultados en la tarea de programar, es importante asumir las
tcnicas o mtodos, que a travs del tiempo se han ido
desarrollando en la programacin de computadoras como es la
programacin estructurada, que es un conjunto de tcnicas para
desarrollar algoritmos fciles de escribir leer y modificar. No
contempla la sentencia GOTO, la que representa un dolor de
cabeza a la hora de actualizar los cdigos fuentes y una desventaja
de la programacin lineal, usada anteriormente.

Este modelo de programacin viene a ser una estrategia que


excluye esos problemas, haciendo ms fcil 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 diseo modular y descendente, en el que
los mdulos se organizan jerrquica y lgicamente, a travs de un
proceso de refinamiento, con el objetivo de simplificar la
complejidad que presentan algunos problemas, desglosndolo en
problemas ms simples o subprogramas, que al codificarlos, sean
capaces de ser ejecutados de forma independiente.

Estos subprogramas, procedimientos, funciones o subrutinas, que


como dijimos, son mdulos independientes que forman parte de un
programa ms grande, definidos para realizar operaciones
especiales o tareas especficas. Una subrutina se utiliza entonces,
para reemplazar un grupo de sentencias sucesivas que se repiten
una o ms 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 codificacin (BASIC, COBOL, PASCAL,
etc.). Estas ofrecen la ventaja de que pueden usarse en ms de un
lugar en el mismo programa, o en otro diferente, sin tener que
reescribirlo cada vez. Muy convenientes para el desarrollo de
funciones matemticas como los logaritmos, la raz cuadrada, o
funciones trigonomtricas.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Cuando una subrutina es llamada, el cdigo principal se detiene


para que el cdigo 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 modernizacin que contina experimentando la


programacin, se demuestra con el desarrollo de la programacin
orientada a objetos (Object-Oriented Programming, OOP, por sus
siglas en ingls) alrededor de los aos 80. Este enfoque, tambin
se basa en la programacin estructurada, pero mejorada, es decir
que la programacin en un lenguaje orientado a objetos mantiene
el concepto modular, pues los objetos son especies de mdulos
terminados que forman parte de un programa que pueden ser
transportados hacia otra aplicacin, lo que permite al programador
ahorrar ms tiempo cuando desea crear un nuevo programa, al no
tener que empezar de cero, sino que puede emplear los objetos o
mdulos de otros programas en una nueva aplicacin, por ejemplo
C++.

La programacin visual, por su parte, ofrece un entorno en donde


la codificacin tradicional queda en un segundo plano. Muy usado
por personas que se identifican ms con lo visual, permite a los
creadores de software construir partes importantes de sus
programas slo con arrastrar imgenes y haciendo clic, permitiendo
ahorrarse gran parte del fastidioso tipeo de instrucciones, por lo
que personas inexpertas en programacin con intenciones de
incursionar a la industria del software, e incluso no programadores,
han sido atrados por este entorno grfico que les permite de
manera ms simple, hacer sus creaciones dejando la codificacin
de problemas ms 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 bsicas, que al
combinarse entre s, permiten escribir cualquier programa,
independientemente de su complejidad. Estas se refieren a las
estructuras lgicas 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 programacin.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Estas estructuras de control son las de secuencia, de seleccin y


de repeticin:

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 patrn lgico ms
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 nmeros. Representar


mediante: a) pseudocdigo y b) diagrama de flujo:

a) Representacin mediante pseudocdigo: 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 sern
introducidas o ledas desde el teclado o una unidad de disco, para
luego multiplicarlas, podemos hacerlo por su asociacin con
contantes, por su asignacin 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
Tcnicas de Programacin Aplicada

Tambin vemos, cmo la sentencia de asignacin es utilizada en


los programas para almacenar o asignar valores a variables,
ubicando un valor determinado en una posicin de memoria. En un
pseudocdigo, la sentencia de asignacin opera con el smbolo <-
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 operacin de salida, usada para visualizar los


resultados obtenidos durante la ejecucin 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 tambin podra ser por pantalla, por un dispositivo de
almacenamiento o un puerto de E/S (de comunicacin).

En el ejemplo anterior, tambin 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 clasificacin de sentencias no ejecutables, que
tienen una funcin que se podra denominar como abstracta, ya
que no intervienen en la ejecucin 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 operacin en el
programa. En cambio, las sentencias Leer B y Producto<-A*B, son
denominadas sentencias ejecutables, que son las que definen
operaciones aritmticas y de entrada y salida de datos, como en
este caso.

2) Seleccin (de decisin). En este tipo de estructura se


requiere tomar una decisin lgica en base a una condicin
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
Tcnicas de Programacin Aplicada

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


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

si Condicin no
si (condicin o expresin lgica) entonces ?
sentencia(s) 1;
sino sentencia(s)1 sentencia(s)2
sentencia(s) 2;

Ejemplo: realizar algoritmo, usando pseudocdigo y diagrama


de flujo, que determine el mayor de dos nmeros para dividirlo
entre el menor, e imprimir dicho nmero y el resultado de la
divisin.

a) Pseudocdigo 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 condicin o expresin lgica, necesaria para
resolver el problema planteado en el ejemplo. Esta le indica al
computador que (if) si el resultado de la comparacin a>b?, es s
Dra. Ing. Rina Familia
Tcnicas de Programacin 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 nmero mayor que es la variable a, y el
resultado de la divisin, 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 nmero mayor que es la variable b y el resultado de la
divisin almacenado en la variable div.

Como ven, este patrn lgico llamado seleccin, permite alterar la


secuencia de ejecucin del programa, dependiendo del resultado
de la comparacin, lo que se conoce como bifurcacin, 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 condicin para hacer la transferencia.

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


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

si condicin 1 entonces
sentencia(s) a
sino
si condicin 2 entonces
sentencia(s) b
sino
sentencia(s) c

Esta sintaxis nos indica que cuando la condicin 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 condicin
2, ejecuta la sentencia(s) b, cuando sea verdadera, y la
sentencia(s) c, cuando sea falsa.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

Ejemplo: escribir algoritmo que pida 3 nmeros e identifique


cul de ellos es el mayor. Imprimir el resultado.

a) Pseudocdigo 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 nmero mayor es: ", mayor;
Fin
fin

Las sangras usadas en este pseudocdigo, sirven para


estructurarlo y hacerlo ms legible.
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

3) Repeticin. Esta es una estructura de control que permite


repetir un conjunto de sentencias que generalmente es
llamado bucle (loop en ingls), que en espaol significa lazo
o ciclo.

Los comandos de repeticin usados para crear bucles,


dependiendo de las caractersticas 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
prximo, 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 (condicin o expresin lgica) hacer no


sentencia(s) 1; condicin
?
finmientras
si

sentencia/s

Ejemplo: escribir algoritmo para obtener la sumatoria de los


nmeros del 1 al 100 e imprima resultado. Inicio

a) Pseudocdigo 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
Tcnicas de Programacin Aplicada

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

n<-0
a) Pseudocdigo 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
n100
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 nmeros 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 repeticin que ofrecen los lenguajes de programacin. El
comando de repeticin repeat/until (repetir/hasta), que es un bucle
condicional usado cuando desconocemos el nmero de
iteraciones. Repetir marca el inicio del bucle y hasta que, lo Se llama iteracin
cierra, encerrando entre estas dos palabras claves la o las a cada repeticin
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
condicin evaluada sea verdadera. En este caso el cuerpo del
bucle es:
n<-n+1;
s<-s+n;

Luego se reanuda la ejecucin 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 precaucin de que stos no


sean indefinidos o que nunca sean ejecutados. Los comandos
repetitivos mencionados anteriormente, definen ciertos criterios
para evitar estos tpicos errores, por ejemplo en este caso, al usar
Dra. Ing. Rina Familia
Tcnicas de Programacin Aplicada

la instruccin Repetir hasta (Repeat until), se debe asegurar que


la condicin dada contenga una variable cuyo valor se modifique
en el cuerpo del bucle, para que en algn momento esta condicin
tome un valor verdadero y el bucle pueda detenerse. Adems,
como se puede notar, esta sentencia realiza el proceso antes de
verificar la condicin, contrario a la sentencia Mientras (While) que
el proceso se ejecuta despus, tal como se puede ver en el primer
ejemplo.

Utilizar For cuando el nmero de iteraciones es conocido de antemano.


Utilizar While cuando el nmero de iteraciones es desconocido y el bucle
no se debe ejecutar si la condicin es falsa la primera vez.
Utilizar Repeat-until cuando el nmero 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, lmite inferior de los nmeros a sumar y se que se incrementa
incrementar en 1 cada vez que se produzca una iteracin. 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, tambin se debe establecer una variable que


acumule la sumatoria a medida que el contador se incremente y
llegue a su lmite 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 varan cada vez, siendo n la cantidad variable.
Los acumuladores se utilizan para almacenar cantidades
homogneas 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 nmero de personas, debe utilizar
un contador para las personas y un acumulador para los salarios.

Los contadores y acumuladores son de gran utilidad en


programacin, 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
Tcnicas de Programacin Aplicada

Bibliografa

Norton, 2006 6ta Edicin, Introduccin a la Computacin,


McGraw Hill.

Parsons & Oja, 2006 Sexta Edicin, Conceptos de


Computacin, Nuevas Perspectivas.

Beekman, Binet; Durn, Melenciano & Vsquez,


Introduccin a la Informtica, 2009 1ra Edicin, Pearson-
Prentice Hall.

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


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

Joyanes, Luis: Problemas de Metodologa de la


programacin. (1990). McGrawHill.

Joyanes, Luis: Fundamentos de programacin. Libro de


problemas. McGraw-Hill.

Joyanes, Luis: Metodologa de la programacin. McGraw-


Hill.

Libros para principiantes en la programacin


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

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