Está en la página 1de 93

lOMoARcPSD|5957588

3 Manual Inacap Elementos DE Programación 2002

Administración de Sistema Operativo Linux (Universidad Tecnológica de Chile)

StuDocu no está patrocinado ni avalado por ningún colegio o universidad.


Descargado por Andreas Deris (malmsteen@123mail.cl)
lOMoARcPSD|5957588

Firmado
digitalmente por
DAI

DAI
Nombre de
reconocimiento
(DN): cn=DAI,
o=INACAP
Fecha:
Firma no 2002.03.26
verificada 09:51:53 -04'00'

INACAP Dirección de Área Informática

MANUAL

ELEMENTOS DE PROGRAMACION
MARZO DEL 2002

Programa de Estudios:
INGENIERÍA EN GESTIÓN INFORMÁTICA
ANALISTA PROGRAMADOR

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

INDICE PÁGINA

UNIDAD 1: ANALISIS DE PROBLEMAS Y PROCESAMIENTO DE


DATOS

1.1: METODOLOGIA DE RESOLUCIÓN DE PROBLEMAS SEGÚN GEORGE POLYA 4

1.2: CONCEPTO DE DATO E INFORMACIÓN 10

EJERCICIOS DE LA UNIDAD: 11

UNIDAD 2: ALGORITMOS Y ESTRUCTURAS DE CONTROL

CAPITULO 2.1: UNIDADES FUNCIONALES DE UNA COMPUTADORA. 12


EJERCICIOS: 13

CAPITULO 2.2: PROCESOS DE CREACIÓN DE PROGRAMAS. 15


EJERCICIOS: 16

CAPITULO 2.3: ALGORITMOS 19


ENTIDADES PARA EL DESARROLLO DE UN ALGORITMO: 20
CONSTANTES, VARIABLES Y EXPRESIONES 21
OPERADORES: 22
EJERCICIOS: 28

CAPITULO 2.4: DIAGRAMA DE FLUJO 29


EJERCICIOS: 31

UNIDAD 3: ESTRUCTURAS DE PROGRAMACIÓN.

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 MÚLTIPLE 43

CAPITULO 3.5 ESTRUCTURAS CÍCLICAS O DE ITERACIÓN


CONCEPTOS 46
3.51 INSTRUCCIÓN MIENTRAS 47
3.52 INSTRUCCIÓN REPETIR 49
3.53 INSTRUCCIÓN DESDE 52
EJERCICIOS PROPUESTOS DE CICLOS 54

UNIDAD 4: ESTRUCTURA DE ARREGLO.

CAPITULO 4.1: CONCEPTOS. 59

CAPITULO 4.2 : ARREGLOS UNIDIMENSIONALES O VECTORES. 60


OPERACIONES CONE VECTORES 60

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

EJERCICIOS PROPUESTOS DE VECTORES 64


CAPITULO 4.3: MÉTODOS DE BÚSQUEDA Y ORDENAMIENTO 66

EJERCICIOS DE ARREGLOS Y METODO DE BÚSQUEDA Y ORDENAMIENTO: 71

CAPITULO 4.4: ARREGLOS BIDIMENSIONAL O MATRIZ 74


OPERACIONES CON MATRICES 74
EJERCICIOS PROPUESTOS DE ARREGLOS. 77

UNIDAD 5: ARCHIVOS.

CAPITULO 5.1: REGISTRO 81


OPERACIONES CON REGISTROS 81
CAPITULO 5.2: VECTOR Y REGISTRO 83

CAPITULO 5.3: ARCHIVO 87


OPERATORIAS CON ARCHIVOS 87

EJERCICIOS PROPUESTOS DE ARCHIVOS Y REGISTROS: 91

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

UNIDAD 1: ANALISIS DE PROBLEMAS Y PROCESAMIENTO DE DATOS

CAPITULO 1.1: METODOLOGIA DE RESOLUCIÓN DE PROBLEMAS SEGÚN


GEORGE POLYA.

La mayoría de los expertos en cualquier campo del conocimiento seguramente saben


como resolver problemas. El éxito de la empresa científica resalta esta conclusión: Los
procedimientos expertos se derivan desde conceptos básicos, usando concretos pasos
lógicos. El proceso es un proceso jerárquico lineal.

Existen métodos bien definidos y desarrollados para lograr una resolución efectiva de
problemas. Uno de estos métodos es el desarrollado por George Polya (destacado Doctor
en Matemática, nacido en Hungría 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
método posee cuatro pasos elementales:

i. Entender el problema.
ii. Idear un plan.
iii. Realizar el plan.
iv. Mirar hacia atrás.

La comprensión 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 definición 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 progresión anterior. Esto puede derivar en un problema embutido que requiere el uso
progresivo del primer, segundo y tercer paso.

El mirar hacia atrás consiste en varios chequeos, usando el sentido común, del resultado
de usar los primeros tres pasos de progresión.

En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente.

Es evidente que el primer paso de progresión 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.

También 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 solución entera. Tan pronto
como los problemas se conviertan en un dígito binario más complejo o tengan variaciones
sutiles, éste mecanismo falla. El segundo paso de progresión significa solamente la
indicación de la ley, de la definición del principio que proporciona las instrucciones para
contestar a la pregunta hecha y expresarla en forma matemática.

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Metodología Polya
1. ENTENDER EL PROBLEMA

Primero. Usted tiene que entender el problema:

9 ¿Qué es lo desconocido?

9 ¿Cuáles son los datos?

9 ¿Cuál es la condición?

9 ¿Es posible satisfacer la condición?

9 ¿La condición es suficiente para determinar lo desconocido?, ¿Es escasa?,


¿Es redundante?, ¿Es contradictoria?.

9 Trace una figura e introduzca la notación conveniente.

9 Separa la condición en varias partes. Si Ud. puede escribirlas, entonces


continúe.

2. IDEAR UN PLAN

En segundo lugar. Encuentre la conexión entre los datos y lo desconocido. Usted


puede verse obligado a considerar problemas auxiliares si una conexión inmediata
no puede ser encontrada. Usted debe obtener eventualmente un plan de la
solución.

9 ¿Usted lo ha visto antes?. ¿Usted ha visto el mismo problema en una


forma levemente diferente?.

9 ¿Usted sabe de algún problema relacionado?. ¿Usted conoce un teorema


que podría 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. ¿Podría usted


utilizarlo?. ¿Podría usted utilizar su resultado?. ¿Podría usted utilizar su
método?. ¿Debe usted introducir un cierto elemento auxiliar para hacer su
uso posible?

9 ¿Podría usted exponer el problema en forma modificada?. ¿Podría usted


todavía exponerlo en forma modificada diferentemente?. Vaya de nuevo a
definiciones para un nuevo plan sobre estas nuevas definiciones.

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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


primero un problema relacionado. ¿Podría usted imaginar un problema
relacionado más accesible?. ¿Un problema más general?. ¿Un problema
más especial? . ¿Un problema análogo?. ¿Podría usted solucionar una
parte del problema?. Considere solamente una parte de la condición, deje
las otras partes; cómo puede él variar el planteamiento original con la
nueva solución parcial?. ¿Podría usted derivar algo útil de los datos?.
¿Podría usted pensar en otros datos apropiados para determinar lo
desconocido?. ¿Podría usted cambiar lo desconocido o los datos, o ambos
en caso de ser necesario, de modo que los nuevos datos y lo desconocido
sean más cercanos el uno al otro?

9 ¿Utilizó todos los datos?.¿Utilizó la condición 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 solución, controla cada paso de progresión.


¿Puede ver claramente que el paso de progresión está correcto?. ¿Puede
usted probar que está correcto?

4. MIRAR HACIA ATRÁS

Por último. Examine la solución obtenida.

9 ¿Puede controlar el resultado?. ¿Puede controlar el argumento?.

9 ¿Puede derivar una solución diferentemente?. ¿Puede verla de un


vistazo?.

9 ¿Puede usted utilizar el resultado, o el método, para otro problema similar?

Un modo diferente de sintetizar las ideas del libro de George Polya puede ser descrita
como:

1. Mire,
2. Planee,
3. Haga y
4. Verifique.

MIRE. Entienda bien el problema.

) Lea cuidadosamente el problema.


) Determine claramente lo que usted está intentando hacer.

) Identifica los datos importantes.

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

PLANEE: Construya un plan.

) Considere toda la información 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 numérica.
) Actúe fuera del problema.
) Identifique sub-tareas y
) Chequee la validez de la información dada.

HAGA: Realice el plan.

) Implemente un plan de ataque particular.


) Revise y modifique el plan según lo necesitado.
) Cree un nuevo plan en caso de ser necesario.

VERIFIQUE: Controle la respuesta

) Asegúrese de estar usando toda la información 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 prescripción de Polya para solucionar problemas consiste en cuatro pasos de


progresión:

1. Entender el problema. (reconociendo qué se pregunta.)


2. Idear un plan. (respondiendo a lo que se pide.)
3. Realizar el plan. (desarrollando el resultado de la respuesta.)
4. Mirar hacia atrás. (controlando qué hace y me dice el resultado)

