Sie sind auf Seite 1von 16

2

Es preciso servirse de todas las ayudas del entendimiento, de la imaginacin, de l


os sentidos y de la memoria, bien sea para tener una intuicin distinta de las pro
posiciones simples, bien sea para establecer entre las cosas que uno busca y las
que uno sabe una vinculacin adecuada que permita reconocerlas, bien sea para enc
ontrar las cosas que deben ser comparadas entre s, sin descuidar ningn recurso del
ingenio o industria humanos. Ren Descartes Reglas para la direccin de la mente Re
gla XII - 1628.
2.1 Concepto de Variable
Imagine una calculadora que slo es capaz de realizar las cuatro operaciones aritmt
icas, nada ms. Cuando se utiliza una calculadora como sta para calcular una expres
in como 256-24+169, no hay problema alguno en llevar a cabo este clculo, pero si s
e pretende calcular una expresin como la siguiente:
1 59 4 + + 3 14 3
, entonces se
hace necesario utilizar adicionalmente papel y lpiz para almacenar temporalmente
los resultados parciales ya que, por ejemplo, el resultado de la operacin
1 3
se pierde en
este inconveniente, las calculadoras poseen una memoria donde se pueden almacena
r estos resultados parciales para disponer de ellos cuando sean necesarios y as p
oder calcular frmulas ms complejas sin hacer uso de otro instrumento adicional. Po
r supuesto, en la medida que las calculadoras proveen un nmero cada vez mayor de
operaciones, tambin lo hacen en una mayor cantidad de memorias; ahora bien, si se
considera un computador como una calculadora muy compleja, es razonable suponer
entonces que ste tendr un nmero elevado de estas memorias. En un contexto de progr
amacin, estas memorias reciben el nombre de variables, y son los elementos fundam
entales de operacin de un programa
el momento de calcular la operacin 5 9. Para solucionar

Pag. 2 2
Cap.2: El Mtodo Algortmico
ya que ellas albergan los datos para los cuales el programa est elaborado. En com
putacin, el concepto de variable es similar al mismo concepto en lgebra: un nombre
que representa un valor que puede cambiar en el tiempo. En computacin, sin embar
go, el concepto va ms all para incluir entonces la idea expresada en el prrafo ante
rior acerca de una localidad de memoria que se utiliza para el almacenamiento te
mporal de valores. Sabiendo esto, se puede definir una variable como una localid
ad especfica de la memoria del computador, identificada con un nombre y que almac
ena un dato. Una vez que se hayan diseado algunos programas, se podr observar clar
amente que stos operan sobre un grupo de datos para producir un grupo de resultad
os y que todos ellos estarn ubicados en variables, incluso se podr afirmar que pro
gramar no es otra cosa que manipular variables. Si la afirmacin anterior es ciert
a, entonces es razonable concluir que el desarrollo de un programa debe comenzar
con la representacin de los elementos del problema como variables. Esta idea, as
como otras relativas a los distintos tipos de datos a manipular, sern desarrollad
as en los prximos captulos.
produce un resultado o, lo que es lo mismo, resuelve un problema. Segn esta defin
icin se puede afirmar que cosas como las recetas de cocina, los manuales de opera
ciones, las normas de clculo y las instrucciones para manejo de aparatos son proc
edimientos. Pues bien, un algoritmo es un procedimiento que rene las siguientes c
aractersticas: debe ser definido: es decir, sin importar el nmero de veces que se
aplique en las mismas condiciones, siempre se obtendr el mismo resultado; debe se
r preciso: es decir, no deber sembrar duda alguna sobre el orden de ejecucin de ca
da uno de los pasos y sobre la naturaleza y el propsito de cada uno de ellos;

debe ser finito: es decir, el algoritmo deber producir un resultado en un nmero fi


nito de pasos. Y por qu estas caractersticas? Pues precisamente porque los pasos de
un algoritmo deben ser susceptibles de ser traducidos a un lenguaje creado para
hacer trabajar un computador y ste, dada su naturaleza lgicoelectrnica, no acepta
ambigedades en ninguna de las instrucciones que se le dan ni en su orden.
Existen excepciones aparentes a estas reglas: una de ellas ocurre cuando un algo
ritmo lleva a cabo operaciones que involucran nmeros aleatorios. Otra ocurre cuan
do es imposible en trminos prcticos obtener una solucin exacta a un problema a part
ir de un algoritmo, obligando al programador a utilizar soluciones aproximadas.
A PROPSITO

