APUNTE DE INTRODUCCION A LA INFORMATICA

Informática es la ciencia que estudia el tratamiento automático y racional de la información. Se dice que el tratamiento es automático por ser máquinas las que realizan los trabajos de captura, proceso y presentación de la información, y se habla de racional por estar todo el proceso definido a través de programas que siguen el razonamiento humano. Dentro de la ciencia de la informática se encuentran incluidas una serie de funciones de las que mencionamos a continuación las más importantes: El desarrollo de nuevas máquinas El desarrollo de nuevos métodos de trabajo La construcción de aplicaciones informáticas Mejorar los métodos y aplicaciones existentes Desde la aparición de las primeras máquinas de cálculo, no se ha parado la investigación para obtener máquinas más potentes, rápidas, pequeñas y baratas. Por otra parte, en paralelo con el desarrollo de estas máquinas, tampoco se detiene la investigación para conseguir nuevos métodos de trabajo, novedosas formas de explotación de las máquinas e innovadores modos de compartir los recursos. La función de creación de aplicaciones informáticas se refiere al desarrollo de programas para que las máquinas realicen el trabajo para el que han sido creadas. ELEMENTOS Y CONCEPTOS FUNDAMENTALES Desde el punto de vista informático, el elemento físico utilizado para el tratamiento de la información es el computador, computadora u ordenador, que puede ser definido de la siguiente manera: es una máquina compuesta de elementos físicos, en su mayoría de origen electrónico, capaz de realizar una gran variedad de trabajos a gran velocidad y con gran precisión, siempre que se le den las instrucciones adecuadas. El conjunto de órdenes que se dan a una computadora para realizar un proceso determinado se denomina programa, mientras que el conjunto de uno o varios programas más la documentación correspondiente para realizar un determinado trabajo, se denomina aplicación informática El término sistema informático se utiliza para nombrar al conjunto de elementos necesarios (computadora, terminales, impresoras, etc.) para la realización y explotación de aplicaciones informáticas. La información es el elemento que hay que tratar y procesar cuando en una computadora ejecutamos un programa, y se define como todo aquello que permite adquirir cualquier tipo de conocimiento; por tanto, existirá información cuando se da a conocer algo que se desconoce. Los datos que maneja un programa son en un principio información no elaborada y una vez procesados (ordenados, comparados, sumados, etc.) constituyen lo que se denomina información útil o simplemente resultados. Para que una información sea tratada necesita transmitirse o trasladarse de un lugar a otro, y para que exista transmisión de información son necesarios tres elementos: El emisor que da origen a la información El medio que permite la transmisión El receptor que recibe la información Al conjunto de operaciones que se realiza sobre una información se le denomina tratamiento de la información. Estas operaciones siguen una división lógica que se representa en el siguiente esquema: Entrada Recogida de datos Depuración de datos Almacenamiento de datos

Tratamiento de la información

Aritmético Proceso Lógico

Recogida de resultados Salida Distribución de resultados

En términos generales se denomina entrada al conjunto de operaciones cuya misión es tomar los datos del exterior y enviarlos a la computadora; para ello en ocasiones es necesario realizar operaciones de depuración o validación de los mismos. Estos datos deben quedar en la memoria de la computadora para su posterior tratamiento. Al conjunto de operaciones que elaboran los datos de entrada para obtener los resultados se le llama proceso o algoritmo y consiste generalmente en una combinación adecuada de operaciones de origen aritmético y test de tipo lógico. Por último, se denomina salida al conjunto de operaciones que proporcionan los resultados de un proceso a las personas correspondientes. Se engloban en la salida también aquellas operaciones que dan forma a los resultados y los distribuyen adecuadamente. El algoritmo necesario para la resolución de un problema queda definido cuando una aplicación informática es analizada, de tal forma que posteriormente cada proceso se codifica en un lenguaje que sea reconocido por la máquina, y tras una preparación final obtendremos una solución ejecutable por la computadora. La automatización de un problema para que pueda ser desarrollado por una computadora se representa en el siguiente esquema:
Planteamiento del problema Análisis del mismo Algoritmo de solución Ejecución por computadora

Preparado por Prof: Luis González T. Sólo para fines docentes

2

ESTRUCTURA GENERAL DE UN PROGRAMA Un programa puede considerarse como una secuencia lógica de acciones (instrucciones) que manipulan un conjunto de objetos (datos) para obtener unos resultados que serán la solución al problema que resuelve dicho programa. Todo programa, en general contiene dos bloques bien diferenciados para la descripción de los dos aspectos anteriormente citados: Bloque de declaraciones. En él se especifican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.) indicando las características de estos. Este bloque se encuentra localizado siempre por delante del comienzo de las acciones. Bloque de instrucciones. Constituido por el conjunto de operaciones que se han de realizar para la obtención de los resultados deseados.

-

PARTES PRINCIPALES DE UN PROGRAMA Las partes principales de un programa están relacionadas con sus dos bloques ya mencionados. Dentro del bloque de instrucciones podemos diferenciar tres partes fundamentales, como se muestra en la siguiente figura: DECLARACIONES PROGRAMA Entrada de datos INSTRUCCIONES Proceso o algoritmo Salida de resultados Entrada de Datos: La constituyen todas las instrucciones que toman los datos de entrada desde un dispositivo externo y los almacena en la memoria principal para que puedan ser procesados. Proceso o algoritmo: Está formado por las instrucciones que modifican los objetos a partir de su estado inicial (datos de entrada) hasta el estado final (resultados) dejando los objetos que lo contiene disponibles en la memoria principal. Salida de resultados: Conjunto de instrucciones que toman los datos finales (resultado) de la memoria principal y los envían a los dispositivos externos. CLASIFICACION DE LAS INSTRUCCIONES Según la función que desempeñan dentro de un programa, las instrucciones se clasifican de la siguiente manera: Instrucciones de declaración: Su misión es anunciar la utilización de objetos en un programa indicando que identificador, tipo y otras características corresponden a cada uno de ellos. Instrucciones primitivas: Son aquellas que ejecuta el procesador de modo inmediato. Es decir, no dependen de otra cosa que de su propia aparición en el programa para ser ejecutadas. Las instrucciones primitivas pueden ser de entrada, de asignación o de salida. Instrucción de entrada: Su misión es tomar uno o varios objetos desde un dispositivo de entrada y almacenarlos en la memoria central en los objetos cuyos identificadores aparecen en la propia instrucción. Si estos objetos tuviesen algún valor previo, éste se perdería. En un ordinograma aparece con el símbolo de operación de entrada/salida de la siguiente manera: Leer dato Instrucción de asignación: Es la que nos permite realizar cálculos evaluando una expresión y depositando su valor final en un objeto o realizar movimiento de datos de un objeto a otro. En un ordinograma aparece bajo el símbolo de operación en general con el siguiente formato: A=A+3 B=A
Preparado por Prof: Luis González T. Sólo para fines docentes 3

-

Instrucción de salida: Su misión consiste en enviar datos a un dispositivo externo, bien tomándolos de objetos depositados en la memoria o definidos de alguna forma en la propia instrucción.

En un ordinograma se representa por medio del símbolo de operación de entrada/salida de la siguiente manera: Escribir "Fecha", dia, mes, agno

Instrucciones de control: Son instrucciones que no realizan trabajo efectivo alguno salvo la evaluación de expresiones, generalmente lógicas, con el objetivo de controlar la ejecución de otras instrucciones o alterar el orden de ejecución normal de las instrucciones de un programa. Existen tres grandes grupos de instrucciones de control: Instrucciones alternativas: Son aquellas que controlan la ejecución de uno o varios bloques de instrucciones dependiendo del cumplimiento o no de alguna condición o del valor final de una expresión. Existen tres modelos típicos de instrucciones alternativas: 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 cumple, se ejecutan; si no se cumple, no se ejecutan. Su representación en un ordinograma es la siguiente:
CONDICIÓN SI NO INSTRUCCIONES