EJEMPLO :

A un empleado de una empresa se le cancela como sueldo base es $520.000. ¿Cuál es


el sueldo líquido del empleado si los descuentos legales son de a un 20%?.

MIRE: Entienda el problema.


# Lea Cuidadosamente El Problema.
Se desea obtener el sueldo líquido 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 Líquido = Sueldo Base –Sueldo Base * 20% u otra
formula podría ser Sueldo líquido = Sueldo Base * 80%. Una vez calculado,
escribir el resultado.

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

# Determine Claramente Lo Que Usted Está Intentando Hacer.


Identificar el sueldo bruto
Identificar el porcentaje de descuento
Calcular Sueldo Líquido
Escribir el resultado (Sueldo Líquido).

# Identifique Los Datos Importantes.


Sueldo Base
El porcentaje a descontar.
Sueldo Líquido

HAGA: Realice un Plan

Porcentaje a descontar ( 20%) = 20/100


Valor a descontar = Sueldo Base * 20/100
Sueldo Líquido = Sueldo Base – Valor a descontar

VERIFIQUE: Controle la Respuesta.

Sueldo base = 520.000


Valor descuento = 520.000 * 20/100 = 104.000
Sueldo Líquido = 520.000-104.000 = 416.000

RESPUESTA:
El sueldo líquido del empleado es de $416.000

El elemento fundamental de una solución de problema es la estructura mostrada arriba:

Pregunta Æ Respuesta Æ Resultado.

Esta es la forma típica utilizada en la solución de problemas. Note que la solución


presentada arriba muestra exactamente lo que se hizo.

1. Se muestra la expresión a ser evaluada.


2. Se obtienen los valores a ser sustituidos.
3. Estos se sustituyen.
4. El resultado se calcula.

Sentido común en la Resolución de Problemas

El método de solución basada en el concepto se desarrolla lógicamente paso a paso,


cada paso indica a qué hacer en el próximo. Los principios simples de comunicación
efectiva se usan en la presentación de solución. Por ejemplo, los subproblemas se
tabulan o identan. El mismo proceso se usa en muchas formas de comunicación para
mostrar subtópicos del tema principal.

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Los espacios en blanco en la presentación de solución hace posible para el ojo y mente
seguir la solución fácilmente. El espaciado es fácil de usar. El espaciado es una
herramienta reconocida en la comunicación escrita efectiva. En la comunicación 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.

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

CAPITULO 1.2: CONCEPTO DE DATO E INFORMACIÓN

Datos: Es todo aquella representación de una entidad y que es susceptible de


tratamiento ya sea en un programa o proceso informático. Por ejemplo nombre, apellido y
edad son datos de una persona (entidad).
En otras palabras un dato es la representación de una realidad.

Información : Mensaje valido para un receptor o resultado del procesamiento de datos.

Una computadora es una simple máquina capaz de aceptar datos de entrada, procesarlos
y facilitar resultados de salida (información).

DISPOSITIVO DISPOSITIVO
DE PROCESAMIENT0 DE
ENTRADA SALIDA

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 periférico externo, depositándolos en la memoria principal
de la computadora para poder ser procesados.

DATOS
DISPOSITIVO MEMORIA
EXTERNO PRINCIPAL

PROCESO: Engloban todas aquellas instrucciones encargadas de modificar los datos


que previamente habían 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 MEMORIA PROCESO
EXTERNO PRINCIPAL
RESULTADO

10

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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


resultados finales desde la memoria principal y lo envían a dispositivos externos.
Una computadora es una simple máquina capaz de aceptar datos de entrada,
procesarlos y facilitar resultados de salida.

MEMORIA DISPOSITIVO
PRINCIPAL RESULTADO EXTERNO

EJERCICIOS:

Crear grupos de trabajos de 6 integrantes y efectuar los siguientes procesos


manualmente.

1. Determinar el promedio de edad entre los integrantes del grupo.


2. Determinar la cantidad de mujeres y la cantidad de hombres dentro del
grupo.
3. Determinar los que son mayores de edad en el grupo si tienen 20 años o
mas y menor de edad los que tienen inferior a 20 años.
4. 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 sería el
proceso y el resultado o la información.

a. El promedio de las edades de los 30 alumnos de un curso es de 22 años.


Datos: ______________________________________________
Proceso: ______________________________________________
Información: ______________________________________________

b. En una agroindustria a un productor por 2 toneladas de poroto verde se le


cancelaron 4 millones de peso.
Datos: ______________________________________________
Proceso: ______________________________________________
Información: ______________________________________________

c. Para cercar un jardín de 3 metros de largo por 5 metros de ancho se


necesitaron 16 metros de alambre.
Datos: ______________________________________________
Proceso: ______________________________________________
Información: ______________________________________________

11

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

UNIDAD 2: ALGORITMOS Y ESTRUCTURAS DE CONTROL

CAPITULO 2.1: UNIDADES FUNCIONALES DE UNA COMPUTADORA.

Organización física de una computadora

CPU
Unida de Unidad
Dispositivos Control Arit.-Log. Dispositivos
de Entrada 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 (ratón), trackball (bola de ratón estacionario), joystick (palancas de
juego), lápiz óptico, etc.

Dispositivos de Salida: Regresan los datos procesados que sirven de información al


usuario. Ejemplo: monitor, impresora.

La Unidad Central de Procesamiento (C.P.U) se divide en dos:

¾ Unidad de control
¾ Unidad Aritmético - Lógica

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 Aritmético - Lógica: Realiza operaciones aritméticas y lógicas, tales como suma,
resta, multiplicación, división 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


información mientras trabaja con ella; mientras esta información permanezca en memoria,

12

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 información solo mientras la computadora esta
encendida. Cuando se apaga o arranca nuevamente la computadora, la información se
pierde, por lo que se dice que la memoria RAM es una memoria volátil.

La memoria ROM (Read Only Memory): Es una memoria estática 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 están
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 comúnmente utilizados son: cintas magnéticas y discos magnéticos.

EJERCICIOS:

1. Indique que partes del cuerpo humano que poseen analogías con:

a. Unidad de entrada:
_______________________________________________________________
b. Unidad de salida:
_______________________________________________________________
c. Memoria principal:
_______________________________________________________________
d. Unidad aritmética y lógica:
_______________________________________________________________
e. Unidad central de proceso:
_______________________________________________________________

2. La siguiente ilustración es una representación conceptual de una memoria, cuyas


direcciones están representadas por variables y los contenidos son los ilustrados.

X R Y S L P
34 12 45 -9 13 8
T G A J W Z
106 56 20 5 80 5

13

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Determinar los valores finales de los contenidos si se ejecutan secuencialmente


las siguientes operaciones matemáticas.

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 ilustración los valores finales de las variables

X R Y S L P

T G A J W Z

14

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

CAPITULO 2.2: PROCESOS DE CREACIÓN DE PROGRAMAS.

Programa: Es el conjunto de instrucciones escritas de algún lenguaje de programación y


que ejecutadas secuencialmente resuelven un problema especifico. Este programa debe
pasar por fases de elaboración hasta llegar al producto final.

Etapas en el proceso de la resolución de un programa:

Resolvemos problemas a diario, pero normalmente ignoramos el proceso que estamos


siguiendo. La mayoría de nuestra experiencia es simplemente seguir algoritmos,
seguimos recetas, practicamos un juego, tomamos medicina, etc.

Para aprender a programar tendrás que hacer conscientemente algunas de las


estrategias subyacentes de resolución de problemas, en orden para aplicarlos a los
problemas de programación

Algunas de estas etapas son:

1. Diseño del proceso: Esta etapa consiste en el análisis del problema esto es:
entender el problema, determinar estrategias de solución. En ambas
situaciones se indicará claramente los procesos a seguir (lo que se va a hacer)
para llegar a la solución correcta. En esta etapa además se desarrolla un
modelo que no es más que una representación apropiada al problema
planteado. En otras palabras se debe visualizar como se realizará la
transformación de los datos de entrada para que a través de un proceso
apropiado obtener la salida correcta.

2. Construcción: 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. Codificación: Consiste en la traducción del algoritmo a algún lenguaje de


programación, el cual crea instrucciones entendibles y ejecutables por la
computadora; algunos de estos lenguajes pueden ser Pascal, C, C++, Visual
Basic, Clipper etc.

4. Verificación: En primer lugar, se prueba el algoritmo en forma analítica, esto


es para demostrar la efectividad del algoritmo; luego se prueba el algoritmo y/o
programa con datos que producirán una salida conocida, con esto se pretende:
detectar errores lógicos, corregir los errores, mejorar el programa o algoritmo.

5. Documentación: En esta etapa se debe documentar el o los programas


realizados en la etapa de construcción. Se debe confeccionar un manual de
uso que contenga, al menos los siguientes puntos:

5.1. Descripción del método de solución utilizado


5.2. Requerimientos lógicos (Sistema Operativo, Software
producción, etc.).