2.2 Resolucin de problemas.


Debido a que un estudiante ha resuelto una gran cantidad de problemas, sera razon
able plantearle las siguientes preguntas: Cmo los resolvi? Utiliz algn mtodo general p
ra resolverlos? El mtodo utilizado presenta esquemas que siempre estn en su mente c
uando resuelve los problemas? Utiliz el mismo mtodo para resolver problemas de dist
intas asignaturas o de distinta naturaleza? Probablemente haya utilizado un mtodo
cuyo nombre no conoce o probablemente haya utilizado elementos de varios mtodos
para resolver un solo problema. En el presente captulo se presenta el Mtodo Algortm
ico cuyo nombre responde al hecho de que precisamente est enfocado en producir un
Algoritmo. Por ello, para entender el mtodo hay que entender qu es un algoritmo.
2.4 Mtodo Algortmico.
El mtodo algortmico est concebido para resolver no slo un problema particular sino p
ara proporcionar un instrumento que permita resolver variaciones del problema or
iginal, del mismo modo que una frmula no slo devuelve un valor para un grupo de va

riables sino tambin para todos los valores que puedan tomar esas variables. Este
mtodo consiste en la aplicacin de los siguientes pasos: Anlisis del problema. Diseo
del algoritmo. Codificacin.
2.3 Algoritmos.
Es bueno aclarar primero que un algoritmo es importante en el estudio de la prog
ramacin porque, si bien el mtodo algortmico produce algoritmos, el presente curso p
retende, entre otras cosas, que el estudiante produzca programas de computacin. Y
un programa de computacin no es otra cosa que la expresin en lenguaje de programa
cin de un algoritmo, por lo que el proceso de resolucin de problemas con el comput
ador comienza con el desarrollo de algoritmos. Tambin es bueno definir primero lo
que es un procedimiento o una receta: un conjunto de instrucciones o de tareas
que ejecutados siguiendo un orden preestablecido o establecido por el mismo proc
edimiento,
Programacin con Delphi
2.4.1
Anlisis del problema.
Este paso consiste en identificar muy claramente los elementos que componen el p
roblema, es decir: Las incgnitas, porque son precisamente, el propsito del problem
a. En ocasiones no son fcilmente identificables; en estos casos, no se debe segui
r adelante hasta haber resuelto con toda claridad este paso. Los datos, porque s
on los elementos que se deben manipular para hallar respuesta a las incgnitas.

Ing. Jos Ricardo Vargas

Cap.2: El Mtodo Algortmico


Pag. 2 3

Las restricciones, porque indicando lo que no se debe hacer o lo que no se debe


aceptar, limitan el conjunto de caminos para resolver el problema, representando
con ms fiabilidad el universo, ayudando a su solucin y

Las frmulas, porque siendo las expresiones con los que se manipulan los datos par
a resolver las incgnitas, indican el rumbo que debe tomar el desarrollo del algor
itmo. La determinacin de las mismas puede requerir de deduccin o de investigacin ex
tra de informacin, lo cual se traduce en el gasto de un porcentaje, a veces alto,
del tiempo de resolucin del problema. En otras palabras, se puede decir que en e
sta etapa se determina qu es lo que debe hacer el algoritmo, a partir de qu datos
y bajo qu condiciones.
un estado de nimo adecuado y el disfrute de una buena salud facilita enormemente
el desarrollo de los procesos mentales. Cuando se presenta el caso de un problem
a complicado, entonces el individuo debe echar mano de recursos que despejen el
camino entre las ideas en su forma mental y su expresin, con miras a construir el
algoritmo. Para ello se aconseja el uso de dibujos, diagramas, grficos y frmulas
as como de tcnicas, individuales o colectivas, para el desarrollo de ideas, tales
como el brainstorming y los mapas mentales, con el propsito de ir y volver de la
parte anterior para producir ideas cada vez ms claras y desarrollar cada uno de l
os pasos que componen el algoritmo.
Durante el desarrollo del algoritmo, el programador debe pensar tambin en el modo
ms conveniente de organizar variables ya que, como se ver ms adelante, la mayora de
los problemas exige la manipulacin de una gran variedad y una gran cantidad de st
as. Para facilitar esta tarea, los lenguajes ofrecen estructuras de datos que pe
rmiten agrupar variables segn su naturaleza o segn la conveniencia que stos brinden
en cada problema. Por ello, el diseo de un buen algoritmo implica la creacin de u
n buen conjunto de instrucciones y un buen conjunto de estructuras de datos.
A PROPSITO
2.4.2

