Vous êtes sur la page 1sur 5

FUNDAMENTOS DE PROGRAMACION

PLANTEAR ALGORITMOS DE SOLUCION

1. Algoritmos.

Secuencia finita, ordenada, definida de instrucciones sencillas, claramente especificadas, a


seguir para resolver un problema, donde se necesita un esfuerzo grande y tiempo.

 Secuencia de instrucciones en ciclo finito no es Algoritmo.

Instrucciones sencillas.

Para resolver tareas hay muchas instrucciones pero esas instrucciones se pueden subdividirse
en otras instrucciones (subalgoritmos).

Instrucciones claramente especificadas.

 No deben ser ambiguas, y deben ser fáciles de entender.


2. Diseño de algoritmos

Plantear secuencia de pasos

a) Proponer un algoritmo básico.


 Una descripción a grandes rasgos. No es conveniente excederse con los detalles, se
pueden olvidar.
b) Refinar el algoritmo. Por pasos:
a) El algoritmo básico = algoritmo simple o de nivel cero (0)
b) Cada algoritmo o subalgoritmo se va detallando de forma más concreta de
lo anterior. Ej.: ¿Cómo?

Responder pregunta del niño:

¿Cómo hago esto? o y esto ¿Cómo hago?

Respuesta a la pregunta del niño

o Instrucción redundante. No estaba clara la pregunta.


o Respuesta compuesta. Conjunto de instrucciones que da lugar a sub-
algoritmos problemas pequeños y se necesitan algoritmos básicos estas
instrucciones se llaman NO ATOMICAS.
o Respuesta simple. Instrucciones ATOMICAS, solo necesitan especificar:

Una variable en inst. de lectura.

Un valor en inst. de salida.

Una formula de calculo, en inst. de proceso

c) Repetir hasta que todas las inst. sean atómicas.


d) El último paso es identificar grupos de instrucciones repetidas. Cada
grupo se aísla en un sub-algoritmo.

En toda ecuación despejar la variable, toda variable debe tener valor antes de ser
usada o SINO hacer algoritmos para despejar variables o reemplazar valores.

3. Análisis de datos. Identificar:


a) Que datos se requieren conocer
b) Que datos es capaz de generar.
c) Estructuras de datos (ED) (pueden ser diferentes tipos con una característica
común PERTENENCIA.
d) Tipos abstractos de datos (TAD).formado por conjunto de algoritmos de datos
y algoritmos.

TAD = ED + Algoritmos = Objeto.

ED = Propiedades o Atributos.

Algoritmos = Metodos.

ALGORITMO BASICO O NIVEL (0)

1. Leer el punto de observación.


2. Calcular velocidad inicial.
3. Calcular la altura máxima, ℎ𝑚 ← −𝑣𝑜 ∗ 𝑣𝑜 ←/(2 + 𝑎)
4. Calcular tiempo de recorrido entre punto de observación y punto de altura máxima,
𝑡 ← −𝑣/𝑎
5. Leer tiempo de desplazamiento desde el lanzamiento, 𝑡𝑑
6. Calcular velocidad al cabo del tiempo de desplazamiento, 𝑣𝑑 ← 𝑣𝑜 + 𝑎 ∗ 𝑡
7. Mostrar movimiento.

Las instrucciones 3, 4 y 5 son atómicas.

LEER EL PUNTO DE OBSERVACION-Ref. de nivel 1

1. Leer velocidad del punto de observación, v


Ambas instrucciones atómicas
2. Leer altura del punto de observación, h

CALCULAR VELOCIDAD INICIAL-Ref. de nivel 1

1. Calcular cantidad sub-radical, 𝑐𝑠𝑟 ← 𝑣 ∗ 𝑣 − 2 ∗ 𝑎 ∗ ℎ La instrucción 1 es atómica


2. Calcular velocidad de lanzamiento (calc. Raíz cuadrada de csr)

CALCULAR RAIZ CUADRADA – Ref. de nivel 2

1. Inicializar raíz en s/2, 𝑟 ← 𝑠⁄2


2. Copiar valor de la raíz al valor sup. de x, 𝑥 ← 𝑟
3. Calcular función p/ valor sup. de x, 𝑓 ← 𝑥 ∗ 𝑥 − 𝑠
Todas las inst. Excepto la 7 son atómicas
4. Calcular derivada p/ valor sup. de x, 𝑑 ← 2 ∗ 𝑥
5. Calc. Nueva raíz (Recalc raíz), 𝑟 ← 𝑥 − 𝑓/𝑑
6. Calcular error del valor sup. 𝑔 ← (𝑟 − 𝑥)/𝑟
7. Calcular el valor absoluto del error 𝑔
8. Si ( 𝑔 ≥ 1𝐸 − 2) repetir desde el paso 2 sino 𝑔 ≥ 1𝐸 − 2