-

Alternativa doble: Controla la ejecución de dos conjunto de instrucciones por el cumplimiento o no de una condición, de tal forma que si se cumple, se ejecutan las instrucciones de un bloque; si no se cumple, se ejecutan las instrucciones del otro. Su representación en un ordinagrama es la siguiente:

CONDICIÓN SI NO

INSTRUCCIONES

INSTRUCCIONES

-

Alternativa Múltiple: Controla la ejecución de varios conjuntos de instrucciones por el valor de una expresión, de tal forma que cada conjunto de instrucciones está ligado a un posible valor de la expresión, existiendo un bloque al final que engloba otros posibles valores no definidos. Se ejecutará el conjunto que se encuentre relacionado con el valor que resulte de la evaluación de la expresión, de tal forma que si éste no aparece se ejecutará el último. Su representación en un ordinograma es la siguiente:

CONDICION

V1 INST 1

V2 INST 2 ....... INST N

VN

OTROS INST

Preparado por Prof: Luis González T. Sólo para fines docentes

4

-

Instrucciones repetitivas: Son aquellas que controlan la repetición de un conjunto de instrucciones denominado rango mediante la evaluación de una condición que se realiza cada nueva repetición o por medio de un contador asociado. Existen tres tipos de instrucciones repetitivas que dependen de su configuración: Instrucción MIENTRAS (WHILE): Controla la ejecución del conjunto de instrucciones que configuran su rango, de tal forma que éstas se ejecutan mientras se cumpla la condición, que será evaluada siempre antes de cada repetición. Es decir, mientras la condición sea cierta. Su configuración en el ordinograma es la siguiente:

CONDICIÓN NO SI

RANGO

-

Instrucción REPETIR (REPEAT - UNTIL o DO WHILE): Controla la ejecución de un conjunto de instrucciones que configuran un rango, de tal forma que éstas se ejecutan hasta que se cumpla la condición, que será evaluada siempre después de cada repetición, es decir, hasta que la condición sea CIERTA. La diferencia entre este bucle y el anterior es que este bucle siempre se ejecutará una vez. Su configuración en el ordinograma es la siguiente:

RANGO

NO CONDICIÓN

SI

-

Instrucción PARA (FOR): Controla la ejecución de un conjunto de instrucciones que configuran un rango, de tal forma que éstas se ejecutan un número determinado de veces que queda definido en lo que se denomina la cabecera del bucle. En ella se define un identificador de variable que va a actuar como contador asociado y que se denomina variable de control del bucle (Vc), definiéndose al mismo tiempo su valor inicial, (Vi) su valor final (Vf) y el incremento (I) que esta variable de control va adquirir en cada repetición. La variable de control toma el valor inicial y va incrementándose en cada nueva repetición, de tal manera que el proceso termina cuando la variable de control supera el valor final. Su configuración en un ordinograma es la siguiente:
Vc = Vi

Vc > Vf SI NO RANGO

Vc = Vc + I

Preparado por Prof: Luis González T. Sólo para fines docentes

5

-

Instrucciones de ruptura de secuencia: Alteran la secuencia normal de ejecución de instrucciones en un programa, que, como se sabe, es de la primera hasta la última, y de una en otra. La alteración de esta secuencia hace que continúe en otro lugar definido en la propia instrucción utilizando lo que se denomina etiqueta. Instrucción de alto incondicional: Altera la secuencia normal de ejecución de instrucciones, continuando la misma en la instrucción referenciada por medio de la etiqueta que figura en la propia instrucción IR A <ETIQUETA> Instrucción de alto condicional: Altera la secuencia normal de ejecución de instrucciones si se cumple una condición, continuando la misma en la instrucción referenciada por medio de la etiqueta que figura en la propia instrucción
A>3 X

. . X INSTRUCCION

Instrucciones compuestas Es aquella que representa un conjunto de instrucciones que están definidas en otra parte. Son llamadas subprogramas (funciones, subrutinas, párrafos, etc.). Su presentación en un ordinograma utiliza el símbolo de subprograma:

NOMBRE

Comentarios: Son frases que se incluyen en un programa con intención de aclarar el cometido o función de un objeto o conjunto de instrucciones. En un ordinograma se representa con el símbolo:
-------- COMENTARIO

VARIABLES AUXILIARES DE UN PROGRAMA Son objetos que utiliza un programa y por la función que realizan dentro del mismo toman un nombre especial, modelando su funcionamiento debido a su frecuente utilización. Contadores: Es un objeto que se utiliza para contar cualquier evento que pueda ocurrir dentro de un programa. Se utilizan realizando sobre ellos dos operaciones básicas: Inicialización: Todo contador se inicializa en 0 o un valor inicial si se desea realizar otro tipo de cuenta CONTA = 0 Incremento: Cada vez que aparece el evento a contar se ha de incrementar el contador en 1 u otro valor si se realiza otro tipo de cuenta: CONTA = CONTA + 1 Acumuladores: Son objetos de un programa para acumular elementos sucesivos con una misma operación. En general se utilizan para acumular sumas y productos, sin descartar otros posibles tipos de acumuladores. Al igual que los contadores, para utilizarlos hay que realizar sobre ellos las operaciones de inicialización y acumulación.

Preparado por Prof: Luis González T. Sólo para fines docentes

6

ALGORITMOS EN PSEUDOLENGUAJE PSEUDOLENGUAJE: Su significado informático es: un lenguaje de programación no formal. Un algoritmo expresado en pseudolenguaje consta de los siguientes elementos:     Cabecera Variables de memoria Asignaciones Instrucciones

Cabecera de un algoritmo: Entenderemos por cabecera de un algoritmo a la orden INICIO que nos permitirá dar comienzo al algoritmo. Su contrapartida es la orden FIN para dar finalizado el algoritmo. Variables: Una variable es un espacio de memoria del computador a la cual se le da un nombre para identificar dicho espacio. Este nombre puede contener letras, dígitos y guiones con la sola condición que el primer carácter del nombre sea una letra. Las variables tienen un valor único. Este valor puede ser cambiado o modificado, para ello existe una instrucción de asignación que permite asignarle o darle un valor, este se cambia por el nuevo valor. Asignación: La instrucción de asignación está representada por el símbolo = que representa un signo igual. El valor que se le asigna a una variable puede estar también dado por otra variable o por una expresión matemática. Ej: Supongamos que tenemos las siguiente variables y valores: A B C TT X R J 2 5 10 4 5 0 0 K H 0 1

R = 4 + 3 Ahora la variable R es 7 J = A + B Ahora el valor de J es 7 K = (C * B) + 2 Ahora el valor de K es 52 H = H + 1 Ahora el valor de H es 2 Reglas prácticas: 1. 2. 3. 4. 5. Toda variable que aparezca al lado derecho de = debe tener un valor. Cuando se usa = solo la variable que está a la izquierda cambia d valor. Las variables que se encuentran a la derecha del = no cambian de valor. Si una variable aparece a ambos lados del =, ésta cambia de valor por estar a la izquierda. Los operadores permitidos son: +, -, *, /, ** suma, resta, multiplicación, división, exponenciación RESTO(resto de la división) PARTENT(parte entera de la división) 6. Las funciones permitidas son ENT(VALOR)Retorna el valor entero de lo que esté entre paréntesis, o si este tiene decimales. MAYUS(carácter) Transforma el carácter específico a mayúsculas. 7. La prioridad de los operadores matemáticos es: 1.- ( ) 2.- funciones. 3.- *, / 4.- +, Si dos operadores de la misma prioridad están en una misma operación se evaluará primero el que esté más a la izquierda. Instrucciones de entrada/salida de datos Las instrucciones de entrada/salida de datos, le permiten al usuario0 final (que es la persona para quien se va a realizar el programa final) tener una comunicación con el algoritmo, dándole los valores a manipular y recibiendo por parte de éste los resultados de los procesos realizados con los datos ingresados.