Diseo del algoritmo


Este gran paso se ejecuta a travs de las siguientes etapas: Una primera etapa se
lleva a cabo a un nivel puramente mental, ya que de la mente nacer un bosquejo ge
neral del conjunto de pasos que resolvern el problema o del rumbo que debern tomar
las siguientes acciones, todo ello como resultado de una serie de fenmenos en lo
s que intervienen la memoria, las capacidades creativas y las asociaciones menta
les que cada individuo haya construido entre los elementos del problema y el res
to del universo. El individuo le ordena o le pide a la mente ayuda para resolver
un problema y sta responde en la medida de sus posibilidades y de un modo sorpre
ndentemente mgico con una idea. Una segunda etapa consiste en hacer esa idea lo s
uficientemente clara y definida para formar un primer conjunto de pasos de tal m
anera que stos puedan ser expresados, bien sea con palabras, dibujos, smbolos, etc
. y, como se ver ms adelante, mediante pseudocdigo o mediante diagramas de flujo. E
sta tarea puede ser complicada si se torna difcil transformar la idea en algo suf
icientemente claro y preciso o si el problema a resolver tambin es complicado. Si
se presenta el primer caso, recuerde que la claridad de esa idea depende de muc
hos factores, entre los que se mencionan: a) la cantidad y calidad de informacin

que sobre ese problema o problemas similares y sus componentes hayan en su mente
y lo accesible que sta sea en un momento dado, b) el entrenamiento recibido y re
alizado por el individuo, ya que ste hace que se desarrolle un mayor nmero de asoc
iaciones recurrentes, facilitando a la mente la formacin de la idea al tener mayo
r intuicin sobre los elementos del problema, c) el estado de salud y nimo del indi
viduo, ya que est demostrado que una actitud mental positiva,

Una tercera etapa es necesaria cuando la complejidad del problema es tal que par
a resolverlo, ste debe ser dividido en mdulos de complejidad menor que el problema
original. Entonces cada mdulo se transforma en un nuevo problema cuya solucin se
encontrara por la aplicacin del mismo mtodo aplicado al problema original anlisis del
problema, procesos mentales, etc. Cabe hacer notar que cada mdulo sera tambin susc
eptible de ser subdividido en mdulos ms simples. Este proceso se conoce como proce
so de descomposiciones sucesivas, refinamientos sucesivos, diseo descendente, dis
eo top down o diseo modular y sus nombres derivan del hecho de que en cada refinam
iento, el problema original quedar dividido en un nmero cada vez mayor de mdulos de
solucin ms sencilla. Y hasta cundo se realizan esos refinamientos? Hasta que se cue
nta con un algoritmo cuyos pasos son fcilmente transformables en instrucciones de
un lenguaje de computacin, sin perder de vista las caractersticas de un algoritmo
: definicin, precisin y finitud.
Ejemplo 2 1
Examnese el siguiente problema: Dadas dos rectas por las coordenadas de dos de su
s puntos, ambas rectas inclinadas, elabore un algoritmo para determinar si esas
rectas se interceptan y, si lo hacen, determine las coordenadas del punto de int
erseccin. Primera parte: Anlisis del problema.
DATOS ........ Las dos rectas coordenadas de dados dos por de las sus
Programacin con Delphi
Ing. Jos Ricardo Vargas

