You are on page 1of 40

MANUAL DE LOGICA PARA

PROGRAMACION DE

COMPUTADORES

POR

JORGE IVAN ARIAS TOBON

DOCENTE ALGORITMOS

Febrero 14 de 1994

Lgica : Jorge Ivn Arias Tobn

Introduccin Los ltimos aos los he dedicado no solo a la enseanza de la Lgica de Programacin sino al anlisis de la enseanza de la misma debido precisamente a que me he encontrado con que muchas personas confunden la Programacin con la Lgica de Programacin, la primera involucra el conocimiento de tcnicas e instrucciones de un determinado lenguaje a travs de los cuales se nos hace sencillo lograr que el computador obtenga unos resultados mucho mas rpido que nosotros. La segunda involucra, de una manera tcnica y organizada, los conceptos que nos permiten disear en trminos generales la solucin a problemas que pueden llegar a ser implementados a travs de un computador. El estudio de la Lgica de Programacin no exige ningn conocimiento previo de computadores ni de tecnologa en general, tampoco exige la presencia de algn lenguaje de programacin especfico. Puedo garantizarle que si usted lee este manual hoja por hoja y desarrolla los ejercicios aqu planteados, al llegar al final del mismo podr (y se lo garantizo) entender que programar no es ms que buscar soluciones muy lgicas utilizando unos conceptos muy sencillos. Espero pues que este manual cumpla el objetivo planteado pues pensando en usted fue como se concibi. No se vaya a afanar por leerlo de una sola vez, tmese su tiempo para razonar y asimilar los conceptos que aqu se plantean. El Autor

Lgica : Jorge Ivn Arias Tobn

ALGORITMOS

Qu es un Algoritmo...? Es un conjunto de pasos secuenciales y ordenados que permiten lograr un objetivo. Que sean pasos secuenciales significa que deben ser ejecutados uno despus de otro y que sean pasos ordenados quiere decir que deben llevar un orden quasi-obligatorio (u obligatorio en la mayora de los casos). Como puede notar el algoritmo permite lograr un objetivo. O sea que ste es el camino que necesitamos para lograrlo. Operadores Los operadores son signos que nos permiten expresar relaciones entre variables y/o constantes, relaciones de las cuales normalmente se desprende un resultado. Ya hemos manejado dos operadores que son el de la suma (+) y el de la resta (-) pero no son los nicos. En un algoritmo computacional tambin se pueden utilizar los siguientes operadores ^ Para expresar la potenciacin * Para expresar la multiplicacin / Para expresar la divisin Debo anotar que la notacin para potenciacin que vamos a utilizar en este manual no es standard para todos los lenguajes de programacin y en algunos casos el mismo signo tiene otro significado. Por tal motivo sugiero que cuando vaya a utilizar este operador en un programa determinado donde necesite realizar operaciones de potenciacin consulte primero el manual del Lenguaje en el cual est trabajando. Variable Informalmente algo variable es algo que puede cambiar de un momento a otro. Tcnicamente una variable es un campo de memoria al que se le puede cambiar su contenido cuantas veces sea necesario. Primera aclaracin, un campo de memoria es un pedacito de la memoria principal del computador en donde podemos guardar un dato. Segunda aclaracin, a pesar de que en la memoria es donde se guarda la informacin exactamente sta se almacena en variables. Esto le ha de representar a usted que es a travs de variables como se puede utilizar la memoria del computador. Para poder utilizar variables en el desarrollo de un programa de computador se debe primero decir qu tipo de datos va a almacenar pues las variables son campos de diferentes tamaos y por tal motivo se deben declarar previamente para que el computador las dimensione de acuerdo a las necesidades. Cules son los tipos de datos que pueden ser almacenados en una variable. A pesar del avance de la tecnologa, los tipos de datos de las variables pueden ser : Un dato de tipo entero que es un nmero que no tiene punto decimal, por lo tanto en sus operaciones jams va a generar decimales. Por ejemplo 25, -96 y 0. El

Lgica : Jorge Ivn Arias Tobn

hecho de que los datos de tipo entero no generen decimales significa que operan con un juego de reglas llamado Aritmtica Entera. Una variable que se declare de tipo entero podr almacenar solamente datos de tipo entero. Tipo Real: Un dato de tipo real es un nmero que tiene punto decimal, por lo tanto en sus operaciones puede generar decimales. Por ejemplo 12.3, -78.56 o 45.0. El hecho de que los datos de tipo real generen decimales significa que operan con un juego de reglas llamado Aritmtica Real. Una variable que se declare de tipo real podr almacenar solamente datos reales. Tipo Carcter Dado que los caracteres son smbolos, las operaciones directas que se pueden realizar con sus campos son: asignacin , operaciones lgicas

relacionales y ordenes de entrada y salida de informacin A B % @

Es de hacer notar al alumno, que un dgito que representa a un carcter, no es lo mismo que el valor que representa el mismo dgito. En este sentido, por ejemplo, el carcter 4 es diferente al nmero 4.

EL TIPO CADENA DE CARACTERES ( STRING) El tipo carcter permite la manipulacin de dgitos por separado, en cambio el tipo de datos de cadena de caracteres, permite la manipulacin conjunta de una secuencia de dgitos. Un ejemplo de cadena de caracteres es : Mara Alejandra Arias Bedoya Cra 93A No 77-65 Nota : Las cadenas de caracteres se encierran entre dobles comillas

Lgica : Jorge Ivn Arias Tobn

