© Fundamentos de Programación – Grupo IDAT Desarrollo y Edición a cargo del Programa de Computación e Informática. Director Ejecutivo Coordinador Académico Coordinador istrativo Diseño y Diagramación Elaborado por
Producción
: Ing. Rolando Rojas Gallo : Ing. José García La Riva : Sr. Julio Cabrera Calle : Srta. Bettina Chávez Huamán Srta. Flor Alicia Vega Collazos : Ing. Rolando Rojas Gallo Ing. José García La Riva Ing. Alberto Moreno Cueva : Departamento de Impresiones del Grupo IDAT
Los derechos de edición, distribución y contenidos de este texto son de exclusividad del GRUPO IDAT.
Fundamentos de Programación
PRESENTACIÓN
Esta guía didáctica es un material de ayuda institucional, perteneciente a las especialidades de Computación, Informática & Sistemas, Redes & Comunicaciones, Soporte y Seguridad Informática e Ingeniería de Software; tiene por finalidad proporcionar los conocimientos de Fundamentos de Programación, orientado a los estudiantes del primer ciclo de estudios. El Grupo IDAT, 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 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 dos unidades y quince capítulos. Permite conocer las herramientas indispensables para la elaboración de un algoritmo. Se inicia con el reconocimiento de las herramientas básicas que se necesitarán para dar solución a una determinada proposición o problema. En este proceso el alumno aprenderá instrucciones que le permitirá evaluar expresiones para luego procesar un conjunto de sentencias. También aprenderá el uso de las estructuras de control (Selectivas y Repetitivas), de la misma forma el uso de estructuras de datos tales como los arreglos (Vectores y Matrices). La implementación y uso de Sub – Programas (Procedimientos y Funciones). Todas estas herramientas darán un soporte sólido al alumno para que aprenda a programar en cualquier Lenguaje de Programación Estructurado, además de los Lenguajes de Programación Orientados a Objetos (POO): Java, C++, C#, Delphi, Perl, Phyton, PHP (Versión 5), Ruby, Smalltalk, Turbo Pascal, ActionScript. 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.
Fundamentos de Programación
Fundamentos de Programación
ÍNDICE Nro. Pág. UNIDAD I…………………………………………………………………………….. 09 CAPÍTULO I.-
Introducción a la Algorítmica……….……………….………….. 11
CAPÍTULO II.-
Datos y Tipos de Datos………………….………………………. 17
CAPÍTULO III.- Variables y Constantes………………………………………..… 23 CAPÍTULO IV.- Estructuras Básicas …………………………………………….. 27 CAPÍTULO V.-
Estructuras Secuenciales …………………………………..… 31
CAPÍTULO VI.- Estructuras Condicionales y Simples …………………………. 51 CAPÍTULO VII.- Estructuras Condicionales Dobles ….………………………… 59 CAPÍTULO VIII.- Estructuras Condicionales Múltiples…………………………. 69 UNIDAD II……………………………………………………………………………. 79 CAPÍTULO IX.- Estructuras Condicionales Anidadas ………………………….. 81 CAPÍTULO X.-
Estructuras Selectivas ……………………………….………….. 89
CAPÍTULO XI.- Estructuras Repetitivas Para – Hacer ………………………… 97 CAPÍTULO XII.- Estructuras Repetitivas Mientras – Hacer …………………… 107 CAPÍTULO XIII.- Estructuras Repetitivas Repetir – Hasta…………………….
115
CAPÍTULO XIV.- Subprogramas – Uso de Procedimientos…………………..
123
CAPÍTULO XV.- Uso de Funciones ……………………………………………… 135 CAPÍTULO XVI.- Uso de Vectores y Matrices…………………………………… 143 APÉNDICES…………………………………………………………………………. 165 BIBLIOGRAFÍA…………………………………………………………………….. 177
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
CAPÍTULO I INTRODUCCIÓN A LA ALGORÍTMICA
OBJETIVOS ESPECÍFICOS 1. Introducción a la Algorítmica. 2. Conceptualizar el Algoritmo y definir las características
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
ALGORITMOS Un algoritmo es un procedimiento a seguir, para resolver un problema en términos de: 1. Las acciones por ejecutar. 2. El orden en que dichas acciones deben ejecutarse. Un algoritmo nace en respuesta a la aparición de un determinado problema. Un algoritmo está 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 cómputo. 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:
Computación, Informática & Sistemas
11
Fundamentos de Programación
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 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.
METODOLOGÍA PARA LA SOLUCIÓN 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.
Computación, Informática & Sistemas
12
Fundamentos de Programación
ANÁLISIS DEL PROBLEMA Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
Los datos de entrada. Cuál 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: 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.
DEFINICIÓN DE UN ALGORITMO El Algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea específica, 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.
Computación, Informática & Sistemas
13
Fundamentos de Programación
CARACTERÍSTICAS 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 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 - ¿Qué 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?
Computación, Informática & Sistemas
14
Fundamentos de Programación
EJERCICIOS RESUELTOS 1. Defina un algoritmo para realizar una llamada 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 9. Retirar la escalera FIN 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. Enroscar los pernos 9. Bajar el auto 10. Guardar la llanta, la gata y la llave FIN 4. Defina un Algoritmo para escuchar música en un CD INICIO 1. Encender la Radio 2. Seleccionar la opción TAPE 3. Insertar el CD 4. Esperar que cargue el CD 5. Graduar el volumen 6. Escuchar el CD FIN
Computación, Informática & Sistemas
15
Fundamentos de Programación
EJERCICIOS PROPUESTOS 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 Mamá. 6. Defina un Algoritmo que permita Pintar las paredes de tu habitación. 7. Defina un Algoritmo que permita realizar una compra al crédito en una empresa comercial. 8. Defina un Algoritmo que permita tener una Consulta Médica de un consultorio particular. 9. Defina un Algoritmo que permita Ir a un Fiesta de fin de año y regresar a casa.
Computación, Informática & Sistemas
16
Fundamentos de Programación
CAPÍTULO II DATOS Y TIPOS DE DATOS OBJETIVOS ESPECÍFICOS 1. Conocer los Tipos de Datos que se utilizan en la algorítmica 2. Definir las expresiones
CONTENIDOS Datos, definición Tipos de datos: Numérico, de cadena, lógicos Manejo de Operadores Expresiones Ejercicios Prácticos
DEFINICIÓN DE DATOS 1. Un dato es la expresión general que describe los objetos con los 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 caracter.
DATOS NUMÉRICOS 1. Es el conjunto de los valores numéricos y puede ser expresado como numéricoentero y numéricoreal. 2. Los enteros no tienen componentes fraccionarias o decimales y pueden ser negativos o positivos. Los reales siempre tienen un punto decimal.
DATOS LÓGICOS 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.
Computación, Informática & Sistemas
17
Fundamentos de Programación
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.
EJERCICIOS PRÁCTICOS En cada uno de los datos, defina su Tipo de dato. Datos “Hola” 123 ¿Quién eres? Verdadero “El Sabio” Falso 12.56 12/15 Trae “EL Quijote” 56.8999999 ¡Alo! Persona “Juan”
Tipo
MANEJO DE OPERADORES Definición 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.
Computación, Informática & Sistemas
18
Fundamentos de Programación
TIPOS DE OPERADORES
Aritméticos De relación, Lógicos, De asignación,
OPERADORES ARITMÉTICOS 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 / MOD, % ↑
DIVISION ENTERA DIVISION REAL RESTO ARTIMETICO POTENCIACION
OPERADORES RELACIONALES Una característica imprescindible de cualquier lenguaje de programación es la de considerar alternativas, esto es, la de proceder de un modo u otro según se cumplan o no ciertas 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
Computación, Informática & Sistemas
19
Fundamentos de Programación
Computación, Informática & Sistemas
20
Fundamentos de Programación
PRIORIDAD DE LOS OPERADORES OPERADOR () [] ↑ *, /, % +, Y O NO >,>=,<,<=,=,<>
PRIORIDAD Signos de Agrupación Potencia Producto y División Suma y Resta Operador lógico y Operador lógico O Operador lógico de negación Operador de relación
EXPRESIONES Definición 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
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.
Computación, Informática & Sistemas
21
Fundamentos de Programación
EJERCICIOS PROPUESTOS 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 )
Computación, Informática & Sistemas
22
Fundamentos de Programación
CAPÍTULO III VARIABLES Y CONSTANTES
OBJETIVOS ESPECIFICOS 1. Conocer el manejo de Variables y Constantes para ser aplicados dentro de una Algorítmica
2. Definir las expresiones CONTENIDOS Variables, definición Identificación de una Variable Declaración de una Variable Constantes Ejercicios Prácticos
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, carácter 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 Algoritmo. Las variables locales son dentro de un sub-programa (Procedimiento o Función).
Computación, Informática & Sistemas
23
Fundamentos de Programación
Ejemplos DECLARACION ABC
VALIDO
A123
VALIDO
1A2B
NO VALIDO
_MiVariable
VALIDO
Mi_Variable
VALIDO
Mi_123456
VALIDO
_1_2_3
VALIDO
Mi@Variable
NO VALIDO
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 En visual Basic las analogías son: Para declaración de variables emplear
DIM VAR1, VAR2 AS TIPO Seudocodigo entero Enetro largo real caracter cadenas
Visual integer long double char string
Computación, Informática & Sistemas
24
Fundamentos de Programación
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’
Equivalencias en Visual Basic que se va utilizar para realizar las pruebas de los seudocódigos:
CONST PI=3.14
Computación, Informática & Sistemas
25
Fundamentos de Programación
Computación, Informática & Sistemas
26
Fundamentos de Programación
CAPÍTULO IV ESTRUCTURAS BÁSICAS
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
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 también se le puede definir como: Una "fórmula" para resolver un problema. Un conjunto finito de acciones o secuencia de operaciones que ejecutadas En un determinado orden resuelven el problema. 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.
Computación, Informática & Sistemas
27
Fundamentos de Programación
Lenguajes Algorítmicos 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: Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocódigo).
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 cómo 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 sí 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.
Computación, Informática & Sistemas
28
Fundamentos de Programación
Pseudo Código Mezcla de lenguaje de programación y español (o inglés o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudo código 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 pseudo código 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”
Ventajas de utilizar un Pseudo Código 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 pseudo código 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:
Computación, Informática & Sistemas
29
Fundamentos de Programación
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).
Estructura
ALGORITMO Nombre_Descriptivo Variables:
…
INICIO Instrucciones y/o Sentencias
FIN Estructura Sintáctica de un Algoritmo Sentencias Declarativas Algoritmo CalculaArea
Cabecera del Programa VARIABLE
Declaración de Variables
Real: Radio, A
Sentencias Ejecutables Entrada de Datos
INICIO Leer Radio
O p e r a c i on e s y C á l c u l os Salida de Resultados
Computación, Informática & Sistemas
A 3.14* Radio ↑2
Escribir A FIN
30
Fundamentos de Programación
CAPITULO V 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 Práctico
DEFINICIÓN 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
Computación, Informática & Sistemas
31
Fundamentos de Programación
PSEUDOCÓDIGO
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 número de veces que se realiza un proceso (a a + 1) Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)
Computación, Informática & Sistemas
32
Fundamentos de Programación
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 debe leerse “asigne”.
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
DECLARACIÓN DE VARIABLES Y CONSTANTES La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es. ENTERO: Contador, Edad, I CADENA: Dirección REAL: Salario _ básico CARÁCTER: Opción En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero; Salario _ básico es una variable de tipo real, Opción es de tipo carácter y la variable Dirección está declarada como una variable alfanumérica de cadena de caracteres.
Computación, Informática & Sistemas
33
Fundamentos de Programación
EJERCICIOS RESUELTOS 1 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 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: N REAL: Porcentaje INICIO LEER (N) 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, Bonificación, Total INICIO LEER (Hbasico, NroHijos) Bonificación ← (Hbasico * 0.05) * NroHijos Total ← Hbasico + Bonificación ESCRIBIR (Total) FIN
Computación, Informática & Sistemas
34
Fundamentos de Programación
5. Ingrese por teclado un número de dos cifras, visualice su número invertido. ALGORITMO Ejemplo5 VARIABLES ENTERO Número, Inverso, Unidad, Decena INICIO LEER (Número) Unidad ← Número MOD 10 Decenal ← Número DIV 10 Inverso ← 10 * Unidad + Decena ESCRIBIR (Inverso) FIN 6. Ingrese por teclado el nombre del cliente y el costo de una PC; por estar de promoción 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 Informática, si los alumnos son agrupadas en aulas de 40 alumnos cada aula, Hallar: Número 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
Computación, Informática & Sistemas
35
Fundamentos de Programación
8. Ingrese por teclado un Número de 3 cifras, visualice la suma de las cifras del número ingresado. ALGORITMO Ejemplo8 VARIABLES ENTERO Número, Unidad, Decena, Suma INICIO LEER (Número) Unidad ← Número MOD 10 Decena (Número DIV 10) MOD 10 Centena NÚMERO DIV 100 Suma ← Unidad + Decena + Centena ESCRIBIR (Suma) FIN
9. Ingrese por teclado la cantidad de metros cúbicos 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 cúbicos por el precio.
Mantenimiento Parques y Jardines Exploración 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 Cúbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar INICIO LEER (Cúbicos) 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 (“Exploración:”, Explor) ESCRIBIR (“Limpieza:”, Limp) ESCRIBIR (“Monto:”, Monto) ESCRIBIR (“IGV:”, IGV) ESCRIBIR (“A Pagar:”, Pagar) FIN
Computación, Informática & Sistemas
36
Fundamentos de Programación
10. Una Empresa dedicada a la Venta de Electrodomésticos, realiza una promoción del 20% + 15% de descuento. Ingrese el precio de un electrodoméstico, calcule y visualice su descuento y el neto a pagar.
ALGORITMO Ejemplo10
VARIABLES
REAL Precio, Descuento1, Descuento2, Neto INICIO LEER (Precio) Descuento1 ← (Precio * 0.20) Descuento2 (Precio – Descuento1) * 0.15 Neto Precio – (Descuento1 + Descuento2) ESCRIBIR ((Descuento1+Descuento2), Neto) FIN
Computación, Informática & Sistemas
37
Fundamentos de Programación
EJERCICIOS RESUELTOS 2 Nota.- crear el algoritmo y código en visual Net, aplicación de consola Iniciar la codificación en Visual Net 2005 (software donde se comprueban los algoritmos desarrollados) En inicio ejecutar colocar DEVENV
EN FILE NEW PROYECT
Por defecto se tiene el modulo:
En esta sección dentro del main se va codificar el algoritmo
Computación, Informática & Sistemas
38
Fundamentos de Programación
1. Obtener la edad de una persona en meses, si se ingresa su edad en años y meses. Ejm: Ingresado 3 años 4 meses debe ESCRIBIR 40 meses.
ALGORITMO EDAD INICIO
// Declaración de las variables Entero: M , A , AM
M
: almacena cantidad de meses
A
: almacena cantidad de años
AM : almacena cantidad total de meses
// Muestra en pantalla e Ingresa Datos ESCRIBIR “Ingrese Anyos: “ LEER A ESCRIBIR “Ingrese Meses: “ LEER M // Factor: 1 año = 12 meses //Proceso: consideramos que 1 año tiene 12 meses AM = A * 12 + M // Muestra Resultados en pantalla ESCRIBIR "Edad en meses = ", AM FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports system.console Imports System.Math Module Module1 Sub main() Dim an,mes,res As Integer Write("ingresar años..:") an = ReadLine() Write("ingrese meses..:") mes = ReadLine() res=an*12+mes WriteLine("años en meses ..:" & res) ReadLine() End Sub End Module
Computación, Informática & Sistemas
39
Fundamentos de Programación
2. Ingresar por teclado las dimensiones de un terreno, largo, ancho, precio por metro cuadrado, se pide calcular y ESCRIBIR: - El área total - El precio del Terreno - La cuota inicial que es 13% del precio - Cuota mensual a pagar si el pago es en dos años
INICIO // Declaración de las variables Real: larg,anch ,pxm, prect , cuotaini,saldo, cutamensu
// Muestra en pantalla e Ingresa Datos ESCRIBIR “Ingrese largo: “ LEER larg ESCRIBIR “Ingrese ancho: “ LEER anch ESCRIBIR “Ingrese precio x metro cuadrado: “ LEER pxm
area <= (larg * anch) prect <= (area * pxm) cuotini <= (prect * 0.13) sald <= (prect - cuotini) cuotmensu <= (sald / 24)
// Muestra Resultados en pantalla ESCRIBIR("el area es..:" , area) ESCRIBIR("precio total..:" , prect) ESCRIBIR("cuota inicial..:" , cuotini) ESCRIBIR("el saldo es ..:" , sald) ESCRIBIR("la cuota mensual es ..:" , cuotmensu) FIN
Computación, Informática & Sistemas
40
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports system.console Imports System.Math Module Module2 Sub main() Dim larg, anch, pxm, area, prect, cuotini, sald, cuotmensu As Double Write("ingresar largo..:") larg = ReadLine() Write("ingresar ancho..:") anch = ReadLine() Write("ingresar precio por metros ..:") pxm = ReadLine() area = (larg * anch) prect = (area * pxm) cuotini = (prect * 0.13) sald = (prect - cuotini) cuotmensu = (sald / 24) WriteLine("el area es..:" & area) WriteLine("precio total..:" & prect) WriteLine("cuota inicial..:" & cuotini) WriteLine("el saldo es ..:" & sald) WriteLine("la cuota mensual es ..:" & cuotmensu) ReadLine() End Sub End Module
Computación, Informática & Sistemas
41
Fundamentos de Programación
3. Se deposita una cierta de dinero en un banco , se desea saber los intereses ganados y el valor futuro del dinero INICIO // Declaración de las variables variables meses :Entero ints, monto, vfut :real // Muestra en pantalla e Ingresa Datos ESCRIBIR “Ingrese monto : “ LEER monto ESCRIBIR “Ingrese meses : “ LEER meses ints <= monto * 0.02 * meses vfut <= monto + meses // Muestra Resultados en pantalla ESCRIBIR("el valor final es..:" , vfut) FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.Math Module Module3 Sub main() Dim meses As Integer Dim ints, monto, vfut As Double Write("ingresa monto..:") monto = ReadLine() Write("ingresa meses..:") meses = ReadLine() ints = monto * 0.02 * meses vfut = monto + meses WriteLine() WriteLine("el valor final es..:" & vfut) ReadLine() End Sub End Module
Computación, Informática & Sistemas
42
Fundamentos de Programación
4. Escriba un algoritmo que permita convertir un valor ingresado en pies a metros. Si 1pie=30.48 cm.
INICIO // Declaración de las variables Real : Vp , Vm, Vc Vp Valor en Pies almacena un valor en pies Vm Valor en metros almacena un valor en metros Vc Valor en centimetros almacena un valor en centimetros Factor : 1 pie = 30.48 cm
1 m = 100 cm
// Muestra en pantalla e Ingresa Datos ESCRIBIR “ Ingrese valor en pies : “ LEER Vp // Proceso : Calcula Vm Vc = Vp * 30.48 // Valor en cm Vm = Vc /100 // Valor en m // Salida en pantalla ESCRIBIR Vm FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.Math Module Module 4 Sub main() Dim Vp , Vm, Vc as double Write("ingrese valor en pies..:") vp = ReadLine() ‘ Valor en pies ‘Proceso : Calcula Vm Vc = Vp * 30.48 ‘ Valor en cm Vm = Vc /100 ‘ Valor en m // Salida en pantalla WriteLine("velocidad en metros.:" & vm) ReadLine() End Sub End Module
Computación, Informática & Sistemas
43
Fundamentos de Programación
5. Calcular el área y perímetro de un triángulo, conocidos sus lados. INICIO //Declaración de las variables Real: A, B, C, P, sp, Area Lados del triángulo: A , B y C P
: Perímetro del Triángulo (suma de sus lados)
sp
: SemiPerímetro del Triángulo = P/2
Area : SQRT ( sp * (sp – A) * (sp - B) * (sp - C)) // Ingreso de Datos LEER A, B, C // Proceso: Calculo de P Perimetro y SP SemiPerimetro P A+B+C sp = P/2 Area = sqrt ( sp * (sp – A) * (sp - B) * (sp - C)) // Salida de Resultados ESCRIBIR P, Area FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module 5 Sub Main() Dim l1, l2, l3 As Integer Dim area, p As Double Write("Ingresa lado 1..:") l1 = ReadLine() Write("ingresa lado 2..:") l2 = ReadLine() Write("ingresa lado 3 ..:") l3 = ReadLine() p = (l1 + l2 + l3) / 2 area = Sqrt(p * (p - l1) * (p - l2) * (p - l3)) WriteLine() WriteLine("ESCRIBIR area..:" & area) ReadLine() End Sub End Module
Computación, Informática & Sistemas
44
Fundamentos de Programación
6. Ingrese por teclado un número de dos cifras, visualice su número invertido VARIABLES ENTERO: Número, Inverso, Unidad, Decena INICIO LEER (Número) Unidad ← Número MOD 10 Decenal ← Número DIV 10 Inverso ← 10 * Unidad + Decena ESCRIBIR (Inverso) FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module6 Sub Main() Dim Número, Inverso, Unidad, Decena As Integer Write("Ingresa un número de 2 cifras..:") número =ReadLine() Unidad = Número MOD 10 Decenal = Número \10 Inverso = 10 * Unidad + Decena WriteLine("número invertido.:" & inverso) ReadLine() End Sub End Module
7. En este verano un instituto educativo ha ingresado una cantidad de “N” alumnos matriculados en el programa de Computación e Informática, si los alumnos son agrupadas en aulas de 40 alumnos cada aula, hallar: • •
Número de aulas completas Cantidad de alumnos que faltan para completar otra aula
VARIABLES ENTERO: Matriculas, Aulas, Falta INICIO LEER (matriculas) Aula ← Matriculas DIV 40 Falta Matricula MOD 40 ESCRIBIR (Aula, Matricula)
FIN
Computación, Informática & Sistemas
45
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module7 Sub Main() Dim Número Matriculas, Aulas, Falta As Integer Write("Ingrese número de matriculas.:") matriculas = CInt(ReadLine()) Aula=Matriculas \40 Falta =Matricula MOD 40 WriteLine("número de aulas.:" & aula) ReadLine() End Sub End Module
PASAR A VISUAL LOS SIGUIENTES SEUDOCODIGOS:
8. Ingrese por teclado un Número de 3 cifras, visualice la suma de las cifras del número ingresado. VARIABLES ENTERO
Número, Unidad, Decena, Suma
INICIO LEER (Número) Unidad ← Número MOD 10 Decena (Número DIV 10) MOD 10 Centena NÚMERO DIV 100 Suma ← Unidad + Decena + Centena ESCRIBIR (Suma) FIN
Computación, Informática & Sistemas
46
Fundamentos de Programación
9. Ingrese por teclado la cantidad de metros cúbicos 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 cúbicos por el precio. •
Mantenimiento
0.25% del monto
•
Parques y Jardines
0.15% del monto
•
Exploración
0.05% del monto
•
Limpieza de Alcantarillas
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. VARIABLES REAL: Cúbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar
INICIO LEER (Cúbicos) 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 (“Exploración:”, Explor) ESCRIBIR (“Limpieza:”, Limp) ESCRIBIR (“Monto:”, Monto) ESCRIBIR (“IGV:”, IGV) ESCRIBIR (“A Pagar:”, Pagar) FIN
Computación, Informática & Sistemas
47
Fundamentos de Programación
10. Una Empresa dedicada a la Venta de Electrodomésticos, realiza una promoción del 20% + 15% de descuento. Ingrese el precio de un electrodoméstico, calcule y visualice su descuento y el neto a pagar.
VARIABLES
REAL Precio, Descuento1, Descuento2, Neto INICIO LEER (Precio) Descuento1 ← (Precio * 0.20) Descuento2 (Precio – Descuento1) * 0.15 Neto Precio – (Descuento1 + Descuento2) ESCRIBIR ((Descuento1+Descuento2), Neto) FIN
Computación, Informática & Sistemas
48
Fundamentos de Programación
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 centímetros. 3. Ingrese por teclado la descripción y precio de un producto, actualizar el precio 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) Suma de sus cifras b) Promedio de las cifras 6. Ingrese por teclado un número de dos cifras, mostrar el número 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 telefónica que permite mostrar el pago por consumo telefónico, para esto se ingresará el código del , el número telefónico y la cantidad de minutos utilizados. Mostrar el código del , el importe de las llamadas realizadas, el IGV y el pago total, considerando que la empresa cobra 0.30 céntimos de nuevo sol por cada minuto, la renta básica cobra 48 nuevos soles y el IGV es el 19% del Monto.
Computación, Informática & Sistemas
49
Fundamentos de Programación
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, transformarlo en dólares; considere el tipo de cambio del día. 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 Considerar 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 número, incrementar el 2.4% de su valor, mostrar el valor del incremento y el nuevo número. 14. Ingrese por teclado un número de 4 cifras, mostrar los números 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 tendrá en el curso. Examen Parcial Examen Final Promedio de Practicas Promedio de Trabajos
30% 40% 20% 10%
Para tal caso ingrese el nombre del alumno y las 4 evaluaciones, mostrar el nombre del alumno y su promedio.
Computación, Informática & Sistemas
50
Fundamentos de Programación
CAPITULO VI ESTRUCTURAS CONDICIONALES Y 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 estructuras condicionales Clasificación Estructura condicional simple Definición Sintaxis Desarrollo Practico
ESTRUCTURAS CONDICIONALES Definición 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.
Computación, Informática & Sistemas
51
Fundamentos de Programación
¿Qué es una Condición? 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 booleana TEST A AND NOT B OR C
Se pueden utilizar condiciones tan complejas como se quiera siempre que estén bien formadas
Clasificación 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 Definición Es aquella 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.
Computación, Informática & Sistemas
52
Fundamentos de Programación
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCÓDIGO
Computación, Informática & Sistemas
53
Fundamentos de Programación
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 CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module1 Sub Main() Dim A, B, Mayor3 As Integer Write("Ingresa valor 1..:") A = ReadLine() Write("ingresa VALOR 2..:") B = ReadLine() MAYOR=A IF B > A THEN Mayor = B END IF WriteLine("EL MAYOR ES..:" & MAYOR) ReadLine() End Sub End Module
Computación, Informática & Sistemas
54
Fundamentos de Programación
2. Ingrese por teclado un número entero, si mayor a 10 súmele 10 unidades y visualice el nuevo valor. ALGORITMO Ejemplo2 VARIABLES ENTERO: N INICIO LEER ( N ) SI ( N > 10) ENTONCES N N + 10 FIN-SI ESCRIBIR ( N ) FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module1 Sub Main() Dim N As Integer Write("Ingresa valor 1..:") N = ReadLine() IF N>10 THEN N=N+10 END IF WriteLine("EL NUEVO VALOR..:" & N) ReadLine() End Sub End Module 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: edad INICIO LEER (edad) SI (edad > 17) ENTONCES ESCRIBIR “Es mayor de edad” FIN-SI FIN
Computación, Informática & Sistemas
55
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module1 Sub Main() Dim edad As Integer Write("Ingresa su edad..:") edad = ReadLine() IF edad>17 THEN WriteLine("eres mayor de edad" ) END IF ReadLine() End Sub End Module 4. Ingrese por teclado la talla de una persona; visualice un mensaje “Servicio Obligatorio”, si tiene una talla mínima de 1.70 metros ALGORITMO Ejemplo4 VARIABLES REAL: talla INICIO LEER (talla) SI (talla>=1.70) ENTONCES ESCRIBIR “Servicio Obligatorio” FIN-SI FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module1 Sub Main() Dim talla As double Write("Ingresa su edad..:") talla = ReadLine() IF talla>1.70 THEN WriteLine("eres Servicio Obligatorio " ) END IF ReadLine() End Sub End Module Computación, Informática & Sistemas
56
Fundamentos de Programación
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, Bonificación, Total INICIO LEER (Hbasico, NroHijos) Bonificación 0 SI ( NroHijos > 0 ) ENTONCES Bonificación ← Hbasico * 0.05 * NroHijos FIN-SI Total Hbasico + Bonificación ESCRIBIR (Total) FIN
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module1 Sub Main() Dim Hbasico, Bonificación, Total As double Dim NroHijos As integer Write("Ingresa su haber basico.:") hbasico = ReadLine() Write("Ingresa número de hijos.:") nrohijos = ReadLine() IF ( NroHijos > 0 ) THEN Bonificación =Hbasico * 0.05 * NroHijos END IF Total =Hbasico + Bonificación WRITELINE(“SU PAGO TOTAL ES :” &Total) ReadLine() End Sub End Module
Computación, Informática & Sistemas
57
Fundamentos de Programación
EJERCICIOS PROPUESTOS 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 número, si el número 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 mínima es 17 y su talla mínima es 1.65 metros. 4. Ingrese por 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 rio de computadora; se le aplicará un descuento del 5% al precio si el rio es Monitor o Teclado. Visualice el descuento y el nuevo precio. 7. Ingrese por teclado un número, si es número par, duplique el valor del número; mostrar el nuevo valor. 8. Ingrese por teclado un número, si es de 3 cifras, visualice la suma de las cifras del número. 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.
Computación, Informática & Sistemas
58
Fundamentos de Programación
CAPÍTULO VII 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
ESTRUCTURA CONDICIONAL DOBLE Definición 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
Computación, Informática & Sistemas
59
Fundamentos de Programación
Computación, Informática & Sistemas
60
Fundamentos de Programación
EJERCICIOS RESUELTOS 1. Ingrese por teclado 2 números, visualice el mayor de los dos números ingresados. ALGORITMO Ejemplo1 VARIABLES ENTERO: A, B INICIO LEER(A, B) SI ( A > B )ENTONCES ESCRIBIR (A) SINO ESCRIBIR (B) FIN-SI FIN
2. Ingrese por teclado un número, 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 CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim A As Integer Write("Ingresa valor 1..:") A = ReadLine() IF A MOD 2=0 THEN WriteLine("EL DOBLE ES..:" & 2*A) ELSE WriteLine("SU CUADRADO ..:" & A^2) END IF ReadLine() End Sub End Module
Computación, Informática & Sistemas
61
Fundamentos de Programación
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 ESCRIBIR (“APTO”) SINO ESCRIBIR (“NO APTO”) FIN-SI FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim EDAD As Integer Write("Ingresa EDAD..:") EDAD = ReadLine() IF EDAD>17 THEN WriteLine("ESTA APTO”) ELSE WriteLine("NO APTO”) END IF ReadLine() End Sub End Module
4. Ingrese por teclado el total de ahorros de una persona, si ahorró más 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
Computación, Informática & Sistemas
62
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim AHORROS As DOUBLE Write("Ingrese ahorros”) ahorros = ReadLine() IF ahorros>1000 THEN WriteLine("puede comprar su tv”) ELSE WriteLine("siga ahorrando”) END IF ReadLine() End Sub End Module 5. Ingrese por teclado el tiempo que demora en recorrer 1500 metros un atleta, visualice un mensaje “ATLETA A COMPETIR EN LA OLIMPIADA” si la marca mínima es 3 minutos, sino visualice un mensaje “PREPARARSE MAS” ALGORÍTMICA 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 CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim tiempo As double Write("Ingresa EDAD..:") tiempo = ReadLine() IF tiempo<=3.00 THEN WriteLine (“ATLETA A COMPETIR EN LA OLIMPIADA”)) ELSE WriteLine("PREPARARSE MAS”) END IF ReadLine() End Sub End Module
Computación, Informática & Sistemas
63
Fundamentos de Programación
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 Descuento Vcompra * 0.03 SINO Recargo Vcompra * 0.05 FIN-SI Total Vcompra – Descuento + Recargo ESCRIBIR (Total) FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim Vcompra, Descuento, Recargo, Total As double Dim TipoPago as char Write("Ingresa valor de la compra..:") vcompra = ReadLine() Write("Ingrese tipo de compra c/r..:") tipopago = ReadLine() If (TipoPago = “C” ) then Descuento = Vcompra * 0.03 Else Recargo =Vcompra * 0.05 End if Total = Vcompra – Descuento + Recargo WriteLine("total a pagar:” & totAL) ReadLine() End Sub End Module
Computación, Informática & Sistemas
64
Fundamentos de Programación
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”. ALGORÍTMICA 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 CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N, A, C As INTEGER Write("Ingrese UN NÚMERO DE 3 CIFRAS”) N = ReadLine() IF ( N >= 100) AND ( N <= 999 ) THEN A = N \ 100 C = ( N MOD 100) MOD 10 IF ( A = C ) THEN WRITELINE (“CAPICUA”) ELSE WRITELINE (“NO ES CAPICUA”) END IF END IF ReadLine() End Sub End Module
Computación, Informática & Sistemas
65
Fundamentos de Programación
8. Una tienda comercial por campaña publicitaria está ofreciendo descuentos por sus diversos artículos, donde lo artículos que cuestan mínimo 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 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 están solicitando a la población postular a la Escuela de la Fuerzas Armadas, una persona que postula a la Escuela deberá ingresar su Nombre, edad, talla y estudios realizados. Si su edad es mayor a 17, tiene una talla mínima de 1.70 y estudios superiores, podrá ingresar, sino ingresará a la Escuela de Suboficiales. ALGORÍTMICA 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
Computación, Informática & Sistemas
66
Fundamentos de Programación
EJERCICIOS PROPUESTOS 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 mínimo 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. 4. Ingrese por teclado dos números, visualice el menor de los dos números ingresados. 5. Ingrese por teclado tres números diferentes, visualize: a) Mayor de los tres números b) Menor de los tres números 6. Ingrese por teclado tres números enteros diferentes, visualice el segundo mayor número. 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 más 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 pago 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ó.
Computación, Informática & Sistemas
67
Fundamentos de Programación
Computación, Informática & Sistemas
68
Fundamentos de Programación
CAPÍTULO VIII ESTRUCTURAS CONDICIONALES MULTIPLES OBJETIVOS ESPECÍFICOS Defina el propósito de las estructuras condicionales múltiples. Realiza la solución de diversos casos prácticos aplicando estructuras condicionales.
CONTENIDOS Estructura condicional múltiple Definición Sintaxis Desarrollo Practico
ESTRUCTURA CONDICIONAL MULTIPLE Definición 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 pueden 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
Computación, Informática & Sistemas
69
Fundamentos de Programación
PSEUDOCÓDIGO
Computación, Informática & Sistemas
70
Fundamentos de Programación
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-SI ESCRIBIR ( Mayor )
FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim A, B, C, Mayor As INTEGER Write("Ingrese UN PRIMER VALOR:”) A = ReadLine() Write("Ingrese UN SEGUNDO VALOR:”) B = ReadLine() Write("Ingrese UN TERCER VALOR:”) IF ( A>B AND A>C ) THEN Mayor = A ELSEIF ( B>A AND B>C ) THEN Mayor = B ELSE Mayor= C END IF WRITELINE (“EL MAYOR VALOR ES :” & Mayor )
ReadLine() End Sub End Module
Computación, Informática & Sistemas
71
Fundamentos de Programación
11. 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: N INICIO 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 CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As INTEGER Write("Ingrese UN NÚMERO DE 3 CIFRAS”) N = ReadLine() IF ( N <10) THEN N=N+10 ELSEIF ( N<20 ) THEN N=N*20 ELSE N=N*N END IF Writeline(“Valor nuevo de N:” & N) ReadLine() End Sub End Module
12. 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: Categoría REAL: Bonificación INICIO LEER (Categoría) SI (Categoría = “A”) ENTONCES Bonificación ← 250 SINO SI (Categoría = “B”) ENTONCES Bonificación ← 200 SINO SI (Categoría = “C”) ENTONCES Bonificación ← 120 SINO Bonificación ← 50 FIN-SI ESCRIBIR (Bonificación) FIN
Computación, Informática & Sistemas
72
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim Bonificación As double Dim categoria as string Write("Ingrese una categoría :”) categoria = ReadLine() IF (categoria = “A”) THEN Bonificación=250 ELSEIF (categoria = “B”) THEN Bonificación=200 ELSEIF (categoria = “C”) THEN Bonificación= 120 ELSE Bonificación =50 END IF Writeline(“Valor DE Bonificación :” & Bonificación ) ReadLine() End Sub End Module
13. Se van a publicar la nota de un alumno, dependiendo de su nota se ubicará en una de las siguientes categorías: PROMEDIO 18 – 20 15 – 17 11 – 14 0 -10
CATEGORÍA Excelente Bueno Regular Malo
ALGORITMO Ejemplo4 VARIABLES CADENA: Categoría ENTERO: nota INICIO LEER (nota) SI (nota<=10) ENTONCES Categoría ← “Malo” SINO SI (nota<=14) ENTONCES Categoría ← “Regular” SINO SI (nota<=17) ENTONCES Categoría ← “Bueno” SINO Categoría ← “Excelente” FIN-SI ESCRIBIR (Categoría) FIN
Computación, Informática & Sistemas
73
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim nota As integer Dim categoria as string Write("Ingrese nota :”) nota = ReadLine() If (nota<=10) then Categoría=“Malo” Else if (nota<=14) then Categoría = “Regular” Else if (nota<=17) then Categoría = “Bueno” Else Categoría = “Excelente” End if Writeline(“observacion:” & categoria) ReadLine() End Sub End Module
14. Una persona está a punto de ver televisión, mostrar si según su edad está 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
Computación, Informática & Sistemas
74
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim edad As integer Write("Ingrese edad :”) If (nota<=13) then Writeline (“apta para todos”) Else if (nota<=17) then Writeline (“Mayores de 14”) Else Writeline (“Contenido para Adultos”) End if ReadLine () End Sub End Module
Computación, Informática & Sistemas
75
Fundamentos de Programación
EJERCICIOS PROPUESTOS 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
<=20 20
<=30 TP30
Tipo de Clima Frió Nublado Caluroso Trópico
4. Ingrese un número de 4 cifras, visualizar un mensaje si el número 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 más 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
Computación, Informática & Sistemas
Importe de Matricula 350 300 300 310 280
Mensualidad 590 550 500 550 490
76
Fundamentos de Programación
Ingrese por teclado el nombre 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 navideña, desea comprar panteones, donde según su marca tiene un precio Marca del Panteón 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 así el neto, que es la diferencia entre el monto y el descuento. Ingrese por teclado el nombre del cliente, la marca del panteón y la cantidad de panetones a comprar; visualice el precio unitario del panteón, el monto de la compra, el descuento y el neto a pagar. 10. Ingrese por teclado la distancia que recorrió un atleta, de acuerdo a la distancia, el atleta está clasificado:
Distancia en metros 100 1500 3000 20 kms 40 kms
Computación, Informática & Sistemas
Clasificación Corta Milla 3000 metros Semi Fondo Fondista
77
Fundamentos de Programación
Computación, Informática & Sistemas
78
Fundamentos de Programación
Computación, Informática & Sistemas
79
Fundamentos de Programación
Computación, Informática & Sistemas
80
Fundamentos de Programación
CAPÍTULO IX 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
ESTRUCTURA CONDICIONAL ANIDADA Definición 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 verdadera, Ejecuta la sentencia 2. Si la condición 1 no es verdadera, evaluará la condición 3. Si la condición 3 es verdadera, ejecuta la sentencia 3; si no es verdadera, Ejecuta la sentencia 4.
Computación, Informática & Sistemas
81
Fundamentos de Programación
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 (“NÚMERO NO VALIDO”) FIN-SI FIN-SI FIN-SI FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As INTEGER Write("Ingrese UN NÚMERO entre 1- 3 :”) N = ReadLine() IF ( N =1) THEN Writeline(“uno:”) ELSE IF N=2 THEN Writeline(“DOS:”) ELSE IF N=3 THEN WRITELINE(“TRES”) ELSE Writeline(“NÚMERO NO VALIDO:”) END IF END IF END IF ReadLine() End Sub End Module
Computación, Informática & Sistemas
82
Fundamentos de Programación
2. Ingrese el puntaje obtenido por un postulante y luego visualice a que carrera ingreso, según la siguiente tabla:
ALGORITMO Ejemplo2 VARIABLES ENTERO Puntaje INICIO LEER ( Puntaje ) SI (Puntaje >= 70) Y (Puntaje < 90) ENTONCES ESCRIBIR (“Contabilidad”) SINO SI (Puntaje >= 90) Y (Puntaje < 100) ENTONCES ESCRIBIR (“istració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
Computación, Informática & Sistemas
83
Fundamentos de Programación
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 Pensión ENTERO Ciclo CARÁCTER Turno
INICIO LEER( Ciclo, Turno ) SI (Ciclo = 1) ENTONCES SI (Turno = ‘M’) ENTONCES Pensión ← 850 SINO Pensión ← 800 FIN-SI SINO SI (Ciclo = 2) ENTONCES SI (Turno = ‘M’) ENTONCES Pensión ← 750 SINO Pensión ← 700 FIN-SI SINO SI (Turno = ‘M’) ENTONCES Pensión ← 650 SINO Pensión ← 600 FIN-SI/ FIN-SI FIN-SI
FIN
Computación, Informática & Sistemas
84
Fundamentos de Programación
4. Ingrese el consumo de agua de un mes y calcule el visualice el total a pagar, según la siguiente tabla:
Consumo
Tarifa
[ 1 – 50 >
0.8
[ 50 – 100 >
1.5
[ 100 – 150 >
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 Tarifa 2.0 FIN-SI FIN-SI FIN-SI Monto Tarifa * Consumo ESCRIBIR (Tarifa, Monto) FIN
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.
Computación, Informática & Sistemas
85
Fundamentos de Programación
ALGORITMO Ejemplo5
VARIABLES REAL:
básico, bonificación, monto
CADENA:
Categoría
INICIO LEER (Categoría) SI (Categoría =”Empleado”) ENTONCES básico 600 bonificación 600 SINO SI (Categoría = ”Obrero”) ENTONCES básico 550 bonificación 190 SINO SI (Categoría “Ejecutivo”) ENTONCES básico 1500 bonificación 500 SINO básico 200 bonificación 50 FIN-SI FIN-SI FIN-SI monto básico + bonificación ESCRIBIR (básico, bonificación, monto) FIN
Computación, Informática & Sistemas
86
Fundamentos de Programación
EJERCICIOS PROPUESTOS 1. 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
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. Tipo de Tarjeta
Recargo
Visa Electrón ( E )
0%
VISA ( V )
5%
MasterCard ( M )
7%
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
< 60 – 100 ]
0.007
<100 – 200 ]
0.005
<200 – 400 ]
0.004
<400 – 500 ]
0.003
<500 – Más…
0.002
Computación, Informática & Sistemas
87
Fundamentos de Programación
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
Monto Mínimo
Plan “A”
0.07 %
1000
Plan “B”
0.08 %
1500
Plan “C”
0.09 %
2000
Plan “X”
0.10 %
2500
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 número en letras, por ejemplo 125 un ciento veinticinco 7. Un instituto ofrece cursos de programación, el costo de los cursos es de la siguiente manera: Básico Profesor Alumno Externo
Intermedio 50 40 70
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. 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.
Computación, Informática & Sistemas
88
Fundamentos de Programación
CAPÍTULO X 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
ESTRUCTURA SELECTIVA Definición 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 es igual, el flujo del algoritmo seguirá un determinado camino entre los “n” posibles.
Computación, Informática & Sistemas
89
Fundamentos de Programación
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCÓDIGO
Computación, Informática & Sistemas
90
Fundamentos de Programación
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: ESCRIBIR (“TRES”) 4: ESCRIBIR (“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:
Categoría
REAL:
Bonificación
INICIO LEER (Categoría) CASO (Categoría) SEA “A”: Bonificación ← 250 “B”: Bonificación ← 200 “C”: Bonificación ← 120 OTRO CASO: Bonificación ← 50 FIN-CASO ESCRIBIR (Bonificación) FIN
Computación, Informática & Sistemas
91
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim categoria As Integer Dim bonificacion as double Write("Ingresa categoria..:") categoria = ReadLine() select case categoria case “A”:bonificacion=250 case “B”:bonificacion=200 case “C”:bonificacion=120 case else bonificacion=50 End select Writeline(“la bonificacion es:” & bonificacion) ReadLine() End Sub End Module
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
Computación, Informática & Sistemas
92
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim a, b, resultado As Integer Dim operador as string Write("Ingresa valor entero..:") n = ReadLine() select case operador case “+”:resultado=a+b case “-”:resultado=a-b case “*”:resultado=a*b case “div”:resultado=a\b case “exp”:resultado=Exp(a,b) case “/”: if b<>0 then resultado=a/b else resultado=0 end if End select Writeline(“la respuesta es:” & resultado) ReadLine() End Sub End Module
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: Semana ENTERO: día INICIO LEER (día) CASO (día) SEA 1: Semana ← “Lunes” 2: Semana ← “Martes” 3: Semana ← “Miércoles” 4: Semana ← “Jueves” 5: Semana ← “Viernes” 6: Semana ← “Sábado” 7: Semana ← “Domingo” OTRO CASO: Semana ← “Error” FIN -CASO ESCRIBIR (Semana) FIN
Computación, Informática & Sistemas
93
Fundamentos de Programación
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 Electrón ( 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 ESCRIBIR (total) FIN 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
COSTO
1 2 3
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
Computación, Informática & Sistemas
94
Fundamentos de Programación
EJERCICIOS PROPUESTOS 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
Monto Mínimo
Plan “A”
0.07 %
1000
Plan “B”
0.08 %
1500
Plan “C”
0.09 %
2000
Plan “X”
0.10 %
2500
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 V D D
0 >0 0 >0 0 >0 0 >0
Bonificación (% Haber Básico) 2.50 % 2.75 % 2.80 % 3.00 % 2.50 % 2.75 % 2.50 % 3.00 %
5. Un instituto ofrece cursos de programación, el costo de los cursos es de la siguiente manera: Básico
Intermedio
Avanzado
Profesor
50
70
100
Alumno
40
50
80
Externo
70
100
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. Computación, Informática & Sistemas
95
Fundamentos de Programación
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
Básico
Bonificación
Empleado
600
150
Obrero
550
190
Ejecutivo
1500
500
Auxiliar
200
50
Calcule y visualice su remuneración que es la suma del básico y bonificación.
Computación, Informática & Sistemas
96
Fundamentos de Programación
CAPÍTULO XI ESTRUCTURAS REPETITIVAS PARA - 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 iterativa Definición Tipos de estructuras Estructura repetitiva Para – Fin Para Contadores y acumuladores Desarrollo de ejercicios de aplicación
ESTRUCTURA REPETITIVA Definición
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. También se les llaman problemas repetitivos o cíclicos porque en la Solución 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.
Computación, Informática & Sistemas
97
Fundamentos de Programación
Fases de un Programa Cíclico o Repetitivo Todo problema que trabaja con procesos repetitivos o cíclicos debe tomar en cuenta las siguientes fases: 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 condición que “N” sea cero.
Ejemplo de un Bucle Infinito
En este flujograma, el bucle se estará repitiendo indefinidamente ya que no existe ninguna condición que nos permita finalizar en algún momento.
Computación, Informática & Sistemas
98
Fundamentos de Programación
Clasificación de las Estructuras Repetitivas Las estructuras repetitivas se clasifican en: a) Estructuras cíclicas que ejecutan un número determinado de Iteraciones: Son aquellas en que el número de iteraciones se conoce antes de ejecutarse 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.
Estructura Mientras – Fin Mientras Estructura Repetir – Hasta_Que
ESTRUCTURA REPETITIVA PARA - HACER Definición 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
Computación, Informática & Sistemas
99
Fundamentos de Programación
PSEUDOCÓDIGO
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 de uno en uno, el acumulador va aumentando en una cantidad variable.
Representación:
+
Ejemplo: S S + variable
Computación, Informática & Sistemas
100
Fundamentos de Programación
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 CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As Integer For n=1 to 10 Writeline(“ valor:” & N) End for ReadLine() End Sub End Module 2. Imprimir los 10 primeros números naturales pero en forma descendente. ALGORITMO Ejemplo2 VARIABLES ENTERO N INICIO PARA N ← 10 HASTA 1 DE -1 ESCRIBIR (N) FIN-PARA FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As Integer For n=10 to 1 step -1 Writeline(“ valor:” & N) End for ReadLine() End Sub End Module
Computación, Informática & Sistemas
101
Fundamentos de Programación
3. Visualizar todos los números de 2 cifras compuestos por cifras iguales. ALGORITMO Ejemplo3 VARIABLES ENTERO N, A, B INICIO PARA N ← 10 HASTA 99 A ← N DIV 10 B ← N MOD 10 SI ( A = B ) ENTONCES ESCRIBIR (N) FIN-SI FIN-PARA FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N,A,B As Integer For n=10 to 99 A=N\10 B=N MOD 10 IF A=B THEN Writeline(“ valor:” & N) END IF End for ReadLine() End Sub End Module
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
Computación, Informática & Sistemas
102
Fundamentos de Programación
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 CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N,I,CUADRADO, CUBO As Integer WRITE(“Ingrese unn valor”) N=readline For I=1 to N CUADRADO=I*I CUABO=I*I*I Writeline(I,” “& CUADRADO &” “ & CUBO) End for ReadLine() End Sub End Module 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 Computación, Informática & Sistemas
103
Fundamentos de Programación
7. Elabore un programa para calcular el factorial de un número entero positivo ALGORITMO Ejemplo7 VARIABLES ENTERO N, FACTORIAL, i INICIO FACTORIAL 1 LEER (N) PARA i ← 1 HASTA N FACTORIAL FACTORIAL * i FIN-PARA ESCRIBIR (FACTORIAL) FIN 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
Computación, Informática & Sistemas
104
Fundamentos de Programación
EJERCICIOS PROPUESTOS 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 “PERFECTO” o “NO ES PERFECTO”.
indicando
si
es
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. 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 número de base 10 a un número de otra base, para ello ingrese el número 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 número, visualizar los divisores del número ingresado.
Computación, Informática & Sistemas
105
Fundamentos de Programación
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. Escriba un Algoritmo que permita formar la siguiente serie, donde N es ingresado por teclado: 1, 4, 9, 16,… N2
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
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 términos 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.
Computación, Informática & Sistemas
106
Fundamentos de Programación
CAPÍTULO XII ESTRUCTURAS REPETITIVAS 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
ESTRUCTURA MIENTRAS-HACER Definición 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.
Característica 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.
Computación, Informática & Sistemas
107
Fundamentos de Programación
SINTAXIS DIAGRAMA DE FLUJO
PSEUDOCÓDIGO
MIENTRAS (Expresión<es>) HACER
:
VERDAD
: FIN-MIENTRAS
Computación, Informática & Sistemas
Instrucciones y/o Sentencias
108
Fundamentos de Programación
EJERCICIOS RESUELTOS 1. Imprimir los 3 primeros números naturales. ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO N←1 MIENTRAS( N <= 3 ) HACER ESCRIBIR( N ) N←N+1 FIN-MIENTRAS FIN
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As Integer WHILE N<=3 Writeline(N) N=N+1 End WHILE ReadLine() End Sub End Module 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 SUMA ← 0 MIENTRAS (N <= 10) HACER SUMA ← SUMA + N N←N+1 FIN-MIENTRAS ESCRIBIR (“LA SUMA ES:”, SUMA) FIN
Computación, Informática & Sistemas
Acumulador Contador
109
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N, SUMA As Integer N=1 SUMA=0 WHILE N<=10 SUMA=SUMA+N N=N+1 End WHILE WRITELINE(“ La suma es :” & suma) ReadLine() End Sub End Module
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 CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N, SUMA As Integer N=10 SUMA=0 WHILE N<=99 SUMA=SUMA+N N=N+1 End WHILE WRITELINE(“ La suma es :” & suma) ReadLine() End Sub End Module
Computación, Informática & Sistemas
110
Fundamentos de Programación
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
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N, D, RESTO As Integer WRITE(“INGRESE N:”); N=READLINE D=1 WHILE D<=N RESTO=N MOD D IF RESTO=0 THEN WRITELINE(“ su divisor :” & D) End if d=d+1 End WHILE ReadLine() End Sub End Module 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
Computación, Informática & Sistemas
111
Fundamentos de Programación
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-MIENTRAS ESCRIBIR (“Número Cifras:”, Cifras) FIN
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, ARES, CIMPARES, i INICIO ARES 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 ARES ARES + 1 SINO CIMPARES CIMPARES + 1 FIN SI FIN SI ii+1 FIN MIENTRAS ESCRIBIR (SUMA, ARES, CIMPARES) FIN
Computación, Informática & Sistemas
112
Fundamentos de Programación
8. Diseñe un programa donde ingrese un número, 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 número, visualizar un mensaje si es número 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 (“NÚMERO PRIMO”) SINO ESCRIBIR (“NÚMERO COMPUESTO”) FIN SI FIN
Computación, Informática & Sistemas
113
Fundamentos de Programación
EJERCICIOS PROPUESTOS 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 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. 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: * ** *** **** ***** 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
Computación, Informática & Sistemas
114
Fundamentos de Programación
CAPÍTULO XIII ESTRUCTURAS REPETITIVAS 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
ESTRUCTURA REPETIR - HASTA Definición 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.
Característica 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.
Computación, Informática & Sistemas
115
Fundamentos de Programación
SINTAXIS DIAGRAMA DE FLUJO
Se cumple hasta que condición sea Verdadera, sino repite el ciclo
PSEUDOCÓDIGO
REPETIR FALSO
:
Instrucciones y/o Sentencias
: HASTA (Expresión<es>)
Computación, Informática & Sistemas
116
Fundamentos de Programación
EJERCICIOS RESUELTOS 1. Visualizar los 5 primeros números naturales. ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO N ←1 REPETIR ESCRIBIR (N) N←N+1 HASTA (N > 5) FIN
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As Integer N=1 Do Writeline (“ valor “ & N) N=N+1 Loop Until N>5 End Sub END MODULE
2. Visualizar todos los números pares de 2 cifras. ALGORITMO Ejemplo2 VARIABLES ENTERO N INICIO N ← 10 REPETIR ESCRIBIR (N) N←N+2 HASTA (N > 98) FIN
Computación, Informática & Sistemas
117
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As Integer N=10 Do Writeline (“valor “ & N) N=N+2 Loop Until N>98 End Sub END MODULE
2. 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
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As Integer N=1 Do Writeline(“ valor “ & N^2) N=N+1 Loop Until N>10 End Sub END MODULE
Computación, Informática & Sistemas
118
Fundamentos de Programación
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
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main()
Dim N,DIVISOR, RESTO As Integer WRITE(“INGRESE UN VALOR N:”): N=READLINE DIVISOR=1 Do RESTO=N MOD DIVISOR IF RESTO=0 THEN WRITELINE (“DIVISOR :!” & DIVISOR) END IF DIVISOR=DIVISOR+1 Loop Until DIVISOR>N
End Sub END MODULE
Computación, Informática & Sistemas
119
Fundamentos de Programación
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 N, M, INV, Cifra INICIO LEER (N) 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
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA
Imports System.Console Module Module1 Sub Main() Dim N,M , INV, CIFRA As Integer WRITE (“ INGRESE UN NÚMERO ENTERO:”) N=READLINE M=N INV=0 Do CIFRA=N MOD 10 INV= INV*10 +CIFRA M=M \10 Loop Until M=0 IF N=INV THEN Writeline(“ES CAPICUA“) ELSE Writeline(“NO ES CAPICUA“) END IF End Sub END MODULE
Computación, Informática & Sistemas
120
Fundamentos de Programación
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 Fibonacci: 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 NÚMERO, visualice la cantidad de cifras ceros, pares e impares que tiene el NÚMERO 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: * ** *** **** ***** Computación, Informática & Sistemas
121
Fundamentos de Programación
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.
Computación, Informática & Sistemas
122
Fundamentos de Programación
CAPÍTULO XIV SUBPROGRAMAS USO DE PROCEDIMIENTOS
OBJETIVOS ESPECÍFICOS Defina el propósito de los subprogramas. Realice operaciones que permita implementar subprogramas.
CONTENIDOS Programación estructurada, subprogramas. Tipos de subprogramas, funciones y procedimientos.
Procedimientos, declaración, invocar un procedimientos, paso de parámetros. SUBPROGRAMAS Introducción 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 un módulo independiente. La programación estructurada permite la escritura de 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.
Computación, Informática & Sistemas
123
Fundamentos de Programación
Definición Los subprogramas permiten descomponer un problema en un conjunto de problemas independientes entre sí, más sencillos de resolver y que pueden 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.
Características de los Subprogramas 1. DIVISION EN MODULOS Funcionalidad clara y bien definida. Aislados. Sin dependencias con otros módulos. Entrada/Salida simple y bien definida. 2. ABSTRACCION
Nos centramos en la FUNCIONALIDAD de los módulos. Qué problema resuelve. Que datos necesita. Que datos produce. Bajo qué condiciones se ejecuta. NO importa cómo se resuelve el problema.
3. ENCAPSULAMIENTO Si el método para solucionar una tarea cambia, el aislamiento evita que dicho cambio influya en las otras tareas. El aislamiento de los módulos no puede ser total. Para que pueda colaborar con otros módulos, es necesario conocer. Qué problema resuelve. El intercambio de información. Bajo qué 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.
Computación, Informática & Sistemas
124
Fundamentos de Programación
Alcance De Las Variables: Declaraciones Locales Y Globales Variables locales son aquellas cuyo ámbito de visibilidad coincide exclusivamente con el cuerpo del algoritmo en el que han sido declaradas. Variables globales son aquellas cuyo ámbito de visibilidad se extiende al cuerpo de varios algoritmos. Se denomina efecto lateral al intercambio de información entre dos algoritmos realizado a través de variables globales (es decir, sin utilizar el interfaz). En nuestra metodología de programación, la utilización de variables globales y efectos laterales está prohibida.
Clasificación de los Subprogramas Los subprogramas se clasifican en: Procedimientos o Rutinas Funciones
PROCEDIMIENTOS Definición 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.
Computación, Informática & Sistemas
125
Fundamentos de Programación
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 del procedimiento Suma ( )
INICIO LEER(A, B) SUMA ( ) FIN
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. 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
Computación, Informática & Sistemas
Ejecutar el procedimiento Suma enviando como parámetros el valor de A y B.
126
Fundamentos de Programación
Parámetros Es un tipo especial de variables en un procedimiento a los que se pueden pasar valores desde el exterior del procedimiento. Se declaran en la cabecera 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.
ESTRUCTURA DE UN PROCEDIMIENTO
Opcional
PROCEDIMIENTO Nombre (Lista_Parametros) VAR
:
INICIO
: :
Instrucciones y/o Sentencias
FIN- PROCEDIMIENTO
Computación, Informática & Sistemas
127
Fundamentos de Programación
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 NÚMERO) VARIABLES ENTERO I Procedimiento imprime, INICIO con la declaración de PARA I ← 1 HASTA NÚMERO parámetros ESCRIBIR (Texto) FIN-PARA FIN-PROCEDIMIENTO INICIO LEER (N) Imprime (“HOLA”, N) Imprime (“IDAT”, 20) Imprime (“COMPUTACION”, 50) FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Dim N As Integer SUB IMPRIME(TEXTO AS STRING, NÚMERO AS INTEGER) DIM I AS INTEGER For I=1 to NÚMERO Writeline (Texto) End for END SUB Sub Main() WRITE (“ INGRESE UN VALOR :”) N=READLINE Imprime (“HOLA”, N) Imprime (“CETIS”, 20) Imprime (“UTP”, 50) End Sub End Module
Computación, Informática & Sistemas
128
Fundamentos de Programación
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 ESCRIBIR (M) SINO ESCRIBIR (N) FIN-SI FIN-PROCEDIMIENTO INICIO LEER (A, B) ImprimeMayor (A, B) FIN
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Dim A,B As Integer SUB IMPRIMEMAYOR( M AS INTEGER, N AS INTEGER) IF M>N THEN WRITELINE(“MAYOR ES “ & M) ELSE WRITELINE(“MAYOR ES “ & N) END IF END SUB Sub Main() WRITE (“ INGRESE UN VALOR A :”) A=READLINE WRITE (“ INGRESE UN VALOR B :”) B=READLINE ImprimeMayor (A, B) End Sub End Module
Computación, Informática & Sistemas
129
Fundamentos de Programación
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) ImprimeDivisores (M) FIN
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
Computación, Informática & Sistemas
130
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Dim M As Integer SUB ImprimeSumaMenores (N AS INTEGER) Dim I , SUMA as Integer SUMA=0 FOR I=1 TO N-1 SUMA=SUMA+I END FOR END SUB Sub Main() WRITE(“ INGRESE UN VALOR ENTERO :”) M=READLINE ImprimeSumaMenores (M) End Sub End Module
5. Implemente un procedimiento que permita calcula la suma de las de las cifras de un número 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
Computación, Informática & Sistemas
131
Fundamentos de Programación
6. Implementar un procedimiento que permita calcular y visualizar el menor de tres números 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
Computación, Informática & Sistemas
132
Fundamentos de Programación
EJERCICIOS PROPUESTOS 1. Diseñe un procedimiento que imprima lo siguiente % %% %%% %%%% %%%%% %%%%%% %%%%%%% 2. Diseñe un procedimiento que permita calcular la Serie Fibonacci: 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 número, visualice la cantidad de cifras ceros, pares e impares que tiene el número 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 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 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.
Computación, Informática & Sistemas
133
Fundamentos de Programación
Computación, Informática & Sistemas
134
Fundamentos de Programación
CAPÍTULO XV USO DE FUNCIONES OBJETIVOS ESPECÍFICOS
Defina el propósito de las funciones
Realice operaciones que permita implementar funciones
CONTENIDOS
Funciones
Declaración
Invocar una función, paso de parámetros
Desarrollo práctico.
FUNCIONES Definición 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 por su nombre seguido de los valores que se pasaran a sus respectivos parámetros formales. Una función puede llamar a otra función inclusive puede llamarse a si misma (recursividad).
ESTRUCTURA DE UNA FUNCIÓN FUNCIÓN Nombre (Parámetros): Tipo_Dato VARIABLES
: INICIO
: :
Lista de parámetros Variables locales a nivel función. Instrucciones o Sentencias
RETORNAR (Valor) FIN-FUNCIÓN
Computación, Informática & Sistemas
135
Fundamentos de Programación
EJERCICIOS RESUELTOS 1. Crear una función que retorne el cuadrado de un número entero. ALGORITMO Ejemplo1 VARIABLES ENTERO M FUNCIÓN Cuadrado (ENTERO N): ENTERO INICIO RETORNAR (N * N) FIN-FUNCIÓN INICIO LEER (M) ESCRIBIR (Cuadrado (M) ) FIN CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Dim M As Integer Function Cuadrado (N AS INTEGER) as Integer Return n*n END FUNCTION Sub Main() WRITE(“ INGRESE UN VALOR ENTERO :”) M=READLINE Writeline(“ Llama a la function “ & Cuadrado (M)) End Sub End Module 2. Crear una función que retorne el mayor valor de 2 números enteros. ALGORITMO Ejemplo2 VARIABLES ENTERO A, B FUNCIÓN Mayor (ENTERO M, ENTERO N): ENTERO INICIO SI (M > N) ENTONCES RETORNAR (M) SINO RETORNAR (N) FIN-SI FIN-FUNCIÓN INICIO LEER (A, B) ESCRIBIR (Mayor (A, B) ) FIN
Computación, Informática & Sistemas
136
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Dim a,b As Integer Function Mayor (m as integer, N AS INTEGER) as Integer IF M>N THEN RETURN M ELSE RETURN N END IF END FUNCTION Sub Main() WRITE(“ INGRESE UN VALOR ENTERO :”) A=READLINE WRITE(“ INGRESE UN SEGUNDO ENTERO :”) B=READLINE Writeline(“ Llama a la function “ & MAYOR (A,B)) End Sub End Module
3. Crear una función que retorne la suma de la cifras de un número entero. ALGORITMO Ejemplo3 VARIABLES ENTERO M FUNCIÓN 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-FUNCIÓN INICIO LEER (M) ESCRIBIR (SumaCifras (M) ) FIN
Computación, Informática & Sistemas
137
Fundamentos de Programación
Computación, Informática & Sistemas
138
Fundamentos de Programación
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Dim M As Integer Function SumaCifras ( N AS INTEGER) as Integer Dim suma, cifra as Integer Suma=0 Do while n<>0 Cifra= n mod 10 Suma=suma+cifra N=n \10 Loop Return suma End Function Sub Main() WRITE(“ INGRESE UN VALOR ENTERO :”) m=READLINE Writeline(“ Llama a la function “ & SumaCifras (M)) End Sub End Module 4. Crear una función que retorne el factorial de un número entero. ALGORITMO Ejemplo4 VARIABLES ENTERO M FUNCIÓN Factorial (ENTERO N ) : ENTERO VARIABLES ENTERO Facto, I INICIO Facto ← 1 PARA I ← 1 HASTA N Facto ← Facto * I FIN-PARA RETORNAR ( Facto ) FIN-FUNCIÓN INICIO PARA M ← 1 HASTA 5 ESCRIBIR (Factorial ( M ) ) FIN-PARA FIN
Computación, Informática & Sistemas
139
Fundamentos de Programación
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 FUNCIÓN 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-FUNCIÓN INICIO LEER (M) ESCRIBIR (SumaMaxMin (M)) FIN 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 FUNCIÓN 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-FUNCIÓN INICIO LEER (M) ESCRIBIR (SumaPares (M) ) FIN
Computación, Informática & Sistemas
140
Fundamentos de Programación
7. Implementar una función que retorne la suma de los elementos de la siguiente serie:
1+8+27+64+…+1000
ALGORITMO Ejercicio7
FUNCIÓN SumaSerie (): ENTERO VARIABLES ENTERO
SUMA
INICIO PARA N ← 1 HASTA 10 SUMA ← SUMA + (N ↑ 3) FIN-PARA RETORNAR SUMA FIN-FUNCIÓN
INICIO ESCRIBIR (SumaSerie ()) FIN
Computación, Informática & Sistemas
141
Fundamentos de Programación
EJERCICIOS PROPUESTOS 1. Implemente una función que permita calcular el factorial del número ingresado.
2. Implemente una función que retorne un mensaje indicando si es “primo” o “no primo” de un número ingresado.
3. Implemente una función que retorne un mensaje indicando si es “PERFECTO” o “NO ES PERFECTO” de un número ingresado por teclado.
4. Implemente una función que retorne la suma de todos los números de 3 cifras compuestos por cifras diferentes impares.
5. Elabore una función que permita convertir un número de base 10 a un número de otra base, para ello ingrese el número 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 función que permita retornar la suma de la serie, donde N es ingresado por teclado: 1, 4, 9, 16,… N2
7. Elabore una función que retorne la suma de N términos de la siguiente serie: 1 + 1/32 + 1/52 + 1/72 + 1/92+............................
8. Elabore una función que retorne la suma de los N términos de la siguiente serie: 1 + 1/2 + 2/3 + 3/4 + 4/5+............................
Computación, Informática & Sistemas
142
Fundamentos de Programación
CAPITULO XVI USO DE VECTORES Y MATRICES
OBJETIVOS ESPECÍFICOS Defina el propósito de los arreglos o vectores su importancia Realice operaciones que permita implementar procesos estadísticos
CONTENIDOS Sintaxis , la forma como emplear los vectores Tipos de arreglos, de acuerdo a su contenido Objetivo: Indicarle al alumno el uso correcto de los Arreglos para determinar el manejo de los elementos (items) que puede almacenar un programa en forma volátil por medio de una posición la cual es manejada por un índice que empieza desde 0 hasta el número de elementos -1 del tamaño original del vector para realizar un proceso o n procesos cuando son llamados.
Cabe resaltar cada punto será afianzada por dada clase que se tratara hasta que el alumno identifique los temas y sus ideas queden más claras.
Arreglos • Definición tipos. o
Arreglos Unidimensionales (Vectores).
• Declaración. • Algoritmos básicos. • Ejercicios.
Computación, Informática & Sistemas
143
Fundamentos de Programación
QUE ES UN ARREGLO Un arreglo es una colección de elementos homogéneos que se encuentra compartiendo una misma zona de memoria en áreas contiguas (consecutivas). Los arreglos se clasifican en unidimensionales y multidimensionales. Los elementos de un arreglo pueden ser de cualquier tipo (enteros, reales, caracteres, cadenas, etc.) Los elementos de un arreglo se enumeran a partir del índice CERO y van en aumento de 1 en 1. Para acceder a los elementos de un arreglo se hace uso del nombre del arreglo seguido de un índice cerrado entre paréntesis, este índice representa la posición del elemento en el arreglo. Sintaxis de declaración para un arreglo unidimensional Sintaxis: VARIABLES Tipo_Dato
Nombre_Arreglo (Número_Elementos)
Computación, Informática & Sistemas
144
Fundamentos de Programación
EJERCICIOS RESUELTOS 1. Elabore un algoritmo para ingresar y visualizar los elementos de un arreglo unidimensional de tipo entero
ALGORITMO Ejemplo1 CONSTANTES MAX = 10 VARIABLES ENTERO A (MAX), I INICIO PARA I ← 0 HASTA MAX-1 LEER(A ( I ) ) FIN-PARA PARA I ← 0 HASTA MAX-1 ESCRIBIR( A( I ) ) FIN-PARA FIN
2. Calcular la suma de los elementos contenidos en un arreglo de tipo entero. ALGORITMO Ejemplo2 CONSTANTES MAX = 10 VARIABLES ENTERO M(MAX), I, SUMA INICIO SUMA ← 0 PARA I ← 0 HASTA MAX-1 LEER( M(I) ) SUMA ← SUMA + M( I ) FIN-PARA ESCRIBIR( SUMA ) FIN
3. Calcular el promedio de los elementos contenidos en un arreglo de tipo entero. ALGORITMO Ejemplo3 CONSTANTES MAX = 10 VARIABLES ENTERO M(MAX), I, SUMA, PROMEDIO INICIO SUMA ← 0 PARA I ← 0 HASTA MAX-1 LEER( M(I) ) SUMA ← SUMA + M( I ) FIN-PARA PROMEDIO ← SUMA DIV MAX ESCRIBIR( PROMEDIO ) FIN
Computación, Informática & Sistemas
145
Fundamentos de Programación
4. Calcular el mayor y menor valor de los elementos contenidos en un arreglo de tipo entero ALGORITMO Ejemplo4 CONSTANTES MAX = 10 VARIABLES ENTERO M(MAX), I, MAYOR, MENOR INICIO PARA I ← 0 HASTA MAX-1 LEER( M(I) ) FIN-PARA MAYOR ← M(0) : MENOR ← M(0) PARA I ← 1 HASTA MAX-1 SI( M(I) > MAYOR)ENTONCES MAYOR ← M(I) FIN-SI SI( M(I) < MENOR)ENTONCES MENOR ← M(I) FIN-SI FIN-PARA ESCRIBIR(“MAYOR=“,MAYOR,” MENOR=“, MENOR) FIN
5. Realice el proceso de búsqueda de un valor entre los elementos contenidos en un arreglo de tipo entero ALGORITMO Ejemplo5 CONSTANTES MAX = 10 VARIABLES ENTERO M(MAX), I, DATO, POSICION INICIO PARA I ← 0 HASTA MAX-1 LEER( M(I) ) FIN-PARA LEER( DATO ) POSICION ← -1 PARA I ← 0 HASTA MAX-1 SI( M(I) = DATO )ENTONCES POSICION ← I : I ← MAX-1 FIN-SI FIN-PARA SI( POSICION <> - 1 )ENTONCES ESCRIBIR(“DATO ENCONTRADO”) SINO ESCRIBIR(“DATO NO ENCONTRADO”) FIN-SI FIN
Computación, Informática & Sistemas
146
Fundamentos de Programación
EN VISUAL BASIC: Ejemplo realizar una aplicación para ingresar un número de elementos a un array de tamaño 10 luego visualizar su contenido con la posición de memoria correspondiente.
Ps Algoritmo array1 Variables i,n : entero a(10) : real Inicio Leer "ing # de elementos.:",n-1 si (n>10) entones imprimir " error desbordamiento de division..:" si no para i=0 hasta n Leer "ing elementos al array",a(i) fin para para i=0 hasta n imprimir " índice #: ",i," valor es: ", a(i) fin para fin si Fin.
Computación, Informática & Sistemas
Pro Imports System.Console Module array1 Sub main() Dim i, n As Integer Dim a(10) As Decimal Write("ing # de elementos al array..:") n = CInt(ReadLine()) - 1 If (n > 10) Then WriteLine("error desbordamiento de division..:") Else 'ingresar elementos al array For i = 0 To n Write("ing elementos al array..:") a(i) = CDec(ReadLine()) Next WriteLine("") ' imprimir For i = 0 To n WriteLine(" indice #.: " & i & " valor es..: " & a(i)) Next End If ReadLine() End Sub End Module
147
Fundamentos de Programación
Realizar el ps correspondiente al programa para sumar dos vectores
Ps
Pro Imports System.Console Module suma Sub main() Dim i, n As Integer Dim a1(12), b1(12), S(12) As Decimal Write("ING NÚMERO DE ELEMENTOS..:") n = CInt(ReadLine()) - 1 If (n > 12) Then WriteLine("error desbordamiento de division.:") Else ' primer array For i = 0 To n Write("ing elementos al array a1.:") a1(i) = CDec(ReadLine()) Next WriteLine("") ' segundo array For i = 0 To n Write("ing elementos al array b1.:") b1(i) = CDec(ReadLine()) Next WriteLine("") ' calculo de la suma For i = 0 To n S(i) = a1(i) + b1(i) Next ' imprimir la suma For i = 0 To n WriteLine("indice #.: " & i & " valor es.:" & S(i)) Next End If ReadLine() End Sub End Module
La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave).
Computación, Informática & Sistemas
148
Fundamentos de Programación
La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.
Aquí su formato.
Ps
Pro
bandera=0
bandera = 0
Leer
WriteLine("ing elemento a buscar..:")
“ing elemento a buscar”,bu Para i=0 hasta n
bu = CDec(ReadLine()) For i = 0 To n
Si(array(i)=bu) entonces
If (a(i) = bu) Then
Imprimir “item”, array(i), “encontrado en.:”, i
WriteLine("item:" & array(i) & "encontrado en" & i)
Bandera=1 Fin si
bandera = 1 End If
Fin para
Next
Si (bandera=0) entonces
If (bandera = 0) Then
Imprimir “no se encontró.:”
WriteLine("No se encontro elemento") End If
Fin si
Realizar ejemplos propuestos por el profesor. Anular elementos en un array.
Consiste en anteponer el valor 0 encima del valor original del array Se debe emplear el método de búsqueda y preguntar si desea anularlo o no al momento de imprimirlo debe preguntar si este es mayor que 0 para q no muestre la anulación respectiva.
Computación, Informática & Sistemas
149
Fundamentos de Programación
Ps Desarrollar el ps.
Pro bandera = 0 WriteLine("ingresar elemento a buscar..:") bu = CDec(ReadLine()) For i = 0 To n If (a(i) = bu) Then WriteLine("Elemento.: " & a(i) & " fue encontrado ") bandera = 1 WriteLine(" Desea anular el item " & a(i) & " (s/n) ") s = CChar(ReadLine()) If (s = "s") Then WriteLine(" El item " & a(i) & " fue anulado en pos.:" & i) a(i) = 0 WriteLine("") WriteLine("los nuevos elementos son.:") WriteLine("") For si = 0 To n If a(si) > 0 Then WriteLine(a(si)) End If Next si End If End If Next i If (bandera = 0) Then WriteLine("No se encontro elemento") End If
Ordenamiento de datos:
Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado de objetos en una secuencia determinada. Cuando se analiza un método de ordenación, hay que determinar cuántas comparaciones e intercambios se realizan para el caso más favorable, para el caso medio y para el caso más desfavorable. Intercambio:
El método de intercambio se basa en comparar los elementos del arreglo e intercambiarlos si su posición actual o inicial es contraria inversa a la deseada. Ejemplo:
Computación, Informática & Sistemas
150
Fundamentos de Programación
Computación, Informática & Sistemas
151
Fundamentos de Programación
Formato del método por burbuja. Variables a trabajar. Índice secun = si y debe ser entero Temp= temporal q almacena el valor del array y debe ser del mismo tipo que este. Ps Para i=0 hasta n Para índice secun=1 +1 hasta n Si (array(i) > array(índice secun)) entonces Temp=array (índice secun) Array(índice secun)=array(i) Array(i)=temp Fin si Fin para índice secun Fin para i Para i=0 hasta n Imprimir Array(i) Fin para i
Pro For i = 0 To n For si = i + 1 To n If (a(i) > a(si)) Then temp = a(si) a(si) = a(i) a(i) = temp End If Next si Next i For i = 0 To n WriteLine(a(i)) Next
Problemas propuestos 1) Calcular el promedio de 50 valores almacenados en un vector. Determinar además cuantos son mayores que el promedio, imprimir el promedio, el número de datos mayores que el promedio y una lista de valores mayores que el promedio. 2) Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector A con el elemento uno del vector B y así sucesivamente hasta 45, almacenar el resultado en un vector C, e imprimir el vector resultante. 3) Llenar un vector de 20 elementos, imprimir la posición y el valor del elemento mayor almacenado en el vector. Suponga que todos los elementos del vector son diferentes. 4) Almacenar 500 números en un vector, elevar al cuadrado cada valor almacenado en el vector, almacenar el resultado en otro vector. Imprimir el vector original y el vector resultante. 5) Almacenar 300 números en un vector, imprimir cuantos son ceros, cuántos son negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos. 6) Almacenar 150 números en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.
Computación, Informática & Sistemas
152
Fundamentos de Programación
7) Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un algoritmo que escriba la palabra “Iguales” si ambos vectores son iguales y “Diferentes” si no lo son. Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para todos los elementos.
8) Se tiene el vector A con 100 elementos almacenados. Diseñe un algoritmo que escriba “SI” si el vector esta ordenado ascendentemente o “NO” si el vector no está ordenado
9) Diseñe un algoritmo que lea un número cualquiera y lo busque en el vector X, el cual tiene almacenados 80 elementos. Escribir la posición donde se encuentra almacenado el número en el vector o el mensaje “NO” si no lo encuentra. Búsqueda secuencial.
10) Diseñe un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique el primer elemento de A con el último elemento de B y luego el segundo elemento de A por él diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo en un vector C.
11) Diseñe un algoritmo que almacene en un vector llamado FIB[100] los 100 primeros números de la serie fibonacci.
Computación, Informática & Sistemas
153
Fundamentos de Programación
MATRICES
OBJETIVO:
Indicarle al alumno el uso correcto de los arreglos bidimensionales para determinar el manejo de los elementos que tiene un programa para realizar un proceso o n procesos cuando son llamados. En estos procesos tenemos que tener en cuenta el número de filas y columnas atrabajar.
Cabe resaltar cada punto será afianzada por dada clase que se tratara hasta que el alumno identifique los temas y sus ideas queden más claras.
TEMAS: ARREGLOS o Arreglos bidimensionales (Vectores). • Declaración inicialización y asignación. • Ejemplos de arreglos bidimensionales • Ejercicios.
Las variables utilizar son. Nf ._ número de filas Nc ._ número de columnas Fi ._ fila índice Ci ._ columna índice Todas de tipo entero. Cabe resaltar que la fila prevalece sobre la columna para todo tipo de operación. Aquí su formato para declarar. Ps Nf,nc,fi,ci : entero X(5,5), y(5,5), s(5,5) : real
Computación, Informática & Sistemas
Pro Dim Nf,nc,fi,ci as integer Dim x(5, 5), y(5, 5), s(5, 5) As double Dim a3(,,) As Integer Dim c3(,,) As Integer = {{1, 2}, {3, 4}, {5, 6},{7, 8}, {9, 10}, {11, 12},{{13, 14}, {15, 16}, {17, 18},{{19, 20}, {21, 22}, {23, 24}}
154
Fundamentos de Programación
Arrays Bidimensionales Todos los arrays vistos hasta el momento han sido de tipo unidimensional, es decir, estaban compuestos de una lista de valores única. .NET Framework nos provee también de la capacidad de crear arrays formados por más de una lista de valores, o lo que es igual, arrays multidimensionales. Un array de este tipo, se caracteriza por estar compuesto de varias dimensiones o listas anidadas al estilo de filas y columnas. Si declaramos un array del modo que muestra Dim iDatos(2, 4) As Integer Crearíamos un array multidimensional formado por tres filas y cinco columnas. En este caso, el número correspondiente a la primera dimensión denota las filas, mientras que el número de la segunda dimensión hace lo propio para las columnas. La Figura 209 muestra un diagrama con la estructura de este array. Crear array multidimensional y rellenar de valores Dim iDatos(2, 4) As Integer iDatos(0, 0) = 1000 iDatos(0, 1) = 2000 iDatos(0, 2) = 3000 iDatos(0, 3) = 4000 iDatos(0, 4) = 5000 iDatos(1, 0) = 25 iDatos(1, 1) = 35 iDatos(1, 2) = 45 iDatos(1, 3) = 55 iDatos(1, 4) = 65 iDatos(2, 0) = 111 iDatos(2, 1) = 222 iDatos(2, 2) = 333 iDatos(2, 3) = 444 iDatos(2, 4) = 555 Para recorrer arrays multidimensionales, la clase Array dispone de varios , algunos de los cuales, describimos seguidamente. Rank. Devuelve el número de dimensiones del array. GetLength(Dimension). Devuelve el número de elementos de la dimensión de array pasada como parámetro. GetLowerBound(Dimensión). Devuelve el número de índice inferior de la dimensión pasada como parámetro.
Computación, Informática & Sistemas
155
Fundamentos de Programación
GetUpperBound(Dimension). Devuelve el número de índice superior de la dimensión pasada como parámetro.
Es un array en que el de sus elementos lo hace con más de in índice, trabajando así con uno principal para las filas y otro secundario para el número de columnas. •
Sintaxis. •
Para leer
Para índice de fila= 0 hasta número de elementos de filas Para índice de columna= 0 hasta número de elementos de columnas Leer “ingresar elementos al array :”, arreglo(indicefila, índice columna) Fin para índice de la columna Fin para indice de la fila Para imprimir (“ indice - elemento”)
Para indice de fila= 0 hasta número de elementos de filas Para indice de columna= 0 hasta número de elementos de columnas Leer “(”, ind ice fila, ind ice columna,”)”, arreglo(indicefila, indice columna) Fin para indice de la columna Fin para indice de la fila
Computación, Informática & Sistemas
156
Fundamentos de Programación
EJEMPLOS Ejemplo 1 : Realizar una matriz de nf =5 nc =5, para ingresar las marcar de 5 atletas al final visualizar los intentos de cada atleta, el número de atletas que pasaron la marca y el atleta que tiene mayor marca. Algoritmo Matriz1 Variables a(5, 4) : real i, x : entero t, sm, prom : real INICIO para i = 1 hasta 5 Para x = 1 hasta 4 Imprimir "Ingrese intentos {0} del atleta {1}", x, i), a(i, x) Fin para x Fin para i Para i = 1 hasta 5 Imprimir "atleta {0}", i Para x = 1 hasta 4 Imprimir "intentos {0} {1}", i, a(i, x) Fin para x Fin para i t←0 Para i = 1 hasta 5 Si (a(i, 1) < a(i, 2)) o (a(i, 1) < a(i, 3)) o (a(i, 1) < a(i, 4)) entonces t←t+1 Fin si Fin para Imprimir "Número de atletas que pasaron la primera marca ", t Para i = 1 hasta 5 sm ← 0 Para x = 1 hasta 4 sm ← sm + a(i, x) Fin para prom ← sm / 4 Imprimir " el promedio del atleta {0} es {1}", i, prom Fin para sm ← 0 para i = 1 hasta 5 Para x = 1 hasta 4 Si (a(i, x) > sm) entonces sm ← a(i, x) Fin si Fin para x Fin para i Imprimir " La marca más alta entre los atletas es {0}", sm Fin.
Computación, Informática & Sistemas
157
Fundamentos de Programación
Ejemplo 2 : Realizar una matriz de 5 filas y 5 columnas ingresar los elementos y determinar cuáles son pares. Algoritmo Matriz2 Variables n(5, 5) : entero fi, ci, : entero INICIO Para fi = 1 hasta 5 Para ci = 1 hasta 5 Imprimir "Ingrese elementos a la matriz n(" , fi , "," , ci , ")", n(fi, ci) Fin para ci Fin para fi ← 0 Para fi = 1 hasta 5 Para ci = 1 hasta 5 Si (n(fi, ci) Mod 2 = 0) entonces ← + 1 Fin si Fin para ci Fin para fi Imprimir "pares d la matriz {0}", Fin.
Computación, Informática & Sistemas
158
Fundamentos de Programación
Ejemplo 3 : Realizar una aplicación para ingresar elementos a una matriz de nf = 8, nc = 7, realizar las siguientes operaciones matemáticas.
Algoritmo Matriz3 Variables z(9, 9) : real a, b, c, fi, ci, nf, nc : entero INICIO Leer "Ing. número de filas ..:", nf - 1 "Ing. número de columnas ..:", nc - 1 Si (nf > 8) y (nc > 8) entonces "Horror" Sino Imprimir "matrix de " , (nf * nc) , "--> elementos" Para fi = 1 hasta nf Para ci = 1 hasta nc Imprimir "(" , fi , "," , ci ")->" Leer "ing valor de A :", a "ing valor de B :", b "ing valor de C :", c Calcular z(fi, ci) ← Pow(a, 2) + Pow(b, 2) + Pow(c, 2) Fin para ci Fin para fi Para fi = 1 hasta nf Para ci = 1 hasta nc Imprimir "(" , fi , "," , ci , ")--->", z(fi, ci) Fin para ci Fin para fi fin si Fin.
Computación, Informática & Sistemas
159
Fundamentos de Programación
Ejemplo 4. Realizar una aplicación para ingresar elementos a dos matrices: nf = 9, nc = 9, realizar las siguientes operaciones matemáticas.
Algoritmo Matriz4 Variables x(9, 9), y(9, 9) : real a, b, c, fi, ci, nf, nc : entero INICIO Leer "Ing. número de filas ..:", nf - 1 "Ing. número de columnas ..:", nc - 1 Si (nf > 8) y (nc > 8) entonces "Error“ Sino "matrix de " , (nf * nc) , "--> elementos" Para fi = 1 hasta nf Para ci = 1 hasta nc Imprimir "(" , fi , "," , ci , ")->" Leer "ing valor de A :", a "ing valor de B :", b "ing valor de C :", c Calcular x(fi, ci) ← (b + Pow(b, 2) - 4 * a * c) / 2 y(fi, ci) ← (c + 1 * a + 1) + ((c - 2) + (b + 2)) Fin para ci Fin para fi "indice valor x(i)", "indice valor y(i)“ Para fi = 1 hasta nf Para ci = 1 hasta nc Imprimir "(" , fi , "," , ci , ")--->" , x(fi, ci) , "(" , fi , "," , ci , ")--->" , y(fi, ci) Fin para ci Fin para fi Fin si Fin.
Computación, Informática & Sistemas
160
Fundamentos de Programación
Ejercicio 5 Realizar una aplicación para ingresar elementos a una matriz nf = 20, nc = 15 acumularlos, luego visualizar la matriz. Algoritmo Matriz5 Variables m(20, 15), am : real fi, ci, nf, nc, cm : entero INICIO Leer "Ing. número de filas ..:", nf - 1 "Ing. número de columnas ..:", nc - 1 Si (nf > 8) y (nc > 8) entonces "Error“ Sino am ← 0 Imprimir "matrix de " , (nf * nc) , "elementos" Para fi = 1 hasta nf Para ci = 1 hasta nc "Ing. Items matrix m (" , fi , ", " , ci , ")-->", m(fi, ci) am ← am + m(fi, ci) Fin para ci Fin para fi Para fi = 1 hasta nf Para ci = 1 hasta nc "(" , fi , " , " , ci , ")" , m(fi, ci) Fin para ci Fin para fi Imprimir "suma de elementos .: ", am Fin si Fin.
Computación, Informática & Sistemas
161
Fundamentos de Programación
APLICACIONES CON ARREGLOS BIDIMENSIONALES I (o Matrices)
OBJETIVOS:
Desarrollar aplicaciones que utilicen la estructura de datos array bidimensional, con las principales operaciones sobre el: recorrido, suma por filas, suma por columnas, operaciones basicas con matrices
Problema 1. Dada una matriz A de orden NxM hallar su matriz transpuesta Problema 2. Dada dos matrices A y B de orden NxM calcular la suma Problema 3. Escribir un programa que genere dos matrices de dimensiones NxM y MxP a partir de los valores leídos por teclado, y realice el producto de las dos matrices, mostrando la matriz resultante. Problema 3. Introducir un valor del 1 al 20 en un arreglo bidimensional de 5 filas y 4 columnas, el número que se introduzca, digamos 3 debe almacenarse en la casilla correspondiente; y los demás valores valdrán 0; si se ingresa el 15; si se ingresa el 8 y así sucesivamente, se tendría esta matriz:
0 0 3 0
Los valores solo van a ser validos del 1 al 20; si yo pongo otro fuera de ese parámetro me debe de rechazar el valor y pedir otra vez el valor. También
0 0 0 8 0 0 0 0
debe pedir si se quiere introducir más datos, y mostrar la tabla; si se introduce un valor ya repetido que debe marcar que el dato ya existe, mostrar el mensaje para introducir nuevamente.
Problema 4. Un comercio utiliza para la atención a sus clientes 5 cajeros (1,2,3,4,5) por cada transacción se ingresa el número de cajero e importe de la transacción, que puede ser retiro, deposito y otros. El proceso finaliza cuando en número de caja se ingresa cero. Determinar: a) total de ingresos, retiros y otros en cada caja b) cual fue el cajero con menos ingresos y con mayores retiros c) visualizar el total por cada caja. Problema 5.
Computación, Informática & Sistemas
162
Fundamentos de Programación
En un arreglo se almacenan las X calificaciones finales en el primer ciclo de Y alumnos. Escriba un programa que calcule e imprima: a) El promedio ponderado en el ciclo de cada alumno, si paralelo a las calificaciones por curso se tiene los créditos de cada curso del primer ciclo. b) Número de cursos aprobados y desaprobados de cada alumno c) Porcentaje de alumnos con promedio ponderado aprobado en el ciclo. d) Número de alumnos con promedio mayor o igual a 8. Problema 6. Se desea desarrollar un programa que relacione la información de los síntomas que padece un paciente con la información de los síntomas de las diferentes enfermedades. El nombre de los pacientes debe colocarse en un vector, el nombre de las enfermedades debe colocarse en otro vector, la información sobre los síntomas de cada paciente está codificada en una matriz en donde las filas representa cada paciente y las columnas los diferentes síntomas que padece y la información de los síntomas de cada enfermedad debe colocarse en una matriz en donde las filas representan las diferentes enfermedades y las columnas los síntomas de cada enfermedad. Las matrices de síntomas tendrán solamente los valores verdadero o falso, en donde verdadero representa que el síntoma está presente en la enfermedad o en el paciente, según sea el caso, y falso lo contrario. El programa debe: Generar un reporte de los pacientes con la enfermedad que padecen Generar un reporte con la enfermedad más común, el número de pacientes que la tienen y el porcentaje. Generar un reporte con la enfermedad menos común, el número de pacientes que la tienen y el porcentaje.
Problema 7. Escribir un programa que determine si un matriz A de NxN es simétrica o no. La matriz es simétrica si se cumple que A[i][j]=A[j][i]. Problema 8. Escribir un programa que lea los elementos de una matriz A de NxN y retorne la transpuesta de A en otra matriz B de NXN, tal que B[i][j]=A[j][i]. Problema 9. Hacer un algoritmo que permita obtener el productos de dos matrices A[i][j] y B[j][k].
Problema 10. Hacer un algoritmo que permita rotar los elementos del contorno de una matriz NxM en sentido horario (Los elementos internos serán ceros) Computación, Informática & Sistemas
163
Fundamentos de Programación
Problema 11 Obtener la transpuesta de una matriz
a) Cuadrada b) No cuadrada (teniendo en cuenta de que tamaño deberá ser la nueva matriz) Problema 12. Se tiene una matriz, intercambiar los elementos de 2 renglones seleccionados por el .
Problema 13. Obtener en un arreglo la suma de los elementos de cada columna par de una matriz y el producto de los elementos de cada columna impar de la misma matriz.
Computación, Informática & Sistemas
164
Fundamentos de Programación
Computación, Informática & Sistemas
165
Fundamentos de Programación
Computación, Informática & Sistemas
166
Fundamentos de Programación
Ejemplo Nro. 1: Ingresar 2 números enteros y luego visualizar el mayor valor de estos números. 1.1 Código en Visual Basic .NET
Resultado en Consola Visual Basic .Net
Computación, Informática & Sistemas
167
Fundamentos de Programación
1.2 Código en Java
Resultado en Consola de Java JCreator
Computación, Informática & Sistemas
168
Fundamentos de Programación
Ejemplo Nro. 2: Una tienda comercial ofrece a sus clientes un descuento del 3% del total de compra si el número de productos adquiridos es mayor a 5. Calcular el total a pagar por una compra. 2.1 Código en Visual Basic .NET
Resultado en Consola Visual Basic .Net
Computación, Informática & Sistemas
169
Fundamentos de Programación
2.2 Código en Java
Resultado en Consola de Java JCreator
Computación, Informática & Sistemas
170
Fundamentos de Programación
Ejemplo Nro. 3: Una empresa otorga a sus trabajadores una bonificación equivalente al 5% del salario por cada hijo que tenga el trabajador. Calcular la bonificación y el total a pagar a un trabajador. 3.1 Código en Visual Basic .NET
Resultado en Consola Visual Basic .Net
Computación, Informática & Sistemas
171
Fundamentos de Programación
3.2 Código en Java
Resultado en Consola en Java JCreator
Computación, Informática & Sistemas
172
Fundamentos de Programación
Ejemplo 4: Ingrese un número entre 1 y 999 y visualice el número de cifras que lo componen. 4.1 Código en Visual Basic .NET
Resultado en Consola Visual .Net
Computación, Informática & Sistemas
173
Fundamentos de Programación
4.2 Código en Java
Resultado en Consola en Java JCreator
Computación, Informática & Sistemas
174
Fundamentos de Programación
Ejemplo 5: Ingresar un número entre 1 y 5, luego visualizar su equivalente en letras. 5.1 Código en Visual Basic .NET
Resultado en Consola en Visual Basic .Net
Computación, Informática & Sistemas
175
Fundamentos de Programación
5.2 Código en Java
Resultado en Consola en Java JCreator
Computación, Informática & Sistemas
176
Fundamentos de Programación
BIBLIOGRAFIA
Fundamentos de Programación
: Luis Joyanes Aguilar
Fundamentos de Programación
: Manuel Santos Ismael Patiño
Fundamentos de Programación
: Jesús Carretero Felix García José Manuel Pérez Alejandro Calderón Javier Fernandez
Direcciones Internet http://www.ulpgc.es/otros/tutoriales/mtutor/indice.html http://www.programacion.com/java/tutorial/jap_data_alg/ http://pjsml.50megs.com/java/algoritmos.html http://www.csgabriel.edu.ec/java/
Computación, Informática & Sistemas
177