Pag. 2 4
puntos. Llmense A y B a las dos rectas, (x1,y1) y (x2,y2) las coordenadas de los
puntos de la recta A y (x3,y3) y (x4,y4) las coordenadas de los puntos de la rec
ta B. INCGNITAS ... Las coordenadas llamadas (xint,yint) del punto de interseccin de
las dos rectas si stas se interceptan o un mensaje que indique que no se interce
ptan si no lo hacen. RESTRICCIONES Dado que el enunciado establece que las recta
s deben ser inclinadas, entonces los datos deben cumplir con las siguientes cond
iciones: x1<>x2, y1<>y2, x3<>x4 y y3<>y4. Aunque no se especifica en el enunciad
o, es obviamente necesario verificar tambin que las rectas no sean paralelas. FRMU
LAS ..... Si se denota a la pendiente del segmento A como PA y a la pendiente de
l segmento B como PB, entonces se tiene que: Abscisa del punto de interseccin:
xint = y3 y1 + PAx1 PBx3 (PA PB)

Cap.2: El Mtodo Algortmico Observe ahora la particularidad de algunos pasos como si


se cumple que ... entonces... o imprima... o vaya al paso... . Ms adelante se ver que
existen tipos de pasos o instrucciones con caractersticas propias que permiten cl
asificarlos segn la tarea que ejecutan. Tambin cabe destacar en este ejemplo, que
el mismo no es lo suficientemente complejo como para que el algoritmo sea subdiv
idido en mdulos, pero ste no ser siempre el caso.
Recuerde que se pretende que al final, el problema sea resuelto por un computado
r. De ah la existencia de instrucciones como lea, imprima, etc.
A PROPSITO
2.4.3
Codificacin
Ordenada del interseccin:
punto
de
yint = PA(xint x1)+y1
Consiste en escribir el algoritmo desarrollado utilizando los elementos de un le
nguaje de programacin, con la finalidad de transformarlo en un programa. Este tem
a ser cubierto extensamente en los prximos captulos. Durante el desarrollo del algo
ritmo, es conveniente representarlo mediante alguna herramienta independiente de
l lenguaje de programacin que se planee utilizar; esto le brinda al programador u
na serie de ventajas, como son las siguientes: primero, el algoritmo puede ser e
scrito posteriormente en varios lenguajes de programacin; segundo, el algoritmo p
uede ser codificado por una persona o un equipo diferentes al que lo dise, y terce
ro, se desarrolla en el programador el hbito de trabajar ordenadamente. A continu
acin se presentan algunas de ellas.
Observe que durante el anlisis no solo se identifican los elementos del problema
sino que tambin se les asigna un nombre a cada uno de ellos, es decir, son repres
entados como variables. Esto es sumamente importante debido a que, como se menci
on anteriormente, ayuda a la manipulacin de los mismos. Segunda parte: Desarrollo
del algoritmo.
IDEA: Verificar los datos de entrada, calcular las pendientes y verificarlas y c
alcular luego las coordenadas del punto de interseccin. PASO 1 . Designar las coo
rdenadas de los puntos extremos de los segmentos como x1, x2, x3, x4, y1, y2, y3
y y4. PASO 2 . Si se cumple que x1=x2 x3=x4 y1=y2 y3=y4, entonces imprima el me
nsaje Datos incorrectos y vuelva al paso 1. PASO 3 . Calcular las pendientes de la
s rectas A y B mediante las frmulas PA=(y2y1)/(x2 x1) y PB=(y4 y3)/(x4 x3). PASO
4 . Si se cumple que |PA|=|PB|, entonces imprima el mensaje Rectas paralelas y vay
a al paso 7. PASO 5 . Calcular las coordenadas del punto de interseccin de las re

ctas mediante las frmulas: xint = (y3 y1+PAx1 PBx3)/(PA PB) yint = PA(xint x1)+y1
PASO 6 . Imprima xint y yint. PASO 7 . Fin.
2.5
Pseudocdigo.
Expresar un algoritmo mediante pseudocdigo consiste en expresar cada uno de los p
asos con palabras y smbolos escritos del lenguaje comn, como se mostr en el ejemplo
anterior, de tal manera que el mismo pueda ser reproducido por cualquier person
a que conozca por lo menos dichas palabras y el significado de los smbolos. An cua
ndo estos pasos sern luego ejecutados secuencialmente, se recomienda enumerarlos
ya que el orden de ejecucin de los mismos puede alterarse por instruccin de alguno
de ellos.
Ejemplo 2 2
Examnese el siguiente problema: Dado un nmero entero positivo, elaborar un algorit
mo para determinar si el nmero dado es primo. Primera parte: Anlisis del problema.
DATOS ...........El nmero dado, que se llamar N INCGNITAS ......Una caracterstica de
l nmero: si es primo o no. RESTRICCIONES ...El nmero N deber cumplir con la condicin
de ser entero ya que el concepto de nmero primo se aplica slo a los nmeros enteros
. FRMULAS ........El concepto de nmero primo es un concepto relativo a divisibilid
ad de nmeros. Un
Programacin con Delphi
Ing. Jos Ricardo Vargas