Preparado por Prof: Luis González T. Sólo para fines docentes

7

La instrucción de entrada de datos, LEER, permite que el usuario le dé valores a las variables desde el teclado. Así la persona que está frente a computador va a poder digitar los valores que desea procesar. FORMATO: LEER var1, var2, ... varN En ella puede haber desde una hasta las que el usuario desee. Ejemplo: Supongamos que queremos determinar el valor del sucesor de 13: INICIO NUM, SUCESOR : NUMERICAS NUM = 13 SUCESOR = NUM + 1 FIN Este algoritmo sólo permite calcular el sucesor de 13, si necesitamos calcular el sucesor de otro número, habría que hacer otro algoritmo, uno para cada número. Pero si usamos la orden LEER, podemos permitirle al usuario ser él quien determine el valor sobre el que se desarrollará el cálculo. INICIO NUM, SUCESOR : NUMERICAS LEER NUM SUCESOR = NUM + 1 FIN En este ejemplo, el usuario lee en el algoritmo l valor del que se calculará su sucesor. Instrucciones de salida. En pseudolenguaje la instrucción que permite realizar una visualización de información en la pantalla es MOSTRAR. FORMATO: MOSTRAR exp1, exp2, ... expN Donde las expresiones pueden ser variables o mensajes. Para especificar un mensaje o comentario, este debe aparecer entre comillas dobles. Ejemplo: MOSTRAR "Este mensaje aparecerá en la pantalla" Haciendo uso de esta instrucción, ahora podemos visualizar en la pantalla algún comentario o resultado. INICIO NUM, SUCESOR : NUMERICAS MOSTRAR "Ingrese un número" LEER NUM SUCESOR = NUM + 1 MOSTRAR "El sucesor es :" , SUCESOR FIN Con instrucción MOSTRAR, el algoritmo ahora puede comunicarle al usuario que es lo que debe leer y, además, indicarle en la pantalla al usuario, cual fue el resultado. Toma de decisiones (instrucciones de bifurcación) Es habitual que en la vida diaria debemos tomar decisiones que signifiquen realizar o no una acción, o bien elegir entre un conjunto de acciones. Supongamos, por ejemplo, que estamos de cumpleaños y tenemos que decidir que hacer si nuestras opciones son hacer una fiesta o salir a cenar. Para dar solución a esta disyuntiva, no hacemos la siguiente pregunta: ¿Quiero hacer una fiesta? La respuesta sólo puede ser SI o NO, por lo que sí nuestra respuesta es SI, se hace la fiesta, si no entonces vamos a cenar Traspasando esto a un algoritmo cualitativo tendríamos: Inicio del algoritmo Si deseo hacer una fiesta Hago la fiesta Sino Voy a cenar Fin de selección Fin algoritmo

Preparado por Prof: Luis González T. Sólo para fines docentes

8

En pseudolenguaje existen instrucciones que nos permiten realizar este tipo de discriminación. Estas son: De decisión simple SI De decisión doble SI - SINO De decisión múltiple HACER EN CASO Decisión simple: Esta instrucción permite ejecutar o no una o varias instrucciones FORMATO: SI condición Instrucción (es) FIN SI Donde: Instrucción (es): es la instrucción o instrucciones que van a ser ejecutadas si se cumple la condición Condición: Es el evento que debe cumplirse para que la instrucción (es) se ejecutada. Decisión doble: Esta instrucción se utiliza cuando se tiene que elegir entra la ejecución de una u otra instrucción a partir de una condición. FORMATO: SI condición Instrucción(es) 1 SINO Instrucción(es) 2 FIN SI Donde: Condición es el evento que tiene que cumplirse para que se ejecute el grupo 1 de instrucciones. De no cumplirse el evento, se ejecuta el grupo 2 de instrucciones. Instrucción (es) 1: Es la instrucción o conjunto de instrucciones que deben ejecutarse en el caso de que la condición se cumpla (sea verdadera). Instrucción (es) 2: Es la instrucción o instrucciones que se van a ejecutar si la condición no se cumple. En este tipo de bifurcación, solo se ejecuta uno de los dos grupo de instrucciones, Nunca los dos. Condición es una expresión lógica que dará un resultado verdadero si ella se cumple o falso, en caso de que no se cumpla. Para representar las condiciones en pseudolenguaje, se hace uso de expresiones lógicas las que están compuestas por operadores de relación y conectores lógicos. Operadores de relación: Son aquellos que e utilizan para expresar condiciones = <> <= >= > < igual distinto Menor o igual mayor o igual mayor que menor que

FORMATO: Expresión 1

operador de relación

expresión 2

Ejemplo: Sea A = 4 y B = 7 El resultado de: A>B es falso A<= B es verdadero A + 3 = B es verdadero Conectores lógicos: Son aquellos que nos permiten combinar expresiones de relación, estos son: Y : que entrega un valor lógico verdadero sólo cuando ambas expresiones de relación sean verdaderas. En cualquier otro caso, entrega un valor lógico falso. O : que entregará un valor lógico verdadero cuando al menos una de las expresiones sea verdadera y un valor lógico falso sólo cuando ambas expresiones sean falsas.

Preparado por Prof: Luis González T. Sólo para fines docentes

9

Ejemplo: Sean A = 3, B= 4 y C = 5 (A = 3) Y (B = C) (B = C) O (A = 3) (A > B) O (B < C) (A + 2 = 6) O (B = C) falso verdadero verdadero falso

Aplicaciones en Pseudolenguaje 1.- El siguiente algoritmo determina si dos números ingresados por el usuario son o no iguales: INICIO VAR1, VAR2 : NUMERICAS MOSTRAR "Ingrese dos números" LEER VAR1, VAR2 SI (VAR1 = VAR2) MOSTRAR "Los valores son iguales" SINO MOSTRAR "Los valores son distintos" FIN SI MOSTRAR "Proceso terminado" FIN En este algoritmo primero se despliega un mensaje en la pantalla para que el usuario sepa que tiene que ingresar dos valores que son recibidos en la instrucción siguiente (LEER VAR1, VAR2). Cuando los valores ya han sido ingresados por el usuario, el algoritmo procede a compararlos para saber si son iguales o no iguales utilizando la instrucción SI (VAR1 = VAR2). El algoritmo desplegará en pantalla el mensaje "Los valores son iguales" cuando la expresión VAR1 = VAR2 sea verdadera. El mensaje "Los valores son distintos" aparecerá en la pantalla cuando la expresión evaluada en la instrucción SI sea falsa. Luego de haber desplegado el mensaje en la pantalla, el algoritmo seguirá ejecutando las instrucciones que siguen a continuación de las palabras FIN SI, que sirven para indicar que ahí termina la bifurcación, o sea, mostrará en mensaje "Proceso terminado", el que se ejecutará siempre sin importa cuales hayan sido los valores ingresados. 2.- El siguiente algoritmo le permite al usuario ingresar dos valores y determinar cuál de ellos es el mayor, teniendo en cuenta que también puede darse la igualdad. Un primer razonamiento se puede basar en que e tienen tres alternativas: VAR1 = VAR2 VAR1 > VAR2 VAR1 < VAR2 Entonces uno puede preguntar por cada una de las alternativas creando un algoritmo con la siguiente estructura: INICIO VAR1, VAR2 : NUMERICAS MOSTRAR "Ingrese dos números" LEER VAR1, VAR2 SI (VAR1 = VAR2) MOSTRAR "Son iguales" FIN SI SI (VAR1 > VAR2) MOSTRAR "El primero es mayor" FIN SI SI (VAR1 < VAR2) MOSTRAR "El segundo es mayor" FIN SI FIN También se podría haber pensado: Si tengo tres alternativas evalúo la primera. SI VAR1 = VAR2 muestro el mensaje "Son iguales" y termino; sino son iguales, entonces puede que sea VAR1 mayor que VAR2 o VAR2 mayor que VAR1, por lo que pregunto SI VAR1 > VAR2 entonces muestro "El primero es mayor", si la condición es falsa muestro "El

