Documente Academic
Documente Profesional
Documente Cultură
+
d)
X
X
+ 3
30
e) N
e
N
N
N
2
f) 1 +
b
a
g)
f
e
d
c
b
a
+
h)
d c
b
a
+
i)
d
c
b a ) ( +
j) { } [ ]
d
c
b a +
k)
a
ac b b
2
4
2
+
Fundamentos de programacin
Guinto 2011
25
Funciones intrnsecas (internas). Son rutinas escritas previamente por los diseadores de
los lenguajes de programacin para facilitar el trabajo del programador, adems de que
algunas funciones requieren algo ms que los operadores convencionales.
Algunas de las funciones internas bsicas que proporcionan gran parte de los lenguajes de
programacin
*
son las siguientes:
abs(x) Valor absoluto de x
sqrt(x) Raz cuadrada de x
log(x) Logaritmo natural de x
alog10(x) Logaritmo de x (base 10)
exp(x) e
x
sin(x) Seno de x (x en radianes) Nota: ver conversiones:
cos(x) Coseno de x (x en radianes) Grad a Rad
tan(x) Tangente de x (x en radianes) Rad a Grad
atan(x) Arc. Tangente de x (resultado en radianes)
atn(x)
EOF Fin de archivo (1 = Verdadero, 0 = Falso)
IV.6 Construcciones bsicas de los algoritmos:
En general, los algoritmos se elaboran/disean/construyen con las siguientes construcciones
bsicas:
1. Secuenciacin
Una instruccin/sentencia tras otra (secuencia de instrucciones).
2. Bifurcacin
Toma de decisiones (basadas en valores lgicos). Estructuras de control
3. Repeticin
Ejecucin varias veces de una instruccin o de un conjunto de instrucciones.
De manera general, cada construccin incluye una o varias instrucciones bsicas. La
aplicacin de estas construcciones bsicas se ver ms adelante, en el captulo III (tcnicas
para la representacin/descripcin de algoritmos).
* Ver el lenguaje de programacin de inters.
Fundamentos de programacin
Guinto 2011
26
Ejercicios:
1. Determine el valor numrico de cada una de las siguientes expresiones. Tenga
cuidado en operaciones con enteros.
a) 16 * 2 3 *2
b) -2 ^ 2
c) (28 + 3 + 4) / 4
d) 3 + 3 * (18 4 ^ 2)
e) 2 ^ 2 * 3
f) 8 28 / 6
g) (60 + 30) / 5 * 2 (10 5)
h) (30 +2) * (4 2) / 4 + 5
i) (5 + 3.0 / 2.0) / (3 4.0 / 2.0) ^ 2
2. Represente las siguientes asignaciones en notacin computacional (en lnea):
a)
5 +
=
A
B
K
b)
X
b A
X
B
Y
+
+ =
2 / 5
c)
a
ac b b
X
2
4
1
2
+
=
d)
tag
sen
A
cos +
=
e)
2 2
b a C + =
f)
+ + =
23
3 2
13
3 1
12
2 1
r
m m
r
m m
r
m m
G E
g) ) ( cos
=
t Ae Y
t
Fundamentos de programacin
Guinto 2011
27
h)
sen
sen
Y
+
=
1
cos
i)
=
=
5
1
4
i
i
K
h
R
j)
3
5 3
4 5
+
=
Y
X
Z
k)
=
Z
S Y
X
Z
S Y
Ln
Z
S Y
R
X
3. Diga usted cual ser el valor de la variable R, despus de la ejecucin de c/u de los
siguientes segmentos de algoritmo, respectivamente.
a) R 0
I 1
R R + I ^ 2
R I
b) X 2
Y 3
R X + Y
X 5
R X + Y
c) R = 3.0 * 6
X = 2.
Y = 3.
R = X ^ Y X
R > 5 ?
SI: R = 5
NO: R = 0
d) R = 8
X = 2
R = R / X + 5
R = SQRT(R)
Fundamentos de programacin
Guinto 2011
28
IV.7 Metodologa de solucin Top-Down (descendente o refinamiento de pasos) para
el desarrollo de programas.
P.1. Asegrese de entender completamente las especificaciones del problema o situacin.
P.2. Identifique y liste cualquier variable que parezca necesaria.
P.3. Formule de manera simple un algoritmo general para resolver el problema o situacin.
P.4. Regrese a los pasos individuales del algoritmo y proceda a llenar los detalles.
P.5. Cuando crea haber obtenido un algoritmo lo bastante detallado, pruebe con cuidado los
pasos, con algn conjunto de datos de entrada, hasta estar seguro de que la solucin
elaborada satisface los requisitos establecidos.
P.6.Proceda a la codificacin con algn lenguaje de programacin.
Fig. Pasos para solucin de un problema mediante la programacin
Fundamentos de programacin
Guinto 2011
29
V. TECNICAS PARA FORMULACIN/REPRESENTACIN/DESCRIPCIN/
DISEO DE ALGORITMOS
V.1 Introduccin
El diseo de un algoritmo apropiado es la etapa previa a la elaboracin de un programa de
computadora (codificacin) para una aplicacin especfica.
La descripcin de un algoritmo es de gran ayuda para la construccin del programa
respectivo.
Fig. Camino a seguir para la elaboracin de programas (codificacin)
Existen diferentes tcnicas para representar / describir algoritmos; trataremos de manera
simple dos tcnicas no estructuradas y de manera ms detallada tres de las tcnicas
estructuradas.
Fundamentos de programacin
Guinto 2011
30
Objetivos de las tcnicas estructuradas:
1. Programacin sin uso de Go TOs (ir a).
2. Elaboracin de algoritmos altamente confiables, fciles de entender, corregir y
mantener.
3. Algoritmos eficientes en cuanto a tiempo de ejecucin y usos de variables
(memoria).
4. Algoritmos con las siguientes caractersticas:
Modularidad (procedimientos y/o funciones bien definidas)
Uniformidad (slo construcciones bsicas)
Legibilidad (comentarios e indentacin).
5. Reducir el nmero de fallas.
6. Detectar errores y omisiones desde el principio.
7. Mejorar la confiabilidad de los programas.
8. Mejorar el mantenimiento de los programas.
9. Incrementar la productividad de los programadores.
V.2 Descripcin narrada: Es una tcnica no estructurada que consiste en relatar o narrar
de manera verbal o escrita las instrucciones o acciones que conforman el algoritmo. Para
realizar una descripcin narrada parece fcil hacerlo si se mira superficialmente; sin
embargo, no siempre es sencillo, el lenguaje natural es muy amplio e impreciso y con
frecuencia es un vehculo poco confiable para transmitir informacin. En general, se
pueden presentar ambigedades.
Ejemplos:
1. La solucin de algunos algoritmos tratados en la unidad II, de manera natural se
intent resolver con esta tcnica, aunque no se lleg al uso eficiente de la misma.
2. Suponga que en el compartimiento superior de un archivero de oficina se tienen
tarjetas con datos de empleados de una empresa. Cada tarjeta por lo menos contiene
los siguientes datos: nombre del empleado y sueldo mensual.
Disee un algoritmo que permita obtener un listado de los empleados cuyo sueldo
mensual sea mayor o igual a $ 5,000.00
Fundamentos de programacin
Guinto 2011
31
V.3 Diagramas de flujo: Es una tcnica no estructurada que se basa en la utilizacin de
diversas figuras y smbolos para representar operaciones especficas. Se les llama
diagramas de flujo porque las figuras utilizadas se conectan por medio de flechas para
indicar la secuencia de operaciones.
Fue una de las primeras tcnicas de diagramacin. Aunque algunas personas an las usan
con frecuencia, hoy no se recomienda su uso, ya que incitan al uso de Go Tos (ir a).
El diagrama de flujo es una representacin grfica del algoritmo. Hay varios tipos de
diagrama de flujo: Diagrama de flujo de sistema, diagrama de flujo de programa, diagrama
de flujo de datos,
Diagrama de flujo de sistema. De manera grfica, muestra como ejecutar el sistema.
Diagrama de flujo de programa. Muestra grficamente la secuencia en que las instrucciones
(declaraciones, sentencias, etc.) o bloques de proceso se ejecutarn y la lgica de control
que gobierna su ejecucin. Tradicionalmente, sirvieron para dos propsitos:
1. Se usaron como una herramienta de diseo para planear lgica de programas
complicados y detallados.
2. Se usaron como documentacin de programas.
Fundamentos de programacin
Guinto 2011
32
Simbologa utilizada en los diagramas de flujo:
Fundamentos de programacin
Guinto 2011
33
Proceso cclico
Ejemplos:
1. Disee un algoritmo para obtener el rea de un trapecio. Si el rea resultante es
menos de 1,000 U
2
, muestre el mensaje: se requiere ms rea Incremente las
dimensiones, caso contrario, debe mostrarse el rea y el mensaje: rea suficiente.
2. Disee un algoritmo para resolver la ecuacin cuadrtica de la forma Ax
2
+Bx+C=0.
3. Disee un algoritmo para tabular la siguiente funcin matemtica, para diferentes
valores de x, a partir de x = A, hasta x = B, en incrementos de x .
F(x) = x
2
+ 3x 2.
4. Disee un algoritmo para obtener la suma de los cuadrados de los nmeros del 1 al
100.
5. Disee un algoritmo para determinar el valor de K, de acuerdo a:
Fundamentos de programacin
Guinto 2011
34
=
=
n
i
i
x
J
K
1
6. Disee un algoritmo para calcular el precio de un automvil, sumando al precio de
fbrica la comisin del vendedor (5% del precio de fbrica); ms el impuesto
correspondiente, segn su potencia en caballos de fuerza (H.P.), dada por la
siguiente tabla; ms un 1% del precio de fbrica por gastos administrativos.
Potencia Impuesto
6 10% del precio de fbrica
> 6, pero 12 15% del precio de fbrica
> 12, pero 18 20% del precio de fbrica
> 18 30% del precio de fbrica
7. Disee un algoritmo que permita: leer una cantidad en pesos mexicanos, convertir
dicha cantidad a dlares americanos y a euros, y visualizar dicha cantidad en las tres
monedas.
8. Disee un algoritmo para obtener la suma de dos vectores coplanares y
concurrentes. Asuma que se da la magnitud y el ngulo C/R al eje X
+
de cada uno
de los vectores. Los ngulos sern dados en grados.
Fundamentos de programacin
Guinto 2011
35
V.4 Seudocdigo. Es una tcnica estructurada para representar/describir algoritmos. Se
compone de una combinacin de las construcciones de un lenguaje formal de programacin
con proposiciones informales expresadas con el lenguaje natural (para nuestro caso con el
Castellano/Espaol). Al seudocdigo tambin se le conoce como Lenguaje estructurado,
Seudo-lenguaje, Lenguaje algortmico, Program Design Languaje = Lenguaje de diseo de
programas Es un lenguaje de especificacin o descripcin de algoritmos. El uso de tal
lenguaje hace el paso de codificacin final (esto es, la traduccin a un lenguaje de
programacin) relativamente fcil.
El pseudocdigo naci como un lenguaje similar al lenguaje natural y es un medio para
representar bsicamente las estructuras de control de programacin estructurada. Se
considera un primer borrador, dado que el pseudocdigo tiene que traducirse
posteriormente a un lenguaje de programacin.
La ventaja del pseudocdigo es que en su uso en la planificacin de un programa, el
programador se puede concentrar en la lgica y en las estructuras de control y no
preocuparse de las reglas de un lenguaje especfico. Es tambin fcil modificar el
pseudocdigo si se descubren errores o anomalas en la lgica del programa, adems de
todo esto es fcil su traduccin a lenguajes de programacin.
Para el caso de una solucin va lenguaje de programacin, el seudocdigo se forma con
frases que representan las acciones que un lenguaje de programacin puede llevar a cabo.
Las operaciones bsicas que una computadora puede realizar, mediante un lenguaje de
programacin son:
a) Aceptar datos.
b) Asignar datos a una localizacin de memoria.
c) Sumar dos cantidades.
d) Restar una cantidad de otra.
e) Multiplicar dos cantidades.
f) Dividir una cantidad entre otra.
g) Comparar datos y tomar decisiones, basadas en el resultado lgico de la
comparacin.
h) Copiar un dato de una localizacin de memoria a otra.
i) Mostrar datos y/o informacin en pantalla.
j) Imprimir datos y/o informacin.
k) Activar o desactivar archivos.
l) Etc.
Esto es, algunas de las instrucciones para un seudocdigo pueden ser las siguientes:
1) De tipo Entero: lista de variables
De tipo real: lista de variables
De tipo carcter: lista de variables
Fundamentos de programacin
Guinto 2011
36
Entero: lista de variables
Real: lista de variables
Etc.
2) Leer (lista de variables)
Aceptar (lista de variables)
Introducir (lista de variables)
3) Asignar expresin a lista de variables
4) Variable = Expresin.
5) Repetir mientras condicin
Instrucciones
Termina repetir
6) Repetir para var = Exp1, Exp2, Exp3
Instrucciones
Termina repetir
7) Repetir para var = 1, 2, N
Instrucciones
Termina repetir
8) Desplegar (lista de expresiones)
Mostrar (lista de expresiones)
9) Imprimir (Lista de expresiones)
Escribir (Lista de expresiones)
10) Si condicin Entonces
Instrucciones
[de otro modo o si no
instrucciones]
Termina si
Fundamentos de programacin
Guinto 2011
37
11) Realizar segn condicin
Caso condicin 1
instrucciones
Caso condicin 2
Instrucciones
.
.
.
[de otro modo o si no
instrucciones]
Termina realizar segn
PROPUESTA DE FORMATO PARA REPRESENTAR/DESCRIBIR UN ALGORITMO
MEDIANTE EL USO DE SEUDOCDIGO
ALGORITMO:
OBJETIVO O DESCRIPCIN:
REALIZ:
FECHA ELABORACIN
FECHA ACTUALIZACIN
1. [Comentarios] //Comentarios
instrucciones
2. [Comentarios] //Comentarios
instrucciones
3. [Comentarios] //Comentarios
Instrucciones
.
.
.
4. [Terminar]
Fin
Ejemplos: Ver pags. 43 y 44.
Fundamentos de programacin
Guinto 2011
38
V.5 Diagramas de Warnier
Es una tcnica estructurada para representar/describir algoritmos. Se fundamenta en la
utilizacin del algebra Booleana y la teora de conjuntos.
Simbologa:
(Llave)
Denota a un bloque de informacin jerarquizada, que pueden ser
datos o acciones. De derecha a izquierda, denota los niveles de
abstraccin. De arriba abajo, muestra la secuencia y las relaciones
lgicas entre los elementos considerados.
(OR Exclusivo)
Indica ocurrencia condicional de una accin o grupo de acciones.
(R)
(Repeticin)
La informacin entre los parntesis (variable simblica o cantidad
numrica) indica el nmero de veces (repeticin) que ocurrira una
estructura.
_________
(Barra)
Indica negacin de una condicin.
(Conector y/o
identificador)
Se usa para indicar un bloque de instrucciones, descrito en otra
parte o para darle un nombre al algoritmo. Adentro, puede llevar un
nmero o identificador de procedimiento o subprograma.
*
Indica expresin condicional de fin de ciclo (se lee hasta que)
Fundamentos de programacin
Guinto 2011
39
(Fin)
Las construcciones bsicas de los algoritmos (Secuenciacin, bifurcacin y repeticin, ver
II.6), con un diagrama de Warnier, se disean de la siguiente manera:
a) Secuenciacin
PROCESO 1
PROCESO 2
PROCESO 3
.
.
.
PROCESO N
b) Bifurcacin
CONDICIN
___________
CONDICIN
INSTRUC. 1
INSTRUC. 2
.
.
INSTRUC. N
INSTRUC. I
INSTRUC. ii
.
.
INSTRUC. m
Fundamentos de programacin
Guinto 2011
40
c) Repeticin
INICIALIZACIN
DE LA VARIABLE
DE CONTROL
CICLO
(R)
ESTATUTOS/INSTRUCCIONES
(CUERPO DEL CICLO)
MODIFICACIN DE LA
VARIABLE DE CONTROL
* CONDICIN
Ejemplos: Ver pags. 43 y 44.
Fundamentos de programacin
Guinto 2011
41
V.6 Diagramas de Nassi-Shneiderman (N-S)
Son una herramienta alternativa para el diseo estructurado de algoritmos. Tambin se les
conoce como: Diagramas de flujo estructurado, Cartas de Nassi-Shneiderman, Diagramas
N-S o Diagramas de Chapin.
Los diagramas N-S son compatibles con otras tcnicas que se usan para el diseo de
algoritmos, tales como: Diagramas de Warnier, Seudocdigo, Metodologa de Jackson y
Diagramas Hipo (Hierarchical Input Proccesing Output).
Simbologa:
Representa procesos, tales como:
asignaciones, invocaciones o cualquier otra
operacin secuencial. Adems puede anidar a
otros smbolos.
Usado para representar la secuenciacin.
Dentro de una actividad secuencial, cada
proceso puede tener cualquier dimensin,
siempre y cuando no sea mayor a una pgina
Usado para representar la bifurcacin. En el
tringulo superior se tiene la condicin. En los
tringulos inferiores se tiene los caminos
alternos.
Fundamentos de programacin
Guinto 2011
42
Usado para representar la repeticin. Prueba
la condicin antes de entrar al cuerpo del ciclo
Usado para representar bifurcacin mltiple.
Requiere que el diseador se asegure que las
condiciones son mutuamente excluyentes y
que se cubren todas las condiciones de prueba
necesarias.
Los diagramas N-S han probado ser tiles en todas las fases de desarrollo de programas,
especialmente en el diseo de algoritmos, ya que proporcionan un lenguaje elegante y
simple que intencionalmente es compatible con los mtodos y objetivos de la programacin
estructurada.
Los programadores que aprenden a disear algoritmos con esta tcnica nunca desarrollan
malos hbitos que otras notaciones si permiten. Puesto que no ms de 15 a 20 smbolos
pueden dibujarse en una pgina, el diseador debe modularizar su algoritmo en secciones
significantes. Las tentaciones de usar conectores fuera de pgina son eliminadas.
La facilidad con la cual un diagrama de flujo estructurado (diagrama N-S) puede ser
traducido a un programa es agradablemente sorprendente.
Fundamentos de programacin
Guinto 2011
43
EJEMPLOS:
1. Un sistema de ecuaciones lineales de la forma:
ax + by = c
dx + ey = f
puede resolverse utilizando las siguientes frmulas:
bd ae
bf ce
x
=
bd ae
cd af
y
=
Disee un algoritmo para leer los coeficientes a, b, c, d, e y f e imprimir la solucin (x e
y). Existen algunos casos para los cuales no funcione esto? De ser cierto, considrelo
en el algoritmo.
2. Disee un algoritmo para calcular el total que una persona debe pagar en una llantera, si
el precio de cada llanta es de $800 si se compran menos de 5 llantas y de $700 si se
compran 5 ms llantas.
3. En un supermercado se hace una promocin, mediante la cual el cliente obtiene un
descuento, dependiendo de un nmero aleatorio que l escoge al azar. Si el nmero
escogido es menor de 74, el descuento es de 15% del total de la compra. Si es mayor o
igual a 74 el descuento es de 20 %. Disee un algoritmo para obtener el descuento del
cliente.
4. Disee un algoritmo para calcular el nmero de pulsaciones que debe tener una persona
por cada 10 segundos de ejercicio aerbico. La frmula que se aplican son las
siguientes:
Sexo femenino_: Num. de pulsaciones = (220- edad) / 10
Sexo masculino: Num. de pulsaciones = (210 edad) / 10
5. Una compaa de seguros est abriendo un departamento de finanzas y estableci un
programa para captar clientes, que consiste en lo siguiente: si el monto por el que se
efecta la fianza es menor que $50 000, la cuota a pagar ser por el 3% del monto, y si
el monto es mayor o igual que $50 000, la cuota a pagar ser del 2% del monto. Disee
un algoritmo para determinar cual ser la cuota que debe pagar un cliente.
6. En una escuela, la colegiatura de los alumnos se determina segn el nmero de materias
que cursan. El costo de cada materia es el mismo. Se ha establecido un programa para
estimular a los alumnos, el cual consiste en lo siguiente: si el promedio de
calificaciones, obtenido por el alumno en el ltimo perodo, es mayor o igual a 9, se le
har un descuento del 30% sobre la colegiatura y no se le cobrar IVA; si ese promedio
Fundamentos de programacin
Guinto 2011
44
es menor a 9, deber pagar la colegiatura completa y el IVA correspondiente (igual a un
16 % de la colegiatura). Disee un algoritmo que permita determinar cuanto debe pagar
un alumno.
7. Una empresa de bienes races ofrece casas de inters social, bajo las siguientes
condiciones: si los ingresos mensuales del comprador son menores de $8 000, el
enganche ser de 15% del costo de la casa y el resto se distribuir en pagos mensuales,
a pagar en diez aos. Si los ingresos mensuales del comprador son mayor o igual a $8
000, el enganche ser de 30% del costo de la casa y el resto se distribuir en pagos
mensuales, a pagar en siete aos. Disee un algoritmo para obtener cuanto debe pagar
un comprador por concepto de enganche y cuanto por cada pago parcial.
8. El gobierno ha establecido el programa SAR (Sistema de Ahorro para el Retiro) que
consiste en que las empresas, de manera obligatoria, deben depositar en una cuenta
bancaria un porcentaje del salario de los trabajadores (para este ejemplo supongamos un
2%). Adicionalmente, los trabajadores pueden solicitar a la empresa que deposite
directamente una cuota fija o un porcentaje de su salario en la cuenta del SAR, la cual le
ser descontada de su pago mensual. Disee un algoritmo para determinar la cantidad
total de dinero que estar depositando un trabajador a su cuenta del SAR y el pago
mensual que ste recibir.
9. Disee un algoritmo para determinar la integral definida de una funcin y = f(x), en el
intervalo [a, b]. Considere que la funcin es continua en ese intervalo. Recuerde, la
integral definida representa el rea bajo la curva y = f(x), acotada por la rectas x = a y x
= b.
10. Diga usted cual ser el valor de la variable X, despus de la ejecucin del siguiente
segmento de algoritmo:
N=0
X=25
Leer (Y)
Y > 20
______
Y > 20
X=X+3
.
.
.
Leer(N)
Desplegar(X,Y)
X=20
Fundamentos de programacin
Guinto 2011
45
VI. ARREGLOS (ARRAYS) Y CADENAS DE CARACTERES
Objetivo educacional: El alumno ser capaz de utilizar los arreglos para plantear la
solucin de problemas que requieran de esta estructura.
VI.1 Introduccin
Los tipos de datos pueden ser primitivos (simples o estndar) o estructurados (estructuras
compuestas o estructuras de datos). En la unidad II se trataron algunos tipos de datos
simples. Una estructura de datos es una coleccin de datos que se caracteriza por su
organizacin y las operaciones que se definen en ella. Los datos estructurados pueden
organizarse en diferentes estructuras de datos: estticas y dinmicas.
Los datos estructurados soportan el almacenamiento de un conjunto o coleccin de datos.
Una clasificacin de los tipos de datos simples se muestra en la figura II.1 y en la figura
IV.1 se muestra una clasificacin general de los tipos y estructuras de datos.
Figura IV.1 Clasificacin general de los tipos y estructuras de datos
La eleccin de la estructura de datos idnea a utilizar en la solucin de un problema,
depender de la naturaleza del problema mismo y, en menor medida, del lenguaje particular
que se use. Las estructuras de datos compuestas tienen en comn que un identificador
(nombre) puede referenciar a mltiples datos individuales.
Muchas aplicaciones se pueden resolver de una manera ms eficiente haciendo uso de
arreglos. En ausencia del uso de arreglos, algunas aplicaciones requeriran del uso de una
Fundamentos de programacin
Guinto 2011
46
gran cantidad de variables y su manipulacin sera un tanto engorrosa y tediosa. Sin
embargo, el uso de arreglos estticos puede llevar al desperdicio de memoria.
Para el caso de arreglos estticos, stos se deben declarar (reservar espacio en memoria)
antes de compilar el programa, lo cual consiste en especificar la mxima cantidad de
memoria que utilizar el programa para dicha estructura de datos.
En los tipos de datos simples, cada variable representa a un solo elemento. En los tipos de
datos estructurados, un identificador (nombre) puede representar mltiples datos
individuales, pudiendo cada uno de stos ser referenciado de manera independiente.
VI.2 Definicin
Arreglo: Es un conjunto, coleccin o secuencia, finito de elementos del mismo tipo, a
cuyos elementos se hace referencia con un mismo nombre (identificador) y una posicin
(ndice(s)) particular para cada dato o elemento. Es un conjunto finito y organizado de
elementos homogneos.
Nivel Lgico
Es una estructura de datos con un nmero fijo de nodos. Al conjunto de nodos se le
identifica con un nombre y a los nodos con uno o ms ndices.
Almacenamiento
Operaciones
(Funciones de acceso)
Extraccin
Los arreglos se caracterizan por:
Almacenan los elementos en posiciones contiguas de memoria
Tienen un mismo nombre de variable que representa a todos los elementos. Para
hacer referencia a esos elementos es necesario utilizar un ndice que especifica el
lugar que ocupa cada elemento dentro del arreglo.
Unidimensionales (Vectores)
Tipo de Bidimensionales (Matrices)
Arreglos Tridimensionales
Multidimensionales
En lectura.
En asignacin.
Como operando.
En despliegue.
En impresin.
Fundamentos de programacin
Guinto 2011
47
VI.3 Vectores (arreglos o arrays unidimensionales)
Es un arreglo para el cual se requiere de un solo ndice para indicar la posicin de uno de
sus elementos. Es un arreglo de N elementos organizados en una dimensin donde N
recibe el nombre de longitud o tamao del vector. Para hacer referencia a un elemento del
vector se usa el nombre del mismo, seguido del ndice (entre corchetes), el cual indica una
posicin en particular del vector. Por ejemplo:
Vec[x]
Donde:
Vec Nombre del arreglo
x. Numero de datos que constituyen el arreglo
Representacin grfica de un vector
7
8
9
10
A[I]
Nota: Algunos lenguajes de programacin consideran la posicin 0 (cero) para el primer
elemento del vector, en lugar de la posicin 1 (uno).
Almacenamiento:
Aceptar (A[I])
Leer(X[I])
Introducir(R[X[3]])
X[1] = 20
C[i] = x * x + 3
Extraccin:
Var = A [I] + 5
Desplegar (A[I])
Mostrar_en _Pantalla(A[I])
Imprimir(X[j] + 2 * y)
1 2 3 4 5 6 7 8
Vec[
1]
Vec[
2]
Fundamentos de programacin
Guinto 2011
48
Llenado de un Vector:
Hacer para I = 1 a 10
Leer vec[I]
Fin-para
I=1
Hacer mientras I <= 10
Leer vec[I]
I=I+1
Fin-mientras
I=1
Repetir
Leer vec[I]
I = I + 1
Hasta-que I>10
VI.4 Cadenas de caracteres
Una cadena de caracteres es una secuencia de smbolos (dgitos, letras del alfabeto y
caracteres especiales) utilizados para representar un dato o informacin.
Algunos lenguajes de programacin, como es el caso de C, no disponen del tipo de dato
cadena de caracteres; por lo que, para manipular cadenas de este tipo, con el lenguaje
referido se hace uso de arreglos de tipo carcter para almacenarlas, siendo necesario colocar
el carcter \0 al final de cada cadena. Las operaciones ms comunes que se hacen con
cadenas de caracteres son:
a) Creacin de cadenas de caracteres.
b) Determinacin de la longitud de una cadena de caracteres (N de caracteres de la
cadena).
c) Bsqueda.
d) Bsqueda y reemplazo de una subcadena en una cadena.
e) Copia de cadenas.
f) Comparacin de cadenas.
g) Lectura de cadenas.
h) Despliegue o impresin de cadenas.
i) Concatenacin de cadenas.
j) Frecuencia de ocurrencia de una subcadena en una cadena.
k) Convertir maysculas a minsculas (o viceversa) en una cadena.
l) Convertir cadenas a enteros.
m) Etc.
Fundamentos de programacin
Guinto 2011
49
De este modo, los lenguajes de programacin disponen de funciones que permiten
manipular cadenas; sin embargo, en ocasiones es necesario implementar algunas de ellas
para un tipo particular de operaciones con cadenas.
VI.5 Matrices (arreglos bidimensionales)
Es un arreglo de M * N elementos organizados en dos dimensiones donde M es el
numero de filas o reglones y N el numero de columnas.
Para representar una matriz se necesita un nombre de matriz acompaado de dos ndices.
Por convencin, el primer ndice indica la fila (rengln) y el segundo la columna.
Mat [R,C]
Donde R indica el rengln y C indica la columna, del elemento al cual se hace referencia.
Representacin grfica de una matriz
Mat [R,C]
1,1 1,2 1,3 1,4
2,1 2,2 2,3 2.4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4
A[I, J]
Almacenamiento:
Aceptar (A[I,J])
Leer(X[I,J])
Introducir(R[X[3],2])
X[1,5] = 20
C[i,j] = x * x + 3
1 2 3 4 5 6
1
2
3
4
Fila o
Rengln
[R]
Columna
[C]
Fundamentos de programacin
Guinto 2011
50
Extraccin:
Var = A [I,J] + 5
Desplegar (A[R,C])
Mostrar_en _Pantalla(A[R,C])
Imprimir(X[j,i] + 2 * y)
Llenado de una matriz
Por renglones
Hacer para R = 1 a 5
Hacer para C = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Por columnas
Hacer para C = 1 a 5
Hacer para R = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los ndices y
se utilizan 2 ciclos, uno para los renglones y otro para las columnas; a estos ciclos se les
llama ciclos anidados (un ciclo dentro de otro ciclo).
VI.6 Arreglos n-dimensionales (de dimensin n)
Son arreglos que requieren n ndices para hacer referencia a uno de sus elementos.
Ejemplos:
A[1,1,2] = 20
Aceptar(Z[3,2,3,I+1])
Imprimir(Z[3,2,3,I+1]/(x+3))
Fundamentos de programacin
Guinto 2011
51
Ejemplos
1. Disee un algoritmo que permita ordenar (en forma ascendente) los elementos de un
arreglo numrico unidimensional.
2. En un arreglo, Entero: CEREAL[12], se ha almacenado el nmero total de toneladas
de cereales cosechados durante cada mes del ao anterior. Disee un algoritmo para
obtener la siguiente informacin:
a) El promedio anual de toneladas cosechadas.
b) El nmero de meses que tuvieron una cosecha superior al promedio anual.
c) El nmero de meses que tuvieron una cosecha inferior al promedio anual.
3. Disee un algoritmo para intercambiar las columnas de un arreglo bidimensional de
N renglones por N columnas. Los elementos de la columna 1 deben intercambiarse
con los de la columna N, Los de la columna 2 con los de la columna N-1, y as
sucesivamente.
4. Se tiene una lista de 50 alumnos con calificaciones obtenidas por cada uno de ellos,
en 3 exmenes diferentes. Disee un algoritmo que permita obtener:
a) El promedio de calificaciones que obtuvo cada alumno
b) El promedio general de calificaciones que obtuvo el grupo en el segundo
examen.
5. Una empresa tiene 10 tiendas, la gerencia de dicha empresa desea procesar los
ingresos semanales (7 das) de las tiendas. Diariamente, las 10 tiendas reportan sus
ingresos totales del da y estos valores se registran en orden. Esto es, los ingresos
del da de la tienda No. 1 se registran primero y a continuacin los de la tienda No.
2, y as sucesivamente. Este proceso se repite diariamente durante la semana.
Disee un algoritmo para determinar la siguiente informacin:
a) Los ingresos totales de cada tienda, durante la semana.
b) El ingreso total por semana de las 10 tiendas.
c) El promedio de ingresos de cada tienda.
6. Una empresa tiene N agentes de ventas. Cada mes, la empresa recibe un reporte de
cada uno de ellos, indicando: el nmero de unidades vendidas de cada uno de 20
productos. Por otro lado, la empresa cuenta con un lista que contiene los precios
unitarios de cada uno de los 20 productos. Disee un algoritmo que:
a) Por cada agente:
Determine los rditos de sus ventas (suma de unidades vendidas
por precios unitarios respectivos).
Determine su salario, igual a 3000.00, ms el 20 % de sus rditos
totales.
Fundamentos de programacin
Guinto 2011
52
b) Por cada uno de los 20 productos:
Determine el total de unidades vendidas.
Determine el rdito total del producto.
7. Suponga que en la memoria del computador se tiene el arreglo DATOS[ I ], de N
elementos numricos. Disee un algoritmo para determinar la diferencia ms grande
entre dos elementos consecutivos.
8. Muestre usted el valor de cada uno de los elementos del arreglo A, despus de la
ejecucin del siguiente segmento de algoritmo:
Mostrar_en_pantalla(Inicializando arreglo)
Repetir para R = 1, 2, , 3
Repetir para C = 1, 2,, 3
A[ R, C ] = 0
Termina repetir
Termina repetir
Mostrar_en_pantalla(Procesando)
Repetir para K = 1, 2, , 3
A[ K, K ] = 1
Si K = 3 entonces
A[ 1, K ] = K ^2.
A[ K, 1 ] = K^2.
Termina si
Termina repetir
Mostrar_en_pantalla(Fin de segmento de algoritmo)
Mostrar_en_pantalla( )
Mostrar_en_pantalla(Para continuar, presione la tecla Enter / Intro)
Leer(CONTINUA)
Fundamentos de programacin
Guinto 2011
53
Problemas propuestos
1) Calcular el promedio de 50 valores almacenados en un vector. Determinar adems
cuantos son mayores que el promedio, imprimir el promedio, el nmero de datos
mayores que el promedio y una lista de valores mayores que el promedio.
2) Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector
A con el elemento uno del vector B y as sucesivamente hasta 45, almacenar el
resultado en un vector C, e imprimir el vector resultante.
3) Llenar un vector de 20 elementos, imprimir la posicin y el valor del elemento mayor
almacenado en el vector. Suponga que todos los elementos del vector son diferentes.
4) Almacenar 500 nmeros en un vector, elevar al cuadrado cada valor almacenado en el
vector, almacenar el resultado en otro vector. Imprimir el vector original y el vector
resultante.
5) Almacenar 300 nmeros en un vector, imprimir cuantos son ceros, cuantos son
negativos, cuantos positivos. Imprimir adems la suma de los negativos y la suma de los
positivos.
6) Almacenar 150 nmeros en un vector, almacenarlos en otro vector en orden inverso al
vector original e imprimir el vector resultante.
7) Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno.
Hacer un algoritmo que escriba la palabra Iguales si ambos vectores son iguales y
Diferentes si no lo son. Sern iguales cuando en la misma posicin de ambos vectores
se tenga el mismo valor para todos los elementos.
8) Se tiene el vector A con 100 elementos almacenados. Disee un algoritmo que escriba
SI si el vector esta ordenado ascendentemente o NO si el vector no esta ordenado
9) Disee un algoritmo que lea un nmero cualquiera y lo busque en el vector X, el cual
tiene almacenados 80 elementos. Escribir la posicin donde se encuentra almacenado el
nmero en el vector o el mensaje NO si no lo encuentra. Bsqueda secuencial.
10) Disee un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique
el primer elemento de A con el ultimo elemento de B y luego el segundo elemento de A
por el diecinueveavo elemento de B y as sucesivamente hasta llegar al veinteavo
elemento de A por el primer elemento de B. El resultado de la multiplicacin
almacenarlo en un vector C.
11) Disee un algoritmo que almacene en un vector llamado FIB[100] los 100 primeros
nmeros de la serie fibonacci.
Fundamentos de programacin
Guinto 2011
54
12) Hacer un algoritmo que almacene nmeros en una matriz de 5 * 6. Imprimir la suma de
los nmeros almacenados en la matriz.
13) Hacer un algoritmo que llene una matriz de 10 * 10 y determine la posicin [renglon
,columna] del numero mayor almacenado en la matriz. Los nmeros son diferentes.
14) Hacer un algoritmo que llene una matriz de 7 * 7. Calcular la suma de cada rengln y
almacenarla en un vector, la suma de cada columna y almacenarla en otro vector.
15) Hacer un algoritmo que llene una matriz de 20 * 20. Sumar las columnas e imprimir
que columna tuvo la mxima suma y la suma de esa columna.
16) Hacer un algoritmo que llene una matriz de 5 * 5 y que almacene la diagonal principal
en un vector. Imprimir el vector resultante.
17) Hacer un algoritmo que llene una matriz de 10 * 10 y que almacene en la diagonal
principal unos y en las dems posiciones ceros.
18) Hacer un algoritmo que llene una matriz de 6 * 8 y que almacene toda la matriz en un
vector. Imprimir el vector resultante.
19) Hacer un algoritmo que llene una matriz de 8 * 8, que almacene la suma de los
renglones y la suma de las columnas en un vector. Imprimir el vector resultante.
20) Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los nmeros
almacenados son ceros, cuantos son positivos y cuantos son negativos.
21) Disee un pseudocdigo que escriba el nmero de la hilera cuya suma sea mayor que
las dems hileras. Suponga que todas las hileras suman diferente cantidad.
22) Se tiene almacenada la matriz M (50,5) la cul contiene la informacin sobre las
calificaciones de la materia de DISEO DE ALGORITMOS. Disee un algoritmo que
imprima:
A).- Cantidad de alumnos que aprobaron la materia.
B).- Cantidad de alumnos que tienen derecho a nivelacin.
C).- El (o los) numero (s) de control de lo(s) alumno(s) que haya (n) obtenido la mxima
calificacin final.
Fundamentos de programacin
Guinto 2011
55
23) El departamento de polica de la ciudad de Tuxtepec ha acumulado informacin
referente a las infracciones de los lmites de velocidad durante un determinado periodo
de tiempo. El departamento ha dividido la ciudad en cuatro cuadrantes y desea realizar
una estadstica de las infracciones a los lmites de velocidad en cada uno de ellos. Para
cada infraccin se ha preparado una tarjeta que contiene la siguiente informacin:
- numero de registro del vehculo;
- cuadrante en el que se produjo la infraccin
- limite de velocidad en milla por hora
Disee un diagrama para producir 2 informes; el 1o. Que contiene una lista de la multa de
velocidades recolectadas, donde la multa se calcula como la suma del costo de la corte
($20,000) mas $ 1,250 por cada mph que exceda la velocidad limite. Prepare una tabla con
los siguientes resultados:
INFRACCIONES A LOS LIMITES DE VELOCIDAD
Registro del Velocidad Velocidad Multa
vehculo registrada (MPH) limite
Este informe debe ser seguido de un segundo en el cual se proporcione un anlisis de las
infracciones por cuadrante. Para cada uno de los 4 cuadrantes mencionados, debe darse el
nmero de infracciones y la multa promedio.
24) El dueo de una cadena de tiendas de artculos deportivos desea controlar sus ventas
por medio de una computadora. Los datos de entrada son:
a) El nmero de la tienda (1 a 50)
b) Un nmero que indica el deporte del articulo (1 a 20)
c) El costo del artculo.
Hacer un pseudocdigo que escriba al final del da lo siguiente:
1. Las ventas totales en el da para cada tienda
2. Las ventas totales para cada uno de los deportes.
3. Las ventas totales de todas las tiendas.
Fundamentos de programacin
Guinto 2011
56
VII. MANEJO MODULAR Y RECURSIN
OBJETIVO: El alumno conocer los conceptos de mdulo y de recursin, y disear
algoritmos haciendo uso de mdulos.
VII.1 Introduccin. La programacin modular se caracteriza por la subdivisin de un
problema en mdulos independientes (divide y triunfars), que pueden ser diseados y
construidos de manera tal que sus modificaciones no afecten a los dems mdulos. De este
modo, un problema complejo se puede dividir en pequeos problemitas. Estos problemitas
se conocen como Mdulos y a los programas implementados con algn lenguaje de
programacin se les llama subprogramas (procedimientos y/o funciones). Entonces, los
mdulos que se pueden encontrar son de dos tipos:
1. Procedimientos
2. Funciones
Para el caso de diseo, a estos mdulos se les denomina subalgoritmos y funciones o
procedimientos y funciones.
Un mdulo es una parte independiente que ejecuta una actividad o tarea Es un
segmento, una rutina, una subrutina, un subalgoritmo, un conjunto de instrucciones, un
conjunto de sentencias, etc., que hace algo.
Caractersticas:
Puede transferir temporalmente el control a otro mdulo.
Cada mdulo debe devolver el control al mdulo del cual fue llamado.
Los resultados producidos por un mdulo pueden ser utilizados por otro, cuando se
transfiere el control a este ltimo.
Dado que los mdulos son independientes, diferentes diseadores y/o
programadores pueden trabajar simultneamente.
Etc.
VII.2 Funciones. En programacin, una funcin es un conjunto de instrucciones que
realizan una actividad o tarea. Utiliza datos o argumentos para llevar a cabo operaciones y
generar un resultado.
Datos(s)
Resultado
Anteriormente vimos que los lenguajes de programacin cuentan con funciones internas,
desarrolladas por los diseadores de esos lenguajes. Algunas de ellas son:
Funcin
Fundamentos de programacin
Guinto 2011
57
sin(X)
cos(X)
sqrtT(X)
Etc.
Sin embargo, con la mayora de los lenguajes de programacin es posible declarar y definir
funciones especiales que deseen utilizar los diseadores de algoritmos y/o programadores.
Para la definicin de una funcin, en el caso de diseo de algoritmos, podemos hacerlo de
la siguiente manera:
TipoDatoRegresa FUNCION NombreFuncin(Tipo: Param1, Tipo Param2)
Tipo: VariablesLocales
Instruccin(es)
Regresar(EXP)
Termina funcin NombreFuncin
NOTA: La palabra FUNCION es opcional
Ejemplos:
1. Definir una funcin para obtener 3X
2
+ 6X 3
Real FUNCION F(Real: X)
Regresar(3 * X ^ 2 + 6 * X 3)
Termina funcin F
2. Defina una funcin para obtener
=
N
i
i
X
1
Real Suma (Real: X[ ], Entero: N)
Real: SUM = 0
Entero: I
Repetir para I = 1,2,,N
SUM = SUM + X[ I ]
Termina repetir
Regresar(SUM)
Termina funcin Suma
Nota: Observe que la palabra FUNCION es opcional y, por lo que, en la definicin de esta
funcin se decidi no ponerla.
Fundamentos de programacin
Guinto 2011
58
VII.3. Procedimientos. En computacin, un procedimiento es un conjunto de instrucciones
para hacer algo. Generalmente, un procedimiento recibe datos y se puede decir que regresa
nada.
Para la definicin de un procedimiento, en el caso de diseo de algoritmos, podemos
hacerlo de la siguiente manera:
PROCEDIMIENTO NombreProcedimiento(Tipo: Param1, Tipo Param2)
Tipo: VariablesLocales
Instruccin(es)
Regresar(EXP)
Termina Procedimiento NombreProcedimiento
NOTAS:
1. Obsrvese que no hay TipoDatoRegresa
2. La palabra PROCEDIMIENTO es opcional
Ejemplos: ver en clases
Fundamentos de programacin
Guinto 2011
59
VII.4 Recursividad
Recursividad es la definicin de un objeto en trminos de un caso ms simple de si mismo.
En programacin, una funcin recursiva es uan funcin que se llama a si misma.
Ejemplo 1: El factorial de un nmero n se define como el producto de todos los enteros
entre 1 y n, ambos incluidos. As, el factorial de 4 es igual a 1 x 2 x 3 x 4 = 24. Por
definicin, el factorial de 0 es igual a 1.
Con frecuencia se usa la notacin n! para indicar el factorial de un nmero n. Esto es:
3! = 1 x 2 x 3 = 3 x 2 x 1 = 6
En consecuencia:
1, si n = 0
n! =
n * (n - 1) * (n - 2) ** 1, si n > 0
De este modo, un algoritmo iterativo para determinar n! puede ser el siguiente:
aceptar(n)
prod = 1
repetir para x = n, n-1, n 2, , 1
prod = prod * x
terminar repetir
visualizar(prod)
Observando la definicin de factorial, es obvio que para cualquier n > 0, n! = n * (n 1)!
Esto es:
1, si n = 0
n! =
n * (n - 1)!, si n > 0
Entonces, una funcin recursiva que permita obtener el factorial de n se presenta a
continuacin:
Fundamentos de programacin
Guinto 2011
60
Real FUNCION factorial(entero: n)
si n = 0
regresar( 1 )
si no
regresar(n * factorial(n 1))
termina si
termina funcin factorial
Fundamentos de programacin
Guinto 2011
61
Ejemplo 2: La bsqueda binaria
Considrese un vector en el cual se han colocado los datos en orden ascendente. Al proceso
que se usa para encontrar una entrada en el arreglo se llama bsqueda. Si el arreglo slo
contiene un elemento, el problema es trivial; en otro caso, comprese el elemento que se
busca con el elemento central del arreglo. Si son iguales, se ha concluido con xito la
bsqueda. Si el elemento central es mayor, se repite el proceso de bsqueda en la primera
mitad del arreglo; en caso contrario, se repite el proceso con la segunda mitad. Obsrvese
que cada vez que se realiza una comparacin, se divide en dos el nmero de elementos que
an se usan para la bsqueda. Este mtodo se llama bsqueda binaria, debido a que el
arreglo donde se realiza la bsqueda se divide en dos parte iguales.
Obsrvese que, de manera natural, se defini la bsqueda binaria en forma recursiva. Si el
elemento que se busca no es igual al central del arreglo, las instrucciones indican buscar en
un subarreglo, utilizando el mismo mtodo. As, el mtodo de bsqueda se define en
trminos de s mismo, con un arreglo ms pequeo como entrada.
Finalmente, se presenta una funcin recursiva para la bsqueda binaria:
Algoritmo: Funcin_Busbin
Objetivo: Realizar una bsqueda binaria en un arreglo unidimensional ordenado.
Realiz: Dr. Guinto
Fecha:______
Entero FUNCION Busbin(Real: que, Entero: inicio, Entero: fin, Real: x[])
Entero: medio
si inicio > fin
regresar( -1 )
si no
medio = ( inicio + fin ) / 2
si que = x[ medio ] entonces
regresar( medio )
si no
si que < x[ medio ] entonces
fin = medio 1
si no
inicio = medio + 1
termina si
regresar( Busbin(que, inicio, fin, x[ ] )
termina si
termina si
termina Busbin
Fundamentos de programacin
Guinto 2011
62
VIII. ARCHIVOS
VIII.1 Introduccin
De manera general, un archivo es una coleccin u organizacin fsica, o lgica, de datos. Es
la unidad principal de almacenamiento secundario de un computador. Un archivo es
utilizado por el sistema operativo para distinguir entre un conjunto de datos o informacin y
otro. Todo archivo posee un nombre. Cada archivo contiene cdigos y otros datos o
informacin.
Los archivos de datos se pueden almacenar en diferentes dispositivos de memoria
secundaria.
VIII.2 Clasificacin de archivos
Existen diferentes formas de cmo clasificar a los archivos:
A) Por su acceso. Existen dos categoras generales de archivos
A.1) Secuenciales. Bsqueda en serie de registros en un archivo, hasta encontrar el
que se busca.
A.2) Directos o aleatorios. Los registros tienen una ubicacin especfica. La
ubicacin de cualquiera de ellos se puede determinar sin una bsqueda excesiva.
B) Por su contenido. Dependiendo de la aplicacin se pueden clasificar en:
B.1) General de datos
B.2) De ndices
B.3) De tablas
B.4) De textos
B.5) De imgenes
B.6) Etc.
C) Por su forma de procesamiento:
C.1) De entrada
C.2) De Salida
C.3) Intermedio/De proceso
D) Etc.
VIII.3 Composicin de los archivos de datos.
En un sistema de informacin, un archivo es un conjunto de registros. A su vez, los
registros contienen campos especficos de datos. Aunque cada registro puede contener
caractersticas comunes a otros registros del archivo, es una entidad distinta y especfica,
generalmente que se identifica por un cdigo nico. Hay varias tcnicas para disponer los
Fundamentos de programacin
Guinto 2011
63
registros dentro de los archivos, de acuerdo con las necesidades especficas de
procesamiento e informacin.
VIII.4 Definicin de registros
Para el diseo de algoritmos, un registro puede definirse de la siguiente manera:
Identificador_de_Registro = REGISTRO
Tipo1: Identificador_de_Campo1
Tipo2: Identificador_de_Campo2
Tipo3: Identificador_de_Campo3
Tipon: Identificador_de_Campon
Fin de definicin de registro Identificador_de_Registro
Ejemplos:
a) Fecha = REGISTRO
Entero: Dia
Entero: Mes
Entero: Ao
Fin de definicin de registro Fecha
b) Domicilio = REGISTRO
Cadena de caracteres: Calle
Entero: Numero
Cadena de caracteres: Colonia
Entero sin signo: CodigoPostal
Cadena de caracteres: Ciudad
Cadena de caracteres: Pais
Fin de definicin de registro Domicilio
c) Etc.
VIII.5 Declaracin de variables tipo registro
La declaracin de variables tipo registro se realiza de igual manera a como se declara
una variable simple, ejm:
Recordemos que una variable N, de tipo entero, se declara de la siguiente manera:
Entero: N
De este modo, para declarar las variables F1 y F2, de tipo Fecha, y la variable Dom, de
tipo Domicilio, hacemos lo siguiente:
Fundamentos de programacin
Guinto 2011
64
Fecha: F1,F2
Domicilio: Dom
VIII.6 Acceso a los campos de un registro
Como un registro es un dato estructurado, no puede accesarse directamente como un
todo, sino que debe especificarse qu elemento (campo) del registro interesa. Para ello,
se sigue la siguiente sintaxis:
Variable_registro.Identificador_de_Campo
Donde: Variable_registro es una variable de tipo registro e Identificador_de_Campo es
un identificador del campo deseado.
Ejemplos:
A) Para leer los tres campos de la variable F1, de tipo Fecha (ver definicin del registro
Fecha y declaracin de variable F1):
Leer(F1.Dia,F1.Mes,F1.Ao)
B) Para Imprimir algunos campos de la variable Dom, de tipo Domicilio (ver
definicin del registro Domicilio y declaracin de variable Dom):
Imprimir(Dom.Calle,Dom.Numero,Dom.Colonia,Dom.CodigoPostal)
C) Para asignar datos
A.Saldo = A.Saldo + Algo
N.Nombre = Juan Prez
C.Moroso = V
Fundamentos de programacin
Guinto 2011
65
BIBLIOGRAFA
1. Joyanes Aguilar, Fundamentos de programacin, Mc Graw Hill
2. Cair, O., Metodologa de la programacin, Mc Graw Hill
3. N. Krinitski, Algoritmos a nuestro alrededor, Mir Mosc.
4. Alcalde y Morera, Metodologa de la programacin, Mc Graw Hill.
5. Bores, R. y Romn, R., Computacin, metodologa, lgica computacional y
programacin, Mc Graw Hill.
6. Deitel, H. y Deitel P., Cmo programar en C++, Pearson Prentice Hall
7. Joyanes, L. y Castn, H., C++, Iniciacin y referencia
8. Barkakati, N., Turbo C++, Bible, Sams
9. Niklaus Wirth, Algoritmos + Estructuras de datos = Programas, MPF-PC
10. Harel D., Algorithmics the sipirit of computing, Addison Wesley
11. Base S., Computer Algorithms: Introduction to desing and analisis, Addison Wesley.
Co.
12. Maduer U., Introduction to algorithms: A creative aproach, addison wesley Co.
13. Lpez Romn, programacin estructurada: un enfoque algortmico, Alfa Omega
14. Davara Rodrguez et al., Pearson Educacin, Prentice Hall, Addison Wesley.
15. Tremblay and Bunt, Introduccin a la ciencia de las computadoras, enfoque
algoritmico, Mc Graw Hill.
16. Rumbaugh, Jacobson y Booch, El lenguaje unificado de modelado: manual de
referencia, Addison Wesley.