Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Elías M. Awad
Respondé a una finalidad esencial, ya que explica técnica y detalla
damente el por qué de la revolución que ha causado en el ámbito de los
negocios, cuáles son los dos sistemas contemporáneos para llevar al cabo
el proceso, así como los problemas a que se enfrentan los negocios al
adoptar el sistema.
A partir de la fascinante historia del proceso de datos y de sus ser
vicios, se adentra en el moderno mundo de su aplicación y de sus dos
principales sistemas: el proceso de datos empleando tarjetas perforadas,
y el electrónico. Asimismo, describe con detalle los procedimientos más
actuales de recopilación y registro de información, así como sus procesos
mecánicos y su evaluación.
Tiene, por otra parte, un mérito didáctico innegable, pues principia
cada capítulo con un esquema general y termina con un resumen y con
preguntas de repaso. Hace mención histórica de las computadoras de la
primera, segunda y tercera generaciones; trata del concepto de sistemas
y de las fuentes de datos para la organización de los negocios. Estudia el
proceso de datos en tarjetas perforadas, con un estudio analítico de la se
rie UNIVAC 10700, la controladora UNIVAC 1001 y la procesadora UNIVAC
1004. Pasa revista a los dispositivos de entrada y de salida y trata los dife
rentes tipos del sistema de computadoras IBM 360 Mod. 20; la introducción
?I sistema octal, los sistemas de codificación, el almacenamiento secun
dario, con ilustraciones y clasificación de datos en cinta magnética, y una
sección sobre tiempo real y sistemas en la línea. Resume, además, los
principios de FORTRAN Y COBOL.
ISBN 968-13-0863-8
PREFACIO
6 PREFACIO
MARIO V. FARINA
CONTENIDO
PARTE I
Lección J>ágina
1. Conceptos básicos . . . . . 11
2. Iteraciones . . . . . . 17
3. Transferencias de control 25
4. Nitidez . 33
5. Lectura de datos 39
6. La estructura básica 47
7. Conteo . 53
PARTE II
9. Índices . 67
Respuestas 105
7
BASIC EN UNA PALABRA
(Tal como se usa en este libro)
READ #l,X
SCRATCH #2
IF END # 1 TI--IEN 86
Operadores aritméticos
+ Adición Ejemplos: LET A == B + 6
Sustracción LET D == E - F - G
* Multiplicación LET H == T * W * 3
I División LET P == (MIL )/7
t Potenciación LET O == Rt2
Funciones LET T == PtK
SQR Raíz cuadrada Ejemplos: LET D == SQR(H * L)
SIN Seno LET N == SIN (F)
INT Parte entera LET P == INT(K - W)
ABS Valor absoluto LET Q == ABS (175/B)
PARTE 1
LECCIÓN 1
CONCEPTOS BÁSICO~"
Calcula Imprime
Inicia
2 X 3 la respuesta
ALTO
Figura 1-]
C )
11
12 MARIO V. FARINA
C__)
....,
OJ
ca
o.
<J 6. [_J E
....,
OJ
i\7
C)
Flujo e
Tarjeta perforada Cinta de papel perforada Teclado en I (nea '';::;
~
ca
Proceso predefinido
( )
O
Conector
"'V..
Declsl6n
[>
~ fuera de
V Archivo
.r::.
.2
u.
~
~ ~I(nea ~
al
Línea de comu nicaci6n Pulgadas (octavas y cuartas)
21 . I . I . I .3 • . I , I • I .41 , I • I I I ,5
Conector
Cinta magnética, Cinta de
de final
c1asificaci6 n, máquina sumadora,
de página
intercalaci6n etc.
Figura 1-2
14 MARIO V. FARINA
10 LET C = 2 * 3
20 PRINT C
30 STOP
Note que el símbolo terminal marcado con INICIA, no tiene llna
instrucción BASIC correspondiente. El único uso del INICIA es mos
trar a los demás dónde comienza su diagrama de flujo.
El programador debe asegurarse de que se le indique a la compu
tadora lo que debe hacer en el orden correcto. El diagrama de flujo
mostrado en la figura 1-3 es incorrecto. ¿Puede el lector ver por
qué?
Estamos poniendo el carro antes que el caballo. Estamos pidien
do que se imprima la respuesta antes de calcularla. Esto es, desde
luego, absurdo. El lector puede sonreir si lo desea; además, los pro
gramadores.inadvertidamellte hacen cosas que van mucho más allá de
lo que pueden admitir.
DIAGR~MAS DE FLUJO 15
Imprime
Inicia Calcula
la respuesta
8 X·6
Alto
Figura 1-3
Ejercicios:
Imprime
Inicia Calcula
la respuesta
4 X 5
Calcula Imprime
Inicia
2 X 6 la respuesta
Alto
Figura] ·5
\
LECCIÓN 2
ITERA CIONES*
Calcula
Asigna
Inicia 40 X R
2.50 a R asigna el
resu Itado a W
Imprime Incrementa
W R X .01
Figura 2-1
He aquí el programa BASIC correspondiente al diagrama de flujo
de la figura 2-1.
\
* Hemos preferido traducir Loops por iteraciones y no por el ciclo o lazo
que más bien se refieren a cuestiones geométricas que algorítmicas. (N. del T.)
17
18 MARIO V. FARINA
10 LETR = 2.50
20 LET W = 40 * R
30 PRINT W
40 LET R == R + 0.01
50 CO TO 20
Calcula
Asigna 40 X R
Inicia
2.50 a R asigna el
resu Itado a W
Incrementa
ImprimeW R por .01
Figura 2-2
DIAGRAMAS DE FLUJO 19
ASIGNA 2.50 a R
HAZ R IGUAL a 2.50
INICIALIZA R con 2.50
PON 2.50 en R
R == 2.50
2.50 => R
Inicia" 2.50 ~ R 40 X R ~w
w R+ .01 ~ R
Figura 2-3
20 MARIO V, FARINA
Calcula
Asigna el valor salario ganado
Inicia
inicial 2.50 a R haciendo R X 40.
(tasa de pago) Asigna el
resultado a W
Imprime Incrementa
W A por .01
Figura 2-4
Inicio
LET R = 2.50 LETW = R * 40
Figura 2-5
10 20
30 40
Imprime
W
LETR =R + .01 ~---------_ ...
Figura 2-6
Ejercicios
......... _./
Figura 2-7
Asigna Incrementa
Inicia OaP el valor de
P X 1
Imprime
p
Figura 2-8
24 MARIO V. FARINA
ID LETL 1000
20 LETI = .075 * L
30 PRINT 1
40 LET L = L + 100
SO CO TO 20
TRAN5Fl!;RENCIA5 DE CONTROL *
Calcula
Asigna .20 X E
Inicia
4000 a E asigna el
resu Itado a T
Imprime lE No
Incrementa
EyT excede
E por 500
a 9000?
Sí
Alto
Figura :3-1
signifiea igual a
Asigna 30000
aM
Inicia Suma 1 a Y
Asigna O
aY
Calcula
M X 90 ¿Es
No Imprime
Asigna el M< VyM
resultado 2000?
aM
Sí
Alto
Figura ~~-:!
28 MARIO V. FARINA
10 I~J~T M = 30000
20 I~ET Y = O
30 I~ET Y = Y + 1
40 J~~~T M M. ~..90
=
50 I.F M < 2000 TI-IEN 80
60 PIlINT Y, M
70 GO TO 30
80 STOP
10 ItEAD S
20 IF S == O TI-IEN 50
30 PRINT S
40 GO TO 10
50 STOP
60 DATA 3,18,24, -4, O
pe acuerdo con esto, la computadora imprimirá cuatro líneas de
salida: 3, 18, 24 Y -4.
Supongamos que se tienen tres artículos de venta: un refrigera
dor por $ 550, un televisor por $ 375 Y un acondicionador de aire
por $ 250. Si se ha asignado una comisión del 15 % para el primer
Inicia
No
Calcula
Imprime A X P
A,P yC Alto
Asigna el
resu Itado a C
Figura :~-:~
30 MARIO V. FARINA
art í culo, 12 rk para el segundo y 7.5 r:~ para el tercero, ;. cómo po
dríamos calcular las comisiones para cada artículo usando una
computadora? Véase el diagrama de flujo que puede usarse para
resolver este problema. (Figura 3-3.)
10 IlEAD A, P
20 IF A = O TH~~N 50
30 LET C = A * P
35 PRINT A, P, e
40 GO TO 10
50 PRI NT "FINAL DE TRABAJO"
60 STOP
70 DATA 500, .15, 375, .12,250, .075, o, O
La línea 10 muestra que, en BASIC, se pueden leer eonjuntos de 2 o
más valores a la vez de~de la instrucción DATA. Por su parte, la
propia instrucción DATA muestra un conjunto de valores dummy *
"O" Y "O" para terminar la ejecución del programa. (Es necesario un
conjunto completo de valores aun cuando el programa solamente
contraste el valor de A,.) En la línea 50 se puede observar cómo se
imprimen mensajes en BASTe.
-1(4 Vacíos, huecos (N. de~
DIAGRAMAS DE FLUJO 31
NITIDEZ
Asigna Calcula
1a X X+V
Inicia Asigna Asigna el
1aY resu Itado a Z
Incrementa
Imprime X por 1 ¿Excede No
X, Y Y Z Incrementa X a 100?
y por 1
Sí
Alto
Figura 4-1
33
34 MARIO V. FARINA
Calcula Incrementa
Inicia
X+Y X por 1
Asigna el Incrementa
resultado a Z y por 1
Asigna
Imprime ¿Excede No
1aX
X, y yZ X a lOO?
Asigna
1aY
Sí
Alto
Figura 4-2
10 LET X = 1
20 LET Y = 1
30 LET Z == X + Y
40 PRINT X, Y, Z
50 LET X = X + 1
60 LET Y = Y + 1
70 IF X > 100 THEN 90
80 GO TO 30
90 STOP
e omo puede verse inmediatamente, este programa calcula
1 + 1, 2 + 2, 3 + 3,...,100 + 100. El programa muestra nueve
instrucciones escritas secuencialmente a lo largo del papel, mientras
que el diagrama de flujo podría ser reducido a un espacio limitado
Sin embargo, el diagrama de flujo siempre corresponde perfecta
mente al programa. Las flechas del diagrama no dejan duda alguna
acerca del orden en el cual serán ejecutadas las operaciones del pro
grama.
Aun cuando un diagrama de flujo sea escrito en forma confusa~
como el mostrado en la figura 4-3, la codificación BASIC resultará la
mIsma.
Calcula
Asigna
1a X X+Y
Inicia Asigna el
Asigna
resultado a
1a Y
Z
Incrementa
Imprime X por 1
X, Y yZ Incrementa
y por 1
No ¿Excede Sí
X a 100? Alto
Figura 4-3
36 MARIO V. FARINA
o-
Para poder saber dónde continúa el diagrama de flujo, es preciso
encontrar otro círculo que encierre un asterisco en el punto de con
tinuación. En este caso, lo tenemos en la parte superior derecha.
Desde luego, los conectores pueden ser evitados dibujando fle
chas desde una parte del diagrama a otra parte distante. Pero hacer
esto tiende a complicar demasiado y aparecer desordenado un dia
grama.
Puede encerrarse cualquier símbolo o carácter alfabético dentro
de los símbolos conectores. Conectores tales como
De la página 2
A la página 3
Ejercicios:
Asigna
Inicia
10 a P
Calcula Sí
PXQ
asigna el
resultado
aT
No
Alto
Figura 4-4
o
C )
LECCIÓN 5
LECTURA DE DATOS
Leer Imprime
Inicia valores A, S, C A,S, C
Figura 5-1
39
40 MARIO V. FARINA
Figura 5-2
Leer
Inicia A,B ye
*
Final de archivo
/
,/' cuando A = 999
/
/
/
Imprime ¿Final
Sí No Imprime
"final de de A,B yC
trabajo" archivo?
Alto
*
Figura 5-3
35 READ 15, A, B, e
15 FORMAT (3FI0.3)
IF (A. EQ.999.) GO TO 50
PRINT 15, A, B, C
GO TO 35
50 PRINT 55
STOP
END
10 RI~AD A, B, e
20 Ili' A = 999 Tl-IEN 50
30 PltlNT A, H, f:
40 (;0 TÜ ID
50 PJlINT, "/?inaldc trabajoH
60 STOP
70 IlATA 6,7,4,2,9,17,4,6,3,999, O, O
-----1 '---------
Inicia Asigna
DaS
Final de
arch ivo cuando ---,,,
V=D
¿Final
Sí Imprime S
de
archivo?
No
Suma
Alto
* VaS
Figura 5-4
10 LET S == O
20 READ V
30 IF V = OTHEN 60
40 IJET S = S + V
SO GO TO 20
60 PRINT S
70 STOP
80 DATA 8, 3,17,4,7,20,0
Puede verse que cero es el último valor que aparece en la instruc
ción de DATA. Este cero actúa como un indicador de final-de
archivo y no será procesado. El programador que elija un cierto valor
que funcione como indicador de final-de-archivo debe asegurarse que
tal valor específico nunca aparecerá como uno de los datos a ser
procesados.
Ejercicios:
10 LET M = O
20 READ A
30 IF A = O THEN 70
40 IF M > A THEN 20
SO lJET M = A
60 GO TO 20
70 PRINT "El valor máximo es n, M
80 STOP
90 DATA 2,8.9,7.3,1.7,11.3,4.2, O
Final de archivo
,..--- cuando V = 99
/
/
¿Final
lEs Sí Sí
de
V = 99? archivo?
No No
Final de archivo
~----
/ cuando V == 99
/
= 99
lV?
~ 99
Figura 5-5
48 MARIO V. FARINA
Toma Sí
¿Es
Inicia valores
H = 1000?
para H y R
No
Calcula
H por R Imprime
Imprime
Asigna el "final de
H, R yS
resultado trabajo"
aS
Alto
Figura 6-2
10 READ H, R
20 lF 11 = 1000. THEN 60
30 LET S = li * R
40 PRINT 11, R, S
50 GO TO lO·
LECCIÓN 6
No
Escribe
Procesa algunas Alto
los datos respuestas
Figura 6-1
Dado un trabajo, el programador debe probar si tal trabajo se ajusta
a la estructura básica y, si así sucede, completarla con las piezas
faltantes.
Calculemos los salarios netos semanales cuando las horas trabaja
das y la tasa por hora se muestran como datos. El valor para el
final-de-archivo es horas. trabajadas = 1000. La figura 6-2 muestra
un diagrama de flujo que puede usarse para el fin propuesto.
47
DIAGRAMAS DE FLUJO 49
70 STOP
80 DATA 40,2.55,36,3.50,25,2.90,1000, O
Asigna Leer A
Inicia OaC (Precio del
(comisi6n) artículo)
Final de
archivo
cuando A = O Calcula
¿Final
de
No ¿Es
A< No I = .075
(comisión
X A
sr sr
Imprime
Calcula
lila comisi6n
1= .05 X A
total es?" Suma la C
(comisi6n
y el valor
individual)
de C
Alto
Figura 6-3
Un programa BASIC que corresponde a este diagrama de flujo es el
siguiente:
50 J MARIO V. FARINA
10 LET C = O
20 READ A
30 IF A = O TREN 100
50 LET 1 = .075 * A
60 GO TO 80
70 LET 1 = .05 * A
80 LET e = e + 1
90 GO TO 20
110 STOP
120 DATA 45, 416, 93, 21, 157, 99, 101, 100, O
Ejercicios:
20 LET S = O
30 READ X
50 LET S = S + X
60 GO TO 30
90 STOP
CONTEO
Asigna
Incrementa
Inicia OaK
K por 1
(contador)
¿Es Sí
K == 50007 Alto
Figura 7-1
Con todo y que este ejemplo es muy simple, lo cierto es que
resulta muy instructivo. Obsérvese K. Esta variable es inicializada con
el valor cero, para luego ser incrementada en l. La instrucción que
incrementa K en 1 se encuentra en el cuerpo de una iteración que se
53
54 MARIO V. FARINA
Asigna Incrementa
Inicia DaS N por 1
Asigna suma N a S
DaN
Imprime
¿Es
Sí S
Alto
N := loo0?
Figura 7-2
Como puede verse, los valores de N irán desde O (su valor ori
ginal), 1, 2, ..., 1000, mientras que los valores irán desde O (su valor
original), 1, 3, 6, 10, ..., 500500.
En correspondencia con el diagrama de flujo de la figura 7-2 se
tiene el siguiente programa BASIC.
DIAGRAMAS DE FLUJO 55
10 LET S = O
20 LET N == O
30 LET N = N + 1
40 LET S = S + N
50 IF N = 1000 THEN 70
60 GO TO 30
70 PRINT S
80 STOP..
Algunos programadores prefieren colocar la contrastación relativa
al final de la iteración al comienzo de la propia iteración (véase la
figura 7-3).
Asigna
¿Es
DaS
Inicia
Asigna N>
1aN 10007
Si
Suma N aS Imprime
incrementa S
N por 1
Alto
Figura 7-3
Asigna O Surna
aS NaS
Inicia
Asigna X Suma
1aN
¿Es sr Imprime
N > 1000? S Alto
Figura 7-4
*
Asigna O
aS Suma
Inicia Asigna I NaS
aN
sr Imprime
Alto
S
Suma
1 a N
*
Figura 7-5
Asigna
DaS Suma Leer
Asigna
laK V
OaK
Suma
¿Es Sí Imprime
VaS
K == 3? S
Imprime
¿Es Sí "final de Alto
N = 4? trabajo"
Figura 7-6
El siguiente programa BASIC corresponde al di~ama de flujo de la
figura 7-6.
58 MARIO V. FARINA
10 lJET N == O
20 l,ET N == N + 1
30 lJET S == O
40 LET K == O
50 I~ET K == I( + 1
60 READ V
70 LJi:T S == S + V
80 Jf' K == 3 l~IIEN 100
90 GO TO 50
100 PRINT S
110 IF N == 4 TI-IEN 130
120 GO Tü 20
130 PRINT "Final de trabajo"
140 STOP
150 DATA 3.25, 6.16,4.94, 7.82,8.01,3.67
160 DATA 2.98,9.06,4.00,6.21,6.91,8.22
Ejercicios
10 READ N
20 LET S == O
30 LET K = O
40 LET K == K + 1
50 READ V
60 IJET S == S + V
70 IF K == N THEN 90
80 GO TO 40
90 PRJNT S
100 STOP
110 DATA 10,3,6,7,4,8,2,1,6,2,4
Si
Inicia Leer ¿Es
Alto
A, B yC A = 999?
No
Calcular
Rl y R2 a partir de
I -B ± .yB 2 - 4 AC
I 2A
I
I
¿Es Calcula
¿Es No
B2 - 4 AC Rl y R2
A = O? negativo?
Sí Sí
Imprime Imprime
"caso imposible" A, S, C, Rl, R2
A,B,C
F-igura 8-1
DIAGRAMAS DE FLUJO 63
10 READ A, B, e
20 IF A = 999 THEN 90
30 IF A = o TREN 100
40 IF B t 2 - 4 * A * e < o TREN 100
50 IJET RI = (-B + SQR [B t 2 - 4 * A * el) / (2 * A)
60 IJET R2 = (-B - SQR [B t 2 - 4 * A * Cl) / (2 * A)
70 PRINT A, B, C, Rl, R2
80 GO TO 10
90 STOP
100 PRINT "Caso imposible ", A, B, C
110 GO TO 10
x----..........
o ---~~"------+---------_
Figura 8-2
x------.;~~~~-----+------------
o 1t
2
Figura 8-3
10 I-If':T X == O
20 LET T == O
30LI~T X == X + (3.1416/2)/100
60 LJi~T T == T + A
70GOT030
80 PRINT T
90 STOP
tiras se hace su ficientemente grande como para que cualquier tira sea más pe
queña que cualquier entero positivo dado, por pequeño que éste sea, el área
obtenida es la exacta. Pero, naturalmente, este proceso de paso al línlite no es
susecptible de ser realizado en una computadora (N. del T.)
Calcula
Asigna el nuevo valor
OaX de X a partir
Inicia Asigna 11
OaT 2'
X + 100
Calcula el área
de la tira como
el producto del
No signo de X por la Suma
anchura de la tira AaT
1f
2 .
~aslgnael
Si resu Itado a A
Imprime Alto
T
Figura 8-4
Ejercicios
LECCIÓN 9
fNDICES
Asigna Incrementa
Inicia OaK K por 1
Imprime
¿Es sr "final de
K == 207 trabajo"
No
*
Alto
Figura 9-1
67
68 MARIO V. FARINA
10 DIM V(20)
20 LET K = O
30 LET K == K + 1
40 READ V(K)
50 IF K == TREN 70
60 GO TO 30
70 PRINT "Final de trabajo"
80 STOP
90 DATA 6, 3, 9, 4, 7, 6,3, 1,4, 9, 8, 6
100 DATA 1,6,4,7,8,5,2,4
20 30
Inicia Asigna
Incrementa
OaK
K por 1
No
40 50 70
¿Es sr Asigna
K = 20? e, aL
so 90 100
Asigna Incrementa
OaK K por 1
Asigna Sí Imprime
C a L
¿Es
K K = 207 L
160
Alto
Figura 9-2
restantes (del segundo al vigésimo) para determinar cuál de elloB eB el
mayor. Esto es posible, además, manteniendo el valor de la edad en
una sola posición y cambiándole 19 veces su valor inicial. He aquí
el programa:
10 DIM C(20)
20 LET K = O
ESTA PARTE DEIJ PROGRAMA
30 LET K = K + 1
40 IlEAD C(K) LEE 20 VALORES DE EDAD
50 lF K = 20 TIIEN 70 (Continúa en la siguiente página)
70 MARIO V. FARINA
60 GO TO 30
70 LET L = C(l)
80 LET K = 1
90 LET K = K + 1
100 IF C(K» L THEN 120 ESTA PARTEl)EL PROGRAMA
110 GO TO 130 OBTIENE LA EDAD MAs
120 LET L = C(K) GRANDE y LA IMPRIME
130 IF K = 20 THEN 150
140 GO TO 90
150 PRINT L
160 STOP
170 DATA 3, 9, 4, 17,8,4,12,11,17,4,3,
180 DATA 7, 1, 8, 4, 9, 10, 9, 3, 2,
10 DIM C(20)
20 LET K = O
30 LET K = K + 1
40 READ C(K)
50 IF K = 20 THEN 70
60 GO TO 30
70 LET L = C(l)
80 LETW = 1
DIAGRAMAS DE FLUJO 71
20
No
40 50 70
Asigna
Leer ¿Es sr CI a L
CK K =
20? Asigna
1 aW
90 100 110
¿Es
Asigna Incrementa
1aK K por 1 CK > L?
Asigna Imprime
CK aL ¿Es Sí
L,W
Asigna K = 20?
KaW
Alto
*
Figura 9-3
90LET K == 1
1OOLET K == K + 1
110 IF C(K) > I~ TIIEN 130
120 GO TO 150
130LETL = C(K)
140 LET W == K
150 IF K == 20 THEN 170
72 MARIO V. FARINA
160 GO TO 100
170 PRINT 1, W
180 STOP
Ejercicios:
70
Lee en memoria
número de
artículo,
Acepta número
Inicia de art(culo N
cantidades en
ex istencia, desde el teletipo
prec ios de venta
20
80 90 100
A OaK K por 1 PK = N?
No
S(
110 130 150
Imprime Imprime
¿Es Sí
artículo no cantidad en
N de venta
Figura 10-1
140 GO TO 70
150 PRINT P(K), Q(K), S(K)
160 GO TÜ 70
170 DATA 500,86, 1.25, 430, 160,3.28,610
180 DATA 3,8.45,247,105,2.45,680,11
190 DATA .75,246,92,2.28,199,340,7.05
200 DATA 360,18,1.65,702,84,6.45,225
210 DATA 75,8.65
Leer las
listas de Asigna
Incia temperatu ra 14 a K
y presión Asigna
compl,etas OaN
20 70
90 110
Asigna Asigna
Sí
TM aA1
TM + 1 aT M
Asigna
Asigna
PM aA2
PM + 1 a PM
No
No *
330
Imprime
¿Es Sí las listas
N = 14? TyP
[ A la página 78 ]
Figura 10-2
20 LET K = O
30 ·L~:T K = K + 1
50 lF K = 15 Tll~~N 70
DIAGRAMAS DE FLUJO 77
60 GO TO 30
70 IJET K = 14
80 IJET N = Oj
90 IJET N = N + 1
100 IJET M = O
110 IJET M == M + 1
120 lF T(M + 1) < T(M) THEN 150
130 IF M = K THEN 220
140 GO TO 110
150 LET Al == T(M)
160 LET A2 = P(M)
170 IJET T(M) == T(M + 1)
180 IJET P(M) == P(M + 1)
190 LET T(M + 1) = Al
200 IJET P(M '+ 1) = A2
210 GO TO 130
220 IJET K = K - 1
230 JF N == 14 THEN 250
240 GO TO 90
250 lJET K == O
260 IJET K == K + 1
270 PRINT T(K), P(K)
280 IF K == 15 TI-IEN 330
290 GO TO 260
300 DATA 10,20,100,158,95,120,15,30
310 DATA 80,105,35,62,75,100,85,106
320 {)ATA 40,63,50,75, lOS, 180, 110,200
325 IJATA 20,40,55,80,108,190
330 lNPUT X
340 LET K == O (Continúa en la siguiente página)
78 MARIO V. FARINA
Acepta el
Asigna Incrementa
valor de tempe A
ratura X para
OaK K por 1
buscarlo en la lista
No
390
360 370
Imprime
No ¿Es "no pudo ser
K = 15? encontrado", X
Sí
410
I--------------.t~
Figura 10-3
350 LET K = K + 1
360 IF X = T(K) THEN 410
370 IF K = 15 THEN 390
380 GO TO 350
390 PRINT " No pudo ser encontrado", X
400 GO TO 330
410 PRINT T(K), P(K)
420 GO TO 330
~Jercicios:
24, 124, 32.5, 130, 36, 136, 38, 142, 40, 148,... donde 24,
32.5, 36, etcétera, representan utilidades (en miles de dólares), y
124, 130, 136, etcétera, ~epresentan ve~tas (en millares). Escriba
un diagrama de flujo que muestre cómo un programa podría dar
la utilidad para un valor de ventas dado, el cual entra desde el
teclado de un teletipo. El diagrama de flujo deberá mostrar cómo
un valor de ventas que no se encuentre en la lista de ventas (tal
como 139) podría ser usado para calcular un valor de utilidad
equivalente. Use interpolación lineal.
NIDOS DE ITERACIONES *
2 3 4 5
Arreglo A Arreglo V
Figura 11-1
Se habrá notado que todo casillero en ambo"B'arreglos está identi
ficado con índices en la esquina superior izquierda. Esto es, el casille
ro 1.1 se encuentra en la esquina superior izquierda del arreglo; el
casillero 1.5 St; locáliza en la esquina superior derecha del arreglo,
etcétera. Los índices señalan primeramente la fila y después la colum
* Iteraciones contenidas dentro de otras iteraciones. (N. del T.)
81
DIAGRAMAS DE FLUJO 83
190
Leer todos
los valores
Inici~1 de los Asigna
Asigna
arreglos OaT
O aJ
AyV
No
Incrementa
Increl1lenta
K en 1
J por 1
Calcula A J,K X ¿Es
Asigna O a S
K = 5?
Asigna O a K
VK.Suma
resu Itados a S
S SaT
J = 5? T
Alto
Figura 11-3
20 LET K O
30 LET K K + 1
40 LET N O
MARIO V. FARINA
50 LET N = N + 1
70 IF N = 5 THEN 90
BOGO TO 50
90 IF K = 5 THEN 140
100 GO TO 30
140 LET L = O;
150 LET L = L + 1
180 GO TO 150
Ejercicio
INICIALIZACION DE VARIABLES
Acepta N Asigna
Inicia desde el N
teletipo "2 aGo
Fórmula (1)
N
Go + o
G
Gn - - 2 - -1 \
----~\
\
\
Calcula ¿Es
G n a partir IG n Gol sr Imprime
Gn,N
de la fórmula < .001?
(1 )
No
Asigna
G n aG o
Figura 12-1
I.. .I - - - - - - - w - - - - - -
Figura 12-2
Asigna Asigna
10 a I W-1 a W1
Asigna Asigna 1---0{ A
SOaW W+ 1 aW2
Calcula Y1 e Y2
Calcula
usando W. Calcula H.
Calcula Y1 e Y2
0,01 V 02,
usando W1. Calcula H1.
I--~usando IH - 251,
Calcula Y1 e Y2
IH1-25\V
usando W2. Calcula H2.
IH2 - 251
Asigna Asigna
W1 aW W2aW
Parte jmprime
I por la W
mitad
Figura 12-3
Definiciones.
donde
Figura 12-4
Ejercicios.
MANEJO DE ¡,lSTAS
Imprime
No Sí "número de
¿Es )-_..-jcatálogo no
CK = K? encontrado
en la lista"
Imprime
CK yQK
Figura 1;~-1
91
92 MARIO V. FARINA
Leer las
Leer el listas
Inicia valor de CyQ
N completas
Asigna Incrementa
OaK Acepta un K por 1
valor para X
No
Imprime
¿Es No ¿Es Sí liNo. Cat. no
CI< = X? K = N? encontrado en
la lista", X
Sí
Imprime
CK yQK
Figura 13-2
I~Jercicios.
Asigna
Acepta un 1 al
valor para X Asigna
20 a H
Calcula la
No parte entera
de~
2
asigna el
resultado a K
sr sr
Imprime
"No. Cato no
Asigna
encontrado en
la lista", X
K + 1a l
No Asigna
K - 1a H
sr
Imprime
CK yOK *
Figura ] 3-:l
--------------1'
(
i
1,
LECCIÓN 14
MANTENIMIENTO DE ARCHIVOS
Q
Cuando los archivos son leídos, la información se tiene disponible
al programa en unidades completas llamadas registros. Un registro es
un conjunto de elementos de datos relacionados. Por ejemplo, un
registro simple nos dará la afiliación al seguro social de una persona,
su nombre, su año de ingreso, la descripción de su trabajo, salario,
etcétera.
Los programas para aplicaciones en los negocios están ordinaria
mente codificados en COBOL o PL/l, pero también pueden ser
usados otros lenguajes. Por tal razón, BASIC contiene un conjunto de
instrucciones para el manejo de archivos. Directamente, el lenguaje
no permite el acceso a cintas magnéticas, pero sin embargo éstas
pueden ser simuladas. He aquí el programa BASIC que corresponde
al diagrama de flujo de la figura 14-l.
97
98 MARIO V. FARINA
lO FILES A;B
20 SCRATCH número 2
40 READ número 1, T, U, V, W, X, Y, Z
50 WRITE número 2, T; U; V; W; X; Y; Z
60GO TO 30
70 STOP
20 30
Prepara archivo
¿Final
> - - -............ A
la escritura
archivo de
(cancelar en BASle)
entrada?
40 50
Figura 14-1
20 30 310
Asigna 9999
Cancelar NAM ¿Final Sí al número de
Inicia (nuevo arch ivo del archivo catálogo en
maestro) maestro? el archivo
maestro
No
De la pá
gina 101
Jo4------------ic
50 330
¿Final Asigna 9999
Sí
archivo de al número de
movimien catálogo en
movimientos
No
De la pá
gina 101
60 70
¿Es número
de catá logo en A la página 101
el archivo maestro
== número de catálogo Sí
en el archivo de
movimientos?
170
Sí Calcula la
nueva cantidad
en existencia
Sí No
110 150
370 120
Imprime
Alto mensaje de
error, C2, K
~------~t
Copiael
registro en el
archivo maestro
Copia el
registro en el
archivo maestro
al NAM 1nuevo
archivo maestro)
350
Asigna
9999 al
número de catálogo
en el archivo
maestro
A la página 100
20 SCRATCH número 3
70 IF C1 == C2 THEN 90
80 GO TO 190
360 GO TO 70
370 STOP
LECCIÓN 1
1.
Calcula Imprime la
Inicia
5 X 8 respuesta
Alto
4.
Imprime la
Inicia Calcula respuesta
2X6
Alto
105
LECCIÓN 2
1.
Calcula
Asigna .15 X M
Inicia - 2.00 a M - Asigna el 4-
resu Itado a e
f
~
Imprime -:; Incrementa
MyC M por.10
2.
Inicia Asigna
O aS
- Asigna
OaK
Imprime
Incrementa
K por 1
- Suma
KaS
- S
---'"
4.
Calcula
.075 X L
Inicia Asigna
Asigna el
1,000 a L resultado
al
Incrementa
L pQr 100
LECCIÓN 3
l.~----- Calcula
Inicia Asigna M X .10
1.00 a M Asigna el
resultado
aD
Incrementa No
M en .10
Alto
2.
Inicia Asigna
OaM
No ¿Es No
T< Asigna
TaM
M?
Sí Sí
Imprime
"núrneros en Alto
secuencia"
10 l,ET M == O
20 Il~~AD T
30 IF T 9999 TI1EN 70
40 ]Ji-' T < M TIIEN 80 (C ontinúa en la siguiente página)
109
110 MARIO V. FARINA
50LETM = T
60GO TO 20
80 STOP
3.
Asigna
OaT Lee la
Inicia cal ificaci6n
Asigna
(S)
Oae
Suma Incrementa
SaT e por 1
Imprime Alto
A
10 LET T = O
20 LET C = O
30 READ S
40 IF S = 999 THEN 80
50 LET T = T + S
60 LET C = C + 1
70 GO TO 30
80 LET A = TIC
90 PRINT A
100 STOP
110 DATA 55, 60, 65, 70, 75, 80, 85,90,95, 100, 999
DIAGRAMAS DE FLUJO 111
Leer
X, Y yZ
¿Es sr Imprime
X> X
Z?
No
10 READ X, Y, Z
30 IF X > y THEN 70
50 PRINT Y
60 GO TO 10
80 PRINT Z
90 GO TO 10
100 PIlINT X
110 GO TÜ 10
120 STOP
130 DATA 2, 4, 6,8,7,9,8,4,3,5,8,3,999, O, O
LECCIÓN 4
1.
Asigna Asigna
Inicia
10 a P 1 aQ
Calcula
P X Q Imprime
Asigna el P,QyT
resultado
aT
No
Incrementa
Q por 1
10LETP = 10
20 LET Q = 1
30 LET T = P * Q
40 PRINT P, Q, T
(C ontinúa en la siguiente página)
113
50 IF Q = 20 THEN 80
60 LET Q = Q + 1
70GO TO 30
80 STOP
3.
O
Conector Entrada/Salida Proceso
( )
l.
Asigne
OaM
Imprime
M> máximo", M
A?
No
Asigne
AaM
2. Si.
II!;
]] 8 MARIO V. FARINA
3.
Asigna Lee
OaS e
¿Es No
A CZ Suma
CaS
25.00?
Sí Sí
Imprime
S
*
10 JJ~T S == O
20 l{J~¡\D e
30 ll~' (: == o rrlLEN
70
40 ]]¿' (: <
25.00 Tll]~:N 20
==
so JJI~T S == S + e
60 (;0 Tü 20
70PJtlNT s
80 STOP
90 I)A1'A 25.50, 26.00, 2a.OO, 20.00,40.00, o
LECCIÓN 7
z
/.
( Inicia
>-/ Lee
N
/
~I
Asigna
OaS
Asigna
OaK
~
Suma Lee
Suma
1a K V
VaS
Sí Imprime
S Alto
2.
Asigna
Inicia QaT
Suma
Asigna
1aC
OaC
Multiplica
¿Es No Lee X X Y
A C>
XeY Asigna el'
5? resultado
a P
Si
Imprime Imprime
Sume
T P
PaT
Alto
119
120 MARIO V. FARINA
3.
Asigne
OaS Suma 2
Asigna a 1
-1 a, I
Imprime
Sume
S laS
4.
10 LET S = O
20 LET 1 = -1
30 LET 1 == 1 + 2·
40 IF 1 > 99 THEN 70
50 LET S = S + 1
60GO TO 30
70 PRINT S
80 STOP
5.
Asigne
OaA
Lee
Asigne e
OaB
¿Es Suma
1a B
A
e = O?
Sí
Imprime Sume
AyB laA
DIAGRAMAS DE FLUJO 12]
10 lJi:T A == O
20 lJ~TB == O Nota:
30 I{I~AI) e A contiene el número de eda
40 rF (: == o TIIJ1:N 100 des que son iguales o mayores
50 lJi' f: > 12 l1fl~:N 80 que 12. l~ contiene el número
60 LET Il == I~ + 1 de edades rnenores que 12.
70 CO TO 30
80 JJ~:T A == 1\ +
90 CO TÜ 30
Asigne O a L
6.. Asigne O a M
Asigne O a N
Sume
1aN
10 IJ~:l' J~ == O Nota:
20 JJET M == O 1J contiene el número de ven
30 J.~:T N == O tas que son menores o iguales
40 1111:AD S a $ 100; ]\1 contiene el número
50 l~' S O TlI~:N 140 de ventas que son mayores que
60 Jf' S < == 100 TlfI~N 100 $ 100, pero menores o iguales
7011 S < == 200 T}II~:N 120
1'
a $ 200; N contiene el 'núme
80 lJ]~T N == N + ] ro de ventas que son mayores
90 CO 'fO 40 que $ 200.
100 LJ~:T L == J.J +
110 G() Tü 40
120 ILET M == Nl + 1
130 Ce) 're) 40 (C:ontinúa ~n la siguiente página)
122 MARIO V. FARINA
150 STOP
LECCIÓN 8
l. 10 LET X = O
20 lJET T =,0 Nota:
30 LET S = (3. 1416 / 2) / 100 El programa corre más rápido
40 l~f:T Z = 3.1416/2 debido a que ~ /100 Y 1T /2 t;on
50 IJET X = X + S calculados una sola vez.
60 IF X > Z THEN 100
70 IJET A == SIN(X)*S
80 l~~~T T = T + A
90 GO TO 50
100 PRINT T
110 STOP
2.
10 IJET X := O
20 IJ~~T T == O
30 lJ:~~T X == X + (3.1416/2)/100
70 GO 1'0 30
80 PRINT T
90 STOP
3.
1O lJ~~T e == o
20 LI1~T T == o «~ontinúCJ en la
30 lJF:T P == (3.1416/2)/100 siguiente página)
124 MARIO V. FARINA
40 lJI~T X P/2
50 LET A SIN (X) * P
60 LJ~T rr T + A
70 LI~T e e+ 1
80 IF e == 100 TIlEN 110
90 IJET X = X + P
100 GO TO 50
110 IlIlINT T
120 STOP
4. 10 30
Calcu le
Asigne
Inicie
OaC ~ / 100
Asigne
Asigne el
OaT
resu Itado a P
40 50 60
Calcule Calcule
aX aA
70 90 110
Sume Imprime
Sume
1aC P a X T
80
120
¿Es No
Alto
C == 1007
70 GO TU 30
100 GO TU 20
110 STOP
10 20
Asigne Asigne
Inicie 50 a R2 10 a R 1
30 40 50
Comp~ta
Rl X R2 Imprime
Incremente
Rl + R2 R,Rl,yR2 R 1 por .5
Asigna el
resu Itado a R
80
90
¿Es
I ncrerne nte
R2 por 1
R2 > 80?
No Sí
110
A Alto
LECCIÓN 9
l. 20 40
1.
Asigne
OaD Sume
Asigne 1a K
OaK
No
50 80
60
90 110
120
Asigna 1
Incrementa ¿Es
aW
Asigna 1 K en 1 CK <
S?
aK
Sí
D
No
180 190
160
1?7
128 MARIO V. FARINA
200
210
230
Sume Es Sí
1a D O == 20?
140 150
Asigne Asigne
CKaS KaW
130 GO TO 160
140 Ll~:l' S == C(K)
150 LI~T W == K
160 IF K == 20 Tlf~:N 180
170 CO TO 110
180 PltTNT S
190 LET C(W) == 999
200 LI~T D == D + 1
210IF D == 20 TI-II~N 230
220 CO TO 80
230 STOP
240 I)ATA 3,9,4,17,8,35,12, JI, 42,5,6
250 DATA 7,1,13,90,10,22: 2,14,44
130 MARIO V. FARINA
De la página
140 260
anterior
Imprime
sr "ventas",
SK "utili ~<- A la página 129
dad~s", PK
No
150 160 170
Calcule
IS
IN -sKI X:;:>L
No Asigne
asigna el XaL
?
resu Itado a X
Sí A la página 129
220 230
240
Calcule
C X B Calcule
Imprime
-A- PK -1 + y "ventas" N
Asigne el Asigne el lIutilidade~lI, Z
resultado resu Itado a Z
aY A la página 129
2. 10 DIM P(500),S(500)
20 I~ET C = O'
30 lJET C = C + 1
40 RF:AD P(C), S(C)
50 If' S(C) = -1 THEN 70
60 GO TO 30
70 I.JF:T C = C - 1
80 INPUT N
90 LET I~ = 9999
100 I~ET K = O
110 IJET K = K + 1
120 IF N > S(C) THEN 280 (Continúa en la
130 IF N < S(l) THEN 280 siguiente página)
DIAGRAMAS DE FLUJO 131
1. 190 LET T == O
200 LET J == O
210 LET J == J + 1
220 LET S == O
230 LET K == O'
24iO LET K == K + 1
250LETS == S + [A(J,K)*V(K)]'
260 IF K == 5 THEN 280
270 GO TO 240
280 PRINT S
290 LET T == T + S
300 IF J = 5 TIIEN 320
310 GO TO 210
320 PRINT T
330 STOP
133
LECCIÓN 12
10 LET 1 = 10
20 LET W = SO
30 LET Wl = W - 1
40 LET W2 == W + 1
90 I~ E T Y2 == SQR (90 t 2 - Wl t 2)
18
la estruc tura básica, 68-72
datos desde, 39
transferencia de control, 29·30
B mas, 40
BASIC, lenguaje, 14
mantenimiento de archivos, 98-99
para formar, 86
Conteo, 53-59
Búsqueda al azar, 94
Cruzadas, referencias, y documenta
Búsqu eda binaria, 93
ción,22
61-62
Clasificación, 75
Curva senoide, área bajo la, 63-64
137
, ,
138 INDICE ALFABETICO
auxiliares, 39
Escrita, infoflnación, 30
47-48
te, 48
rar el, 13
mas de flujo, 42-44
das, 21
Flechas, cuidados requeridos en el uso
DIM, instrucción, 68
de, 19
TRAN, 68
sos, 21, 35-36
cas, 61-63
sión,25
datos desde, 39
flujo, 14
21-22
21
DATA, 30
FC)RTHj\N, uso de la instrucción DJ
MENSION,68
40
flujo, 19-21
E
Funeión SIN, 64
Función SQR, 61
Ecuación cuadrática, 61
de la, 21
IF, instrucción en BASIC, 28
transferencia de control, 25
Línea, números de, en BASIC, 21
gramas, 44
91-95
Jnicialización, 43-44
Literales, mensajes, en BASIC, 30
ciones,53
M
INPUT, instrucción en BASIC, 75
Instrucción DATA, 28
~lagnética, cinta, símbolo de, 97
Instrucción DIM, 68
Manual, entrada, símbolo de, 73
Instrucción GO TO, 21
Memoria, posiciones de, para arreglos
Instrucción IF, 26
y listas, 68
Instrucción INPUT, 75
Menor que, símbolo en BASIC, 27
Instrucción LET, 18
Mensaje, literal, en BASIC, 30
Instrucción PRINT, 18
Movimiento, clave de, usada en mante
Instrucción READ, 28
nimiento de archivos, 98-99
Instrucción SCRATCH, 98
miento de archivos, 98
Instrucción WRITE, 98
N
Inventarios, probleIna de, ilustración
Iteración, final de, ubicac ión de la con Nombres de variables en BASIC, reglas
para, 53
TRAN, 21
Iteraciones, 17-24
Números de línea en BASIC, 21
L 11
desde, 39
BASIC, 98
listas, 68
Relacionales, símbolos, en BASIC, 26
75-79
transferencias de control, 25
21
cuadrática, 61-63
Sí Inbolo de proceso, 12
vo,99-103
Símbolo terminal, 11-12
Problema de la temperatura/presión,
Símbolo de decisión, flechas usadas
flujo, 14
SQR, función en BASIC, 61
mantenimiento de archivos, 97
Suma de enteros, Qroblema de la, ilus
Proceso, símbolo de, 11-12
tración de iteraciones, 54-57
R T
Raíces de una ecuaClon cuadrática,
ventarios, 73
raciones, 54-55
75-79
v
grama, 21, 40
85
w
Trabajo, condición de tenninación, en
programas, 40