You are on page 1of 92

Firma no

verificada

DAI

Firmado
digitalmente por
DAI
Nombre de
reconocimiento
(DN): cn=DAI,
o=INACAP
Fecha:
2002.03.26
09:51:53 -04'00'

INACAP

Direccin de rea Informtica

MANUAL
ELEMENTOS DE PROGRAMACION
MARZO DEL 2002

Programa de Estudios:

INGENIERA EN GESTIN INFORMTICA


ANALISTA PROGRAMADOR

INACAP

Direccin de rea Informtica

INDICE

PGINA

UNIDAD 1: ANALISIS DE PROBLEMAS Y PROCESAMIENTO DE


DATOS
1.1: METODOLOGIA DE RESOLUCIN DE PROBLEMAS SEGN GEORGE POLYA

1.2: CONCEPTO DE DATO E INFORMACIN

10

EJERCICIOS DE LA UNIDAD:

11

UNIDAD 2: ALGORITMOS Y ESTRUCTURAS DE CONTROL


CAPITULO 2.1: UNIDADES FUNCIONALES DE UNA COMPUTADORA.
EJERCICIOS:

12
13

CAPITULO 2.2: PROCESOS DE CREACIN DE PROGRAMAS.


EJERCICIOS:

15
16

CAPITULO 2.3: ALGORITMOS


ENTIDADES PARA EL DESARROLLO DE UN ALGORITMO:
CONSTANTES, VARIABLES Y EXPRESIONES
OPERADORES:
EJERCICIOS:

19
20
21
22
28

CAPITULO 2.4: DIAGRAMA DE FLUJO


EJERCICIOS:

29
31

UNIDAD 3: ESTRUCTURAS DE PROGRAMACIN.


CAPITULO 3.1 ESTRUCTURAS BASICAS

34

CAPITULO 3.2: INSTRUCCION DE ALTERNATIVA SIMPLE

36

CAPITULO 3.3 INSTRUCCION DE ALTERNATIVA DOBLE

38

CAPITULO 3.4: INSTRUCCION DE ALTERNATIVA MULTIPLE

40

EJERCICIOS PROPUESTOS DE ALTERNATIVA SIMPLE, DOBLE Y MLTIPLE

43

CAPITULO 3.5 ESTRUCTURAS CCLICAS O DE ITERACIN


CONCEPTOS
3.51 INSTRUCCIN MIENTRAS
3.52 INSTRUCCIN REPETIR
3.53 INSTRUCCIN DESDE
EJERCICIOS PROPUESTOS DE CICLOS

46
47
49
52
54

UNIDAD 4: ESTRUCTURA DE ARREGLO.


CAPITULO 4.1: CONCEPTOS.

59

CAPITULO 4.2 : ARREGLOS UNIDIMENSIONALES O VECTORES.


OPERACIONES CONE VECTORES

60
60

INACAP

Direccin de rea Informtica

EJERCICIOS PROPUESTOS DE VECTORES


CAPITULO 4.3: MTODOS DE BSQUEDA Y ORDENAMIENTO

64
66

EJERCICIOS DE ARREGLOS Y METODO DE BSQUEDA Y ORDENAMIENTO:

71

CAPITULO 4.4: ARREGLOS BIDIMENSIONAL O MATRIZ


OPERACIONES CON MATRICES
EJERCICIOS PROPUESTOS DE ARREGLOS.

74
74
77

UNIDAD 5: ARCHIVOS.
CAPITULO 5.1: REGISTRO
OPERACIONES CON REGISTROS
CAPITULO 5.2: VECTOR Y REGISTRO

81
81
83

CAPITULO 5.3: ARCHIVO


OPERATORIAS CON ARCHIVOS

87
87

EJERCICIOS PROPUESTOS DE ARCHIVOS Y REGISTROS:

91

INACAP

Direccin de rea Informtica

UNIDAD 1: ANALISIS DE PROBLEMAS Y PROCESAMIENTO DE DATOS


CAPITULO 1.1: METODOLOGIA DE RESOLUCIN DE PROBLEMAS SEGN
GEORGE POLYA.
La mayora de los expertos en cualquier campo del conocimiento seguramente saben
como resolver problemas. El xito de la empresa cientfica resalta esta conclusin: Los
procedimientos expertos se derivan desde conceptos bsicos, usando concretos pasos
lgicos. El proceso es un proceso jerrquico lineal.
Existen mtodos bien definidos y desarrollados para lograr una resolucin efectiva de
problemas. Uno de estos mtodos es el desarrollado por George Polya (destacado Doctor
en Matemtica, nacido en Hungra en 1887), el que fue publicado inicialmente en la
Universidad de Princeton en 1945 y finalmente en su libro "How to Solve It" en 1957. Este
mtodo posee cuatro pasos elementales:
i.
ii.
iii.
iv.

Entender el problema.
Idear un plan.
Realizar el plan.
Mirar hacia atrs.

La comprensin del problema consiste en identificar qu se pide de modo completamente


independiente de las diversas condiciones que pueden ser impuestas y limitaciones
constatables en el problema.
Idear un plan, consiste de responder tan directamente como sea posible lo qu se pide.
Esto requiere generalmente uso de una ley, de una definicin o de un principio que sea la
respuesta a la pregunta hecha.
Realizar el plan consiste en el responder a las peticiones hechas por el resultado del paso
de progresin anterior. Esto puede derivar en un problema embutido que requiere el uso
progresivo del primer, segundo y tercer paso.
El mirar hacia atrs consiste en varios chequeos, usando el sentido comn, del resultado
de usar los primeros tres pasos de progresin.
En problemas complejos los cuatro pasos de progresin se utilizan recurrentemente.
Es evidente que el primer paso de progresin a veces no es utilizado cuidadosamente.
Esto no significa entender todos los detalles del problema, tales como las enumeraciones
dadas y las condiciones. Significa solamente entender qu se pregunta.
Tambin se necesita cuidado al usar el segundo paso. Uno intentar con demasiada
frecuencia solucionar realmente el problema mientras que idea un plan. Esto se puede
hacer en problemas simples en que uno puede visualizar la solucin entera. Tan pronto
como los problemas se conviertan en un dgito binario ms complejo o tengan variaciones
sutiles, ste mecanismo falla. El segundo paso de progresin significa solamente la
indicacin de la ley, de la definicin del principio que proporciona las instrucciones para
contestar a la pregunta hecha y expresarla en forma matemtica.

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

9 Si usted no puede solucionar el problema propuesto, intente solucionar


primero un problema relacionado. Podra usted imaginar un problema
relacionado ms accesible?. Un problema ms general?. Un problema
ms especial? . Un problema anlogo?. Podra usted solucionar una
parte del problema?. Considere solamente una parte de la condicin, deje
las otras partes; cmo puede l variar el planteamiento original con la
nueva solucin parcial?. Podra usted derivar algo til de los datos?.
Podra usted pensar en otros datos apropiados para determinar lo
desconocido?. Podra usted cambiar lo desconocido o los datos, o ambos
en caso de ser necesario, de modo que los nuevos datos y lo desconocido
sean ms cercanos el uno al otro?
9 Utiliz todos los datos?.Utiliz la condicin entera?. Ha considerado
todas las nociones esenciales implicadas en el problema?
3. REALIZAR EL PLAN
Tercero. Realice un plan.
9 Lo que realiza su plan de la solucin, controla cada paso de progresin.
Puede ver claramente que el paso de progresin est correcto?. Puede
usted probar que est correcto?
4. MIRAR HACIA ATRS
Por ltimo. Examine la solucin obtenida.
9 Puede controlar el resultado?. Puede controlar el argumento?.
9 Puede derivar una solucin diferentemente?. Puede verla de un
vistazo?.
9 Puede usted utilizar el resultado, o el mtodo, para otro problema similar?
Un modo diferente de sintetizar las ideas del libro de George Polya puede ser descrita
como:

1.
2.
3.
4.

Mire,
Planee,
Haga y
Verifique.

MIRE. Entienda bien el problema.


) Lea cuidadosamente el problema.
) Determine claramente lo que usted est intentando hacer.
) Identifica los datos importantes.

INACAP

Direccin de rea Informtica

PLANEE: Construya un plan.


)
)
)
)
)
)
)
)
)
)
)
)

Considere toda la informacin disponible.


Considera algunas acciones posibles.
Busque un modelo.
Construya o dibuje un bosquejo.
Haga una lista ordenada.
Simplifique el problema.
Verifique y chequee.
Construya una tabla.
Escriba una sentencia numrica.
Acte fuera del problema.
Identifique sub-tareas y
Chequee la validez de la informacin dada.

HAGA: Realice el plan.


) Implemente un plan de ataque particular.
) Revise y modifique el plan segn lo necesitado.
) Cree un nuevo plan en caso de ser necesario.
VERIFIQUE: Controle la respuesta
) Asegrese de estar usando toda la informacin importante.
) Decida si las respuestas obtenidas tienen o no tienen sentido.
) Verifique que todas las condiciones dadas del problema son resueltas por la
respuesta.
) Ponga su respuesta en una sentencia completa.
La prescripcin de Polya para solucionar problemas consiste en cuatro pasos de
progresin:
1.
2.
3.
4.

Entender el problema. (reconociendo qu se pregunta.)


Idear un plan. (respondiendo a lo que se pide.)
Realizar el plan. (desarrollando el resultado de la respuesta.)
Mirar hacia atrs. (controlando qu hace y me dice el resultado)

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

Direccin de rea Informtica

Determine Claramente Lo Que Usted Est Intentando Hacer.


Identificar el sueldo bruto
Identificar el porcentaje de descuento
Calcular Sueldo Lquido
Escribir el resultado (Sueldo Lquido).

Identifique Los Datos Importantes.


Sueldo Base
El porcentaje a descontar.
Sueldo Lquido

HAGA: Realice un Plan


