Professional Documents
Culture Documents
verificada
DAI
Firmado
digitalmente por
DAI
Nombre de
reconocimiento
(DN): cn=DAI,
o=INACAP
Fecha:
2002.03.26
09:51:53 -04'00'
INACAP
MANUAL
ELEMENTOS DE PROGRAMACION
MARZO DEL 2002
Programa de Estudios:
INACAP
INDICE
PGINA
10
EJERCICIOS DE LA UNIDAD:
11
12
13
15
16
19
20
21
22
28
29
31
34
36
38
40
43
46
47
49
52
54
59
60
60
INACAP
64
66
71
74
74
77
UNIDAD 5: ARCHIVOS.
CAPITULO 5.1: REGISTRO
OPERACIONES CON REGISTROS
CAPITULO 5.2: VECTOR Y REGISTRO
81
81
83
87
87
91
INACAP
Entender el problema.
Idear un plan.
Realizar el plan.
Mirar hacia atrs.
INACAP
Metodologa Polya
1. ENTENDER EL PROBLEMA
Primero. Usted tiene que entender el problema:
9 Qu es lo desconocido?
9 Cules son los datos?
9 Cul es la condicin?
9 Es posible satisfacer la condicin?
9 La condicin es suficiente para determinar lo desconocido?, Es escasa?,
Es redundante?, Es contradictoria?.
9 Trace una figura e introduzca la notacin conveniente.
9 Separa la condicin en varias partes. Si Ud. puede escribirlas, entonces
contine.
2. IDEAR UN PLAN
En segundo lugar. Encuentre la conexin entre los datos y lo desconocido. Usted
puede verse obligado a considerar problemas auxiliares si una conexin inmediata
no puede ser encontrada. Usted debe obtener eventualmente un plan de la
solucin.
9 Usted lo ha visto antes?. Usted ha visto el mismo problema en una
forma levemente diferente?.
9 Usted sabe de algn problema relacionado?. Usted conoce un teorema
que podra ser til?.
9 Est frente a algo completamente desconocido!. Intente pensar en un
problema familiar que tenga alguna parte igual o similar.
9 Es un problema relacionado con otro solucionado antes. Podra usted
utilizarlo?. Podra usted utilizar su resultado?. Podra usted utilizar su
mtodo?. Debe usted introducir un cierto elemento auxiliar para hacer su
uso posible?
9 Podra usted exponer el problema en forma modificada?. Podra usted
todava exponerlo en forma modificada diferentemente?. Vaya de nuevo a
definiciones para un nuevo plan sobre estas nuevas definiciones.
INACAP
1.
2.
3.
4.
Mire,
Planee,
Haga y
Verifique.
INACAP
EJEMPLO :
A un empleado de una empresa se le cancela como sueldo base es $520.000. Cul es
el sueldo lquido del empleado si los descuentos legales son de a un 20%?.
MIRE: Entienda el problema.
# Lea Cuidadosamente El Problema.
Se desea obtener el sueldo lquido de un empleado para lo cual se necesita
conocer su sueldo base, los descuentos legales y alguna formula relacionada con
el problema tal como Sueldo Lquido = Sueldo Base Sueldo Base * 20% u otra
formula podra ser Sueldo lquido = Sueldo Base * 80%. Una vez calculado,
escribir el resultado.
7
INACAP
INACAP
Los espacios en blanco en la presentacin de solucin hace posible para el ojo y mente
seguir la solucin fcilmente. El espaciado es fcil de usar. El espaciado es una
herramienta reconocida en la comunicacin escrita efectiva. En la comunicacin verbal, el
espacio blanco es conocido como una pausa.
Finalmente una sugerencias importantes:
) Enumerar qu se da y qu es desconocidos y a partir de ello determinar la
respuesta.
INACAP
DISPOSITIVO
DE
ENTRADA
DISPOSITIVO
DE
SALIDA
PROCESAMIENT0
DATO
INFORMACION
DATOS
MEMORIA
PRINCIPAL
DISPOSITIVO
EXTERNO
MEMORIA
PRINCIPAL
PROCESO
RESULTADO
10
INACAP
MEMORIA
PRINCIPAL
RESULTADO
DISPOSITIVO
EXTERNO
EJERCICIOS:
Crear grupos de trabajos de 6 integrantes y efectuar los siguientes procesos
manualmente.
1.
2.
3.
4.
Para las siguientes situaciones indicar cual(es) corresponden a los datos, cual sera el
proceso y el resultado o la informacin.
a. El promedio de las edades de los 30 alumnos de un curso es de 22 aos.
Datos:
______________________________________________
Proceso:
______________________________________________
Informacin: ______________________________________________
b. En una agroindustria a un productor por 2 toneladas de poroto verde se le
cancelaron 4 millones de peso.
Datos:
______________________________________________
Proceso:
______________________________________________
Informacin: ______________________________________________
c. Para cercar un jardn de 3 metros de largo por 5 metros de ancho se
necesitaron 16 metros de alambre.
Datos:
______________________________________________
Proceso:
______________________________________________
Informacin: ______________________________________________
11
INACAP
Unida de
Control
Unidad
Arit.-Log.
Dispositivos
de Salida
Memoria
Dispositivos de Entrada: Como su nombre lo indica, sirven para introducir datos a la
computadora para su proceso. Los datos se leen de los dispositivos de entrada y se
almacenan en la memoria central o interna. Ejemplos: teclado , scanners (digitalizadores
de rastreo), mouse (ratn), trackball (bola de ratn estacionario), joystick (palancas de
juego), lpiz ptico, etc.
Dispositivos de Salida: Regresan los datos procesados que sirven de informacin al
usuario. Ejemplo: monitor, impresora.
La Unidad Central de Procesamiento (C.P.U) se divide en dos:
Unidad de control
Unidad Aritmtico - Lgica
Unidad de Control: Coordina las actividades de la computadora y determina que
operaciones se deben realizar y en que orden; as mismo controla todo el proceso de la
computadora.
Unidad Aritmtico - Lgica: Realiza operaciones aritmticas y lgicas, tales como suma,
resta, multiplicacin, divisin y comparaciones.
La memoria de la computadora se divide en dos:
1. Memoria Central o Interna
2. Memoria Auxiliar o Externa
Memoria Central (interna): La CPU utiliza la memoria de la computadora para guardar
informacin mientras trabaja con ella; mientras esta informacin permanezca en memoria,
12
INACAP
la computadora puede tener acceso a ella en forma directa. Esta memoria construida
internamente se llama memoria de acceso aleatorio (RAM).
La memoria interna consta de dos reas de memoria:
La memoria RAM (Random Access Memory): Recibe el nombre de memoria principal o
memoria del usuario, en ella se almacena informacin solo mientras la computadora esta
encendida. Cuando se apaga o arranca nuevamente la computadora, la informacin se
pierde, por lo que se dice que la memoria RAM es una memoria voltil.
La memoria ROM (Read Only Memory): Es una memoria esttica que no puede
cambiar, la computadora puede leer los datos almacenados en la memoria ROM, pero no
se pueden introducir datos en ella, o cambiar los datos que ah se encuentran; por lo que
se dice que esta memoria es de solo lectura. Los datos de la memoria ROM estn
grabados en forma permanente y son introducidos por el fabricante de la computadora.
Memoria Auxiliar (Externa): Es donde se almacenan todos los programas o datos que el
usuario desee. Los dispositivos de almacenamiento o memorias auxiliares (externas o
secundarias) mas comnmente utilizados son: cintas magnticas y discos magnticos.
EJERCICIOS:
1. Indique que partes del cuerpo humano que poseen analogas con:
a. Unidad de entrada:
_______________________________________________________________
b. Unidad de salida:
_______________________________________________________________
c. Memoria principal:
_______________________________________________________________
d. Unidad aritmtica y lgica:
_______________________________________________________________
e. Unidad central de proceso:
_______________________________________________________________
2. La siguiente ilustracin es una representacin conceptual de una memoria, cuyas
direcciones estn representadas por variables y los contenidos son los ilustrados.
34
12
45
-9
13
106
56
20
80
13
INACAP
14
INACAP
Software
INACAP
5.3.
Requerimientos
perifricos)
fsicos
(Servidores,
computadoras,
16
INACAP
Ejercicios:
14
-9
130
16
-56
-4
-8
2. Para las siguientes situaciones identifique la etapa o fase del proceso en la resolucin
de un programa.
a. Para un problema dado, que haremos para llegar a una solucin correcta: esta
situacin corresponde a la etapa
_______________________________________________________________
17
INACAP
18
INACAP
19
INACAP
Ejemplo:
20
INACAP
Ejemplo
hola
Punto_Final
5puntos
$punto3
Punto/2
Punto1
.P4
Vlido
Vlido
No vlido, comienza con un nmero
Vlido
Vlido
Valido
No vlido, comienza con el carcter .
2.Tipo: El tipo se refiere a la forma del dato, esto puede ser: de carcter (char),
numrico (real o entero), fecha, cadena de caracteres (string), booleano (lgico, es
decir, verdadero o falso).
Ejemplo:
Si
A=12,
B=3.5,
C= hola, D=S,
tipo:
A: entero
B: real
C: string o cadena
D: char
3.Valor: El valor est directamente relacionado con el tipo.
Ejemplo
Si las siguientes variables son declaradas como:
X: entero, debe almacenar un valor entero, es decir cualquier nmero del conjunto Z
H: boolena, debe almacenar un valor lgico es decir, Verdadero o falso
Z: real, debe almacenar cualquier nmero del conjunto de los reales (R)
P: char, debe almacenar slo un carcter de cualquier tipo
F: String, debe almacenar una cadena de caracteres, desde dos caracteres o ms
caracteres.
21
INACAP
Variables: Las variables son objetos que poseen un valor que puede ir cambiando o
ser modificado a lo largo de la ejecucin del programa.
Expresiones: Las expresiones son la representacin de un clculo necesario para
la obtencin de un resultado. En informtica existen tres tipos de expresiones:
a) Numricas: Generan un resultado numrico y se construyen
mediante operadores aritmticos: Ejemplo PI*4.15+X
b) Alfanumricas: Resultados alfanumricos, se construyen
mediante operadores alfanumricos: Ejemplo N=Juan
Don+N=Don Juan
c) Booleanos: Resultados verdaderos o falso, se construyen
mediante operadores relacionales y lgicos: Ejemplo A>O y B<5.
Operadores: Sirven para la construccin de expresiones. La presente tabla muestra
su respectiva clasificacin.
ARITMETICOS
*
/
MOD
+
-
POTENCIA
PRODUCTO
DIVISIN
RESTO DE LA DIVISIN ENTERA
SUMA
RESTA O SIGNO NEGATIVO
ALFANUMRICO
+
=
CONCATENACIN
ASIGNACIN
RELACINALES
=
<
<=
>
>=
<>
IGUAL
MENOR QUE
MENOR O IGUAL QUE
MAYOR QUE
MAYOR O IGUAL QUE
DISTINTO A
LGICOS
NOT
AND
OR
NEGACIN
Y (CONJUNCION)
O (DISYUNCION)
22
INACAP
a) ( )
b) ^
c) *, /, mod
d) +, -
Parentesis
Exponenciacin
Multiplicacin, divisin, modulo.
Suma y resta.
Los operadores en una misma expresin con igual nivel de prioridad se evalan de
izquierda a derecha.
Ejemplos:
1.Observe el siguiente calculo respetando las prioridades
4 + 2 * 5 = 14
23 * 2 / 5 = 9.2
46 / 5
3 + 5 * (10 - (2 + 4))
3 + 5 * (10 - 6)
3.5 + 5.09 - 140 / 40
3.5 + 5.09 - 3.5
2.1 * (1.5 + 3.0 * 4.1)
= 9.2
= 23
=23
= 5.09
= 5.09
= 28.98
M+
N
= M + N / (P-Q)
PQ
23
INACAP
a)
M
+ 4 = M/N+4
N
b)
M +N
= (M+N) / (P-Q)
PQ
N
P = (P+N/P) / (Q-R/5)
R
Q
5
P+
c)
Operadores Alfanumricos
La operacin mas utilizado es la concatenacin representada por el signo +; La
concatenacin no es mas que la unin de caracteres o cadena de caracteres,
transformndola de este modo a una sola cadena.
Ejemplo:
Observe las siguientes concatenaciones
a) 12 + 12 = 1212
b) EL RESULTADO + ES= EL RESULTADO ES
c) METODO+LOGICO = METODOLOGICO
d) 123+.24-+A = 123.24-A
Operadores Relacinales: Se utilizan para establecer una relacin entre dos valores.
Compara estos valores entre s del mismo tipo y esta comparacin produce un resultado
verdadero o falso, tienen el mismo nivel de prioridad en su evaluacin.
Ejemplos:
Si
a = 10,
a+b>c
a-b<c
a-b=c
a*b<>c
b = 20,
c = 30
Falso
Verdadero
Falso
Verdadero
Ejemplos no lgicos:
a<b<c
10 < 20 < 30
24
INACAP
< 30
Operadores Lgicos y las proposiciones: Los operadores lgicos, permiten entre otras
cosas resolver proposiciones, donde llamaremos proposiciones a toda expresin que
tenga un sentido y de la cual se puede decir que es verdadera o falsa. Esta es llamada
lgica proposicional.
Ejemplo:
a) La quinta regin se caracteriza por ser zona minera (Esta proposicin es falsa).
b) Cmo se resuelve este ejercicio? (Esta no es una proposicin)
c) El caballo blanco de Napolen es blanco (Esta proposicin es verdadera).
Las proposiciones pueden ser nominadas con algunas letras tales como p,q,r, etc. Las
cuales pueden ser unidas por conectivos lgicos, dando origen a una expresin lgicas.
Los operadores lgicos ms utilizado en la programacin es la negacin (not), los
conectivos and (y) or (o). Su tablas de verdad son:
OPERADOR NO (NOT)
P
Not P
1 (V)
0 (F)
0 (F)
1 (V)
OPERADOR Y (AND)
P
P AND Q
1 (V)
1 (V)
1 (V)
1(V)
0 (F)
0 (F)
0 (F)
1 (V)
0 (F)
0 (F)
0 (F)
0 (F)
OPERADOR O (OR)
P
25
P OR Q
INACAP
1 (V)
1 (V)
1 (V)
1 (V)
0 (F)
1 (V)
0 (F)
1 (V)
1 (V)
0 (F)
0 (F)
0 (F)
Ejemplos:
Si
a=10,
b=20,
es:
(a < b) and (b < c)
(10<20) and (20<30)
V and
F
F
Prioridad de los Operadores Lgicos
a) Not
b) And
c) Or
NO
Y
O
()
^
*, /, Mod, Not
+, -, And
>, <, > =, < =, < >, =, Or
Parntesis
Exponenciacin
Multiplicacin, Division, Modulo, No
Suma, Resta, Y
Operadores de Relacin, O
Ejemplos:
1. Si a = 10,
a)
b = 12,
c = 13,
d =10
INACAP
F
b)
c)
and
F
Observe los siguientes ejemplos:
a) ]12,56[
27
INACAP
EJERCICIOS:
1.Calcular el valor de las siguientes expresiones aritmticas:
a)
b)
c)
d)
e)
f)
g)
21 mod 7
9\2+15 mod 2
(3+6)/2+1.5
32\3^2
2*3+5*6/2*3
(25-7*3)^3/4*5
10+38/(14-(10-12/(2*3)))
3 x y 2 xy 2 x
+
+
z
z 1 y
28
INACAP
b)
b
d
h+i
j+k
e
f g
Smbolo
Funcin
Terminal (marca el inicio, final o una
parada necesaria realizada en la
ejecucin del programa.
Operacin de E/S en general (utilizada
para mostrar la introduccin de datos
desde un perifrico a la memoria del
ordenador y la salida de resultados
desde la memoria del ordenador a un
perifrico.
Proceso u operacin en general
(utilizado para mostrar cualquier tipo
de operacin durante el proceso de
elaboracin de los datos depositados
en la memoria).
Si
SI
No
No
Flechas indicadoras de la direccin del
flujo de datos
Lnea conectora, tambin llamada
lnea de flujo de datos (permite la
conexin entre los diferentes smbolos
utilizados en el diseo)
Conector (ste smbolo es utilizado
29
INACAP
Ejemplo:
Al recorrer el siguiente diagrama de flujo, considerando a Base=5, Altura=8. El resultado
es la impresin del valor de la variable Area que es 20.
inicio
Base,
altura
Area=(Base*Altura)/2
Area
fin
N1,N2,N3
P=(N1+N2+N3)/3
P<3.9
SI
NO
Reprobado
Aprobado
30
INACAP
Fin
Recomendaciones para el diseo de Diagramas de Flujo
Se deben usar solamente lneas de flujo horizontales y/o verticales.
Se debe evitar el cruce de lneas utilizando los conectores.
Se deben usar conectores solo cuando sea necesario.
No deben quedar lneas de flujo sin conectar.
Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y
de izquierda a derecha.
Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso
de muchas palabras.
Ejercicios:
a) Crear un algoritmo en diagrama de flujo que al leer un nmero entero positivo
(asuma que el nmero cumple las condiciones), imprimir PAR si el nmero es
par e IMPAR si es impar.
b) Supongamos que el I.P.C. de los meses de Febrero y Marzo fueron 0.3% y 0.6%
respectivamente. Crear un algoritmo en diagrama de flujo que muestre el valor
de un producto actualizado y la diferencia de precio entre el mes de febrero y
Marzo.
c) Confeccione un algoritmo en diagrama de flujo que al leer el neto de una factura,
calcule el I.V.A. y de cmo salida el total de la factura.
d) Crear un algoritmo en diagrama de flujo que al ingresar dos nmeros imprima el
mayor de ellos o IGUALES si son iguales.
e) Confeccionar un algoritmo en diagrama de flujo que imprimir el salario reajustado
de un trabajador segn las siguientes categoras.
f)
b.1.
36000 - 60.000
20%
b.2.
60001 80000
15%
b.3.
80001 - 120000
10%
b.4.
120001 y ms 8%
31
INACAP
Inicio
E
V
E<15
Infantil
F
Juvenil
F
E>=21
Adulto
F
Fin
32
INACAP
Salida
28
15
21
69
33
INACAP
ESTRUCTURAS BASICAS
Asignacin:
Permite
realizar
clculos Asignacin:
evaluando una expresin y depositando su
valor final en un objeto o realizar movimientos
VARIABLE = EXPRESION
de datos de un objeto a otro.
Variable = Expresin
Leer Variable: Toma uno o varios datos desde Leer Variable:
un dispositivo de entrada para almacenarlos
en los objetos cuyo identificador aparece en la
propia instruccin
Leer VARIABLE
Leer Variable
34
INACAP
Ejemplo:
1.
35
INACAP
V
I1,I2,I3, ,In
Si ( CONDICION ) Entonces
I1; I2; I3l; ; In
Fin Si
Ejemplo:
2.
INACAP
37
INACAP
CONDICIO
N
v
I1; I2; I3;
Si ( CONDICION ) Entonces
I1; I2; I3l; ; In
Sino
J1; J2; J3; ; Jn
Fin Si
Ejemplo:
3.
INACAP
Nmero de TV.
Valor unitario de TV.
39
INACAP
V
K1;; Kn
Otro
L1;; Ln
Opcin EXPRESION de
V1 Hacer I1; I2; I3; ; In
V2 Hacer J1; J2; J3; ; Jn
4.
Los siguientes son los valores de los vuelos para la clase turista, segn
regin de destino para, la clase ejecutiva lleva un recargo de $20 000 en
todos los destinos.
Regin Turista
Ejecutiva
40
INACAP
01
02
03
04
05
$100.000
$80.000
$60.000
$50.000
$30.000
$120.000
$100.000
$80.000
$70.000
$50.000
INACAP
Leer(Coddes)
Escribir(Ingrese Clase E:ejecutiva, T:turista)
Leer(Clase)
SW=0
Opcin Coddes de
1 : Hacer
2: Hacer
3: Hacer
4: Hacer
5: Hacer
Regin=Primera Regin
Precio=100 000
Regin=Segunda Regin
Precio=80 000
Regin=Tercera Regin
Precio=60 000
Regin=Cuarta Regin
Precio=40 000
Regin=Quinta Regin
Precio=30 000
Otro Hacer
SW=1
Fin Opcin
Si SW=1 Entonces
Escribir(Error en cdigo de destino)
Sino
Si Clase=E Entonces
Precio=Precio + 20000
Fin Si
Escribir(Nombre, Nombre)
Escribir(Regin Destino, Regin)
Escribir Precio Del Vuelo, Precio)
Fin Si
FIN
42
INACAP
INACAP
Si trabaja mas de 40 horas se le paga $16 por cada una de las primeras 40
horas y $20 por cada hora extra.
11) Un hombre desea saber cuanto dinero se genera por concepto de intereses
sobre la cantidad que tiene en inversin en el banco. El decidir reinvertir los
intereses siempre y cuando estos excedan a $7000, y en ese caso desea saber
cuanto dinero tendr finalmente en su cuenta.
12) Que lea dos nmeros y los imprima en forma ascendente
13) Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber
cuantas caloras consume su cuerpo durante todo el tiempo que realice una
misma actividad. Las actividades que tiene permitido realizar son nicamente
dormir o estar sentado en reposo. Los datos que tiene son que estando dormido
consume 1.08 caloras por minuto y estando sentado en reposo consume 1.66
caloras por minuto.
14) Hacer un algoritmo que imprima el nombre de un articulo, clave, precio original
y su precio con descuento. El descuento lo hace en base a la clave, si la clave es
01 el descuento es del 10% y si la clave es 02 el descuento en del 20% (solo
existen dos claves).
15) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si
se compran tres camisas o mas se aplica un descuento del 20% sobre el total de
la compra y si son menos de tres camisas un descuento del 10%
16) Una empresa quiere hacer una compra de varias piezas de la misma clase a
una fabrica de refacciones. La empresa, dependiendo del monto total de la
compra, decidir que hacer para pagar al fabricante.
Si el monto total de la compra excede de $500 000 la empresa tendr la
capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir
prestado al banco un 30% y el resto lo pagara solicitando un crdito al fabricante.
Si el monto total de la compra no excede de $500 000 la empresa tendr
capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara
solicitando crdito al fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le
pague a crdito.
17) Leer 2 nmeros; si son iguales que los multiplique, si el primero es mayor que
el segundo que los reste y si no que los sume.
18) Leer tres nmeros diferentes e imprimir el numero mayor de los tres.
19) Determinar la cantidad de dinero que recibir un trabajador por concepto de
las horas extras trabajadas en una empresa, sabiendo que cuando las horas de
44
INACAP
trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan
al doble de una hora normal cuando no exceden de 8; si las horas extras exceden
de 8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y el
resto al triple.
20) Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si
este se le asigna como un porcentaje de su salario mensual que depende de su
antigedad en la empresa de acuerdo con la sig. tabla:
Tiempo
Utilidad
Menos de 1 ao
5 % del salario
1 ao o mas y menos de 2 aos
7% del salario
2 aos o mas y menos de 5 aos
10% del salario
5 aos o mas y menos de 10 aos
15% del salario
10 aos o mas
20% del salario
21) En una tienda de descuento se efecta una promocin en la cual se hace un
descuento sobre el valor de la compra total segn el color de la bolita que el
cliente saque al pagar en caja. Si la bolita es de color blanco no se le har
descuento alguno, si es verde se le har un 10% de descuento, si es amarilla un
25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el
cliente deber pagar por su compra. se sabe que solo hay bolitas de los colores
mencionados.
22) El IMSS requiere clasificar a las personas que se jubilaran en el ao de 1997.
Existen tres tipos de jubilaciones: por edad, por antigedad joven y por antigedad
adulta. Las personas adscritas a la jubilacin por edad deben tener 60 aos o mas
y una antigedad en su empleo de menos de 25 aos.
Las personas adscritas a la jubilacin por antigedad joven deben tener menos de
60 aos y una antigedad en su empleo de 25 aos o mas.
Las personas adscritas a la jubilacin por antigedad adulta deben tener 60 aos
o mas y una antigedad en su empleo de 25 aos o mas.
Determinar en que tipo de jubilacin, quedara adscrita una persona.
45
INACAP
46
INACAP
CONDICION
Ejemplo:
5.
Escriba un algoritmo que permita obtener la nota final de cada uno de los 20
alumnos de un curso y el promedio general del curso. Para ello, se debe ingresar
el promedio del semestre y la nota del examen de cada alumno, considerando lo
siguiente:
El Promedio General Equivale Al 60% De La Nota Final.
El Examen Equivale Al 40 % De La Nota Final.
47
INACAP
Construya un ejemplo: Este ejemplo considera 3 alumnos pero se puede proyectar para
20.
Alumno
Alu-1
Alu-2
Alu-3
PS
5.0
4.0
3.0
Examen
6.0
5.5
7.0
Nota Final
5.0*0.6 + 6.0*0.4 = 5.4
4.0*0.6 + 5..5*0.4 = 4.6
3.0*0.6 + 7.0*0.4 = 4.6
Suma= 5.4+4.6+4.6=14.6
Promedio= 14.6/3=4,86
Solucin:
SOLUCION
PROGRAMA Notas
VARIABLES
Num : Entero
Sum,Prom,Nota : Real
INICIO
Num = 1
Sum = 0
Mientras ( Num <= 20 ) Hacer
Escribir(Ingrese Promedio Semestral)
Leer (Prom)
Escribir(Ingrese Nota Examen)
Leer(Ex)
Nota = (Prom * 0.6) + (Ex * 0.4)
Sum=Sum + Nota
Escribir(El promedio es: ,Nota)
Num = Num + 1
Fin Mientras
Prom=Sum/20
Escribir(El promedio general del Curso es, Prom)
FIN
48
INACAP
CONDICION
Repetir
I1; I2; I3; ; In
Hasta ( CONDICION )
Ejemplo:
6. Escriba un algoritmo que permita obtener la nota final de cada uno de los 20
alumnos de un
curso y el promedio general del curso. Para ello, se debe ingresar el promedio del
semestre y la nota del examen de cada alumno, considerando lo siguiente:
Se deben Validar las notas.
El Promedio General Equivale Al 60% De La Nota Final.
El Examen Equivale Al 40 % De La Nota Final.
Mire: Entienda el problema
Se necesita calcular la nota final de cada alumno y luego con estas notas calcular el
promedio del curso. Hay que imprimir el promedio de cada alumno y el promedio del
curso.
Determinar lo que se intenta hacer
Hay que ingresar 20 veces el promedio semestral y la nota examen de cada alumno,
adems se debe calcular el promedio del curso.
Identifique los datos importantes
Se debe tener un contador que permita controlar que el proceso se repita 20 veces.
Se debe ingresar el promedio del semestre y la nota del examen.
Planee: Construya un plan
Se debe inicializar un contador con el valor 1.
Leer dentro del ciclo promedio semestral y nota del examen.
49
INACAP
PS
5.0
4.0
3.0
Examen
6.0
5.5
7.0
Nota Final
5.0*0.6 + 6.0*0.4 = 5.4
4.0*0.6 + 5..5*0.4 = 4.6
3.0*0.6 + 7.0*0.4 = 4.6
Suma= 5.4+4.6+4.6=14.6
Promedio= 14.6/3=4,86
Solucin:
PROGRAMA Notas
VARIABLES
Num : Entero
Sum,Prom,Nota : Real
INICIO
Num = 1
Sum = 0
Mientras ( Num <= 20 ) Hacer
Repetir
Escribir(Ingrese Promedio Semestral)
Leer (Prom)
Hasta (Prom>=1 and Prom<=7)
Repetir
Escribir(Ingrese Nota Examen)
Leer(Ex)
Hasta (Prom>=1 and Prom<=7)
50
INACAP
Regin=Primera Regin
Precio=100 000
Regin=Segunda Regin
Precio=80 000
Regin=Tercera Regin
Precio=60 000
Regin=Cuarta Regin
Precio=40 000
Regin=Quinta Regin
Precio=30 000
Fin Opcin
Si Clase=E Entonces
Precio=Precio + 20000
Fin Si
Escribir(Nombre, Nombre)
Escribir(Regin Destino, Regin)
Escribir Precio Del Vuelo, Precio)
FIN
51
INACAP
Vc=Vi Vf In
I1; I2; I3; ; In
Donde:
Vc: Variable de Control.
Vi: Valor Inicial.
Vf: Valor Final.
Inc: Incremento.
Desde Vc= Vi hasta Vf Incremento Inc
Hacer
I1; I2; I3; ; In
Fin desde
Ejemplo:
8. Construir un algoritmo que permita calcular e imprimir el valor de un N
combinatorio.
nCk =
n!
(n k )!*k!
; nk
; n, k
INACAP
Se debe leer n y k.
Validar que n y k sean mayores que cero.
Validar que n sea mayor o igual que k.
Calcular el factorial de n.
Calcular el factorial de k
Calcular el factorial de (n-k)
Multiplicar y almacenar el resultado de los factoriales de n y (n-k)
Dividir y almacenar el factorial de n por el resultado de la multiplicacin.
Imprimir el resultado de la divisin.
Construya un ejemplo:
5C3= ?
5C 3 =
5!=1*2*3*4*5=120
3!=1*2*3=6
120 120
=
= 10
6 * 2 12
Solucin:
PROGRAMA Combinatorio
VARIABLES
I,FN,FK,FD, C: Entero
INICIO
Repetir
Escribir(Ingrese N)
Leer (N)
Escribir(Ingrese K)
Leer (K)
Hasta (K>0 and N>0 and N>=K)
FN=1
Desde I= 1 hasta N hacer
FN=FN*I
Fin desde
FK=1
Desde I=1 hasta K hacer
FK=FK*I
Fin desde
D=N-K
FD=1
Desde I=1 hasta D hacer
FD=FD*I
Fin Desde
C=FN/(FK*FD)
Escribir ( El resultado es, C)
FIN
53
(5-3)!=2!=1*2=2
INACAP
INACAP
COLOR
amarilla
rosa
roja
verde
azul
INACAP
Edad
Descuento
Categora 1
Categora 2
Categora 3
Categora 4
Categora 5
5 - 14
15 - 19
20 - 45
46 - 65
66 en adelante
35 %
25 %
10 %
25 %
35 %
56
INACAP
26) En una granja se requiere saber alguna informacin para determinar el precio
de venta por cada kilo de huevo. Es importante determinar el promedio de calidad
de las n gallinas que hay en la granja. La calidad de cada gallina se obtiene segn
la formula:
calidad = peso de la gallina * altura de la gallina
numero de huevos que pone
Finalmente para fijar el precio del kilo de huevo, se toma como base la siguiente
tabla:
PRECIO TOTAL DE CALIDAD
mayor o igual que 15
mayor que 8 y menor que 15
menor o igual que 8
27) En la Cmara de Diputados se levanta una encuesta con todos los integrantes
con el fin de determinar que porcentaje de los n diputados esta a favor del Tratado
de Libre Comercio, que porcentaje esta en contra y que porcentaje se abstiene de
opinar.
28) Una persona que va de compras a la tienda Enano, S.A., decide llevar un
control sobre lo que va comprando, para saber la cantidad de dinero que tendr
que pagar al llegar a la caja. La tienda tiene una promocin del 20% de descuento
sobre aquellos artculos cuya etiqueta sea roja. Determinar la cantidad de dinero
que esta persona deber pagar.
29) Un censador recopila ciertos datos aplicando encuestas para el ultimo Censo
Nacional de Poblacin y Vivienda. Desea obtener de todas las personas que
alcance a encuestar en un da, que porcentaje tiene estudios de primaria,
secundaria, carrera tcnica, estudios profesionales y estudios de posgrado.
30) Un jefe de casilla desea determinar cuantas personas de cada una de las
secciones que componen su zona asisten el da de las votaciones. Las secciones
son: norte, sur y centro. Tambin desea determinar cual es la seccin con mayor
numero de votantes.
31) Un negocio de copias tiene un limite de produccin diaria de 10 000 copias si
el tipo de impresin es offset y de 50 000 si el tipo es estndar. Si hay una
solicitud de un el empleado tiene que verificar que las copias pendientes hasta el
momento y las copias solicitadas no excedan del limite de produccin. Si el limite
de produccin se excediera el trabajo solicitado no podra ser aceptado. El
empleado necesita llevar un buen control de las copias solicitadas hasta el
57
INACAP
58
INACAP
59
INACAP
INDICE
5
1
10
2
25
3
30
4
45
5
3
6
60
INACAP
b) X[25]:real
61
INACAP
g) I=1
Repita
Escribir(Ingrese un Nmero)
Leer(Num[I])
I=I+1
repita
Escribir (Desea continuar S/N)
Leer(res)
Hasta (res=S) or (res=N)
Hasta (res=N) and (I > 6)
4.Escritura : La operacin de escritura trata de mostrar los valores contenidos en
un vector, ya sea todos sus elementos o algunos. Su formato es:
Escribir(Nombre_vector[ndice] )
Ejemplos
a) escribir(Num[3])
b) Escribir(Num[i])
c) Desde i=1 hasta 6 hacer
Escribir(Num[i])
Fin desde
d) I=1
Mientras I<=60 haga
Escribir(Num[I])
I=I+2
Fin mientras
62
INACAP
Ejemplo:
Escriba un algoritmo en Pseudolenguaje que permita llenar un vector con los diez primero
nmeros naturales.
Mire: Entienda el problema
Se desea almacenar en un vector los diez primeros nmeros naturales, esto significa que
los nmeros a almacenar en el vector son consecutivos partiendo desde el 1 hasta el 10.
Determinar lo que se intenta hacer
Se debe almacenar en la posicin uno el nmero 1, en la posicin dos el nmero 2 y as
sucesivamente hasta llegar a la posicin diez y almacenar el nmero 10.
Identifique los datos importantes
El vector es de tipo entero.
Tiene un tamao de 10.
Los nmeros no son ingresados por el usuario sino que los genera un contador.
Planee: Construya un plan
Declarar el vector como tipo entero con un largo de 10.
Crear un ciclo que permita generar 10 vueltas.
Utilizar un contador tanto para las iteraciones como para indicar el ndice y el nmero a
almacenar.
Asignar a cada posicin de vector su contenido.
Construya un ejemplo:
Al vector solicitado o llamaremos Ent y debe tener la siguiente forma
Indices
1
1
2
2
3
3
4
4
5
5
6
6
7
7
Solucin:
PROGRAMA EJEMPLO
VARIABLES
Ent[10]:Entero
I: Entero
INICIO
Desde I=1 hasta 10 haga
Ent[I]=I
Fin desde
63
8
8
9
9
10
10
INACAP
FIN
Ejercicios:
1. Escriba un algoritmo en Pseudolenguaje que permita generar un arreglo de la
siguiente forma.
X
10
1
Indices
9
2
8
3
7
4
6
5
5
6
4
7
3
8
2
9
1
10
RUT
Sueldo
Imp.
Salud
TOTALES
DATOS:
64
AFP
INACAP
RUT
TOTALES
65
SUELDOS LIQUIDOS
INACAP
66
INACAP
67
INACAP
10
1
23
2
35
3
14
4
25
5
68
6
72
7
..
..
205
100
Nom
Indices
Harina azucar
1
2
Fideos
3
salsa
4
Arroz
5
aceite
6
Solucin:
PROGRAMA ejemplo
VARIABLES
ele: entero
i : entero
INICIO
Escribir(ingrese el cdigo del producto a buscar)
Leer(ele)
i=1
mientras((i<100) and (Cod[i]<>ele)
i=i+1
fin mientras
Si (Cod[i]=ele) entonces
Escribir(el nombre del producto es:, Nom[i])
Sino
Escribir(PRODUCTO NO EXISTENTE )
Fin si
FIN
68
te
7
.. ..
..
caf
100
INACAP
ORDENAMIENTO
La ordenacin consiste en reorganizar o clasificar un conjunto de elementos de acuerdo a
una serie de criterios previamente establecidos; estos criterios nos permiten agrupar
dichos elementos siguiendo una secuencia especfica, permitindonos as establecer una
ordenacin creciente o decreciente.
El siguiente algoritmo corresponde a uno de los mtodos de ordenacin ms corrientes y
utilizados denominado mtodo Sort.
PROGRAMA
ordenamiento Sort
VARIABLES
I;J: entero
Aux: del tipo del vector
INICIO
Desde( I=1 hasta N-1 haga)
Desde(J=I+1 hasta N haga)
Si vector[I]>vector[J] entonces
Aux=vector[I])
vector[I]=vector[J]
vector[J]=Aux
Fin si
Fin desde
Fin desde
FIN
Ejemplo:
Escriba un algoritmo en pseudolenguaje que permita que el usuario ingrese 100 nmeros
enteros e listar dicho nmeros ordenados de menor a mayor.
Mire: Entienda el problema
Se pide leer 100 nmeros enteros cualesquiera y que se escriban ordenados de menor a
mayor.
Determinar lo que se intenta hacer
Debe crear un ciclo que permita leer y almacenar los 100 nmeros en un vector , utilizar
el mtodo Sort para ordenar el vector y por ltimo crear un ciclo que permita listar el
contenido del vector ordenado.
69
INACAP
10
1
23
2
35
3
14
4
25
5
88
6
72
7
..
..
205
100
10
1
14
2
23
3
25
4
35
5
72
6
88
7
..
..
205
100
Num
Indices
Solucin:
PROGRAMA
Ejemplo ordenamiento
VARIABLES
Num[100]:entero
I;J,aux: entero
INICIO
Desde( I=1 hasta 100 haga)
Escribir(ingrese un nmero)
Leer(Num[I])
Fin desde
Desde( I=1 hasta 99 haga)
Desde(J=I+1 hasta 100 haga)
Si Num[I]>Num[J] entonces
aux=Num[I])
Num[I]=Num[J]
Num[J]=aux
Fin si
Fin desde
Fin desde
Escribir( EL VECTOR ORDENADO ES)
Desde( I=1 hasta 100 haga)
70
INACAP
Escribir(Num[I])
Fin desde
FIN
Ejercicios:
6. Para una lista de 10 alumnos se tienen 2 pruebas parciales y 2 controles, los que tienen
la siguiente ponderacin. Prueba 1 (25%), Prueba 2 (35%), promedio de controles
(40%). Mostrar las notas ingresadas por alumno, y al lado su promedio.
7. Construir un Pseudocdigo que permita ingresar una secuencia de 50 nmeros y los
almacene en un vector llamado NUMEROS y los imprima ordenados de mayor a
menor.
8. Realizar un algoritmo que determine si el nmero 20 se encuentra en un vector
llamado N de largo 5.000.
71
INACAP
siguientes
PLANILLA DE PAGOS
NOMBRE
Juan Leiva
Mara Ortiz
SUELDO IMPONIBLE
345.000
420.000
69000
84000
276000
336000
765.000
153000
612000
Descuentos:
AFP: 13 %
Salud: 7%
13. Utilizando los vectores del ejercicio 12 crear un algoritmo que genere el
siguiente listado ordenado por carga familiar de menor a mayor.
EMPLEADOS CON CARGAS SUPERIORES A 2
72
INACAP
NOMBRE
Rosa Gonzlez
Patricio Astudillo
N DE CARGAS
3
4
7
TOTALES
14. Utilizando los vectores del ejercicio 12 disear un algoritmo que genere el siguiente
listado ordenada por sueldo imponible de mayor a menor.
PLANILLA DE LOS EMPLEADOS
NOMBRE
RUT
N DE
CARGAS
SUELDO
IMPONIBLE
ASIGNA-CION
DE CARGA
SUELDO
IMPONIBLE
AFP
SALUD
DESCUENTOS
Totales
Datos:
1. La asignacin de carga corresponde al dinero que recibe el empleado por carga
familiar el criterio es el siguiente si el sueldo imponible es inferior a $150.000 recibe
$3.000 por carga familiar, si es superior a los $150.000 recibe $2.000.
2. Sueldo bruto corresponde al imponible ms la asignacin de carga.
3. Los descuentos son:
3.1 AFP 12,6 %
3.2 Salud 7%
3.3 Descuento la suma de AFP y Salud.
73
SUELDO
LQUIDO
INACAP
-2
5
10
1
1
-10
16
9
47
15
1
2
12
30
45
NUM[J,L] + NUM[L,J] * L J = 39
NUM[J+2,4] / NUM[3,L+1] * NUM[J-L,L] = -10
3 * NUM[L,J] + NUM[2*L,9/J] J * L = -5
INACAP
Declaracin:
Nombre_matriz[fila,columna]: entero
Asignacin:
Nombre_matriz[fila,columa]= valor_asiganar
Lectura:
Leer( nombre_matriz[fila,columna])
Escritura:
Escribir(nombre_matriz[fila,columna])
Ejemplo:
Escriba un algoritmo en pseudolenguaje que permita almacenar en una matriz de nombre
P el peso de los doce meses del ao 2001 de los 50 clientes de un gimnasio y que liste el
promedio del peso anual de cada cliente.
Mire: Entienda el problema
Se pide leer y almacenar en una matriz de nombre P el peso de cada cliente durante los
doce meses del ao y calcular el promedio de peso de cada cliente.
Determinar lo que se intenta hacer
Debe crear los ciclo que permita leer y almacenar los 600 pesos que generan 12 meses
por los 50 clientes. Cada cliente est representado por una fila y cada columna representa
a un mes del ao. Para el clculo del promedio de pesos de un cliente slo se debe sumar
los pesos por fila y dividirlo por doce, este proceso se debe repetir 50 veces.
Identifique los datos importantes
La matriz esta formada por 50 filas y 12 columnas.
Los valores a almacenar son nmeros reales y los ingresa el usuario.
El algoritmo requiere de 2 contadores y un acumulador.
Declarar un acumulador como un nmero real.
Cada fila representa a un cliente.
Cada columna representa a un mes del ao.
Calcular el promedio, el acumulador de los datos de una fila debe ser dividido por 12.
Se debe imprimir dicho valor.
75
INACAP
12
74.3
70.5
67
65
65
59
80.6
80
80
78.6
78
78.2
64.5
64.5
64.5
60
60
60
70
71
71
70
73
..
70.2
.
..
..
..
58.5
56
55.5
55.5
50.3
.
49
Solucin:
PROGRAMA
Ejemplo matriz
VARIABLES
P[50,12]:real
I;J,: entero
Sum:real
INICIO
Desde I=1 hasta 50 haga
Escribir ( Ud. ingresara los pesos del cliente n, I)
Desde J=1 hasta 12 haga
Escribir (ingrese el peso del mes J)
Leer (P[I,J])
Fin desde
Fin desde
Desde I=1 hasta 50 haga
Sum=0
Desde J=1 hasta 12 haga
Sum = Sum + P[I,J]
Fin desde
Prom= Sum/12
Escribir( El promedio del peso del cliente,I,es:,Prom)
Fin desde
FIN
76
INACAP
EJERCICIOS:
1. Disear el algoritmo correspondiente a un programa, que permita crear una matriz de
10x10 (filas x columnas) de nombre TAB, de tal manera que las filas que son pares se
rellenan con 1 y las filas impares con 0. Una vez almacenados estos valores imprima su
contenido en pantalla.
2.Disear el algoritmo correspondiente que cree una tabla bidimensional de longitud 5x5 y
nombre D, que almacene en la diagonal de la matriz el valor 1 y el resto el valor 0 y que
adems imprima el contenido de la tabla en pantalla.
3.Disear el algoritmo correspondiente a un programa, que:
3.4 Cree una tabla bidimensional de longitud 10x10 y nombre MAT'.
3.5 Almacenar en la tabla con valores numricos enteros.
3.6 Suma todos los elementos de cada fila y todos los elementos de cada
columna visualizando los resultados en pantalla.
4. Disear el algoritmo correspondiente a un programa, que:
4.1 Crea una tabla bidimensional de longitud 5x15 y nombre 'marco'.
4.2 Almacenar en la tabla con dos nicos valores 0 y 1, donde el valor uno
ocupar las posiciones o elementos que delimitan la tabla, es decir, las
ms externas, mientras que el resto de los elementos contendrn el
valor 0.
111111111111111
100000000000001
100000000000001
100000000000001
111111111111111
4.3 Visualiza el contenido de la matriz en pantalla.
5. Dada una cantidad de 3.000 personas, hacer un algoritmo que cree una matriz que
registre el peso de las 3.000 personas durante los meses del ao 1998.
6. Considerando la matriz anterior, disear un algoritmo que imprima:
6.1 El promedio de peso durante el ao de cada persona.
6.2 El mayor y el menor peso durante el mes de abril.
77
INACAP
Curso
Jornada
Promedio
60%
Examen
40%
Nota final
10. Disee un algoritmo que ingrese la siguiente informacin validada a una matriz
llamada A y a un vector de nombre B con respecto al parque automotriz de la ciudad
de Rancagua.
10.1 Regin de 1 a la 13 donde la 13 corresponde a la regin
Metropolitana. (A)
10.2 Tipo de vehculo que puede ser A, B o C. (B)
10.3 Ao del vehvulo. (A)
10.4 Avalo fiscal. (A)
10.5 Valor de la patente del ao 1998 que corresponde al 10% del avalo
fiscal. (A)
10.6 Valor de la patente de 1999 que corresponde al valor anterior ms el
5% del avalo fiscal. (A)
10.7 El valor del permiso de circulacin que corresponde a los siguientes
valores. (A)
10.7.1 Tipo A $30.000
10.7.2 Tipo B $15.000
10.7.3 Tipo C $5.000
10.8 El nmero de patente. (B)
78
INACAP
11. Utilizando la matriz anterior generar el siguiente listado de todos los vehculos de tipo
A.
LISTADO VEHICULOS TIPO A
Patente
TOTALES
Ao Tipo Regin
Avalo fiscal
Valor patente
Valor circulacin
Total a Pagar
12. Dada una cantidad n de personas, hacer un algoritmo que cree una matriz que registre
el peso de las n personas durante los meses del ao 1998.
13. Considerando la matriz anterior, disear un algoritmo que imprima:
13.1 El promedio de peso durante el ao de cada persona.
13.2 El mayor y el menor peso durante el ao de cada persona.
14. Dada la matriz A de orden nxn, disear un algoritmo que:
14.1 Guarde en un arreglo llamado S los elemento de la diagonal
superior.
14.2 Guarde en un arreglo llamado I los elemento de la diagonal inferior.
14.3 Guarde en un arreglo llamado P los elemento pares de la matriz.
15. Hacer un algoritmo que al leer n nmeros de seis cifras almacene los dgitos de dichos
nmeros en una matiz llamada D.
16. Hacer un algoritmo que almacene en una matriz y en un vector la informacin de los
n alumnos del Instituto validada :
16.1 El nombre en la matriz DAT.
16.2 El curso que puede ser cualquiera que cumpla con la codificacin
del Instituto. En la matriz DAT
16.3 La jornada que puede ser A, B y C. En la matriz DAT
16.4 Promedio del semestre en el arreglo NUM
16.5 Nota de examen en el arreglo NUM.
17. Utilizando la matriz y el vector anterior, disee un algoritmo que genere el siguiente
listado ordenado por apellido.
79
INACAP
Listado de notas
Apellido
curso
Jornada
Promedio
60%
Examen
Promedio
40%
Nota final
18. Disee un algoritmo que ingrese la siguiente informacin validada a una matriz
llamada A con respecto al parque automotriz de la ciudad de Rancagua.
18.1 Regin de 1 a la 13 donde la 13 corresponde a la regin
Metropolitana.
18.2 Tipo de vehculo que puede ser A, B o C.
18.3 Ao del vehvulo.
18.4 Avalo fiscal.
18.5 Valor de la patente del ao 1998 que corresponde al 10% del avalo
fiscal.
18.6 Valor de la patente de 1999 que corresponde al valor anterior ms el
5% del avalo fiscal.
18.7 El valor del permiso de circulacin que corresponde a los siguientes
valores.
18.7.1 Tipo A $30.000
18.7.2 Tipo B $15.000
18.7.3 Tipo C $5.000
18.8 El nmero de patente.
19. Utilizando la matriz anterior generar el siguiente listado de todos los vehculos de tipo
A.
LISTADO VEHICULOS TIPO A
Patente
TOTALES
Ao Tipo Regin
Avalo fiscal
Valor patente
Valor circulacin
Total a Pagar
80
INACAP
UNIDAD 5: ARCHIVOS
CAPITULO 5.1: REGISTRO
Un registro es una variable definida por el programador compuesta por un conjunto de
variables que se referencian bajo un mismo nombre.
Los registros son muy tiles ya que permiten generar tablas de datos de distintos tipos
reduciendo el uso de varios arreglos para almacenar distinto tipo de informacin
relacionadas con un mismo ente, por ejemplo nombre, sueldos etc.
Un registro esta compuesto por unidades menores llamados campos, cada uno de los
cuales pueden contener datos de diversos tipos, que se hayan relacionados entre s,
porque todos hacen referencia a la misma y nica entidad.
Operaciones sobre registro
Las operaciones de registros son las siguientes:
Declaracin:
registro nombre_registro:
elemento1: tipo
elemento2: tipo
elemento3: tipo
elemento n: tipo
campos
nFin registros
lista_variables: tipo nombre_registro
Ejemplo
Registro: empleado
nombre: cadena
dir
: cadena
81
INACAP
fono
: entero
sueldo : real
fin registro
empleado1, empleado2 : tipo empleado
REFERENCIA A ELEMENTOS:
Para hacer referencia a cada uno de los elementos de la estructura se emplea el operador
(punto). Su formato de referencia es:
nombre_registro.nombre_campo
Ejemplo:
Si se desea hacer referencia a los campos de empleado1, se identificarn como:
empleado1.nom referencia al nombre
empleado1.dir
referencia a la direccin
empleado1.fono referencia al telfono
empleado1.sueldo referencia al sueldo
Lectura:
Si se desea leer datos y almacenarlos en una estructura esta se efecta campo a campo,
utilizando las operaciones de lecturas de datos.
Leer(nombre_rgistro.campo)
Si quisiramos que el usuario ingrese los valores a los campos de empleado1, la lectura
de los datos ser:
Ejemplo:
Escribir(ingrese el nombre)
Leer(empleado1.nom)
Escribir(ingrese la direccin)
leer(empleado1.dir)
Escribir((ingrese el telefono)
Leer(empleado1.fono)
Escribir(ingrese sueldo)
Leer(empleado1.sueldo)
Escritura:
Las operaciones de escritura al igual que la de lectura se efecta campo a campo.
82
INACAP
Escribir(nombre_registro.campo)
Ejemplo
Si queremos imprimir todos los del empleado1 se escribir:
Escribir(nombre:, empleado1.nom)
Escribir( direccin:, empleado1.dir)
Escribir( telfono: empleado1.fono)
Escribir(sueldo:,empleado1.sueldo)
Asignacin
La asignacin de valores se puede efectuar campo a campo, como tambin es posible
asignar todos los valores de un registro a otras variables del tipo registro, observe los
siguientes ejemplos.
Ejemplo:
Los ejemplos le asigna valores al telfono y sueldo de un empleado
empleado1.fono=256363
empleado1.sueldo=580000
Si se quiere hacer una copia del registro empleado1 en otra variable declarada como
estructura llammosla aux ser:
aux=empleado1
INACAP
fono: entero
sueldo: real
fin registro
trabajador[1000]: tipo empleado
Para hacer la referencia por ejemplo al nombre del empleado almacenado en la posicin 2
del arreglo basta con escribir trabajador[2].nom . En general para referirse a los datos de
un empleado cualquiera y un campo de l, su formato es el siguiente:
Nombre_vector[posicin].campo
Este formato debe respetarse tanto para asignacin como para la lectura y escritura de
los datos.
Ejemplo
Escriba un algoritmo en pseudolenguaje que permita almacenar los datos de los 150
productos de una bodega y que liste los datos ordenados de menor a mayor segn el
valor unitario de los productos.
Los datos de los productos son:
Campo
Nom
Co
Vu
Ca
Contenido
Nombre
Cdigo
Valor unitario
Cantidad
Tipo
cadena
entero
entero
entero
84
INACAP
Te
560
150
8900
2
Aceite
780
850
79000
3
.
.
.
.
Arroz
03
799
45000
150
Arroz
03
799
45000
.
.
Aceite
780
850
79000
Azcar
12
250
5000
1
85
150
INACAP
Solucin:
PROGRAMA
Ejemplo registro
VARIABLES
Registro: bodega
nom: cadena
co : entero
vu : entero
ca : entero
fin registro
B[150]: tipo bodega
Aux : tipo bodega
I,J
:entero
INICIO
Desde I=1 hasta 150 haga
Escribir(ingrese nombre producto)
Leer (B[I].nom)
Escribir(ingrese cdigp producto)
Leer (B[I].co)
Escribir(ingrese valor unitario producto)
Leer (B[I].vu)
Escribir(ingrese cantidad del producto)
Leer (B[I].ca)
Fin desde
Desde I=1 hasta 149 haga
Desde J=I+1 hasta 150 haga
Si B[I].vu > B[J].vu entonces
aux= B[I]
B[I]=B[J]
B[J]=aux
Fin si
Fin desde
Fin desde
Escribir( LISTADO DE PRODUCTO ORDENADOS POR VALOR UNITARIO)
Desde I=1 hasta 150 haga
Escribir( B[I].nom,B[I].co,B[I].vu,B[I].ca)
Fin desde
FIN
86
INACAP
87
INACAP
ar = c:\num.dat
Leer: permite extraer informacin del archivo, una variable debe recibir esta
informacin.
Leer(nombre_archivo_lgico, variable)
3.2.
88
INACAP
Ejemplo:
Cerrar (ar)
5. FUNCION FIN DE ARCHIVO: Es una funcin que permite recorrer el archivo y
detectar el fin del archivo fsico, esta funcin es muy utilizada en la creacin de ciclos
ya sea con el ciclo mientras o con repita.
EOF(nombre_archivo_lgico)
Ejemplo:
Mientras not EOF(ar) haga
Leer(ar, num)
Escribir(num)
Fin mientras
Ejemplo:
Supongamos que en un archivo de nombre dato.dat grabado en el disco duro, se
encuentran los datos de los productos de una bodega. Escriba un algoritmo en
pseudolenguaje que leer el cdigo de un producto y si se encuentra liste los datos
correspondientes, en caso contrario muestre el siguiente mensaje PRODUCTO NO
EXISTENTE. Considere que en el archivo los registros contienen los siguientes campos.
Campo
Nom
Co
Vu
Ca
Contenido
Nombre
Cdigo
Valor unitario
Cantidad
Tipo
cadena
entero
entero
entero
INACAP
INACAP
(Texto)
(Texto)
(Texto)
(Texto)
(Texto)
TIPO
DESCRIPCION
RUT
NOMBRE
FECING
CUPO
DISPO
MONTO
ALFANUMERICO
ALFABETICO
ALFANUMERICO
ENTERO
ENTERO
ENTERO
RUT CLIENTE
NOMBRE CLIENTE
FECHA DE INGRESO
CUPO ASIGNADO
CANT. DISPONIBLE
MONTO UTILIZADO
91
INACAP
92