15

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

5.3. Requerimientos físicos (Servidores, computadoras,


periféricos)

Como profesional de la informática, 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 misión elegir la alternativa mas eficaz y eficiente en función del problema
dado. La elección de la solución depende de:

a) Legibilidad: El programa debe ser claro y sencillo para una fácil


lectura y comprensión.

b) Modificabilidad: El programa para su vigencia y actualización,


debe ser de fácil mantenimiento.

c) Fiabilidad: El programa debe ser robusto, fácil de recuperarse


frente a errores o malos usos

d) Eficiencia: El programa debe ser eficiente, aprovechando al


máximo los recursos.

e) Portabilidad: El programa debe ser de fácil codificación para


distintos lenguajes.

EJERCICIOS:

Para las siguientes situaciones identifique la etapa o fase del proceso en la resolución de
un programa.

a. El algoritmo creado se traducirá en lenguaje C: esta situación corresponde a la


etapa
_______________________________________________________________

b. Un algoritmo requiere de la formula de volumen de un prisma: esta situación


corresponde a la etapa
_______________________________________________________________

c. La resolución de un problema ha sido escrita en forma narrativa: esta situación


corresponde a la etapa
_______________________________________________________________

d. Un algoritmo ha sido recorrido con datos conocidos: esta situación corresponde


a la etapa
_______________________________________________________________

16

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Ejercicios:

1 La siguiente ilustración es una representación conceptual de una memoria, cuyas


direcciones están representadas por variables y los contenidos son los ilustrados.

X R Y S L P
14 8 0 -9 130 0
T G A J W Z
16 -56 -4 5 -8 0

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


siguientes operaciones matemáticas.

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 ilustración los valores finales de las variables

X R Y S L P

T G A J W Z

2. Para las siguientes situaciones identifique la etapa o fase del proceso en la resolución
de un programa.

a. Para un problema dado, que haremos para llegar a una solución correcta: esta
situación corresponde a la etapa
_______________________________________________________________

17

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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


situación corresponde a la etapa
_______________________________________________________________

c. Un algoritmo será traducido a lenguaje Pascal: esta situación corresponde a la


etapa
_______________________________________________________________

d. Un algoritmo calcula el área de un cuadrado para un valor cualquiera del lado:


esta situación corresponde a la etapa
_______________________________________________________________

e. Al parecer el modelo matemático escogido soluciona el problema solo para un


tipo de datos: esta situación corresponde a la etapa
_______________________________________________________________

18

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

CAPITULO 2.3: ALGORITMOS

DEFINICIÓN DE ALGORITMO

La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi,


nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación
de números y ecuaciones en el siglo IX.
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe
seguir, para dar solución 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 cálculos numéricos para definir los
pasos del proceso.

Lenguajes Algorítmicos

Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un
proceso.

Tipos de Lenguajes Algorítmicos

Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo


(diagrama de flujo).

No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un


algoritmo (pseudocódigo).

Características de un algoritmo

Las características 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 mayoría de las variantes que se puedan
presentar en la definición del problema.
♦ Debe ser finito en tamaño y tiempo de ejecución.

19

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Ejemplo:

1.Se desea construir un algoritmo que cambie la rueda de un automóvil. La


siguiente lista de paso le ayudará a en la construcción del algoritmo pero, para
ellos debe ordenarlas en una secuencia lógica.

a. Sacar las tuercas


b. Inicio
c. Bajar el auto y retirar las tuercas
d. Colocar repuesto
e. Sacar herramientas y respuesta.
f. Cerrar maletera
g. Colocar tuercas
h. Fin
i. Abrir maletera
j. Apretar turcas
k. Posicionar gata y levantar
l. Guardar herramientas y rueda
m. Retirar rueda mala
n. Soltar tuercas

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

a. Cambiar las cuatro ruedas de un vehículo.


b. Guardar 20 monedas de $100 en una alcancía.
c. Destapar un botellas de bebidas hasta que se terminen, es decir un número
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 información útil. Un dato está compuesto
por tres partes, las cuales son:

1.Identificador: Es un nombre para referenciarlo, puede contener letras, números


o combinaciones de ambas, donde el primer carácter es un letra, y su nombre
comúnmente esta relacionado con la información que representa, para facilitar
nuestra tarea y evitar confusiones.

20

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Ejemplo

hola Válido
Punto_Final Válido
5puntos No válido, comienza con un número
$punto3 Válido
Punto/2 Válido
Punto1 Valido
.P4 No válido, comienza con el carácter .

2.Tipo: El tipo se refiere a la forma del dato, esto puede ser: de carácter (char),
numérico (real o entero), fecha, cadena de caracteres (string), booleano (lógico, 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 número del conjunto Z
H: boolena, debe almacenar un valor lógico es decir, Verdadero o falso
Z: real, debe almacenar cualquier número del conjunto de los reales (R)
P: char, debe almacenar sólo un carácter de cualquier tipo
F: String, debe almacenar una cadena de caracteres, desde dos caracteres o más
caracteres.

Constantes, Variables y expresiones

Constantes: Las constantes son valores declarados en un programa para su


utilización posterior y poseen un valor que no varia durante el proceso de ejecución;

Ejemplo

PI= 3.14, constante numérica

21

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 ejecución del programa.

Expresiones: Las expresiones son la representación de un cálculo necesario para


la obtención de un resultado. En informática existen tres tipos de expresiones:

a) Numéricas: Generan un resultado numérico y se construyen


mediante operadores aritméticos: Ejemplo PI*4.15+X
b) Alfanuméricas: Resultados alfanuméricos, se construyen
mediante operadores alfanuméricos: Ejemplo N=”Juan”
“Don”+N=”Don Juan”
c) Booleanos: Resultados verdaderos o falso, se construyen
mediante operadores relacionales y lógicos: Ejemplo A>O y B<5.

Operadores: Sirven para la construcción de expresiones. La presente tabla muestra


su respectiva clasificación.

ˆ POTENCIA
* PRODUCTO
/ DIVISIÓN
ARITMETICOS
MOD RESTO DE LA DIVISIÓN ENTERA
+ SUMA
- RESTA O SIGNO NEGATIVO

+ CONCATENACIÓN
ALFANUMÉRICO
= ASIGNACIÓN

= IGUAL
< MENOR QUE
<= MENOR O IGUAL QUE
RELACINALES
> MAYOR QUE
>= MAYOR O IGUAL QUE
<> DISTINTO A

NOT NEGACIÓN
LÓGICOS AND Y (CONJUNCION)
OR O (DISYUNCION)

Operadores Aritméticos: Los operadores aritméticos permiten la realización de


operaciones matemáticas con los valores (variables y constantes).
Los operadores aritméticos 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Operando (Operador) Operando

Valor
(constante o variable)

Ejemplos:

7/2 = 3.5
12 mod 7 = 5
4 + 2 * 5 = 14

Prioridad de los Operadores Aritméticos

❈ Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con
paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se
evalúa primero.
❈ Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

a) ( ) Parentesis
b) ^ Exponenciación
c) *, /, mod Multiplicación, división, modulo.
d) +, - Suma y resta.

❈ Los operadores en una misma expresión con igual nivel de prioridad se evalúan de
izquierda a derecha.

Ejemplos:

1.Observe el siguiente calculo respetando las prioridades

4 + 2 * 5 = 14
23 * 2 / 5 = 9.2
46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23
3 + 5 * (10 - 6) =23
3.5 + 5.09 - 140 / 40 = 5.09
3.5 + 5.09 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98

2.La siguiente expresión matemática es transcrita a una expresión utilizando los


operadores informáticos.

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

Observe los siguientes ejemplo:

23

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

M
a) + 4 = M/N+4
N

M +N
b) = (M+N) / (P-Q)
P−Q
N
P+
c) P = (P+N/P) / (Q-R/5)
R
Q−
5

Operadores Alfanuméricos

La operación mas utilizado es la concatenación representada por el signo +; La


concatenación no es mas que la unión de caracteres o cadena de caracteres,
transformándola 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 Relaciónales: Se utilizan para establecer una relación entre dos valores.
Compara estos valores entre sí del mismo tipo y esta comparación produce un resultado
verdadero o falso, tienen el mismo nivel de prioridad en su evaluación.

Ejemplos:

Si a = 10, b = 20, c = 30

a+b>c Falso
a-b<c Verdadero
a-b=c Falso
a*b<>c Verdadero

Ejemplos no lógicos:

a<b<c
10 < 20 < 30

24

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

V < 30 (no es lógico porque tiene diferentes operandos)

Operadores Lógicos y las proposiciones: Los operadores lógicos, permiten entre otras
cosas resolver proposiciones, donde llamaremos proposiciones a toda expresión que
tenga un sentido y de la cual se puede decir que es verdadera o falsa. Esta es llamada
lógica proposicional.

Ejemplo:
a) La quinta región se caracteriza por ser zona minera (Esta proposición es falsa).

b) ¿Cómo se resuelve este ejercicio? (Esta no es una proposición)