Porcentaje a descontar ( 20%) = 20/100
Valor a descontar = Sueldo Base * 20/100
Sueldo Lquido = Sueldo Base Valor a descontar
VERIFIQUE: Controle la Respuesta.
Sueldo base = 520.000
Valor descuento = 520.000 * 20/100 = 104.000
Sueldo Lquido = 520.000-104.000 = 416.000
RESPUESTA:
El sueldo lquido del empleado es de $416.000
El elemento fundamental de una solucin de problema es la estructura mostrada arriba:
Pregunta Respuesta Resultado.
Esta es la forma tpica utilizada en la solucin de problemas. Note que la solucin
presentada arriba muestra exactamente lo que se hizo.
1. Se muestra la expresin a ser evaluada.
2. Se obtienen los valores a ser sustituidos.
3. Estos se sustituyen.
4. El resultado se calcula.
Sentido comn en la Resolucin de Problemas
El mtodo de solucin basada en el concepto se desarrolla lgicamente paso a paso,
cada paso indica a qu hacer en el prximo. Los principios simples de comunicacin
efectiva se usan en la presentacin de solucin. Por ejemplo, los subproblemas se
tabulan o identan. El mismo proceso se usa en muchas formas de comunicacin para
mostrar subtpicos del tema principal.

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

CAPITULO 1.2: CONCEPTO DE DATO E INFORMACIN


Datos: Es todo aquella representacin de una entidad y que es susceptible de
tratamiento ya sea en un programa o proceso informtico. Por ejemplo nombre, apellido y
edad son datos de una persona (entidad).
En otras palabras un dato es la representacin de una realidad.
Informacin : Mensaje valido para un receptor o resultado del procesamiento de datos.
Una computadora es una simple mquina capaz de aceptar datos de entrada, procesarlos
y facilitar resultados de salida (informacin).

DISPOSITIVO
DE
ENTRADA

DISPOSITIVO
DE
SALIDA

PROCESAMIENT0

DATO

INFORMACION

Todo programa (software) est constituido por un conjunto de ordenes o instrucciones


capaces de manipular un conjunto de datos. Esta ordenes pueden ser divididas en tres
grandes bloques claramente diferenciales, estos son:
ENTRADA DE DATOS: En este bloque se engloban todas aquellas instrucciones que
toman datos de un dispositivo o perifrico externo, depositndolos en la memoria principal
de la computadora para poder ser procesados.

DATOS
MEMORIA
PRINCIPAL

DISPOSITIVO
EXTERNO

PROCESO: Engloban todas aquellas instrucciones encargadas de modificar los datos


que previamente haban sido depositados en a memoria principal. Finalmente, todo los
resultados obtenidos en el tratamiento de dichos datos son depositados nuevamente en
la memoria principal quedando de esta manera disponible.
DATOS
DISPOSITIVO
EXTERNO

MEMORIA
PRINCIPAL

PROCESO

RESULTADO

10

INACAP

Direccin de rea Informtica

SALIDA DE RESULTADOS: Es el conjunto de instrucciones que toman los


resultados finales desde la memoria principal y lo envan a dispositivos externos.
Una computadora es una simple mquina capaz de aceptar datos de entrada,
procesarlos y facilitar resultados de salida.

MEMORIA
PRINCIPAL

RESULTADO

DISPOSITIVO
EXTERNO

EJERCICIOS:
Crear grupos de trabajos de 6 integrantes y efectuar los siguientes procesos
manualmente.
1.
2.
3.
4.

Determinar el promedio de edad entre los integrantes del grupo.


Determinar la cantidad de mujeres y la cantidad de hombres dentro del
grupo.
Determinar los que son mayores de edad en el grupo si tienen 20 aos o
mas y menor de edad los que tienen inferior a 20 aos.
Determinar la cantidad de integrantes que salieron de cuarto medio con un
promedio igual o inferior a 5.0.

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

Direccin de rea Informtica

UNIDAD 2: ALGORITMOS Y ESTRUCTURAS DE CONTROL


CAPITULO 2.1: UNIDADES FUNCIONALES DE UNA COMPUTADORA.
Organizacin fsica de una computadora
CPU
Dispositivos
de Entrada

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

Direccin de rea Informtica

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

Direccin de rea Informtica

Determinar los valores finales de los contenidos si se ejecutan secuencialmente


las siguientes operaciones matemticas.
X=G+5
W=A*X
T=S+P-J
J=T+L
Z=P*R+Y
Y=Y+Z
Y=Y+1
Escriba en la siguientes ilustracin los valores finales de las variables
X

14

INACAP

Direccin de rea Informtica

CAPITULO 2.2: PROCESOS DE CREACIN DE PROGRAMAS.


Programa: Es el conjunto de instrucciones escritas de algn lenguaje de programacin y
que ejecutadas secuencialmente resuelven un problema especifico. Este programa debe
pasar por fases de elaboracin hasta llegar al producto final.
Etapas en el proceso de la resolucin de un programa:
Resolvemos problemas a diario, pero normalmente ignoramos el proceso que estamos
siguiendo. La mayora de nuestra experiencia es simplemente seguir algoritmos,
seguimos recetas, practicamos un juego, tomamos medicina, etc.
Para aprender a programar tendrs que hacer conscientemente algunas de las
estrategias subyacentes de resolucin de problemas, en orden para aplicarlos a los
problemas de programacin
Algunas de estas etapas son:
1. Diseo del proceso: Esta etapa consiste en el anlisis del problema esto es:
entender el problema, determinar estrategias de solucin. En ambas
situaciones se indicar claramente los procesos a seguir (lo que se va a hacer)
para llegar a la solucin correcta. En esta etapa adems se desarrolla un
modelo que no es ms que una representacin apropiada al problema
planteado. En otras palabras se debe visualizar como se realizar la
transformacin de los datos de entrada para que a travs de un proceso
apropiado obtener la salida correcta.
2. Construccin: Esta etapa consiste en desarrollar un algoritmo que pueda
representar la estructura del programa la cual puede ser en forma narrativa,
diagramas de flujo o Pseudolenguaje.
3. Codificacin: Consiste en la traduccin del algoritmo a algn lenguaje de
programacin, el cual crea instrucciones entendibles y ejecutables por la
computadora; algunos de estos lenguajes pueden ser Pascal, C, C++, Visual
Basic, Clipper etc.
4. Verificacin: En primer lugar, se prueba el algoritmo en forma analtica, esto
es para demostrar la efectividad del algoritmo; luego se prueba el algoritmo y/o
programa con datos que producirn una salida conocida, con esto se pretende:
detectar errores lgicos, corregir los errores, mejorar el programa o algoritmo.
5. Documentacin: En esta etapa se debe documentar el o los programas
realizados en la etapa de construccin. Se debe confeccionar un manual de
uso que contenga, al menos los siguientes puntos:
5.1.
5.2.

Descripcin del mtodo de solucin utilizado


Requerimientos lgicos (Sistema Operativo,
produccin, etc.).
15

Software

INACAP

Direccin de rea Informtica

5.3.

Requerimientos
perifricos)

fsicos

(Servidores,

computadoras,

Como profesional de la informtica, la calidad de los programas y sistemas de desarrollo,


es de vital importancia, considerando que para un problemas existen muchas soluciones o
programas, y es misin elegir la alternativa mas eficaz y eficiente en funcin del problema
dado. La eleccin de la solucin depende de:
a) Legibilidad: El programa debe ser claro y sencillo para una fcil
lectura y comprensin.
b) Modificabilidad: El programa para su vigencia y actualizacin,
debe ser de fcil mantenimiento.
c) Fiabilidad: El programa debe ser robusto, fcil de recuperarse
frente a errores o malos usos
d) Eficiencia: El programa debe ser eficiente, aprovechando al
mximo los recursos.
e) Portabilidad: El programa debe ser de fcil codificacin para
distintos lenguajes.
EJERCICIOS:
Para las siguientes situaciones identifique la etapa o fase del proceso en la resolucin de
un programa.
a. El algoritmo creado se traducir en lenguaje C: esta situacin corresponde a la
etapa
_______________________________________________________________
b. Un algoritmo requiere de la formula de volumen de un prisma: esta situacin
corresponde a la etapa
_______________________________________________________________
c. La resolucin de un problema ha sido escrita en forma narrativa: esta situacin
corresponde a la etapa
_______________________________________________________________
d. Un algoritmo ha sido recorrido con datos conocidos: esta situacin corresponde
a la etapa
_______________________________________________________________

16

INACAP

Direccin de rea Informtica

Ejercicios:

1 La siguiente ilustracin es una representacin conceptual de una memoria, cuyas


direcciones estn representadas por variables y los contenidos son los ilustrados.

14

-9

130

16

-56

-4

-8

Determinar los valores finales de los contenidos si se ejecutan secuencialmente las


siguientes operaciones matemticas.
X=X+A-W
S=X-J*Z
R=R+1
Y=R-X+2
L=Y+L
T=G+J-Z*3
W=W+5
J=J+Z/X+2
Escriba en la siguientes ilustracin los valores finales de las variables
X

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

Direccin de rea Informtica

b. Al recorrer el algoritmo que algunos datos el resultado no es el esperado: esta


situacin corresponde a la etapa
_______________________________________________________________
c. Un algoritmo ser traducido a lenguaje Pascal: esta situacin corresponde a la
etapa
_______________________________________________________________
d. Un algoritmo calcula el rea de un cuadrado para un valor cualquiera del lado:
esta situacin corresponde a la etapa
_______________________________________________________________
e. Al parecer el modelo matemtico escogido soluciona el problema solo para un
tipo de datos: esta situacin corresponde a la etapa
_______________________________________________________________

18

INACAP

Direccin de rea Informtica

CAPITULO 2.3: ALGORITMOS


DEFINICIN DE ALGORITMO
La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi,
nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin
de nmeros y ecuaciones en el siglo IX.
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe
seguir, para dar solucin a un problema especifico.
Tipos de Algoritmos
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan clculos numricos para definir los
pasos del proceso.
Lenguajes Algortmicos
Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un
proceso.
Tipos de Lenguajes Algortmicos
Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo
(diagrama de flujo).
No Grficos: Representa en forma descriptiva las operaciones que debe realizar un
algoritmo (pseudocdigo).
Caractersticas de un algoritmo
Las caractersticas de un buen algoritmo son:
Debe tener un punto particular de inicio.
Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayora de las variantes que se puedan
presentar en la definicin del problema.
Debe ser finito en tamao y tiempo de ejecucin.

19

INACAP

Direccin de rea Informtica

Ejemplo:

1.Se desea construir un algoritmo que cambie la rueda de un automvil. La


siguiente lista de paso le ayudar a en la construccin del algoritmo pero, para
ellos debe ordenarlas en una secuencia lgica.
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
k.
l.
m.
n.

