Sunteți pe pagina 1din 40

APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.

1










1. NTRODUCCON 1. NTRODUCCON 1. NTRODUCCON 1. NTRODUCCON
Antes de empezar a programar computadores es necesario adquirir algunos conceptos
fundamentales para dicha tarea. Con el fin de no enfrentar al tiempo el aprendizaje de tantos
temas nuevos, primero se hace el trabajo en un lenguaje algortmico que se va definiendo
poco a poco, de tal forma que el conocimiento se adquiera de forma gradual y firme. En este
libro slo se trabaja con lenguaje algortmico, es decir, slo se hace uso de papel y lpiz; el
aprendiz est concentrado en un solo asunto. Sin embargo, continuamente se hace referencia
al computador (o mquina) porque el fin es prepararse para programarlo. El lenguaje
algortmico no depender de ninguna mquina en especial.

Un algoritmo es una secuencia de pasos o instrucciones cuya realizacin tiene un fin
determinado.

Ejemplo: Retirar dinero de un cajero automtico

Retirar dinero de un cajero automtico es una tarea que los seres humanos realizan cada vez
con ms frecuencia. Para llevarla a cabo, grosso modo se realizan las siguientes acciones:

Insertar la tarjeta
Seleccionar el idioma
Ingresar la clave
Seleccionar la operacin por realizar
Ingresar los datos de acuerdo con la operacin seleccionada
Obtener el resultado de la operacin

Este conjunto de acciones realizadas con un fin determinado, en dicho orden, es lo que se
llama algoritmo.
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
2

Un algoritmo es una secuencia de pasos o instrucciones, realizados en un orden determinado,
con un fin claramente definido.

Un lenguaje algortmico permite plasmar de manera clara, a travs de sus herramientas, los
pasos o instrucciones contemplados en un algoritmo. En general, un lenguaje algortmico es
bastante laxo con respecto a un lenguaje de computador porque lo que se quiere con l es
expresar las ideas de una forma parecida pero no tan formal a como lo hace un lenguaje que
entiende el computador. Sin embargo, en este libro el lenguaje algortmico que se utiliza es
sencillo pero bastante formal con el fin de que constituya una verdadera preparacin para
iniciar el aprendizaje de un lenguaje de computador. Las personas con algn grado de
ilustracin en programacin de computadores encontrarn que el lenguaje algortmico
utilizado en este libro contempla muchos temas que en general se cubren slo cuando se est
trabajando con un lenguaje de computador.

No existe un solo lenguaje algortmico, sera como pensar que todos los seres humanos se
expresan igual. Lo que s es importante en este primer curso de Programacin de
Computadores es que el estudiante sea disciplinado en el uso del lenguaje que est trabajando
en su clase. Los frutos de esa disciplina se vern cuando haga sus prcticas con un lenguaje
de computador. La utilizacin del lenguaje algortmico ser un paso intermedio en la
verdadera comunicacin del estudiante con el computador.

Si esta parte se cubre satisfactoriamente, el trabajo de programar un computador se va a
facilitar bastante.

Los seres humanos ejecutan algoritmos permanentemente. Lo que pasa es que no son
conscientes de ello. Por ejemplo, hacer una carrera profesional es un algoritmo, verdad?
Cada accin que se ejecuta para lograr la meta de obtener un ttulo profesional se llamar
instruccin en el lenguaje algortmico y tendr una sintaxis determinada, esto es, habr que
expresarla de una forma no ambigua, que el lenguaje algortmico entienda.


2. NSTRUCCONES 8AS 2. NSTRUCCONES 8AS 2. NSTRUCCONES 8AS 2. NSTRUCCONES 8ASCAS CAS CAS CAS
Para empezar, todo algoritmo tendr la siguiente estructura:

nombre_del_algoritmo"
empiece
algoritmo
del
Cuerpo

termine

donde empiece y termine son delimitadores del cuerpo del algoritmo. Ellos indican en
dnde empieza y en dnde termina pero no implican la ejecucin de accin alguna. Sin
embargo su uso es obligatorio.
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
3

Los delimitadores empiece y termine son las dos primeras palabras reservadas de este
lenguaje. Una palabra reservada es aquella que tiene un significado especial dentro del
lenguaje y por lo tanto tiene un uso restringido.

El cuerpo del algoritmo, como se ver ms adelante, est conformado por instrucciones
ejecutables y no ejecutables, encargadas en general de la reserva de memoria, obtencin o
entrada de los datos, procesamiento de esos datos y emisin o presentacin de resultados.

CUERPO DE UN ALGORITMO

Entrada Salida





Como se ver a lo largo de este libro, la entrada, el procesamiento y la presentacin de
resultados no se lleva a cabo en ese orden necesariamente. Puede darse, por ejemplo, entrada,
procesamiento, entrada, procesamiento y luego s la presentacin de resultados.

Es recomendable que los algoritmos se escriban totalmente en minscula o en mayscula, no
slo por presentacin sino porque algunos lenguajes de computador as lo exigen.

El nombre del algoritmo puede estar compuesto por caracteres alfanumricos y por el
caracter de subrayado ( _ ) y debe empezar con una letra. Los caracteres alfabticos con tilde
no son vlidos.


2.1. nstruccIn 2.1. nstruccIn 2.1. nstruccIn 2.1. nstruccIn pare
Indica la terminacin normal de un algoritmo y libera a la mquina de la tarea que est
ejecutando. Todo algoritmo debe tener por lo menos una instruccin pare.

La palabra pare es reservada.

Palabras reservadas
empiece
termine
pare

La tabla de palabras reservadas se ir llenando a medida que stas vayan apareciendo en el
lenguaje algortmico.

Procesamiento
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
4
2.2. VarIabIes 2.2. VarIabIes 2.2. VarIabIes 2.2. VarIabIes
Son lugares de memoria donde se pueden almacenar datos. Se llaman as precisamente
porque su contenido puede variar. Toda variable tiene tipo, nombre y contenido. El tipo
puede ser entero, real, caracter o cadena de caracteres. Su nombre debe contener slo
caracteres alfanumricos y el caracter de subrayado ( _ ) y tiene que empezar con caracter
alfabtico; los caracteres alfabticos con tilde no son vlidos. Su contenido est estrecha-
mente ligado al tipo.
Tipo: De qu naturaleza es el dato que se puede almacenar.
Nombre: Cmo hacer referencia a un espacio de memoria especfico.
Contenido: Qu dato hay almacenado.

Los nombres de las variables deben ser significativos de tal forma que den una idea de su
contenido. Por ejemplo, si se quiere guardar un promedio, la variable debera llamarse
promedio o prom en lugar de m. Esto como una ayuda para quien construye o modifica el
algoritmo (un ser humano), no porque a la mquina le afecte.


2.3 2.3 2.3 2.3. DecIaracIn de varIabIes . DecIaracIn de varIabIes . DecIaracIn de varIabIes . DecIaracIn de varIabIes
Para poder utilizar una variable, sta debe existir, es decir, debe haber un espacio en la
memoria asignado a ella. Esto se logra en la declaracin de la variable la cual debe ir al
principio del algoritmo, antes de cualquier instruccin ejecutable. Su sintaxis es:

tipo lista_de_variables

donde el tipo de variable puede ser: entero, real, caracter o cadena_de. Las variables de la
lista se separan con el caracter coma ( , ).

Estas instrucciones son llamadas declarativas y son no ejecutables porque no afectan el
contenido de las variables ni implican la realizacin de otra accin diferente a la de reserva de
memoria. Adems, slo tienen efecto una vez, cuando se inicia la ejecucin del algoritmo.
Esto significa que no puede haber instrucciones declarativas en otro punto que no sea
exactamente el principio del algoritmo. El efecto de una instruccin ejecutable se refleja en el
contenido de las variables o en la pantalla.

Una palabra reservada no puede ser usada como nombre de variable.

Ejemplo:
declaracion_de_variables"
empiece
entero a, b, c
real m
caracter x, p
cadena_de 8 t
cadena_de 5 k, h
pare
termine
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
5
Este algoritmo no hace nada, nada visible por lo menos. La siguiente tabla contiene el
significado de cada una de esas instrucciones declarativas.


Declaracin Significado
entero a,b,c

Se solicita espacio en memoria para guardar tres nmeros
enteros en las variables llamadas a, b y c,
respectivamente.
real m

Se solicita espacio en memoria para guardar un nmero
real en la variable llamada m.
caracter x,p

Se solicita espacio en memoria para guardar dos
caracteres en las variables llamadas x y p,
respectivamente. Un caracter puede ser numrico,
alfabtico, grfico, de puntuacin, etc.
cadena_de 8 t
Se solicita espacio en memoria para guardar una cadena
de caracteres, esto es, una palabra o una frase. El valor
constante 8 determina el nmero mximo de caracteres
que puede almacenarse en esa variable. As que la variable
podra contener la palabra servir pero no la palabra
justiciero.

Al ejecutar este algoritmo, se genera lo que desde ahora se llamar el entorno de memoria.
El entorno de memoria puede visualizarse como una tabla que contiene toda la informacin
de las variables que se declaran en un algoritmo. Esa informacin consiste en el nombre de la
variable, el tipo y el contenido. El entorno existe mientras el algoritmo se est ejecutando.
Una vez termina, la memoria reservada es liberada.

Para el algoritmo llamado declaracion_de_variables se generara el siguiente entorno de
memoria:

Variable Tipo Contenido
a entero ?
b entero ?
c entero ?
m real ?
x caracter ?
p caracter ?
t cadena_de 8 ?
k cadena_de 5 ?
h cadena_de 5 ?


El caracter ? indica que a la variable no se le ha definido valor. De aqu en adelante, se dir
tambin que la variable contiene basura, es decir, que su contenido es desconocido.
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
6
En un mismo algoritmo, una variable no puede ser de ms de un tipo. Sera como pretender
que hubiera ms de un norte.