c) El caballo blanco de Napoleón es blanco (Esta proposición es verdadera).

Las proposiciones pueden ser nominadas con algunas letras tales como p,q,r, etc. Las
cuales pueden ser unidas por conectivos lógicos, dando origen a una expresión lógicas.

Los operadores lógicos más utilizado en la programación es la negación (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 Q 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 Q P OR Q

25

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 expresión


es:

(a < b) and (b < c)

(10<20) and (20<30)


V and F

Prioridad de los Operadores Lógicos

a) Not NO
b) And Y
c) Or O

Prioridad de los Operadores en General

a) () Paréntesis
b) ^ Exponenciación
c) *, /, Mod, Not Multiplicación, Division, Modulo, No
d) +, -, And Suma, Resta, Y
e) >, <, > =, < =, < >, =, Or Operadores de Relación, O

Ejemplos:

1. Si a = 10, b = 12, c = 13, d =10

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


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

26

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 número cualquiera se encuentra en el


intervalo [2, 5[. Su respuesta debe ser en término de verdadero o falso

El intervalo [2,5[ matemáticos se interpreta de la siguiente forma, “ son todos los


número que se encuentran entre 2 y 5 considerando el 2 y excluyendo al 5”.
Cuando el paréntesis corchete encierra al número [2 índica que se considera al
número por tal motivo utilizamos el signo =, cuando el paréntesis en corchete se
utiliza hacia fuera del número o no lo encierra como el caso de 5[ índica que no
se considera su extremo por tal razón no se utiliza el símbolo =.
Luego el intervalo en forma lógica es:
( x >= 2) and ( x < 5), supongamos que el valor de x es 3, la respuesta debe ser
verdadero, hagamos la evaluación.
(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
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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

EJERCICIOS:

1.Calcular el valor de las siguientes expresiones aritméticas:

a) 21 mod 7
b) 9\2+15 mod 2
c) (3+6)/2+1.5
d) 32\3^2
e) 2*3+5*6/2*3
f) (25-7*3)^3/4*5
g) 10+38/(14-(10-12/(2*3)))

2.Calcular el resultado de las siguientes expresiones lógicas:

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 numéricos en sus correspondientes intervalos


lógicos:

a) [5,15]
b) ]120,200]
c) [0,50[
d) ]15,30[
e) ]-∞,15[ and [30, ∞+[
5.Escriba las siguientes expresiones matemáticas en forma de expresiones
algorítmicas.

3 x − y 2 xy 2 x
a) + +
z z −1 y

28

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

a h+i
b) +
c j+k
b−
e
d−
f −g
CAPITULO 2.4: DIAGRAMA DE FLUJO

Para el diseño de algoritmos se utilizan técnicas de representación. Una de estas técnicas


son los denominados diagramas de flujo, que se definen como la representación gráfica
que mediante el uso de símbolos estándar conectados o unidos mediante líneas de flujo,
muestran la secuencia lógica de las operaciones o acciones que debe realizar un
ordenador, así como la corriente o flujo de datos en la resolución de problema.

Algunos símbolos correspondientes a operaciones de proceso son:

Símbolo Función
Terminal (marca el inicio, final o una
parada necesaria realizada en la
ejecución del programa.

Operación de E/S en general (utilizada


para mostrar la introducción de datos
desde un periférico a la memoria del
ordenador y la salida de resultados
desde la memoria del ordenador a un
periférico.

Proceso u operación en general


(utilizado para mostrar cualquier tipo
de operación durante el proceso de
elaboración de los datos depositados
en la memoria).

Decisión de dos salidas, indica


operaciones lógicas o comparativas
Si seleccionando la ruta en función del
SI No resultado (si, no) .

No
Flechas indicadoras de la dirección del
flujo de datos

Línea conectora, también llamada


línea de flujo de datos (permite la
conexión entre los diferentes símbolos
utilizados en el diseño)

Conector (éste símbolo es utilizado

29

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

para el reagrupamiento de línea de


flujo).

Ejemplo:
Al recorrer el siguiente diagrama de flujo, considerando a Base=5, Altura=8. El resultado
es la impresión 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Fin

Recomendaciones para el diseño de Diagramas de Flujo

❈ Se deben usar solamente líneas de flujo horizontales y/o verticales.


❈ Se debe evitar el cruce de líneas utilizando los conectores.
❈ Se deben usar conectores solo cuando sea necesario.
❈ No deben quedar líneas de flujo sin conectar.
❈ Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y
de izquierda a derecha.
❈ Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso
de muchas palabras.

Ejercicios:
a) Crear un algoritmo en diagrama de flujo que al leer un número entero positivo
(asuma que el número cumple las condiciones), imprimir PAR si el número 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 cómo salida el total de la factura.
d) Crear un algoritmo en diagrama de flujo que al ingresar dos números 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 según las siguientes categorías.
b.1. 36000 - 60.000 20%
b.2. 60001 – 80000 15%
b.3. 80001 - 120000 10%
b.4. 120001 y más 8%
f) En una financiera utilizan la formula Cf=N*I*Ci+Ci para calcular el capital final de
un ahorrante a un interés simple.
Si I = Interés en (%) , N = Meses, Ci = Capital inicial
Crear los siguientes un algoritmo en Pseudolenguaje:

31

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

♦ Al ingresar el capital inicial, los años y el interés simple, la salida sea el


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

Inicio

E<15 V

“Infantil”
F

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


V

“Juvenil”

E>=21
V
“Adulto”
F

Fin

32

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Haga el ruteo con los siguientes valores.


Entrada
Salida
E
28
15
21
69

33

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

UNIDAD 3: ESTRUCTURAS DE PROGRAMACIÓN.


CAPITULO 3.1 ESTRUCTURAS BASICAS

ESTRUCTURAS BASICAS
Asignación: Permite realizar cálculos Asignación:
evaluando una expresión y depositando su
valor final en un objeto o realizar movimientos
de datos de un objeto a otro. VARIABLE = EXPRESION

Variable = Expresión

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 instrucción
Leer VARIABLE
Leer Variable

Escribir Expresión: Envía datos a los Escribir Expresión :


dispositivos externos, bien tomándolos de
objetos o definidos de alguna forma en la
propia instrucción. Escribir EXPRESION

Escribir Expresión

Procesos : Instrucciones que modifican los Procesos :


objetos a partir de un estado inicial (I1) hasta
un estado final (In).
I1; I2; I3; …; In
I1; I2; I3; …; In

34

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Ejemplo:

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


Calcular el sueldo líquido 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 alfanumérica.
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 Pérez


Sueldo base = 500 000
Sueldo Liquido = 500 000*0.8=400 000

Solución:

PROGRAMA Sueldo_Líquido
VARIABLES
Nombre : Alfabético
Sbase : Entero
Liquido : Real
INICIO
Escribir (“Ingrese Nombre Empleado”)
Leer (Nombre)
Escribir (“Ingrese Sueldo Base”)
Leer(Sbase)
Liquido = Sbase* 0.8
Escribir(“El Sueldo Líquido de ”, Nombre, “ Es ”, Liquido)
FIN

35

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

CAPITULO 3.2: INSTRUCCION DE ALTERNATIVA SIMPLE

INSTRUCCION DE ALTERNATIVA SIMPLE


Alternativa Simple: Controla la Alternativa Simple:
ejecución de Un Conjunto De
Instrucciones por el cumplimiento o no
de una condición, de tal forma que, si V
CONDICION
se esta es verdadera, se ejecutan, si
es falsa, no se ejecutan.
F I1,I2,I3, …,In
Si ( CONDICION ) Entonces
I1; I2; I3l; …; In
Fin Si

Ejemplo:

2. Realice un algoritmo el cual permita obtener los cálculos 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 más 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


Número 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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


Obtener vanta bruta: Sumar venta más 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.

Solución:

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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

CAPITULO 3.3 INSTRUCCION DE ALTERNATIVA DOBLE

INSTRUCCION DE ALTERNATIVA DOBLE


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

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

Ejemplo:

3. Realice un algoritmo el cual permita obtener los cálculos 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 más 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Número 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 más 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

Solución:

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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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

INSTRUCCIÓN DE ALTERNATIVA MULTIPLE


Alternativa Múltiple: Controla la Alternativa Múltiple :
ejecución de varios conjuntos de
instrucciones por el valor final de
una expresión, de tal forma que
cada conjunto de instrucciones
está ligado a un posible resultado EXPRESION

de la expresión, existiendo además V V V Otro


un bloque al final que corresponde
a otros posibles valores no
I1;…; In J1;…; Jn K1;…; Kn L1;…; Ln
definidos.

Opción 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 Opción

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 ejecución de un programa,
dando así información 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 avión de vuelos nacionales desde la Región Metropolitana
hacia el Norte del País.

Por cada boleto se ingresará:

¾ Nombre del pasajero.


¾ Destino del vuelo (1=Primera Región ..... 5=Quinta Región).
¾ Clase (E:ejecutiva T:turista).