Preparado por Prof: Luis González T. Sólo para fines docentes

10

segundo es mayor", ya que si no son iguales y VAR1 no es mayor que VAR2 solo puede ser que VAR2 sea mayor que VAR1 puesto que es la única alternativa que queda. INICIO VAR1, VAR2 : NUMERICAS MOSTRAR "Ingrese dos números" LEER VAR1, VAR2 SI (VAR1 = VAR2) MOSTRAR "Son iguales" SINO SI (VAR1 > VAR2) MOSTRAR "El primero es mayor" SINO MOSTRAR "El segundo es mayor" FIN SI FIN SI FIN 3.- En el siguiente algoritmo determinaremos el mayor de tres números ingresados por el usuario. En el análisis de lo que se nos pide observamos que: Se tiene que leer tres números Tenemos tres posibles respuestas: a) El primer valor es el mayor b) El segundo valor es el mayor c) El tercer valor es el mayor De esta información podemos determinar que: 1.- Tenemos que usar tres variables para recibir los números que van a ser ingresados. 2.- Tenemos que leer los valores antes de preguntar cual de ellos es mayor 3.- Para saber si un número es el mayor tenemos que: a) Preguntar si el primero es mayor que los otros dos, o sea, si es mayor al segundo y al tercero. b) Si era mayor lo indicamos con un mensaje, de lo contrario, tenemos que ver si el mayor es el segundo o el tercero, puesto que el primero ya no lo es. c) Si el segundo es el mayor lo indicamos con un mensaje, de los contrario, indicamos que e mayor es el tercero ya que es el único que queda. El algoritmo que resulta de esto es: INICIO A, B, C : NUMERICAS MOSTRAR "Ingrese tres números" LEER A, B, C SI (A > B) Y (A > C) MOSTRAR "El primero es el mayor" SINO SI (B > C) MOSTRAR "El segundo es el mayor" SINO MOSTRAR "El tercero es el mayor" FIN SI FIN SI FIN

Ejercicios: 1.- Codifique un algoritmo que permita determinar si un alumno aprobó o no un ramo si consideramos que se evalúa con cuatro notas y el promedio se obtiene aritméticamente Se deben ingresar las cuatro notas, calcular el promedio, se debe desplegar el mensaje "Alumno aprobó", si el promedio es mayor o igual a cuatro, de lo contrario desplegar el mensaje "Alumno reprobó" 2.- Modifique el algoritmo anterior, sabiendo que el promedio final será igual al 60% del promedio aritmético de las notas, más el 40% de la nota de examen, por lo tanto deberá ingresar además de las cuatro notas, una nota de examen, deberá desplegar los mismos mensajes.

Preparado por Prof: Luis González T. Sólo para fines docentes

11

Selección múltiple: Esta instrucción permite escoger un grupo de instrucciones a ejecutar según sea el valor de una variable. FORMATO: HACER EN CASO EN CASO VARIABLE = VALOR1: INSTRUCCIÓN(ES) 1 EN CASO VARIABLE = VALOR2: INSTRUCCIÓN(ES) 2 EN CASO VARIABLE = VALOR3: INSTRUCCIÓN(ES) 3 [ SEA OTRO VALOR: INSTRUCCIÓN(ES) N ] En esta instrucción, se escogerá sólo un grupo de instrucciones dependiendo del valor de la variable. Si coincide con el primer valor, ejecutará el primer grupo de instrucciones; si coincide con el segundo valor, se ejecutará el segundo grupo y así sucesivamente, y si no coincide con ningún valor indicado en a instrucción se ejecutaran las instrucciones que estén indicadas para SEA OTRO VALOR. SEA OTRO VALOR es opcional, por lo que sólo se colocará de ser necesario. Supongamos que alguien desea tener un algoritmo que permita, ingresando el código de un mes, saber la glosa correspondiente al código y cuantos días tiene éste. INICIO VARMES : NUMERICA MOSTRAR "Ingrese un código" HACER EN CASO EN CASO VARMES = 1: MOSTRAR "enero = 31" EN CASO VARMES = 2: MOSTRAR "febrero = 28 ó 29" EN CASO VARMES = 3: MOSTRAR "marzo = 31" EN CASO VARMES = 4: MOSTRAR "abril = 30" EN CASO VARMES = 5: MOSTRAR "mayo = 31" EN CASO VARMES = 6: MOSTRAR "junio = 30" EN CASO VARMES = 1: MOSTRAR "Julio = 31" EN CASO VARMES = 8: MOSTRAR "agosto = 31" EN CASO VARMES = 9: MOSTRAR "septiembre = 30" EN CASO VARMES = 10: MOSTRAR "octubre = 31" EN CASO VARMES = 1: MOSTRAR "noviembre = 30" EN CASO VARMES = 1: MOSTRAR "diciembre = 31" SEA OTRO VALOR: MOSTRAR "Código no existe" FIN EN CASO FIN

Preparado por Prof: Luis González T. Sólo para fines docentes

12

EJERCICIOS: 1.- Recorra los siguientes algoritmos y determine los valores finales de cada variable:
INICIO JOSE, SS, J, R : NUMERICAS JOSE = 4 SS = 5 J=3 R=2 J = SS + R SI (J = TRUNCAR(J / 2) * 2) SS = JOSE * 2 J=J+2+3 HACER EN CASO EN CASO J = 35: J=J+1 EN CASO J = 36: J=J-1 EN CASO j = 37 J=J* 2 FIN EN CASO SINO J = SS + 3 SI (J = SS * 3 - 1) J=J*3+R SINO J = SS * (R ** 2) / 2 FIN SI FIN SI J=J+1 SS = J * 2 FIN

INICIO UNO, DOS, TRES, CUATRO : NUMERICAS UNO = 1 DOS = UNO + 1 TRES = DOS - 1 CUATRO = TRES + 1 SI (TRES <> CUATRO) DOS = DOS + 3 SI (TRES < DOS) Y (CUATRO = 4) UNO = 2 SINO UNO = 3 FIN SI SI (TRES <> CUATRO) TRES = CUATRO + 1 SINO UNO = 1 HACER EN CASO EN CASO UNO = 1: HACER EN CASO EN CASO DOS = 1: UNO = 2 EN CASO DOS = 2: DOS = 1 FIN EN CASO EN CASO UNO = 2: CUATRO = TRES + 1 SEA OTRO VALOR: DOS = CUATRO - DOS FIN EN CASO FIN SI UNO = (TRES + DOS) - CUATRO FIN SI FIN

Preparado por Prof: Luis González T. Sólo para fines docentes

13

2.- Revisa los siguientes algoritmos y determina si están buenos o no. Hay a lo menos uno malo. - El siguiente algoritmo le permite al usuario leer un número y saber si éste es par o impar. El cero es neutro.
INICIO N : NUMERICAS MOSTRAR "Ingrese un número" LEER N SI (N = 0) MOSTRAR "El número es cero" SINO SI (RESTO(N / 2) = 0) MOSTRAR "El número es par" SINO MOSTRAR "El número es impar" FIN SI FIN SI FIN