Palabras reservadas
empiece
entero
termine
real
pare
caracter
cadena_de

2.4. nstruccIn de asIgnacIn 2.4. nstruccIn de asIgnacIn 2.4. nstruccIn de asIgnacIn 2.4. nstruccIn de asIgnacIn
La instruccin de asignacin permite cambiar el contenido de una variable y se hace a travs
del operador de asignacin .

Variables de tipo caracter o cadena de caracteres: si la variable es de tipo caracter, su
contenido es un caracter; y si es de tipo cadena de caracteres, su contenido es uno o ms
caracteres.

Variables numricas: son de tipo entero o real y pueden ser operandos en expresiones
aritmticas o matemticas.

Ejemplo: Variables caracter o cadena de caracteres

Supngase ahora que el tipo de la variable no es numrico. Esto es, la variable es de tipo
caracter o de tipo cadena de caracteres. En estos casos hay que tener en cuenta lo siguiente:

Instruccin de
asignacin
Tipo de la
variable
Observaciones sobre la instruccin
var `x'
caracter Es vlida e implica el cambio del contenido de la
variable var por el caracter x.
var `8'
caracter Es vlida e implica el cambio del contenido de la
variable var por el caracter 8.
var x
caracter Es vlida siempre y cuando la variable x exista y sea
de tipo caracter. Implica el cambio del contenido de
la variable var por el contenido de la variable x.
var Colombia
hermosa"
cadena_de 20 Es vlida e implica el cambio del contenido de la
variable var por la cadena de caracteres Colombia
hermosa.
var 3"
cadena_de 10 Es vlida e implica el cambio del contenido de la
variable var por la cadena de caracteres 3.
var b
cadena_de 12 Es vlida siempre y cuando la variable b exista y sea
de tipo cadena de caracteres con longitud 12.
Implica el cambio del contenido de la variable var
por el contenido de la variable b.


APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
7
Aunque la variable de tipo caracter o cadena de caracteres contenga un caracter numrico,
slo con las variables numricas (enteras o reales) se pueden realizar operaciones aritmticas
o matemticas.

Ejemplo: Variables numricas

Supngase que se tiene una variable llamada a y se quiere que su contenido sea 5. Para
hacerlo, se dara la instruccin de asignacin

a 5

El contenido anterior de la variable a (definido o no) es cambiado por el valor 5. Obsrvese
que la direccin de la flecha que representa el operador de asignacin indica el sentido en el
que se hace la asignacin. Tendra sentido la operacin 5 a? Por qu?

Instrucciones como

a 5
5 a

no son vlidas porque el operador no existe. La segunda instruccin, adems, carece de
sentido.

En la parte izquierda debe aparecer siempre la variable cuyo contenido se desea modificar y
en la parte derecha el nuevo valor.

Ejemplo: Si se desea que el contenido de la variable numrica a sea el mismo de la variable
numrica d, se dara la instruccin de asignacin

a d

que significa hacer una copia de la variable d en la variable a. El contenido de la variable a
(definido o no) es cambiado por el contenido de la variable d (definido o no). Supngase que
se tiene el siguiente entorno de memoria en la ejecucin de cierto algoritmo:

Variable Tipo Contenido
a entero ?
d entero ?

.
a 8
d a
.


EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
8
Los puntos suspensivos () indican que hay otras instrucciones.

La ejecucin de las instrucciones tendra el siguiente efecto en el entorno de memoria:

Variable Tipo Contenido
a entero 8
d entero 8

Obsrvese que la instruccin de copia (d a) no tiene ningn efecto sobre la variable a.

Si se tuviera este otro entorno

Variable Tipo Contenido
a entero ?
d entero ?

El efecto de la ejecucin de las instrucciones
.
a 8
d d + a
.

sera el cambio del contenido de la variable a (basura) por 8. Tomar una copia del contenido
de las variables d (basura) y a (8), sumarlas y asignar el resultado a la variable d. El entorno
quedara as:
Variable Tipo Contenido
a entero 8
d entero ?

Porque un contenido basura operado con cualquier otra cosa, da basura. Cuando se tienen
instrucciones como

d d + a

se debe verificar que la variable d haya sido inicializada. Inicializar una variable significa
definir su contenido, lo cual hasta este momento slo se puede hacer con una instruccin de
asignacin.

Tambin es posible que el valor que se quiera asignar a una variable sea el resultado de
evaluar una expresin aritmtica o matemtica. Por ejemplo, se quiere que el nuevo valor de
la variable a sea el resultado de sumar los nmeros 7 y 20.

La suma de 7 y 20 se expresa como 7+20. En este caso, se requiere poder hacer uso del
operador de suma.

APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
9
2.5. Operadores arItmetIcos 2.5. Operadores arItmetIcos 2.5. Operadores arItmetIcos 2.5. Operadores arItmetIcos

El conjunto de operadores disponible en el lenguaje algortmico que se est definiendo es el
siguiente:

Suma + Resta
Multiplicacin * Divisin /

La parte izquierda de una instruccin de asignacin siempre es una variable y la parte
derecha puede ser una constante, una variable o una expresin, donde las dos primeras son
las expresiones ms simples que existen.

Ejemplo: Sumar los nmeros 7 y 20

Por el enunciado del problema, el resultado se debera guardar en una variable de tipo entero
porque la suma de dos enteros da un entero, pero tambin se podra declarar real (por
qu?).

suma_de_7_y_20"
empiece
entero suma

suma 7+20
pare
termine

Al ejecutar este algoritmo, se genera el siguiente entorno de memoria:

Variable Tipo Contenido
suma entero ?

Luego, al ejecutar la instruccin de asignacin, ocurre lo siguiente:

Los valores 7 y 20 son sumados. Luego se busca en el entorno de memoria una variable
llamada suma, si existe, se modifica su contenido con el valor 27 y el entorno quedara as:

Variable Tipo Contenido
suma entero 27

Luego se ejecuta la instruccin pare que indica la terminacin normal del algoritmo y que
conlleva la liberacin de la memoria reservada a travs de la declaracin de variables. Que la
memoria reservada se libere significa que ya no se tendr acceso a esa rea de memoria a
pesar de que los datos pueden continuar existiendo ah porque a otro algoritmo no se le ha
asignado ese mismo espacio.
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
10
Si la variable suma no existe, se hace imposible continuar con la ejecucin del algoritmo y
sta se termina anormalmente. A la terminacin anormal de la ejecucin de un algoritmo se le
llama comnmente aborto. Algoritmo que se respete no debe abortar.

Aunque la expresin 20+7 es vlida, no tiene sentido poner a la mquina a computar algo que
ya uno sabe cuanto da. Es decir, cul es la razn para no asignar de una vez el valor 27?

Obsrvese que el algoritmo suma_de_7_y_20 slo sirve para sumar los nmeros 7 y 20.
Cuntos algoritmos parecidos pero diferentes habra que hacer para disponer siempre de
uno que sume dos nmeros enteros cualesquiera? Sera posible? Tendra sentido?

Otra versin del algoritmo anterior sera la siguiente:

suma_de_7_y_20"
empiece
entero suma, num1, num2

num1 7
num2 20
suma num1+num2
pare
termine

En num1 y num2 se almacenan los sumandos 7 y 20, respectivamente, y luego se almacena
el resultado en la variable suma.

El efecto es el mismo. Al ejecutarlo, se genera el siguiente entorno de memoria:

Variable Tipo Contenido
suma entero ?
num1 entero ?
num2 entero ?

Al ejecutar la primera instruccin de asignacin, num1 7, se busca en el entorno una
variable llamada num1 y, si existe, su contenido se modifica con el valor constante 7.

Variable Tipo Contenido
suma entero ?
num1 entero 7
num2 entero ?

Luego, al ejecutar la segunda instruccin de asignacin, num2 20, se busca en el
entorno una variable llamada num2 y, si existe, su contenido se modifica con el valor
constante 20.


APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
11
Variable Tipo Contenido
suma entero ?
num1 entero 7
num2 entero 20

Luego se ejecuta la tercera instruccin de asignacin, suma num1+num2, que consiste
en buscar las variables num1 y num2 en el entorno de memoria, si existen se toma una
copia de su contenido y se suman y luego, se busca en el entorno de memoria una variable
llamada suma y, si existe, se modifica su valor con el valor 27 y el entorno quedara
finalmente as:

Variable Tipo Contenido
suma entero 27
num1 entero 7
num2 entero 20

Luego se ejecuta la instruccin pare que indica la terminacin normal del algoritmo y que
conlleva la liberacin de la memoria reservada a travs de la declaracin de variables.

Cualquier bsqueda de una variable en el entorno de memoria que resulte infructuosa
provocar la terminacin anormal de la ejecucin del algoritmo. Lo mismo ocurre cuando se
hace referencia a una instruccin o a un operador que no existe en el lenguaje.


2.6. OperacIones entre enteros y reaIes 2.6. OperacIones entre enteros y reaIes 2.6. OperacIones entre enteros y reaIes 2.6. OperacIones entre enteros y reaIes
Cuando se realizan operaciones numricas hay que tener en cuenta la operacin as como el
tipo de los operandos (entero o real). Por ejemplo, cualquier persona que sepa dividir dira
que es igual a 0.5 lo cual puede no ser cierto en la mquina. Resulta que cuando esta
operacin se hace en la mquina, el resultado depende del tipo de los operandos.

Cuando se hace una operacin bsica en la mquina y por lo menos uno de los operandos es
de tipo real, el resultado es de tipo real. Esto es, si los operandos involucrados en una
operacin son todos enteros, el resultado ser un entero.

El operando no necesariamente es una variable, podra ser una constante. En este ltimo caso,
la regla se aplica de la misma forma.

Supngase que se tienen las siguientes instrucciones de asignacin:


Operandos Resultado