¾ Los siguientes son los valores de los vuelos para la clase turista, según
región de destino para, la clase ejecutiva lleva un recargo de $20 000 en
todos los destinos.

Región Turista Ejecutiva

40

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

01 $100.000 $120.000
02 $80.000 $100.000
03 $60.000 $80.000
04 $50.000 $70.000
05 $30.000 $50.000

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


región 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 región de destino y el valor del pasaje,
según el destino; y la clase.

Determinar lo que se intenta hacer


Hay que poder asignar el valor correcto del pasaje según destino y lcase.

Identifique los datos importantes


Nombre del cliente.
Código 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 código de destino esta entre 1 y 5.
Si el código de destino no corresponde se debe imprimir un mensaje y terminar el
programa, se recomienda utilizar un interruptor.
Si el código 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 región y el valor del pasaje.

Construya un ejemplo:

Pasajero: Julio Díaz.


Destino: 3
Clase: E
Se imprime: Julio Díaz.
Tercera Región.
$80 000
Solución:

PROGRAMA Boletos de Viaje


VARIABLES

Sw, Coddes, Precio : Entero


Nombre, Región, clase : Alfanumérico
INICIO

Escribir (“Ingrese Nombre Del Cliente”)


Leer(NomCli)
Escribir(“Ingrese Código De Destino)”)

41

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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

SW=0
Opción Coddes de

1 : Hacer Región=”Primera Región”


Precio=100 000
2: Hacer Región=”Segunda Región”
Precio=80 000
3: Hacer Región=”Tercera Región”
Precio=60 000
4: Hacer Región=”Cuarta Región”
Precio=40 000
5: Hacer Región=”Quinta Región”
Precio=30 000
Otro Hacer
SW=1
Fin Opción

Si SW=1 Entonces
Escribir(“Error en código de destino”)
Sino
Si Clase=”E” Entonces
Precio=Precio + 20000
Fin Si
Escribir(“Nombre”, Nombre)
Escribir(“Región Destino”, Región)
Escribir “Precio Del Vuelo”, Precio)
Fin Si
FIN

42

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 después de un mes si el banco paga a razón de 2%
mensual.

2) Un vendedor recibe un sueldo base mas un 10% extra por comisión 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 calificación final en la materia de


Algoritmos. Dicha calificación se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificación del examen final.
15% de la calificación 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 inversión 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 almacén 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 inversión 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 números y los imprima en forma ascendente

13) Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber
cuantas calorías 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 calorías por minuto y estando sentado en reposo consume 1.66
calorías 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 crédito 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 crédito al fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le
pague a crédito.

17) Leer 2 números; 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 números 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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
antigüedad en la empresa de acuerdo con la sig. tabla:
Tiempo Utilidad
Menos de 1 año 5 % del salario
1 año o mas y menos de 2 años 7% del salario
2 años o mas y menos de 5 años 10% del salario
5 años o mas y menos de 10 años 15% del salario
10 años o mas 20% del salario

21) En una tienda de descuento se efectúa una promoción en la cual se hace un


descuento sobre el valor de la compra total según 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 año de 1997.
Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad
adulta. Las personas adscritas a la jubilación por edad deben tener 60 años o mas
y una antigüedad en su empleo de menos de 25 años.
Las personas adscritas a la jubilación por antigüedad joven deben tener menos de
60 años y una antigüedad en su empleo de 25 años o mas.
Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años
o mas y una antigüedad en su empleo de 25 años o mas.
Determinar en que tipo de jubilación, quedara adscrita una persona.

45

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

CAPITULO 3.5 ESTRUCTURAS CÍCLICAS O DE ITERACIÓN

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 acción. Los
contadores se utilizan en las estructuras de repetición con la finalidad de contar sucesos o
acciones internas del bucle; deben realizar una operación de inicialización y,
posteriormente, las sucesivas de incrementación o decrementación del contador. La
inicialización consiste en asignar al contador un valor inicial. Se situará antes y fuera del
bucle la inicialización. Su estructura es la siguiente.

Nombre_del_contador=valor_inicial

En cuanto a los incrementos o decrementos del contador, puesto que la operación de


asignación admite que la variable que recibe el valor final de una expresión intervenga en
la misma, se realizarán a través de este tipo de instrucción de asignación, 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 también necesitan inicilizarce fuera del bucle, esto es:

Nombre_del_acumulador=valor_inicial

Su operación dentro del bucle queda definida en la siguiente expresión:

Nombre_del_acumuladorr = Nombre_del_acumulador + nombre_variable

46

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

3.51 INSTRUCCIÓN MIENTRAS

INSTRUCCIÓN MIENTRAS
Mientras: Repite la ejecución de un conjunto Mientras:
de instrucciones, de tal forma que estas se
ejecutan mientras la condición sea
verdadera, la condición, será evaluada
siempre antes de cada repetición. F
CONDICION

Mientras ( CONDICION ) Hacer V


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, además 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Construya un ejemplo: Este ejemplo considera 3 alumnos pero se puede proyectar para
20.

Alumno PS Examen Nota Final


Alu-1 5.0 6.0 5.0*0.6 + 6.0*0.4 = 5.4
Alu-2 4.0 5.5 4.0*0.6 + 5..5*0.4 = 4.6
Alu-3 3.0 7.0 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

Solución:

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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

3.52 INSTRUCCIÓN REPETIR

INSTRUCCIÓN REPETIR
Repetir: Repite la ejecución de un conjunto Repetir:
de instrucciones (I1...In), de tal forma que
estas se ejecutan mientras la condición sea
FALSA, que será evaluada siempre después
de cada repetición, es decir, hasta que la I1; I2; I3; …; In
condición sea VERDADERA. Hay que hacer
notar que el conjunto de instrucciones se F
ejecuta al menos una vez CONDICION

Repetir V
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,
además 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 PS Examen Nota Final


Alu-1 5.0 6.0 5.0*0.6 + 6.0*0.4 = 5.4
Alu-2 4.0 5.5 4.0*0.6 + 5..5*0.4 = 4.6
Alu-3 3.0 7.0 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

Solución:

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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

7. A continuación se mostrara el ejemplo del programa Boletos de Viaje pero validando


el destino y la clase con la instrucción Repetir. De esta forma no necesitaremos el
interruptor.

PROGRAMA Boletos de Viaje2


VARIABLES

Coddes, Precio : Entero


Nombre, Región, clase : Alfanumérico
INICIO

Escribir (“Ingrese Nombre Del Cliente”)


Leer(NomCli)
Repetir
Escribir(“Ingrese Código 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”)

Opción Coddes de

1 : Hacer Región=”Primera Región”


Precio=100 000
2: Hacer Región=”Segunda Región”
Precio=80 000
3: Hacer Región=”Tercera Región”
Precio=60 000
4: Hacer Región=”Cuarta Región”
Precio=40 000
5: Hacer Región=”Quinta Región”
Precio=30 000
Fin Opción

Si Clase=”E” Entonces
Precio=Precio + 20000
Fin Si

Escribir(“Nombre”, Nombre)
Escribir(“Región Destino”, Región)
Escribir “Precio Del Vuelo”, Precio)

FIN

51

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

3.53 INSTRUCCIÓN DESDE

INSTRUCCIÓN DESDE
Para: Repite la ejecución del conjunto de Desde :
instrucciones, de tal forma que estas se
ejecuten un número determinado de
veces, determinado por el valor de la
variable inicial y final, es decir el ciclo
termina cuando esta variable toma el valor Vc=Vi Vf In
final. El Incremento sino se especifica por
defecto asume un incremento de uno. 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.
n!
nCk = ; n≥k ; n, k ∈ Ν
(n − k )!*k!

Mire: Entienda el problema


El N° combinatorio implica el calculo de 3 números 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 multiplicación.
Imprimir el resultado de la división.

Construya un ejemplo:

5C3= ? 5!=1*2*3*4*5=120 3!=1*2*3=6 (5-3)!=2!=1*2=2

120 120
5C 3 = = = 10
6 * 2 12

Solución:

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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

EJERCICIOS PROPUESTOS DE CICLOS

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


Diseño Estructurado de Algoritmos

2) Leer 10 números y obtener su cubo y su cuarta.

3) Leer 10 números e imprimir solamente los números positivos

4) Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos


neutros.

5) Leer 15 números negativos y convertirlos a positivos e imprimir dichos números.

6) Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos.


Realizar un algoritmo para calcular la calificación media y la calificación 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 día desde las 0:00:00 horas hasta las 23:59:59 horas

9) Una compañía de seguros tiene contratados a n vendedores. Cada uno hace


tres ventas a la semana. Su política de pagos es que un vendedor recibe un
sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su
compañía 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 extraídos 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 México, cuantos entran con calcomanía de cada color.

54

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Conociendo el ultimo dígito de la placa de cada automóvil se puede determinar el


color de la calcomanía utilizando la sig. relación:

DÍGITO COLOR
1o2 amarilla
3o4 rosa
5o6 roja
7o8 verde
9o0 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


interés. Cual será la cantidad de dinero que esta persona tendrá al cabo de un año
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 números dados.