UN ANÁLISIS DE LOS DATOS DA:

LEER EL PUNTO DE OBSERVACION

Datos de entrada: Ninguno – No requiere.

Datos de salida: v, h.
CALCULAR VELOCIDAD INICIAL

Datos de entrada: v, h, a.

Datos de salida: vo.

CALCULAR RAIZ CUADRADA

Datos de entrada: s. valor cuya raíz cuadrada se desea calcular.

Datos de salida: raíz. La raíz cuadrada de s

PLANTEAR ALGORITMO DE SOLUCION- Diseño ej.

 Los datos constantes se pueden declarar directamente en la codificación del algoritmo,


se consideran conocidos y especificados.
 Se puede incluir un paso inicial que muestre la asignación de valor a la constante.
 Es conveniente dar nombre significativo a los algoritmos.
AL MOVIMIENTO VERTICAL
1. Asignar valor a la constante a la aceleración. 𝑎 = −9.8
2. Leer punto de observación, 𝑙𝑒𝑒𝑟𝑃𝑡𝑜𝑂𝑏𝑠(𝑣, ℎ)
3. Calcular velocidad inicial, 𝐶𝑎𝑙𝑐. 𝑉. 𝐼𝑛𝑖(𝑣, ℎ; 𝑣𝑜)
4. Calcular altura máxima, ℎ𝑚 ← −𝑣𝑜 ∗ 𝑣𝑜/(2 ∗ 𝑎)
𝑣
5. Calcular tiempo pto. Observación-pto. Hmax 𝑡 ← −
𝑎
6. Leer tiempo de desplazamiento desde el lanzamiento, 𝑡𝑑
7. Calcular velocidad al cabo del tiempo de lanzamiento, 𝑣𝑑 ← 𝑣𝑜 + 𝑎 ∗ 𝑡𝑑
8. Mostrar movimiento, 𝑀𝑀𝑜𝑣(ℎ𝑚, 𝑡, 𝑣, 𝑎; )
𝑙𝑒𝑒𝑟𝑃𝑡𝑜𝑂𝑏𝑠 (; 𝑣, ℎ)
1. Leer velocidad del punto de observacion, v.
2. Leer altura del punto de observacion, h.

𝐶𝑎𝑙𝑐. 𝑉. 𝐼𝑛𝑖(𝑣, ℎ; 𝑣𝑜)


3. Calcular cantidad sub-radical, 𝑐𝑠𝑟 ← 𝑣 ∗ 𝑣 − 2 ∗ 𝑎 ∗ ℎ
4. Calcular velocidad de lanzamiento, 𝑣𝑜 ← 𝑟𝑎𝑖𝑧(𝑐𝑠𝑟)

D. raiz(s ; raiz)

1. Inicializar raíz en s/2, 𝑟 ← 𝑠⁄2


2. Copiar valor de la raíz al valor sup. de x, 𝑥 ← 𝑟
3. Calcular función para valor sup. de x, 𝑓 ← 𝑥 ∗ 𝑥 − 𝑠
4. Calcular derivada para valor sup. de x, 𝑑 ← 2 ∗ 𝑥
5. Calc. Nueva raíz (Recalc raíz), 𝑟 ← 𝑥 − 𝑓/𝑑
6. Calcular error del valor supuesto 𝑔 ← (𝑟 − 𝑥)/𝑟
7. Calcular el valor absoluto del error 𝐠 𝑔 ← 𝑎𝑏𝑠𝑜(𝑔)
8. Si ( 𝑔 ≥ 1𝐸 − 2) repetir desde el paso 2 sino copiar el valor de r, 𝑟𝑎𝑖𝑧 ← 𝑟

De indentifica los siguientes grupos de datos- (ED):

 PtoObs:v, h, a, vo.
 PtoHmax:vo, a, hm, t.
 PtoX:vo, a, td, vd.
 Mov:v, h, a, vo, hm, t, td, vd.

Las instrucciones 4, 5, 6 y 7 se encargen de pequeños metodos. Se forma el TAD:

 Calcular altura máxima, ℎ𝑚 ← −𝑣𝑜 ∗ 𝑣𝑜/(2 ∗ 𝑎)


𝑣
 Calcular tiempo pto. Observación-pto. Hmax 𝑡 ← −
𝑎
 Leer tiempo de desplazamiento desde el lanzamiento, 𝑡𝑑
 Calcular velocidad al cabo del tiempo de lanzamiento, 𝑣𝑑 ← 𝑣𝑜 + 𝑎 ∗ 𝑡𝑑