- Determinar si un número ingresado por el usuario es positivo y menor que 12 al mismo tiempo.
INICIO N : NUMERICAS MOSTRAR "Ingrese un número" SI (N > 0) Y (N < 12) MOSTRAR "El número cumple la condición" SINO MOSTRAR "El número no cumple la condición" FIN SI FIN ALGORITMO

El siguiente algoritmo determina si una persona es aceptada o no en un trabajo. Para ello cuenta con los siguientes requisitos: Para mujeres: Debe ser soltera, mayor de 18 años y menor de 26 Para hombres: Si es casado debe tener más de 40 años, si es soltero debe tener más de 18 años y menor de 31 años. Además, para determinar el sexo de la persona y su estado civil hay que tener en cuenta los siguientes datos: Sexo : 1 = masculino : 1 = soltero 2 = femenino 2 casado 3 separado 4 viudo Estado civil

INICIO XCIV, XSEX, XED : NUMERICAS MOSTRAR "Indique estado civil" LEER XCIV MOSTRAR "Indique su sexo" LEER XSEX MOSTRAR "Indique su edad" LEER XED HACER EN CASO EN CASO XSEX = 1: SI (XCIV = 1) Y (XED > 18) Y (XED < 31) MOSTRAR "Está seleccionado" SINO SI (XCIV = 2) Y (XED > 40) MOSTRAR "Está seleccionado" SINO MOSTRAR "Esta eliminado" FIN SI FIN SI EN CASO XSEX = 2: SI (XED > 18) Y (XED < 26) MOSTRAR "Está seleccionada" SINO MOSTRAR "Está eliminada" FIN SI SEA OTRO VALOR MOSTRAR "ERROR DE INGRESO DE VALOR" FIN EN CASO FIN Preparado por Prof: Luis González T. Sólo para fines docentes 14

Confeccione un algoritmo para cada uno de los siguientes requerimientos: 1. Leer dos números y determine cuál de ellos es menor o si son iguales 2. Leer tres números y determine cual de ellos es menor. Supongamos que van a ser distintos. 3. Leer tres números y determinar cual es el mayor teniendo en cuenta que se pueden dar igualdad entre ellos. 4. Leer tres números y mostrarlos ordenados de menos a mayor. Supongamos que van a ser distintos entre sí. 5. Leer un número y determinar si es mayor igual que 10 o no. 6. Leer un número y determinar si es positivo y par al mismo tiempo. 7. Leer un número y determinar si es divisible por 5. 8. Leer un número y determinar si este es positivo e impar. 9. Leer un número y determinar si este es mayor a 10 y menos a 86 y par al mismo tiempo. 10. Leer un número, si es positivo súmele 3, si es negativo súmele 6, luego indique si el resultado del calculo es positivo, negativo o 0. 11. Leer un número y determinar si es divisible por 3 y por 2 al mismo tiempo. 12. Leer un número y determinar si es divisible por 3 y por 2 al mismo tiempo pero sin usar conectores lógicos. Busque a lo menos dos soluciones distintas. 13. Lea un nombre y edad de dos personas y muestre el nombre de la persona mayor. 14. Leer dos número y determinar si el primero es el antecesor del segundo. Tenga en consideración que sólo se puede determinar si un número es sucesor de otro si éstos son enteros. 15. Determine el número de días e un mes ingresado por el usuario si éste ingresa el nombre del mes. 16. Una empresa necesita contratar una secretaria. Para ello se le hacen las siguientes preguntas: ¿Es soltera (1) o casada (2) ¿Cuántos hijos tiene? Si no tiene indicar 0 ¿Tiene título técnico S/N? ¿Cuál es su edad?

La postulante debe cumplir los siguientes requisitos para ser preseleccionada: Las solteras deben poseer título técnico, no tener hijos y ser menor a 24 años. Las casadas debe tener edad superior a 40 años y tener hijos. El algoritmo que desarrolle debe permitir evaluar estas condiciones para determinar, mediante mensajes, si el contrato se hace efectivo o no, por lo tanto, debe realizar los ingresos correspondientes y entregar el mensaje respectivo. 17. Una empresa de turismo necesita realizar permanentemente cálculo de paridad cambiaria. Para realizar dicho cálculo, maneja la siguiente lista de valores: 1.- DÓLAR 2.- DRACMA 3.- LIBRAS 4.- RUPIAS 670 PESOS 405 PESOS 495 PESOS 293 PESOS

El algoritmo debe recibir por parte del usuario el código (número de lista) de la moneda a la que se desea hacer la transformación y el valor en pesos a transformar a la moneda indicada. 18. Usando los mismos valores de la tabla anterior, ingrese el código de la moneda y el monto a transformar y muestre su equivalente en pesos. 19. Una empresa tiene en su planta vendedores divididos en tres categorías ( A, B, C). Cada categoría tiene un porcentaje de comisión por ventas realizadas (A = 1,3%; B = 1,25%; C = 1,11%). Se necesita un algoritmo que determine cuanto se le pagará a un vendedor. Para esto, el algoritmo debe permitir identificar al vendedor (nombre) e indicar el monto que este vendió y mostrar el monto de la comisión correspondiente.

Preparado por Prof: Luis González T. Sólo para fines docentes

15

INSTRUCCIONES CICLICAS O ITERATIVAS Una instrucción cíclica es una orden que permite que un conjunto de instrucciones (bucle) se ejecuten varias veces, aunque en algunos casos podría darse que se ejecutaran una vez o simplemente no se ejecutaran. Las instrucciones de este tipo son: PARA, MIENTRAS Y REPETIR. PARA: Permite que un conjunto de instrucciones se ejecuten un numero determinados de veces. FORMATO: PARA var = val1 HASTA val2 [ SUMANDO VAL3 ] instrucciones FIN PARA Var: es la variable que será utilizada para ir contando el numero de veces que se ha de repetir el ciclo. Esta variable aumenta en una unidad cada vez que se repite el ciclo y se omite el parámetro SUMANDO. Val1 es el valor que toma var en el inicio del primer ciclo. Val2: Es el último valor con que se ejecutará el ciclo. Ejemplo: Con el siguiente algoritmo se muestran en pantalla todos los números del 1 al 10
INICIO PARA N = 1 HASTA 10 MOSTRAR N FIN PARA FIN

Cuando se llega a la instrucción PARA, la variable N toma el valor 1 y ejecuta la instrucción MOSTRAR N. Como N es una variable que en la primera ejecución vale 1, es mostrado este valor. Cuando se llega a FIN PARA, se procede a realizar la segunda iteración, comenzando el bucle desde el principio e incrementando , en este caso, la variable N en 1. Este proceso se realizará hasta que N tome el valor 10. Cuando esto ocurra se ejecuta por ultima vez mostrando el valor 10. Esta vez, al llegar al FIN PARA, se realiza un último incremento a la variable N quedando esta con el valor 11. Sin embargo, como ya se supero el valor final, no se ejecutará el ciclo y se continúa con las instrucciones que vengan después del FIN PARA. Ejemplos: Se necesita calcular la suma de los 10 primeros número naturales positivos:
INICIO RESULTADO, X : NUMERICAS RESULTADO = 0 PARA X = 1 HASTA 10 RESULTADO = RESULTADO + X FIN PARA MOSTRAR "LA SUMA DIO ", RESULTADO FIN

Mostrar todos los números mayores o iguales a 10 y menores a 41
INICIO X : NUMERICA PARA X = 10 HASTA 40 MOSTRAR X FIN PARA FIN

MIENTRAS: Se diferencia de la anterior porque no necesitamos saber el número de veces que se tiene que repetir el bucle para determinar el fin de la ejecución, sino que necesitamos saber que se tiene que dar (condición) para que se siga ejecutando. FORMATO: MIENTRAS (condición) HACER Instrucciones FIN MIENTRAS Condición: Expresión lógica la cual tiene que ser verdadera para que se ejecute el bucle. El termino de ejecución se produce cuando la condición no se cumple. Esta instrucción funciona de la siguiente manera: Cuando se llega a ella, se evalúa el valor de la condición. Luego, si esta es verdadera, se ejecutan todas las instrucciones que hay entre MIENTRAS Y FIN MIENTRAS.
Preparado por Prof: Luis González T. Sólo para fines docentes 16

