Sei sulla pagina 1di 8

2

Es preciso servirse de todas las ayudas del entendimiento, de la imaginacin, de los sentidos y de la memoria, bien sea
para tener una intuicin distinta de las proposiciones 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 encontrar 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 Regla XII - 1628.

2.1 Concepto de Variable


Imagine una calculadora que slo es capaz de realizar las
cuatro operaciones aritmticas, nada ms. Cuando se
utiliza una calculadora como sta para calcular una
expresin como 256-24+169, no hay problema alguno en
llevar a cabo este clculo, pero si se 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

el momento de calcular la operacin 5-9. Para solucionar

este inconveniente, las calculadoras poseen una memoria


donde se pueden almacenar estos resultados parciales
para disponer de ellos cuando sean necesarios y as poder
calcular frmulas ms complejas sin hacer uso de otro
instrumento adicional. Por 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 programacin, estas
memorias reciben el nombre de variables, y son los
elementos fundamentales de operacin de un programa

Pag. 2-2

ya que ellas albergan los datos para los cuales el


programa est elaborado.
En computacin, 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 embargo, el concepto va ms all para incluir
entonces la idea expresada en el prrafo anterior acerca
de una localidad de memoria que se utiliza para el
almacenamiento temporal de valores. Sabiendo esto, se
puede definir una variable como una localidad especfica
de la memoria del computador, identificada con un
nombre y que almacena un dato.
Una vez que se hayan diseado algunos programas, se
podr observar claramente que stos operan sobre un
grupo de datos para producir un grupo de resultados y
que todos ellos estarn ubicados en variables, incluso se
podr afirmar que programar no es otra cosa que
manipular variables. Si la afirmacin anterior es cierta,
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 desarrolladas en los prximos captulos.

Cap.2: El Mtodo Algortmico

produce un resultado o, lo que es lo mismo, resuelve un


problema. Segn esta definicin se puede afirmar que
cosas como las recetas de cocina, los manuales de
operaciones, las normas de clculo y las instrucciones
para manejo de aparatos son procedimientos. Pues bien,
un algoritmo es un procedimiento que rene las
siguientes caractersticas:

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 ser preciso: es decir, no deber sembrar duda


alguna sobre el orden de ejecucin de cada 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 finito 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
algoritmo lleva a cabo operaciones que involucran nmeros
aleatorios. Otra ocurre cuando es imposible en trminos prcticos
obtener una solucin exacta a un problema a partir 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 razonable plantearle las siguientes
preguntas: Cmo los resolvi? Utiliz algn mtodo
general para resolverlos? El mtodo utilizado presenta
esquemas que siempre estn en su mente cuando resuelve
los problemas? Utiliz el mismo mtodo para resolver
problemas de distintas 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
Algortmico 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.3 Algoritmos.
Es bueno aclarar primero que un algoritmo es importante
en el estudio de la programacin porque, si bien el
mtodo algortmico produce algoritmos, el presente curso
pretende, 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 programacin de un algoritmo, por lo que el proceso
de resolucin de problemas con el computador 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 procedimiento,
Programacin con Delphi

2.4 Mtodo Algortmico.


El mtodo algortmico est concebido para resolver no
slo un problema particular sino para proporcionar un
instrumento que permita resolver variaciones del
problema original, del mismo modo que una frmula no
slo devuelve un valor para un grupo de variables 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.4.1

Anlisis del problema.

Este paso consiste en identificar muy claramente los


elementos que componen el problema, es decir:

Las incgnitas, porque son precisamente, el


propsito del problema. En ocasiones no son
fcilmente identificables; en estos casos, no se debe
seguir adelante hasta haber resuelto con toda claridad
este paso.

Los datos, porque son los elementos que se deben


manipular para hallar respuesta a las incgnitas.

Ing. Jos Ricardo Vargas

Cap.2: El Mtodo Algortmico