Cap.2: El Mtodo Algortmico


nmero N es divisible entre otro nmero B si la divisin N/B produce un cociente enter
o.
Pag. 2 5
Segunda parte: Desarrollo del algoritmo.
IDEA: Un numero ser primo slo si es divisible entre si mismo y la unidad. Entonces
, para verificar si el nmero N es primo, bastar comprobar que no es divisible entr
e algn nmero situado entre 2 y N 1. PASO 1.. Designar el nmero como N. PASO 2.. Si
el nmero N no es entero o es negativo, repetir el paso 1. PASO 3.. Llame B a una
variable y asgnele el valor 2. PASO 4.. Compruebe si N es divisible entre B. Si l
o es, entonces imprima el mensaje NO es primo y vaya al paso 8. PASO 5.. Increment
e el valor de B en uno. PASO 6.. Si B es menor que N, vaya al paso 4; si no, sig
a con el siguiente paso. PASO 7.. Imprima el mensaje SI es primo. PASO 8.. Fin.
instrucciones. Esta representacin permite al programador reconocer rpidamente y ma
nipular grficamente tanto esquemas de instrucciones como la secuencia de ejecucin
de estas, de modo que la concepcin o la modificacin de un grupo de ellas se hace ms
fcil. Tambin adapta al programador novato al modo de desarrollar los algoritmos t
omando en consideracin el uso de pasos fcilmente adaptables a instrucciones en len
guaje de computacin. Cuando se trabaja con diagramas de flujo y con lenguajes de
programacin, se acostumbra utilizar el trmino instruccin en lugar del trmino paso de
bido a que una instruccin conlleva la idea de una orden dada al computador para q
ue ste ejecute una tarea. Como se mencion al final del ejemplo 2.1, existen tipos
de instrucciones, cada uno de estos con caractersticas que permiten clasificarlos
segn la labor realizan. En la siguiente tabla se puede observar no slo algunos de
estos tipos, sino tambin del smbolo correspondiente.
2.6
Comprobacin manual de algoritmos: Corrida en fro.
Terminal. Indica el inicio, el fin o una parada del programa. Instruccin simple.
Usualmente usado para representar clculos. Operacin general de entrada/salida de d
atos y resultados. Invocacin de un subprograma. Instruccin de seleccin. Bifurca la
secuencia de instrucciones segn el resultado de una seleccin. Instruccin de Iteracin
. Permite la repeticin controlada de un grupo de instrucciones. Lneas de flujo. In
dican la secuencia de ejecucin de las instrucciones. Conectores de secuencia. Per
miten seguir la secuencia de instrucciones entre puntos distantes sin el uso de
flechas.
Esta tarea consiste en representar por escrito el comportamiento de los elemento
s involucrados en el algoritmo durante una ejecucin del mismo con valores de entr
ada cuyo resultado se conozca de antemano, con el propsito de verificar si el alg
oritmo funciona, y si no funciona, entonces como una forma de ubicar los pasos d
el mismo que contengan errores. Una prctica comn de realizar una corrida en fro uti
liza una tabla donde se escriben todos los valores tomados por estos elementos y
donde se escriben los resultados finales del algoritmo.
Ejemplo 2 3
Examine los valores que toma la variable B en las siguientes tablas que represen
tan las corridas en fro del algoritmo del ejemplo 2 2: la primera con un nmero pri
mo y la segunda con un nmero que no lo es, y observe en la segunda tabla que, ape
nas se verifica que el nmero es divisible entre 2, se imprime el mensaje NO ES PRI
MO y termina la ejecucin del algoritmo.
N 7
B 2 3 4 5 6 7