Cmo se asignan los datos a las variables. .?, o sea, Cmo se cargan las variables..? Pues a travs de un signo muy conocido por usted y es el signo o el signo igual tambin. Este signo denota que lo que est a la derecha lo va a almacenar en la variable que se encuentre a la izquierda . De manera que ya usted puede ver claramente en esta definicin que a la izquierda del igual solo puede haber una variable y al lado derecho del mismo puede haber una constante, una variable una expresin. De manera que cualquiera de los siguientes esquemas son vlidos a 8 Le indica al computador que guarde la constante 8 en la variable a b = a Le indica al computador que guarde en la variable b el contenido de la variable a c = a + b Le indica al computador que guarde en la variable c el resultado de sumar el contenido de la variable a con el contenido de la variable b. Como la variable a tena el contenido 8 y la variable b tambin tena el contenido 8 entonces el computador sumara 8+8 y ese 16 de resultado lo almacenar en la variable c Puede notarse en este ejemplo que en la variable a se ha almacenado una constante, en la variable b se ha almacenado el contenido de otra variable y en la variable c se ha almacenado el resultado de una expresin. Y qu pasar si luego de tener estas tres instrucciones adicionamos la siguiente: b = 9 Pues, muy sencillo, el anterior contenido de la variable b que era 8 va a ser reemplazado por el nuevo contenido de la variable b que es 9. Ello significa que cada que se asigna un nuevo valor (proveniente de una constante, una variable o como resultado de una expresin) el valor anterior de la misma variable se reemplaza. As si se quisieran escribir los contenidos de las variables a, b y c el computador nos reportara para a el contenido 8, para b el contenido 9 y para c el contenido 16. Todo lo que debe tener en cuenta con la asignacin de las variables es lo siguiente: a. Al lado izquierdo del igual solo puede haber una variable b. Al lado derecho del igual puede haber una constante, una variable o una expresin c. El computador siempre resuelve lo de la derecha de la flecha o del signo igual y su resultado lo almacena en la variable que est a la izquierda . Ejercicios de Aplicacin 1. a = 19 b = 37 c = 12 a = a + 65

Lgica : Jorge Ivn Arias Tobn

b=b+4a c=a+b+c a=a+c b=4 c=c+3-b+2 Qu valores quedan almacenados en las variables a, b y c ? 2. a=5 b = 18 c = 15 d = 25 a = a + 10 b=b+5c c=c+4+b d=d+b+a a=a+1 b=b+c c=b+c d=b+b Qu valores quedan almacenados en las variables a, b, c y d ? 3. a=9 b=6 a=a+4 b=b+2 a = a + 10 b = b 25 a = a 20 b=b+5 a=a+4 b=b+2 a = a + 10 b = b 10 Qu valores quedan almacenados en las variables a y b ? 4. a = 18 b = 18 c = 18

Lgica : Jorge Ivn Arias Tobn

d = 18 a=a+b b=a-b c=a+b d=a-b a=a-b b=a+b c=a-b d=a+b Qu valores quedan almacenados en las variables a, b, c y d ? 5. a = 10 b=5 a=a-5 b=b+6 a = a + 18 b = b 23 a = a 21 b=b-5 a=a-4 b=b-2 a = a + 10 b = b + 10 Qu valores quedan almacenados en las variables a y b ? 6. a=8 b=7 c=5 d=8 a=a+bc+d b=a+bc+d c=a+bc+d d=a+bc+d a=a+bc+d b=a+bc+d c=a+bc+d d=a+bc+d Qu valores quedan almacenados en las variables a, b c y d ?

Lgica : Jorge Ivn Arias Tobn

Para evitar confundir el tipo de datos carcter con otro tipo de dato, o algn otro elemento, se acostumbra encerrar los caracteres con comillas simples ( ) as se permite diferenciar el nmero 4 del carcter 4 ( el primero es un nmero y el segundo es un carcter ). El tipo de dato carcter sirve para definir un tipo de dato mucho ms poderoso y flexible. Cules son las caractersticas fundamentales de una variable? Bsicamente las variables tienen dos caractersticas : La primera es que deben tener un nombre que las identifique y que facilite su uso y la segunda es que deben tener un tipo que es el que caracteriza el dato que pueden almacenar. Variable A : entero; C : carcter ; TIPO DE VARIABLES Al igual que los datos tienen asociado un tipo. El tipo de una variable est directamente relacionado con el tipo de datos que almacena, as existen variables de tipo entero, que slo pueden almacenar nmeros de tipo entero, variables de tipo real que almacenan nmeros reales ; variables de tipo

carcter que almacenan caracteres ; variables de tipo cadena o de caracteres, que almacenan secuencias de caracteres ; variables de tipo lgico o booleano, que slo almacenan un dato falso o verdadero. Como ejemplo de este tipo de datos, podemos citar: Perdi o gano la prueba Es hombre o es mujer ASIGNACIN

Lgica : Jorge Ivn Arias Tobn