Sacar las tuercas


Inicio
Bajar el auto y retirar las tuercas
Colocar repuesto
Sacar herramientas y respuesta.
Cerrar maletera
Colocar tuercas
Fin
Abrir maletera
Apretar turcas
Posicionar gata y levantar
Guardar herramientas y rueda
Retirar rueda mala
Soltar tuercas

2.Escriba el algoritmo que soluciona los siguientes problemas cotidianos.


a. Cambiar las cuatro ruedas de un vehculo.
b. Guardar 20 monedas de $100 en una alcanca.
c. Destapar un botellas de bebidas hasta que se terminen, es decir un nmero
indefinido de botellas.
ENTIDADES PARA EL DESARROLLO DE UN ALGORITMO:
DATO: Recordemos que el dato es una entidad, tratable por software, la cual puede ser
procesada, a fin de obtener resultados o informacin til. Un dato est compuesto
por tres partes, las cuales son:
1.Identificador: Es un nombre para referenciarlo, puede contener letras, nmeros
o combinaciones de ambas, donde el primer carcter es un letra, y su nombre
comnmente esta relacionado con la informacin que representa, para facilitar
nuestra tarea y evitar confusiones.

20

INACAP

Direccin de rea Informtica

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,

entonces las variables son del siguiente

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.

Constantes, Variables y expresiones


Constantes: Las constantes son valores declarados en un programa para su
utilizacin posterior y poseen un valor que no varia durante el proceso de ejecucin;
Ejemplo
PI= 3.14, constante numrica

21

INACAP

Direccin de rea Informtica

OP= s, constante char


Men= hola , constante string

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)

Operadores Aritmticos: Los operadores aritmticos permiten la realizacin de


operaciones matemticas con los valores (variables y constantes).
Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales. Si
ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

22

INACAP

Direccin de rea Informtica

Operando (Operador) Operando


Valor
(constante o variable)
Ejemplos:
7/2
= 3.5
12 mod 7 = 5
4 + 2 * 5 = 14
Prioridad de los Operadores Aritmticos
Todas las expresiones entre parntesis se evalan primero. Las expresiones con
parntesis anidados se evalan de dentro a fuera, el parntesis ms interno se
evala primero.
Dentro de una misma expresin los operadores se evalan en el siguiente orden.

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

2.La siguiente expresin matemtica es transcrita a una expresin utilizando los


operadores informticos.

M+

N
= M + N / (P-Q)
PQ

Observe los siguientes ejemplo:

23

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

< 30

(no es lgico porque tiene diferentes operandos)

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

Direccin de rea Informtica

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,

c=30 entonces el valor de verdad de la siguiente expresin

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

Prioridad de los Operadores en General


a)
b)
c)
d)
e)

()
^
*, /, 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

((a > b) or (a < c)) and ((a = c) or (a > = b))


( F or V ) and ( F or
F )
V
and
F
26

INACAP

Direccin de rea Informtica

F
b)

((a > = b) or (a < d)) and (( a > = d) and (c > d))


( F
or
F ) and ( V
and F )
F
and
F
F

c)

not (a = c) and (c > b)


not ( F ) and ( V )
V
and V
V

2. Supongamos que a Ud. le solicitan evaluar si un nmero cualquiera se encuentra en el

intervalo [2, 5[. Su respuesta debe ser en trmino de verdadero o falso


El intervalo [2,5[ matemticos se interpreta de la siguiente forma, son todos los
nmero que se encuentran entre 2 y 5 considerando el 2 y excluyendo al 5.
Cuando el parntesis corchete encierra al nmero [2 ndica que se considera al
nmero por tal motivo utilizamos el signo =, cuando el parntesis en corchete se
utiliza hacia fuera del nmero o no lo encierra como el caso de 5[ ndica que no
se considera su extremo por tal razn no se utiliza el smbolo =.
Luego el intervalo en forma lgica es:
( x >= 2) and ( x < 5), supongamos que el valor de x es 3, la respuesta debe ser
verdadero, hagamos la evaluacin.
(3 >=2) and (3<5)
V and V
V
Si x toma el valor 13 se encuentra fuera del intervalo, por lo tanto la respuesta es
falso,
(13>=2) and (13<5)
V

and

F
Observe los siguientes ejemplos:
a) ]12,56[

= (x>12) and (x< 56)

b) ] -,56] and [150, +[ = (x<=56) and (x >= 150)


c) [25,89] or ]800, +[

= (x>=25) and (x<=89) or (x>800)

27

INACAP

Direccin de rea Informtica

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)))

2.Calcular el resultado de las siguientes expresiones lgicas:


a) not (5>6) and 7<=4
b) 7>4 and 5<=5 or 4=5
d) not (7=7) and (7>=8 or 8=6)
e) 5+2<=5 and 3*2=5 or 7<=2*2 or 2*2<=2+2
f) (not (14/2>8) or 5>5) and (5<=27/3 ord 5+3<=3/2)
g) 3+5*2=12/3 and (5+3=18/9 or 10/2<=9) or not (9>=2)
3. Expresar el resultado de las siguientes expresiones:
a) "PEDRO " + "GOMEZ " =
b) "GARCIA
" + " - GONZALEZ " =
c) "CALLE- " + "-MAYOR " =
d) 12.465+.450+-k=
4.Escriba los siguientes intervalos numricos en sus correspondientes intervalos
lgicos:
a) [5,15]
b) ]120,200]
c) [0,50[
d) ]15,30[
e) ]-,15[ and [30, +[
5.Escriba las siguientes expresiones matemticas en forma de expresiones
algortmicas.
a)

3 x y 2 xy 2 x
+
+
z
z 1 y

28

INACAP

Direccin de rea Informtica

b)

b
d

h+i
j+k

e
f g

CAPITULO 2.4: DIAGRAMA DE FLUJO


Para el diseo de algoritmos se utilizan tcnicas de representacin. Una de estas tcnicas
son los denominados diagramas de flujo, que se definen como la representacin grfica
que mediante el uso de smbolos estndar conectados o unidos mediante lneas de flujo,
muestran la secuencia lgica de las operaciones o acciones que debe realizar un
ordenador, as como la corriente o flujo de datos en la resolucin de problema.
Algunos smbolos correspondientes a operaciones de proceso son:

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

Decisin de dos salidas, indica


operaciones lgicas o comparativas
seleccionando la ruta en funcin del
resultado (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

Direccin de rea Informtica


para el reagrupamiento de lnea de
flujo).

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

Recorrer el siguiente diagrama de flujo, considerando N1=4.5, N2=5.5, N3=6.5, el valor


de P es 5.5, como el mayor que 3.9, la ruta continua por la alternativa NO por lo tanto se
imprime la cadena Aprobado.
inicio

N1,N2,N3
P=(N1+N2+N3)/3

P<3.9
SI

NO

Reprobado

Aprobado

30

INACAP

Direccin de rea Informtica

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%

En una financiera utilizan la formula Cf=N*I*Ci+Ci para calcular el capital final de


un ahorrante a un inters simple.
Si

I = Inters en (%) , N = Meses, Ci = Capital inicial

Crear los siguientes un algoritmo en Pseudolenguaje:

31

INACAP

Direccin de rea Informtica

Al ingresar el capital inicial, los aos y el inters simple, la salida sea el


capital final.
Al ingresar los meses, capital inicial y final de como salida el inters.
Al ingresar el inters, capital inicial y final de como salida la cantidad de
meses.
g) Recorra (rutee) el siguiente diagrama de flujo

Inicio
E
V

E<15

Infantil
F

(E>=15) and (E<21)

Juvenil
F

E>=21

Adulto
F

Fin

32

INACAP

Direccin de rea Informtica

Haga el ruteo con los siguientes valores.


Entrada
E

Salida

28
15
21
69

33

INACAP

Direccin de rea Informtica

UNIDAD 3: ESTRUCTURAS DE PROGRAMACIN.


CAPITULO 3.1 ESTRUCTURAS BASICAS

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

Escribir Expresin: Enva datos a los Escribir Expresin :


dispositivos externos, bien tomndolos de
objetos o definidos de alguna forma en la
propia instruccin.
Escribir EXPRESION
Escribir Expresin
Procesos : Instrucciones que modifican los Procesos :
objetos a partir de un estado inicial (I1) hasta
un estado final (In).
I1; I2; I3; ; In

34

I1; I2; I3; ; In

INACAP

Direccin de rea Informtica

Ejemplo:
1.

Realice un algoritmo para ingresar el Nombre y el sueldo base de un empleado.


Calcular el sueldo lquido y mostrar el resultado con un mensaje correspondiente.
Considere el sueldo liquido como el 80% del sueldo base.

Mire: Entienda el problema


Se desea imprimir el sueldo liquido de un empleado.
Determinar lo que se intenta hacer
Se debe ingresar el nombre del empleado y su sueldo base, es decir sin descuentos para
luego calcular el sueldo liquido e imprimirlo.
Identifique los datos importantes
Nombre del empleado.
Sueldo base.
Planee: Construya un plan
Lea el nombre del empleado en una variable alfanumrica.
Lea el sueldo base del empleado en una variable entera.
Calcular el sueldo liquido y almacenar en una variable real.
Sueldo liquido sueldo base por 0.8
Escribir un mensaje y el resultado.
Construya un ejemplo:
Nombre = Juan Prez
Sueldo base = 500 000
Sueldo Liquido = 500 000*0.8=400 000
Solucin:
PROGRAMA Sueldo_Lquido
VARIABLES
Nombre : Alfabtico
Sbase : Entero
Liquido : Real
INICIO
Escribir (Ingrese Nombre Empleado)
Leer (Nombre)
Escribir (Ingrese Sueldo Base)
Leer(Sbase)
Liquido = Sbase* 0.8
Escribir(El Sueldo Lquido de , Nombre, Es , Liquido)
FIN

35

INACAP

Direccin de rea Informtica

CAPITULO 3.2: INSTRUCCION DE ALTERNATIVA SIMPLE


INSTRUCCION DE ALTERNATIVA SIMPLE
Alternativa Simple: Controla la Alternativa Simple:
ejecucin de Un Conjunto De
Instrucciones por el cumplimiento o no
de una condicin, de tal forma que, si
CONDICION
se esta es verdadera, se ejecutan, si
es falsa, no se ejecutan.

V
I1,I2,I3, ,In