17) Encontrar el mayor valor de un conjunto de n números dados.

18) En un supermercado un cajero captura los precios de los artículos que los
clientes compran e indica a cada cliente cual es el monto de lo que deben pagar.
Al final del día 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 básculas 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 están en un mismo año


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
tendrán 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 artículos que va
tomando de los estantes. La señora 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 artículos iguales que ha tomado y determina cuanto
dinero gastara en ese articulo; a esto le suma lo que ira gastando en los demás
artículos, hasta que decide que ya tomo todo lo que necesitaba. Ayúdale a esta
señora a obtener el total de sus compras.

23) un teatro otorga descuentos según la edad del cliente. determinar la cantidad
de dinero que el teatro deja de percibir por cada una de las categorías. Tomar en
cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un
precio único en los asientos. Los descuentos se hacen tomando en cuenta el
siguiente cuadro:

Categorías Edad Descuento

Categoría 1 5 - 14 35 %
Categoría 2 15 - 19 25 %
Categoría 3 20 - 45 10 %
Categoría 4 46 - 65 25 %
Categoría 5 66 en adelante 35 %

24) La presión, volumen y temperatura de una masa de aire se relacionan por la


formula:
masa= presión * volumen .
0.37 * (temperatura + 460)

Calcular el promedio de masa de aire de los neumáticos de n vehículos que


están en compostura en un servicio de alineación y balanceo. Los vehículos
pueden ser motocicletas o automóviles.

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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

26) En una granja se requiere saber alguna información 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 según
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 PESO POR KILO DE HUEVO


mayor o igual que 15 1.2 * promedio de calidad
mayor que 8 y menor que 15 1.00 * promedio de calidad
menor o igual que 8 0.80 * promedio de calidad

27) En la Cámara 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 promoción del 20% de descuento
sobre aquellos artículos 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 Población y Vivienda. Desea obtener de todas las personas que
alcance a encuestar en un día, que porcentaje tiene estudios de primaria,
secundaria, carrera técnica, 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 día de las votaciones. Las secciones
son: norte, sur y centro. También desea determinar cual es la sección con mayor
numero de votantes.

31) Un negocio de copias tiene un limite de producción diaria de 10 000 copias si


el tipo de impresión es offset y de 50 000 si el tipo es estándar. 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 producción. Si el limite
de producción se excediera el trabajo solicitado no podría ser aceptado. El
empleado necesita llevar un buen control de las copias solicitadas hasta el

57

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

momento para decidir en forma rápida si los trabajos que se soliciten en el día 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 calificación mínima aprobatoria es de
70.

34) Leer por cada alumno de Diseño estructurado de algoritmos su numero de


control y su calificación 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 nivelación.
Diseñe 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 nivelación.

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. Diseñe un algoritmo que lea por cada cliente, el monto total de su
compra. Al final del día 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. Diseñe un pseudocódigo 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 día deberá imprimir la cantidad de dinero que debe haber en la caja.

58

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

UNIDAD 4: ESTRUCTURA DE ARREGLO

CAPITULO 4.1: CONCEPTOS

Definiciones:

Las estructuras de arreglos o tablas permiten estructurar y manejar los datos básicos
(números enteros, reales, carácter o string). Estas estructuras de datos se encuentran
prácticamente en la totalidad de los lenguajes de programación, clasificadas como
estructuras lineales y estáticas de datos internos. Toda estructura de datos o dato
estructurado se caracteriza por su organización y por las operaciones que en dichas
estructuras se han definido.

Arreglo o Tabla: Es una estructura de datos constituida por un número fijo de elementos,
todos ellos del mismo tipo y ubicados en dirección de memoria físicamente contiguas.

Elementos de un arreglo: También denominados componentes, es cada uno de los


datos que forman parte integrante del arreglo.

Nombre de un arreglo: Es la identificación utilizada para referenciar el arreglo y los


elementos que la forman.

Tipo de datos de un arreglo: marca del tipo básico que es común a todos y cada uno de
los elementos o componentes que forman dicha estructura.

Índice: Es un valor numérico entero y positivo a través del cual podemos acceder
directamente e individualmente a los distintos componentes que forman dicho arreglo,
pues marca la situación relativa de cada elemento o componente dentro de la misma.

Tamaño de un arreglo: Es el tamaño o longitud de un arreglo, vienen determinada por el


número máximo de elementos que la forman, siendo el tamaño mínimo un elemento y el
tamaño máximo de n elementos.

Acceso a los elementos o componentes de un arreglo: Los elementos o componentes


de un arreglo o tabla tratados individualmente son auténticos datos básicos que reciben
el mismo trato que cualquier otra variable, con un tipo de datos que coincide con el tipo de
la tabla y una denominación 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 paréntesis corchete [].

Dimensión de un arreglo: Viene determinada por el número de índices que necesitamos


para acceder a cualquier elemento que la forman.

59

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

CAPITULO 4.2 : ARREGLOS UNIDIMENSIONALES O VECTORES

Clasificación de los arreglos: Un arreglo se clasifica según sus dimensiones hay


arreglos unidimensionales, bidimensionales y multidimensionales, en este curso se
estudiarán las unidimensionales y las bidimensionales

1.Arreglo Unidimensionales: También reciben el nombre de vector y son


estructuras de datos cuyos elementos son del mismo tipo y con las mismas
características, y se referencian con un nombre o identificador común.
Dichos elementos se ubican en posición de memoria físicamente contigua,
poseen una fila y n columnas.

Ejemplo

5 10 25 30 45 3
INDICE 1 2 3 4 5 6

Nombre del arreglo: NUM


Tipo de elementos : enteros
Tamaño 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
Dimensión: 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 máximo de elementos entre


corchetes y el tipo de elementos.
Nombre_vector[máximo]:tipo_variable

Ejemplo

a) Num[6]:entero

60

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

b) X[25]:real

2.Asignación: A cada elemento del vector referenciado por su índice, se le


aplica una sentencia de asignación, cuyo formato es la siguiente:

Nombre_vector[índice]=Expresión

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 operación de lectura nos permite almacenar valores en los distintos


elementos de un vector, valores que son introducidos a través de un dispositivo
externo, como por ejemplo, el teclado. El formato para realizar una operación 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 número”)
Leer(X)
Num[3]=X

b) Desde i=1 hasta 6 hacer


escribir (“ingrese un número real”)
leer(x)
Num[i]=X
Fin desde

61

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

c) Desde i=1 hasta 6 hacer


escribir (“ingrese un número real”)
leer(Num[i])
Fin desde

e) Desde i=1 hasta n hacer


repita
Escribir(“ Ingrese un número POSITIVO”)
Leer(x)
Hasta x> 0
Num[i]=x
Fin desde

g) I=1
Repita
Escribir(“Ingrese un Número”)
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 operación 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Ejemplo:

Escriba un algoritmo en Pseudolenguaje que permita llenar un vector con los diez primero
números naturales.

Mire: Entienda el problema


Se desea almacenar en un vector los diez primeros números naturales, esto significa que
los números 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 posición uno el número 1, en la posición dos el número 2 y así
sucesivamente hasta llegar a la posición diez y almacenar el número 10.

Identifique los datos importantes


El vector es de tipo entero.
Tiene un tamaño de 10.
Los números 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 número a
almacenar.
Asignar a cada posición de vector su contenido.

Construya un ejemplo:

Al vector solicitado o llamaremos Ent y debe tener la siguiente forma

1 2 3 4 5 6 7 8 9 10
Indices 1 2 3 4 5 6 7 8 9 10

Solución:

PROGRAMA EJEMPLO

VARIABLES
Ent[10]:Entero
I: Entero

INICIO
Desde I=1 hasta 10 haga
Ent[I]=I
Fin desde

63

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

FIN

Ejercicios:

1. Escriba un algoritmo en Pseudolenguaje que permita generar un arreglo de la


siguiente forma.

X
10 9 8 7 6 5 4 3 2 1
Indices 1 2 3 4 5 6 7 8 9 10

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


números reales ingresados por el usuario, después del almacenamiento debe mostrar
el menor y mayor número que se encuentra en el arreglo.

3. Utilizando el vector creado en el ejercicio anterior (2) muestre el número almacenado


que se encuentran en las posiciones múltiplos 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 Salud AFP Total desc. Sueldo Liq.


Imp.

TOTALES

DATOS:

64

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Considere los siguientes descuentos:


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

6. Utilizando los mismos arreglos del ejercicio nº4 desarrollar un algoritmo en


Pseudolenguaje que permita generar el siguiente listado

SUELDOS LIQUIDOS MAYORES DE 250000

APELLIDOS RUT SUELDOS LIQUIDOS

TOTALES

65

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

CAPITULO 4.3: MÉTODOS DE BÚSQUEDA Y ORDENAMIENTO

Antes de comenzar con los métodos de búsqueda y ordenamiento es necesario definir el