Salida SI es primo
N 9
B 2 3
Salida NO es primo
Tabla 2 1. Simbologa bsica de los diagramas de flujo.
2.7
Diagrama de Flujo.
Un diagrama de flujo (flowchart) es la expresin de un algoritmo en la que se util
iza un conjunto de smbolos universalmente reconocidos y aceptados, cuya forma se
corresponde con tipos de pasos algortmicos o
Programacin con Delphi
Por supuesto, los smbolos mostrados en la tabla anterior no son todos los smbolos
utilizados para elaborar diagramas de flujo, pero son suficientes para los propsi
tos de un curso bsico de programacin. Existen normas como la norma ISO 1028 1973 y
versiones en distintos pases de la simbologa general que incluyen
Ing. Jos Ricardo Vargas

Pag. 2 6
Cap.2: El Mtodo Algortmico
smbolos especficos para manejo de accesorios o para operaciones que estn implementa
das slo en algunos lenguajes de programacin e incluso en algunos sistemas operativ
os. Estas normas no slo especifican la simbologa sino tambin la gramtica de los diag
ramas de flujo, la cual tambin sufre de variaciones menores segn el lugar donde se
apliquen, pero cuyo resumen, que se muestra a continuacin, ha sido aceptado por
la mayora de los organismos y las empresas involucradas en el uso de estos: El fl
ujo de ejecucin de instrucciones estar indicado nicamente por flechas y conectores
de flujo.

Todo smbolo tiene al menos una flecha de llegada y al menos una flecha de salida,
con excepcin de los bloques terminales y los conectores de flujo. El flujo de ej
ecucin de instrucciones ser preferiblemente de arriba abajo y de izquierda a derec
ha. Slo habr un smbolo de inicio y un smbolo de fin de programa, pudiendo haber vari
os de parada del programa. Slo los bloques de seleccin podrn tener varias flechas d
e salida.

Ejemplo 2
Observe a
o 2.2, el
rrollados
INICIO

4
continuacin el diagrama de flujo correspondiente al problema del ejempl
cual muestra adems, las instrucciones correspondientes a los pasos desa
en el mencionado ejemplo.

Leer N
PASO 1:
Designar el nmero como N.
no
N>0 y N entero? si B 2
PASO 2:
Si el nmero N no es entero o es negativo, repetir el paso 1. Llame B a una variab
le y asgnele el valor 2.
PASO 3:
N es divisible entre B? no B B +1
si
PASO 4:
Compruebe si N es divisible entre B. Si lo es, entonces imprima el mensaje NO es
primo y vaya al paso 8.

Imprimir "No es primo"


PASO 5:
si B < N? no Imprimir "Si es primo"
Incremente el valor de B en uno. Si B es menor que N, vaya al paso 4.
PASO 6:
PASO 7:
Imprima el mensaje SI es primo.
FIN
PASO 8:
Fin.
De nuevo, este resumen es suficiente para un curso bsico de
ue tanto los smbolos como las normas son pocas y sencillas,
agramas de flujo una herramienta sumamente fcil de aprender
comprender los conceptos de programacin que se vern en los
Programacin con Delphi

programacin. Observe q
razn que hace a los di
y de gran ayuda para
prximos

captulos. An cuando existen varias formas de representacin de algoritmos, el diagra


ma de flujo se ha destacado como una herramienta conveniente para facilitar el p
roceso de transformacin de ideas en instrucciones debido a la facilidad con que e
l cerebro manipula objetos grficos en lugar de palabras.
Ing. Jos Ricardo Vargas

Cap. 2: El Mtodo Algortmico


Pag. 2 7
Igualmente se ha destacado como un mtodo importante para documentar procesos y pa
ra transmitir instrucciones entre programadores debido a su independencia de los
lenguajes de programacin. En los prximos captulos se expondrn los elementos de cons
truccin de programas y se utilizar el diagrama de flujo como herramienta til en el
inicio del proceso de desarrollo de habilidades para construir algoritmos y para
sembrar en la mente del estudiante los procesos bsicos de programacin.