Si ( CONDICION ) Entonces
I1; I2; I3l; ; In
Fin Si

Ejemplo:
2.

Realice un algoritmo el cual permita obtener los clculos de una venta de


televisores, donde hay que ingresar la cantidad de TV y su valor unitario, este
algoritmo debe considerar:

S el monto de la venta es mayor que $ 50 000 se aplica un descuento a la venta de


3%, imprimir el valor descontado.
Calculo del impuesto IVA que es un 18% sobre la venta total.
Por ultimo imprima la venta bruta que es la venta total ms el IVA calculado
anteriormente.
Mire: Entienda el problema
Hay que ingresar la cantidad de TV y su valor analizar si corresponde descuento, calcular
el IVA e imprimir el total de la venta.
Determinar lo que se intenta hacer
Se quiere imprimir el descuento (si corresponde ) y la venta total de la venta de TV.
Identifique los datos importantes
Nmero de TV.
Valor unitario de TV.
Planee: Construya un plan
Ingrese cantidad de TV en una variable entera.
Ingrese valor unitario de TV en una variable entera.
Calcule el total de la venta: Multiplicar Cantidad de TV por el valor unitario de estos y
almacenar el resultado en una variable real .
Preguntar si la venta es mayor que 50000 realizar descuento y guardar el resultado.
Imprimir el resultado del descuento.
36

INACAP

Direccin de rea Informtica

Calcular el iva y guardar el resultado en una variable real.


Obtener vanta bruta: Sumar venta ms iva y guardar en una variable real.
Imprimir venta bruta con un mensaje adecuado.
Construya un ejemplo:
a)
N de TV 5, valor unitario $ 12000
La venta es 5*12000=60000
Descuento 60000*0.03=1800
Nueva venta 60000-1800=58200
Iva: 58200*0.18= 10476
Venta brutal es: 58200 + 10476= 68676.
b)
N de Tv 5, valor unitario $ 8000
La venta es 5*8000=40000
No hay descuento
Iva: 40000*0.18=7200
Venta brutal es: 40000 + 7200= 47200.
Solucin:
PROGRAMA Venta_TV
VARIABLES
Ct, Vut: Entero
Venta, IVA, Vbruta, Dcto: Real
INICIO
Escribir(Ingrese cantidad de TV), Leer(Ct)
Escribir(Ingrese valor unitario de TV), Leer(Vut)
Venta = Ct * Vut
Si (Venta > 50000) Entonces
Dcto= Venta*0.03
Venta = Venta - Dcto
Escribir(El descuento es: Dcto)
Fin Si
IVA = Venta * 0.18
Vbruta = Venta + IVA
Escribir(Venta Bruta Es:", Vbruta)
FIN

37

INACAP

Direccin de rea Informtica

CAPITULO 3.3 INSTRUCCION DE ALTERNATIVA DOBLE

INSTRUCCION DE ALTERNATIVA DOBLE


Alternativa Doble: Controla la Alternativa Doble
ejecucin de Dos Conjuntos De
Instrucciones por el cumplimiento o
no de una condicin, de tal forma
que, si la condicin es verdadera,
NF
se ejecutan las instrucciones del
N
primer bloque (I1...In), de lo
contrario si la condicin es falsa, se
J1; J2; J3;
ejecutan las instrucciones del
segundo bloque (J1...Jn).

CONDICIO
N

v
I1; I2; I3;

Si ( CONDICION ) Entonces
I1; I2; I3l; ; In
Sino
J1; J2; J3; ; Jn
Fin Si

Ejemplo:
3.

Realice un algoritmo el cual permita obtener los clculos de una venta de


televisores, donde hay que ingresar la cantidad de TV y su valor unitario, este
algoritmo debe considerar:

S el monto de la venta es mayor que $ 100 000 se aplica un descuento a la


venta de 5%, imprimir el valor descontado.
S el monto de la venta es menor o igual que $ 100 000 se aplica un
descuento a la venta de 3%, imprimir el valor descontado.
Calculo del impuesto IVA que es un 18% sobre la venta total.
Por ultimo imprima la venta bruta que es la venta total ms el IVA calculado
anteriormente.

Mire: Entienda el problema


Hay que ingresar la cantidad de TV y su valor analizar si corresponde un descuento de
5% o 3% , luego calcular el IVA e imprimir el total de la venta.
Determinar lo que se intenta hacer
Se quiere imprimir el descuento correspondiente y el monto de la venta total de TV.
Identifique los datos importantes
38

INACAP

Direccin de rea Informtica

Nmero de TV.
Valor unitario de TV.

Planee: Construya un plan


Ingrese cantidad de TV en una variable entera.
Ingrese valor unitario de TV en una variable entera.
Calcule el total de la venta: Multiplicar Cantidad de TV por el valor unitario de estos y
almacenar el resultado en una variable real .
Preguntar si la venta es mayor que $100.000 realizar descuento de 5% y guardar el
resultado; de lo contrario realizar descuento de 3%. Imprimir el resultado del descuento
en ambos casos.
Calcular el iva y guardar el resultado en una variable real.
Obtener venta bruta: Sumar venta ms iva y guardar en una variable real.
Imprimir venta bruta con un mensaje adecuado.
Construya un ejemplo:
a)
N de TV 5, valor unitario $ 12000
La venta es 5*12000=60000
Descuento 60000*0.03=1800
Nueva venta 60000-1800=58200
Iva: 58200*0.18= 10476
Venta brutal es: 58200 + 10476= 68676.
b)
N de Tv 10, valor unitario $ 20000
La venta es 10*20000=200000
Descuento 200000*0.05=10000
Nueva venta 200000-10000=190000
Iva: 190000*0.18=34200
Venta brutal es: 190000 + 34200= 155800
Solucin:
PROGRAMA Venta_TV2
VARIABLES
Ct, Vut: Entero
Venta, IVA, Vbruta, Dcto: Real
INICIO
Escribir(Ingrese cantidad de TV), Leer(Ct)
Escribir(Ingrese valor unitario de TV), Leer(Vut)
Venta = Ct * Vut
Si (Venta > 100000) Entonces
Dcto= Venta*0.05
Venta = Venta Dcto
Sino
Dcto= Venta*0.03
Venta = Venta Dcto
Fin Si

39

INACAP

Direccin de rea Informtica

Escribir(El descuento es: Dcto)


IVA = Venta * 0.18
Vbruta = Venta + IVA
Escribir(Venta Bruta Es:", Vbruta)
FIN
CAPITULO 3.4: INSTRUCCION DE ALTERNATIVA MULTIPLE
INSTRUCCIN DE ALTERNATIVA MULTIPLE
Alternativa Mltiple: Controla la Alternativa Mltiple :
ejecucin de varios conjuntos de
instrucciones por el valor final de
una expresin, de tal forma que
cada conjunto de instrucciones
EXPRESION
est ligado a un posible resultado
de la expresin, existiendo adems
V
V
un bloque al final que corresponde
a otros posibles valores no
J1;; Jn
I1;; In
definidos.

V
K1;; Kn

Otro

L1;; Ln

Opcin EXPRESION de
V1 Hacer I1; I2; I3; ; In
V2 Hacer J1; J2; J3; ; Jn

Vn Hacer K1; K2; K3; ; Kn


Otro Hacer L1; L2; L3; ; Ln
Fin Opcin

Concepto de Interruptor: Un interruptor o bandera (switch) es una variable que puede


tomar los valores 1(verdadero) o 0 (falso) a lo largo de la ejecucin de un programa,
dando as informacin de una parte a otra del mismo. Puede ser utilizados para el control
de bucle.
Ejemplo:

4.

Construya un algoritmo en pseudolenguaje que permita a un usuario imprimir


boletos de viaje en avin de vuelos nacionales desde la Regin Metropolitana
hacia el Norte del Pas.
Por cada boleto se ingresar:

Nombre del pasajero.


Destino del vuelo (1=Primera Regin ..... 5=Quinta Regin).
Clase (E:ejecutiva T:turista).

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

Direccin de rea Informtica

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

Se requiere que el programa imprima un boleto con el nombre del pasajero, la


regin a la que viaja y el precio a pagar por el vuelo.
Mire: Entienda el problema
Se trata de imprimir: el nombre del pasajero, la regin de destino y el valor del pasaje,
segn el destino; y la clase.
Determinar lo que se intenta hacer
Hay que poder asignar el valor correcto del pasaje segn destino y lcase.
Identifique los datos importantes
Nombre del cliente.
Cdigo de Destino.
Clase.
Planee: Construya un plan
Se debe ingresar los datos ya mencionados
Asignar el precio del destino de la clase turista.
Luego validar si el cdigo de destino esta entre 1 y 5.
Si el cdigo de destino no corresponde se debe imprimir un mensaje y terminar el
programa, se recomienda utilizar un interruptor.
Si el cdigo esta correcto se debe preguntar por la clase y si esta es ejecutiva se debe
aumentar en $20000 el valor del pasaje.
Finalmente se debe imprimir el nombre del pasajero, la regin y el valor del pasaje.
Construya un ejemplo:
Pasajero: Julio Daz.
Destino: 3
Clase: E
Se imprime: Julio Daz.
Tercera Regin.
$80 000
Solucin:
PROGRAMA Boletos de Viaje
VARIABLES
Sw, Coddes, Precio : Entero
Nombre, Regin, clase : Alfanumrico
INICIO
Escribir (Ingrese Nombre Del Cliente)
Leer(NomCli)
Escribir(Ingrese Cdigo De Destino))
41

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

EJERCICIOS PROPUESTOS DE ALTERNATIVA SIMPLE, DOBLE Y MULTIPLE

1) Suponga que un individuo desea invertir su capital en un banco y desea saber


cuanto dinero ganara despus de un mes si el banco paga a razn de 2%
mensual.
2) Un vendedor recibe un sueldo base mas un 10% extra por comisin de sus
ventas, el vendedor desea saber cuanto dinero obtendr por concepto de
comisiones por las tres ventas que realiza en el mes y el total que recibir en el
mes tomando en cuenta su sueldo base y comisiones.
3) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente
desea saber cuanto deber pagar finalmente por su compra.
4) Un alumno desea saber cual ser su calificacin final en la materia de
Algoritmos. Dicha calificacin se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificacin del examen final.
15% de la calificacin de un trabajo final.
5) Un maestro desea saber que porcentaje de hombres y que porcentaje de
mujeres hay en un grupo de estudiantes.
6) Realizar un algoritmo que calcule la edad de una persona.
7) 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.
8) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara
si su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso
contrario.
9) En un almacn se hace un 20% de descuento a los clientes cuya compra
supere los $1000
Cual ser la cantidad que pagara una persona por su compra?
10) Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig.
manera:
Si trabaja 40 horas o menos se le paga $16 por hora
43

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

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

