Algoritmo Guia
Short Description
Descripción: algoritmos...
Description
ESTRUCTURA Y ALGORITMO I
Ing. Alberto Moreno Cueva
2
Índice Introducción
5
UNIDAD I
: Conceptos Fundamentales
7
Capítulo 1
: Introducción a la Algoritmia
9
Capítulo 2
: Datos y tipos de Datos
17
Capitulo 3
: Variables y Constantes
25
UNIDAD II
: Estructuras Basicas y Secuenciales
29
Capitulo 1
: Estructura del Algoritmo
31
Capitulo 2
: Estructuras Secuenciales
37
UNIDAD III
: Estructuras Condicionales y Selectivas
47
Capitulo 1
: Estructuras Condicionales Simples
49
Capitulo 2
: Estructuras Condicionales Dobles
57
Capitulo 3
: Estructuras Condicionales Multiples
65
Capitulo 4
: Estructuras Condicionales Anidadas
73
Capitulo 5
: Estructuras Selectivas
83
UNIDAD IV
: Estructuras Repetitivas
91
Capitulo 1
: Estructuras Repetitivas, Para – Hacer
93
Capitulo 2
: Estructuras Repetitivas Mientras – Hacer
103
Capitulo 3
Estructuras Repetitivas Repetir – Hasta
111
UNIDAD V
SUBPROGRAMAS
117
Capitulo 1
Uso de Procedimientos
119
Capitulo 2
Uso de Funciones
129
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
3
PRESENTACION
El presente texto elaborado es un material de ayuda institucional, en la especialidad de Ingenieria, tiene por finalidad proporcionar los conocimientos de Fundamentos de Programación, orientado a la especialidad . UTP, líder en la enseñanza tecnológica a nivel superior, promueve la elaboración de materiales educativos, en concordancia a las exigencias de las tecnologías de estos tiempos, que permiten la creación de nuevas herramientas de aprendizaje con el objetivo de facilitar el acceso de los estudiantes a la educación en el marco del desarrollo tecnológico de la Informática y de las Telecomunicaciones. El texto se divide en catorce capítulos, en cada uno de ellos expone los temas de una manera resumida, desarrollando así solo los contenidos que son complementados con la parte práctica. Esperamos que este material en su primera edición, sirva de gran ayuda a los estudiantes Idatinos y contribuya en el proceso de su formación profesional.
UTP
RREDES & COMUNICACIONES
4
UNIDAD I Conceptos Fundamentales
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
5
UNIDAD I
CAPITULO I
INTRODUCCION A LA ALGORITMICA OBJETIVOS ESPECÍFICOS 1. Introduccióna la Algoritmica. 2. Conceptualizarel Algoritmo y definir lascaracteristicas 3. Como elaboramos un Algoritmo
CONTENIDOS Algorítmica: Resolución y pasos para resolver un problemas. Definición de un Algoritmo Característica del Algoritmo Pasos para realizar un Algoritmo Ejercicios Prácticos
UTP
RREDES & COMUNICACIONES
6
ALGORITMOS Un algoritmo es un procedimiento a seguir, para resolver un problema en términos de: 1. Las acciones por ejecutar y el 2. El orden en que dichas acciones deben ejecutarse Un algoritmo nace en respuesta a la aparición de un determinado problema. Una algoritmo esta compuesto de una serie finita de pasos que convergen en la solución de un problema, pero además estos pasos tienen un orden específico. Entenderemos como problema a cualquier acción o evento que necesite cierto grado de análisis, desde la simpleza de cepillarse los dientes hasta la complejidad del ensamblado de un automóvil. En general, cualquier problema puede ser solucionado utilizando un algoritmo, en este sentido podemos utilizar los algoritmos para resolver problemas de computo. Un algoritmo para un programador es una herramienta que le permite resaltar los aspectos más importantes de una situación y descartar los menos relevantes. Todo problema de cómputo se puede resolver ejecutando una serie de acciones en un orden específico. Por ejemplo considere el algoritmo que se elaboraría para el problema o situación de levantarse todas las mañanas para ir al trabajo: 1. 2. 3. 4. 5. 6.
Salir de la cama quitarse el pijama ducharse vestirse desayunar arrancar el automóvil para ir al trabajo o tomar transporte.
Nótese que en el algoritmo anterior se ha llegado a la solución del problema en 6 pasos, y no se resaltan aspectos como: colocarse los zapatos después de salir de la cama, o abrir la llave de la regadera antes de ducharse. Estos aspectos han sido descartados, pues no tienen mayor trascendencia, en otras palabras los estamos suponiendo, en cambio existen aspectos que no podemos obviarlos o suponerlos, de lo contrario nuestro algoritmo perdería lógica, un buen programador deberá reconocer esos aspectos importantes y tratar de simplificar al mínimo su problema. Es importante recalcar que los pasos de un algoritmo no son conmutativos pues, no daría solución al mismo problema a tratar.
ROBUSTEZ DE UN ALGORITMO Quiere decir que un algoritmo debe contemplar todas las posibles facetas del problema que queremos resolver, al elaborar un algoritmo no se nos debe
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
7
escapar ningún detalle que provoque un funcionamiento malo nuestro algoritmo. Si logramos construir un algoritmo robusto, cualquier giro inesperado del problema será controlado por el algoritmo, es decir, debe ser flexible a cambios.
EFICIENCIA Y EFICACIA DE UN ALGORITMO Un algoritmo es eficiente cuando logra llegar a sus objetivos planteados utilizando la menor cantidad de recursos posibles, es decir, minimizando el uso memoria, de pasos y de esfuerzo humano. Un algoritmo es eficaz cuando alcanza el objetivo primordial, el análisis de resolución del problema se lo realiza prioritariamente. Puede darse el caso de que exista un algoritmo eficaz pero no eficiente, en lo posible debemos de manejar estos dos conceptos conjuntamente.
METODOLOGIA PARA LA SOLUCION DE PROBLEMAS POR MEDIO DE COMPUTADORA Para lograr resolver cualquier problema se deben seguir básicamente los siguientes pasos:
DEFINICIÓN DEL PROBLEMA Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.
ANÁLISIS DEL PROBLEMA Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: o o o
Los datos de entrada. Cual es la información que se desea producir (salida) Los métodos y fórmulas que se necesitan para procesar los datos.
Una recomendación muy práctica es el de colocarse en el lugar de la computadora y analizar qué es lo que se necesita que se ordene y en qué secuencia para producir los resultados esperados.
DISEÑO DEL ALGORITMO Las características de un buen algoritmo son:
UTP
RREDES & COMUNICACIONES
8
o o o
o o o
Debe tener un punto particular de inicio. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema. Debe ser finito en tamaño y tiempo de ejecución. Diseño del Algoritmo Prueba de escritorio o Depuración
Se denomina prueba de escritorio a la comprobación que se hace de un algoritmo para saber si está bien hecho. Esta prueba consiste en tomar datos específicos como entrada y seguir la secuencia indicada en el algoritmo hasta obtener un resultado, el análisis de estos resultados indicará si el algoritmo está correcto o si por el contrario hay necesidad de corregirlo o hacerle ajustes.
DEFINICION DE UN ALGORITMO El Algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea especifica, como la solución de un problema. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo el algoritmo será siempre el mismo.
CARACTERISTICAS DE UN ALGORITMO Las características del algoritmo son: Debe ser preciso e indicar el orden de realización de cada paso.
Estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Ser finito. Se debe terminar en algún momento; o sea debe de tener un número finito de pasos.
ESTRUCTURA DE UN ALGORITMO FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
9
Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripción pueden requerir una revisión adicional antes de que podamos obtener un algoritmo claro, preciso y completo. Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down). En un algoritmo se deben de considerar tres partes: -
Entrada: Información dada al algoritmo. Proceso:Operaciones o cálculos necesarios para encontrar la solución del problema. Salida: Respuestas dadas por el algoritmo o resultados finales de los procesos realizados.
Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie de un rectángulo proporcionándole su base y altura. Lo primero que debemos hacer es plantearnos las siguientes preguntas: Especificaciones de entrada - ¿Que datos son de entrada? - ¿Cuántos datos se introducirán? - ¿Cuántos son datos de entrada válidos? Especificaciones de salida - ¿Cuáles son los datos de salida? - ¿Cuántos datos de salida se producirán? - ¿Qué formato y precisión tendrán los resultados?
EJERCICIOS RESUELTOS 1. Defina un algoritmo para realizar una llamada
UTP
RREDES & COMUNICACIONES
10
INICIO 1. Acercarse al Teléfono 2. Levantar el Auricular 3. Recordar el Número telefónico 4. Discar el Número 5. Esperar que respondan 6. Conversar 7. Colgar el Auricular FIN 2. Defina un algoritmo para cambiar bombilla
INICIO 1. Colocar una escalera debajo de la bombilla 2. Subir la escalera 3. Desenroscar la bombilla 4. Bajar la escalera 5. Coger la bombilla nueva 6. Subir la escalera 7. Enroscar la bombilla 8. Bajar la escalera FIN 9. Retirar la escalera 3. Defina un Algoritmo para cambiar una Llanta
INICIO 1. Bajarse del Auto 2. Abrir la cajuela, sacar la gata y la llave 3. Colocar la gata y levantar el auto 4. Destornillar los pernos 5. Sacar la llanta 6. Sacar la llanta de repuesto 7. Colocar la llanta de repuesto 8. Bajar Enroscar los pernos 9. el auto 10. Guardar la llanta, la gata y la llave 4. Defina un Algoritmo para escuchar musica en un CD
INICIO 1. Encender la Radio FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
11
2. Seleccionar la opcion TAPE 3. Insertar el CD 4. Esperar que cargue el CD 5. Graduar el volumen 6. Escuchar el CD FIN
EJERCICIOS P ROPUESTOS 1. Defina un Algoritmo donde permita encender una computadora para Chatear 2. Defina un Algoritmo donde permita ir al Cine y regresar a casa. 3. Defina un Algoritmo donde permita realizar una Matricula en la institución. 4. Defina un Algoritmo que permita ver un determinado programa de televisión y al terminar apagar la TV. 5. Defina un Algoritmo que permita Elaborar el Arroz con pollo, Sugerencia: conversar con la Mama. 6. Defina un Algoritmo que permita Pintar las paredes de tu habitación. 7. Defina un Algoritmo que permita realizar una compra al credito en una empresa comercial. 8. Defina un Algoritmo que permita tener una Consulta Medica de un consultorio particular. 9. Defina un Algoritmo que permita Ir a un Fiesta de fin de año y regresar a casa.
UTP
RREDES & COMUNICACIONES
12
Capitulo
2
DATOS Y TIPOS DE DATOS OBJETIVOS ESPECÍFICOS 1. Conocer losTipos de Datos que se utilizan en la algoritmica 2. Definir las expresiones
CONTENIDOS Datos, definición Tipos de datos: Numerico, de cadena, logicos Manejo de Operadores Expresiones Ejercicios Prácticos
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
13
DEFINICION DE DATOS 1. Un dato es la expresión general que describe los objetos conlos cuales opera una computadora. 2. Existen dos tipos de datos: simples (sin estructuras) y compuestos (estructurados), los datos compuestos son conjuntos de partidas de datos simples con relaciones definidas entre ellos. 3. Los datos simples son:numéricos,lógicos y carácter.
DATOS NUMERICOS 1. Es el conjunto de los valores numéricos y puede ers expresado como numérico entero y numérico real. 2. Los enteros no tienen componentes fraccionariaso decimales ypueden ser negativos o positivos. Los reales siempre tienenun punto decimal.
DATOS LOGICOS 1. También llamados booleanos, es aquel que solo puede tomar uno de dos valores: verdadero (true) o falso (false). 2. Se utiliza para representar las alternativas (si/no) a determinadas condiciones.
DATOS CARACTER 1. Este tipo de dato contiene un solo carácter. 2. Los caracteres son: alfabéticos (A-Z), numéricos (0-9) y especiales (¡ @ # $ % ^ & *…).
3. Una cadena de caracteres o string es una sucesión de caracteres que se encuentran delimitados por una o dobles comillas.
UTP
RREDES & COMUNICACIONES
14
EJERCICIOS PR ACTICOS En cada uno de los datos, defina su Tipo de dato.
Datos
Tipo
“Hola”
123 ¿Quién eres? Verdadero “El Sabio” Falso 12.56 12/15 True “EL Quijote”
56.8999999 ¡Alo! Persona “Juan”
MANEJO DE OPERADORES DEFINICION Un operador es un carácter o grupo de caracteres que actúa sobre una, dos o más variables para realizar una determinada operación con un determinado resultado. Ejemplos típicos de operadores son la suma (+), la diferencia (-), el producto (*), etc. Un operador sirve para manipular datos. Los operadores pueden ser unarios, binarios y ternarios, según actúen sobre uno, dos o tres operandos, respectivamente.
TIPOS DE OPERADORES Aritméticos De relación, Lógicos, De asignación,
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
15
OPERADORES ARITMETICOS Los operadores aritméticos son los más sencillos de entender y de utilizar. Todos ellos son operadores binarios. Se utilizan los operadores siguientes:
OPERADOR
SIGNIFICADO
+
SUMAR
*
RESTAR MULTIPLICAR
DIV
DIVISION ENTERA
/
DIVISION REAL
MOD, %
RESTO ARTIMETICO
↑
POTENCIACION
OPERADORES RELACIONALES Una característica imprescindible de cualquier lenguaje de programación es la de considerar es, la de proceder de un modo u otro según se cumplanalternativas, o no ciertas esto condiciones. Los operadores relacionales permiten estudiar si se cumplen o no esas condiciones. En un programa si una condición se cumple, el resultado es cierto; en caso contrario, el resultado es falso. Los operadores relacionales son los siguientes
OPERADOR
SIGNIFICADO
>
MAYOR
<
MENOR
>=
MAYOR o IGUAL
,>=, 12) Y (65 MOD 3 b ) OR (a < c)) AND (( a = c ) OR (a >= b )) (( a > b ) OR (a < d)) AND (( a >= d ) AND (c > d )) NOT ( a = c ) AND ( c > b ) (( c > d ) OR ( b < c) AND ( a >= d )) AND ( a = c ) 6. ( 12 + ( 21 MOD 8 ) * (70 DIV 12) ) * ( 60 MOD 11 ) 7. ( ( 12 > 6) AND NOT ( 69 MOD 2) ) AND (3 7 MOD 4) 8. ( 12 < 9 MOD 6 ) AND ( 9 = 3 * 3 ) OR ( 6 > 15 MOD 4 )
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
19
Capitulo
3
VARIABLES Y CONSTANTES OBJETIVOS ESPECÍFICOS 1. Conocer el manejo de Variables yConstantes para ser aplicados dentro de una Algoritmica 2. Definir las expresiones
CONTENIDOS Variables, definición Identificacion de una Variable Declaracion de una Variable Constantes Ejercicios Prácticos
UTP
RREDES & COMUNICACIONES
20
VARIABLES Definición Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo. Su valor puede ser modificado, pero en un instante dado sólo contiene un valor determinado.
Declaración Las variables pueden asumir valores numéricos, caracter y lógicos. Existen 2 tipos de duración o ámbito de las variables, estas son (GLOBAL Y LOCAL). Las variables globales se pueden utilizar en cualquier parte del o Algoritmo. Las variables locales son dentro de un sub-programa o (Procedimiento o Función).
Ejemplos DECLARACION
FITT
ABC
VALIDO
A123
VALIDO
1A2B
NO VALIDO
_MiVariable
VALIDO
Mi_Variable
VALIDO
Mi_123456
VALIDO
_1_2_3
VALIDO
Mi@Variable
NO VALIDO
UTP
FUNDAMENTOS
DE PROGRAMACION
21
Clasificación de las Variables
Declaración Para declarar variables en un algoritmo se hace uso de la siguiente sintaxis : Tipo_Dato: Lista_variables Ejemplos: ENTERO: A, B, C REAL: X, Y, Z CARÁCTER: Car1, Car2 CADENA : Texto1, Texto2 LOGICO: Estado, Ok, Done
CONSTANTES Definición Objeto de datos que contiene un valor invariable conocido por su identificador. Es necesario inicializar las constantes al principio del algoritmo. Esto determina el tipo de la constante
Ejemplos PI=3.14 SALUDO=“Hola mundo”
MAXIMO=500 RESPUESTA=‘S’
UTP
RREDES & COMUNICACIONES
22
UNIDAD II Estructuras Basicas y Secuenciales
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
23
Capitulo
1
ESTRUCTURAS BASICAS OBJETIVOS ESPECÍFICOS Reconoce la estructura del algoritmo. Manejo de las instrucciones para la entrada, proceso y salida de datos. Comprende el manejo de las estructuras secuenciales en los procesos algorítmicos.
CONTENIDOS Estructura del algoritmo Instrucciones para la entrada, proceso y salida de datos Estructura de control, tipos
UTP
RREDES & COMUNICACIONES
24
ALGORITMO La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. Un algoritmo tambien se le puede definir como: Una "fórmula" para resolver un problema. o o Un conjunto finito de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven el problema. o También puede definirse como un método para resolver un problema mediante una serie finita de pasos precisos y bien definidos.
Tipos de Algoritmos Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras. Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
Estructura del Algoritmo Acciones de entrada: recogen los datos para el trabajo. Acciones de proceso: ejecutan los cálculos. Acciones de salida: ofrecen los resultados.
Lenguajes Algoritmicos Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso. De los cuales se encuentran los siguientes tipos de Lenguajes Algorítmicos:
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
25
Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).
Diagrama de Flujo Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados. Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).
Recomendaciones para el diseño de Diagramas de Flujo Se deben se usar solamente líneas de flujos horizontales y/o verticales. Se debe evitar el cruce de líneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar líneas de flujo son conectar. Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.
Pseudocodigo Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocodigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocodigo utiliza palabras que indican el proceso a realizar. INICIO Edad: Entero ESCRIBA “cual es tu edad?”
Lea Edad SI Edad >=18 entonces ESCRIBA “Eres mayor de Edad” FIN SI ESCRIBA “fin del algoritmo”
FIN
UTP
RREDES & COMUNICACIONES
26
Ventajas de utilizar un Pseudocodigo a un Diagrama de Flujo Ocupa menos espacio en una hoja de papel Permite representar en forma fácil operaciones repetitivas complejas Es muy fácil pasar de pseudocodigo a un programa en algún lenguaje de programación. Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.
Estructuras Algorítmicas Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:
Estructura de un Algoritmo en Pseudocódigo En pseudocódigo el algoritmo tiene tres partes: la cabecera, la zona de declaración de constantes y variables y el cuerpo. 1. La cabecera contiene el nombre del algoritmo. 2. La zona de declaraciones de variables y constantes establece qué variables y constantes vamos a usar, indicando junto al nombre el tipo de las mismas y el valor en el caso de las constantes. 3. El cuerpo del algoritmo es el que contiene las instrucciones que indican las acciones a realizar por el programa. a. Comienza con la palabra Inicio y termina con la palabra Fin (o palabras similares).
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
27
Estructura
ALGORITMO Nombre_Descriptivo Variables: …
INICIO Instrucciones
FIN
y/o Sentencias
Estructura Sintactica de un Algoritmo
Sentencias Declarativas Cabecera del Programa Declaración de Variables
Sentencias EntradaEjecutables de Datos Operaciones y Cálculos Salida de Resultados
UTP
Algoritmo CalculaArea VARIABLE Real: Radio, A
INICIO Leer Radio A 3.14* Radio ↑2
Escribir A
FIN
RREDES & COMUNICACIONES
28
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
29
Capitulo
2
ESTRUCTURAS SECUENCIALES OBJETIVOS ESPECÍFICOS Reconoce la estructura Secuencial Comprende el manejo de las estructuras secuenciales en los procesos algorítmicos.
CONTENIDOS Estructura Secuencial Definición Estructura Desarrollo Practico
UTP
RREDES & COMUNICACIONES
30
ESTRUCTURA SECUENCIAL DEFINICION La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. Una Estructura Secuencial se representa de la siguiente forma:
DIAGRAMA DE FLUJO
PSEUDOCODIGO
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
31
Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos:
COMPONENTES DE UNA ESTRUCTURA SECUENCIAL La asignación
Consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: Simples: Consiste en pasar un valor constante a una variable (a 15) Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a a + 1) Acumulador: Consiste en usarla como un sumador en un proceso (a a + b) De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a c + b*2/4). En general el formato a utilizar es el siguiente: < Variable > El símbolo
UTP
debe leerse “asigne”.
RREDES & COMUNICACIONES
32
Escritura o salida de datos Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue: ESCRIBIR (VALOR) ESCRIBIR (“MENSAJE”)
Lectura o entrada de datos La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así: LEER VARIABLE LEER VARIABLE1, VARIABLE 2
DECLARACION DE VARIABLES Y CONSTANTES La declaración de variables es un proceso que consiste en listar al principio del algoritmo las variables de colocar el nombre de la variabletodas se debe decir qué que tipo se de usarán, variableademás es. ENTERO: Contador, Edad, I CADENA: Direccion REAL: Salario_Basico CARÁCTER: Opcion En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero; Salario_Basico es una variable de tipo real, Opcion es de tipo carácter y la variable Direccion está declarada como una variable alfanumérica de cadena de caracteres.
EJERCICIOS RESUELTOS 1. Ingrese un número entero, luego súmele 2 unidades y visualícelo.
ALGORITMO Ejemplo1 VARIABLES ENTERO: A INICIO LEER (A) A← A + 2
ESCRIBIR (A)
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
33
2. Ingrese 2 números enteros y luego calcule y visualice la suma y producto de los 2 números ingresados ALGORITMO Ejemplo2 VARIABLES ENTERO: A, B, Suma, Producto INICIO LEER( A, B ) Suma ← A + B Producto ← A * B
ESCRIBIR (Suma, Resta, Producto)
FIN
3. Ingresar un número entero y luego calcular y visualizar su 5%.
ALGORITMO Ejemplo3 VARIABLES ENTERO: REAL: INICIO LEER (N)
N Porcentaje
Porcentaje ← N * (5 / 100)
ESCRIBIR (Porcentaje)
FIN 4. Una empresa decide otorgar una bonificación del 5% del haber básico por cada hijo a todos sus trabajadores. Calcule el total a pagar a un trabajador.
ALGORITMO Ejemplo4 VARIABLES ENTERO NroHijos REAL Hbasico, Bonificacion, Total INICIO LEER (Hbasico, NroHijos) Bonificacion ← (Hbasico * 0.05) * NroHijos Total ← Hbasico + Bonificacion
ESCRIBIR (Total)
FIN 5. Ingrese por teclado un número de dos cifras, visualice su número invertido
ALGORITMO Ejemplo5 VARIABLES ENTERO INICIO
Numero, Inverso, Unidad, Decena LEER (Numero) Unidad ← Numero MOD 10 Decenal ← Numero DIV 10 Inverso ← 10 * Unidad + Decena
ESCRIBIR (Inverso)
FIN
UTP
RREDES & COMUNICACIONES
34
6. Ingrese por teclado el nombre del cliente y el costo de una PC; por estar de promocion la empresa, se aplicará un descuento del 15% del costo, donde el neto es la diferencia del costo menos el descuento. Aplique el 19% del neto donde el monto a pagar es la suma del neto mas igv. Visualice el descuento, neto, igv y el monto a pagar.
ALGORITMO Ejemplo6 VARIABLES REAL Costo, Descuento, Neto, IGV, Monto, Pago CADENA Nombre INICIO
LEER (Nombre, Costo) Descuento ← 0.15 * Costo Neto Costo – Descuento IGV 0.19 * Neto Pagar ← Neto + IGV ESCRIBIR (Descuento, Neto, IGV, Pagar)
FIN 7. En este verano un instituto educativo ha ingresado una cantidad de “N” alumnos matriculados en el programa de Computación e Informatica, si los alumnos son agrupadas en aulas de 40 alumnos cada aula, Hallar: Numero de aulas completas Cantidad de alumnos que faltan para completar otra aula
ALGORITMO Ejemplo7 VARIABLES ENTERO Matriculas, Aulas, Falta INICIO LEER (matriculas) Aula ← Matriculas DIV 40 Falta Matricula MOD 40 ESCRIBIR (Aula, Matricula) FIN 8. Ingrese por teclado un Número de 3 cifras, visualice la suma de las cifras del número ingresado.
ALGORITMO Ejemplo8 VARIABLES INICIOENTERO
Numero, Unidad, Decena, Suma LEER (Numero) Unidad ← Numero MOD 10 Decena (Numero DIV 10) MOD 10 Centena NUMERO DIV 100 Suma ← Unidad + Decena + Centena ESCRIBIR (Suma)
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
35
9. Ingrese por teclado la cantidad de metros cubicos de agua que se consume en una casa. Calcula y visualice cada uno de los gastos sabiendo que el costo por metros cubico es 0.35 nuevos soles y el monto del consumo es el producto de la cantidad de metros cubicos por el precio. Mantenimiento Parques y Jardines Exploracion Limpieza de Alcantarillas
0.25% del monto 0.15% del monto 0.05% del monto 0.07% del monto
Del total a pagar deberá pagar el impuesto a las Ventas que representa el 19% del Monto Total, calcule y visualice el Monto Total a Pagar.
ALGORITMO Ejemplo9 VARIABLES REAL Cubicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar INICIO LEER (Cubicos) Monto 0.35 * Cubicos Mant ← Monto * 0.25 /100
PJ Monto * 0.15 / 100 Explor Monto * 0.05 / 100 Limp ← Monto * 0.07 / 100
Monto Monto + Mant + PJ + Explor + Limp IGV Monto * 0.19 Pagar Monto + IGV ESCRIBIR (“Mantenimiento:”, Mant) ESCRIBIR (“Parques y Jardines:”, PJ) ESCRIBIR (“Exploracion:”, Explor) ESCRIBIR (“Limpieza:”, Limp) ESCRIBIR (“Monto:”, Monto) ESCRIBIR (“IGV:”, IGV) ESCRIBIR (“A Pagar:”, Pagar)
FIN 10. Una Empresa dedicada a la Venta de Electrodomesticos, realiza una promocion del 20% + 15% de descuento. Ingrese el precio de un electrodomestico, calcule y visualice su descuento y el neto a pagar.
ALGORITMO Ejemplo10 VARIABLES INICIOREAL
Precio, Descuento1, Descuento2, Neto LEER (Precio) Descuento1 ← (Precio * 0.20) Descuento2 (Precio – Descuento1) * 0.15 Neto Precio – (Descuento1 + Descuento2) ESCRIBIR ((Descuento1+Descuento2), Neto)
FIN
UTP
RREDES & COMUNICACIONES
36
EJERCICIOS PROPUESTOS 1. Ingrese por teclado un número, calcule y visualice: a) El doble del número ingresado b) La tercera parte del número ingresado c) El cubo del número ingresado 2. Ingrese por teclado la cantidad de metros de un telar. Transformar los metros a centímetros y pulgadas, sabiendo que una pulgada es el equivalente a 2.54 centimetros. 3. Ingrese por teclado la descripción y precio de un producto, actualizar el preceio de la siguiente manera: a) Incremente el precio al 35% del precio ingresado. b) El nuevo precio es la suma del precio inicial mas el incremento 4. Ingrese por teclado el nombre del producto, el precio unitario y la cantidad vendida, calcule y visualice: a) El importe de la compra que es el producto del precio por la cantidad vendida. b) El IGV que representa el 19% del importe de la compra c) El importe final que es la suma del importe de la compra mas el IGV 5. Ingrese por teclado un número de tres cifras, calcule y visualice: a) de sus cifras b) Suma Promedio de las cifras 6. Ingrese por teclado un numero de dos cifras, mostrar el numero pero en sentido inverso. 7. Se desea repartir cierto monto de dinero entre tres personas que conforman una empresa; obtener el monto que le corresponde a cada persona si la repartición se basa en la cantidad de acciones que posee cada socio: Socio A B C
% Acciones 35% 45% 20%
Ingrese por teclado el monto de dinero, visualice el importe que recibirá cada uno de los accionistas. 8. Desarrolle un algoritmo para la compañía telefonica que permite mostrar el pago por consumo telefonico, para esto se ingresará el codigo del usuario, el numero telefonico y la cantidad de minutos utilizados. Mostrar el codigo del usuario, el importe de las llamadas realizadas, el IGV y el pago total, considerando que la empresa cobra 0.30 centimos de nuevo sol por cada minuto, la renta basica cobra 48 nuevos soles y el IGV es el 19% del Monto.
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
37
9. Ingrese por teclado el nombre y tres notas de un alumno, calcular y mostrar el promedio de las tres notas. 10. Ingrese por teclado la cantidad de soles, transaformarlo en dolares; considere el tipo de cambio del dia. 11. Ingrese por teclado la cantidad de postulantes a la Universidad, calcule y visualice: a) Cantidad de aulas completas b) Cantidad de alumnos para completas la ultima aula Coinsiderar que un aula completa es de 20 alumnos. 12. Ingrese por teclado una cantidad de segundos, calcular y mostrar: a) Cantidad de horas b) Cantidad de minutos c) Cantidad de segundos restantes 13. Ingrese por teclado un numero, incrementar el 2.4% de su valor, mostrar el valor del incremento y el nuevo numero. 14. Ingrese por teclado un numero de 4 cifras, mostrar los numeros formados por las cifras de los extremos y los medios. 15. Ingrese por teclado el sueldo de un trabajador, asumiendo que éste es un valor entero, visualizar la mejor distribución de billetes y monedas que se utilizarán para pagar un sueldo. Considere billetes de 100, 50, 20 ,10. Monedas de 5, 2 ,1 16. En un instituto se planteo los siguientes pesos para cada una de las evaluaciones que tendra en el curso. Examen Parcial 30% Examen Final 40% Promedio de Practicas 20% Promedio de Trabajos 10% Para tal caso ingrese el nombre del alumno y las 4 evaluaciones, mostrar el nombre del alumno y su promedio.
UTP
RREDES & COMUNICACIONES
38
UNIDAD III Estructuras Condicionales y Selectivas
FITT
UTP
FUNDAMENTOS
UTP
DE PROGRAMACION
39
RREDES & COMUNICACIONES
40
Capítulo
1
ESTRUCTURAS CONDICIONALES SIMPLES OBJETIVOS ESPECÍFICOS Defina el propósito de las estructuras condicionales Realiza la solución de diversos casos prácticos aplicando estructuras condicionales
CONTENIDOS Definición de estructurascondicionales Clasificación Estructura condicional simple Definición Sintaxis Desarrollo Practico
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
41
ESTRUCTURAS CONDICIONALES DEFINICION Las Estructuras Condicionales también reciben el nombre de “estructuras de selección”, permite elegir entre diferentes cursos de acción en función de
condiciones. Las estructuras condicionales comparan una variable contra otro(s) valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. En una Estructura Condicional se evalúa una expresión lógica y dependiendo del resultado se ejecutan unas sentencias u otras. Pongamos un pequeño ejemplo. Imagine que tenemos nuestro robot subiendo las escaleras de la Torre Eiffel y le indicamos lo siguiente: si está en el escalón 200 entonces no continúe subiendo, sino continua su ascensión. Como puede ver aquí se nos presenta una condición y, según en el punto de la escalera en la que se encuentre, nuestro robot se parará o continuará subiendo. Si la condición es verdadera, entonces se ejecuta la sentencia mostrar, y luego el programa continuaría; si la condición es falsa, la sentencia mostrar se ignora y el programa continúa.
¿QUE ES UNA CONDICION? Una condición o expresión booleana puede ser: Una variable booleana TEST Verdadero Una expresión aritmética seguida de un operador relacional, seguido de otra expresión aritmética TEST 3 < 5 Una expresión booleana, seguida de un operador booleano, seguido de una expresión TESTbooleana A AND NOT B OR C Se pueden utilizar condiciones tan complejas como se quiera siempre que estén bien formadas
UTP
RREDES & COMUNICACIONES
42
CLASIFICACION Las estructuras condicionales o selectivas se clasifican en: 1. Condicional Simple (SI / FIN-SI) 2. Condicional Doble (SI / SINO / FIN-SI) 3. Condicional Anidada (Similar a Condicional Doble) 4. Condicional Múltiple (EN_CASO / FIN-EN_CASO)
ESTRUCTURA CONDICIONAL SIMPLE DEFINICION Es aquelle estructura de control que evalúa una condición: Si la condición se cumple se ejecutan determinadas acciones. Si la condición no se cumple, no se ejecutan esas acciones.
SINTAXIS DIAGRAMA DE FLUJO
PSEUDOCODIGO
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
43
EJERCICIOS RESUELTOS 1. Ingrese por teclado 2 números enteros y visualice el mayor de los 2 números ingresados.
ALGORITMO Ejemplo1 VARIABLES ENTERO: A, B, Mayor INICIO LEER ( A, B ) Mayor A SI ( B > A )ENTONCES Mayor B FIN-SI ESCRIBIR ( Mayor ) FIN 2. Ingrese por teclado un número entero, si mayor a 10 súmele 10 unidades y visualice el nuevo valor.
ALGORITMO Ejemplo2 VARIABLES INICIO
ENTERO: N LEER ( N ) SI ( N > 10) ENTONCES N N + 10 FIN-SI ESCRIBIR ( N )
FIN 3. Ingrese por teclado la edad de una persona; si su edad es mayor a 17, visualice un mensaje “Es mayor de edad” .
ALGORITMO Ejemplo3 VARIABLES ENTERO: INICIO
edad
LEER (edad) SI (edad > 17) ENTONCES ESCRIBIR “Es mayor de edad” FIN-SI
FIN
UTP
RREDES & COMUNICACIONES
44
4. Ingrese por teclado la talla de una persona; visualice un mensaje “Servicio Obligatorio”, si tiene una talla minima de 1.70 metros
ALGORITMO Ejemplo4 VARIABLES REAL:
talla
INICIO LEER (talla) SI (talla>=1.70) ENTONCES FIN-SI
ESCRIBIR “Servicio Obligatorio”
FIN
5. Una empresa otorga un bonificación del 5% del haber básico solo a sus trabajadores que tienen hijos, calcular el total a pagar a un trabajador.
ALGORITMO Ejemplo5 VARIABLES ENTERO: NroHijos REAL:Hbasico, Bonificacion, Total INICIO LEER (Hbasico, NroHijos) Bonificacion 0 SI ( NroHijos > 0 ) ENTONCES
Bonificacion ← Hbasico * 0.05 * NroHijos
FIN-SI Total Hbasico + Bonificacion ESCRIBIR ( Total )
FIN
6. Una empresa otorga un bonificación del 5% del haber básico solo a sus trabajadores que tienen hijos, calcular el total a pagar a un trabajador.
ALGORITMO Ejemplo6 VARIABLES ENTERO: NroHijos REAL:Hbasico, Bonificacion, Total INICIO LEER (Hbasico, NroHijos) Bonificacion 0 SI ( NroHijos > 0 ) ENTONCES Bonificacion ← Hbasico * 0.05 * NroHijos
FIN-SI Total Hbasico + Bonificacion ESCRIBIR ( Total )
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
45
7. Una empresa otorga un bonificación del 5% del haber básico solo a sus trabajadores que tienen hijos, calcular el total a pagar a un trabajador.
ALGORITMO Ejemplo7 VARIABLES ENTERO: NroHijos REAL:Hbasico, Bonificacion, Total INICIO LEER (Hbasico, NroHijos) Bonificacion 0 SI (NroHijos > 0) ENTONCES Bonificacion ← Hbasico * 0.05 * NroHijos
FIN-SI Total Hbasico + Bonificacion ESCRIBIR (Total)
FIN
EJERCICIOS P ROPUESTOS 1. Ingrese por teclado 2 números enteros y visualice el menor de los 2 números ingresados. 2. Ingrese por teclado un número entero visualice el cuadrado del numero, si el numero es mayor a 10 y menor a 50. 3. Ingrese por teclado la edad y talla de una dama, visualice un mensaje “Postulante a la Escuela de Oficiales”, si su edad minima es 17 y su talla
minima es 1.65 metros. 4. Ingrese po teclado el puntaje de un alumno que ha postulado a la Universidad, visualice un mensaje “Alumno Ingresado” si el puntaje obtenido es mayor a 500. 5. Ingrese por teclado el sueldo de un empleado, si el sueldo es mayor a 1800, se le aplicará un descuento del 15% del excedente de su sueldo respecto a 1800, visualice el descuento. 6. Ingrese por teclado la descripción y precio de un accesorio de computadora; se le aplicará un descuento del 5% al precio si el accesorio es Monitor o Teclado. Visualice el descuento y el nuevo precio 7. Ingrese por teclado un número, si es numero par, duplique el valor del numero; mostrar el nuevo valor. 8. Ingrese por teclado un numero, si es de 3 cifras, visualice la suma de las cifras del número.
UTP
RREDES & COMUNICACIONES
46
9. Ingrese por teclado el nombre del curso y su precio; si el nombre del curso es Networking, se le aplicará un descuento del 15% al precio, visualice el descuento y el nuevo precio 10. Ingrese por teclado el año de nacimiento de una persona, visualice un mensaje “Es mayor de edad”, si su edad es mayor o igual a 18.
11. Ingrese por teclado dos notas, calcule su promedio sabiendo que la segunda nota es peso doble; visualice un mensaje “Aprobado”, si su
promedio es mayor o igual a 11 12. Ingrese por teclado un número, si el número es impar y de tres cifras, visualice el número incrementado por su número invertido. 13. Ingrese por teclado el nombre, precio y la cantidad de productos a vender, calcule el monto de la venta. Se aplicará un descuento del 35% de su precio por la compra de 20 unidades. Visualice el descuento y el neto.
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
47
Capítulo
2
ESTRUCTURAS CONDICIONALES DOBLES OBJETIVOS ESPECÍFICOS Defina el propósito de las estructuras condicionales dobles Realiza la solución de diversos casos prácticos aplicando estructuras condicionales
CONTENIDOS Estructura condicional doble Definición Sintaxis Desarrollo Practico
UTP
RREDES & COMUNICACIONES
48
ESTRUCTURA CONDICIONAL DOBLE DEFINICION La estructura condicional de selección doble ejecuta un bloque de instrucciones (A) cuando la proposición (condición) es verdadera y un bloque diferente (B) cuando esta es falsa.
SINTAXIS DIAGRAMA DE FLUJO
PSEUDOCODIGO
True False
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
49
Donde: Si Condición Entonces Instrucción si no
: Indica el comando de comparación : Indica la condición a evaluar : Precede a las acciones a realizar cuando se cumple la condición : Son las acciones a realizar cuando se cumple o no la condición : Precede a las acciones a realizar cuando no se cumple la condición
Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más acciones.
EJERCICIOS RESUELTOS 1. Ingrese por teclado 2 numeros, visualice el mayor de los dos numeros ingresados.
ALGORITMO Ejemplo1 VARIABLES ENTERO: INICIO
A, B
LEER(A, SI ( A > BB) )ENTONCES ESCRIBIR (A) SINO ESCRIBIR (B) FIN-SI
FIN 2. Ingrese por teclado un numeros, si el número es par visualice su doble pero si el número es impar visualice su cuadrado.
ALGORITMO Ejemplo2 VARIABLES ENTERO: A INICIO LEER(A) SI ( A MOD 2 = 0 )ENTONCES ESCRIBIR (2*A) SINO ESCRIBIR (A^2) FIN-SI FIN
UTP
RREDES & COMUNICACIONES
50
3. Ingrese por teclado la edad de un postulante a las fuerzas armadas, visualice un mensaje “Apto” si su edad es mayor a 17; sino visualice un mensaje “No apto”.
ALGORITMO Ejemplo3 VARIABLES ENTERO: edad INICIO LEER (edad) SI (edad>17) ENTONCES SINO
ESCRIBIR (“APTO”) ESCRIBIR (“NO APTO”)
FIN-SI
FIN 4. Ingrese por teclado el total de ahorros de una persona, si ahorró mas de 1000, visualice “PUEDE COMPRAR SU TV”, sino “SIGA AHORRANDO”.
ALGORITMO Ejemplo3 VARIABLES REAL: ahorros INICIO LEER (ahorros) SI (ahorros>1000) ENTONCES ESCRIBIR (“PUEDE COMPRAR SU TV”) SINO ESCRIBIR (“SIGA AHORRANDO”) FIN-SI FIN 5. Ingrese por teclado el tiempo que e demora en recorrer 1500 metros un atleta, visualice un mensaje “ATLETA A COMPETIR EN LA OLIMPIADA” si la marca minima es 3 minutos, sino visualice un mensaje “PREPARARSE MAS”
ALGORITMICA Ejemplo5 VARIABLES REAL: tiempo INICIO LEER (tiempo) SI (tiempo= 100) Y ( N =1000) ENTONCES Descuento Precio * 0.10 SINO Descuento Precio * 0.03 FIN-SI Neto Precio – Descuento ESCRIBIR (Descuento, Neto)
FIN 9. Se estan solicitando a la población postular a la Escuela de la Fuerzas Armadas, una persona que postula a la Escula deberá ingresar su Nombre, edad, talla y estudios realizados. Si su edad es mayor a 17, tiene una talla minima de 1.70 y estudios superiores, podrá ingresar, sino ingresará a la Escuela de Suboficiales.
ALGORITMICA Ejemplo9 VARIABLES ENTERO: edad REAL: talla CADENA: nombre, estudios INICIO LEER (nombre, talla, edad, estudios) SI ( edad>17 Y talla>=1.70 Y estudios=”SUPERIOR”) ENTONCES ESCRIBIR (“APTO PARA ESCUELA DE OFICIALES”) SINO ESCRIBIR (“APTO PARA ESCUELA DE SUB OFICIALES”) FIN-SI FIN
EJERCICIOS P ROPUESTOS 1. Ingrese por teclado 2 notas, visualice el mayor de las dos notas y si esa nota es aprobatoria o no (notas de 0-20). 2. Ingrese por teclado la edad de una persona, visualice un mensaje: a. “Mayor de Edad”, si la edad es minimo 18 b. “Menor de Edad”, si la edad es menor a 18 3. Ingrese por teclado un número de dos cifras, visualice un mensaje si es número es o no capicúa.
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
53
4. Ingrese por teclado dos numeros, visualice el menor de los dos numeros ingresados. 5. Ingrese por teclado tres números diferentes, visualice: a) Mayor de los tres números b) Menor de los tres números 6. Ingrese por teclado tres numeros entreros diferentes, visualice el segundo mayor numero. 7. Ingrese por teclado el precio de un articulo y el tipo de pago, si el tipo de pago es “CONTADO” se le aplicará un descuento del 5%, sino no se le
aplicará descuento; visualice el descuento y el nuevo precio. 8. Ingrese por teclado el nombre de un alumno y sus tres notas, calcule y visualice su promedio; si el promedio es menor a 11, deberá ingresar la nota sustitutoria que reemplazara a la nota mas baja; calcule y visualice su promedio. 9. Ingrese por teclado el precio de un artículo, si el precio es menor a 100, se le aplicará un descuento del 3% sobre el precio, sino, se le aplicará un descuento del 10% sobre el precio. Visualice el descuento y el nuevo precio 10. Ingrese por teclado el nombre de un obrero y sus horas trabajadas, el pado que recibe por cada hora es de 15 nuevos soles. Su jornal es el producto del pago por hora y las horas trabajadas; si trabaja más de 40 horas, por cada hora extra trabajada, se le pagará 25 nuevos soles. Visualice el jornal que recibió.
UTP
RREDES & COMUNICACIONES
54
Capítulo
3
ESTRUCTURAS CONDICIONALES MULTIPLES OBJETIVOS ESPECÍFICOS Defina el propósito de las estructuras condicionales multiples Realiza la solución de diversos casos prácticos aplicando estructuras condicionales
CONTENIDOS Estructura condicional multiple Definición Sintaxis Desarrollo Practico
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
55
ESTRUCTURA CONDICIONAL MULTIPLE DEFINICION Las estructuras de comparación múltiples, son tomas de decisión especializada que permiten comparar una variable con posibles resultados diferentes, ejecutando para cada caso una serie de instrucciones específicas. Cabe resaltar que este tipo de estructura evalúa el valor de una variable con los posibles valores que se puden comparar para obtener un resultado, por ejemplo:
Si el mes es 1, escribir “Enero”; sino si el mes es 2, escribir “Febrero”, etc.
SINTAXIS DIAGRAMA DE FLUJO
UTP
RREDES & COMUNICACIONES
56
PSEUDOCODIGO
EJERCICIOS RESUELTOS 1. Ingrese 3 números enteros y visualice el mayor de los 3 números ingresados.
ALGORITMO Ejemplo1 VARIABLES ENTERO: A, B, C, Mayor INICIO LEER( A, B, C) SI( A>B AND A>C ) ENTONCES Mayor ← A
SINO SI( B>A AND B>C ) ENTONCES Mayor ← B SINO Mayor ← C
FIN
FITT
FIN-SI ESCRIBIR( Mayor )
UTP
FUNDAMENTOS
DE PROGRAMACION
57
2. Ingrese un número entero, si es menor a 10 súmele 10 unidades, si está entre 11 a 20 multiplique por dos, si es mayor a 20 elevar a potencia par. Visualice el nuevo valor.
ALGORITMO Ejemplo2 VARIABLES ENTERO: INICIO
N
LEER( N ) SI ( N < 10) ENTONCES N ← N + 10
SINO SI ( N 0 0
Bonificación (% Haber Básico) 2.50 % 2.75 % 2.80 % 3.00 % 2.50 %
V D D
>0 0 >0
2.75 % 2.50 % 3.00 %
5. Un instituto ofrece cursos de programación, el costo de los cursos es de la siguiente manera:
UTP
RREDES & COMUNICACIONES
76
Básico Profesor Alumno Externo
Intermedio 50 70 40 50 70 100
Avanzado 100 80 120
Se pide elaborar un programa para emitir el recibo por dicho curso, los datos que se mostraran en el recibo son: nombre del participante, costo del curso y nivel del curso. 6. Ingresar una fecha y calcular: el número de días de ese mes e identificar si el año es bisiesto. 7. Ingrese por teclado el nombre de un Empleado y su categoría. Según su categoría obtendrá su básico y bonificación: Categoría Empleado Obrero Ejecutivo Auxiliar
Básico 600 550 1500 200
Bonificación 150 190 500 50
Calcule y visualice su remuneración que es la suma del básico y bonificación.
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
77
UNIDAD IV Estructuras Repetitivas
UTP
RREDES & COMUNICACIONES
78
Capitulo
1
ESTRUCTURAS EPETITIV R AS OBJETIVOS ESPECÍFICOS Defina el propósito de las estructuras repetitivas. Implementar desarrollos prácticos utilizando contadores y acumuladores Realiza la solución de diversos casos prácticos aplicando estructuras repetitivas
CONTENIDOS Estructura iterativa Definición Tipos de estructuras Estructura repetitiva Para– Fin Para Contadores y acumuladores Desarrollo de ejercicios de aplicación
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
79
ESTRUCTURA REPETITIVA DEFINICION Son operaciones que se deben ejecutar un número repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto número de veces, se llama Ciclo, Bucle o Lazo, establecido por la condición que se evalúa en cada una de ellas. Cada una de las repeticiones se conoce como iteración. Tambien se les llaman problemas repetitivos o cíclicos porque en la solucion es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).
¿Qué es una Iteración? Es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle.
Fases de un Programa Cíclico o Repetitivo Todo problema que trabaja cuenta las siguientes fases: con procesos repetitivos o cíclicos debe tomar en 1. Entrada de datos e instrucciones previas 2. Lazo o bucle 3. Instrucciones finales o resto del proceso 4. Salida de resultado
Ejemplo de un Bucle Finito En este ejemplo, el bucle finalizará cuando se cumple la condicion que “N” sea cero.
UTP
RREDES & COMUNICACIONES
80
Ejemplo de un Bucle Infinito
En este flujograma, el bucle se estará repitiendo indefinidamente ya que no existe ninguna condicion que nos permita finalizar en algún momento.
Clasificacion de las Estructuras Repetitivas Las estructuras repetitivas se clasifican en: a) Estructuras cíclicas que ejecutan un número determinado de aquellas en que el número de iteraciones se conoce antes Iteraciones: de ejecutarseSon el ciclo. •
Estructura Para – Fin Para
b) Estructuras cíclicas que ejecutan un número indeterminado de Iteraciones: Son aquellos en que el número de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa. • •
FITT
Estructura Mientras – Fin Mientras Estructura Repetir – Hasta_Que
UTP
FUNDAMENTOS
DE PROGRAMACION
81
ESTRUCTURA REPETITIVA PARA - HACER DEFINICION Si tenemos que repetir el bucle un número exacto de veces (que conocemos antes de empezar el bucle), debemos utilizar el bucle parahacer. Al bucle for debemos asociarle una variable. Esta variable la crea automáticamente cuando comienza a ejecutar el bucle y la utiliza para llevar la cuenta de cuantas veces ha hecho el bucle. A la estructura Para - Hacer se le conoce como Repetitiva. Para utilizar esta estructura en algoritmos, debemos hacer uso de contadores y algunas veces de acumuladores.
SINTAXIS DIAGRAMA DE FLUJO
UTP
RREDES & COMUNICACIONES
82
PSEUDOCODIGO
PARA Variable←V.Inicial HASTA V.Final DE Inc : Instrucciones y/o : Sentencias FIN-PARA Donde : – –
V.Inicial = Valor Inicial V.Final = Valor Final
–
Inc = Valor de Incremento (Opcional)
CONTADORES Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle; deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. La inicialización consiste en asignarle al contador un valor. Se situará antes y fuera del bucle.
Representación: + Si en vez de incremento es decremento se coloca un menos en lugar del más.
Ejemplo: ii+1
ACUMULADORES Es una variable que suma sobre sí misma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable. La diferencia entre un contador y un acumulador es que mientras el primero va aumentando en una cantidad variable.de uno en uno, el acumulador va aumentando
Representación: + Ejemplo: S S + variable
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
83
EJERCICIOS RESUELTOS 1. Imprimir los 10 primeros números naturales.
ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO PARA N←1 HASTA 10 ESCRIBIR (N) FIN-PARA FIN 2. Imprimir los 10 primeros números naturales pero en forma descendente.
ALGORITMO Ejemplo2 VARIABLES ENTERO INICIO
N
PARA N ← 10 HASTA 1 DE -1
ESCRIBIR (N) FIN-PARA
FIN 3. Visualizar todos los números de 2 cifras compuestos por cifras iguales.
ALGORITMO VARIABLES Ejemplo3 ENTERO INICIO
N, A, B
PARA N ← 10 HASTA 99 A ← N DIV 10 B ← N MOD 10
SI ( A = B ) ENTONCES ESCRIBIR (N) FIN-SI FIN-PARA
FIN 4. Ingrese un número y luego visualice todos sus divisores. ALGORITMO Ejemplo4 VARIABLES ENTERO N, Divisor INICIO LEER (N) PARA Divisor ← 1 HASTA N
SI N MOD Divisor = 0 Entonces ESCRIBIR (Divisor) FIN-SI FIN-PARA
FIN
UTP
RREDES & COMUNICACIONES
84
5. Diseñe un programa que imprima una tabla de cuadrados y de cubos para los números del 1 hasta N, donde N se ingresa.
ALGORITMO Ejemplo5 VARIABLES ENTERO N, i, CUADRADO, CUBO INICIO LEER (N) PARA i ← 1 HASTA N
CUADRADO i * i CUBO i * i * i ESCRIBIR (N, CUADRADO, CUBO) FIN-PARA
FIN 6. Elabore un programa donde ingrese 30 números, visualizar el mayor y el menor de los números ingresados.
ALGORITMO Ejemplo6 VARIABLES ENTERO N, MAYOR, MENOR, i INICIO MENOR 0 MAYOR 0 PARA i ← 1 HASTA 30 LEER (N) SI N > MAYOR ENTONCES MAYOR N FIN SI SI N < MENOR ENTONCES MENOR N FIN SI FIN-PARA ESCRIBIR (MAYOR, MENOR) FIN 7. Elabore un programa para calcular el factorial de un número entero positivo
ALGORITMO Ejemplo7 VARIABLES ENTERO N, FACTORIAL, i INICIOFACTORIAL 1 LEER (N) PARA i ← 1 HASTA N FACTORIAL FACTORIAL * i FIN-PARA ESCRIBIR (FACTORIAL) FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
85
8. Elabore un programa donde ingrese las notas de 30 alumnos: nombre del alumno, el curso, nota1 y nota2. Por cada ingreso calcule y visualice su promedio; al finalizar visualice la cantidad de alumnos aprobados y la cantidad de alumnos desaprobados
ALGORITMO Ejemplo8 VARIABLES ENTERO N, NOTA1, NOTA2, i, CAPROB, CDESAPROB REAL PROMEDIO CADENA NOMBRE, CURSO INICIO CAPROB 0 CDESAPROB 0 PARA i ← 1 HASTA 30 LEER (NOMBRE, CURSO, NOTA1, NOTA2) PROMEDIO (NOTA1 + NOTA2) /2 ESCRIBIR (PROMEDIO) SI (PROMEDIO>=11) ENTONCES CAPROB CAPROB + 1 SINO CDESAPROB CDESAPROB + 1 FIN SI FIN-PARA ESCRIBIR (CAPROB, CDESAPROB)
FIN
EJERCICIOS P ROPUESTOS 1. Visualizar los números de 2 cifras pares. 2. Ingrese un número entero y luego calcule el factorial del número ingresado. 3. Ingrese un número entero y luego visualice un mensaje indicando si es “primo” o “no primo”.
4. Ingrese un número entero y luego visualice un mensaje indicando si es “PERFECTO” o “NO ES PERFECTO”.
5. Ingrese un número entero y luego calcule la suma de todos los números impares menores al número ingresado. 6. Visualizar la siguiente serie de números: +1-2+3-4+5-6+7-8+…+N NOTA: “N” será el valor límite de la serie. 7. Calcular la suma de todos los números de 3 cifras compuestos por cifras diferentes impares.
UTP
RREDES & COMUNICACIONES
86
8. Diseñe un programa que ingrese las edades de 10 alumnos y que calcule lo siguiente: • Suma de todas las edades • Promedio de edades • Promedio de edades pares • Edad máxima • Edad mínima
9. Escribe un algoritmo que lea un número natural N y un carácter. La salida debe ser un rombo compuesto del carácter y de la anchura que especifica el número N. Por ejemplo, si N es 5 y el carácter es *, el rombo sería: * ** *** **** ***** **** *** ** * 10. Elabore un programa que permita convertir un numero de base 10 a un numero de otra base, para ello ingrese el numero y la base. Ejemplo: Suponga que el número en decimal que se desea transformar a su equivalente en binario es el 11: Por lo tanto, (11)10 = (1011)2 11. Elabore un programa donde ingrese un numero, visualizar los divisores del numero ingresado. 12. Escribe un algoritmo que imprima una pirámide de dígitos como la de la figura, tomando como entrada el número de filas de la misma. 1 121 12321 1234321 123454321 13. Escribaporunteclado: Algoritmo que permita forma la siguiente serie, donde N es ingresado 1, 4, 9, 16, … N 2
14. Diseñe un programa que imprima N términos de la siguiente serie: 3, 8, 15, 24………
15. Diseñe un programa que halle los 3 primeros números perfectos
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
87
16. Diseñe un programa para hallar la suma de N términos de la siguiente serie: 1 + 1/32 + 1/52 + 1/72 + 1/92+............................ 17. Diseñe un programa para hallar la suma de N terminos de la siguiente serie: 1 + 1/2 + 2/3 + 3/4 + 4/5+............................ 18. Diseñe un programa donde visualice los números primos comprendidos entre el 1 al 100.
UTP
RREDES & COMUNICACIONES
88
Capitulo
2
ESTRUCTURAS REPETITIV AS MIENTRAS - HACER OBJETIVOS ESPECÍFICOS Defina el propósito de las estructuras repetitivas. Implementar desarrollos prácticos utilizando contadores y acumuladores Realiza la solución de diversos casos prácticos aplicando estructuras repetitivas
CONTENIDOS Estructura Mientras - hacer Definición Sintaxis Desarrollo de ejercicios de aplicación
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
89
ESTRUCTURA MIENTRAS-HACER DEFINICION Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una
condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso.
CARACTERISTICA Se llama Mientras a la estructura algorítmica que se ejecuta mientras la condición evaluada resulte verdadera. Se evalúa la expresión booleana y, si es cierta, se ejecuta la instrucción especificada, llamada el cuerpo del bucle. Este proceso de evaluación de la expresión booleana y ejecución del cuerpo se repite mientras la expresión sea cierta. La estructura MIENTRAS se conoce como Iterativa. Se usan cuando no se conoce con anticipación el número de veces que se ejecutará la acción.
SINTAXIS DIAGRAMA DE FLUJO
UTP
RREDES & COMUNICACIONES
90
PSEUDOCODIGO
MIENTRAS (Expresion) HACER : VERDAD : FIN-MIENTRAS Instrucciones y/o Sentencias
EJERCICIOS RESUELTOS 1. Imprimir los 3 primeros números naturales.
ALGORITMO Ejemplo1 VARIABLES ENTERO INICIO
N
N←1
MIENTRAS( N N) ENTONCES RETORNAR (M) SINO
RETORNAR (N)
FIN-SI FIN-FUNCION
INICIO LEER (A, B) ESCRIBIR (Mayor (A, B) )
FIN 3. Crear una función que retorne la suma de la cifras de un número entero.
ALGORITMO Ejemplo3 VARIABLES ENTERO M FUNCION SumaCifras (ENTERO N): ENTERO VARIABLES ENTERO SUMA, Cifra INICIO SUMA ← 0
MIENTRAS (N 0) HACER Cifra ← N MOD 10 SUMA ← SUMA + Cifra N ← N DIV 10
FIN-MIENTRAS RETORNAR (Suma) FIN-FUNCION
INICIO LEER (M)
FIN
UTP
ESCRIBIR (SumaCifras (M) )
RREDES & COMUNICACIONES
116
4. Crear una función que retorne el factorial de un número entero.
ALGORITMO Ejemplo4 VARIABLES ENTERO M FUNCION Factorial (ENTERO N ) : ENTERO VARIABLES ENTERO Facto, I INICIO Facto ← 1 PARA I ← 1 HASTA N Facto ← Facto * I
FIN-PARA RETORNAR ( Facto ) FIN-FUNCION
INICIO PARA M ← 1 HASTA 5
ESCRIBIR (Factorial ( M ) ) FIN-PARA
FIN 5. Implementar una función que retorne la suma de la mayor y menor cifras contenidas en un número entero.
ALGORITMO Ejemplo5 VARIABLES ENTERO M FUNCION SumaMaxMin (ENTERO N): ENTERO VARIABLES ENTERO Cifra, MayorCifra, MenorCifra INICIO MayorCifra ← 0 : MenorCifra ← 9
MIENTRAS (N 0) HACER Cifra ← N MOD 10
SI (Cifra > MayorCifra) ENTONCES MayorCifra ← Cifra
FIN-SI SI (Cifra < MenorCifra) ENTONCES MenorCifra ← Cifra
FIN-SI N ← N DIV 10 FIN-MIENTRAS RETORNAR (MayorCifra + MenorCifra ) FIN-FUNCION INICIO LEER ( M ) ESCRIBIR (SumaMaxMin (M)) FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
117
6. Implementar una función que retorne la suma de todos los números de 2 cifras compuestos por cifras diferentes pares.
ALGORITMO Ejemplo6 VARIABLES ENTERO M FUNCION SumaPares (ENTERO N): ENTERO VARIABLES ENTERO SUMA, A, B INICIO
SUMA ← 0 PARA N ← 10 HASTA 99 A ← N DIV 10 B ← N MOD 10
SI ( A B ) Y (A MOD 2=0) Y (B MOD 2=0) ENTONCES SUMA ← SUMA + N
FIN-SI FIN-PARA RETORNAR SUMA FIN-FUNCION
INICIO LEER (M) ESCRIBIR (SumaPares (M) )
FIN 7. Implementar una función que retorne la suma de los elementos de la siguiente serie: 1+8+27+64+…+1000
ALGORITMO Ejercicio7 FUNCION SumaSerie (): ENTERO VARIABLES ENTERO SUMA INICIO PARA N ← 1 HASTA 10 SUMA ← SUMA + (N ↑ 3)
FIN-PARA RETORNAR SUMA FIN-FUNCION
INICIO ESCRIBIR (SumaSerie ())
FIN
UTP
RREDES & COMUNICACIONES
118
EJERCICIOS P ROPUESTOS 1. Implemente una funcion que permita calcular el factorial del número ingresado. 2. Implemente una funcion que retorne un mensaje indic ando si es “primo” o “no primo” de un número ingresado. 3. Implemente una funcion que retorne un mensaje indicando si es “PERFECTO” o “NO ES PERFECTO” de un número ingresado por teclado.
4. Implemente una funcion que retorne la suma de todos los números de 3 cifras compuestos por cifras diferentes impares. 5. Elabore una funcion que permita convertir un numero de base 10 a un numero de otra base, para ello ingrese el numero y la base. Ejemplo: Suponga que el número en decimal que se desea transformar a su equivalente en binario es el 11: Por lo tanto, (11)10 = (1011)2 6. Elabore una funcion que permita retornar la suma de la serie, donde N es ingresado por teclado: 1, 4, 9, 16, … N 2
7. Elabore una funcion que retorne la suma de N términos de la siguiente serie: 1 + 1/32 + 1/52 + 1/72 + 1/92+............................ 8. Elabore una funcion que retorne la suma de los N terminos de la siguiente serie: 1 + 1/2 + 2/3 + 3/4 + 4/5+............................
FITT
UTP
View more...
Comments