Preguntas de repaso
1. Qu es, en programacin, una variable? Tiene sta el mismo significado que en lgebra?
2. Cree usted que un programa puede procesar un valor que no est almacenado en una
variable? 3. Qu es un procedimiento? Qu es una receta? Qu es un algoritmo? Puede cons
derarse el conjunto de los algoritmos como un subconjunto de los procedimientos?
4. Cules son las caractersticas de un algoritmo? Cree usted que un algoritmo sea slo
para construir programas de computacin? 5. Cuntos y cules son los pasos del Mtodo Al
gortmico? Describa brevemente cada uno de ellos. 6. Puede afirmarse que el anlisis
de un problema se reduce a un proceso de identificacin de elementos? Por qu? 7. En q
u consiste el diseo de un algoritmo? En cuntas etapas se lleva a cabo? Una vez diseado
, qu paso sigue? 8. Cmo cree usted que influye el entrenamiento del programador en
su habilidad para disear algoritmos? 9. Qu es brainstorming? Qu son los mapas mentale
s? Qu otras tcnicas de ayuda para resolucin de problemas conoce usted? Cree usted que
todas estas tcnicas son individuales o de grupo? 10. Qu son las estructuras de dat
os? Cmo influyen en el diseo de un algoritmo? 11. En qu consiste el proceso de descom
posiciones sucesivas? Es siempre necesario aplicarlo al diseo de un algoritmo? 12.
Cree usted que, una vez codificado un algoritmo, ha terminado el proceso de reso
lucin de un problema? Explique. 13. Qu es pseudocdigo? Por qu es til representando alg
ritmos? 14. Es obligatoria la numeracin de los pasos en un pseudocdigo? Si no, cmo se
garantiza la ejecucin secuencial de los pasos? 15. Qu es corrida en fro? Por qu se di
ce que sta es una comprobacin manual? Cmo cree usted que se
ubican errores en un algoritmo mediante la corrida en fro? 16. Qu es un diagrama de
flujo? De qu est formado? Describa brevemente cmo se construye un diagrama de flujo
. 17. Por qu hay smbolos distintos en un diagrama de flujo? Describa brevemente el
significado de cada smbolo. 18. De qu maneras se representa el flujo de ejecucin de
instrucciones en un diagrama de flujo? 19. Cree usted que una corrida en fro tambin
sirve para comprobar un diagrama de flujo? 20. Cules son las cualidades que hacen
til a un diagrama de flujo?
Problemas propuestos
1. Escribir procedimientos o algoritmos para llevar a cabo las siguientes tareas
. Diga en cada caso si se trata de un algoritmo o de un procedimiento: Sacar la
cdula de identidad Organizar una fiesta de cumpleaos Pintar su casa o apartamento
Construir una casa Calcular el punto medio de un segmento de recta conociendo la
s coordenadas de los extremos. Graficar una funcin Preparar una pizza Reparar la
grifera de un lavamanos Redactar una carta de presentacin comercial. Redactar el C
urriculum Vitae. Cambiar un caucho. Elaborar un informe de inventario. Jugar a l
a vieja. Jugar al billar. Jugar ajedrez. Jugar Pker. 2. Dado un tringulo por las c
oordenadas de sus vrtices, cmo se averigua si en su interior existen puntos con coo
rdenadas enteras? 3. Dados dos puntos en el plano por sus coordenadas (x1, y1) y
(x2, y2), cmo se escribe la ecuacin de la recta que pasa por ellos, cul es la longi
tud del segmento que determinan y cules son las coordenadas del punto medio de di
cho segmento. 4. Escriba un algoritmo para calcular el monto a pagar a un trabaj
ador en una semana si se conocen los siguientes datos: las horas normales de tra
bajo se pagan a 2000 Bs la hora
Ing. Jos Ricardo Vargas
Programacin con Delphi