concepto de variable auxiliar. Esta variable es muy utilizada para intercambiar los valores
de dos variables numéricas sin perder sus contenidos o valores, comúnmente 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 operación de búsqueda 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 posición que dicho elemento ocupa.

Los métodos más usados de búsqueda son:

1. Búsqueda secuencial o lineal.


2. Búsqueda binaria o dicotómica.

Búsqueda secuencial en un vector desordenado: Esta operación 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 operación de
búsqueda sin haber localizado el elemento en cuestión. En aquellos casos en que el
elemento buscado se encuentra repetido, indicará la posición del situado más a la
izquierda, es decir, el de menor índice.

En el algoritmo de búsqueda secuencial, vector es el nombre del vector y N es el largo del


mismo.

66

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

PROGRAMA búsqueda 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 posición”, 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 códigos 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 código muestre el
nombre del producto si existe o el mensaje “PRODUCTO NO EXISTENTE”.

Mire: Entienda el problema


Se pide que el algoritmo busque el código que ingresa el usuario en el vector Cod, y que
liste el nombre asociado a este código que se encuentra en el vector de nombre Nom.

Determinar lo que se intenta hacer


Debe leer el código, 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 código no
se encuentra.

Identifique los datos importantes

67

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

♦ Los vectores ya existen.


♦ El código que se encuentra en la posición 1 del vector Cod corresponde al nombre del
producto que se encuentra en la posición 1 del vector Nom y así sucesivamente.
♦ El largo de cada vector es de 100.
♦ El código a buscar debe ser ingresado por el usuario.
Planee: Construya un plan
♦ Declarar el contador y el código a ingresar el usuario
♦ Adaptar el método de búsqueda lineal según el requerimiento del problema.
♦ Si el código se encuentra en el vector Cod utilizar la posición 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
10 23 35 14 25 68 72 ….. ….. 205
Indices 1 2 3 4 5 6 7 100

Nom

Harina azucar Fideos salsa Arroz aceite te ….. ….. café


Indices 1 2 3 4 5 6 7 ………….. 100

Solución:
PROGRAMA ejemplo

VARIABLES
ele: entero
i : entero

INICIO
Escribir(“ingrese el código 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

ORDENAMIENTO

La ordenación 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 específica, permitiéndonos así establecer una
ordenación creciente o decreciente.

El siguiente algoritmo corresponde a uno de los métodos de ordenación más corrientes y


utilizados denominado método 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 números
enteros e listar dicho números ordenados de menor a mayor.

Mire: Entienda el problema


Se pide leer 100 números 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 números en un vector , utilizar
el método Sort para ordenar el vector y por último crear un ciclo que permita listar el
contenido del vector ordenado.

69

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Identifique los datos importantes


♦ Declarar un vector con un largo de 100.
♦ Los valores a almacenar son números 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 números.
♦ Adaptar el método 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
10 23 35 14 25 88 72 ….. ….. 205
Indices 1 2 3 4 5 6 7 100

Num
10 14 23 25 35 72 88 ….. ….. 205
Indices 1 2 3 4 5 6 7 100

Solución:

PROGRAMA Ejemplo ordenamiento

VARIABLES

Num[100]:entero
I;J,aux: entero

INICIO

Desde( I=1 hasta 100 haga)


Escribir(“ingrese un número”)
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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Escribir(Num[I])
Fin desde
FIN

Ejercicios:

1. Construya un algoritmo que permita leer y almacenar 20 valores numéricos


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 meteorológico se han hecho N mediciones en un día. Al final se debe
entregar cuál es la medición más alta y cuál es la más baja”.

3. Se tienen dos vectores A y B, con el mismo número 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 cálculo de la Desviación Estándar, para lo cual debes definir


y usar la estructura de datos más adecuada para resolver el problema. Las fórmulas a
utilizar son:

6. Para una lista de 10 alumnos se tienen 2 pruebas parciales y 2 controles, los que tienen
la siguiente ponderación. Prueba 1 (25%), Prueba 2 (35%), promedio de controles
(40%). Mostrar las notas ingresadas por alumno, y al lado su promedio.

7. Construir un Pseudocódigo que permita ingresar una secuencia de 50 números y los


almacene en un vector llamado NUMEROS y los imprima ordenados de mayor a
menor.
8. Realizar un algoritmo que determine si el número 20 se encuentra en un vector
llamado N de largo 5.000.

71

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

9. Realice un algoritmo que al leer un número ingresado por el usuario, imprima la


cantidad de veces que se encuentra el número 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.

Según los datos almacenados en los vectores el algoritmo debe generar el siguientes
listados

PLANILLA DE PAGOS

NOMBRE SUELDO IMPONIBLE DESCUENTOS SUELDO LÍQUIDO


Juan Leiva 345.000 69000 276000
María Ortiz 420.000 84000 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

NOMBRE Nº DE CARGAS
Rosa González 3
Patricio Astudillo 4

TOTALES 7

14. Utilizando los vectores del ejercicio 12 diseñar un algoritmo que genere el siguiente
listado ordenada por sueldo imponible de mayor a menor.

PLANILLA DE LOS EMPLEADOS

Nº DE SUELDO ASIGNA-CION SUELDO SUELDO


NOMBRE RUT AFP SALUD DESCUENTOS
CARGAS IMPONIBLE DE CARGA IMPONIBLE LÍQUIDO

Totales

Datos:

1. La asignación 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 más la asignación 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 -10 1
2 5 16 2
1 10 9 12
4 1 47 30
1 1 15 45

Según el ejemplo responda

1. Declaración de la tabla: NUM[5,4]: ENTERO


2. Números de filas: 5
3. Números de columnas: 4
4. Dimensión: BIDIMENSIONAL
5. Nombre: NUM
6. Los elementos cuya suma de sus índices sea impar: 2,1,1,5,1,-10,9,15,2,30
7. 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 cálculos:

8.1. NUM[J,L] + NUM[L,J] * L – J = 39


8.2. NUM[J+2,4] / NUM[3,L+1] * NUM[J-L,L] = -10
8.3. 3 * NUM[L,J] + NUM[2*L,9/J] – J * L = -5

Operaciones sobre matrices

En las matrices las operaciones de declaración, asignación, 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Declaración:

Nombre_matriz[fila,columna]: entero

Asignación:

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 año 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 año 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 año. Para el cálculo del promedio de pesos de un cliente sólo 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 números reales y los ingresa el usuario.
♦ El algoritmo requiere de 2 contadores y un acumulador.
♦ Declarar un acumulador como un número real.
♦ Cada fila representa a un cliente.
♦ Cada columna representa a un mes del año.
♦ Calcular el promedio, el acumulador de los datos de una fila debe ser dividido por 12.
♦ Se debe imprimir dicho valor.

75

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Planee: Construya un plan


♦ Declarar una matriz cuya dimensiones será 50x12.
♦ Los valores a almacenar son números 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

Solución:

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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

EJERCICIOS:

1. Diseñar 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.Diseñar 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
además imprima el contenido de la tabla en pantalla.

3.Diseñar 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 numéricos enteros.
3.6 Suma todos los elementos de cada fila y todos los elementos de cada
columna visualizando los resultados en pantalla.

4. Diseñar 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
más externas, mientras que el resto de los elementos contendrán 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 año 1998.

6. Considerando la matriz anterior, diseñar un algoritmo que imprima:

6.1 El promedio de peso durante el año de cada persona.


6.2 El mayor y el menor peso durante el mes de abril.

77

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

7. Dada la matriz A de orden 50 x 50, diseñar 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 información 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 codificación 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, diseñe un algoritmo que genere el siguiente


listado ordenado por apellido.

Listado de notas

Apellido Curso Jornada Promedio 60% Examen 40% Nota final

Promedio √ √ √

10. Diseñe un algoritmo que ingrese la siguiente información 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 Región de 1 a la 13 donde la 13 corresponde a la región
Metropolitana. (A)
10.2 Tipo de vehículo que puede ser A, B o C. (B)
10.3 Año del vehívulo. (A)
10.4 Avalúo fiscal. (A)
10.5 Valor de la patente del año 1998 que corresponde al 10% del avalúo
fiscal. (A)
10.6 Valor de la patente de 1999 que corresponde al valor anterior más el
5% del avalúo fiscal. (A)
10.7 El valor del permiso de circulación 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 número de patente. (B)

78

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

11. Utilizando la matriz anterior generar el siguiente listado de todos los vehículos de tipo
A.

LISTADO VEHICULOS TIPO A

Patente Año Tipo Región Avalúo fiscal Valor patente Valor circulación Total a Pagar

TOTALES √ √ √ √

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 año 1998.

13. Considerando la matriz anterior, diseñar un algoritmo que imprima:


13.1 El promedio de peso durante el año de cada persona.
13.2 El mayor y el menor peso durante el año de cada persona.

14. Dada la matriz A de orden nxn, diseñar 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 números de seis cifras almacene los dígitos de dichos
números en una matiz llamada D.

16. Hacer un algoritmo que almacene en una matriz y en un vector la información 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 codificación
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, diseñe un algoritmo que genere el siguiente
listado ordenado por apellido.

79

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Listado de notas

Apellido curso Jornada Promedio 60% Examen 40% Nota final

Promedio √ √ √

18. Diseñe un algoritmo que ingrese la siguiente información validada a una matriz
llamada A con respecto al parque automotriz de la ciudad de Rancagua.
18.1 Región de 1 a la 13 donde la 13 corresponde a la región
Metropolitana.
18.2 Tipo de vehículo que puede ser A, B o C.
18.3 Año del vehívulo.
18.4 Avalúo fiscal.
18.5 Valor de la patente del año 1998 que corresponde al 10% del avalúo
fiscal.
18.6 Valor de la patente de 1999 que corresponde al valor anterior más el
5% del avalúo fiscal.
18.7 El valor del permiso de circulación 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 número de patente.

19. Utilizando la matriz anterior generar el siguiente listado de todos los vehículos de tipo
A.

LISTADO VEHICULOS TIPO A

Patente Año Tipo Región Avalúo fiscal Valor patente Valor circulación Total a Pagar

TOTALES √ √ √ √

80

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 información
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:

Declaración:

registro nombre_registro:

elemento1: tipo
elemento2: tipo
campos
elemento3: tipo
elemento n: tipo

nFin registros

lista_variables: tipo nombre_registro

Ejemplo

Registro: empleado
nombre: cadena
dir : cadena

81

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 identificarán como:

empleado1.nom → referencia al nombre


empleado1.dir → referencia a la dirección
empleado1.fono → referencia al teléfono
empleado1.sueldo → referencia al sueldo

Lectura:

Si se desea leer datos y almacenarlos en una estructura esta se efectúa campo a campo,
utilizando las operaciones de lecturas de datos.

Leer(nombre_rgistro.campo)

Si quisiéramos 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 dirección)
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 efectúa campo a campo.