Direccin de rea Informtica

CAPITULO 3.5 ESTRUCTURAS CCLICAS O DE ITERACIN


CONCEPTOS
Contadores: Un contador es una variable cuyo valor se incrementa o decrementa en una
cantidad constante cada vez que se produce un determinado suceso o accin. Los
contadores se utilizan en las estructuras de repeticin con la finalidad de contar sucesos o
acciones internas del bucle; deben realizar una operacin de inicializacin y,
posteriormente, las sucesivas de incrementacin o decrementacin del contador. La
inicializacin consiste en asignar al contador un valor inicial. Se situar antes y fuera del
bucle la inicializacin. Su estructura es la siguiente.
Nombre_del_contador=valor_inicial
En cuanto a los incrementos o decrementos del contador, puesto que la operacin de
asignacin admite que la variable que recibe el valor final de una expresin intervenga en
la misma, se realizarn a travs de este tipo de instruccin de asignacin, de la siguiente
forma:
(incremento) Nombre_del_contador = Nombre_del_contador + valor_constante
(decremento) Nombre_del_contador = Nombre_del_contador - valor_constante
Acumulador: Son variables cuyo valor se incrementa o decrementa en una cantidad
variable, al igual que los contadores tambin necesitan inicilizarce fuera del bucle, esto es:
Nombre_del_acumulador=valor_inicial
Su operacin dentro del bucle queda definida en la siguiente expresin:
Nombre_del_acumuladorr = Nombre_del_acumulador + nombre_variable

46

INACAP

Direccin de rea Informtica

3.51 INSTRUCCIN MIENTRAS


INSTRUCCIN MIENTRAS
Mientras: Repite la ejecucin de un conjunto Mientras:
de instrucciones, de tal forma que estas se
ejecutan
mientras
la
condicin
sea
verdadera, la condicin,
ser evaluada
siempre antes de cada repeticin.

CONDICION

Mientras ( CONDICION ) Hacer


I1; I2; I3; ; In
Fin Mientras

I1; I2; I3; ; In

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.

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, 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.
Calcular e imprimir, dentro del ciclo ,la nota de cada alumno
Acumular dentro del ciclo las notas de cada alumno
Calcular el promedio del curso fuera del ciclo

47

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

3.52 INSTRUCCIN REPETIR


INSTRUCCIN REPETIR
Repetir: Repite la ejecucin de un conjunto Repetir:
de instrucciones (I1...In), de tal forma que
estas se ejecutan mientras la condicin sea
FALSA, que ser evaluada siempre despus
de cada repeticin, es decir, hasta que la
condicin sea VERDADERA. Hay que hacer
notar que el conjunto de instrucciones se
F
ejecuta al menos una vez

I1; I2; I3; ; In

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

Direccin de rea Informtica

Validar que la nota semestral y del examen este entre 1 y 7


Calcular e imprimir, dentro del ciclo ,la nota de cada alumno
Acumular dentro del ciclo las notas de cada alumno
Calcular el promedio del curso fuera del ciclo
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:
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)

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

50

INACAP

Direccin de rea Informtica

7. A continuacin se mostrara el ejemplo del programa Boletos de Viaje pero validando


el destino y la clase con la instruccin Repetir. De esta forma no necesitaremos el
interruptor.
PROGRAMA Boletos de Viaje2
VARIABLES
Coddes, Precio : Entero
Nombre, Regin, clase : Alfanumrico
INICIO
Escribir (Ingrese Nombre Del Cliente)
Leer(NomCli)
Repetir
Escribir(Ingrese Cdigo De Destino))
Leer(Coddes)

Hasta (Coddes>=1 and Coddes<=5)


Repetir
Escribir(Ingrese Clase E:ejecutiva, T:turista)
Leer(Clase)

Hasta (Clase<>E or Clase<>T)


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

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

Direccin de rea Informtica

3.53 INSTRUCCIN DESDE


INSTRUCCIN DESDE
Para: Repite la ejecucin del conjunto de Desde :
instrucciones, de tal forma que estas se
ejecuten un nmero determinado de
veces, determinado por el valor de la
variable inicial y final, es decir el ciclo
termina cuando esta variable toma el valor
final. El Incremento sino se especifica por
defecto asume un incremento de uno.

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

Mire: Entienda el problema


El N combinatorio implica el calculo de 3 nmeros factoriales los cuales una vez
obtenidos se deben operar de acuerdo a la formula.
Determinar lo que se intenta hacer
Se debe calcular el factorial de n, k y el factorial de la diferencia.
El factorial de 5 es: 5!=1*2*3*4*5=120
Identifique los datos importantes
Se debe ingresar n y k
Hay que considerar que n debe ser siempre mayor o igual que k
N y K son enteros positivos.
Planee: Construya un plan
52

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

EJERCICIOS PROPUESTOS DE CICLOS

1) Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de


Diseo Estructurado de Algoritmos
2) Leer 10 nmeros y obtener su cubo y su cuarta.
3) Leer 10 nmeros e imprimir solamente los nmeros positivos
4) Leer 20 nmeros e imprimir cuantos son positivos, cuantos negativos y cuantos
neutros.
5) Leer 15 nmeros negativos y convertirlos a positivos e imprimir dichos nmeros.
6) Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos.
Realizar un algoritmo para calcular la calificacin media y la calificacin mas baja
de todo el grupo.
7) Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el
multiplicando, el multiplicador y el producto.
8) Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y
segundos de un da desde las 0:00:00 horas hasta las 23:59:59 horas
9) Una compaa de seguros tiene contratados a n vendedores. Cada uno hace
tres ventas a la semana. Su poltica de pagos es que un vendedor recibe un
sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su
compaa desea saber cuanto dinero obtendr en la semana cada vendedor por
concepto de comisiones por las tres ventas realizadas, y cuanto tomando en
cuenta su sueldo base y sus comisiones.
10) En una empresa se requiere calcular el salario semanal de cada uno de los n
obreros que laboran en ella. El salario se obtiene de la sig. forma:
Si el obrero trabaja 40 horas o menos se le paga $20 por hora
Si trabaja mas de 40 horas se le paga $20 por cada una de las primeras 40
horas y $25 por cada hora extra.
11) Determinar cuantos hombres y cuantas mujeres se encuentran en un grupo de
n personas, suponiendo que los datos son extrados alumno por alumno.
12) El Depto. de Seguridad Publica y Transito del D.F. desea saber, de los n autos
que entran a la ciudad de Mxico, cuantos entran con calcomana de cada color.
54

INACAP

Direccin de rea Informtica

Conociendo el ultimo dgito de la placa de cada automvil se puede determinar el


color de la calcomana utilizando la sig. relacin:
DGITO
1o2
3o4
5o6
7o8
9o0

COLOR
amarilla
rosa
roja
verde
azul

13) Obtener el promedio de calificaciones de un grupo de n alumnos.


14) Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de
inters. Cual ser la cantidad de dinero que esta persona tendr al cabo de un ao
si la ganancia de cada mes es reinvertida?.
15) Calcular el promedio de edades de hombres, mujeres y de todo un grupo de
alumnos.
16) Encontrar el menor valor de un conjunto de n nmeros dados.
17) Encontrar el mayor valor de un conjunto de n nmeros dados.
18) En un supermercado un cajero captura los precios de los artculos que los
clientes compran e indica a cada cliente cual es el monto de lo que deben pagar.
Al final del da le indica a su supervisor cuanto fue lo que cobro en total a todos los
clientes que pasaron por su caja.
19) Cinco miembros de un club contra la obesidad desean saber cuanto han
bajado o subido de peso desde la ultima vez que se reunieron. Para esto se debe
realizar un ritual de pesaje en donde cada uno se pesa en diez bsculas distintas
para as tener el promedio mas exacto de su peso. Si existe diferencia positiva
entre este promedio de peso y el peso de la ultima vez que se reunieron, significa
que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo
que el problema requiere es que por cada persona se imprima un letrero que diga:
SUBIO o BAJO y la cantidad de kilos que subi o bajo de peso.
20) Se desea obtener el promedio de g grupos que estn en un mismo ao
escolar; siendo que cada grupo puede tener n alumnos que cada alumno puede
llevar m materias y que en todas las materias se promedian tres calificaciones
para obtener el promedio de la materia. Lo que se desea desplegar es el promedio
de los grupos, el promedio de cada grupo y el promedio de cada alumno.
21) En una tienda de descuento las personas que van a pagar el importe de su
compra llegan a la caja y sacan una bolita de color, que les dir que descuento
tendrn sobre el total de su compra. Determinar la cantidad que pagara cada
cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la
55

INACAP

Direccin de rea Informtica

bolita es roja el cliente obtendr un 40% de descuento; si es amarilla un 25% y si


es blanca no obtendr descuento.
22) En un supermercado una ama de casa pone en su carrito los artculos que va
tomando de los estantes. La seora quiere asegurarse de que el cajero le cobre
bien lo que ella ha comprado, por lo que cada vez que toma un articulo anota su
precio junto con la cantidad de artculos iguales que ha tomado y determina cuanto
dinero gastara en ese articulo; a esto le suma lo que ira gastando en los dems
artculos, hasta que decide que ya tomo todo lo que necesitaba. Aydale a esta
seora a obtener el total de sus compras.
23) un teatro otorga descuentos segn la edad del cliente. determinar la cantidad
de dinero que el teatro deja de percibir por cada una de las categoras. Tomar en
cuenta que los nios menores de 5 aos no pueden entrar al teatro y que existe un
precio nico en los asientos. Los descuentos se hacen tomando en cuenta el
siguiente cuadro:
Categoras

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 %

24) La presin, volumen y temperatura de una masa de aire se relacionan por la


