Вы находитесь на странице: 1из 4

A los datos (constantes o variables) que requerimos para solucionar el problema los llamaremos

entradas y a los datos que representan la o las respuestas los llamaremos salidas. Al proceso de
identificación de estos elementos lo llamaremos modelado.

Sobre los tipos de datos: al definir las entradas y salidas de un problema es necesario definir de
qué

tipo son estos datos. Los tipos usados en el proceso de construcción de algoritmos serán los
mismos que se

utilizan al trabajar con expresiones. Veamos:

Tabla 2. Tipos de datos usados en expresiones

Tipo de dato Almacena

Entero Valores numéricos positivos y negativos del conjunto de los enteros

Real Cualquier valor numérico que guarda valores decimales

Booleano Valores que pueden ser verdaderos (V) o falsos (F)

Carácter Símbolos del lenguaje definidos entre comillas: ‘a’, ‘b’, ‘Q’, ‘T’

Sin embargo, es necesario especificar las características o las condiciones que deben cumplir los
datos de un problema para contar con una solución que responda a situaciones excepcionales. A
estas condiciones las llamaremos precondiciones. Veamos cuáles podrían ser las precondiciones
aplicadas a las variables de entrada del problema. Se le asigna un nombre a cada variable: V1, V2 y
V3 para la velocidad alcanzada en cada tramo y D1,D2 y D3 para las distancias de cada tramo.
Entonces:

Con este nivel de detalle será sencillo formular una solución y contaremos con un resultado
generalizado, dado que nos permite calcular el tiempo total de carrera para cualquier conjunto de
variables de entrada que cumpla con las anteriores precondiciones.

Por otro lado, con el objetivo de contar con respuestas válidas y acertadas, podemos definir
condiciones sobre las salidas del problema. A estas salidas las llamaremos poscondiciones. Estas
condiciones definen todas las características que conocemos de una salida válida. Para el caso del
ejemplo, definamos que T1, T2 y T3 son los tiempos de gastados por un deportista en cada tramo
y T es el tiempo total. Entonces:

Entrada precondiciones = salidas poscondiciones

Ahora, como sabemos, uno de los asuntos que motiva la necesidad de aprender programación de
computadores es el hecho de tener que comunicarnos con un computador lo cual implica
aprender a hablar su idioma, o por lo menos, un idioma que éste pueda entender más fácilmente.
Pensando en lograr esa comunicación, debemos formalizar las restricciones y definiciones hechas
para el problema; para ello, usaremos expresiones booleanas. Las expresiones, ya lo hemos
mencionado, son agrupaciones de operadores y operandos que deben cumplir reglas de sintaxis y
precedencia.

Entradas: V1,V2,V3,D1,D2,D3: Real Mencionamos el tipo de dato que esperamos

Precondiciones: • V1>0 Y V2>0 Y V3>0 Cada pre o poscondición debe usar los
operadores definidos y estar bien formada.

• D1>0 Y D2>0 Y D3>0 • D1+D2+D3 = 21 Salidas: T1,T2,T3,T: Real


Mencionamos el tipo de dato de las salidas

Poscondiciones: • T1>0 Y T2>0 Y T3>0 • T = T1+T2+T3

En resumen Para resolver un problema debemos identificar correctamente cuáles son las entradas
requeridas y las salidas esperadas; a este proceso lo llamamos modelado. Además, debemos
definir las pre y las poscondiciones que estos datos deben cumplir a través del proceso de
especificación, usando expresiones. Todo esto con el objetivo de contar con información que
cualquier persona pueda entender y que podamos validar fácilmente de forma ordenada. En la
siguiente lectura definiremos el proceso de construcción de la solución de problemas de manera
algorítmica.

Para tener en cuenta: • Verifique que los datos proporcionados en el ejemplo cumplan las
precondiciones definidas; luego resuelva el problema y compruebe que las salidas del problema
cumplan las poscondiciones.

Formalmente,
a
un
conjunto
ordenado
y
finito
de
instrucciones
que
permiten
obtener,

con
base
en
un
conjunto
de
entradas,
un
conjunto
de
salidas
que
representan
la
solución

 al
problema,
lo
llamaremos
algoritmo.


Ahora
sabemos
lo
que
requerimos
para
solucionar
un
problema
de
forma
organizada:
sus

entradas
y
salidas,
las
precondiciones
y
pos
condiciones

definidas
para
esos
datos
y
un

algoritmo
que
describa,
a
partir
de
instrucciones
claras
y
precisas,
paso
a
paso
lo
que
se

debe
hacer
para
llegar
a
una
solución.

definiremos
para
una
instrucción
es
la
asignación,
que
se
basa
en
asignar,
como
su

nombre
lo
dice,
un
valor
específico
a
una
variable.
Este
valor
puede
ser
una
variable,
una

 constante,
o
en
general,
una
expresión.
Con
la
asignación
lo
que
se
pretende
es

almacenar
un
resultado
en
una
variable.
Cuando
definamos
asignaciones,
lo
haremos
de
la

 siguiente
manera,
<Variable>
←
<Expresión>


Veamos
algunos
ejemplos
de
asignaciones:

Tabla
1.
Ejemplos
de
asignaciones

Asignación ¿Qué
puede
representar?

V
←
15
/
2 El
cálculo
de
una
velocidad,
basada
en
valores
dados
de
distancia
y
tiempo

A
←
π*R*R El
área
de
un
círculo

P
←
2*π*R La
longitud
de
una
circunferencia

V
←
π*R*R
*
h El
volumen
de
un
cilindro

Un
algoritmo
bien
definido
permite
que,
dado
un
conjunto
de
datos
de
entrada
que

cumple
las
precondiciones,
se
siguen
instrucciones
que
permiten
hallar
un
conjunto
de

salidas
que
deben
cumplir
las
poscondiciones
definidas.

Tabla
2.
Estructura
de
un
algoritmo

Algoritmo
<Nombre del algoritmo> Un
nombre
que
indique
lo
que
pretendemos
hacer


con
este
algoritmo

Entradas Variables
de
entrada

Pre:
 {…} Condiciones
para
las
variables
de
entrada

Inicio Inicio
del
algoritmo

Paso 1

Paso 2

Paso n

Cada
paso
o
instrucción
involucrada
en
la
solución


del
problema

Fin Fin
del
algoritmo

Salidas Variables
de
salidas

Pos:
 {…} Condiciones
que
deberán
cumplir
las
salida


Tabla
3.
Ejemplos
de
algoritmo
de
acuerdo
con
la
estructura

Algoritmo 
Volumen Del Cilindro

Entradas radio, altura: Real

Pre:
 {radio>0 Y altura>0 }

Inicio

Variables v: Real

v ← π*radio*radio*altura

volumen ← 18 * v

Fin

Salidas

volumen: Real

Pos:
 {volumen > 0}

Cuando
 definimos
 algoritmos
 de
 esta
 forma,
 obtenemos
 lo
 que
 llamaremos

pseudocódigo,
 lenguaje
 que
 no
 es
 demasiado
 formal
 y
 está
 definido
 para
 describir

de
 forma
sencilla,
clara
e
independiente
de
un
lenguaje
de
programación,
instrucciones

que
 se
deben
realizar
para
obtener
el
resultado
de
un
problema.
Más
adelante
veremos

que
es
 sencillo
pasar
de
este
pseudocódigo
al
lenguaje
de
programación
en
el
que

trabajaremos.