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
<=
MENOR o IGUAL
=
IGUAL
<>
DIFERENTE
UTP
RREDES & COMUNICACIONES
16
OPERADORES LOGICOS Los operadores lógicos son operadores binarios que permiten combinar los resultados de los operadores relacionales, comprobando que se cumplen las condiciones necesarias.
OPERADOR
SIGNIFICADO
Y
CONJUNCION
O NO
DISYUNCION NEGACION
Observe la tabla
OPERADORES DE ASIGNACION Los operadores de asignación atribuyen a una variable, es decir, depositan en su zona de memoria correspondiente, el resultado de una expresión o el valor de la variable (en realidad, una variable es un caso particular de una expresión). El operador de asignación más utilizado es el operador es . Su forma general es: nombre_variable expresión; Primero se evalúa expresión y el resultado se pone en nombre_variable, sustituyendo cualquier otro valor que hubiera en esa posición de memoria anteriormente.
OPERADOR
SIGNIFICADO
←
ASIGNAR
()
AGRUPAR
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
17
PRIORIDAD DE LOS OPERADORES OPERADOR PRIORIDAD () []
Signos de Agrupación
↑
Potencia
*, /, %
Producto y División
+, -
Suma y Resta
Y
Operador lógico y
O
Operador lógico O
NO
Operador lógico de negación
>,>=,<,<=,=,<>
Operador de relación
EXPRESIONES DEFINICION Es una combinación de distintas variables, constantes, operadores y paréntesis. Tiene un valor concreto que es el resultado de evaluarla de izquierda a derecha. El valor devuelto tras la evaluación de una expresión determina el tipo de la expresión (entera, lógica …)
Ejemplo
UTP
RREDES & COMUNICACIONES
18
Sentencias Las expresiones son ítems elementales de unas entidades que son las sentencias. Si nos fijamos en la expresión anterior, la variable que está a la izquierda del signo (=), el operador de asignación, la expresión aritmética y el carácter (;) constituyen una sentencia. Las sentencias son unidades completas, ejecutables en sí mismas. Ya se verá que muchos tipos de sentencias incorporan expresiones aritméticas, lógicas o generales como componentes de dichas sentencias.
EJERCICIOS P ROPUESTOS DESARROLLE LAS SIGUIENTES EXPRESIONES RETORNANDO SU VALOR
1. (15 + ( 12 * 2 ) / 4 ) + ( 30 MOD 7) * 5 2. (12 < 15) OR (15>= ( 3 * 5 ) ) 3. (15 > 12) Y (65 MOD 3 <=1) OR (10<>2 * 5) 4. 21 + ( 15 + 20 MOD 9 ) DIV 3 5. Sea: a = 10 b = 12 c = 13 d =10 Desarrolle los siguientes Ejercicios (( a > 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 ( 6<>9 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<=3.00) ENTONCES ESCRIBIR (“ATLETA A COMPETIR EN LA OLIMPIADA”) SINO ESCRIBIR (“PREPARARSE MAS”) FIN-SI FIN-SI
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
51
6. Una tienda comercial ofrece un descuento del 3% del valor de compra si el pago se efectúa al contado, en caso el pago sea con tarjeta se le recarga un 5% del valor de compra. Calcular el total a pagar.
ALGORITMO Ejemplo6 VARIABLES REAL: Vcompra, Descuento, Recargo, Total CARÁCTER: TipoPago INICIO LEER (Vcompra, TipoPago) Descuento 0 : Recargo 0 SI (TipoPago = ‘C’ ) ENTONCES
SINO
Descuento Vcompra * 0.03
Recargo Vcompra * 0.05 FIN-SI Total Vcompra – Descuento + Recargo ESCRIBIR (Total)
FIN 7. Ingrese un número entero de 3 cifras y luego visualice un mensaje indicando si el número ingresado es “CAPICUA” o “NO ES CAPICUA”.
ALGORITMICA Ejemplo7 VARIABLES ENTERO: N, A, C INICIO LEER( N ) SI ( N >= 100) Y ( N <= 999 ) ENTONCES A N DIV 100 C ( N MOD 100) MOD 10 SI ( A = C ) ENTONCES ESCRIBIR(“CAPICUA”)
SINO ESCRIBIR(“NO ES CAPICUA”)
FIN-SI FIN-SI
FIN 8. Una tienda comercial por campaña publicitaria esta ofreciendo descuentos por sus diversos articulos, donde lo articulos que cuestan minimo 1000 nuevos soles se le aplicará un descuento del 10% y aquellos que son menores a dicho monto se le aplicará un descuento del 3% del precio. Visualice el descuento y el neto
UTP
RREDES & COMUNICACIONES
52
ALGORITMO Ejemplo8 VARIABLES REAL: Precio, Descuento, Neto INICIO LEER (Precio) Descuento 0 SI (Precio>=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 <= 20) ENTONCES N ← N *20
SINO N←N*N
FIN-SI ESCRIBIR ( N )
FIN 3. Una empresa otorga bonificaciones de su haber básico según la categoría del trabajador; categoría A: 250; categoría B: 200; categoría C: 120; otras categorías 50.
ALGORITMO Ejemplo3 VARIABLES CADENA: Categoria REAL:Bonificacion INICIO LEER (Categoria) SI (Categoria = “A”) ENTONCES Bonificacion ← 250 SINO SI (Categoria = “B”) ENTONCES Bonificacion ← 200 SINO SI (Categoria = “C”) ENTONCES Bonificacion ← 120
SINO Bonificacion ← 50 FIN-SI ESCRIBIR ( Bonificacion )
FIN
UTP
RREDES & COMUNICACIONES
58
4. Se van a publicar la nota de un alumno, dependiendo de su nota se ubicará en una de las siguientes categorías:
PROMEDIO CATEGORÍA 20 18 – Excelente 17 15 – Bueno 14 11 – Regular 0 -10 Malo ALGORITMO Ejemplo4 VARIABLES CADENA: Categoria ENTERO: nota INICIO LEER (nota) SI (nota<=10) ENTONCES Categoria ← “Malo”
SINO SI (nota<=14) ENTONCES Categoria ← “Regular”
SINO SI (nota<=17) ENTONCES Categoria ← “Bueno”
SINO Categoria ← “Excelente” FIN-SI
FIN
ESCRIBIR (Categoria)
5) Una persona está a punto de ver televisión, mostrar si según su edad esta apto para ver el programa televisivo.
EDAD 18 -màs 14 -17 0 –13
CATEGORÍA Contenido para adultos Mayores de 14 apt
ALGORITMO Ejemplo4 VARIABLES ENTERO: edad INICIO LEER (edad SI (nota<=13) ENTONCES ESCRIBIR (“apt”)
SINO SI (nota<=17) ENTONCES ESCRIBIR (“Mayores de 14”)
SINO ESCRIBIR (“Contenido para Adultos”)
FIN-SI
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
59
EJERCICIOS P ROPUESTOS 1. En una oficina de empleos categorizar a los postulantes en función al sexo y la edad de acuerdo a lo siguiente: Si la persona es de sexo femenino: categoría FA si tiene menos de 20 años y FB caso contrario. Si la persona es de sexo masculino: categoría MA si tiene menos de 30 años y MB caso contrario 2. Diseñe un programa que ingrese el sueldo de un trabajador y calcule el aumento que obtendrá de la siguiente tabla
SUELDO Menos 2000 2000<=sueldo<=3000 Sueldo>3000
AUMENTO 20% 13% 9%
3. Diseñe un programa que lea la temperatura de un día e imprima el tipo de clima de acuerdo a la siguiente tabla
Temperatura Promedio (TP) TP<=10 10
Tipo de Clima Frio Nublado Caluroso Trópico
4. Ingrese un numero de 4 cifras, visualizar un mensaje si el numero es o no capicúa. 5. Ingrese 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 6. Escriba un programa que lea un número desde el teclado entre 1 y 12 e imprima el nombre del mes del año correspondiente. (Enero, Febrero,...etc). 7. Ingrese un número de hasta tres cifras, visualizar el número en romanos 8. La Universidad UTP ha categorizado las matriculas de acuerdo a la facultad que va a estudiar
Facultad Ing de Sistemas Derecho Ing Naviera Ing Pesquera Contabilidad
UTP
Importe de Matricula 350 300 300 310 280
Mensualidad 590 550 500 550 490
RREDES & COMUNICACIONES
60
Ingrese por teclado el nmbre del Postulando y la facultad que va a estudiar, visualice: El importe de la matricula El monto de la mensualidad El monto total, que es la suma de la matricula y la mensualidad 9. Un cliente, por campaña navidena, desea comprar panteones, donde según su marca tiene un precio
Marca del Paneton D’onofrio
Motta Todinno Naval Santa Claus Doña Pepa
Precio Unitario 20 19 18 9 11 10
Si el cliente desea comprar más de 20 panetones de una misma marca, se le aplicará un descuento del 10% sobre el monto de la compra, obteniendo asi el neto, que es la diferencia entre el monto y el descuento. Ingrese por teclado el nombre del cliente, la marca del paneton y la cantidad de panetones a comprar; visualice el precio unitario del paneton, el monto de la compra, el descuento y el neto a pagar. 10. Ingreseelpor teclado la distancia que recorrio un atleta, de acuerdo a la distancia, atleta esta clasificado: Distancia en metros Clasificacion 100 Corta 1500 Milla 3000 3000 metros 20 kms Semi Fondo 40 kms Fondista
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
61
Capítulo
4
ESTRUCTURAS CONDICIONALES ANIDADAS OBJETIVOS ESPECÍFICOS Defina el propósito de las estructuras condicionales anidadas Realiza la solución de diversos casos prácticos aplicando estructuras condicionales
CONTENIDOS Estructura condicional anidada Definición Sintaxis Desarrollo Practico
UTP
RREDES & COMUNICACIONES
62
ESTRUCTURA CONDICIONAL ANIDADA DEFINICION Esta estructura se emplea cuando se requiere condicionar dentro de otra condicional, es decir, cuando dentro de una condicional simple o doble existe otra condicional simple o doble.
SINTAXIS PSEUCODIGO
Donde: Si la condición 1 es verdadera, se evaluará la condición 2. Si la condición 2 es verdadera, ejecuta la sentencia 1; si no es o verdadera, ejecuta la sentencia 2. la condición 3. Si la condición 1 no es verdadera, evaluará Si la condición 3 es verdadera, ejecuta la sentencia 3; si no es o verdadera, ejecuta la sentencia 4.
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
63
EJERCICIOS RESUELTOS 1. Ingrese un número entre 1 y 3, luego visualice su equivalente en letras.
ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO LEER( N ) SI( N = 1 )ENTONCES
ESCRIBIR(“UNO”)
SINO SI( N = 2 )ENTONCES ESCRIBIR(“DOS”)
SINO SI( N = 3 )ENTONCES ESCRIBIR(“TRES”)
SINO ESCRIBIR(“NUMERO NO VALIDO”)
FIN-SI FIN-SI FIN-SI
FIN 2. Ingrese el puntaje obtenido por un postulante y luego visualice a que carrera ingreso, según la siguiente tabla:
SI NO INGRESO, VISUALIZAR CUANTOS PUNTOS LE FALTO ALGORITMO VARIABLES Ejemplo2 ENTERO Puntaje INICIO LEER( Puntaje ) SI (Puntaje >= 70) Y (Puntaje < 90) ENTONCES ESCRIBIR(“Contabilidad”)
SINO SI (Puntaje >= 90) Y (Puntaje < 100) ENTONCES
UTP
RREDES & COMUNICACIONES
64
ESCRIBIR(“Administración”)
SINO SI (Puntaje >= 100) Y (Puntaje < 120) ENTONCES ESCRIBIR(“Derecho”)
SINO SI (Puntaje >= 120) Y (Puntaje <= 150) ENTONCES ESCRIBIR(“INGENIERIA”)
SINO ESCRIBIR(“LE FALTO:”, 70-Puntaje)
FIN-SI FIN-SI
FIN-SI
FIN-SI
FIN 3. Ingrese el ciclo y turno a estudiar, luego calcule el total a pagar según la siguiente tabla:
CICLO
TURNO
PENSION
1
M
850
1
N
800
2
M
750
2
N
700
3 - 10
M
650
3 - 10
N
600
ALGORITMO Ejemplo3 VARIABLES REAL Pension ENTERO Ciclo CARÁCTER Turno INICIO LEER( Ciclo, Turno ) SI (Ciclo = 1) ENTONCES SI (Turno = ‘M’) ENTONCES Pension ← 850
SINO
Pension ← 800
FIN-SI SINO SI (Ciclo = 2) ENTONCES SI (Turno = ‘M’) ENTONCES Pension ← 750
SINO
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
65
Pension ← 700
FIN-SI SINO SI (Turno = ‘M’) ENTONCES Pension ← 650
SINO Pension ← 600
FIN-SI FIN-SI FIN-SI
FIN 4. Ingrese el consumo de agua de un mes y calcule el visualice el total a pagar, según la siguiente tabla:
Consumo 50 >[ 1 –
Tarifa 0.8
100 [ 50> –
1.5
[150 100>–
1.8
[ 150 a mas…
2.0
ALGORITMO Ejemplo4 VARIABLES REAL: Consumo, Tarifa, Monto INICIO LEER (Consumo) SI (Consumo<50) ENTONCES Tarifa 0.8 SINO SI (Consumo >= 50) Y (Consumo < 100) ENTONCES Tarifa 1.5 SINO SI (Consumo >= 100) Y (Consumo < 150) ENTONCES Tarifa 1.8 SINO FIN-SI Tarifa
2.0
FIN-SI FIN-SI Monto Tarifa * Consumo ESCRIBIR (Tarifa, Monto)
FIN
UTP
RREDES & COMUNICACIONES
66
5. 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.
ALGORITMO Ejemplo5 VARIABLES REAL: básico, bonificación, monto CADENA: Categoria INICIO LEER (Categoria) SI (Categoria =”Empleado”) ENTONCES basico 600 bonificacion 600 SINO SI (Categoria = ”Obrero”) ENTONCES basico 550 bonificacion 190 SINO SI (Categoria “Ejecutivo”) ENTONCES basico 1500 bonificacion 500 SINO basico 200 bonificacion 50 FIN-SI FIN-SI FIN-SI Monto básico + bonificacion ESCRIBIR (básico, bonificacion, Monto) FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
67
EJERCICIOS P ROPUESTOS 1. Ingrese el estado civil y numero de hijos, luego calcule la bonificación a pagar a un trabajador según la siguiente tabla :
Estado Civil
Hijos
Bonificación (% Haber Básico)
S
0
2.50 %
S
>0
2.75 %
C
0
2.80 %
C
>0
3.00 %
V
0
2.50 %
V
>0
2.75 %
D
0
2.50 %
D
>0
3.00 %
2. Ingrese número entre 1 y 99, luego visualice su equivalente en romanos. 3. Calcular el total a pagar por una compra, sabiendo que existe un recargo según tipo de tarjeta de crédito con la que se paga la compra.
UTP
Tipo de Tarjeta
Recargo
Visa Electron ( E )
0%
VISA ( V )
5%
MasterCard ( M )
7%
RREDES & COMUNICACIONES
68
4. Calcular el total a pagar por su consumo telefónico, sabiendo que su renta básica es de S/. 50 (60 minutos libres), y que el cobro por minutos adicionales se factura según la siguiente tabla.
Minutos Consumidos
Costo x Minuto
<100 60 –]
0.007
<100 200 –]
0.005
<200 400 –]
0.004
<400 500 –]
0.003
<500 – Más…
0.002
5. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de interés según la siguiente tabla : Plan de Cuenta
Tasa de Interés
Plan “A”
0.07 %
1000
Plan “B”
0.08 %
1500
Plan “C”
0.09 %
2000
Plan “X”
0.10 %
2500
Monto Mínimo
Elabore un algoritmo donde ingrese el Monto de apertura, luego calcule y visualice el interés generado, el plan al cual pertenece y el nuevo saldo. 6. Ingrese por teclado un números del 1 al 999, exprese el numero en letras, por ejemplo 125 un ciento venticinco 7. Un instituto ofrece cursos de programación, el costo de los cursos es de la siguiente manera:
Básico
FITT
Intermedio Avanzado
UTP
FUNDAMENTOS
DE PROGRAMACION
Profesor 50 Alumno 40 Externo 70
69
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. 8. Se desea calcular el total a pagar por consumo de energía eléctrica, el pago se realiza según la siguiente tabla:
Consumo (Kw)
Costo por Kw
[ 100 150–>
0.65
[ 150 250–>
0.85
[ 250 350–>
1.05
[ 350 – Más… >
1.25
NOTA: El pago de consumo mínimo es de S/. 10 Soles.
UTP
RREDES & COMUNICACIONES
70
Capítulo
5
ESTRUCTURAS SELECTIVAS OBJETIVOS ESPECÍFICOS Defina el propósito de las estructuras selectivas Realiza la solución de diversos casos prácticos aplicando estructuras selectivas
CONTENIDOS Estructura Selectiva Definición Sintaxis Desarrollo Practico
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
71
ESTRUCTURA SELECTIVA DEFINICION Cuando existen más de dos elecciones (alternativas) posibles, es cuando se presenta el caso de alternativas múltiples. Si el número de alternativas es grande puede plantear serios problemas de escritura del algoritmo y naturalmente de legibilidad. La estructura condicional selectiva evaluará una expresión que podrá tomar n valores distintos 1,2,3,4,..n . Según que elija uno de estos valores en la condición, se realizará una de las “n acciones”, o lo que e s igual, el flujo del algoritmo seguirá un determinado camino entre los “n” posibles.
SINTAXIS DIAGRAMA DE FLUJO
UTP
RREDES & COMUNICACIONES
72
PSEUDOCODIGO
EJERCICIOS RESUELTOS 1. Ingresar un número entre 1 y 5, y luego visualizar su equivalente en letras.
ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO LEER( N ) CASO ( N ) SEA 1: ESCRIBIR (“UNO”) 2: ESCRIBIR (“DOS”) 3: 4: ESCRIBIR ESCRIBIR (“TRES”) (“CUATRO”) 5: ESCRIBIR (“CINCO”) OTRO CASO: ESCRIBIR (“FUERA DE RANGO”) FIN-CASO
FIN 2. Una empresa otorga bonificaciones de su haber básico según la categoría del trabajador; categoría A: 250; categoría B: 200; categoría C: 120; otras categorías 50.
ALGORITMO Ejemplo2 VARIABLES CADENA: Categoria REAL: Bonificacion INICIO LEER (Categoria) CASO (Categoria) SEA “A”: Bonificacion ← 250 “B”: Bonificacion ← 200 “C”: Bonificacion ← 120 OTRO CASO: Bonificacion ← 50 FIN-CASO ESCRIBIR (Bonificacion) FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
73
3. Ingrese 2 números y una operación matemática realizar (+,-,*,/, DIV, EXP), luego muestre el resultado de operar los 2 números.
ALGORITMO Ejemplo2 VARIABLES ENTERO: A, B, Resultado CADENA: Operador INICIO LEER (A, B, Operador) CASO (Operador) SEA
‘+’ : Resultado ← A + B ‘-’ : Resultado ← A – B ‘*’ : Resultado ← A * B ‘DIV’: Resultado ← A \ B ‘EXP’: Resultado ← EXP(A,B) ‘/’ : SI( B <> 0 )ENTONCES Resultado ← A DIV B
SINO Resultado ← 0
FIN-SI FIN-CASO ESCRIBIR (Resultado)
FIN 4. Escriba un programa que lea un número desde el teclado entre 1 y 7 e imprima el nombre del día de semana correspondiente. ( lunes, martes,...etc).
ALGORITMO Ejemplo4 VARIABLES CADENA: Semama ENTERO: dia INICIO LEER (dia) CASO (dia) SEA 1: Semana ← “Lunes” 2: Semana ← “Martes” 3: Semana ← “Miercoles” 4: Semana ← “Jueves” 5: Semana ← “Viernes” 6: 7: Semana Semana ← ← “Sabado” “Domingo” OTRO CASO: Semana ← “Error” FIN -CASO ESCRIBIR (Semana)
FIN
UTP
RREDES & COMUNICACIONES
74
5. Calcular el total a pagar por una compra, sabiendo que existe un recargo según tipo de tarjeta de crédito con la que se paga la compra.
Tipo de Tarjeta
Recargo
Visa Electron ( E )
0%
VISA ( V )
5%
MasterCard ( M )
7%
ALGORITMO Ejemplo5 VARIABLES REAL: monto. Recargo, total CADENA: tarjeta INICIO LEER (tarjeta, monto) CASO (tarjeta) SEA “E”: recargo ← 0 “V”: recargo ← 0.05*monto “M”: recargo ← 0.07* monto
FIN –CASO Total monto + recargo
FIN
ESCRIBIR (total)
6. Diseñe un programa que calcule el costo de un paciente, el costo depende del tipo de enfermedad. De acuerdo a la siguiente tabla: TIPO ENFERMEDAD 1 2 3
COSTO 122 150 200
ALGORITMO Ejemplo6 VARIABLES REAL: costo CARACTER: tipo INICIO
LEER (tipo) CASO (tipo) SEA “1”: costo ← 122 “2”: costo ← 150 “3”: costo ← 200
FIN –CASO ESCRIBIR (costo)
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
75
EJERCICIOS P ROPUESTOS 1. Escriba un programa que lea un número desde el teclado entre 1 y 12 e imprima el nombre del mes del año correspondiente. (Enero, Febrero,...etc). 2. Ingrese un número de hasta tres cifras, visualizar el número en romanos, por ejemplo: 255 CCLV 3. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de interés según la siguiente tabla:
Plan de Cuenta
Tasa de Interés
Plan “A”
0.07 %
1000
Plan “B”
0.08 %
1500
Plan “C”
0.09 %
2000
Plan “X”
0.10 %
2500
Monto Mínimo
Elabore un algoritmo donde ingrese el Monto de apertura, luego calcule y visualice el interés generado, el plan al cual pertenece y el nuevo saldo. 4. Ingrese el estado civil y número de hijos, luego calcule la bonificación a pagar a un trabajador según la siguiente tabla:
Estado Civil
Hijos
S S C C V
0 >0 0 >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 <= 3 ) HACER ESCRIBIR( N ) N←N+1
FIN-MIENTRAS
FIN 2. Imprimir los 10 primeros números naturales, calcule y visualice la suma de los 10 números.
ALGORITMO Ejemplo2 VARIABLES ENTERO N, SUMA INICIO N ←1←0 SUMA
MIENTRAS (N <= 10) HACER SUMA ← SUMA + N N←N+1
Acumulador Contador
FIN-MIENTRAS ESCRIBIR (“LA SUMA ES:”, SUMA)
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
91
3. Calcule y visualice la suma de todos los números de 2 cifras positivos.
ALGORITMO Ejemplo3 VARIABLES ENTERO N, SUMA INICIO N ← 10 SUMA ← 0
MIENTRAS (N <= 99) HACER SUMA ← SUMA + N N←N+1
FIN-MIENTRAS ESCRIBIR (“LA SUMA ES:”, SUMA)
FIN 4. Calcule y visualice los divisores de un número entero.
ALGORITMO Ejemplo4 VARIABLES ENTERO N, D, Resto INICIO LEER (N) D←1
MIENTRAS (D <= N) HACER Resto ← N MOD D
SI (Resto = 0) ENTONCES ESCRIBIR (D) FIN-SI D←D+1
FIN-MIENTRAS
FIN 5. Calcular y visualizar la suma de los elementos de la siguiente serie : S ← 1 + 4 + 9 + 16 + 25 + … + 100
ALGORITMO Ejemplo5 VARIABLES ENTERO N, SUMA INICIO N ←1 MIENTRAS ( N <= 10 ) HACER SUMA ← SUMA + ( N ↑ 2 ) N←N+1
FIN-MIENTRAS ESCRIBIR (“LA SUMA ES:”, SUMA)
FIN
UTP
RREDES & COMUNICACIONES
92
6. Ingrese un número entero y luego visualice el número de cifras que lo componen.
ALGORITMO Ejemplo6 VARIABLES ENTERO N, Cifras INICIO LEER (N) Cifras ← 0
MIENTRAS (N <> 0) HACER Cifras ← Cifras + 1 N ← N DIV 10
FIN
FIN-MIENTRAS ESCRIBIR (“Numero Cifras:”, Cifras)
7. Diseñe un programa que reciba un 5 números enteros de 2 cifras y muestra la suma de ellos y cantidad de pares e impares
ALGORITMO Ejemplo7 VARIABLES ENTERO N, SUMA, CPARES, CIMPARES, i INICIO CPARES 0 CIMPARES 0 SUMA 0 I1 MIENTRAS (i <=5) HACER LEER (N) SI (N>=10 Y N<=99) ENTONCES SUMA SUMA + N SI (N MOD 2 = 0) ENTONCES CPARES CPARES + 1 SINO CIMPARES CIMPARES + 1 FIN SI ii+1 FIN MIENTRAS ESCRIBIR (SUMA, CPARES, CIMPARES)
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
93
8. Diseñe un programa donde ingrese un numero, visualizar la suma de sus cifras
ALGORITMO Ejemplo8 VARIABLES ENTERO N, SUMA, RESTO INICIO SUMA 0 LEER (N) MIENTRAS (N <>0) HACER RESTO N MOD 10 SUMA SUMA + RESTO N N DIV 10 FIN MIENTRAS ESCRIBIR (SUMA)
FIN 9. Diseñe un programa donde ingrese un numero, visualizar un mensaje si es numero primo o compuesto.
ALGORITMO Ejemplo9 VARIABLES ENTERO N, CONTADOR, i INICIO CONTADOR 0 LEER (N) i2 MIENTRAS (i < N) HACER SI (N MOD N = 0) ENTONCES CONTADOR CONTADOR + 1 FIN SI ii+1 FIN MIENTRAS SI (i = 0) ENTONCES ESCRIBIR (“NUMERO PRIMO”) SINO ESCRIBIR (“NUMERO COMPUESTO”) FIN SI
FIN
UTP
RREDES & COMUNICACIONES
94
EJERCICIOS P ROPUESTOS 1. Calcule y visualice la suma de los todos los números impares de 3 cifras. 2. Calcular y visualizar el valor de la siguiente serie: S ← 2 + 4 + 6 + 8 + … + 98
3. Generar y visualizar la siguiente serie: S ← 1+2+3/2+4/3+5/4+…+10/9
4. Ingrese un número entero y calcule la suma de las cifras del número. 5. Ingrese un número entero y luego calcule la suma de cifras pares e impares que están contenidas en el número ingresado. 6. Ingrese un número entero y calcule la mayor y menor cifra contenidas en el número ingresado. 7. Ingrese un número entero y luego forme un 2do número con las cifras del número ingresado en forma inversa. 8. Ingrese un número entero y luego obtenga su equivalente en base 5. 9. Diseñe un que lealaNombre edad de 5 alumnos edad promedio asíprograma como también mayor yedad, considere quey calcule la edadla debe encontrarse entre 18 a 70 años. 10. Diseñe un programa que imprima lo siguiente: % %% %%% %%%% %%%%% %%%%%% %%%%%%% 11. Escribe un algoritmo que lea un número natural N y dibuje un triángulo de asteriscos con base y altura N. Por ejemplo si N=5 debería dibujarse: * ** *** **** *****
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
95
12. 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+............................ 13. Calcular la suma de todos los números primos existentes entre 1 y 1000. 14. Calcular la suma de todos los números de 3 cifras compuestos por cifras diferentes impares. 15. Visualizar la siguiente serie de números: +1-2+3-4+5-6+7-8+…+N
UTP
RREDES & COMUNICACIONES
96
Capitulo
3
ESTRUCTURAS REPETITIV AS REPETIR - HASTA 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 REPETIR - HASTA Definición Sintaxis Desarrollo de ejercicios de aplicación
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
97
ESTRUCTURA REPETIR - HASTA DEFINICION Se llama Repetir a la estructura algorítmica que se ejecuta un número definido de veces hasta que la condición se torna verdadera
CARACTERISTICA Esta es una estructura similar en algunas características, a la anterior. Repite un proceso una cantidad de veces, pero a diferencia del Mientras Que, el Repita-Hasta lo hace hasta que la condición se cumple y no mientras, como en el Mientras Que. Por otra parte, esta estructura permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso, mientras que en el Mientras Que puede ser que nunca llegue a entrar si la condición no se cumple desde un principio.
SINTAXIS DIAGRAMA DE FLUJO
Se cumple hasta que condicion sea Verdadera, sino repite el ciclo
PSEUDOCODIGO
UTP
RREDES & COMUNICACIONES
98
FALSO
REPETIR : : HASTA (Expresion)
Instrucciones y/o Sentencias
EJERCICIOS RESUELTOS 1. Visualizar los 5 primeros números naturales.
ALGORITMO Ejemplo1 VARIABLES ENTERO INICIO
N
N ←1
REPETIR ESCRIBIR (N) N←N+1
HASTA (N > 5)
FIN 2. Visualizar todos los números pares de 2 cifras.
ALGORITMO Ejemplo2 VARIABLES ENTERO INICIO
N
N ← 10
REPETIR ESCRIBIR (N) N←N+2
HASTA (N > 98)
FIN 3. Generar la siguiente serie: 1, 4, 9, 16, 25, …, 100
ALGORITMO Ejemplo3 VARIABLES INICIO N ←1
REPETIR ESCRIBIR ( N ↑ 2 ) N←N+1
HASTA (N > 10)
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
99
4. Ingrese un número entero y luego visualice todos sus divisores.
ALGORITMO Ejemplo4 VARIABLES ENTERO N, Divisor, Resto INICIO LEER (N) Divisor ← 1
REPETIR Resto ← N MOD Divisor
SI (Resto = 0) ENTONCES ESCRIBIR (Divisor) FIN-SI Divisor ← Divisor + 1
HASTA (Divisor > N)
FIN 5. Ingrese un número y luego visualice un mensaje indicando si el número “ES CAPICUA” o “NO ES CAPICUA”.
ALGORITMO Ejemplo5 VARIABLES ENTERO INICIO LEER (N)
N, M, INV, Cifra
M ←N INV ← 0
REPETIR Cifra ← M MOD 10 INV ← (INV * 10) + Cifra M ← M DIV 10
HASTA (M = 0) SI (N = INV) ENTONCES ESCRIBIR (“ES CAPICUA”) SINO ESCRIBIR (“NO ES CAPICUA”) FIN-SI
FIN
UTP
RREDES & COMUNICACIONES
100
EJERCICIOS PROPUESTOS 1. Diseñe un programa que imprima lo siguiente % %% %%% %%%% %%%%% %%%%%% %%%%%%% 2. Diseñe un programa que lea Nombre y edad de 5 alumnos y calcule la edad promedio así como también la mayor edad, considere que la edad debe encontrarse entre 18 a 70 años. 3. Diseñe un programa que permita calcular la Serie Fibonaci: 0, 1, 1, 2, 3, 5, 8, ….
4. Diseñe un programa que imprima N términos de la siguiente serie: 3, 8, 15, 24………
5. Diseñe un programa que halle los 3 primeros números perfectos 6. 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+............................ 7. Diseñe un programa donde visualice los números primos comprendidos entre el 1 al 100. 8. Diseñe un programa donde ingrese un numero, visualice la cantidad de cifras ceros, pares e impares que tiene el numero ingresado. 9. Escriba un pequeño programa para imprimir los primeros cien números naturales haciendo una pausa cada vez que se llene la pantalla e indicando con un mensaje adecuado que al oprimir una tecla la lista continuará. 10. Escriba un programa que imprima los primeros n números naturales pares. Valide el valor de n y emita un mensaje de error si no es natural. 11. Escribe un algoritmo que lea un número natural N y dibuje un triángulo de asteriscos con base y altura N. Por ejemplo si N=5 debería dibujarse: * ** *** **** *****
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
101
12. Escriba un programa para calcular e imprimir todos los números enteros comprendidos entre 100 y 999 tales que sean iguales a la suma de los cubos de sus dígitos, es decir, los números de la forma abc, con: abc = a3 + b3 + c3 13. Ingrese un número entero y luego calcule la suma de cifras pares e impares que están contenidas en el número ingresado. 14. Ingrese un número entero y calcule la mayor y menor cifra contenidas en el número ingresado. 15. Ingrese un número entero y luego obtenga su equivalente en base 5.
UTP
RREDES & COMUNICACIONES
102
UNIDAD V Sub Programas
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
103
Capítulo
1
SUBPROGRAMAS USO DEPROCEDIMIENT OS OBJETIVOS ESPECÍFICOS . Defina el propósito de los subprogramas. Realice operaciones que permitamplementar i subprogramas
CONTENIDOS Programación estructurada, subprogramas Tipos de subprogramas, funciones yprocedimientos Procedimientos, declaración, invocar un procedimientos, paso de parámetros
UTP
RREDES & COMUNICACIONES
104
SUBPROGRAMAS INTRODUCCION La programación modular es una de las técnicas fundamentales de la programación. Se apoya en el diseño descendente y en la filosofía de “divide y vencerás”, es
decir se trata de dividir el problema dado, en problemas más simples en que cada uno de los cuales lo implementaremos en undemódulo independiente. La programación estructurada permite la escritura programas fáciles de leer y modificar. En esta programación, el flujo lógico se gobierna por las estructuras de control básicas vista hasta hoy: secuenciales, repetitivas y de selección. Cada subprograma tiene asociado un pseudocódigo de alto nivel compuesto por acciones no primitivas. Cuando una de estas acciones no primitivas se repite en varios puntos del algoritmo es interesante darle un nombre y reutilizarla. Estas acciones con nombre se denominan subprogramas, pudiendo ser, a su vez, funciones y subrutinas.
DEFINICION Los subprogramas permiten descomponer un problema en yun conjunto problemas independientes entre sí, más sencillos de resolver que puedende ser tratados separadamente unos de otros. Además se pueden probar los subprogramas de manera independiente, depurándose sus errores antes de su inclusión en el programa principal y almacenarse para su posterior utilización cuantas veces se precise.
CARACTERISTICAS DE LOS SUBPROGRAMAS 1. DIVISION EN MODULOS Funcionalidad clara y bien definida Aislados. Sin dependencias con otros m´odulos Entrada/Salida simple y bien definida 2. ABSTRACCION Nos centramos en la FUNCIONALIDAD de los m´odulos Que problema resuelve Que datos necesita Que datos produce Bajo que condiciones se ejecuta NO importa como se resuelve el problema 3. ENCAPSULAMIENTO
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
105
Si el metodo para solucionar una tarea cambia, el aislamiento evita que dicho cambio influya en las otras tareas. El aislamiento de los modulos no puede ser total. Para que pueda colaborar con otros modulos, es necesario conocer: Que problema resuelve El intercambio de informacion Bajo que condiciones se produce
VENTAJAS DE LOS SUBPROGRAMAS Independientes, el desarrollo de un programa se puede efectuar con mayor facilidad. Se podrá modificar un módulo sin afectar a los demás Los subprogramas sólo se escribirán una vez, aunque se necesiten en distintas ocasiones a lo largo del algoritmo. Permite buscar los errores en un programa ya que éstos se pueden aislar fácilmente.
ALCANCE DE LAS VARIABLES: DECLARACIONES LOCALES Y GLOBALES Variables locales son aquellas cuyo ambito de visibilidad coincide exclusivamente con el cuerpo del algoritmo en el que han sido declaradas. Variables globales son aquellas cuyo ambito de visibilidad se extiende al cuerpo de varios algoritmos. Se denonima efecto lateral al intercambio de informacion entre dos algoritmos realizado a traves de variables globales (es decir, sin utilizar el interfaz). En nuestra metodologıa de programacion, la utilizacion de variables
globales y efectos laterales esta prohibida.
CLASIFICACION DE LOS SUBPROGRAMAS Los subprogramas se clasifican en: Procedimientos o Rutinas Funciones
UTP
RREDES & COMUNICACIONES
106
PROCEDIMIENTOS DEFINICION Un procedimiento es un subprograma o un subalgoritmo que ejecuta una determinada tarea, pero que tras ejecutar esa tarea no tienen ningún valor asociado a su nombre como en las funciones, sino que si devuelve información, lo hace a través de parámetros. Al llamar a un procedimiento, se le cede el control, comienza a ejecutarse y cuando termina devuelve el control a la siguiente instrucción a la de llamada Un procedimiento puede tener sus propias variables que se declaran en la sección var del propio procedimiento. Estas se llaman variables locales. Así, las variables locales para un procedimiento sólo se pueden usar en el cuerpo del procedimiento y no en el cuerpo principal del programa.
INVOCAR UN PROCEDIMIENTO Para llamar a un procedimiento se hace uso del nombre del mismo, opcionalmente se puede pasar valores si es que el procedimiento implementa parámetros. Ejemplo: Implemente un procedimiento que permita visualizar la suma de 2 números enteros.
ALGORITMO Ejemplo VARIABLES ENTERO A, B PROCEDIMIENTO SUMA( ) INICIO ESCRIBIR( A + B ) FIN-PROCEDIMIENTO
Definición de variables publicas
Definición de l procedimiento Suma()
INICIO FIN
LEER( A, B ) SUMA( )
Ejecutar el procedimiento Suma ()
Para ejecutar un procedimiento se le puede incluir parámetros. El paso de valores a los parámetros de un procedimiento se puede hacer por valor y/o referencia.
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
107
Ejemplo: Implemente un procedimiento que permita visualizar la suma de 2 números enteros (utilice parámetros)
ALGORITMO Ejemplo VARIABLES ENTERO A, B PROCEDIMIENTO SUMA ( ENTERO: M, N) INICIO ESCRIBIR ( M +N ) FIN-PROCEDIMIENTO
INICIO
Definición de variables publicas
Definición de l procedimiento Suma() donde se definen sus parámetros M y N
LEER (A, B) SUMA (A, B)
FIN
Ejecutar el procedimiento Suma enviando como parámetros el valor de A y B.
PARAMETROS Es un valores tipo especial variables un procedimiento a los que pueden pasar desde de el exterior delen procedimiento. Se declaran en lasecabecera del procedimiento. Los parámetros se clasifican en: Por Valor Por Referencia
Parámetros por Valor Son los parámetros que pueden recibir valores pero que no pueden devolverlos. Es una variable global que se conecta con una variable local mediante el envío de su valor, después de lo cual ya no hay relación. Lo que le sucede a la variable local no afectará a la global.
Parámetros por Referencia Son los que pueden recibir y devolver valores. Son variables globales que se conectan con una local a través de su contenido; al establecerse dicha conexión las variables se convierten en sinónimos, lo que afecte a la variable local le sucederá a la variable global.
UTP
RREDES & COMUNICACIONES
108
ESTRUCTURA DE UN PROCEDIMIENTO Opcional
PROCEDIMIENTO Nombre(Lista_Parametros) VAR : INICIO
: :
Instrucciones y/o Sentencias
FIN-PROCEDIMIENTO EJERCICIOS RESUELTOS 1. Implementar un procedimiento que permita visualizar un texto un número determinado de veces. N, variable Global
ALGORITMO Ejemplo1 VARIABLES ENTERO N PROCEDIMIENTO Imprime (CADENA Texto, ENTERO Numero) VARIABLES ENTERO I Procedimiento INICIO PARA I ← 1 HASTA Numero
ESCRIBIR (Texto) FIN-PARA FIN-PROCEDIMIENTO
imprime, con la declaracion de parametros
INICIO
FIN
FITT
LEER (N) Imprime (“HOLA”, N) Imprime (“CETIS”, 20) Imprime (“UTP”, 50)
UTP
FUNDAMENTOS
DE PROGRAMACION
109
2. Implementar un procedimiento que imprima el mayor valor de 2 números enteros.
ALGORITMO Ejemplo2 VARIABLES ENTERO A, B PROCEDIMIENTO ImprimeMayor (ENTERO M, ENTERO N) INICIO SI ( M > N )ENTONCES SINO
ESCRIBIR (M)
ESCRIBIR (N) FIN-SI FIN-PROCEDIMIENTO
INICIO LEER (A, B) ImprimeMayor (A, B)
FIN 3. Implementar un procedimiento que visualice los divisores de un número entero.
ALGORITMO Ejemplo3 VARIABLES ENTERO M PROCEDIMIENTO ImprimeDivisores (ENTERO N) VARIABLES ENTERO I INICIO PARA I ← 1 HASTA N
SI (N MOD I = 0) ENTONCES ESCRIBIR (I) FIN-SI FIN-PARA FIN-PROCEDIMIENTO
INICIO LEER (M)
FIN
UTP
ImprimeDivisores (M)
RREDES & COMUNICACIONES
110
4. Implementar un procedimiento que permita calcular y visualizar la suma de todos los números menores a un número entero
ALGORITMO Ejemplo4 VARIABLES ENTERO M PROCEDIMIENTO ImprimeSumaMenores (ENTERO N) VARIABLES ENTERO SUMA, I INICIO SUMA ← 0 PARA I ← 1 HASTA N-1 SUMA ← SUMA + I
FIN-PARA ESCRIBIR (SUMA) FIN-PROCEDIMIENTO
INICIO LEER (M) ImprimeSumaMenores (M)
FIN 5. Implemente un procedimiento que permita calcula la suma de las de las cifras de un numero ingresado.
ALGORITMO Ejemplo5 VARIABLES ENTERO M PROCEDIMIENTO ImprimeSumaCifras (ENTERO N) VARIABLES ENTERO SUMA, CIFRA INICIO SUMA ← 0
MIENTRAS (N<>0) HACER CIFRA N MOD 10 SUMA ← SUMA + CIFRA N N DIV 10 FIN-MIENTRAS ESCRIBIR (SUMA) FIN-PROCEDIMIENTO
INICIO LEER (M) ImprimeSumaCifras (M)
FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
111
6. Implementar un procedimiento que permita calcular y visualizar el menor de tres numeros ingresados
ALGORITMO Ejemplo6 VARIABLES ENTERO N1, N2, N3 PROCEDIMIENTO ImprimeMenor (ENTERO A, ENTERO B, ENTERO C) VARIABLES ENTERO MENOR INICIO MENOR A SI (B < MENOR) ENTONCES MENOR ← B FIN-SI SI (C < MENOR) ENTONCES MENOR C FIN-SI ESCRIBIR (MENOR) FIN-PROCEDIMIENTO
INICIO LEER (N1, N2, N3) ImprimeMenor (N1, N2, N3)
FIN 7. Implemente un procedimiento que permita calcular y visualizar el número invertidos de un número ingresado.
ALGORITMO Ejemplo7 VARIABLES ENTERO M PROCEDIMIENTO ImprimeInverso (ENTERO N) VARIABLES ENTERO INVERSO, CIFRA INICIO INVERSO ← 0 MIENTRAS (N<>0) HACER CIFRA N MOD 10 INVERSO ← 10 * INVERSO + CIFRA N N DIV 10 FIN-MIENTRAS ESCRIBIR (INVERSO) FIN-PROCEDIMIENTO
INICIO LEER (M) ImprimeInverso (M)
FIN
UTP
RREDES & COMUNICACIONES
112
EJERCICIOS PROPUESTOS 1. Diseñe un procedimiento que imprima lo siguiente % %% %%% %%%% %%%%% %%%%%% %%%%%%% 2. Diseñe un procedimiento que permita calcular la Serie Fibonaci: 0, 1, 1, 2, 3, 5, 8, ….
3. Diseñe un procedimiento que imprima N términos de la siguiente serie: 3, 8, 15, 24………
4. Diseñe un procedimiento para hallar la suma de N términos de la siguiente serie: 1 + 1/32 + 1/52 + 1/72 + 1/92+............................ 5. Diseñe un procedimiento donde visualice los números primos comprendidos entre el 1 al 100. 6. Diseñe un procedimiento donde ingrese un numero, visualice la cantidad de cifras ceros, pares e impares que tiene el numero ingresado. 7. Escriba un procedimiento que imprima los primeros n números naturales pares. Valide el valor de n y emita un mensaje de error si no es natural. 8. Escribe un procedimiento que lea un número natural N y dibuje un triángulo de asteriscos con base y altura N. Por ejemplo si N=5 debería dibujarse: * ** *** **** ***** 9. Escriba un procedimiento para calcular e imprimir todos los números enteros comprendidos 100los y 999 tales de quelasean a la suma de los cubos de sus dígitos, entre es decir, números formaiguales abc, con: abc = a3 + b3 + c3 10. Ingrese un número entero y luego desarrolle un procedimiento que permita calcular la suma de cifras pares e impares que están contenidas en el número ingresado.
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
113
Capítulo
2
USO DE FUNCIONES OBJETIVOS ESPECÍFICOS Defina el propósito de las funciones Realice operaciones que permita implementar funciones
CONTENIDOS Funciones Declaracion Invocar una funcion, paso de parámetros Desarrollo practico.
UTP
RREDES & COMUNICACIONES
114
FUNCIONES DEFINICION
Una función es un sub-programa que procesa un grupo de instrucciones y/o sentencias para luego devolver un único valor. Las funciones pueden contener opcionalmente parámetros. Las funciones se invocan parámetros por su nombre seguido de los valores que se pasaran a sus respectivos formales. Una función puede llamar a otra función inclusive puede llamarse a si misma (recursividad). ESTRUCTURA DE UNA FUNCION
FUNCION Nombre (Parametros): Tipo_Dato VARIABLES Lista de parámetros : INICIO Variables locales a nivel funcion.
::
Instrucciones o Sentencias
RETORNAR ( Valor ) FIN-FUNCION EJERCICIOS RESUELTOS 1. Crear una función que retorne el cuadrado de un número entero.
ALGORITMO Ejemplo1 VARIABLES M ENTERO FUNCION CuadradoENTERO (ENTERO N): INICIO RETORNAR (N * N) FIN-FUNCION INICIO LEER (M) ESCRIBIR (Cuadrado (M) ) FIN
FITT
UTP
FUNDAMENTOS
DE PROGRAMACION
115
2. Crear una función que retorne el mayor valor de 2 números enteros.
ALGORITMO Ejemplo2 VARIABLES ENTERO A, B FUNCION Mayor (ENTERO M, ENTERO N): ENTERO INICIO SI (M > 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