92
INACAP Dirección de Área Informática ELEMENTOS DE PROGRAMACION MARZO DEL 2002 Programa de Estudios: INGENIERÍA EN GESTIÓN INFORMÁTICA ANALISTA PROGRAMADOR MANUAL

MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

Embed Size (px)

Citation preview

Page 1: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

ELEMENTOS DE PROGRAMACION

MARZO DEL 2002

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

ANALISTA PROGRAMADOR

MANUAL

Page 2: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

2

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

Page 3: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

3

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

Page 4: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

4

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.

Page 5: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

5

Metodología Polya 1. ENTENDER EL PROBLEMA

Primero. Usted tiene que entender el problema:

¿Qué es lo desconocido?

¿Cuáles son los datos?

¿Cuál es la condición?

¿Es posible satisfacer la condición?

¿La condición es suficiente para determinar lo desconocido?, ¿Es escasa?, ¿Es redundante?, ¿Es contradictoria?.

Trace una figura e introduzca la notación conveniente.

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.

¿Usted lo ha visto antes?. ¿Usted ha visto el mismo problema en una forma levemente diferente?.

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

que podría ser útil?.

¡Está frente a algo completamente desconocido!. Intente pensar en un problema familiar que tenga alguna parte igual o similar.

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?

¿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.

Page 6: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

6

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?

¿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.

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.

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

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

¿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.

Page 7: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

7

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%?. MMIIRREE:: EEnnttiieennddaa eell pprroobblleemmaa..

LLeeaa CCuuiiddaaddoossaammeennttee EEll PPrroobblleemmaa.. 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.

Page 8: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

8

DDeetteerrmmiinnee CCllaarraammeennttee LLoo QQuuee UUsstteedd EEssttáá IInntteennttaannddoo HHaacceerr..

IIddeennttiiffiiccaarr eell ssuueellddoo bbrruuttoo IIddeennttiiffiiccaarr eell ppoorrcceennttaajjee ddee ddeessccuueennttoo

Calcular Sueldo Líquido Escribir el resultado (Sueldo Líquido).

IIddeennttiiffiiqquuee LLooss DDaattooss IImmppoorrttaanntteess.. Sueldo Base El porcentaje a descontar. Sueldo Líquido HHAAGGAA:: RReeaalliiccee uunn PPllaann Porcentaje a descontar ( 20%) = 20/100

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

VVEERRIIFFIIQQUUEE:: CCoonnttrroollee llaa RReessppuueessttaa.. 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.

Page 9: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

9

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.

Page 10: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

10

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

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

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 RESULTADO

DISPOSITIVO DE

ENTRADA

PROCESAMIENT0

DISPOSITIVO DE

SALIDA

DISPOSITIVO

EXTERNO

MEMORIA PRINCIPAL

DISPOSITIVO

EXTERNO

MEMORIA PRINCIPAL

PROCESO

Page 11: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

11

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.

RESULTADO

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: ______________________________________________

MEMORIA PRINCIPAL

DISPOSITIVO

EXTERNO

Page 12: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

12

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,

Page 13: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

13

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

34

R

12

Y

45

S

-9

L

13

P

8

T

106

G

56

A

20

J

5

W

80

Z

5

Page 14: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

14

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

Page 15: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

15

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

Page 16: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

16

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 _______________________________________________________________

Page 17: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

17

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

14

R

8

Y

0

S

-9

L

130

P

0

T

16

G

-56

A

-4

J

5

W

-8

Z

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 _______________________________________________________________

Page 18: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

18

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 _______________________________________________________________

Page 19: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

19

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.

Page 20: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

20

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.

Page 21: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

21

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

Page 22: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

22

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

MOD RESTO DE LA DIVISIÓN ENTERA + SUMA

ARITMETICOS

- RESTA O SIGNO NEGATIVO

+ CONCATENACIÓN ALFANUMÉRICO = ASIGNACIÓN

= IGUAL < MENOR QUE

<= MENOR O IGUAL QUE > MAYOR QUE

>= MAYOR O IGUAL QUE

RELACINALES

<> DISTINTO A

NOT NEGACIÓN AND Y (CONJUNCION) LÓGICOS 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.

Page 23: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

23

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.

QPNM−

+ = M + N / (P-Q)

Observe los siguientes ejemplo:

Page 24: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

24

a) 4+NM

= M/N+4

b) QPNM

−+

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

c)

5RQ

PNP

+ = (P+N/P) / (Q-R/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

Page 25: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

25

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

Page 26: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

26

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

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

Page 27: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

27

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

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

2. Supongamos que a Ud. le solicitan evaluar si un 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)

Page 28: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

28

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.

a) yx

zxy

zyx

+−

+−

123 2

Page 29: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

29

b) kjih

gfed

cb

a++

+

−−

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

Si SI No

No