Cuando se llega a FIN MIENTRAS se vuelve a hacer el mismo procedimiento hasta que la condición sea falsa. Ejemplo: Calcular la suma e todos los números pares positivos menores a 66
INICIO TOTAL, NUM : NUMERICAS TOTAL = 0 NUM = 2 MIENTRAS (NUM < 66) HACER TOTAL = TOTAL + NUM NUM = NUM + 2 FIN MIENTRAS MOSTRAR " Resultado es", TOTAL FIN

En la instrucción MIENTRAS, se tiene que dar un valor inicial a la variable de la condición utilizando una instrucción de asignación previa y el incremento se tiene que hacer dentro del bucle. Leer tantos números como el usuario desee y determinar la suma de ellos. El ingreso finaliza cuando la suma sea mayor o igual a 666.
INICIO n, suma : NUMERICAS suma = 0 MIENTRAS (SUMA < 666) HACER MOSTRAR "Ingrese un número" LEER n Suma = suma + n FIN MIENTRAS MOSTRAR "La suma es ", suma FIN

Leer y sumar tantos números como el usuario desee. Para determinar si se tiene que leer otro número o no, se le debe preguntar al usuario si desea seguir ingresando números. Si el usuario desea seguir deberá digitar una S y si no va a seguir, digitar una N.
INICIO Resp : ALFANUMERICA Total, num : NUMÉRICAS Resp = "S" Total = 0 MIENTRAS (Resp = "S") HACER MOSTRAR "Ingrese un número" LEER num Total = Total + num MOSTRAR "Desea seguir ingresando S/N" LEER Resp Resp = MAYUS(Resp) FIN MIENTRAS FIN

En este algoritmo se le da un valor "S" a la variable Resp para que la primera vez que se llega al ciclo MIENTRAS, se pueda leer. I a Resp no se le da el valor inicial de "S" asignándosele otro, cuando llegue a MIENTRAS por primera vez el ciclo no se ejecutará REPETIR: Esta instrucción es muy similar en su funcionamiento a la instrucción MIENTRAS. FORMATO: REPETIR Instrucciones HASTA QUE (condición) Esta instrucción, a diferencia de MIENTRAS, la evaluación de la condición se realiza después de ejecutar el bucle y esta condición indica cuando va a pasar a parar la ejecución Esta instrucción se utiliza preferentemente para asegurarnos que un dato cumpla con algún requisito preestablecido.

Preparado por Prof: Luis González T. Sólo para fines docentes

17

Ejemplo: Leer siete números positivos y determinar su promedio.
INICIO Cont, suma, prom, num : NUMERICAS suma = 0 prom = 0 PARA CONT = 1 HASTA 7 REPETIR MOSTRAR "Ingrese un número" LEER num HASTA QUE (num > 0) suma = suma + num FIN PARA prom = suma / 7 MOSTRAR "El promedio es ", prom FIN

Otros conceptos relacionados con ciclos A) Contador: Se dice que una variable es de tipo contador cuando esta se va a incrementa o decrementar cada vez que se realice la instrucción que lo contiene. B) Sumadores, Acumuladores o Totalizadores: Son variables utilizadas para guardar cantidades variables resultantes de sumas sucesivas. Realiza una función similar a la de un contador, con la diferencia de que la cantidad que se le suma o resta es constante. Ejemplo: leer 10 números cualesquiera y determinar el promedio de los números enteros. Para ello utilizaremos un ciclo Para que realizará 10 ingresos. Además, dentro del bucle, preguntaremos si el numero es entero para ver si tenemos que sumarlo o contarlo. Hay que tener en cuenta que si bien son 10 números los que se van a leer, no se sabe cuantos de ellos son enteros por lo que tendremos que utilizar un contador.
INICIO Acum, contador, x, n, prom : NUMERICAS Acum = 0 Contador = 0 PARA x = 1 HASTA 10 MOSTRAR "Ingrese un número" LEER n SI (n = (ENTERA(n)) Acum = Acum + n contador = contador + 1 FIN SI FIN PARA Prom = Acum / contador MOSTRAR " El promedio es ", prom FIN

C) Interruptores: conocidos como switch, centinela, bandera o flag. Es una variable que puede tomar dos valores a lo largo del algoritmo y que permiten comunicar información de una parte a otra parte del mismo. Los usos más habituales de un interruptor son: Si el programa a pasado o no por de6terminado punto pregu8ntando por su estado o contenido. Salir de un ciclo cuando se cambie el valor del interruptor. Hacer otra operación dependiendo de un estado u otro. Ejemplo:
INICIO Sw, x , n : Numéricas Sw = 0 PARA x = 1 HASTA 10 REPETIR MOSTRAR "Ingrese un número" LEER n HASTA QUE (n = int(n)) y (n > 0) SI (n = 7) Sw = 1 FIN SI FIN PARA SI (Sw = 0) MOSTRAR " " No se ingresó el 7" SINO Preparado por Prof: Luis González T. Sólo para fines docentes 18

MOSTRAR "se ingreso el 7" FIN SI FIN

Como se puede ver, SW va a tener el valor 0 desde la partida del algoritmo y dentro del bucle sólo va a cambiar su valor a 1 cundo se ingrese el número 7. Ejemplos: 1.- El siguiente algoritmo muestra los 10 primeros números pares positivos.
INICIO x, num, : numéricas PARA x = 1 HASTA 10 Num = 2 * x MOSTRAR num FIN PARA FIN

2.- La serie numérica 1, 3, 5, 7, 9, 11, ..., 21, es mostrado por el siguiente algoritmo:
INICIO x : numérica x=1 MIENTRAS x <= 21 Hacer MOSTRAR x x=x+2 FIN MIENTRAS FIN

3.- El siguiente algoritmo calcula la suma de los 20 primeros elementos de la siguiente serie numérica: 500, 501, 501, ..., 550.
INICIO Sum, x : numéricas Sum = 0 PARA x = 500 HASTA 550 Sum = Sum + x FIN PARA MOSTRAR "Resultado es :" sum FIN

4.- El siguiente algoritmo permite mostrar los dígitos de un número entero positivo ingresado por el usuario, de izquierda a derecha.
INICIO nn, aux, dig, a :Numéricas nn = 0 REPETIR MOSTRAR " Ingrese un número entero positivo" LEER nn HASTA QUE (nn > 0) Y (nn = entero(nn)) aux = nn MIENTRAS (aux > 0) HACER a = Ent(aux / 10) * 10 dig = aux - a aux = a MOSTRAR dig FIN MIENTRAS FIN

5.- Calcular el promedio de 10 números ingresados por el usuario.
INICIO sum, x, n, p : Numéricas sum = 0 a=0 PARA x = 1 HASTA 10 MOSTRAR "Ingrese un número" LEER n sum = sum + n FIN PARA p = sum / 10 MOSTRAR " El promedio es :", p FIN

Preparado por Prof: Luis González T. Sólo para fines docentes

19

6.- El siguiente algoritmo permite leer 10 números cualesquiera y determina cual fue el mayor de ellos.
INICIO mayor, n, x : Numéricas n=0 PARA x = 1 HASTA 10 hacer MOSTRAR "Ingrese un número" LEER n SI (x = 1) mayor = n SINO SI (n > mayor) mayor = n FIN SI FIN SI FIN PARA FIN