Pag. 2-3

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 problema
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 los pasos que componen el algoritmo.

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 para resolver las
incgnitas, indican el rumbo que debe tomar el
desarrollo del algoritmo. La determinacin de las
mismas puede requerir de deduccin o de
investigacin extra 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 esta etapa se
determina qu es lo que debe hacer el algoritmo, a partir
de qu datos y bajo qu condiciones.

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 general 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 los que
intervienen la memoria, las capacidades creativas y
las asociaciones mentales que cada individuo haya
construido entre los elementos del problema y el
resto 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 sorprendentemente mgico con una idea.
Una segunda etapa consiste en hacer esa idea lo
suficientemente clara y definida para formar un
primer conjunto de pasos de tal manera 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. Esta tarea puede ser complicada si se torna
difcil transformar la idea en algo suficientemente
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 muchos
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 realizado por el
individuo, ya que ste hace que se desarrolle un
mayor nmero de asociaciones recurrentes,
facilitando a la mente la formacin de la idea al
tener mayor intuicin sobre los elementos del
problema,
c) el estado de salud y nimo del individuo, ya que
est demostrado que una actitud mental positiva,

Programacin con Delphi

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 stas.
Para facilitar esta tarea, los lenguajes ofrecen estructuras de
datos que permiten 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 un
buen conjunto de instrucciones y un buen conjunto de
estructuras de datos.

A PROPSITO

Una tercera etapa es necesaria cuando la


complejidad del problema es tal que para 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 susceptible de ser
subdividido en mdulos ms simples. Este proceso
se conoce como proceso de descomposiciones
sucesivas,
refinamientos
sucesivos,
diseo
descendente, diseo top-down o diseo modular y
sus nombres derivan del hecho de que en cada
refinamiento, 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 cuenta 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 sus puntos, ambas rectas inclinadas,
elabore un algoritmo para determinar si esas rectas se
interceptan y, si lo hacen, determine las coordenadas del punto
de interseccin.
Primera parte: Anlisis del problema.
DATOS ........ Las dos rectas
coordenadas
de

dados
dos

por
de

las
sus

Ing. Jos Ricardo Vargas

Pag. 2-4

Cap.2: El Mtodo Algortmico

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
recta 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
interceptan si no lo hacen.
RESTRICCIONES Dado que el enunciado establece
que
las
rectas
deben
ser
inclinadas, entonces los datos
deben cumplir con las siguientes
condiciones:
x1<>x2,
y1<>y2,
x3<>x4 y y3<>y4. Aunque no se
especifica en el enunciado, es
obviamente necesario verificar
tambin que las rectas no sean
paralelas.
FRMULAS ..... Si se denota a la pendiente del
segmento A como PA y a la
pendiente del segmento B como
PB, entonces se tiene que:
Abscisa
del
punto
de
interseccin:
xint =

y3 y1 + PAx1 PBx3
(PA PB)

Ordenada
del
interseccin:

punto

de

yint = PA(xint-x1)+y1

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 representados como
variables. Esto es sumamente importante debido a que, como
se mencion 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 calcular luego
las coordenadas del punto de interseccin.
PASO 1 . Designar las coordenadas 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 mensaje
Datos incorrectos y vuelva al paso
1.
PASO 3 . Calcular las pendientes de las 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 vaya al paso 7.
PASO 5 . Calcular las coordenadas del punto de
interseccin de las rectas mediante
las frmulas:
xint = (y3-y1+PAx1-PBx3)/(PA-PB)
yint = PA(xint-x1)+y1
PASO 6 . Imprima xint y yint.
PASO 7 . Fin.

Programacin con Delphi

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
clasificarlos 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
subdividido en mdulos, pero ste no ser siempre el caso.
Recuerde que se pretende que al final, el
problema sea resuelto por un computador.
De ah la existencia de instrucciones como lea, imprima, etc.

A PROPSITO

2.4.3

Codificacin

Consiste en escribir el algoritmo desarrollado utilizando


los elementos de un lenguaje de programacin, con la
finalidad de transformarlo en un programa. Este tema
ser cubierto extensamente en los prximos captulos.
Durante el desarrollo del algoritmo, es conveniente
representarlo mediante alguna herramienta independiente
del lenguaje de programacin que se planee utilizar; esto
le brinda al programador una serie de ventajas, como son
las siguientes: primero, el algoritmo puede ser escrito
posteriormente en varios lenguajes de programacin;
segundo, el algoritmo puede ser codificado por una
persona o un equipo diferentes al que lo dise, y tercero,
se desarrolla en el programador el hbito de trabajar
ordenadamente. A continuacin se presentan algunas de
ellas.

2.5

Pseudocdigo.

Expresar un algoritmo mediante pseudocdigo consiste


en expresar cada uno de los pasos 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 persona que conozca por lo
menos dichas palabras y el significado de los smbolos.
An cuando 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 algoritmo para determinar si el nmero
dado es primo.
Primera parte: Anlisis del problema.
DATOS ...........El nmero dado, que se llamar
N
INCGNITAS ......Una caracterstica del 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
divisibilidad de nmeros. Un