Operacin que permite especificar el valor que va a contener una variable y se denota con el smbolo o tambin con el signo = As por ejemplo: Base 7 Base = 7 Almacena el nmero siete en la variable Base. El proceso mediante el cual se almacena informacin en una variable, recibe el nombre de asignacin. Y sta puede hacerse de dos maneras: Dentro del diagrama ( asignacin interna ) o desde afuera del diagrama ( asignacin externa ), por medio del teclado. ASIGNACIN INTERNA Es aquella en la cual se asigna un valor a una variable dentro del mismo diagrama o algoritmo, es decir, se declaran e inicializan las variables a partir del inicio . Se simboliza por medio de una flecha con sentido de derecha a izquierda o mediante el signo igual, lo que se interpreta como que lo que hay a la derecha se va almacenar o a guardar temporalmente en la variable definida a la izquierda. ASIGNACIN EXTERNA Es aquella que se realiza cuando la informacin se asigna a la variable desde afuera del diagrama por medio de el teclado, Para hacer esta asignacin se requiere de una instruccin de lectura o de lea o leer. Un ejemplo de asignacin externa es: Muestre digite el nombre y cdula del usuario Lea nombre, cdula

Lgica : Jorge Ivn Arias Tobn

EXPRESIONES : Los lenguajes de programacin disponen de ellas para permitir la combinacin de varios valores, para obtener un resultado. Una expresin no es ms que una frmula la cual se utiliza para efectuar un clculo. Una expresin se compone de valores y smbolos llamados operadores. Ejemplo en la siguiente expresin 8 + 9, el operador es el signo + que indica que los nmeros 8 y 9 deben ser sumados. OPERADOR + * / DIV MOD PRIORIDAD Para evitar ambigedades se han establecido las siguientes prioridades para la ejecucin de los problemas. OPERADOR PRIORIDAD Suma Resta Multiplicacin Divisin Devuelve el cociente Devuelve el residuo EXPLICACIN

+ -

3 3

Lgica : Jorge Ivn Arias Tobn

* / DIV MOD

1 1 2 2

Si en una expresin hay varios operadores con una misma prioridad, stos se procesan de izquierda a derecha as: 2+9*8 Se ejecuta la multiplicacin primero y por ltimo la suma. NOTA: Si deseamos variar el orden en la ejecucin de la expresin, podemos valernos de los parntesis para hacerlo as: (2+9)*8 Se ejecuta primero la suma y por ltimo la multiplicacin, haciendo notar aqu que el parntesis tiene mayor prioridad sobre cualquier operador.

OPERADORES DE RELACIN OPERADOR Mayor que Menor que Mayor o igual que NOTACIN > < >=

10

Lgica : Jorge Ivn Arias Tobn

Menor o igual que Igual Diferente OPERADORES LGICOS OPERADOR Y O NOTACIN

<= = <>

^ v

PLANTEAMIENTO DE ALGORITMOS Y SU SOLUCIN Todos los pasos que a continuacin se enuncian tienen por objeto: una buena solucin a un ejercicio cualquiera mediante un buen anlisis del mismo. Todos los pasos son de igual importancia para obtener un buen resultado. 1 Leer el enunciado del problema hasta que se tenga claro qu se pide hacer. Aclarar cualquier duda que se tenga de alguna pregunta o condicin. 2 Determinar los datos de entrada con que se cuenta para la solucin del problema. Estos son los datos que el usuario le suministra al problema generalmente desde el teclado. 3 Definir qu operaciones o clculos necesita realizar el programa

utilizando los datos que el usuario le suministr al mismo para obtener los resultados que el programa le mostrar. 4 Determinar los resultados e informes que el programa debe generar.

11

Lgica : Jorge Ivn Arias Tobn

5 Tener en cuenta toda clase de restricciones y condiciones que tenga el problema para su solucin. En el planteamiento y solucin de un diagrama el alumno debe leer cuidadosamente el enunciado de el algoritmo cuantas veces sea necesario hasta entenderlo. A continuacin debe tener en cuenta los siguientes enunciados: Definicin de variables: El alumno debe definir o darle un nombre a las variables que van a intervenir en el proceso, as por ejemplo si las variables son : Salario bruto, nmero de horas trabajadas, porcentaje a retener, etc, etc, entonces las variables se pueden definir como: Sbrut, Nht, Pret. Datos de entrada: Los puede ingresar en el computador por medio de una asignacin interna o externa de acuerdo con los datos e informacin proporcionada por el problema, excluyendo las variables que van a ser calculadas por el programa, as : Lea Sbrut, Nht, Pret Tambin : Sbrut = 0 . Net = 0, Pret = 0. Clculos: En estos podemos ingresar las operaciones que se plantean en el problema as: Pret = Sbrut - Iss, coop, prestamos Datos de salida: En estos intervienen los mensajes y las respuestas o datos de salida as:

12

Lgica : Jorge Ivn Arias Tobn

Muestre El porcentaje de retencin es de:, Pret Ntese que luego de las comillas va una coma con el fin de diferenciar el mensaje de la variable que deseamos mostrar, en este caso Pret; de no ser as en el momento de codificar el algoritmo a un lenguaje, ste presentar errores. Estructuras de control Las estructuras de control que los lenguajes determinan, establece una sucesin en la que dichas instrucciones son ejecutadas en el siguiente orden: Secuencia Condiciones Ciclos Estructura secuencia En sta las ordenes o instrucciones van siendo ejecutadas en el mismo orden en que han sido escritas as: Realizar un algoritmo que permita leer desde el teclado tres nmeros y que muestre como resultado la suma de ellos. inicio Leer N1,N2,N3 Result N1+ N2+N3 Muestre: El resultado de la suma es : , Result

13

Lgica : Jorge Ivn Arias Tobn