formula:
masa=
presin * volumen
.
0.37 * (temperatura + 460)
Calcular el promedio de masa de aire de los neumticos de n vehculos que
estn en compostura en un servicio de alineacin y balanceo. Los vehculos
pueden ser motocicletas o automviles.
25) Determinar la cantidad semanal de dinero que recibir cada uno de los n
obreros de una empresa. Se sabe que cuando las horas que trabajo un obrero
exceden de 40, el resto se convierte en horas extras que se pagan al doble de una
hora normal, cuando no exceden de 8; cuando las horas extras exceden de 8 se
pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al
triple.

56

INACAP

Direccin de rea Informtica

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

PESO POR KILO DE HUEVO


1.2 * promedio de calidad
1.00 * promedio de calidad
0.80 * promedio de calidad

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

Direccin de rea Informtica

momento para decidir en forma rpida si los trabajos que se soliciten en el da se


deben aceptar o no.
32) Calcular la suma siguiente:
100 + 98 + 96 + 94 + . . . + 0 en este orden
33) Leer 50 calificaciones de un grupo de alumnos. Calcule y escriba el porcentaje
de reprobados. Tomando en cuenta que la calificacin mnima aprobatoria es de
70.
34) Leer por cada alumno de Diseo estructurado de algoritmos su numero de
control y su calificacin en cada una de las 5 unidades de la materia. Al final que
escriba el numero de control del alumno que obtuvo mayor promedio. Suponga
que los alumnos tienen diferentes promedios.
35) El profesor de una materia desea conocer la cantidad de sus alumnos que no
tienen derecho al examen de nivelacin.
Disee un algoritmo que lea las calificaciones obtenidas en las 5 unidades
por cada uno de los 40 alumnos y escriba la cantidad de ellos que no tienen
derecho al examen de nivelacin.
36) Leer los 250,000 votos otorgados a los 3 candidatos a gobernador e imprimir
el numero del candidato ganador y su cantidad de votos.
37) Suponga que tiene usted una tienda y desea registrar las ventas en su
computadora. Disee un algoritmo que lea por cada cliente, el monto total de su
compra. Al final del da que escriba la cantidad total de ventas y el numero de
clientes atendidos.
38) Suponga que tiene una tienda y desea registrar sus ventas por medio de un
computador. Disee un pseudocdigo que lea por cada cliente:
A).- el monto de la venta,
B).- calcule e imprima el IVA ,
C).-calcule e imprima el total a pagar,
D).- lea la cantidad con que paga el cliente,
E).-calcule e imprime el cambio.
Al final del da deber imprimir la cantidad de dinero que debe haber en la caja.

58

INACAP

Direccin de rea Informtica

UNIDAD 4: ESTRUCTURA DE ARREGLO


CAPITULO 4.1: CONCEPTOS
Definiciones:
Las estructuras de arreglos o tablas permiten estructurar y manejar los datos bsicos
(nmeros enteros, reales, carcter o string). Estas estructuras de datos se encuentran
prcticamente en la totalidad de los lenguajes de programacin, clasificadas como
estructuras lineales y estticas de datos internos. Toda estructura de datos o dato
estructurado se caracteriza por su organizacin y por las operaciones que en dichas
estructuras se han definido.
Arreglo o Tabla: Es una estructura de datos constituida por un nmero fijo de elementos,
todos ellos del mismo tipo y ubicados en direccin de memoria fsicamente contiguas.
Elementos de un arreglo: Tambin denominados componentes, es cada uno de los
datos que forman parte integrante del arreglo.
Nombre de un arreglo: Es la identificacin utilizada para referenciar el arreglo y los
elementos que la forman.
Tipo de datos de un arreglo: marca del tipo bsico que es comn a todos y cada uno de
los elementos o componentes que forman dicha estructura.
ndice: Es un valor numrico entero y positivo a travs del cual podemos acceder
directamente e individualmente a los distintos componentes que forman dicho arreglo,
pues marca la situacin relativa de cada elemento o componente dentro de la misma.
Tamao de un arreglo: Es el tamao o longitud de un arreglo, vienen determinada por el
nmero mximo de elementos que la forman, siendo el tamao mnimo un elemento y el
tamao mximo de n elementos.
Acceso a los elementos o componentes de un arreglo: Los elementos o componentes
de un arreglo o tabla tratados individualmente son autnticos datos bsicos que reciben
el mismo trato que cualquier otra variable, con un tipo de datos que coincide con el tipo de
la tabla y una denominacin propia que le distingue del resto de los elementos que
constituyen dicha estructura. Para acceder o referenciar un elemento en particular es
suficiente con indicar el nombre de la tabla seguida del ndice, correspondiente a dicho
elemento entre parntesis corchete [].
Dimensin de un arreglo: Viene determinada por el nmero de ndices que necesitamos
para acceder a cualquier elemento que la forman.

59

INACAP

Direccin de rea Informtica

CAPITULO 4.2 : ARREGLOS UNIDIMENSIONALES O VECTORES


Clasificacin de los arreglos: Un arreglo se clasifica segn sus dimensiones hay
arreglos unidimensionales, bidimensionales y multidimensionales, en este curso se
estudiarn las unidimensionales y las bidimensionales
1.Arreglo Unidimensionales: Tambin reciben el nombre de vector y son
estructuras de datos cuyos elementos son del mismo tipo y con las mismas
caractersticas, y se referencian con un nombre o identificador comn.
Dichos elementos se ubican en posicin de memoria fsicamente contigua,
poseen una fila y n columnas.
Ejemplo

INDICE

5
1

10
2

25
3

30
4

45
5

3
6

Nombre del arreglo: NUM


Tipo de elementos : enteros
Tamao de la tabla : 6
Elementos de la tabla:
Num[1]-> 5
Num[2]-> 10
Num[3]-> 25
Num[4]-> 30
Num[5]-> 45
Num[6]-> 3
Indices: 1, 2, 3, 4, 5, 6
Dimensin: unidimensional, pues solo requiere de un ndice.
Operaciones sobre vectores
Las operaciones que se pueden realizar sobre un vector o tabla unidimensional son:
1.Declarar: Consisten en dar el nombre del vector, el mximo de elementos entre
corchetes y el tipo de elementos.
Nombre_vector[mximo]:tipo_variable
Ejemplo
a) Num[6]:entero

60

INACAP

Direccin de rea Informtica

b) X[25]:real

2.Asignacin: A cada elemento del vector referenciado por su ndice, se le


aplica una sentencia de asignacin, cuyo formato es la siguiente:
Nombre_vector[ndice]=Expresin
Ejemplo
a) X=5
Num[2]=X
b) I=3
Num[I]=X
c) Num[X]=56
Num[X-I]=-96
d) desde i=1 hasta 6 hacer
Nm[i]=2*i
Fin desde

3.Lectura: La operacin de lectura nos permite almacenar valores en los distintos


elementos de un vector, valores que son introducidos a travs de un dispositivo
externo, como por ejemplo, el teclado. El formato para realizar una operacin de
lectura de un dato que ser almacenado en un elemento o componente de un
vector es el siguiente:
Leer(Nombre_vector[ndice] )
Ejemplos:
a) Ecribir(ingrese el nmero)
Leer(X)
Num[3]=X
b) Desde i=1 hasta 6 hacer
escribir (ingrese un nmero real)
leer(x)
Num[i]=X
Fin desde

61

INACAP

Direccin de rea Informtica

c) Desde i=1 hasta 6 hacer


escribir (ingrese un nmero real)
leer(Num[i])
Fin desde
e) Desde i=1 hasta n hacer
repita
Escribir( Ingrese un nmero POSITIVO)
Leer(x)
Hasta x> 0
Num[i]=x
Fin desde

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

Direccin de rea Informtica

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

Direccin de rea Informtica

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

2. Desarrollar un algoritmo en Pseudolenguaje que permita almacenar en un vector 50


nmeros reales ingresados por el usuario, despus del almacenamiento debe mostrar
el menor y mayor nmero que se encuentra en el arreglo.
3. Utilizando el vector creado en el ejercicio anterior (2) muestre el nmero almacenado
que se encuentran en las posiciones mltiplos de 3.
4. Desarrolle un algoritmo en pseudolenguaje que permita realizar los siguientes
procesos:

Definir un arreglo de nombre T de tipo entero con un largo 50.


Ingresar los elementos al arreglo desde el teclado.
Realizar la suma de todos los elementos almacenados en el arreglo
Mostrar elementos almacenados en el arreglo desde el ltimo al primero
Mostrar el resultado de la suma.

5. Desarrollar un algoritmo en Pseudolenguaje que permita almacenar en un arreglo de


nombre N el nombre, en otro llamado R el rut, y en un vector de nombre S el sueldo
imponible de los 200 trabajadores de una empresa, e imprimir el siguiente listado.
Acta de sueldos
Nombre

RUT

Sueldo
Imp.

Salud

TOTALES
DATOS:
64

AFP

Total desc. Sueldo Liq.

INACAP

Direccin de rea Informtica

Considere los siguientes descuentos:


AFP:12,8%
Salud: 7,2%

6. Utilizando los mismos arreglos del ejercicio n4 desarrollar un algoritmo en


Pseudolenguaje que permita generar el siguiente listado
SUELDOS LIQUIDOS MAYORES DE 250000
APELLIDOS

RUT

TOTALES

65

SUELDOS LIQUIDOS

INACAP

Direccin de rea Informtica

CAPITULO 4.3: MTODOS DE BSQUEDA Y ORDENAMIENTO


Antes de comenzar con los mtodos de bsqueda y ordenamiento es necesario definir el
concepto de variable auxiliar. Esta variable es muy utilizada para intercambiar los valores
de dos variables numricas sin perder sus contenidos o valores, comnmente se le asocia
con el nombre de aux.
El siguiente algoritmo permite el cambio de valor de la variables
PROGRAMA Intercambio
VARIABLES
a, b, aux: Entero
INICIO
Leer (a,b)
aux = a
a=b
b = aux
Escribir (a,b)
FIN
BUSQUEDA
La operacin de bsqueda consiste en determinar si un elemento determinado pertenece
o no al conjunto de elementos que forman parte integrante de un arreglo o tabla y, en
caso afirmativo indica la posicin que dicho elemento ocupa.
Los mtodos ms usados de bsqueda son:
1. Bsqueda secuencial o lineal.
2. Bsqueda binaria o dicotmica.
Bsqueda secuencial en un vector desordenado: Esta operacin consiste en recorrer
el vector secuencialmente de izquierda a derecha hasta encontrar el elemento el elemento
buscado o hasta alcanzar el final del vector, en cuyo caso finalizar la operacin de
bsqueda sin haber localizado el elemento en cuestin. En aquellos casos en que el
elemento buscado se encuentra repetido, indicar la posicin del situado ms a la
izquierda, es decir, el de menor ndice.
En el algoritmo de bsqueda secuencial, vector es el nombre del vector y N es el largo del
mismo.