Instruccin
n1 n2 res
Observaciones
res n1 + n2
entero entero entero
En el caso de la divisin, cuando los dos
res n1 - n2
entero real real
operandos son enteros, lo que ocurre
res n1 * n2
real entero real
es que se trunca la parte decimal del
res n1 f n2
real real real
resultado. As, es igual a 0 y no a 0.5.
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
12
Una constante numrica es entera (no tiene parte decimal) si pertenece al conjunto de los
nmeros enteros. En caso contrario es real as su parte decimal sea cero. En la mquina, la
parte decimal se indica con punto (.) y no con coma (,).

Supngase que las variables op1 y op2 son enteras y que op3 es real.


Operandos Resultado
Operacin
op1 op2 op3 res
Observaciones

res op1 + op2 - op3

4

7

13.8

-2.8
Por lo menos uno de los
operandos es real, por lo tanto el
resultado es un real.
res op1f op2 + 101
6 4 102 Como op1 y op2 son enteras,
op1fop2 da 1 y no 1.5.

res op3 * 2 - op1f2.0

5

5

2

1.5
Aunque op1 es entero op1f2.0 da
2.5 porque 2.0 es una constante
real.

res op1 + op2f3

17

14

21
Como op2 es una variable entera
y 3 es una constante entera, op2f3
da un entero.


EJER6|6|08 1.
1.1 la||e e| resu|lado de |as operac|ores de as|grac|r espec|l|cadas, dado e| eslado de |as s|gu|erles
var|ao|es erleras y ler|erdo er cuerla e| resu|lado de |a operac|r arler|or.

y o a p z r x q
10 11 2 ? ? ? ? ?
18



0perac|n Resu|tado
x y8.5 18
x y/13
x xy1
z o(a-p)
p xx/2
q (xx)/2
z y11.31
q rxz-y






APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
13
1.2 L|ere |a s|gu|erle lao|a:
Lo contrar|o
de |a cond|c|n.
es |a
cond|c|n.
a>11
o c
c = | c |
10 po
p < |1
a r


1.3 Varque cor ura X |os rorores de var|ao|es que sor v||dos:

var|ao|e var|ao|e
X A100 r_251
sa|ar|o 2r
z r|z
peso rr|
|ea pare
318 _rr21

1.1 Escr|oa ur a|gor|lro que ca|cu|e e| rea de 5 lrapec|os y e| rea prored|o. Ejecule e| a|gor|lro e ||uslre e|
eleclo er e| erlorro de reror|a.

1.5 Ejecule |os s|gu|erles a|gor|lros y d|ga qu race cada uro. 3| ercuerlra a|gur error, exp||que c|ararerle
er qu cors|sle y cro podria so|uc|orarse. 3| e| a|gor|lro esl correclo ||uslre e| eleclo er e| erlorro de
reror|a.

'ejerp||lo1
erlero a,o,c
a 10
o 5
c ao
pare
lerr|re

'ejerp||lo2
erp|ece
erlero r,r
r r11
pare
lerr|re

'ejerp||lo3
erp|ece
rea| r1, r2, r3, del
r1 3.5
r2 2.5 0alos de erlrada: |as lres ca||l|cac|ores
r3 1.0 0alos de sa||da: |a ca||l|cac|r del|r|l|va
del r1r2r3/3
pare
lerr|re
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
14

'ejerp||lo1
erp|ece
rea| r1, r2, r3, del
r1 3.5
r2 2.5 0alos de erlrada: |as lres ca||l|cac|ores
r3 1.0 0alos de sa||da: |a ca||l|cac|r del|r|l|va
del (r1r2r3)/3
pare
lerr|re

3or |gua|es |os resu|lados de |os a|gor|lros ejerp||lo3 y ejerp||lo1? Por qu?


1. 0el|ra en sus prop|as pa|abras:

A|gor|lro
Pa|aora reservada
var|ao|e


1.Z 3uporga que er c|erlo a|gor|lro se l|ere |a s|gu|erle dec|arac|r de var|ao|es y |as s|gu|erles as|grac|ores:

erlero rur1, rur2, rur3
rea| va|or1, va|or2, va|or3
rur1 20
rur2 1
rur3 21
va|or1 1Z.1
va|or2 8.
va|or3 1.1

Er lorra |ndepend|ente y cor oase er |a |rlorrac|r arler|orrerle dada, eva|ue cada ura de |as
operac|ores espec|l|cadas er |a lao|a. L|ene s|o |os espac|os de |as var|ab|es |nvo|ucradas en |a
operac|n.


Ejemp|o.

Para |a operac|r
rur3 rur1rur2

deoe ||erar |os espac|os correspord|erles a |as var|ao|es rur3, rur1 y rur2 cor |os va|ores respecl|vos,
despus de ejeculada |a as|grac|r. Er |as s|gu|erles as|grac|ores ro se deoer lerer er cuerla |os caro|os
ocurr|dos er |as var|ao|es, se deoe lraoajar cor |os va|ores del|r|dos a| pr|rc|p|o.








Exprese |os resu|lados rea|es
cor ura so|a c|lra dec|ra|
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
15
Var|ab|es enteras Var|ab|es rea|es
0perac|n rur1 rur2 rur3 va|or1 va|or2 va|or3
rur3 rur1rur2
20
4 24
rur3 va|or1va|or2
rur3 rur1/rur2
rur3 rur38.Z
rur3 rur3va|or2
rur3 rur1va|or2
rur3 va|or2
va|or3 va|or1-va|or2
va|or3 va|or1rur1
va|or3 rur3/rur1
va|or3 va|or3/rur2
rur3 va|or3
va|or3 rur1va|or1


2.7. nstruccIones de entrada o saIIda 2.7. nstruccIones de entrada o saIIda 2.7. nstruccIones de entrada o saIIda 2.7. nstruccIones de entrada o saIIda

Volviendo al algoritmo que suma dos nmeros determinados, lo ideal sera contar con uno
que permitiera sumar dos nmeros enteros cualesquiera, de lo contrario, programar
computadores no pasara de ser una tarea interesante.

Para poder hacer esto, tiene que haber interaccin entre el usuario y el computador para que
sea posible especificar los nmeros por sumar. Obsrvese que hasta este momento esa
interaccin no existe, ni siquiera haba sido mencionada.



El usuario es quien hace los requerimientos y se beneficia del algoritmo.




EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
16

Para que exista interaccin entre el usuario y el computador es necesario que haya
instrucciones que permitan que ste hable con la mquina y que ella le responda y
viceversa.

Las instrucciones que permiten la interaccin entre el usuario y la mquina son las llamadas
instrucciones de entrada o salida.

Las instrucciones de entrada o salida son las de lectura o escritura y estn estrechamente
relacionadas con los dispositivos de entrada o salida. En este libro se trabajar con el teclado
como dispositivo de entrada y con la pantalla como dispositivo de salida, por ser stos los
ms utilizados y conocidos.

Cuando se necesita que haya comunicacin entre el usuario y la mquina, a travs del
usuario, se ejecuta una instruccin de lectura, el usuario tiene la palabra (teclado). Si la
comunicacin se hace a travs de la mquina, se ejecuta una instruccin de salida, la mquina
tiene la palabra (pantalla).


2.7.1. nstruccIn de entrada lea
Permite la comunicacin del usuario con la mquina. Consiste en almacenar en una variable
el valor suministrado por el usuario. Su sintaxis es:

lea variable
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
17
Ejemplo:

lea m

El efecto de esta instruccin es el cambio del contenido de la variable m por el valor
especificado por el usuario. En otras palabras, una lectura implica una asignacin. As
que aparte de la asignacin, la instruccin de lectura es la otra posibilidad que existe
para cambiar el contenido de una variable.

Con frecuencia se oye decir se lee la variable cuando lo que realmente pasa es que
se lee en la variable.

Por qu no es vlida ni tiene sentido la instruccin lea 20?


2.7.2. nstruccIn de saIIda escriba
Permite la comunicacin de la mquina con el usuario. Su sintaxis puede ser una de las tres
siguientes:

escriba lista_de_variables

Las variables de la lista deben separarse con el caracter coma ( , ).

Ejemplo:

escriba a,b
escriba h

El efecto de estas instrucciones es escribir en la pantalla el contenido de las
variables que aparecen en la lista (a y b, en el primer caso, o h en el segundo).
Si no existen, la ejecucin del algoritmo se terminar anormalmente y si
existen pero no han sido inicializadas, se mostrar el valor basura que
contengan el cual puede ser cero o espacio en el mejor de los casos.

escriba mensaje

Ejemplo:

escriba Colombia es un pais hermoso."
El efecto de esta instruccin es escribir en la pantalla el texto que aparece
entre comillas, tal como est. El mensaje tiene que estar entre comillas, de
lo contrario, se terminar anormalmente la ejecucin del algoritmo.

Colombia es un pais hermoso.


EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
18
escriba variable1,"mensaje1", variable2,"mensaje2" .

El efecto de esta instruccin es escribir en la pantalla el contenido de la
variable llamada variable1, el texto que aparece entre comillas, tal como
est, el contenido de la variable llamada variable2, el texto que aparece
entre comillas, tal como est,

Ejemplo:

escriba a," + ,b," = ,c

El efecto de esta instruccin es escribir en la pantalla el contenido de la
variable llamada a, el texto que aparece entre comillas, tal como est
( + ), el contenido de la variable llamada b, el texto que aparece entre
comillas, tal como est, ( = ) y el contenido de la variable llamada c.

As, si las variables a, b y c contienen los valores 2, 3 y 5,
respectivamente, en la pantalla aparecera lo siguiente:


2 + 3 = 5


Ejemplo:

escriba "De los, ne, "estudiantes de la Escuela, cas, "son
bogotanos.

Si, por ejemplo, ne vale 4500 y cas vale 2700, en la pantalla aparecera lo
siguiente:

De los +500 estudiantes
de la Escuela 2700 son
bogotanos.

Son diferentes las instrucciones escriba a y escriba a"?

Son totalmente diferentes. La instruccin escriba a escribe en el dispositivo de salida (la
pantalla en este libro) el contenido de la variable a, mientras que la instruccin escriba a"
escribe la letra a porque sta aparece entre comillas.

Ahora que ya hay interaccin entre el usuario y la mquina, se puede volver al problema de
sumar dos nmeros cualesquiera.



APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
19
Ejemplo: Sumar dos nmeros.

Como no se especifica qu clase de nmeros se sumarn, se puede suponer que son enteros o
que son reales. En el segundo caso, se tendra un mayor alcance (por qu?).

Qu variables se necesitan?

Se necesitan dos variables para guardar los sumandos y una para guardar el resultado. En el
algoritmo solucin se supondr que los nmeros son enteros.

suma_dos_numeros_enteros"
empiece
entero num1, num2, suma
escriba Hola. Yo sumo dos numeros enteros cualesquiera."
escriba Por favor dame el primer numero."
lea num1
escriba Por favor dame el segundo numero."
lea num2
suma num1+num2
escriba num1, +", num2," = , suma
escriba Tarea finalizada."
pare
termine

Al disear los mensajes para la instruccin escriba, no se debe olvidar que la comunicacin se est
haciendo con un ser humano y que por lo tanto deben ser escritos en el lenguaje natural de la persona.
Suele pasar que los mensajes carecen de calidez porque se est pensando en la mquina. Tampoco es
conveniente incluir trminos propios del lenguaje que son innecesarios y pueden confundir al usuario.
Por ejemplo:

En lugar de la siguiente instruccin:
escriba Este algoritmo suma dos nmeros.
sera mejor algo como
escriba Suma de dos nmeros.

Obsrvese que en este algoritmo no se puede decir que el contenido final de la variable suma
sea basura por ser desconocido porque, aunque no se sabe qu valores ingresar el usuario en
el momento de la ejecucin, a la variable suma s se le est definiendo un valor: el de la
suma de las variables num1 y num2, cuyos contenidos son definidos previamente por el
usuario.

2.8. Prueba de escrItorIo 2.8. Prueba de escrItorIo 2.8. Prueba de escrItorIo 2.8. Prueba de escrItorIo
En este libro, la ejecucin de un algoritmo consistir en hacer las veces de mquina. Esto es,
llevar a cabo todas las tareas que despus tendr que hacer el computador. A este trabajo se le
llamar prueba de escritorio, la cual se hace con papel y lpiz y en una forma similar a la que
se muestra a continuacin. Esas pruebas se hacen con valores cualesquiera, de acuerdo con el
tipo de las variables, y su efecto se refleja en la pantalla y en el entorno de memoria.
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
20
Ejemplo: Prueba de escritorio

La prueba de escritorio para el algoritmo suma_dos_numeros_enteros se reflejara en el
entorno de memoria y en la pantalla como se muestra a continuacin:

Instruccin Efecto
entero num1, num2, suma

Se reserva espacio para tres variables enteras
llamadas num1, num2 y suma,
respectivamente.

Variable Tipo Contenido

num1 entero ?


num2 entero ?


suma entero ?


escriba Hola. Yo sumo dos numeros
enteros cualesquiera."

Aparece el mensaje en la pantalla.

Hola. Yo sumo dos numeros
enteros cualesquiera.


Escriba Por favor dame el primer
numero"



Por favor dame el primer numero


lea num1

Variable Tipo Contenido

num1 entero 13


num2 entero ?


suma entero ?


escriba Por favor dame el segundo
numero"



Por favor dame el segundo numero



lea num2

Variable Tipo Contenido

num1 entero 13


num2 entero -+


suma entero ?



APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
21
Instruccin Efecto
suma num1+num2


Variable Tipo Contenido

num1 entero 13


num2 entero -+


suma entero 9


escriba num1, +", num2," = , suma



13 + -4 = 9



escriba Tarea finalizada."



Tarea finalizada.



pare
El espacio de memoria reservado
para las variables num1, num2 y
suma queda libre.

Qu pasa si el usuario ingresa un valor real en lugar de uno entero? Simplemente se toma
la parte entera. Por ejemplo, si el usuario ingresa 13.57, el valor que se almacena es 13.

Cmo sera la versin de esta solucin para nmeros reales? Qu pasara en este caso si
el usuario ingresa un nmero entero?

Si ahora se quisiera restringir el algoritmo de suma de dos enteros a enteros positivos, cmo
se hara?

Con las herramientas que se tienen hasta ahora en el lenguaje algortmico no es posible hacer
tal restriccin. Es necesario tener la forma de condicionar la realizacin de la suma. Si los
nmeros son positivos Primero, para establecer relacin entre los operandos se necesita de
los operadores relacionales y para exigir que la condicin ser positivo sea satisfecha por
ambos operandos se requiere de los conectores lgicos.

Palabras reservadas
empiece entero
termine real
pare caracter
cadena_de
lea
escriba
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
22

EJER6|6|08 2.

2.1 Rea||ce ura prueoa de escr|lor|o a cada uro de |os s|gu|erles a|gor|lros. No |os mod|f|que. 3| ercuerlra
a|gur error, exp||que c|ararerle er qu cors|sle. l|uslre e| eleclo er e| erlorro de reror|a y er |a parla||a
correspord|erles.

2.1.1
"suma"
erp|ece
erlero a,o,sura
escr|oa '3ura de dos rureros erleros cua|esqu|era.
sura ao
escr|oa a, ',o, = ',sura
escr|oa '3ura rea||zada.
pare
lerr|re

2.1.2
"area_rectan"
erp|ece
escr|oa 'dec|arac|r de var|ao|es
rea| oase,a|lura,area

escr|oa 'C|cu|o de| rea de ur reclrgu|o cua|qu|era.
escr|oa '8A3E = '
|ea oase
escr|oa 'ALTuRA = '
|ea a|lura
area oasea|lura
escr|oa 'E| rea de| reclrgu|o cuya oase es ',oase, y cuya a|lura es ',a|lura, es ',area
escr|oa 'F|r rea reclrgu|o.
pare
lerr|re

2.2 Corslru|r serdos a|gor|lros para so|uc|orar |os s|gu|erles proo|eras:

2.2.1 lrlercaro|ar y escr|o|r e| corler|do de dos var|ao|es de l|po erlero |r|c|a||zadas prev|arerle por e|
usuar|o. Terga er cuerla que ro se lrala de escr|o|r a| revs |os dos dalos |rgresados por e| usuar|o
s|ro que er reror|a |os corler|dos de |as dos var|ao|es deoer quedar a| corlrar|o.

Ejerp|o:
var|ao|e 1: Z
var|ao|e 2: -11
Resu|lado:
var|ao|e 1: -11
var|ao|e 2: Z

2.2.2 Ca|cu|ar y escr|o|r e| perirelro de ur cuadr||lero cuyos |ados r|der 11, 22, 8 y 1Z. 0eje lodos |os
dalos y e| resu|lado er reror|a. lga|e ura prueoa de escr|lor|o e ||uslre e| eleclo er e| erlorro
de reror|a correspord|erle.
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
23

2.2.3 Ca|cu|ar y escr|o|r e| rea y e| vo|urer de ur pr|sra reclargu|ar dado por e| usuar|o. No o|v|de
escr|o|r rersajes c|aros a| usuar|o, de la| rarera que sepa qu dalos deoe |rgresar y por qu.
0eje lodos |os dalos y e| resu|lado er reror|a.

2.2.1 Ca|cu|ar y escr|o|r |as coorderadas de dos purlos que perlerezcar a ura recla |rgresada por e|
usuar|o er |a lorra o rx y + = . Cu|es sor |os dalos de erlrada que se reces|lar? Escr|oa
laro|r |a recla que del|r| e| usuar|o. No o|v|de escr|o|r rersajes c|aros a| usuar|o, de la| rarera
que sepa qu dalos deoe |rgresar o a qu se rel|ere |o que esl v|erdo er e| d|spos|l|vo de sa||da
(|a parla||a, er esle caso). 0eje lodos |os dalos y e| resu|lado er reror|a.

2.2.5 Ca|cu|ar y escr|o|r |a perd|erle de ura recla, dados dos purlos que perlerecer a e||a. No o|v|de
escr|o|r rersajes c|aros a| usuar|o, de la| rarera que sepa qu dalos deoe |rgresar y por qu.
0eje lodos |os dalos y e| resu|lado er reror|a. lga|e ura prueoa de escr|lor|o e ||uslre e| eleclo
er e| erlorro de reror|a correspord|erle.

Para pensar: 3| luv|era que racer ur a|gor|lro para aver|guar s| ur purlo perlerece a ura recla,
qu dalos de erlrada reces|laria? Por qu? Cro so|uc|oraria e| proo|era? Cu|es seriar
|os pos|o|es resu|lados de su a|gor|lro?

2.2. Ca|cu|ar y escr|o|r e| rea prored|o de lres lrapec|os cua|esqu|era. Los dalos de |os lrapec|os se
so||c|larr a| usuar|o.

2.2.Z Ca|cu|ar y escr|o|r e| vo|urer de lres c|||rdros cua|esqu|era. Ca|cu|ar y escr|o|r laro|r e| vo|urer
prored|o.

2.2.8 Ca|cu|ar y escr|o|r |a edad prored|o de se|s persoras. Er e| resu|lado ray que escr|o|r |as edades.

2.2.9 Ca|cu|ar y escr|o|r |a edad prored|o de se|s persoras. Er e| resu|lado ro ray que escr|o|r |as
edades. Cu| es |a d|lererc|a cor e| a|gor|lro arler|or? 0u podria aprovecrar?