7.- El siguiente algoritmo permite mostrar alternativamente las palabras "Hola" y "Chao". Esto hará hasta que se muestren 13 palabras.
INICIO Sw, x : Numéricas Sw = 0 PARA x = 1 HASTA 13 SI (Sw = 0) MOSTRAR "Hola" Sw = 1 SI NO MOSTRAR "Chao" Sw = 0 FIN SI FIN PARA FIN

8.- Una empresa dedicada al cambio de monedas extranjera, cuenta con la siguiente lista de precios: 1.- Dólar 680 pesos 2.- Dracma 550 pesos 3.- Dinares 150 pesos 4.- Rupias 350 pesos El requerimiento planteado por esta empresa, plantea la necesidad indeterminada de cambios monetarios. En cada intercambio se debe leer el código de la moneda y el monto que se pretende transar, para que el algoritmo indique su equivalente en pesos. Además, la empresa requiere saber, luego de finalizadas las transacciones, cuantas monedas se recibieron de cada una.
INICIO resp : Alfanumérica m, dólar, dracma, dinar, rupia, monto Numéricas resp = "S" dólar = 0 dracma = 0 dinar = 0 rupias = 0 MOSTRAR " MENU 1.- Dólar 680 pesos 2.- Dracma 550 pesos 3.- Dinares 150 pesos 4.- Rupias 350 pesos" MIENTRAS (resp = "S") o (resp = "s") Hacer REPETIR MOSTRAR "Indique código de moneda" LEER m HASTA QUE (m > 0) y (m< 5) REPETIR MOSTRAR "Ingrese el monto" LEER monto HASTA QUE (monto > 0)

Preparado por Prof: Luis González T. Sólo para fines docentes

20

HACER EN CASO EN CASO m = 1: dólar = dólar + monto pesos = monto * 680 EN CASO m = 2 dracma = dracma + monto pesos = monto * 550 EN CASO m = 3 dinar = dinar + monto pesos = monto * 150 EN CASO m = 3 rupia = rupia + monto pesos = monto * 350 FIN EN CASO REPETIR MOSTRAR "Desea seguir S o N) LEER resp Resp = Mayusc(resp) HASTA QUE (resp = "S") o (resp = "N") FIN MIENTRAS MOSTRAR "Total dólares : ", dólar MOSTRAR "Total dracmas : ", dracma MOSTRAR "Total dinares : ", dinar MOSTRAR "Total rupias : ", rupias FIN

Preparado por Prof: Luis González T. Sólo para fines docentes

21

ARREGLOS

Se puede visualizar un arreglo como un conjunto de datos de un mismo tipo (numérico o alfanumérico). A los cuales se les asigna un nombre para identificar así al conjunto total de valores. A cada dato partícipe del arreglo se le denomina Elemento. Arreglo unidimensional o Vectores: Es un conjunto de celdas, ordenadas en fila, en las que se depositan datos de mismo tipo. Un arreglo unidimensional es un conjunto de datos organizados en forma de lista. Los valores que se muestran en el siguiente ejemplo pueden considerarse como elementos de un arreglo unidimensional o vector: 21,14,15,80,17,25,30 Si a este conjunto (lista) de edades se le coloca un nombre como EDADES, se puede hacer referencia a cualquier elemento del vector agregando un número encerrado entre paréntesis cuadrados [ ], al que se le denomina índice, el cual indica la posición que ocupa dentro del vector un determinado elemento. 150000 50000 450000 348000 500000 400000 600000

A este vector le llamaremos SUELDOS, y la referencia a sus elementos sería de la siguiente manera: Sueldo[1] = 150000 Sueldo[2] = 50000 ... Sueldo[7] = 600000 Los índices o subíndices pueden representarse por medio de una variable, número o expresión matemática. Ejemplo: Sueldo[K] Sueldo[1] Sueldo[K+1] Los subíndices deben ser valores enteros y positivos. Los elementos de un vector pueden ser operados, comparados, modificados, ingresados y mostrados, como si fueran variables. Ejemplo: S = Sueldo[1] + 500 Sueldo[3] = 500 Si Sueldo[2] > 300000 Leer Sueldo[X] Mostrar Sueldo[X] Declaración de Vectores Se debe realizar al comienzo del algoritmo justo después de la palabra INICIO. Se debe indicar mediante la instrucción arreglo seguido por el nombre del vector y entre paréntesis la cantidad de elementos. Formato: DECLARAR Nombvector[largo] de tipo Ejemplo: DECLARAR Sueldo[7] de numéricas Esto indica que se ha definido un vector con el nombre SUELDO que contiene como máximo 7 elementos de tipo numérico.

Preparado por Prof: Luis González T. Sólo para fines docentes

22

Ingreso de datos en un Vector INICIO DECLARAR Lista[4] de numéricas LEER lista[1] LEER lista[2] LEER lista[3] LEER lista [4] Se observa la definición del arreglo lista de largo 4 del tipo numérico, posteriormente, cuatro instrucciones de ingreso, una para cada elemento. Sin embargo, el ingreso de datos se puede realizar utilizando la instrucción iterativa PARA, quedando de la siguiente manera: INICIO DECLARAR lista[4] de numérica X : numérica PARA x = 1 HASTA 4 LEER lista[x] FIN PARA FIN Obsérvese que la variable x cambia de 1 a 4. De esta manera, cada una de las iteraciones permite leer un elemento en una nueva posición. Desplegar o mostrar los elementos de un vector La lógica de este proceso es la misma que para leer, salvo que ahora se usa la instrucción Mostrar. INICIO DECLARAR lista[4] de numérica X : numérica PARA x = 1 HASTA 4 LEER lista[x] FIN PARA PARA x = 1 Hasta 4 MOSTRAR lista[x] FIN PARA FIN Si se desea mostrar un elemento en forma particular, se indica el nombre del vector y el lugar donde esta el elemento Ejemplo INICIO DECLARAR Nombre[100] de numérica X : numérica MOSTRAR "Ingrese posición 1 al 100" LEER X MOSTRAR "En esa posición está : ", Nombre[X] FIN Ejemplos: 1.- El siguiente algoritmo permite llenar un vector de 10 posiciones y luego mostrar su contenido de manera inversa al ingreso:
INICIO DECLARAR datos[10] de numérica X : numérica PARA x = 1 HASTA 10 MOSTRAR "ingrese un valor" LEER datos[x] FIN PARA PARA x = 10 HASTA 1 restando 1 MOSTRAR datos[x] FIN PARA FIN

Preparado por Prof: Luis González T. Sólo para fines docentes

23

2.- En el siguiente algoritmo se llenará un vector llamado Lista de 100 elementos desde la última posición hasta la primera.
INICIO DECLARAR lista[100] de numérica X : numérica PARA x = 100 HASTA 1 restando 1 LEER lista[x] FIN PARA FIN