Fin_Inicio Fin Algoritmos de aplicacin Desarrolle un algoritmo que calcule e imprima la suma de los nmeros 12 y 45 Elabore un diagrama que calcule y muestre por pantalla la suma de tres nmeros desarrollar un diagrama que multiplique dos nmeros y el resultado lo sume con 32 e imprima el resultado junto con un mensaje que diga : felicitaciones has desarrollado bien la parte aritmtica . Elabore un algoritmo que calcule y muestre por pantalla la hipotenusa de un tringulo rectngulo para cualquier cateto A y B Desarrolle un diagrama que calcule e imprima el radio para un crculo cuya rea vale X Elabore un algoritmo que calcule y muestre por pantalla las raices de un tringulo de la forma ax2 + bx + c para cualquier valor de a, b y c Elabore un algoritmo que permita leer el nombre y apellido de un empleado, su cdula y calcule su sueldo neto si el bsico devengado por hora es de dos mil quinientos pesos m/l y el nmero de horas trabajadas es de 16. A este sueldo neto hay que descontarle el Iss cuyo valor es del 7% aprximadamente, un prstamo de ciento veinte mil pesos m/l y

mostrar por pantalla nombre, apellido, cdula, sueldo neto, retenciones.

14

Lgica : Jorge Ivn Arias Tobn

Elabore un algoritmo que calcule y muestre por pantalla el rea de un trapecio, para cualquier base mayor, base menor y altura. Desarrolle un algoritmo que calcule el rea de un cuadrado y muestre esta por pantalla. Desarrolle un algoritmo que permita leer el nombre de un alumno, su cdigo y su nota, imprimir nombre cdigo y nota as como un mensaje que diga felicitaciones, gan . Elabore un algoritmo que le permita mostrar por pantalla, su nombre, apellido y documento de identidad Elabore algoritmo que permita leer el color y el modelo de un carro, as como el nmero de sus placas y que imprima. Para entregrselo al propietario. Elabore un diagrama que permita leer un nmero, calcular su raz cuadrada y la muestre por pantalla. Disee un diagrama para un circuito electrnico en el cual se digita la resistencia y la corriente. El algoritmo propuesto debe calcular el voltaje y mostrar por pantalla el resultado expresado en voltios.

Condiciones Es una es una estructura de control no secuencial en la cual se permite dar alternativas cierto o falso. Las cuatros causas de condicin son :

15

Lgica : Jorge Ivn Arias Tobn

En una direccin. En dos direcciones. Anidadas. Mltiples o Caso. Ejemplo :

1. En una direccin :
Si ( condicin ) entonces Grupo de tareas Fin Si Si la condicin es cierta se sigue o ejecuta el grupo de tareas ; pero si es falsa se termina la condicin. Ejemplo : Disee un algoritmo que lea las ventas hechas por un vendedor. Si la cantidad es mayor que 800.000 le dar un mensaje de felicitaciones y le asigna un bono de 20% de lo vendido. Inicio. Muestre digite el volmen de ventas Lea ventas. Si ( ventas > 800.000 ) Entonces.

16

Lgica : Jorge Ivn Arias Tobn

Muestre Felicitaciones Comisin =( ventas * 0.20.) Muestre la comisin es :, comisin Fin Si Fin_inicio Condicin en dos direcciones Existen situaciones en que la condicin bien sea cierta o falsa, nos lleva al cumplimiento de un grupo distinto de tareas direcciones. Estructura Si ( condicin ) Entonces Grupo de tareas1 Si no Grupo de tareas2 Fin si Ejercicio Disee un algoritmo que lea dos nmeros los compare y los imprima si son iguales o no. o sea la condicin en dos

17

Lgica : Jorge Ivn Arias Tobn

Inicio Muestre digite los dos nmeros que se van a comparar Lea Nro1,Nro2 Si ( Nro1=Nro2 ) Entonces Imprima Si son iguales los nmeros comparados Si no Imprima No son iguales los dos nmeros comparados Fin si Fin Condiciones anidadas Se trata de aquellas que hacen parte de otras supongamos que el programa pregunta al alumno quien fue el autor de la obra cien aos de soledad y que la respuesta no sea acertada, entonces el programa le dar un mensaje de error y termina pero si la respuesta es acertada, es decir, Garca Mrquez, entonces se le har una nueva pregunta ( 2da condicin ) Si responde Colombiano, se le da un mensaje de felicitacin y termina el programa . Si se equivoca ( condicin falsa) se le da un mensaje que diga No acert, repase su leccin y termina el programa. Inicio Muestre Dgite el nombre del autor y la nacionalidad Lea Autor, nacionalidad

18

Lgica : Jorge Ivn Arias Tobn

Si ( Autor = Garca Marquez ) Entonces Si ( Nacionalidad = Colombiano) Entonces Muestre Felicitaciones ha acertado Si no Muestre No acert repase su leccin Fin si Fin si Fin La Estructura Caso o Seleccin Mltiple
Esta estructura permite seleccionar una, dentro de un conjunto de alternativas con base en el valor almacenado en un campo variable denominado selector o campo controlador de la estructura. Es una estructura selectiva mltiple, donde de acuerdo con el valor que tenga el controlador, se realiza una determinada tarea una sola vez, es decir, no repite la ejecucin de la misma o secuencia. De acuerdo con el valor que tenga el controlador, el control de ejecucin del programa pasa a uno de varios puntos del mismo, evitando as una serie de preguntas. REPRESENTACIN CASOS DE <VARIABLE> CASO 1: <TAREAS1> CASO 2:

19

Lgica : Jorge Ivn Arias Tobn