2.2.10 Ca|cu|ar y escr|o|r |a ca||l|cac|r ooler|da er |a as|gralura que e| usuar|o espec|l|que. E| usuar|o
laro|r sur|r|slrar |as ca||l|cac|ores; |as dos pr|reras va|er e| 0 (30 y 30) y |a lercera e| 10.


2.9. Operadores reIacIonaIes 2.9. Operadores reIacIonaIes 2.9. Operadores reIacIonaIes 2.9. Operadores reIacIonaIes
Permiten establecer relaciones entre dos operandos. Esas relaciones que se establecen se
llamarn condiciones de aqu en adelante.

En este lenguaje se dispondr de los siguientes operadores relacionales:


Igual que = Mayor que > Menor que <
Diferente de Mayor o igual que Menor o igual que



EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
24
2.10. Conectores IgIcos 2.10. Conectores IgIcos 2.10. Conectores IgIcos 2.10. Conectores IgIcos
Permiten la creacin de condiciones compuestas.

y,

La condicin simple de que num1 sea mayor que cero se expresa como

num1 > 0

La condicin simple de que num2 sea mayor que cero se expresa como

num2 > 0

Si la suma se quiere restringir a operandos positivos, se hace necesario que las dos
condiciones se satisfagan. Esto es, el primer operando debe ser positivo y el segundo
tambin. En lenguaje algortmico esta condicin se expresa as:

num1 > 0 y num2 > 0

y por implicar el cumplimiento de ms de una condicin podra llamarse condicin
compuesta. Sin embargo, simplemente se hablar de condicin, sea sta compuesta o no. Ya
se tiene entonces la condicin que se debe satisfacer. Ahora, es necesario disponer en el
lenguaje algortmico de una herramienta que permita preguntar si la condicin se satisface.


3. ESTRUCTURAS DE CO 3. ESTRUCTURAS DE CO 3. ESTRUCTURAS DE CO 3. ESTRUCTURAS DE CONTROL CONDCONALES NTROL CONDCONALES NTROL CONDCONALES NTROL CONDCONALES
En la vida cotidiana, con frecuencia los seres humanos condicionan muchos de sus actos. Por
ejemplo, Si me pagan la bonificacin, me ir de viaje.
Algo tan natural tambin est contemplado en el lenguaje algortmico y se hace a travs de
condiciones y estructuras de control condicionales. Las estructuras de control condicionales
permiten que la realizacin de una o ms acciones est sujeta a la satisfaccin o cumpli-
miento de una o ms condiciones. En este lenguaje se dispone de estructuras de control
condicionales repetitivas y no repetitivas.

3.1. Estructura de controI condIcIonaI 3.1. Estructura de controI condIcIonaI 3.1. Estructura de controI condIcIonaI 3.1. Estructura de controI condIcIonaI no repet no repet no repet no repetItIva ItIva ItIva ItIva si simple: :: :
Se utiliza cuando el cumplimiento de la condicin o de las condiciones implica la ejecucin
de una sola instruccin. La sintaxis es:

si (condicin o condiciones) instruccin

La condicin (o condiciones) debe ir entre parntesis. Si la condicin o condiciones se
cumplen, se ejecuta la instruccin. De lo contrario se contina con lo que haya despus de la
estructura de control condicional. Se dice que es no repetitiva porque al cumplirse la
condicin la instruccin se ejecuta una y slo una vez.

APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
25
Ejemplo:

.
si (k>0) escriba k,"es un numero positivo."
.

En este momento ya se puede construir un algoritmo general para solucionar el problema de
sumar dos nmeros enteros positivos cualesquiera.

suma_dos_numeros_enteros_positivos"
empiece
entero num1, num2, suma
escriba Hola. Yo sumo dos numeros enteros positivos cualesquiera.
escriba Por favor dame el primer numero"
lea num1
escriba Por favor dame el segundo numero"
lea num2
si (num1 > 0 y num2 > 0) suma num1+num2
si (num1 > 0 y num2 > 0) escriba num1, +", num2," = , suma
escriba Tarea finalizada."
pare
termine

Qu pasa si uno de los nmeros es negativo o cero? El usuario se quedar sin saber qu ocu-
rri. Aunque ingres dos nmeros, el nico resultado que obtuvo fue el mensaje Tarea finalizada
as no se haya hecho. Es importante acostumbrarse a escribir los mensajes de error o aclaratorios
que sean pertinentes a la solucin de un problema. Para hacerlo en el algoritmo anterior, habra
que tener en cuenta la posibilidad de que una o todas las condiciones no se cumplan.

En general, es importante conocer y entender las tablas de verdad porque de acuerdo con ellas
se obtiene el resultado de evaluar dos o ms condiciones conectadas con y o con .

Sean c1 y c2 dos condiciones. El resultado de evaluar el cumplimiento de las condiciones
conectadas con y o con se muestra en las siguientes tablas de verdad.

c1 c2 c1 y c2 c1 c2
F F F F
F v F v
v F F v
v v v v

Para que la condicin num1 > 0 y num2 > 0 no se cumpla, basta con que cualquiera de los
operandos sea menor o igual a cero. La condicin para verificarlo sera:

num1 0 num2 0

EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
26
Si los dos operandos son menores o iguales a cero, tambin se satisfar la condicin.

Obsrvese que con el conector y la nica posibilidad de que el resultado de evaluacin sea
verdadero (satisfactorio) es que tanto la evaluacin de c1 como la de c2 sean verdaderas. Y la
nica posibilidad de que el resultado de evaluacin sea falso (no satisfactorio) con el conector
es que tanto c1 como c2 sean falsas. Si la evaluacin tiene lugar con ms de dos
condiciones, el anlisis es el mismo, una vez agrupadas las condiciones, para lo cual se
utilizan los parntesis ( ) que son el smbolo de agrupamiento.

Ejemplo. 6onstruya |a cond|c|n o |as cond|c|ones que perm|tan eva|uar s|:

a. E| va|or de |a var|ao|e m esl erlre -2 y 10.

0 ur ejerp|o de ur va|or de m que curp|a: 5

( ) 10 m y 2 m

o. E| va|or de |a var|ao|e m es ur rurero par que perlerece a| |rlerva|o ( ] d c, .

( ) ( ) ( ) d m y c m y m 2 *
2
m
> =

Los parntesis de adentro se pueden omitir porque el nico conector es y, lo cual exige
que todas se cumplan para que el resultado de la evaluacin sea verdadero. En este caso,
los parntesis estn sobrando, no hacen dao.

Hay ocasiones en que, aunque sobren, vale la pena dejarlos por claridad con respecto al
enunciado.
El resultado de la evaluacin de la condicin ( ) ( ) m 2 *
2
m
= permite saber si un nmero
entero es par porque al hacer la divisin de los enteros m y 2 se obtiene un nmero
entero (la parte decimal se trunca) haciendo que el resultado multiplicado por 2 no sea
necesariamente igual al nmero original, si ste no era par. Por ejemplo, si el contenido
de la variable m es 7, el resultado de la divisin 7f2 es 3 y 3 multiplicado por dos es
diferente de 7. As que, basados en esto se puede afirmar que 7 no es par.
Qu pasa si en lugar de ( ) 2 *
2
m
se escr|oe
( )
( )
2
2 * m
?

c. El valor de la variable m debe ser 2 veces el valor de la variable n si el valor de n es
negativo. Si n es positivo, m debe ser 10 veces el valor de n.

D un ejemplo de valores para m y n que cumplan: -10 y -5, respectivamente.

( ) ( ) ( ) 0 * 10 0 * 2 > = < = n n m n n m y y

En este caso, los parntesis internos son necesarios para forzar el orden de evaluacin.

APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
27
Obsrvese el papel fundamental que juegan los conectores lgicos y los operadores
relacionales en la construccin de las condiciones.


EJER6|6|08 3.
3.1 Corslruya |a cord|c|r o cord|c|ores que perr|lar eva|uar s|:

3.1.1 E| rea de| cuadrado es rayor que e| rea de| lr|rgu|o. 3e corocer e| |ado de| cuadrado (|ado) y |a oase y |a
a|lura de| lr|rgu|o (o y r).
( }

3.1.2 E| va|or de| perirelro p es uro de |os s|gu|erles: 118, 12 |.
( }

3.1.3 La edad de| eslud|arle, e, pertenece a |os dos s|gu|erles |rlerva|os: (11,18), (5, Z0). 0 ur ejerp|o de ur
va|or de e que curp|a. ____
( }