Ing. Jos Ricardo Vargas

Cap.2: El Mtodo Algortmico

Pag. 2-5

nmero N es divisible entre


otro nmero B si la divisin
N/B
produce
un
cociente
entero.

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 entre 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 lo es, entonces imprima el mensaje
NO es primo y vaya al paso 8.
PASO 5.. Incremente el valor de B en uno.
PASO 6.. Si B es menor que N, vaya al paso 4;
si no, siga con el siguiente paso.
PASO 7.. Imprima el mensaje SI es primo.
PASO 8.. Fin.

2.6

Comprobacin manual de
algoritmos: Corrida en fro.

Esta tarea consiste en representar por escrito el


comportamiento de los elementos involucrados en el
algoritmo durante una ejecucin del mismo con valores
de entrada cuyo resultado se conozca de antemano, con el
propsito de verificar si el algoritmo funciona, y si no
funciona, entonces como una forma de ubicar los pasos
del mismo que contengan errores. Una prctica comn de
realizar una corrida en fro utiliza 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 representan las corridas en fro del algoritmo del
ejemplo 2-2: la primera con un nmero primo y la segunda
con un nmero que no lo es, y observe en la segunda tabla
que, apenas se verifica que el nmero es divisible entre 2, se
imprime el mensaje NO ES PRIMO y termina la ejecucin
del algoritmo.

N
7

2.7

B
2
3
4
5
6
7

Salida
SI es primo

N
9

B
2
3

Salida
NO es primo

Diagrama de Flujo.

Un diagrama de flujo (flowchart) es la expresin de un


algoritmo en la que se utiliza un conjunto de smbolos
universalmente reconocidos y aceptados, cuya forma se
corresponde con tipos de pasos algortmicos o
Programacin con Delphi

instrucciones.
Esta
representacin
permite
al
programador reconocer rpidamente y manipular
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 tomando en
consideracin el uso de pasos fcilmente adaptables a
instrucciones en lenguaje 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 debido a que una
instruccin conlleva la idea de una orden dada al
computador para que 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.

Terminal. Indica el inicio,


el fin o una parada del
programa.
Instruccin simple.
Usualmente usado para
representar clculos.
Operacin general de
entrada/salida de datos 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. Indican la
secuencia de ejecucin de las
instrucciones.
Conectores de secuencia.
Permiten seguir la secuencia
de instrucciones entre puntos
distantes sin el uso de
flechas.

Tabla 2-1. Simbologa bsica de los diagramas de flujo.

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
propsitos 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 implementadas slo en algunos
lenguajes de programacin e incluso en algunos sistemas
operativos. Estas normas no slo especifican la
simbologa sino tambin la gramtica de los diagramas 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 flujo 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 ejecucin de instrucciones ser


preferiblemente de arriba abajo y de izquierda a
derecha.

Slo habr un smbolo de inicio y un smbolo de fin


de programa, pudiendo haber varios de parada del
programa.

Slo los bloques de seleccin podrn tener varias


flechas de salida.

Ejemplo 2-4
Observe a continuacin el diagrama de flujo correspondiente al problema del ejemplo 2.2, el cual muestra adems, las instrucciones
correspondientes a los pasos desarrollados en el mencionado ejemplo.
INICIO

no

Leer N

PASO 1:

Designar el nmero como N.

N>0 y N
entero?

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 lo es,


entonces imprima el mensaje NO es primo y
vaya al paso 8.

PASO 5:

Incremente el valor de B en uno.

PASO 6:

Si B es menor que N, vaya al paso 4.

Imprimir "Si
es primo"

PASO 7:

Imprima el mensaje SI es primo.

FIN

PASO 8:

Fin.

si
B2

N es divisible
entre B?

si

no
B  B +1

si

B < N?

Imprimir "No
es primo"

no

De nuevo, este resumen es suficiente para un curso


bsico de programacin. Observe que tanto los smbolos
como las normas son pocas y sencillas, razn que hace a
los diagramas de flujo una herramienta sumamente fcil
de aprender y de gran ayuda para comprender los
conceptos de programacin que se vern en los prximos
Programacin con Delphi

captulos. An cuando existen varias formas de