66

INACAP

Direccin de rea Informtica

PROGRAMA bsqueda hasta que encuentra el elemento


VARIABLES
Elemento: cualquier tipo
i: entero
INICIO
Escribir(ingrese el elemento a buscar)
Leer(elemento)
i=1
mientras((i<N) and (vector[i]<>elemento)
i=i+1
fin mientras
Si (vector[i]=elemento) entonces
Escribir(el elemento se encuentra en la posicin, i)
Sino
Escribir(el elemento no se encuentra en el vector)
Fin si
FIN
Observaciones:
a) elemento corresponde al elemento que ingresa el usuario para ser
buscado.
b) N corresponde al tope o largo que posee el vector.
c) vector es el arreglo unidimensional donde se busca el elemento.
Ejemplo:
En un vector de nombre Cod se encuentra los 100 cdigos de los productos de una
bodega, en otro vector de nombre Nom se encuentra los nombre de los 100 productos.
Crear un algoritmo en pseudolenguaje que al ingresar un usuario un cdigo muestre el
nombre del producto si existe o el mensaje PRODUCTO NO EXISTENTE.
Mire: Entienda el problema
Se pide que el algoritmo busque el cdigo que ingresa el usuario en el vector Cod, y que
liste el nombre asociado a este cdigo que se encuentra en el vector de nombre Nom.
Determinar lo que se intenta hacer
Debe leer el cdigo, buscarlo en el vector Cod e imprimir el nombre del producto que se
encuentra en el vector Nom o el mensaje PRODUCTO NO EXISTENTE si el cdigo no
se encuentra.
Identifique los datos importantes

67

INACAP

Direccin de rea Informtica

Los vectores ya existen.


El cdigo que se encuentra en la posicin 1 del vector Cod corresponde al nombre del
producto que se encuentra en la posicin 1 del vector Nom y as sucesivamente.
El largo de cada vector es de 100.
El cdigo a buscar debe ser ingresado por el usuario.
Planee: Construya un plan
Declarar el contador y el cdigo a ingresar el usuario
Adaptar el mtodo de bsqueda lineal segn el requerimiento del problema.
Si el cdigo se encuentra en el vector Cod utilizar la posicin encontrada para imprimir
el contenido del vector Nom (nombre del producto).
Si no se encuentra escribir el mensaje requerido
Construya un ejemplo:
Asumamos los siguientes vectores como ejemplos para Cod y Nom
Cod
Indices

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

Direccin de rea Informtica

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

Direccin de rea Informtica

Identifique los datos importantes


Declarar un vector con un largo de 100.
Los valores a almacenar son nmeros enteros.
Declarar una variables auxiliar para hacer el intercambio de contenido si es necesario.
Utilizar contadores para crear los ciclos que se requieren.
El criterio del ordenamiento es de menor a mayor
Planee: Construya un plan
Declarar los contadores, variable auxiliar y el vector.
Crear un ciclo para leer los nmeros.
Adaptar el mtodo de ordenamiento Sort para ordenar el vector.
Crear un ciclo para listar el vector ya ordenado.
Construya un ejemplo:
Asumamos el que el nombre del vector es Num
Num
Indices

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

Direccin de rea Informtica

Escribir(Num[I])
Fin desde
FIN

Ejercicios:

1. Construya un algoritmo que permita leer y almacenar 20 valores numricos


enteros. Luego, calcule y muestre la suma y el promedio de dichos valores.
2. Escribir un algoritmo en pseudolenguaje que permita resolver el siguiente problema: En
un centro meteorolgico se han hecho N mediciones en un da. Al final se debe
entregar cul es la medicin ms alta y cul es la ms baja.
3. Se tienen dos vectores A y B, con el mismo nmero de elementos(20 Elementos c/u).
Desarrolle un algoritmo que permita comparar cada elemento del vector A con el
correspondiente del vector B, almacenando el elemento mayor entre ambos, en un
tercer vector C.
4. Si los elementos comparados son iguales, se traspasa cualquiera de ellos al vector C.
Escriba el vector C.
5. Resuelve el problema de clculo de la Desviacin Estndar, para lo cual debes definir
y usar la estructura de datos ms adecuada para resolver el problema. Las frmulas a
utilizar son:

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

Direccin de rea Informtica

9. Realice un algoritmo que al leer un nmero ingresado por el usuario, imprima la


cantidad de veces que se encuentra el nmero en un vector de nombre T cuyo largo
es 500.
10. Hacer un algoritmo que al leer la edad de 3.5000 personas almacene dichas edades
en un vector llamado edad y que genere otro vector que contenga las edades
ordenadas de menor a mayor y listar dicho vector ordenado.
11. Dado un vector llamado A de largo 700 y otro vector llamado B de largo 100. Hacer un
algoritmo que genere otro arreglo llamado C que contenga los elementos repetidos de
los vectores A y B.
12. Hacer un algoritmo que genere los siguientes vectores con los datos de los 4.000
empleados de una empresa.
A) Nom contiene el nombre
B) Rut Contiene el rut
C) Ed contiene las edades.
D) S contiene el sueldo imponible.
E) N contiene la cantidad de cargas familiares.
Segn los datos almacenados en los vectores el algoritmo debe generar el
listados

siguientes

PLANILLA DE PAGOS
NOMBRE
Juan Leiva
Mara Ortiz

SUELDO IMPONIBLE

DESCUENTOS SUELDO LQUIDO

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

Direccin de rea Informtica

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

Direccin de rea Informtica

Capitulo 4.4: ARREGLOS BIDIMENSIONAL O MATRIZ


Es un conjunto de elementos del mismo tipo caracterizados porque la forma de identificar
o acceder a cada elemento se realiza por mediante el uso de dos ndices, donde el
primero nos marca la fila y el segundo la columna.
La nomenclatura utilizada para acceder o referenciar a un elemento de la matriz es la
siguiente:
Nombre_matriz[fila,columna]
Ejemplo:
NUM
2
2
1
4
1

-2
5
10
1
1

-10
16
9
47
15

1
2
12
30
45

Segn el ejemplo responda


1.
2.
3.
4.
5.
6.
7.

Declaracin de la tabla: NUM[5,4]: ENTERO


Nmeros de filas: 5
Nmeros de columnas: 4
Dimensin: BIDIMENSIONAL
Nombre: NUM
Los elementos cuya suma de sus ndices sea impar: 2,1,1,5,1,-10,9,15,2,30
Los ndices cuyo elementos es par:
[1,1];[2,1];[4,1];[1,2];[3,2];[1,3];[2,3];[2,4];[3,4];[4,4]
8. Si J=3 y L=2 resuelva los siguientes clculos:
8.1.
8.2.
8.3.

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

Operaciones sobre matrices


En las matrices las operaciones de declaracin, asignacin, lectura y escritura obedecen
al mismo principios de los vectores, la diferencia es que como las matrices son arreglos
bidimensionales requieren de dos ndices [fila, columna] ; as pues tenemos que:
74

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

Planee: Construya un plan


Declarar una matriz cuya dimensiones ser 50x12.
Los valores a almacenar son nmeros reales.
Declarar los contadores necesarios para generar los ciclos.
Declarar un acumulador para el calculo del promedio de los pesos.
Crear los ciclos para leer los datos por clientes y almacenarlos en la matriz.
Crea otro ciclo que permita acumular los pesos por fila.
Calcular el promedio por fila e imprimirlo.
Construya un ejemplo:
P
1
2
3
4
5

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

Direccin de rea Informtica

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

Direccin de rea Informtica

7. Dada la matriz A de orden 50 x 50, disear un algoritmo que:


7.1 Guarde en un arreglo llamado S los elemento de la diagonal superior.
7.2 Guarde en un arreglo llamado I los elemento de la diagonal inferior.
7.3 Guarde en un arreglo llamado P los elemento pares de la matriz.

8. Hacer un algoritmo que almacene en una matriz y en un vector la informacin de los


n alumnos del Instituto validada :
8.1 El nombre en la matriz DAT.
8.2 El curso que puede ser cualquiera que cumpla con la codificacin del
Instituto. En la matriz DAT
8.3 La jornada que puede ser A, B y C. En la matriz DAT
8.4 Promedio del semestre en el arreglo NUM
8.5 Nota de examen en el arreglo NUM.
9. Utilizando la matriz y el vector anterior, disee un algoritmo que genere el siguiente
listado ordenado por apellido.
Listado de notas
Apellido
Promedio

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

Direccin de rea Informtica

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

Direccin de rea Informtica

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

Direccin de rea Informtica

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

Direccin de rea Informtica

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

Direccin de rea Informtica

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

CAPITULO 5.2: VECTOR Y REGISTRO


Si se pidiera un algoritmo donde hay que almacenar los datos de los 1000 empleados de
una empresa, definir 1000 variables del tipo registro empleado sera bastante complicado
y poco prctico. Para estas situaciones lo ms recomendable es declarar un arreglo
unidimensional del tipo empleado, esto significa que en cada posicin del vector est
almacenando todos los datos definidos en el registro para cada empleado, este tipo de
declaracin se presenta a continuacin.
Nombre_vector[largo]: tipo nombre_registro
Ejemplo
Registro: empleado
nom: cadena
dir : cadena
83

INACAP

Direccin de rea Informtica

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

Mire: Entienda el problema


Se pide crear un registro con los campos mencionados que se encuentran relacionado
con los productos de una bodega. Los datos de los campos se deben leer y almacenar en
un vector ya que son 150 productos, despus de ser almacenados se pide listar en orden
ascendente utilizando como criterio el precio unitario.
Determinar lo que se intenta hacer
Debe crear los campos para el registro, en cada posicin del vector se debe almacenar un
registro, despus del almacenamiento de datos, hay que aplicar el mtodo de
ordenamiento Sort para ordenar el vector y despus imprimir la informacin.
Identifique los datos importantes
Los campos estn definidos en el enunciado con su nombre y su tipo.
Hay que utilizar un vector con 150 celdas para almacenar cada registro.
Los contenidos de los campos los ingresa el usuario.
Se requiere de un contador para generar el ciclo del vector.
Planee: Construya un plan
Declarar el registro.
Declarar el vector y una variable auxiliar del tipo registro.
Declarar los contadores para generar los ciclos a utilizar.