3.1.1 La edad de| eslud|arle, e, pertenece a |os dos s|gu|erles |rlerva|os: [11, 0|, [50, 81|. 0 ur ejerp|o de ur
va|or de e que curp|a. ____
( }

3.1.5 La edad de| eslud|arle, e, pertenece a |os dos s|gu|erles |rlerva|os: [a, r|, [W, l|.
( }

3.1. E| va|or de a perlerece a uno de |os s|gu|erles |rlerva|os: (-38,-10), (2,25), (38,10).
( }

3.1.Z E| va|or de m es ur rurero regal|vo que perlerece a| |rlerva|o (12Z,200). 0 ur ejerp|o de ur va|or de m que
curp|a. ____
( }

3.1.8 E| va|or de m es h veces e| de w dorde w deoe ser pos|l|vo. 0 ur ejerp|o de va|ores de m, h y w que
curp|ar. ___________________
( }

3.1.9 E| va|or de z deoe ser 2 veces e| va|or de p, s| p es regal|vo. 3| p es pos|l|vo, z deoe ser Z veces e| va|or de p.

0 ur ejerp|o de va|ores de z y p que curp|ar. ____

( }

3.2 Corslruya serdos a|gor|lros para so|uc|orar |os s|gu|erles proo|eras:

3.2.1 Ped|r a| usuar|o 3 rureros y suporer que uro de e||os es regal|vo, olro es pos|l|vo y olro es cero.
Escr|oa pr|rero e| regal|vo, |uego e| cero y por u|l|ro e| pos|l|vo. Terga er cuerla que |os rureros
pueder ser |rgresados er cua|qu|er order.

Ejerp|o. Nureros dados por e| usuar|o: 20.1, -3.Z, 0
Resu|lado: Los rureros sor: -3.Z 0 20.1.

3.2.2 Escr|o|r er order ascerderle 3 rureros cua|esqu|era dados por e| usuar|o. 3uporga que |os lres
rureros sor d|lererles erlre si.
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
28

Ejerp|o. Nureros dados por e| usuar|o: 25, -3.Z, 13.8
Resu|lado: Los rureros orderados sor: -3.Z 13.8 25.

3.2.3 0ada ura pa|aora cua|qu|era, dec|r s| es |gua| a Co|oro|a.

3.2.1 0ado ur caracler cua|qu|era, dec|r s| es |gua| a &..

3.2.5 Aver|guar s| ur rurero erlero e perlerece a |a un|n de |os |rlerva|os ( ] B A, y [ ). , 5 C

3.2. Aver|guar s| ur rurero rea| r perlerece a |a |ntersecc|n de |os |rlerva|os ( ] B A, y [ ). , 5 C

3.2.Z Ca|cu|ar y escr|o|r e| rea de ur reclrgu|o cua|qu|era. ver|l|car s| |os dalos de erlrada sor correclos
(rayores que cero). 3| ro |o sor, escr|o|r e| rersaje de error adecuado y delerer |a ejecuc|r de|
a|gor|lro.

3.3 laga serdas prueoas de escr|lor|o a| s|gu|erle a|gor|lro para |os va|ores espec|l|cados. No |o rod|l|que.
Corp|ele |a lao|a:
rola_del
erp|ece
rea| rola
escr|oa 0 su ca||l|cac|r del|r|l|va de Prograrac|r de Corpuladores
|ea rola

s|(rola 1.5 ) escr|oa rola,equ|va|e a exce|erle.
s|(rola 1.0 ) escr|oa rola,equ|va|e a ouero.
s|(rola 3.5 ) escr|oa rola,equ|va|e a aceplao|e.
s|(rola 3.0 ) escr|oa rola,equ|va|e a regu|ar.
s|(rola < 3.0 ) escr|oa rola,equ|va|e a del|c|erle.
escr|oa F|r rola.
pare
lerr|re

Ejecuc|n
No.
Var|ab|e
nota
Hensajes en |a panta||a
1 1.5
2 1.2
0u op|ra de esle a|gor|lro?

La siguiente es una versin mejorada del algoritmo que suma dos enteros positivos
cualesquiera.

suma_dos_numeros_enteros_positivos"
empiece
entero num1, num2, suma
escriba Hola. Yo sumo dos numeros enteros positivos cualesquiera."
escriba Por favor dame el primer numero "
lea num1
escriba Por favor dame el segundo numero "
lea num2
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
29
si (num1 > 0 y num2 > 0) suma num1+num2
si (num1 > 0 y num2 > 0) escriba num1, +", num2," = , suma
si {num1 0 num2 0) escriba "Lo siento. Los dos nmeros no son
positivos."
escriba Tarea finalizada."
pare
termine

Palabras reservadas
empiece entero
termine real
Pare caracter
cadena_de lea
escriba
si

Obsrvese que en el algoritmo presentado hubo necesidad de evaluar dos veces la misma
condicin. Esto porque haba dos acciones dependientes del cumplimiento de una misma
condicin. Cuando esto ocurre, se hace uso de la estructura de control condicional si de
bloque.

3.2. Estructura de controI condIcIonaI 3.2. Estructura de controI condIcIonaI 3.2. Estructura de controI condIcIonaI 3.2. Estructura de controI condIcIonaI no repetItIva no repetItIva no repetItIva no repetItIva si de bloque: :: :
Se utiliza cuando el cumplimiento de la condicin o de las condiciones implica la ejecucin
de una o ms instrucciones. Se dice que es no repetitiva porque al cumplirse la condicin, el
cuerpo del si es ejecutado una y slo una vez. La sintaxis es:

si (condicin o condiciones) entonces
si
del
Cuerpo

fin_si
La palabra reservada entonces indica que se trata de una estructura de control condicional si
de bloque en lugar de una si simple. La palabra reservada fin_si es un delimitador del cuerpo
de la estructura condicional.

Si la condicin o condiciones se cumplen, se ejecuta la instruccin o las instrucciones que
conforman el cuerpo de la estructura de control condicional. Si no se cumplen, se continuar
con lo que haya despus del delimitador fin_si.

Otra versin del algoritmo que suma dos nmeros enteros positivos cualesquiera, utilizando
la estructura de control condicional si de bloque es:

suma_dos_numeros_enteros_positivos"
empiece
entero num1, num2, suma
caracter resp
cadena_de 12 nombre
EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
30
escriba Hola. Yo sumo dos numeros enteros positivos cualesquiera
cDeseas intentarlo (s: si, n o cualquier otro caracter: no) "
lea resp
si (resp = `s' resp = `S') entonces
escriba cCual es tu nombre?
lea nombre
escriba nombre, , por favor dame el primer numero "
lea num1
escriba Ahora, dame el segundo numero "
lea num2
si (num1 > 0 y num2 > 0) entonces
suma num1+num2
escriba num1, +", num2," = , suma
fin_si
si (num1 0 num2 0) escriba Lo siento ",nombre,. Los dos numeros
no son positivos. Por lo menos uno de ellos es negativo o cero."
escriba nombre, , espero haberte sido util."
escriba Tarea finalizada."
fin_si
si (resp `s' y resp `S') escriba Bueno. sera en otra ocasin."
pare
termine

Si al ejecutar el algoritmo tanto num1 como num2 son positivos, no slo se calcula la suma
sino que se escribe el resultado. Obsrvese que las instrucciones

escriba nombre, , espero haberte sido util."
escriba Tarea finalizada."

son ejecutadas sin importar las caractersticas de los nmeros.

Obsrvese tambin que lo que hay a continuacin de la estructura de control condicional es la
evaluacin de la condicin contraria. Dicha evaluacin se hace sin importar lo que haya
pasado en la anterior, lo cual no debera suceder. A pesar de que el algoritmo funciona, as
como est, con ms herramientas se podra lograr una mejor codificacin. El trmino
codificacin se refiere a la escritura en determinado lenguaje de una serie de instrucciones.

La lnea de cdigo
si (resp = `s' resp = `S') entonces

realiza lo que de aqu en adelante se llamar una validacin. Una validacin es la
verificacin de la ocurrencia de una situacin acompaada de la toma de decisiones
correspondiente.

La apariencia del algoritmo, esto es, la forma como estn escritas las instrucciones, no afecta
la ejecucin pero s es importante que sea clara para el ser humano que es quien escribe el
algoritmo y quien lo modifica. Por esta razn es importante acostumbrarse a dejar lneas en
blanco, espacios o tambin sangra en el cuerpo de las estructuras de control. El cdigo de los
algoritmos debe ser claro y agradable a la vista.
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
31
3.3. Estructura de controI condIcIonaI no repetItIva 3.3. Estructura de controI condIcIonaI no repetItIva 3.3. Estructura de controI condIcIonaI no repetItIva 3.3. Estructura de controI condIcIonaI no repetItIva si de bloque con opcIn con opcIn con opcIn con opcIn si_no: :: :
La estructura de control condicional si de bloque tiene la opcin si_no que permite ordenar
la ejecucin de una o ms instrucciones en caso de que la condicin o condiciones no se
cumplan. La sintaxis es:

si (condicin o condiciones) entonces
si
del
Cuerpo

si_no
si_no
del
Cuerpo

fin_si

Al entrar a esta estructura de control condicional, slo se ejecuta uno de los dos conjuntos de
instrucciones. Si la condicin o condiciones se cumplen se ejecuta el conjunto de
instrucciones correspondiente al si, de lo contrario, se ejecuta el conjunto de instrucciones
correspondiente al si_no.

Utilizando esta opcin se puede pulir el cdigo del algoritmo antes presentado.

suma_dos_numeros_enteros_positivos"
empiece
entero num1, num2, suma
caracter resp
cadena_de 12 nombre
escriba Hola. Yo sumo dos numeros enteros positivos cualesquiera
cDeseas intentarlo (s: si, n o cualquier otro caracter: no) "
lea resp
si (resp = `s' resp = `S') entonces
escriba cCual es tu nombre?
lea nombre
escriba nombre, , por favor dame el primer numero "
lea num1
escriba Ahora, dame el segundo numero "
lea num2
si (num1 > 0 y num2 > 0) entonces
suma num1+num2
escriba num1, +", num2," = , suma
si_no
escriba Lo siento ,nombre,". Los dos numeros no son positivos."
fin_si
escriba nombre, , espero haberte sido util.
escriba Tarea finalizada."
si_no
escriba Bueno. sera en otra ocasin."
fin_si
pare
termine


EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
32
El cuerpo de una estructura condicional si de bloque puede contener a su vez otra estructura
de control condicional si, simple o de bloque. Cuando esto ocurre se dice que las estructuras
de control estn anidadas.

Ejemplos de formas de codificacin con estructuras condicionales anidadas
.
si ( . ) entonces
.
si ( . ) entonces
.
si ( . ) entonces
.
si ( . ) instruccin
.
si_no
.
fin_si
.
si_no
.
fin_si
.
fin_si




.
si ( . ) entonces
.
si ( . ) entonces
.
si_no
.
fin_si
.
si ( . ) instruccin
si ( . ) entonces
.
fin_si
fin_si
.
Obsrvese la forma de escribir el cdigo (con sangra) y que una opcin si_no est asociada
al si de bloque activo (que no se ha cerrado) ms cercano a ella.

Ejemplo 1. Intervalos bien conformados

0ados |os |rlerva|os l1 e l2, aver|guar s| eslr o|er corlorrados. 3| ro es asi, escr|o|r e| rersaje o |os
rersajes de error correspord|erles. ur |rlerva|o se cors|dera o|er corlorrado s| e| |ir|le |rler|or es
reror que e| |ir|le super|or. Terga er cuerla lodas |as pos|o|||dades.

UNA P08|LE 80LU6|0N

'corlorr_|rlerv
erp|ece
erlero ||r|rl1, ||rsup1, ||r|rl2, ||rsup2

escr|oa 'lo|al 0are dos |rlerva|os de rureros erleros y yo le d|go s| eslr o|er corlorrados o er
cu| esl e| error.

Erlrada de dalos
escr|oa 'lrlerva|o 1:
escr|oa 'Lir|le |rler|or?
|ea ||r|rl1
escr|oa 'Lir|le super|or?
|ea ||rsup1
escr|oa 'lrlerva|o 2:
escr|oa 'Lir|le |rler|or?
|ea ||r|rl2
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
33
escr|oa 'Lir|le super|or?
|ea ||rsup2

Procesar|erlo y er|s|r de resu|lados

escroa '0ados |os |rlerva|os l1: [,||r|rl1, ',,||rsup1, '| e l2 [ ,||r|rl2, ',,||rsup2, '|:

s| (||r|rl1<||rsup1 y ||r|rl2<||rsup2) erlorces
escr|oa 'l1 e l2 eslr o|er corlorrados.
s|_ro
s| (||r|rl1<||rsup1) erlorces
escr|oa 'l1 esl o|er corlorrado pero l2 ro.
s|_ro
s| (||r|rl2<||rsup2) erlorces
escr|oa 'l2 esl o|er corlorrado pero l1 ro.
s|_ro
escr|oa 'l1 e l2 eslr |rcorreclarerle corlorrados.
l|r_s|
l|r_s|
l|r_s|
escr|oa 'lasla |uego. Fue ur p|acer ayudarle.
pare
lerr|re
PRUEA8 0E E86R|T0R|0

Ejemp|o 1: Ejemp|o 2:
l1: [20, Z|, l2: [0, -10| l1: [Z, 20|, l2: [-10, 0|
Resu|lado: Los dos |rlerva|os [20, Z| y Resu|lado: Los dos |rlerva|os [Z, 20| y
[0, -10| eslr ra| corlorrados. [-10, 0| eslr o|er corlorrados.

Erlorros de reror|a
Var|ab|e T|po 6onten|do Var|ab|e T|po 6onten|do
||r|rl1 erlero ? 20 ||r|rl1 erlero ? Z
||rsup1 erlero ? Z ||rsup1 erlero ? 20
||r|rl2 erlero ? 0 ||r|rl2 erlero ? -10
||rsup2 erlero ? -10 ||rsup2 erlero ? 0

Ejemp|o 3: Ejemp|o 4:
l1: [Z, 20|, l2: [10, -10| l1: [Z, -20|, l2: [10, 10|
Resu|lado: E| |rlerva|o [Z, 20| esl o|er Resu|lado: E| |rlerva|o [Z, -20| ro esl
corlorrado pero [10, -10| ro. o|er corlorrado pero [10, 10| si.

Var|ab|e T|po 6onten|do Var|ab|e T|po 6onten|do
||r|rl1 erlero ? Z ||r|rl1 erlero ? Z
||rsup1 erlero ? 20 ||rsup1 erlero ? -20
||r|rl2 erlero ? 10 ||r|rl2 erlero ? 10
||rsup2 erlero ? -10 ||rsup2 erlero ? 10



EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
34
Ejemplo 2. Diferencia de intervalos.

Dados los intervalos I1 e I2, averiguar si un nmero real r pertenece a la diferencia de los
intervalos cerrados I1 e I2 (I1-I2). Para que el nmero pertenezca, debe estar contenido en el
primer intervalo pero no en el segundo.

UNA P08|LE 80LU6|0N

'd|lererc|a_|rlerv
erp|ece
rea| ||r|rl1, ||rsup1, ||r|rl2, ||rsup2, r

escr|oa 'lo|al 0are dos |rlerva|os de rureros rea|es y ur rurero rea| y yo le d|go s| e|
rurero perlerece a |a d|lererc|a de |os |rlerva|os. 3upordr que |os |rlerva|os que das eslr
o|er corlorradosl

Erlrada de dalos
escr|oa 'lrlerva|o 1:
escr|oa 'Lir|le |rler|or?
|ea ||r|rl1
escr|oa 'Lir|le super|or?
|ea ||rsup1

escr|oa 'lrlerva|o 2:
escr|oa 'Lir|le |rler|or?
|ea ||r|rl2
escr|oa 'Lir|le super|or?
|ea ||rsup2

escr|oa '0u va|or rea| qu|eres aver|guar s| perlerece a |a d|lererc|a de |os |rlerva|os?
|ea r

Procesar|erlo y er|s|r de resu|lados

escr|oa '0ados |os |rlerva|os l1: [,||r|rl1, ',,||rsup1, '| e l2 [ ,||r|rl2, ',,||rsup2, '|:

s| ((r ||r|rl1 y r ||rsup1) y (r < ||r|rl2 r > ||rsup2)) erlorces
escr|oa 'E| rurero ',r, 'si perlerece a |a d|lererc|a de |os |rlerva|os porque perlerece
a| pr|rero pero ro a| segurdo.
s|_ro
escr|oa 'E| rurero ',r, 'ro perlerece a |a d|lererc|a de |os |rlerva|os. '
l|r_s|

escr|oa 'lasla |uego. Fue ur p|acer ayudarle.
pare
lerr|re
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
35
Palabras reservadas
empiece entero
termine real
Pare caracter
cadena_de lea
escriba si
entonces si_no
fin_si

EJER6|6|08 4.
1.1 Exp||que en sus prop|as pa|abras para qu s|rve |a eslruclura cord|c|ora| 3l de o|oque. Corpre|a cor e|
3l s|rp|e y rerc|ore ura verlaja y ura desverlaja de cada ura.

1.2 laga ura prueoa de escr|lor|o a| ejerp|o dos, u|l|ro de esla secc|r (d|lererc|a de |rlerva|os), y d|ga para
cada ejerp|o s| r perlerece o ro a |a d|lererc|a de |os |rlerva|os dados.

Ejemp|o 1: Ejemp|o 2:

l1: [Z, 20|, l2: [-10, 0|, r: 11 l1: [-Z, 20|, l2: [-1, 10|, r: 9
Resu|lado: 3i ___ No ___ Resu|lado: 3i ___ No ___

Erlorros de reror|a

Var|ab|e T|po 6onten|do Var|ab|e T|po 6onten|do
||r|rl1 rea| ? ||r|rl1 rea| ?
||rsup1 rea| ? ||rsup1 rea| ?
||r|rl2 rea| ? ||r|rl2 rea| ?
||rsup2 rea| ? ||rsup2 rea| ?
r rea| ? r rea| ?

1.3 Corslruya serdos a|gor|lros para so|uc|orar |os s|gu|erles proo|eras. Rea||ce ura prueoa de escr|lor|o a
cada uro de |os a|gor|lros e ||uslre su eleclo er e| erlorro de reror|a y er |a parla||a.

1.3.1 0ada ura pa|aora cua|qu|era, dec|r s| es o ro |gua| a Co|oro|a. Cu| es |a d|lererc|a de esla
so|uc|r cor |a que d|o a 3.2.3?

1.3.2 0ado ur caracler cua|qu|era, dec|r s| es o ro |gua| a &..

1.3.3 0ado ur rurero erlero cua|qu|era, dec|r s| es par o |rpar.

1.3.1 la||ar y escr|o|r e| perirelro y e| rea de ur lrapec|o regu|ar cua|qu|era. ver|l|que s| |os dalos de
erlrada, oase rayor, oase reror y a|lura, sor correclos (rayores que cero). 3| ro |o sor, escr|oa e|
rersaje de error adecuado y delerga |a ejecuc|r de| a|gor|lro.

1.3.5 Ca|cu|ar y escr|o|r |a edad prored|o de cualro edades cua|esqu|era s|o s| |a sura de slas ro excede a ur
va|or prev|arerle del|r|do por e| usuar|o. Er caso corlrar|o, escr|o|r ur rersaje adecuado a| usuar|o.

EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
36
1.3. Ped|r a ur usuar|o |as |org|ludes de |os |ados de ur lr|rgu|o y racer |o s|gu|erle, deperd|erdo de|
lr|rgu|o.

a. Equ||tero: ca|cu|ar su perirelro.
o. |ssce|es: ca|cu|ar |a d|lererc|a erlre e| produclo de |os dos |ados |gua|es y e| olro |ado.
c. Esca|eno: escr|o|r |a red|da de| |ado rs |argo.

3| a|guro de |os dalos es reror o |gua| que cero, se deoe er|l|r ur rersaje de error y delerer |a
ejecuc|r de| a|gor|lro.

Ejerp|o 1:
Lado 1 |gua| a 3, |ado 2 |gua| a 3, |ado3 |gua| a 3
Resu|lado: E| lr|rgu|o de |ados 3, 3 y 3 es equ||tero y su perirelro es |gua| a 9.

Ejerp|o 2:
Lado 1 |gua| a 5, |ado 2 |gua| a 5, |ado 3 |gua| a 2
Resu|lado: E| lr|rgu|o de |ados 5, 5 y 2 es |ssce|es y |a d|lererc|a erlre e| produclo
de |os dos |ados |gua|es y e| olro |ado es 23.

Ejerp|o 3:
Lado 1 |gua| a 8, |ado 2 |gua| a 3, |ado 3 |gua| a 11
Resu|lado: E| lr|rgu|o de |ados 8, 3 y 11 es esca|ero y e| |ado rs |argo r|de 11.

Ejerp|o 1:
Lado 1 |gua| a 10, |ado 2 |gua| a -1, |ado 3 |gua| a
Resu|lado: Lo s|erlo. E| lr|rgu|o cor |ados 10, -4 y ro ex|sle.

1.3.Z Ped|r dos reclas a ur usuar|o y aver|guar:

o 3or perperd|cu|ares? Exp|ique|e c|ararerle a| usuar|o e| porqu.
o 3or para|e|as? Exp|ique|e c|ararerle a| usuar|o e| porqu.
o Ex|sle purlo de |rlersecc|r? Por qu? 3| ex|sle, cu|es sor |as coorderadas de ese
purlo de |rlersecc|r?

1.3.8 Ped|r ura recla a ur usuar|o y ur purlo de e||a. ver|l|car que e| purlo si perlerece a |a recla que esl dardo e|
usuar|o. 3| ro perlerece, escr|oa ur rersaje de error y delerga |a ejecuc|r de| a|gor|lro. 3| e| purlo
perlerece, erlorces ra||ar |as coorderadas de uro que esl a |a |zqu|erda y olro a |a derecra de |.

1.3.9 Ped|r a ur usuar|o |a ecuac|r de ura recla ( b mx y + = ) y:
o Ca|cu|ar y escr|o|r |as coorderadas de |os purlos de corle cor |os ejes (aosc|sas - x ,
orderadas - y ).
o Ca|cu|ar y escr|o|r e| rea de| lr|rgu|o que se lorra erlre |a recla y |os ejes coorderados.
Terga er cuerla que |a recla dada podria ser ror|zorla| o verl|ca|.

1.3.10 ura ecuac|r cuadrl|ca es de |a lorra ; 0
2
= + + c bx ax . 0 , , , a R c b a La so|uc|r de ura
ecuac|r de slas, es dec|r, |os va|ores que |a sal|slacer, se puede oolerer ul|||zardo |a ecuac|r
a
ac b b
x
2
4
2

=
APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
37
dorde ac b 4
2
es ||arado e| d|scr|r|rarle. E| va|or de| d|scr|r|rarle del|re e| l|po de
so|uc|ores que l|ere |a ecuac|r:

Va|or de|
d|scr|m|nante
ac b 4
2

6ant|dad y t|po de so|uc|ones
de |a ecuac|n
; 0
2
= + + c bx ax
Pos|l|vo 0os (2) so|uc|ores rea|es y d|lererles.
Negal|vo 0os (2) so|uc|ores corp|ejas (de |a lorra . , ; R n m ni m )
0 0os (2) so|uc|ores rea|es e |gua|es.

Ejerp|o:

Ecuac|n |ngresada 6ant|dad y t|po
de |as so|uc|ones
Va|or de |as
so|uc|ones
; 0 5 . 2 3
2
= + x x
2 corp|ejas.
(d|scr|r|rarle regal|vo)
i x 5 . 0 5 . 1
1
+ = , i x 5 . 0 5 . 1
2
=
; 0 2
2
= x x
2 rea|es y d|lererles.
(d|scr|r|rarle pos|l|vo)
2
1
= x , 1
2
= x
; 0 4 4
2
= + x x
2 rea|es e |gua|es.
(d|scr|r|rarle cero)
2
1
= x , 2
2
= x

3o|uc|orar ura ecuac|r cuadrl|ca dada por ur usuar|o. Er e| resu|lado deoe espec|l|carse
c|ararerle carl|dad, l|po y va|or de |as so|uc|ores que l|ere |a ecuac|r. 3uporga que
d|spore de| operador de polerc|a * y ca|cu|e u coro . 5 . 0 ^ u

1.3.11 Aver|guar s| ur rurero rea| r perlerece a |a |rlersecc|r o a |a ur|r de |os |rlerva|os ( ] b a, y [ ) c , 5 y
lerga er cuerla que es pos|o|e que e| rurero perlerezca larlo a |a ur|r coro a |a |rlersecc|r. Los
va|ores de a, o y c sor dados por e| usuar|o y se deoe ver|l|car que |os |rlerva|os eslr o|er corlorrados, es
dec|r, que e| |ir|le |rler|or sea reror o |gua| que e| |ir|le super|or. Er caso de que a|guro de |os |rlerva|os
sea |rcorreclo se deoe escr|o|r ur rersaje de error y delerer |a ejecuc|r de| a|gor|lro.

laga ura prueoa de escr|lor|o a su so|uc|r er |erguaje a|gorilr|co, supor|erdo que r va|e 8 y que
|os |rlerva|os sor ( ] 10 , 4 y [ ) 13 , 5 . l|uslre su eleclo er |a parla||a y er e| erlorro de reror|a
correspord|erle.

1.3.12 0ados d|ez rureros, ca|cu|ar |a carl|dad de rureros pares y |a sura de |os |rpares.

1.3.13 0e c|rco rureros dados, escr|o|r |os que sear rayores que 50.

1.3.11 0e s|ele rureros, surar |os que sear rerores que ur va|or dado y ru|l|p||car |os que sear rayores o
|gua|es a ese va|or dado.

1.3.15 0ados 1 rureros:

ca|cu|ar y escr|o|r e| prored|o s| lodos |os rureros sor pos|l|vos.
ca|cu|ar y escr|o|r e| produclo s| |os dos pr|reros rureros sor rerores que |os dos u|l|ros y s|
lodos |os rureros ro sor pos|l|vos.


EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
38
1.3.1 Rea||ce ura prueoa de escr|lor|o a cada uro de |os s|gu|erles a|gor|lros. No |os mod|f|que.

a. 3uporga que |os datos de entrada son 15, 2, 12 y 24 (rur, A, 8, C), respecl|varerle.

'rur_|rlerva|o
erp|ece
rea| rur, A, 8, C
Esle a|gor|lro perr|le aver|guar s| ur rurero perlerece a |os dos
|rlerva|os (A,8|, [5,C). 3e supore que |a erlrada es correcla.
escr|oa 'lo|a. Yo aver|guo s| ur rurero perlerece a |os dos |rlerva|os (A,8|, [5,C), del|r|dos
por usled. 0 rurero
|ea rur
escr|oa '0el|r|c|r de| |rlerva|o (A,8|. 0 e| va|or de A
|ea A
escr|oa '0 e| va|or de 8
|ea 8
escr|oa '0el|r|c|r de| |rlerva|o [5,C|. 0 e| va|or de C
|ea C
3e ver|l|ca |a perlererc|a de| rurero er |os dos |rlerva|os.
escr|oa rur
s| (rur>A y rur8 y rur 5 y rur <C) erlorces
escr|oa ' si
s|_ro
escr|oa ' ro
l|r_s|
escr|oa ' perlerece a |os dos |rlerva|os ( ,A, ',,8, '|,[5,,C, ').
escr|oa 'Ad|s.
pare
lerr|re

o. L|ere |a lao|a que aparece a| l|ra|.

'sura_3_rur
erp|ece
erlero rur1, rur2, rur3, acuru|a
acuru|a 0
Paso 1
escr|oa '3ura de lres rureros erleros cua|esqu|era.
escr|oa 'Nurero 1 = '
|ea rur1
acuru|a acuru|arur1
F|r de| paso 1

Paso 2
escr|oa 'Nurero 2 = '
|ea rur2
acuru|a acuru|arur2
F|r de| paso 2



APRENDENDO A PROCRAMAR A PARTR DE CERO, PATRCA SALAZAR PERDOMO.
39
Paso 3
escr|oa 'Nurero 3 =
|ea rur3
acuru|a acuru|arur3
F|r de| paso 3

Paso 1
escr|oa rur1, ',rur2, ',rur3, = ',acuru|a
escr|oa 'F|r sura.
F|r de| paso 1
pare
lerr|re

VAR|ALE8
Paso num1 num2 num3 acumu|a
1 ? 11 ? ? ? 0 11
2 11
3
4

c. L|ere |a lao|a que aparece a| l|ra|.

"notas"
erp|ece
erlero rola
escr|oa '0 rola (0 - 100)
|ea rola
escr|oa 'rerd|r|erlo
s| (rola 90 y rola 100) erlorces
escr|oa 'sooresa||erle
s|_ro
s| (rola 80 y rola <90) erlorces
escr|oa 'ruy ouero
s| (rola Z0 y rola <80) erlorces
escr|oa 'ouero
s| (rola 0y rola <Z0) erlorces
escr|oa 'aceplao|e
s| (rola < 0) erlorces
escr|oa 'regu|ar
l|r_s|
l|r_s|
l|r_s|
l|r_s|
l|r_s|
escr|oa F|r.
pare
lerr|re



EDCON PRELMNAR ESCUELA COLOM8ANA DE NCENERA
40
Ejecuc|n
No.
Var|ab|e
nota
Hensajes en |a panta||a
1 20
2 91
3 15
1 Z3

d. L|ere |a lao|a que aparece a| l|ra|.

rega|o_segur_edad
erp|ece
erlero edad,rega|o

rega|o 1000

escr|oa 3u edad es
|ea edad

s| (edad <50) erlorces
escr|oa Pase a |a verlar|||a 3 a rec|arar sus ,rega|o, pesos.
escr|oa l|r rega|os
pare
l|r_s|
s| (edad >19 edad <0) erlorces
rega|o rega|o10
l|r_s|
s| (edad >59 edad <Z0) erlorces
rega|o rega|o100
l|r_s|
s| (edad >9 edad <110) erlorces
rega|o rega|o1000
l|r_s|
escr|oa Pase a |a verlar|||a 3 a rec|arar sus ,rega|o, pesos.
escr|oa F|r de rega|os.
pare
lerr|re

Ejecuc|n No. Var|ab|e edad Rec|be rega|o?
(s| o no}
Va|or de| rega|o
en pesos
1 50
2 33
3 92
1 110

S-ar putea să vă placă și