<TAREAS2> CASO N: <TAREA N> FIN_CASOS

Algoritmos de aplicacin Ejemplo: Leer desde el teclado el nombre de algn personaje histrico. Si es Bolvar escrbase Libertador. Si es madre Teresa el mensaje ser Servicio a los mas pobres. Si fuese Gandhi, el programa escribir Libertad a la india, pero si es cualquier otro personaje, el programa escribir el mensaje No identificado. Veamos cmo lo realizamos: inicio Muestre digite escriba el nombre del personaje Lea Per Si (Per = Bolvar) Entonces Muestre Libertador Si ( Per = Madre teresa ) Entonces Muestre Servicio a los mas pobres Si (Per = Gandhi) Entonces Muestre Libertad a la india

20

Lgica : Jorge Ivn Arias Tobn

Si no Muestre no identificado Fin si Fin si Fin si Fin_inicio Disee un programa que pregunte por el volumen de ventas medido en pesos de un vendedor de la firma SIGA LTDA. De acuerdo con su respuesta, se le asignar la bonificacin. Observe la tabla adjunta. Volumen de ventas Menos de 200000 Entre 10000 y 150000 Entre 70000 y 100000 Ms de 200000 Bonificacin 10000 9500 7500 15000

Disee un algoritmo que permita leer el valor por hora laborada, nmero de horas laboradas, para un empleado ; calcular el salario bruto por mes. Calcular el salario neto mensual restando el 7% al salario bruto por seguro social y agregamos un subsidio de 15000 pesos si el salario neto es menor del mnimo vigente , imprimir el mensaje gana menos del mnimo, s i es as muestre el salario neto. Contador no

21

Lgica : Jorge Ivn Arias Tobn

Se define una variable contador como aquella que se actualiza en ella misma ms un valor constante que usualmente es 1. Acumulador Una variable acumuladora se utiliza dentro de procesos cclicos para efectuar sumas acumuladas (suma de edades, suma de salarios, suma de notas...) , se actualiza en ella misma ms el contenido de una variable X debe de estar inicializada generalmente en cero antes y por fuera del ciclo. Los acumuladores y contadores se usan para clculos de promedios y porcentajes, debe tenerse en cuenta que el acumulador y el contador van dentro del ciclo y el clculo del promedio o del porcentaje van por fuera del mismo, en general podemos decir que: Promedio = Acumulador / Contador Porcentaje = Contador * 100 / ( Nro total de iteraciones o el valor de otro contador ). Por ejemplo: Si de 468 estudiantes sabemos cuantos estudian sistemas, el porcentaje de estudiantes de sistemas sera: Porc = Nmero de estudiantes de sistemas * 100 / 468 en este caso 468 es el nmero total de iteraciones, pero si adems sabemos cuantas hombres estudian sistemas y cuantos de los 468 alumnos estudian sistemas, el porcentaje de hombres que estudian sistemas sera: Porc1 = Nmero de hombres que estudian sistemas * 100 / Nmero total de estudiantes de sistemas. Donde Porc1 = porcentaje de hombres que estudian sistemas

22

Lgica : Jorge Ivn Arias Tobn

Ciclo mientras que Son estructuras repetitivas que se utilizan cuando no se conoce el nmero de iteraciones a ejecutar por ejemplo cundo se hace una encuesta. estos ciclos tienen las siguientes caractersticas : El encabezamiento est formado por la frase mientras que seguida de un proposicin lgica simple o compuesta encerrada entre parntesis. El ciclo se ejecuta, si y slo si, la proposicin lgica es verdadera,

cuando se vuelva falsa, se sale automticamente del ciclo. El control de las iteraciones lo tiene el usuario, es decir, el usuario

determina cuando quieren interrumpir la ejecucin del ciclo puesto que bastar dar un valor tal que la expresin lgica se vuelva falsa. La proposicin lgica se puede formar de dos maneras : Usando una variable adicional a las variables del diagrama la cual puede ser un switche o una variable llamada control. Usando una de las variables que contienen la informacin a procesar ( nombre, edad, sexo, estado civil, y dems ). En este caso se dice que el ciclo esta controlado por un campo centinela. En ambos casos ( usando un control, un switche o un centinela) se debe hacer lo siguiente : Leer antes del encabezamiento del ciclo el campo control, el switche o el campo centinela teniendo en cuenta que el valor asignado sea tal que vuelva verdadera la proposicin lgica si se quiere entrar al ciclo.

23

Lgica : Jorge Ivn Arias Tobn

FORMATO O SINTAXIS 1 Mq ( Condicin ) Haga Tareas -1 FIN Mq

CONTADOR 1

Mq ( Contador < = 30 ) Haga Tareas - 1 CONTADOR = CONTADOR + 1 FIN Mq

En el esquema anterior, el ciclo repetir el conjunto de instrucciones se repetir 30 veces ( 30 iteraciones ) . Es el programador en este caso quien conoce el nmero de iteraciones. J 1 Muestre ( DIGITE EL NUMERO DE ESTUDIANTES ) Lea ( Numero) Mq ( J < = Numero ) Haga J J+1

24

Lgica : Jorge Ivn Arias Tobn