84

INACAP

Direccin de rea Informtica

Leer y almacenar la informacin campo a campo.


Aplicar el mtodo de ordenamiento Sort para ordenar el vector.
Listar la informacin solicitada.
Construya un ejemplo:
Supongamos que el vector que contiene los registros se llama B, entonces el vector
tendr por ejemplo la siguiente forma:
B
Azcar
12
250
5000
1

Te
560
150
8900
2

Aceite
780
850
79000
3

.
.

.
.

Arroz
03
799
45000
150

Arroz
03
799
45000

.
.

Aceite
780
850
79000

El vector debe quedar


B
Te
560
150
8900

Azcar
12
250
5000
1

85

150

INACAP

Direccin de rea Informtica

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

Direccin de rea Informtica

CAPITULO 5.3: ARCHIVO


Cuando creamos un algoritmo los datos que intervienen tienen existencia real en la
memoria de la computadora, al acabar el recorrido de este algoritmo las constantes y
variables que utilizamos dejan de tener existencia.
Hay situaciones en que es necesario disponer de los datos para que podamos tratarlo en
forma permanente, tanto para recuperarlos como para ser utilizados en otros algoritmos.
La solucin para estas situaciones es utilizar otra estructura de dato externa llamada
archivos o ficheros.
Archivo se define como un junto de datos que se encuentra fsicamente en un soporte
externo de la memoria ya sea disco duro o disquete entre otros, de tal forma que los datos
en l almacenados podamos utilizarlos o modificarlos.
El uso de un archivo en un algoritmo requiere de los siguientes pasos.
a) Declarar el archivo lgico.
b) Asignarle un nombre fsico al archivo declarado.
c) Apertura del archivo ya sea en modos de escritura, lectura o
modificacin.
d) Efectuar las operaciones sobre l estas son: leer o escribir.
e) Cierre del archivo.

OPERATORIAS CON ARCHIVOS


DECLARACION: Definir una variable del tipo archivo
Nombre_archivo : archivo
Ejemplo:
ar : archivo o fichero
1. ASIGNACIN FSICA: Consiste en asociar el nombre lgico del archivo con el nombre
fsico, debe indicarse la ruta del archivo y su nombre fsico puede tener extensin.
Nombre_archivo_lgico= ruta\nombre_archivo_fsico
Ejemplo:

87

INACAP

Direccin de rea Informtica

ar = c:\num.dat

2. APERTURA DE UN ARCHIVO: Consiste en dejar disponible para el algoritmo la


informacin contenida en un archivo fsico previamente asignado a un nombre lgico.
Los modos de apertura son :
2.1.
2.2.
2.3.

Leer: Permite extraer informacin de un archivo fsico. Esto requiere que el


archivo exista.
Escribir: Introduce datos al archivo. Si el archivo existe se borrar toda la
informacin que en l se encuentra.
Aadir: Introduce nueva informacin en un archivo, al final del ltimo dato
que se encuentre en l.
ABRIR nombre_archivo_lgico MODO tipo_modo
Ejemplos:
a) Abrir ar modo aadir
b) Abrir ar modo escribir
c) Abrir ar modo leer

3. OPRATORIA CON ARCHIVO: Las operatorias que se pueden efectuar en un archivo


son: leer y escribir.
3.1.

Leer: permite extraer informacin del archivo, una variable debe recibir esta
informacin.
Leer(nombre_archivo_lgico, variable)

3.2.

Escribir: permite almacenar datos en un archivo, los datos almacenados


puede ser a travs de variables o constante.
Escribir(nombre_archivo_lgico, variable o constante)
Ejemplos:
Leer(ar, x)
Escribir(ar,y)
Escribir(ar,6)

4. CIERRE DE UN ARCHIVO: Permite dejar inaccesible la informacin contenida en el


archivo fsico para el algoritmo, quedando el nombre lgico del archivo desconectado
del archivo fsico.
Cerrar (nombre_archivo_lgico)

88

INACAP

Direccin de rea Informtica

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

Mire: Entienda el problema


Se pide buscar un producto segn su cdigo en un archivo y listar los datos del producto
si se encuentra de lo contrario se debe imprimir un mensaje.
Determinar lo que se intenta hacer
Debe abrir un archivo que se encuentra grabado en el disco duro y leer la informacin que
se encuentra en l para buscar un cdigo que ser ingresado por el usuario, encontrado
el cdigo deber lista la informacin del registro o enviar un mensaje sino se encuentra en
el archivo. Termida la bsqueda y el listado se debe cerrar el archivo.
Identifique los datos importantes
El nombre del archivo y su ubicacin fsica.
Los campos estn definidos en el enunciado con su nombre y su tipo.
El archivo debe abrirse en modo lectura, segn el enunciado ya existe.
Leer el cdigo ingresado por el usuario
La lectura de los registros del archivo debe ser hasta el fin de archivo, ya que no se
sabe cuantos registros son.
Planee: Construya un plan
Declarar el registro y las variables.
Asignar un archivo lgico al fsico.
89

INACAP

Direccin de rea Informtica

Abrir el archivo en modo lectura


Leer el cdigo que ingresa el usuario.
Crear un ciclo con la funcin EOF y aplicar un mtodo de bsqueda para localizar el
cdigo.
Si se encuentra el cdigo listar los datos sino enviar un el mensaje solicitado en el
enunciado.
Cerrar el archivo.
Construya un ejemplo:
Supongamos que al archivo lgico lo llamamos Pro y su contenido es el siguiente.
Archivo Pro
Nom
co
vu
ca
Azcar 12
250
5000
Te
560
150
8900
Aceite 780
850
79000
. .
.
Arroz 03
799
45000
Si ingresamos el cdigo 03 los datos a listar son:
Nombre
: Arroz
Cdigo
: 03
Valor unitario $
: 799
Cantidad
: 45000
Solucin:
PROGRAMA Ejemplo archivo
VARIABLES
Registro: bodega
nom: cadena
co : entero
vu : entero
ca : entero
fin registro
ar
: c\doto.dat
reg
: tipo bodega
cod,Sw :entero
INICIO
Abrir ar modo lectura
Sw=0
Escribir(Ingrese el cdigo del producto)
Leer(cod)
Mientras not EOF(ar) haga
Leer (ar,reg)
Si reg.co=cod entonces
Sw=1
Fin si
Fin mientras
Si Sw=1 entonces
Escribrir(Nombre : , reg.nom)
Escribrir(codigo
: , reg.co)
90

INACAP

Direccin de rea Informtica

Escribrir(Valor unitario$: , reg.vu)


Escribrir(Cantidad
: , reg.ca)
Si no
Escribir(PRODUCTO NO EXISTENTE)
Fin
Cerrar(ar)
Fin
EJERCICIOS:
1. Escriba un algoritmo en pseudolenguaje que permita crear un archivo de nombre
DATO.DAT en el disco duro que permita almacenar 100 nmeros ingresados por el
usuario.
2. Escriba un algoritmo en pseudolenguaje que permita imprimir los nmeros que son
pares que se encuentran en el archivo anteriormente creado.
3. Escriba un algoritmo en pseudolenguaje que permita agregar 50 nmeros mas
ingresados por el usuario al archivo creado de nombre DATO.DAT.
4. Utilizando el archivo DATO.DAT escriba un algoritmo en pseudolenguaje que permita
imprimir todos aquellos nmeros que son mayores a 50.
5. Utilizando el archivo DATO.DAT escriba un algoritmo en pseudolenguaje que al leer
un nmero ingresado por el usuario imprima encontrado si est en el archivo o no
existe si no est en el archivo.
6. Construya un algoritmo en pseudolenguaje que permita leer el archivo
AGENDA_INACAP de direcciones, que se encuentra en el disco duro, cuyos registros
constan de los siguientes campos:
NOMBRE
DIRECCIN
TELEFONO
E-MAIL
TIPO

(Texto)
(Texto)
(Texto)
(Texto)
(Texto)

Luego, imprima slo los registros cuyo TIPO sea PROFESOR


7. Se tiene un archivo secuencial llamado CLIENTES, en un disquete con los estados de
cuenta de los clientes. La estructura del registro es:
NOMBRE DEL CAMPO

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

Direccin de rea Informtica

Construya un algoritmo que permita generar un listado con :

Total de clientes ingresados en Marzo del 2001.

CONSIDERACION: La fecha de ingreso viene con el formato dd/mm/aaaa


8. Escriba un algoritmo que permita almacenar en un archivo del disco duro de nombre
pas.dat, la informacin de los pacientes de un consultorio. Los datos a almacenar son:
a) Nombre.
b) edad.
c) Previsin (isapre o fonasa).
d) Peso.
e) Estatura.
Se ingresan datos hasta que el usuario de desee.
9. Utilizando los datos almacenados en el archivo pas.dat, escriba un algoritmo que
permita imprimir lo siguiente:
a) La cantidad de pacientes mayores a los 35 aos.
b) Liste el nombre y la edad de los clientes cuya previsin es isapre.
10. Escriba un algoritmo que permita agregar al archivo pas.dat 10 pacientes ms.
11. Escriba un algoritmo que permita leer el nombre de un paciente y si lo encuentra lista
todos los datos del paciente. Si no lo encuentra imprima el siguiente mensaje EL
PACIENTE NO EXISTE.
12. Escriba un algoritmo que permita almacenar en una matriz el peso y la edad de los
pacientes y en un vector el nombre y la posicin contigua del nombre la isapre de los
pacientes.
13. En un archivo de nombre pro.dat que se encuentra grabado en un disquete los datos
de los productos de una bodega. Los datos que almacenadod fueron: nombre, cdigo,
cantidad, valor unitario. Escriba un algoritmo que permita ingresar el cdigo y que liste
el siguiente informe del producto:
NOMBRE:
CODIGO:
CANTIDAD:
VALOR UNITARIO:
PRECIO VENTA:
El precio de venta corresponde al siguiente calculo, valor unitario mas el 20% del valor
unitario.

92

You might also like