manual de elementos de programacion v2.0robertogacitua.tripod.com/download/man_elementos.pdf · en...
Post on 14-Oct-2018
227 Views
Preview:
TRANSCRIPT
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
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
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
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.
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.
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.
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.
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.
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.
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
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
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,
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
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
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.).
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 _______________________________________________________________
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 _______________________________________________________________
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 _______________________________________________________________
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.
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.
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
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.
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:
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
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
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
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)
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
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
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”
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
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
INACAP Dirección de Área Informática
33
Haga el ruteo con los siguientes valores.
Entrada
E Salida
28
15
21
69
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
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
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
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
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
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
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
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)”)
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
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
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
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.
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
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
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
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
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
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
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
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
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.
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
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.
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
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.
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.
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
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
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
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
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:
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
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.
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
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
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.
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)
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.
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
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.
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:
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.
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
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.
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)
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.
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 √ √ √ √
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
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.
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
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.
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
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
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:
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)
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.
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)
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
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.
top related