FIN Mq En este caso es el usuario quien determina el nmero de iteraciones. Ejercicios de aplicacin Realizar un programa que permita leer 10 nmeros e imprima slo los nmeros pares digitados por el usuario. Realizar un algoritmo que permita al usuario leer 50 nmeros y que muestre por pantalla cuntos son mltiplos de 3. Desarrolle un algoritmo que genere y muestre la suma de los nmeros enteros del 1 al 70 y adems que muestre el promedio de dichos nmeros. Desarrolle un programa que permita al usuario leer 100 nmeros y que muestre por pantalla cual fue el mayor nmero que el usuario digit.

Desarrolle un algoritmo que permita al usuario leer una cantidad indeterminada de nmeros y el programa debe mostrar cuantos nmeros digitados por el usuario son mayores a su promedio. Realizar un algoritmo que permita leer la edad y el sexo de una cantidad indeterminada de personas. El programa debe imprimir cuantas personas son mayores de 18 aos y cuantas son menorer de edad ; adems cuantas son mujeres y cuantos son hombres. Desarrolle un programa que genere y sume comprendidos entre 10000 y 20000. Ciclo para los nmeros pares

25

Lgica : Jorge Ivn Arias Tobn

La instruccin para se utiliza con el propsito de repetir una instruccin o un grupo de stas, un nmero determinado de veces. Este tipo de ciclo se usa slo cuando se conoce el nmero de iteraciones. Se construye diseando el proceso para una sola iteracin y generalizndolo luego usando una variable de iteracin con las siguientes caractersticas. Debe estar inicializada antes y por fuera del ciclo generalmente en 1. Esto tambin se conoce como el lmite inferior del ciclo. Debe estar incrementada o decrementada en 1. El contenido de la variable de iteracin debe estar controlada, esto es comparada en cada iteracin; con un valor constante o con el

contenido de un campo variable, el cual indica el nmero total de iteraciones. Esto tambin se conoce como el lmite superior del ciclo. Dentro de los procesos iterativos ocurre que se requiere efectuar procesos de sumas y conteos con el fin de efectuar clculos posteriores de porcentajes y /o promedios. Las sumas y conteos se pueden llevar acabo con unas variables llamadas acumuladores y contadores. Ejercicios de aplicacin Elaborar un algoritmo que lea 50 nmeros, calcule y muestre cuantos son positivos y cuantos negativos. Elabore un diagrama que lea la edad de 120 personas, calcule e imprima: el promedio de edad de las personas mayores de edad, el porcentaje de personas mayores de edad, el promedio de edad de las personas menores de edad y el porcentaje de personas menores de edad.

26

Lgica : Jorge Ivn Arias Tobn

Elaborar un algoritmo que lea el salario neto para 50 trabajadores y calcule e imprima: El promedio de salarios y el porcentaje de aquellos trabajadores que ganen ms del salario mnimo vigente, el promedio de salarios y el porcentaje de aquellos trabajadores que ganen menos de salario mnimo vigente. Bandera o switche Es un campo variable que slo puede tomar uno de los valores posibles dentro de un diagrama. Los valores que puede tomar una bandera los determina el programador y es l quien decide en que momento se le cambia el valor. Los valores mas usuales para una bandera, aunque se pueden usar cualquier otros dos valores, son : y 1, 1 y 2, SI y NO Las banderas o switches son de mucha utilidad en la programacin y se utilizan en muchos procesos, veamos un ejemplo de utilizacin: Switche para alternar procesos : En este caso se tienen dos procesos los cuales se deben realizar alternadamente, para esto se inicializar el switch o variable sw en un valor, luego mediante un decisin lgica, se le ordena realizar un grupo de instrucciones; al final de stas, se le cambia el valor a el switch o variable sw de manera que cuando se vuelva a evaluar la expresin lgica, se ejecutar el otro grupo de intrucciones, y al final de estas se le asigna a la bandera el valor original, de forma que al evaluarse nuevamente la expresin lgica se

27

Lgica : Jorge Ivn Arias Tobn

ejecutar nuevamente el grupo de instrucciones que la primera vez y as sucesivamente. El switche es llamado sw y los valores que se le asignarn son 1 y 0. Sw 1 Si sw = 1 Entonces Tareas_1 Sw 0 Sino Tareas_2 Sw 0 Fin_si NOTA : La estructura anterior siempre debe ir dentro del grupo de instrucciones pertenecientes a un ciclo.

Ejercicios de aplicacin : Escribe un algoritmo apropiado para cada ejercicio : 1) Leer desde el teclado el nombre de una persona y escribirlo 20 veces utilizando el Mientras que. 2) Utilizando el ciclo Para , escribir la suma de x cantidad de nmeros que se leer por teclado.

28

Lgica : Jorge Ivn Arias Tobn

NOTA : Debes preguntar cuantos nmeros se van a leer.

3) Hallar la suma de los nmeros enteros del 1000 al 1050. 4) Utilizar cualquier mtodo de repeticin para leer un numero entero
positivo y calcular su factorial.

5) Escribir algoritmo que calcule y escriba las tablas de multiplicar desde el


1 hasta el 10. Arreglos se definen como una coleccin finita, homognea y ordenada de elementos.

Finita : Porque todo arreglo tiene un lmite o sea un nmero mximo de


elementos que pueden formar el arreglo.

Homognea : Todos los elementos de un arreglo son del mismo tipo (


Todos enteros, todos Booleanos, pero nunca una combinacin de ambos tipos ). Ordenada : Porque se puede determinar cual es el primer elemento, segundo, tercero, etc. Hasta el momento hemos seguido el proceso convencional de