82

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Escribir(nombre_registro.campo)

Ejemplo

Si queremos imprimir todos los del empleado1 se escribirá:


Escribir(“nombre:”, empleado1.nom)
Escribir(“ dirección:”, empleado1.dir)
Escribir(“ teléfono:” empleado1.fono)
Escribir(“sueldo:”,empleado1.sueldo)

Asignación

La asignación de valores se puede efectuar campo a campo, como también 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 teléfono 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 llamémosla 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 sería bastante complicado
y poco práctico. Para estas situaciones lo más recomendable es declarar un arreglo
unidimensional del tipo empleado, esto significa que en cada posición del vector está
almacenando todos los datos definidos en el registro para cada empleado, este tipo de
declaración se presenta a continuación.

Nombre_vector[largo]: tipo nombre_registro

Ejemplo

Registro: empleado
nom: cadena
dir : cadena

83

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

fono: entero
sueldo: real
fin registro

trabajador[1000]: tipo empleado

Para hacer la referencia por ejemplo al nombre del empleado almacenado en la posición 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[posición].campo
Este formato debe respetarse tanto para asignación 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 según el
valor unitario de los productos.
Los datos de los productos son:

Campo Contenido Tipo


Nom Nombre cadena
Co Código entero
Vu Valor unitario entero
Ca Cantidad 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, después 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 posición del vector se debe almacenar un
registro, después del almacenamiento de datos, hay que aplicar el método de
ordenamiento Sort para ordenar el vector y después imprimir la información.

Identifique los datos importantes


♦ Los campos están 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

♦ Leer y almacenar la información campo a campo.


♦ Aplicar el método de ordenamiento Sort para ordenar el vector.
♦ Listar la información solicitada.

Construya un ejemplo:

Supongamos que el vector que contiene los registros se llama B, entonces el vector
tendrá por ejemplo la siguiente forma:

Azúcar Te Aceite ………. Arroz


12 560 780 ………. 03
250 150 850 ……… 799
5000 8900 79000 ………. 45000
1 2 3 ……. 150

El vector debe quedar


B

Te Azúcar Arroz ………. Aceite


560 12 03 ………. 780
150 250 799 ……… 850
8900 5000 45000 ………. 79000

1 2 3 ……. 150

85

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Solución:

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 códigp 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 solución 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 físicamente 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 lógico.


b) Asignarle un nombre físico al archivo declarado.
c) Apertura del archivo ya sea en modos de escritura, lectura o
modificación.
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. ASIGNACIÓN FÍSICA: Consiste en asociar el nombre lógico del archivo con el nombre
físico, debe indicarse la ruta del archivo y su nombre físico puede tener extensión.

Nombre_archivo_lógico= “ruta\nombre_archivo_físico”

Ejemplo:

87

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

ar = “c:\num.dat”

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


información contenida en un archivo físico previamente asignado a un nombre lógico.
Los modos de apertura son :

2.1. Leer: Permite extraer información de un archivo físico. Esto requiere que el
archivo exista.
2.2. Escribir: Introduce datos al archivo. Si el archivo existe se borrará toda la
información que en él se encuentra.
2.3. Añadir: Introduce nueva información en un archivo, al final del último dato
que se encuentre en él.

ABRIR nombre_archivo_lógico MODO tipo_modo

Ejemplos:
a) Abrir ar modo añadir
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 información del archivo, una variable debe recibir esta
información.

Leer(nombre_archivo_lógico, variable)

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


puede ser a través de variables o constante.

Escribir(nombre_archivo_lógico, variable o constante)

Ejemplos:
Leer(ar, x)
Escribir(ar,y)
Escribir(ar,6)

4. CIERRE DE UN ARCHIVO: Permite dejar inaccesible la información contenida en el


archivo físico para el algoritmo, quedando el nombre lógico del archivo desconectado
del archivo físico.

Cerrar (nombre_archivo_lógico)

88

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

Ejemplo:
Cerrar (ar)

5. FUNCION FIN DE ARCHIVO: Es una función que permite recorrer el archivo y


detectar el fin del archivo físico, esta función es muy utilizada en la creación de ciclos
ya sea con el ciclo mientras o con repita.

EOF(nombre_archivo_lógico)

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 código 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 Contenido Tipo


Nom Nombre cadena
Co Código entero
Vu Valor unitario entero
Ca Cantidad entero

Mire: Entienda el problema


Se pide buscar un producto según su código 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 información que
se encuentra en él para buscar un código que será ingresado por el usuario, encontrado
el código deberá lista la información del registro o enviar un mensaje sino se encuentra en
el archivo. Termida la búsqueda y el listado se debe cerrar el archivo.

Identifique los datos importantes


♦ El nombre del archivo y su ubicación física.
♦ Los campos están definidos en el enunciado con su nombre y su tipo.
♦ El archivo debe abrirse en modo lectura, según el enunciado ya existe.
♦ Leer el código 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 lógico al físico.

89

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

♦ Abrir el archivo en modo lectura


♦ Leer el código que ingresa el usuario.
♦ Crear un ciclo con la función EOF y aplicar un método de búsqueda para localizar el
código.
♦ Si se encuentra el código listar los datos sino enviar un el mensaje solicitado en el
enunciado.
♦ Cerrar el archivo.
Construya un ejemplo:

Supongamos que al archivo lógico lo llamamos Pro y su contenido es el siguiente.

Archivo Pro
Nom co vu ca
Azúcar 12 250 5000
Te 560 150 8900
Aceite 780 850 79000
………. …. …… ……….
Arroz 03 799 45000
Si ingresamos el código 03 los datos a listar son:
Nombre : Arroz
Código : 03
Valor unitario $ : 799
Cantidad : 45000

Solución:

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 código 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

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 números ingresados por el
usuario.

2. Escriba un algoritmo en pseudolenguaje que permita imprimir los números que son
pares que se encuentran en el archivo anteriormente creado.

3. Escriba un algoritmo en pseudolenguaje que permita agregar 50 números 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 números que son mayores a 50.

5. Utilizando el archivo DATO.DAT escriba un algoritmo en pseudolenguaje que al leer


un número 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 (Texto)
DIRECCIÓN (Texto)
TELEFONO (Texto)
E-MAIL (Texto)
TIPO (Texto)

Luego, imprima sólo 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 ALFANUMERICO RUT CLIENTE


NOMBRE ALFABETICO NOMBRE CLIENTE
FECING ALFANUMERICO FECHA DE INGRESO
CUPO ENTERO CUPO ASIGNADO
DISPO ENTERO CANT. DISPONIBLE
MONTO ENTERO MONTO UTILIZADO

91

Descargado por Andreas Deris (malmsteen@123mail.cl)


lOMoARcPSD|5957588

INACAP Dirección de Área Informática

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 información de los pacientes de un consultorio. Los datos a almacenar son:

a) Nombre.
b) edad.
c) Previsión (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 años.


b) Liste el nombre y la edad de los clientes cuya previsión es isapre.

10. Escriba un algoritmo que permita agregar al archivo pas.dat 10 pacientes más.

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 posición 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, código,
cantidad, valor unitario. Escriba un algoritmo que permita ingresar el código 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

Descargado por Andreas Deris (malmsteen@123mail.cl)

También podría gustarte