Mov. ED: Mov

Métodos: 𝑙𝑒𝑒𝑟𝑃𝑡𝑜𝑂𝑏𝑠, 𝑀𝑜𝑣𝑉𝑒𝑟𝑡𝑖𝑐𝑎𝑙, 𝐶𝑎𝑙𝑐𝑉𝑖𝑛𝑖, 𝐶𝑎𝑙𝑐𝑃𝐻𝑚𝑎𝑥, 𝐿𝑒𝑒𝑇𝐷𝑒𝑠𝑝, 𝐶𝑎𝑙𝑐𝑉𝐷𝑒𝑠𝑝, 𝑀𝑀𝑜𝑣.

Los métodos raíz y abso son independientes No tienen asociación con ninguna ED.

A.MovVertical

1. Asignar valor a la cte. a la aceleración. 𝑀𝑜𝑣. 𝑎 = −9.8


2. Leer pto de observación, 𝑀𝑜𝑣𝑙𝑒𝑒𝑟𝑃𝑡𝑜𝑂𝑏𝑠(𝑣, ℎ)
3. Calcular velocidad inicial, 𝑀𝑜𝑣𝐶𝑎𝑙𝑐. 𝑉. 𝐼𝑛𝑖(𝑣, ℎ, 𝑎; 𝑣𝑜)
4. Calcular Pto. H máx., 𝑀𝑜𝑣. 𝐶𝑎𝑙𝑐𝑃. 𝐻𝑚𝑎𝑥(𝑣𝑜, 𝑎, 𝑣; ℎ𝑚, 𝑡)
5. Leer tiempo de desplazamiento 𝑀𝑜𝑣. 𝑙𝑒𝑒𝑇𝐷𝑒𝑠𝑝(; 𝑡𝑑)
6. Calcular velocidad. Desplazamiento, 𝑀𝑜𝑣𝐶𝑎𝑙𝑐. 𝑉. 𝐷𝑒𝑠𝑝(𝑣𝑜, 𝑎, 𝑡𝑑; 𝑣𝑑)
7. Mostrar movimiento, 𝑀𝑜𝑣. 𝑀𝑀𝑜𝑣(ℎ𝑚, 𝑡, 𝑣𝑑, 𝑎; )

B.Mov.LeerPtoObs (; v, h)

1. Leer velocidad del punto de observacion, Mov.v


2. Leer altura del punto de observacion, Mov.h

C.Mov.CalcVIni (v,h,a;vo)

1. Calcular cantidad sub-radical, 𝑐𝑠𝑟 ← 𝑀𝑜𝑣. 𝑣 2 − 2 ∗ 𝑀𝑜𝑣. 𝑎 ∗ 𝑀𝑜𝑣. ℎ


2. Calcular velocidad de lanzamiento, 𝑀𝑜𝑣. 𝑣𝑜 ← 𝑟𝑎𝑖𝑧(𝑐𝑠𝑟)

D. raiz(s ; raiz)

1. Inicializar raíz en s/2, 𝑟 ← 𝑠⁄2


2. Copiar valor de la raíz al valor sup. de x, 𝑥 ← 𝑟
3. Calcular función para valor sup. de x, 𝑓 ← 𝑥 ∗ 𝑥 − 𝑠
4. Calcular derivada para valor sup. de x, 𝑑 ← 2 ∗ 𝑥
5. Calc. Nueva raíz (Recalc raíz), 𝑟 ← 𝑥 − 𝑓/𝑑
6. Calcular error del valor supuesto 𝑔 ← (𝑟 − 𝑥)/𝑟
7. Calcular el valor absoluto del error 𝐠 𝑔 ← 𝑎𝑏𝑠𝑜(𝑔)
8. Si ( 𝑔 ≥ 1𝐸 − 2) repetir desde el paso 2 sino copiar el valor de r, 𝑟𝑎𝑖𝑧 ← 𝑟

B.Mov.LeerPtoObs( ;v,h)

1. Leer velocidad del punto de observacion, Mov.v


2. Leer altura del punto de observacion, Mov.h

C.Mov.CalcVIni (v,h,a;vo)
3. Calcular cantidad sub-radical,
𝑐𝑠𝑟 ← 𝑀𝑜𝑣. 𝑣 2 − 2 ∗ 𝑀𝑜𝑣. 𝑎 ∗ 𝑀𝑜𝑣. ℎ
4. Calcular velocidad de lanzamiento, 𝑀𝑜𝑣. 𝑣𝑜 ← 𝑟𝑎𝑖𝑧(𝑐𝑠𝑟)

Vous aimerez peut-être aussi