procesamiento de datos, que consiste en leer unos datos, procesarlos y luego dar un resultado. No siempre es tan simple dicho proceso. En ocasiones - y con bastante frecuencia, por cierto, se requiere procesar un conjunto grande de datos que deben mantenerse en la memoria de trabajo del computador. En casos como este, es ideal manejar arreglos. Existen arreglos de dos clases : El arreglo en una dimensin , llamado tambin

29

Lgica : Jorge Ivn Arias Tobn

vector, y el arreglo en dos dimensiones, conocido como matriz. continuacin veremos en que consiste el primero.

Supongamos que tenemos la lista con las calificaciones finales de sistemas para 15 alumnos del primer semestre de ingeniera de sistemas y queremos trabajar con dicha lista. Supongamos que las notas evaluadas sobre 5 son las siguientes : 5, 4.8, 3,9, 4.4 , 4.3, 3.9 , 3.5, 3.8, 4.5 Puesto que se trata de las notas de sistemas de qumica denominemos con dicho nombre el arreglo. El arreglo consiste en una tabla formada por celdillas en cada una de las cuales ubicamos una de calificaciones. Para el caso, el arreglo tendr diez celdas as : Qumica 1 2 3 4 5 6 7 8 9 10 Es claro que el arreglo Qumica posee diez posiciones diferentes. Para distinguir cada una de estas posiciones, utilizaremos nmeros subndices, as : Qumica ( 1 ) = 56 Ejercicios de Aplicacin Realizar un programa que permita leer 80 nmeros y el algoritmo debe calcular y mostrar cuntos negativos y cuntos positivos fueron ledos. Disee un algoritmo que permita al usuario dgitar los coeficientes de una ecuacin cuadrtica a, b, c y el algoritmo debe mostrar por pantalla sus races x1 y x2. VECTORES Qumica ( 2 ) = 78 Qumica (10 ) = 45

30

Lgica : Jorge Ivn Arias Tobn

Tambin se conoce como arreglo y ste es una estructura lineal que permite almacenar un conjunto de datos del mismo tipo en memoria RAM. Representacin grfica de un vector Nmeros 2 1 9 12 8 4 15 5 11 6 34 56 23 78 7 8 9 10

2 3

Caractersticas de un vector a. Nombre del vector : Todo vector tiene un nombre definido por el programador.

b. Tipo de vector : En la mayora de lenguajes de programacin los Vectores


solamente pueden almacenar datos de un mismo tipo, por ejemplo se puede tener un vector de enteros, un Vector de cadenas de caracteres, un Vector de datos lgicos (Booleanos) etc. El tipo del Vector tambin es definido por programador.

c. Tamao del vector : Es el nmero de datos que el Vector puede llegar a


almacenar. Este tamao tambin es definido por el programador.

d. Indice : Es un dato entero que identifica cada elemento del Vector.


En la grfica anterior el Vector se llama NUMEROS, es de tipo entero y de tamao 10. Almacenamiento de datos en un vector

31

Lgica : Jorge Ivn Arias Tobn

Al igual que las variables, los valores almacenados en un vector pueden ser dados por asignacin interna as: Nombres 1 Alejandra Edades 5 20 Cdulas Y Por asignacin externa as: Muestre Digite el salario del empleado Lea Salarios[ 4] En el anterior ejemplo, el usuario est almacenando desde el teclado un salario determinado y luego el programa almacena el contenido en el Vector llamado Salarios posicin 4. 43567432

Pasos Para Crear un vector: Se lee el tamao del vector que es de N elementos Se aplica un para desde 1 hasta N valor o tamao Se define un nombre para el vector llamado Vect de tamao N y la variable J sirve para indicar las posiciones del vector. Ntese que cuando J = 1 se tiene Vect ( 1 ), cuando J = 2 entonces Vect ( 2 ) y as sucesivamente se van asignando datos o informacin en cada posicin del vector.

32

Lgica : Jorge Ivn Arias Tobn

Mtodo de la burbuja para ordenar vectores En toda comparacin efectuada, el subndice del trmino izquierdo ( I ) inicia en 1 y va hasta el penltimo elemento (N -1) del tamao total del vector, mientras que el subndice del trmino derecho ( J ) empieza siempre en una posicin ms que el anterior ( J = I + 1 ) y va hasta el ltimo elemento ( N ). Los ciclos son anidados porque el subndice del trmino derecho ( J )

cambia ms rpidamente que el subndice del trmino izquierdo ( I ). Partiendo del supuesto de que el vector llamado Num ya est lleno,

ordenar por el mtodo de la burbuja su contenido. Num 25 1 Inicio Lea N Para I = 1, N 1, 1 Para J = I + 1, N, 1 Si ( Num[ I ] > Num[ J ] ) entonces Aux Num[ J ] Num[ J ] Num[ I ] Num[ I ] Aux 21 2 3 3 4 4 15 5

33

Lgica : Jorge Ivn Arias Tobn

Sino Fin-si Fin-para Fin-para Fin_Inicio

Donde Aux es una variable auxiliar para intercambiar los elementos de un vector. El vector ordenado quedar as: Num 3 1 4 2 21 3 15 4 25 5

El alumno deber efectuar la prueba de escritorio para el ejercicio anterior. Procedimiento para insertar un elemento Para insertar un elemento en un vector, es necesario que ste se encuentre comprendido dentro de los elementos del vector. Partiendo del supuesto de

34

Lgica : Jorge Ivn Arias Tobn

que el vector A ya fue lleno con antelacin, se desea insertar el elemento 40 para lo cual se procede as: 1. Creamos la variable auxiliar llamada Aux 2. Creamos la variable llamada Element Aux 45 Element 40 45