Pag. 2 8
Cap. 2: El Mtodo Algortmico
las horas de sobretiempo de lunes a viernes se pagan a 3500 Bs/h las horas traba
jadas en fin de semana se pagan a 5000 Bs/h 5. Escriba un algoritmo para calcula
r la nota de un estudiante de programacin, conociendo las notas y los pesos de lo
s exmenes parciales, los qices y los trabajos prcticos, segn las normas del Departam
ento. 6. El Domingo de Pascua es el primer domingo despus de la primera luna llen
a posterior al equinoccio de primavera. Cree usted que esta regla es suficienteme
nte precisa para clasificarla como un algoritmo? 7. Desarrolle un algoritmo que,
dados tres nmeros enteros que indiquen mes, da y ao de una fecha dada, determine e
l da de la semana y el da del mes a que corresponde esa fecha. 8. Desarrolle un al
goritmo que, dados los componentes de un vector de N dimensiones, encuentre aque
l de mayor valor absoluto. 9. Ample el algoritmo anterior para que ordene de mayo
r a menor los componentes del vector. 10. Escriba un algoritmo para determinar q
u es ms conveniente para el comprador de un automvil: 4000$ de inicial y 6000$ lueg
o de transcurridos 6 meses o 6000$ de inicial y 4000$ luego de transcurrido un ao
. Suponga un inters simple de 6% anual. 11. Escriba un algoritmo para convertir u
n nmero representado en una base cualquiera a otra base cualquiera convirtiendo d
e una base a base diez y de esta a la otra base. Desarrolle primero el algoritmo
para nmeros enteros y luego para nmeros reales. 12. Desarrolle un algoritmo para
hallar la representacin binaria de un nmero real cualquiera, almacenado como un nme
ro de tipo Single de la Norma IEEE 754. 13. Dado un sistema triangular de ecuaci
ones lineales de orden N, desarrolle un algoritmo para resolverlo. Un sistema tr
iangular de ecuaciones es aquel en el que los coeficientes ubicados por debajo d
e la diagonal principal, son nulos. Como ejemplo, observe el siguiente sistema d
e orden 4: a1,1x1 + a1,2x2 + a1,3x3 + a1,4x4 a2,2x2 + a2,3x3 + a2,4x4 a3,3x3 + a
3,4x4 a4,4x4 = = = = b1 b2 b3 b4
14. A ambas orillas de un ro crecen dos palmeras, una frente a la otra. La altura
de una es de X m, y la de la otra, de Y m. La distancia entre sus troncos es de
D m. En la copa de cada palmera hay un pjaro. De
Programacin con Delphi

sbito los dos pjaros descubren un pez que aparece en la superficie del agua, entre
las palmeras. Los pjaros se lanzan y alcanzan el pez al mismo tiempo. Escriba un
algoritmo para averiguar a qu distancia de la palmera mayor apareci el pez. 15. E
n una plaza hay instalados 5 altavoces distribuidos en dos grupos: uno de ellos
consta de dos aparatos y el otro, de tres. La distancia que separa los dos grupo
s es de X m. Dnde habr que colocarse para que el sonido de ambos grupos se oiga con
igual intensidad? 16. Dados tres puntos no colineales en el plano y por sus coo
rdenadas x y y, encontrar las coordenadas del punto que hace que los cuatro form
en el cuadriltero menos agudo. 17. Dados tres puntos no colineales en el plano y
un nmero real n, encontrar la cantidad mxima de crculos de radio n que caben en el
tringulo formado por los puntos dados. 18. Dado un polgono de n lados, encontrar l
as reas de los cuadrados ms grande y ms pequeo que envuelven al polgono. 19. Dados tre
puntos en el espacio por las coordenadas de sus vrtices, encontrar el vector nor
mal a la cara que forman los vrtices. 20. Para graficar una funcin en la pantalla
de un computador, se deben convertir las coordenadas reales de los puntos de la
grfica en coordenadas de la pantalla. Para ello se deben conocer los valores mximo
y mnimo de las abscisas y de las ordenadas de la funcin, as como los valores mximo
y mnimo de las coordenadas de los puntos de la pantalla. Una vez conocidos estos
datos, se puede llevar a cabo un "mapeo" de los puntos reales de tal modo que el
punto con la menor abscisa quede representada en el punto con la menor coordena
da de pantalla, igualmente se aplica al punto con mayor abscisa y a los puntos c
on mayor y menor ordenada. Escriba un algoritmo para implementar este mapeo con
el fin de representar en pantalla una funcin matemtica. 21. Escriba un algoritmo p
ara averiguar los movimientos que debe hacer un caballo de ajedrez para recorrer
todo un tablero del mismo juego, comenzando en cualquier posicin y sin repetir s

u ubicacin en alguna casilla. 22. Un tringulo equiltero de lado L se divide mediant


e la eliminacin de una porcin de su rea igual a tres tringulos equilteros, como se mu
estra en la siguiente figura, proceso que puede repetirse indefinidamente. Escri
ba un algoritmo para determinar el rea sombreada luego de N divisiones y estime e
l rea cuando N tienda a infinito.
Ing. Jos Ricardo Vargas

Das könnte Ihnen auch gefallen