Decisión de dos salidas, indica operaciones lógicas o comparativas seleccionando la ruta en función del resultado (si, 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

Page 30: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

30

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.

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.

SI NO

inicio

Base, altura

Area=(Base*Altura)/2

Area

fin

inicio

N1,N2,N3

P=(N1+N2+N3)/3

P<3.9

“Aprobado” “Reprobado”

Page 31: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

31

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:

Fin

Page 32: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

32

♦ 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

V

F

V

F

V

F

Inicio

E

E<15

“Infantil”

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

“Juvenil”

E>=21

“Adulto”

Fin

Page 33: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

33

Haga el ruteo con los siguientes valores.

Entrada

E Salida

28

15

21

69

Page 34: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

34

UNIDAD 3: ESTRUCTURAS DE PROGRAMACIÓN. CAPITULO 3.1 ESTRUCTURAS BASICAS

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

Variable = Expresión

Asignación:

Leer Variable: Toma uno o varios datos desde 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 dispositivos externos, bien tomándolos de objetos o definidos de alguna forma en la propia instrucción.

Escribir Expresión

Escribir Expresión :

Procesos : Instrucciones que modifican los objetos a partir de un estado inicial (I1) hasta un estado final (In).

I1; I2; I3; …; In

Procesos :

VARIABLE = EXPRESION

Leer VARIABLE

Escribir EXPRESION

I1; I2; I3; …; In

Page 35: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

35

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

Page 36: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

36

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

Alternativa Simple:

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.

CONDICION

I1,I2,I3, …,In

V

F

Page 37: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

37

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

Page 38: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

38

CAPITULO 3.3 INSTRUCCION DE ALTERNATIVA DOBLE INSTRUCCION DE ALTERNATIVA DOBLE Alternativa Doble: Controla la 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, se ejecutan las instrucciones del primer bloque (I1...In), de lo contrario si la condición es falsa, se ejecutan las instrucciones del segundo bloque (J1...Jn). Si ( CONDICION ) Entonces I1; I2; I3l; …; In Sino J1; J2; J3; …; Jn Fin Si

Alternativa Doble

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

CONDICION

I1; I2; I3; … J1; J2; J3;

NFN

v

Page 39: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

39

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

Page 40: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

40

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 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 de la expresión, existiendo además un bloque al final que corresponde a otros posibles valores no 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

Alternativa Múltiple :

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

EXPRESION

I1;…; In

V

J1;…; Jn L1;…; LnK1;…; Kn

V V Otro

Page 41: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

41

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

Page 42: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

42

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

Page 43: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

43

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

Page 44: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

44

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

Page 45: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

45

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.

Page 46: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

46

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

Page 47: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

47

3.51 INSTRUCCIÓN MIENTRAS

INSTRUCCIÓN MIENTRAS Mientras: Repite la ejecución de un conjunto 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. Mientras ( CONDICION ) Hacer

I1; I2; I3; …; In Fin Mientras

Mientras:

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

V CONDICION

I1; I2; I3; …; In

F

Page 48: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

48

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

Page 49: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

49

3.52 INSTRUCCIÓN REPETIR INSTRUCCIÓN REPETIR Repetir: Repite la ejecución de un conjunto 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 condición sea VERDADERA. Hay que hacer notar que el conjunto de instrucciones se ejecuta al menos una vez Repetir

I1; I2; I3; …; In Hasta ( CONDICION )

Repetir:

EEjjeemmpplloo::

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.

I1; I2; I3; …; In

CONDICION F

V

Page 50: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

50

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

Page 51: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

51

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

Page 52: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

52

3.53 INSTRUCCIÓN DESDE INSTRUCCIÓN DESDE Para: Repite la ejecución del conjunto de 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 final. El Incremento sino se especifica por defecto asume un incremento de uno. 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

Desde :

Ejemplo:

8. Construir un algoritmo que permita calcular e imprimir el valor de un N° combinatorio.

!)!*(

!kkn

nnCk−

= ; kn ≥ ; Ν∈kn,

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

Vc=Vi Vf In

I1; I2; I3; …; In

Page 53: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

53

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

1012

1202*6

12035 ===C

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

Page 54: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

54

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.

Page 55: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

55

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 1 o 2 amarilla 3 o 4 rosa 5 o 6 roja 7 o 8 verde 9 o 0 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

Page 56: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

56

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.

Page 57: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

57

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

Page 58: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

58

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.

Page 59: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

59

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.

Page 60: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

60

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

Page 61: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

61

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

Page 62: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

62

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

Page 63: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

63

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

Page 64: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

64

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 Imp.

Salud AFP Total desc. Sueldo Liq.

TOTALES

DATOS:

Page 65: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

65

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

Page 66: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

66

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.

Page 67: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

67

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

Page 68: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

68

♦ 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

Page 69: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

69

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.

Page 70: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

70

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)

Page 71: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

71

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.

Page 72: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

72

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 276000Marí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

Page 73: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

73

NOMBRE Nº DE CARGAS Rosa González Patricio Astudillo

3 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

NOMBRE RUT Nº DE CARGAS

SUELDO IMPONIBLE

ASIGNA-CION DE CARGA

SUELDO IMPONIBLE AFP SALUD DESCUENTOS SUELDO

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.

Page 74: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

74

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:

Page 75: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

75

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.

Page 76: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

76

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

Page 77: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

77

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.

Page 78: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

78

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)

Page 79: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

79

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.

Page 80: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

80

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

Page 81: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

81

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:

nFin registros lista_variables: tipo nombre_registro Ejemplo Registro: empleado nombre: cadena dir : cadena

elemento1: tipo elemento2: tipo elemento3: tipo

elemento n: tipo

campos

Page 82: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

82

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.

Page 83: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

83

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

Page 84: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

84

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.

Page 85: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

85

♦ 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: B Azúcar 12 250 5000

Te 560 150 8900

Aceite 780 850 79000

………. ………. ……… ……….

Arroz 03 799 45000

1 2 3 ……. 150 El vector debe quedar B Te 560 150 8900

Azúcar 12 250 5000

Arroz 03 799 45000

………. ………. ……… ……….

Aceite 780 850 79000

1 2 3 ……. 150

Page 86: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

86

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

Page 87: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

87

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:

Page 88: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

88

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)

Page 89: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

89

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.

Page 90: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

90

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

Page 91: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

91

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

Page 92: MANUAL DE ELEMENTOS DE PROGRAMACION V2.0robertogacitua.tripod.com/download/man_elementos.pdf · En problemas complejos los cuatro pasos de progresión se utilizan recurrentemente

INACAP Dirección de Área Informática

92

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.