A 0 1 2 15 3 Inicio Lea N, Element Para I = 1, N, 1 Si ( A[ I ] < Element ) entonces Sino Aux A[ I ] A[ I ] Element Element Aux 34 4 45 5 60 N= 5

35

Lgica : Jorge Ivn Arias Tobn

Fin-si Fin-para Fin

Una vez insertado el elemento, el vector A quedara as:

0
1

15
2

25
3

40
4

45
5

60
6 N=5

EJERCICIOS DE APLICACIN

Elabore un algoritmo que lea un nmero y obtenga su cuadrado y su cubo. Elabore un algoritmo que lea las variables A y B y pase el valor de A a B y de B a A , sin utilizar ms variables. Un empleado trabaja 48 horas semanales a razn de $8.000 hora: El porcentaje de retencin en la fuente es de el 7% del salario bruto. Se desea saber cual es el salario bruto, la retefuente, y el salario neto del empleado. Dado el radio de un crculo, haga un programa que obtenga su rea y la longitud de la circunferencia. Elabore un diagrama que lea un nmero positivo y muestre el nmero y el negativo del mismo. Dado el valor de un lado del tringulo equiltero, haga un diagrama que obtenga y muestre por pantalla su rea, altura, y permetro.

36

Lgica : Jorge Ivn Arias Tobn

Escriba un algoritmo que dados dos valores A y B, encuentre : AB/2 (A + B) * 7 A *B (A / B) + 12 Dados los catetos de un tringulo rectngulo, diisee un algoritmo que calcule su hipotenusa y la imprima. Elabore algoritmo que lea :Su nombre, apellidos, nmero de cdula y los imprima. El rea de un tringulo es 32, la altura 16, desarrolle algoritmo que calcule su base y la muestre por pantalla. Elabore un algoritmo que calcule el rea de un cuadrado que tiene de lado 8 cmts e imprima sta. Se tiene la siguiente informacin de un empleado estatal: Nombre y apellido. Nmero de cdula Nmero de horas trabajadas al mes. Valor hora trabajada. Retefuente. Elabore algoritmo que muestre: Nombres, apellido, salario bruto y salario neto. Se desea conocer cuantos meses han transcurrido entre Enero de 1957 y Enero de 2003. Al pap de Alejandra Arias le preguntan su edad, y contesta: Tengo 3 hijos, pregntele a Ivn su edad. Astrid tiene 2/3 de la edad de Ivn,

37

Lgica : Jorge Ivn Arias Tobn

Alejandra tiene 4 / 3 de la edad de Ivn y mi edad es la suma de las tres. Elabore un algoritmo que imprima la edad de los cuatro. Elabore un algoritmo que dados dos valores numricos A y B, escriba un mensaje que diga si A es mayor, menor o igual a B. Elabore algoritmo que lea tres nmeros enteros y los imprima en orden inverso a su lectura. Desarrolle un algoritmo que lea cualquier nmero e imprima tanto el nmero como su valor absoluto y un mensaje aclarando cual es cual. Elabore un algoritmo que informe si cierto nmero es positivo ( es decir, mayor o igual a cero ) o negativo ( caso contrario). Elabore un algoritmo que lea de un alumno su carn, nombre , nmero de crditos y valor por crdito . Imprima su carn, nombre y su valor de matrcula, si sta es mayor o igual a $1.500.000; de lo contrario imprima solamente el carn, su nombre y un mensaje que diga Alumno matriculado en menos de seis materias . Elabore un algoritmo que lea el nombre y la edad de un grupo de X personas e imprima el promedio de las edades de las personas mayores de edad. Elabore un algoritmo que lea un nmero y lo imprima slo si es positivo. Elabore un programa que lea N nmeros y establezca el nmero mayor y el promedio. Elabore un programa que lea N nmeros y establezca el nmero menor. Elabore un algoritmo para determinar si en la variable a, existe un nmero mltiplo de 5. En caso afirmativo asigne a b el nmero 1, de lo contrario asigne a b el nmero 0. Suponga que en la variable a existe un nmero entre 0 y 9, elabore un algoritmo que almacene en la variable c el carcter numrico que corresponde al dgito almacenado en a. Por ejemplo si en la variable a existe el nmero 8, en la variable c debe almacenarse el carcter 8 . Elaborar algoritmo que permita crear la factura correspondiente a una compra de un artculo determinado del que se adquieren una o varias

38

Lgica : Jorge Ivn Arias Tobn

unidades. E l IVA a aplicar es del 16% y si el precio bruto ( precio de venta + IVA )es mayor de $500000 se debe realizar un descuento del 5%. Se leen los lados de un tringulo. Elabore algoritmo que encuentre su permetro y decir si es equiltero, escaleno o issceles. Elabore un algoritmo que lea el nombre y la edad de un grupo de m personas e imprima el promedio de las edades de las personas mayores de edad. Elabore un algoritmo que lea el nombre del estudiante y la nota definitiva por c/u de las cuatro materias que cursan los 50 estudiantes del instituto POC . Obtener e imprimir la nota promedio de cada materia y el mejor estudiante por materia del grupo; adems imprimir los estudiantes que aprobaron cada materia. Mostrar la identificacin del estudiante que obtuvo el mayor puntaje en un examen. Descuente el 20% si el valor a pagar por 3 productos, supera el valor 220000.

39

You might also like