3.- En el siguiente algoritmo se llenará un vector de 100 posiciones llamado ABC y después de finalizado el ingreso de dato, se contará cuantos números son positivos
INICIO DECLARAR ABC[100] de numérica X , Contador : numérica Contador = 0 PARA x = 1 Hasta 100 MOSTRAR "Ingrese un número" LEER ABC[x] FIN PARA PARA x = 1 HASTA 100 SI(ABC[x] > 0 Contador = Contador + 1 FIN SI FIN PARA MOSTRAR "Se ingresaron ", Contador, "números positivos" FIN

4.- Se tiene un vector llamado Vec de 50 posiciones. El siguientes algoritmo permite llenar dicho vector sólo con números positivos:
INICIO DECLARAR Vec[50] de numérica X, : numérica PARA x = 1 HASTA 50 REPETIR MOSTRAR "Ingrese un número" LEER Vec[x] HASTA QUE (Vec[x] > 0) FIN PARA FIN

5.- Supongamos que tenemos un vector llamado Lista de 100 posiciones con elementos enteros positivos previamente ingresados. Con el siguiente algoritmo se puede determinar el promedio de todos los elementos que hay en el vector.
INICIO DECLARAR Lista[100] de numérica Acum, x , p : numérica Acum = 0 X=0 PARA x = 1 HASTA 100 Acum = Acum + Lista[x] FIN PARA P = Acum / 100 MOSTRAR "El promedio es de ", P FIN

6.- Utilizando el mismo vector del algoritmo anterior cambiaremos todos los elementos por su doble. Vamos a suponer que el elemento ya está lleno.
PARA x = 1 HASTA 100 Lista[x] = Lista[x] * 2 FIN PARA

Preparado por Prof: Luis González T. Sólo para fines docentes

24

7.- Supongamos que tenemos un vector llamado Lista de 10 posiciones con números ya ingresados en él. El siguiente algoritmo ordena de menor a mayor dicho vector.
INICIO DECLARAR Lista[10] de numéricas x, y : Numérica PARA x = 1 HASTA 9 PARA y = x+1 Hasta 10 SI Lista[x] > lista[y] Aux = Lista[x] Lista[x] = Lista[y] Lista[y] = aux FIN SI FIN PARA FIN PARA FIN

8.-- Determinaremos cual es el promedio mayor de dos vectores cuyos elementos ya están ingresados. Los vectores de llaman A y B. INICIO DECLARAR A[10], B[10] de numéricas acuma, acumb, pos, proma, promb : numéricas acuma = 0 acumb = 0 PARA pos = 1 HASTA 10 acuma = acuma + A[pos] acumb = acumb + B[pos] FIN PARA proma = acuma / 10 promb = acumb / 10 SI (proma > promb) MOSTRAR " El promedio mayor es el del vector A" SI NO MOSTRAR " El promedio mayor es el del vector B" FIN SI FIN Paralelismo entre vectores Los vectores no siempre se usan de manera independiente, pues en ocasiones hay información que hace referencia a un mismo ente, por tanto, se requiere usar vectores de un modo paralelo. Esto significa que ellos cumplirán con las siguientes características. La información almacenada en ellos guardada esta relacionada entre sí a partir de su posición. Cualquier modificación de sus ubicaciones tiene que ser hecha en todos los vectores que estén siendo tratados paralelamente.

Si tenemos tres vectores en donde guardamos: nombre, sexo y edad de 6 personas, entonces tendríamos algo así: NOMBRE ANA PEDRO DIEGO ROSA CARLOS HERNAN SEXO F M M F M M EDAD 25 23 32 28 40 30

En estos vectores la información de una persona está contigua en los tres vectores, así, si en la primera posición del vector NOMBRE aparece ANA, el sexo y la edad que aparecen en los otros vectores pertenecen a ella. En este tipo de vectores, si se altera el orden de los datos en un vector, este cambio debe realizarse en los otros vectores para no perder contigüidad de los elementos. Por ejemplo si intercambiamos en el vector NOMBRE el primer elemento por el segundo, pasaría lo siguiente:

Preparado por Prof: Luis González T. Sólo para fines docentes

25

NOMBRE SEXO EDAD PEDRO F 25 ANA M 23 DIEGO M 32 ......... .......... ........ Como se puede aprecia, al no realizar el cambio en los otros vectores, se produjo una alteración en los datos, ya que ahora Pedro aparece con sexo femenino y con 25 años que eran los datos de Ana, así mismo Ana quedo con los datos de Pedro. Por lo tanto, los cambios deberían hacerse también en los otros dos vectores para que queden así: NOMBRE PEDRO ANA DIEGO ......... .......... SEXO M F M ........ EDAD 23 25 32

De eta forma los datos cambiaron de posición pero no perdieron su relación. Ejemplo:
INICIO DECLARAR Nombre[6] de alfanuméricas DECLARAR Edad[6] de numéricas DECLARAR Sexo[6] de alfanuméricas auxN, auxS : alfanuméricas auxE, x, y : numéricas PARA x = 1 HASTA 6 MOSTRAR "Ingrese nombre" LEER Nombre[x] MOSTRAR "Ingrese sexo" LEER Sexo[x] MOSTRAR "Ingrese edad" LEER Edad[x] FIN PARA PARA x = 1 HASTA 5 PARA y = 2 HASTA 6 SI (Nombre[x] > Nombre[y] auxN = Nombre[x] Nombre[x] = Nombre[y] Nombre[y] = auxN auxS = Sexo[x] Sexo[x] = Sexo[y] Sexo[y] = auxS auxE = Edad[x] Edad[x] = Edad[y] Edad[y] = auxE FIN SI FIN PARA FIN PARA FIN

Preparado por Prof: Luis González T. Sólo para fines docentes

26

EJERCICIOS Desarrolle los siguientes algoritmos: 1.- Llene un vector llamado Números, de 100 posiciones con elementos enteros positivos. 2.- Usando el mismo vector del ejercicio anterior, haga un algoritmo que permita llenar el vector sólo con números que sean múltiplos de 5 3.- Se tiene un vector llamado Orden de largo 100 con elementos enteros pero distintos entre sí. Ordene la primera mitad de éste de menor a mayor y la segunda mitad de mayor a menor. 4.- Se tiene un vector de 50 posiciones de letras ingresadas, cree un algoritmo que determine cuantas veces se da que una letra se encuentre en una posición que coincida con su posición dentro del abecedario. 5.- una tienda de calzado ha utilizado un vector para colocar los precios de sus zapatos de tal forma que el precio de un zapato está ubicado en la posición que corresponda a su número, así, un zapato número 33 tiene su precio en la posición 33 del vector y un zapato número 40 tiene su precio en la posición 40m del vector. Con estos datos realice un algoritmo que le permita al usuario procesar tantas ventas como desee si por cada una de ellas tiene que leer e número del zapato y la cantidad de pares que desea llevar para recibir del algoritmo el monto a pagar. 6.- Una empresa tiene una lista de sus empleados en la que se tiene sus nombres, edad y su estado civil. Confeccione un algoritmo que permita determinar cual es la edad que se repite más en la lista. 7.- Una persona ha escrito en un vector un mensaje. Si se sabe que: En cada casilla hay un carácter. El mensaje no necesariamente empieza en la primera posición. El mensaje no termina necesariamente en la ultima posición del vector. Cada palabra está separada por uno o más espacio en blanco.

Cree un algoritmo que permita determinar cuantas palabras fueron ingresadas. 8.- Se tiene dos arreglos unidimensionales. KALTO y KABAJO de 50 elementos. Se debe crear otros tres arreglos. El primero, con la suma de os elementos respectivos, el segundo con el producto y el tercero con la difere3ncia (si la diferencia es negativa coloque 0 como valor). 9.- Se tiene un arreglo llamado AX de 40 elementos determine: La cantidad de números impares. La cantidad de números positivos La cantidad de números entre 0 y 9 La cantidad de números pares.

10.- Cree un algoritmo que permita corregir una prueba de selección única de 30 preguntas. Para ello debe crear tres vectores: uno con las respuestas correctas, otro con las respuestas del alumno y el tercero será para la corrección. La corrección será de la siguiente forma: Si la respuesta del alumno esta en blanco deberá colocar un * en el vector corrección. Si la respuesta del alumno es igual al de la pauta colocar una letra B. Si la respuesta del alumno no coincide con la de la pauta colocar una letra M. La no será igual a 7 dividido por la cantidad de preguntas y el resultado multiplicado por la cantidad de respuestas buenas. Deberá desplegar: la pauta de corrección, las respuestas del alumno, la corrección y la nota obtenida. El algoritmo debe corregir n cantidad de pruebas.

Preparado por Prof: Luis González T. Sólo para fines docentes

27

Sign up to vote on this title
UsefulNot useful