representacin de algoritmos, el diagrama de flujo se ha
destacado como una herramienta conveniente para
facilitar el proceso de transformacin de ideas en
instrucciones debido a la facilidad con que el cerebro
manipula objetos grficos en lugar de palabras.
Ing. Jos Ricardo Vargas

Cap. 2: El Mtodo Algortmico

Igualmente se ha destacado como un mtodo importante


para documentar procesos y para transmitir instrucciones
entre programadores debido a su independencia de los
lenguajes de programacin.
En los prximos captulos se expondrn los elementos de
construccin 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 considerarse 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
Algortmico? 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 qu 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
mentales? 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 datos? Cmo influyen en
el diseo de un algoritmo?
11. En qu consiste el proceso de descomposiciones
sucesivas? Es siempre necesario aplicarlo al diseo
de un algoritmo?
12. Cree usted que, una vez codificado un algoritmo, ha
terminado el proceso de resolucin de un problema?
Explique.
13. Qu es pseudocdigo? Por qu es til
representando algoritmos?
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 dice que sta es
una comprobacin manual? Cmo cree usted que se

Programacin con Delphi

Pag. 2-7

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 las coordenadas de los extremos.
Graficar una funcin
Preparar una pizza
Reparar la grifera de un lavamanos
Redactar una carta de presentacin comercial.
Redactar el Curriculum Vitae.
Cambiar un caucho.
Elaborar un informe de inventario.
Jugar a la vieja.
Jugar al billar.
Jugar ajedrez.
Jugar Pker.
2. Dado un tringulo por las coordenadas de sus
vrtices, cmo se averigua si en su interior existen
puntos con coordenadas 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 longitud del
segmento que determinan y cules son las
coordenadas del punto medio de dicho segmento.
4. Escriba un algoritmo para calcular el monto a pagar a
un trabajador en una semana si se conocen los
siguientes datos:
las horas normales de trabajo se pagan a 2000 Bs
la hora
Ing. Jos Ricardo Vargas

Pag. 2-8

Cap. 2: El Mtodo Algortmico

las horas de sobretiempo de lunes a viernes se


pagan a 3500 Bs/h
las horas trabajadas en fin de semana se pagan a
5000 Bs/h
5. Escriba un algoritmo para calcular la nota de un
estudiante de programacin, conociendo las notas y
los pesos de los exmenes parciales, los qices y los
trabajos prcticos, segn las normas del
Departamento.
6. El Domingo de Pascua es el primer domingo despus
de la primera luna llena posterior al equinoccio de
primavera. Cree usted que esta regla es
suficientemente 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 el da de la semana y el da del mes a
que corresponde esa fecha.
8. Desarrolle un algoritmo que, dados los componentes
de un vector de N dimensiones, encuentre aquel de
mayor valor absoluto.
9. Ample el algoritmo anterior para que ordene de
mayor a menor los componentes del vector.
10. Escriba un algoritmo para determinar qu es ms
conveniente para el comprador de un automvil:
4000$ de inicial y 6000$ luego 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 un nmero
representado en una base cualquiera a otra base
cualquiera convirtiendo de 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 nmero de tipo Single de la Norma IEEE
754.
13. Dado un sistema triangular de ecuaciones lineales de
orden N, desarrolle un algoritmo para resolverlo. Un
sistema triangular de ecuaciones es aquel en el que
los coeficientes ubicados por debajo de la diagonal
principal, son nulos. Como ejemplo, observe el
siguiente sistema de orden 4:
a1,1x1 + a1,2x2 + a1,3x3 + a1,4x4
a2,2x2 + a2,3x3 + a2,4x4
a3,3x3 + a3,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. En 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 grupos
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
coordenadas x y y, encontrar las coordenadas del
punto que hace que los cuatro formen 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 las reas de
los cuadrados ms grande y ms pequeo que
envuelven al polgono.
19. Dados tres puntos en el espacio por las coordenadas
de sus vrtices, encontrar el vector normal 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 coordenada de pantalla,
igualmente se aplica al punto con mayor abscisa y a
los puntos con 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 para 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 su ubicacin en
alguna casilla.
22. Un tringulo equiltero de lado L se divide mediante
la eliminacin de una porcin de su rea igual a tres
tringulos equilteros, como se muestra en la
siguiente figura, proceso que puede repetirse
indefinidamente.
Escriba un algoritmo
para determinar el rea
sombreada luego de N
divisiones y estime el
rea cuando N tienda a
infinito.

Ing. Jos Ricardo Vargas

Potrebbero piacerti anche