Академический Документы
Профессиональный Документы
Культура Документы
Desarrollo y Edicin a cargo del Programa de Computacin e Informtica. Director Ejecutivo Coordinador Acadmico Coordinador Administrativo Diseo y Diagramacin Elaborado por : Ing. Rolando Rojas Gallo : Ing. Jos Garca La Riva : Sr. Julio Cabrera Calle : Srta. Bettina Chvez Huamn Srta. Flor Alicia Vega Collazos : Ing. Rolando Rojas Gallo Ing. Jos Garca La Riva Ing. Alberto Moreno Cueva : Departamento de Impresiones del Grupo IDAT
Produccin
Los derechos de edicin, distribucin y contenidos de este texto son de exclusividad del GRUPO IDAT.
Fundamentos de Programacin
PRESENTACIN
Esta gua didctica es un material de ayuda institucional, perteneciente a las especialidades de Computacin, Informtica & Sistemas, Redes & Comunicaciones, Soporte y Seguridad Informtica e Ingeniera de Software; tiene por finalidad proporcionar los conocimientos de Fundamentos de Programacin, orientado a los estudiantes del primer ciclo de estudios. El Grupo IDAT, lder en la enseanza tecnolgica a nivel superior, promueve la elaboracin de materiales educativos, en concordancia a las exigencias de las tecnologas de estos tiempos, que permiten la creacin de nuevas herramientas de aprendizaje con el objetivo de facilitar el acceso de los estudiantes a la educacin en el marco del desarrollo tecnolgico de la Informtica y de las Telecomunicaciones. El texto se divide en dos unidades y quince captulos. Permite conocer las herramientas indispensables para la elaboracin de un algoritmo. Se inicia con el reconocimiento de las herramientas bsicas que se necesitarn para dar solucin a una determinada proposicin o problema. En este proceso el alumno aprender instrucciones que le permitir evaluar expresiones para luego procesar un conjunto de sentencias. Tambin 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 implementacin y uso de Sub Programas (Procedimientos y Funciones). Todas estas herramientas darn un soporte slido al alumno para que aprenda a programar en cualquier Lenguaje de Programacin Estructurado, adems de los Lenguajes de Programacin Orientados a Objetos (POO): Java, C++, C#, Delphi, Perl, Phyton, PHP (Versin 5), Ruby, Smalltalk, Turbo Pascal, ActionScript. Esperamos que este material en su primera edicin, sirva de gran ayuda a los estudiantes Idatinos y contribuya en el proceso de su formacin profesional.
Fundamentos de Programacin
Fundamentos de Programacin
NDICE
Nro. Pg. UNIDAD I.. 09 CAPTULO I.CAPTULO II.Introduccin a la Algortmica.... 11 Datos y Tipos de Datos.. 17
CAPTULO III.- Variables y Constantes.. 23 CAPTULO IV.- Estructuras Bsicas .. 27 CAPTULO V.Estructuras Secuenciales .. 31
CAPTULO VI.- Estructuras Condicionales y Simples . 51 CAPTULO VII.- Estructuras Condicionales Dobles . 59 CAPTULO VIII.- Estructuras Condicionales Mltiples. 69 UNIDAD II. 79 CAPTULO IX.- Estructuras Condicionales Anidadas .. 81 CAPTULO X.Estructuras Selectivas ... 89
CAPTULO XI.- Estructuras Repetitivas Para Hacer 97 CAPTULO XII.- Estructuras Repetitivas Mientras Hacer 107 CAPTULO XIII.- Estructuras Repetitivas Repetir Hasta. CAPTULO XIV.- Subprogramas Uso de Procedimientos.. 115 123
CAPTULO XV.- Uso de Funciones 135 CAPTULO XVI.- Uso de Vectores y Matrices 143 APNDICES. 165 BIBLIOGRAFA.. 177
Fundamentos de Programacin
Fundamentos de Programacin
Fundamentos de Programacin
Fundamentos de Programacin
OBJETIVOS ESPECFICOS
1. Introduccin a la Algortmica. 2. Conceptualizar el Algoritmo y definir las caractersticas
ALGORITMOS
Un algoritmo es un procedimiento a seguir, para resolver un problema en trminos de: 1. Las acciones por ejecutar. 2. El orden en que dichas acciones deben ejecutarse. Un algoritmo nace en respuesta a la aparicin de un determinado problema. Un algoritmo est compuesto de una serie finita de pasos que convergen en la solucin de un problema, pero adems estos pasos tienen un orden especfico. Entenderemos como problema a cualquier accin o evento que necesite cierto grado de anlisis, desde la simpleza de cepillarse los dientes hasta la complejidad del ensamblado de un automvil. En general, cualquier problema puede ser solucionado utilizando un algoritmo, en este sentido podemos utilizar los algoritmos para resolver problemas de cmputo. Un algoritmo para un programador es una herramienta que le permite resaltar los aspectos ms importantes de una situacin y descartar los menos relevantes. Todo problema de cmputo se puede resolver ejecutando una serie de acciones en un orden especfico. Por ejemplo considere el algoritmo que se elaborara para el problema o situacin de levantarse todas las maanas para ir al trabajo:
11
Fundamentos de Programacin
1. 2. 3. 4. 5. 6.
Salir de la cama Quitarse el pijama Ducharse Vestirse Desayunar Arrancar el automvil para ir al trabajo o tomar transporte.
Ntese que en el algoritmo anterior se ha llegado a la solucin del problema en 6 pasos, y no se resaltan aspectos como: colocarse los zapatos despus 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 perdera lgica, un buen programador deber reconocer esos aspectos importantes y tratar de simplificar al mnimo su problema. Es importante recalcar que los pasos de un algoritmo no son conmutativos pues, no dara solucin 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 ningn 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.
12
Fundamentos de Programacin
DEFINICIN DE UN ALGORITMO
El Algoritmo es una secuencia de pasos lgicos necesarios para llevar a cabo una tarea especfica, como la solucin de un problema. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programacin y ejecutarse en una computadora distinta; sin embargo el algoritmo ser siempre el mismo.
13
Fundamentos de Programacin
CARACTERSTICAS DE UN ALGORITMO
Las caractersticas del algoritmo son: Debe ser preciso e indicar el orden de realizacin 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 algn momento; o sea debe de tener un nmero finito de pasos.
ESTRUCTURA DE UN ALGORITMO
Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripcin pueden requerir una revisin adicional antes de que podamos obtener un algoritmo claro, preciso y completo. Este mtodo de diseo de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como mtodo descendente (TOP-down). En un algoritmo se deben de considerar tres partes: Entrada: Informacin dada al algoritmo. Proceso: Operaciones o clculos necesarios para encontrar la solucin 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 rectngulo proporcionndole su base y altura. Lo primero que debemos hacer es plantearnos las siguientes preguntas: Especificaciones de entrada - Qu datos son de entrada? - Cuntos datos se introducirn? - Cuntos son datos de entrada vlidos? Especificaciones de salida - Cules son los datos de salida? - Cuntos datos de salida se producirn? - Qu formato y precisin tendrn los resultados?
14
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Defina un algoritmo para realizar una llamada INICIO 1. Acercarse al Telfono 2. Levantar el Auricular 3. Recordar el Nmero telefnico 4. Discar el Nmero 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 msica en un CD INICIO 1. Encender la Radio 2. Seleccionar la opcin TAPE 3. Insertar el CD 4. Esperar que cargue el CD 5. Graduar el volumen 6. Escuchar el CD FIN
15
Fundamentos de Programacin
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 institucin. 4. Defina un Algoritmo que permita ver un determinado programa de televisin 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 habitacin. 7. Defina un Algoritmo que permita realizar una compra al crdito en una empresa comercial. 8. Defina un Algoritmo que permita tener una Consulta Mdica de un consultorio particular. 9. Defina un Algoritmo que permita Ir a un Fiesta de fin de ao y regresar a casa.
16
Fundamentos de Programacin
CONTENIDOS
Datos, definicin Tipos de datos: Numrico, de cadena, lgicos Manejo de Operadores Expresiones Ejercicios Prcticos
DEFINICIN DE DATOS
1. Un dato es la expresin 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: numricos, lgicos y caracter.
DATOS NUMRICOS
1. Es el conjunto de los valores numricos y puede ser expresado como numricoentero y numricoreal. 2. Los enteros no tienen componentes fraccionarias o decimales y pueden ser negativos o positivos. Los reales siempre tienen un punto decimal.
DATOS LGICOS
1. Tambin 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.
17
Fundamentos de Programacin
DATOS CARACTER
1. Este tipo de dato contiene un solo carcter. 2. Los caracteres son: alfabticos (A-Z), numricos (0-9) y especiales ( @ # $ % ^ & *).
3. Una cadena de caracteres o string es una sucesin de caracteres que se encuentran delimitados por una o dobles comillas.
EJERCICIOS PRCTICOS
En cada uno de los datos, defina su Tipo de dato. Datos Hola 123 Quin eres? Verdadero El Sabio Falso 12.56 12/15 Trae EL Quijote 56.8999999 Alo! Persona Juan Tipo
18
Fundamentos de Programacin
TIPOS DE OPERADORES
Aritmticos De relacin, Lgicos, De asignacin,
OPERADORES ARITMTICOS
Los operadores aritmticos son los ms sencillos de entender y de utilizar. Todos ellos son operadores binarios. Se utilizan los operadores siguientes: OPERADOR + * \, DIV / MOD, % SIGNIFICADO SUMAR RESTAR MULTIPLICAR DIVISION ENTERA DIVISION REAL RESTO ARTIMETICO POTENCIACION
OPERADORES RELACIONALES
Una caracterstica imprescindible de cualquier lenguaje de programacin es la de considerar alternativas, esto es, la de proceder de un modo u otro segn se cumplan o no ciertas condiciones. Los operadores relacionales permiten estudiar si se cumplen o no esas condiciones. En un programa si una condicin se cumple, el resultado es cierto; en caso contrario, el resultado es falso. Los operadores relacionales son los siguientes
19
Fundamentos de Programacin
20
Fundamentos de Programacin
EXPRESIONES Definicin
Es una combinacin de distintas variables, constantes, operadores y parntesis. Tiene un valor concreto que es el resultado de evaluarla de izquierda a derecha. El valor devuelto tras la evaluacin de una expresin determina el tipo de la expresin (entera, lgica )
Ejemplo
Sentencias
Las expresiones son tems elementales de unas entidades que son las sentencias. Si nos fijamos en la expresin anterior, la variable que est a la izquierda del signo (=), el operador de asignacin, la expresin aritmtica y el carcter (;) constituyen una sentencia. Las sentencias son unidades completas, ejecutables en s mismas. Ya se ver que muchos tipos de sentencias incorporan expresiones aritmticas, lgicas o generales como componentes de dichas sentencias.
21
Fundamentos de Programacin
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 )
22
Fundamentos de Programacin
OBJETIVOS ESPECIFICOS
1. Conocer el manejo de Variables y Constantes para ser aplicados dentro de una Algortmica
VARIABLES Definicin
Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecucin de un proceso, su contenido puede cambiar durante la ejecucin 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 slo contiene un valor determinado.
Declaracin
Las variables pueden asumir valores numricos, carcter y lgicos. Existen 2 tipos de duracin 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 Funcin).
23
Fundamentos de Programacin
Ejemplos
DECLARACION ABC A123 1A2B _MiVariable Mi_Variable Mi_123456 _1_2_3 Mi@Variable VALIDO VALIDO NO VALIDO VALIDO VALIDO VALIDO VALIDO NO VALIDO
Declaracin
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 CARCTER: Car1, Car2 CADENA : Texto1, Texto2 LOGICO: Estado, Ok, Done En visual Basic las analogas son: Para declaracin de variables emplear
24
Fundamentos de Programacin
CONSTANTES Definicin
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 seudocdigos:
CONST PI=3.14
25
Fundamentos de Programacin
26
Fundamentos de Programacin
OBJETIVOS ESPECFICOS
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 algortmicos.
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 traduccin al latn de la palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a un problema especfico. Un algoritmo tambin se le puede definir como: Una "frmula" para resolver un problema. Un conjunto finito de acciones o secuencia de operaciones que ejecutadas En un determinado orden resuelven el problema. Tambin puede definirse como un mtodo 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 clculos numricos para definir los pasos del proceso.
27
Fundamentos de Programacin
Lenguajes Algortmicos
Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un proceso. De los cuales se encuentran los siguientes tipos de Lenguajes Algortmicos: Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocdigo).
Diagrama de Flujo
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de cmo deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el instituto norteamericano de normalizacin (ANSI).
28
Fundamentos de Programacin
Pseudo Cdigo
Mezcla de lenguaje de programacin y espaol (o ingls o cualquier otro idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En esencial, el pseudo cdigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudo cdigo 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
Estructuras Algortmicas
Las estructuras de operacin de programas son un grupo de formas de trabajo, que permiten, mediante la manipulacin de variables, realizar ciertos procesos especficos que nos lleven a la solucin de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:
29
Fundamentos de Programacin
Estructura
ALGORITMO Nombre_Descriptivo
Variables:
INICIO
FIN
Estructura Sintctica de un Algoritmo Sentencias Declarativas
Algoritmo CalculaArea
Declaracin de Variables
Real: Radio, A
Sentencias Ejecutables
Entrada de Datos O p e r a c i on e s y C l c u l os Salida de Resultados
FIN INICIO Leer Radio
A 3.14* Radio 2
Escribir A
30
Fundamentos de Programacin
OBJETIVOS ESPECFICOS
Reconoce la estructura Secuencial Comprende el manejo de las estructuras secuenciales en los procesos algortmicos.
CONTENIDOS
Estructura Secuencial Definicin Estructura Desarrollo Prctico
DEFINICIN
La estructura secuencial es aquella en la que una accin (instruccin) 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
31
Fundamentos de Programacin
PSEUDOCDIGO
Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocdigo y en diagramas de flujos:
32
Fundamentos de Programacin
De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables (a c + b*2/4).
En general el formato a utilizar es el siguiente: < Variable > El smbolo <valor o expresin > debe leerse asigne.
33
Fundamentos de Programacin
EJERCICIOS RESUELTOS 1
1. Ingrese un nmero entero, luego smele 2 unidades y visualcelo.
ALGORITMO Ejemplo1 VARIABLES ENTERO: A INICIO LEER (A) A A + 2 ESCRIBIR (A) FIN 2. Ingrese 2 nmeros enteros y luego calcule y visualice la suma y producto de los 2 nmeros 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 nmero 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 bonificacin del 5% del haber bsico por cada hijo a todos sus trabajadores. Calcule el total a pagar a un trabajador. ALGORITMO Ejemplo4 VARIABLES ENTERO NroHijos REAL Hbasico, Bonificacin, Total INICIO LEER (Hbasico, NroHijos) Bonificacin (Hbasico * 0.05) * NroHijos Total Hbasico + Bonificacin ESCRIBIR (Total) FIN
34
Fundamentos de Programacin
5. Ingrese por teclado un nmero de dos cifras, visualice su nmero invertido. ALGORITMO Ejemplo5 VARIABLES ENTERO Nmero, Inverso, Unidad, Decena INICIO LEER (Nmero) Unidad Nmero MOD 10 Decenal Nmero 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 promocin 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 Computacin e Informtica, si los alumnos son agrupadas en aulas de 40 alumnos cada aula, Hallar: Nmero 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
35
Fundamentos de Programacin
8. Ingrese por teclado un Nmero de 3 cifras, visualice la suma de las cifras del nmero ingresado. ALGORITMO Ejemplo8 VARIABLES ENTERO Nmero, Unidad, Decena, Suma INICIO LEER (Nmero) Unidad Nmero MOD 10 Decena (Nmero DIV 10) MOD 10 Centena NMERO DIV 100 Suma Unidad + Decena + Centena ESCRIBIR (Suma) FIN
9. Ingrese por teclado la cantidad de metros cbicos 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 cbicos por el precio.
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 Cbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar INICIO LEER (Cbicos) 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 (Exploracin:, Explor) ESCRIBIR (Limpieza:, Limp) ESCRIBIR (Monto:, Monto) ESCRIBIR (IGV:, IGV) ESCRIBIR (A Pagar:, Pagar) FIN
36
Fundamentos de Programacin
10. Una Empresa dedicada a la Venta de Electrodomsticos, realiza una promocin del 20% + 15% de descuento. Ingrese el precio de un electrodomstico, 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 Neto FIN (Precio Descuento1) * 0.15
37
Fundamentos de Programacin
EJERCICIOS RESUELTOS 2
Nota.- crear el algoritmo y cdigo en visual Net, aplicacin de consola Iniciar la codificacin en Visual Net 2005 (software donde se comprueban los algoritmos desarrollados) En inicio ejecutar colocar DEVENV
38
Fundamentos de Programacin
// Factor: 1 ao = 12 meses //Proceso: consideramos que 1 ao tiene 12 meses AM = A * 12 + M // Muestra Resultados en pantalla ESCRIBIR "Edad en meses = ", AM FIN CODIFICACIN EN VISUAL A NIVEL DE CONSOLA Imports system.console Imports System.Math Module Module1 Sub main() Dim an,mes,res As Integer Write("ingresar aos..:") an = ReadLine() Write("ingrese meses..:") mes = ReadLine() res=an*12+mes WriteLine("aos en meses ..:" & res) ReadLine() End Sub End Module
39
Fundamentos de Programacin
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 aos
INICIO // Declaracin 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
40
Fundamentos de Programacin
CODIFICACIN 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
41
Fundamentos de Programacin
3. Se deposita una cierta de dinero en un banco , se desea saber los intereses ganados
y el valor futuro del dinero INICIO // Declaracin 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 CODIFICACIN 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
42
Fundamentos de Programacin
INICIO // Declaracin 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 // 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 CODIFICACIN 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 1 m = 100 cm
43
Fundamentos de Programacin
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 CODIFICACIN 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
44
Fundamentos de Programacin
Nmero 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
45
Fundamentos de Programacin
CODIFICACIN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module7 Sub Main() Dim Nmero Matriculas, Aulas, Falta As Integer Write("Ingrese nmero de matriculas.:") matriculas = CInt(ReadLine()) Aula=Matriculas \40 Falta =Matricula MOD 40 WriteLine("nmero de aulas.:" & aula) ReadLine() End Sub End Module
8. Ingrese por teclado un Nmero de 3 cifras, visualice la suma de las cifras del nmero
ingresado. VARIABLES ENTERO INICIO LEER (Nmero) Unidad Nmero MOD 10 Decena (Nmero DIV 10) MOD 10 Centena NMERO DIV 100 Suma Unidad + Decena + Centena ESCRIBIR (Suma) FIN
46
Fundamentos de Programacin
9. Ingrese por teclado la cantidad de metros cbicos 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 cbicos por el precio. Mantenimiento Parques y Jardines Exploracin 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. VARIABLES REAL: Cbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar
Mant Monto * 0.25 /100 PJ Monto * 0.15 / 100 Monto * 0.05 / 100
Explor
Limp Monto * 0.07 / 100 Monto IGV Pagar Monto + Mant + PJ + Explor + Limp Monto * 0.19 Monto + IGV
ESCRIBIR (Mantenimiento:, Mant) ESCRIBIR (Parques y Jardines:, PJ) ESCRIBIR (Exploracin:, Explor) ESCRIBIR (Limpieza:, Limp) ESCRIBIR (Monto:, Monto) ESCRIBIR (IGV:, IGV) ESCRIBIR (A Pagar:, Pagar) FIN
47
Fundamentos de Programacin
10. Una Empresa dedicada a la Venta de Electrodomsticos, realiza una promocin del
20% + 15% de descuento. Ingrese el precio de un electrodomstico, calcule y visualice su descuento y el neto a pagar.
VARIABLES
REAL Precio, Descuento1, Descuento2, Neto INICIO LEER (Precio) Descuento1 (Precio * 0.20) Descuento2 Neto (Precio Descuento1) * 0.15
48
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Ingrese por teclado un nmero, calcule y visualice: a) El doble del nmero ingresado b) La tercera parte del nmero ingresado c) El cubo del nmero ingresado
2. Ingrese por teclado la cantidad de metros de un telar. Transformar los metros a centmetros y pulgadas, sabiendo que una pulgada es el equivalente a 2.54 centmetros. 3. Ingrese por teclado la descripcin 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 nmero de tres cifras, calcule y visualice: a) Suma de sus cifras b) Promedio de las cifras 6. Ingrese por teclado un nmero de dos cifras, mostrar el nmero 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 reparticin 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 compaa telefnica que permite mostrar el pago por consumo telefnico, para esto se ingresar el cdigo del usuario, el nmero telefnico y la cantidad de minutos utilizados. Mostrar el cdigo del usuario, el importe de las llamadas realizadas, el IGV y el pago total, considerando que la empresa cobra 0.30 cntimos de nuevo sol por cada minuto, la renta bsica cobra 48 nuevos soles y el IGV es el 19% del Monto.
49
Fundamentos de Programacin
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 dlares; considere el tipo de cambio del da. 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 nmero, incrementar el 2.4% de su valor, mostrar el valor del incremento y el nuevo nmero. 14. Ingrese por teclado un nmero de 4 cifras, mostrar los nmeros 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 distribucin de billetes y monedas que se utilizarn 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.
50
Fundamentos de Programacin
CONTENIDOS
Definicin de estructuras condicionales Clasificacin Estructura condicional simple Definicin Sintaxis Desarrollo Practico
51
Fundamentos de Programacin
Qu es una Condicin?
Una condicin o expresin booleana puede ser: Una variable booleana TEST Verdadero Una expresin aritmtica seguida de un operador relacional, seguido de otra expresin aritmtica TEST 3<5 Una expresin booleana, seguida de un operador booleano, seguido de una expresin booleana TEST A AND NOT B OR C
Se pueden utilizar condiciones tan complejas como se quiera siempre que estn bien formadas
Clasificacin
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 Mltiple (EN_CASO / FIN-EN_CASO)
52
Fundamentos de Programacin
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCDIGO
53
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Ingrese por teclado 2 nmeros enteros y visualice el mayor de los 2 nmeros 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 CODIFICACIN 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
54
Fundamentos de Programacin
2. Ingrese por teclado un nmero entero, si mayor a 10 smele 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 CODIFICACIN 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
55
Fundamentos de Programacin
CODIFICACIN 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 mnima de 1.70 metros ALGORITMO Ejemplo4 VARIABLES REAL: talla INICIO LEER (talla) SI (talla>=1.70) ENTONCES ESCRIBIR Servicio Obligatorio FIN-SI FIN CODIFICACIN 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 Computacin, Informtica & Sistemas 56
Fundamentos de Programacin
5. Una empresa otorga un bonificacin del 5% del haber bsico solo a sus trabajadores que tienen hijos, calcular el total a pagar a un trabajador. ALGORITMO Ejemplo5 VARIABLES ENTERO: NroHijos REAL: Hbasico, Bonificacin, Total INICIO LEER (Hbasico, NroHijos) Bonificacin 0 SI ( NroHijos > 0 ) ENTONCES Bonificacin Hbasico * 0.05 * NroHijos FIN-SI Total Hbasico + Bonificacin ESCRIBIR (Total) FIN
CODIFICACIN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Imports System.math Module Module1 Sub Main() Dim Hbasico, Bonificacin, Total As double Dim NroHijos As integer Write("Ingresa su haber basico.:") hbasico = ReadLine() Write("Ingresa nmero de hijos.:") nrohijos = ReadLine() IF ( NroHijos > 0 ) THEN Bonificacin =Hbasico * 0.05 * NroHijos END IF Total =Hbasico + Bonificacin WRITELINE(SU PAGO TOTAL ES : &Total) ReadLine() End Sub End Module
57
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Ingrese por teclado 2 nmeros enteros y visualice el menor de los 2 nmeros ingresados. 2. Ingrese por teclado un nmero entero visualice el cuadrado del nmero, si el nmero 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 mnima es 17 y su talla mnima 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 descripcin y precio de un accesorio de computadora; se le aplicar un descuento del 5% al precio si el accesorio es Monitor o Teclado. Visualice el descuento y el nuevo precio. 7. Ingrese por teclado un nmero, si es nmero par, duplique el valor del nmero; mostrar el nuevo valor. 8. Ingrese por teclado un nmero, si es de 3 cifras, visualice la suma de las cifras del nmero. 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 ao 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 nmero, si el nmero es impar y de tres cifras, visualice el nmero incrementado por su nmero 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.
58
Fundamentos de Programacin
CONTENIDOS
Estructura condicional doble Definicin Sintaxis Desarrollo Practico
59
Fundamentos de Programacin
60
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Ingrese por teclado 2 nmeros, visualice el mayor de los dos nmeros 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 nmero, si el nmero es par visualice su doble pero si el nmero 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 CODIFICACIN 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
61
Fundamentos de Programacin
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 CODIFICACIN 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 ms 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
62
Fundamentos de Programacin
CODIFICACIN 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 mnima es 3 minutos, sino visualice un mensaje PREPARARSE MAS ALGORTMICA 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 CODIFICACIN 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
63
Fundamentos de Programacin
6. Una tienda comercial ofrece un descuento del 3% del valor de compra si el pago se efecta 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 CARCTER: 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 CODIFICACIN 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
64
Fundamentos de Programacin
7. Ingrese un nmero entero de 3 cifras y luego visualice un mensaje indicando si el nmero ingresado es CAPICUA o NO ES CAPICUA. ALGORTMICA 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 CODIFICACIN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N, A, C As INTEGER Write("Ingrese UN NMERO 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
65
Fundamentos de Programacin
8. Una tienda comercial por campaa publicitaria est ofreciendo descuentos por sus diversos artculos, donde lo artculos que cuestan mnimo 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 estn solicitando a la poblacin 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 mnima de 1.70 y estudios superiores, podr ingresar, sino ingresar a la Escuela de Suboficiales. ALGORTMICA 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
66
Fundamentos de Programacin
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 mnimo 18 b. Menor de Edad, si la edad es menor a 18 3. Ingrese por teclado un nmero de dos cifras, visualice un mensaje si es nmero es o no capica. 4. Ingrese por teclado dos nmeros, visualice el menor de los dos nmeros ingresados. 5. Ingrese por teclado tres nmeros diferentes, visualize: a) Mayor de los tres nmeros b) Menor de los tres nmeros 6. Ingrese por teclado tres nmeros enteros diferentes, visualice el segundo mayor nmero. 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 ms baja; calcule y visualice su promedio. 9. Ingrese por teclado el precio de un artculo, 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 ms de 40 horas, por cada hora extra trabajada, se le pagar 25 nuevos soles. Visualice el jornal que recibi.
67
Fundamentos de Programacin
68
Fundamentos de Programacin
CONTENIDOS
Estructura condicional mltiple Definicin Sintaxis Desarrollo Practico
69
Fundamentos de Programacin
PSEUDOCDIGO
70
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Ingrese 3 nmeros enteros y visualice el mayor de los 3 nmeros 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 CODIFICACIN 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 )
71
Fundamentos de Programacin
FIN CODIFICACIN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As INTEGER Write("Ingrese UN NMERO 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 bsico segn la categora del
trabajador; categora A: 250; categora B: 200; categora C: 120; otras categoras 50. ALGORITMO Ejemplo3 VARIABLES
CADENA: Categora REAL: Bonificacin INICIO LEER (Categora) SI (Categora = A) ENTONCES Bonificacin 250 SINO SI (Categora = B) ENTONCES Bonificacin 200 SINO SI (Categora = C) ENTONCES Bonificacin 120 SINO Bonificacin 50 FIN-SI ESCRIBIR (Bonificacin) FIN
72
Fundamentos de Programacin
CODIFICACIN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim Bonificacin As double Dim categoria as string Write("Ingrese una categora :) categoria = ReadLine() IF (categoria = A) THEN Bonificacin=250 ELSEIF (categoria = B) THEN Bonificacin=200 ELSEIF (categoria = C) THEN Bonificacin= 120 ELSE Bonificacin =50 END IF Writeline(Valor DE Bonificacin : & Bonificacin ) ReadLine() End Sub End Module
73
Fundamentos de Programacin
CODIFICACIN 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 Categora=Malo Else if (nota<=14) then Categora = Regular Else if (nota<=17) then Categora = Bueno Else Categora = Excelente End if Writeline(observacion: & categoria) ReadLine() End Sub End Module
14. Una persona est a punto de ver televisin, mostrar si segn su edad est apto para
ver el programa televisivo.
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
74
Fundamentos de Programacin
CODIFICACIN 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
75
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. En una oficina de empleos categorizar a los postulantes en funcin al sexo y la edad de acuerdo a lo siguiente: Si la persona es de sexo femenino: categora FA si tiene menos de 20 aos y FB caso contrario. Si la persona es de sexo masculino: categora MA si tiene menos de 30 aos y MB caso contrario 2. Disee 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. Disee un programa que lea la temperatura de un da e imprima el tipo de clima de acuerdo a la siguiente tabla Temperatura Promedio (TP) TP<=10 10<TP<=20 20<TP<=30 TP30 Tipo de Clima Fri Nublado Caluroso Trpico
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 ms baja; calcule y visualice su promedio 6. Escriba un programa que lea un nmero desde el teclado entre 1 y 12 e imprima el nombre del mes del ao correspondiente. (Enero, Febrero,...etc). 7. Ingrese un nmero de hasta tres cifras, visualizar el nmero 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 Importe de Matricula 350 300 300 310 280 Mensualidad 590 550 500 550 490
76
Fundamentos de Programacin
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 campaa navidea, desea comprar panteones, donde segn su marca tiene un precio Marca del Panten Donofrio Motta Todinno Naval Santa Claus Doa Pepa Precio Unitario 20 19 18 9 11 10
Si el cliente desea comprar ms 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 panten y la cantidad de panetones a comprar; visualice el precio unitario del panten, 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:
77
Fundamentos de Programacin
78
Fundamentos de Programacin
79
Fundamentos de Programacin
80
Fundamentos de Programacin
CONTENIDOS
Estructura condicional anidada Definicin Sintaxis Desarrollo Practico
ESTRUCTURA CONDICIONAL ANIDADA Definicin 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 condicin 1 es verdadera, se evaluar la condicin 2. Si la condicin 2 es verdadera, ejecuta la sentencia 1; si no es verdadera, Ejecuta la sentencia 2. Si la condicin 1 no es verdadera, evaluar la condicin 3. Si la condicin 3 es verdadera, ejecuta la sentencia 3; si no es verdadera, Ejecuta la sentencia 4.
81
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Ingrese un nmero 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 (NMERO NO VALIDO) FIN-SI FIN-SI FIN-SI FIN CODIFICACIN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Sub Main() Dim N As INTEGER Write("Ingrese UN NMERO 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(NMERO NO VALIDO:) END IF END IF END IF ReadLine() End Sub End Module
82
Fundamentos de Programacin
2. Ingrese el puntaje obtenido por un postulante y luego visualice a que carrera ingreso, segn la siguiente tabla:
FIN
83
Fundamentos de Programacin
3. Ingrese el ciclo y turno a estudiar, luego calcule el total a pagar segn la siguiente tabla:
CICLO 1 1 2 2 3 - 10 3 - 10 TURNO M N M N M N PENSION 850 800 750 700 650 600
INICIO LEER( Ciclo, Turno ) SI (Ciclo = 1) ENTONCES SI (Turno = M) ENTONCES Pensin 850 SINO Pensin 800 FIN-SI SINO SI (Ciclo = 2) ENTONCES SI (Turno = M) ENTONCES Pensin 750 SINO Pensin 700 FIN-SI SINO SI (Turno = M) ENTONCES Pensin 650 SINO Pensin 600 FIN-SI/ FIN-SI FIN-SI
FIN
84
Fundamentos de Programacin
4. Ingrese el consumo de agua de un mes y calcule el visualice el total a pagar, segn la siguiente tabla:
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 categora. Segn su categora obtendr su bsico y bonificacin: Categora Empleado Obrero Ejecutivo Auxiliar Bsico 600 550 1500 200 Bonificacin 150 190 500 50
85
Fundamentos de Programacin
ALGORITMO Ejemplo5
VARIABLES REAL: CADENA: INICIO LEER (Categora) SI (Categora =Empleado) ENTONCES bsico 600 600 bsico, bonificacin, monto Categora
bonificacin SINO
bonificacin SINO
50
86
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Ingrese el estado civil y nmero de hijos, luego calcule la bonificacin a pagar a un trabajador segn la siguiente tabla :
Estado Civil S S C C V V D D Hijos 0 >0 0 >0 0 >0 0 >0 Bonificacin (% Haber Bsico) 2.50 % 2.75 % 2.80 % 3.00 % 2.50 % 2.75 % 2.50 % 3.00 %
2. Ingrese nmero entre 1 y 99, luego visualice su equivalente en romanos. 3. Calcular el total a pagar por una compra, sabiendo que existe un recargo segn tipo de tarjeta de crdito con la que se paga la compra. Tipo de Tarjeta Visa Electrn ( E ) VISA ( V ) MasterCard ( M ) Recargo 0% 5% 7%
4. Calcular el total a pagar por su consumo telefnico, sabiendo que su renta bsica es de S/. 50 (60 minutos libres), y que el cobro por minutos adicionales se factura segn la siguiente tabla. Minutos Consumidos < 60 100 ] <100 200 ] <200 400 ] <400 500 ] <500 Ms Costo x Minuto 0.007 0.005 0.004 0.003 0.002
87
Fundamentos de Programacin
5. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de inters segn la siguiente tabla :
Plan de Cuenta Plan A Plan B Plan C Plan X Tasa de Inters 0.07 % 0.08 % 0.09 % 0.10 % Monto Mnimo 1000 1500 2000 2500
Elabore un algoritmo donde ingrese el Monto de apertura, luego calcule y visualice el inters generado, el plan al cual pertenece y el nuevo saldo. 6. Ingrese por teclado un nmeros del 1 al 999, exprese el nmero en letras, por ejemplo 125 un ciento veinticinco 7. Un instituto ofrece cursos de programacin, el costo de los cursos es de la siguiente manera: Bsico 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 energa elctrica, el pago se realiza segn la siguiente tabla: Consumo (Kw) [ 100 150 > [ 150 250 > [ 250 350 > [ 350 Ms > Costo por Kw 0.65 0.85 1.05 1.25
88
Fundamentos de Programacin
OBJETIVOS ESPECFICOS Defina el propsito de las estructuras selectivas. Realiza la solucin de diversos casos prcticos aplicando estructuras selectivas.
89
Fundamentos de Programacin
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCDIGO
90
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Ingresar un nmero entre 1 y 5, y luego visualizar su equivalente en letras. ALGORITMO Ejemplo1 VARIABLES ENTERO 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 N
2. Una empresa otorga bonificaciones de su haber bsico segn la categora del trabajador; categora A: 250; categora B: 200; categora C: 120; otras categoras 50.
ALGORITMO Ejemplo2 VARIABLES CADENA: REAL: INICIO LEER (Categora) CASO (Categora) SEA A: Bonificacin 250 B: Bonificacin 200 C: Bonificacin 120 OTRO CASO: Bonificacin 50 FIN-CASO ESCRIBIR (Bonificacin) FIN Categora Bonificacin
91
Fundamentos de Programacin
CODIFICACIN 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 nmeros y una operacin matemtica realizar (+,-,*,/, DIV, EXP), luego muestre el resultado de operar los 2 nmeros.
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
92
Fundamentos de Programacin
CODIFICACIN 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 nmero desde el teclado entre 1 y 7 e imprima el nombre del da de semana correspondiente. (Lunes, martes,...etc.).
ALGORITMO Ejemplo4 VARIABLES CADENA: Semana ENTERO: da INICIO LEER (da) CASO (da) SEA 1: Semana Lunes 2: Semana Martes 3: Semana Mircoles 4: Semana Jueves 5: Semana Viernes 6: Semana Sbado 7: Semana Domingo OTRO CASO: Semana Error FIN -CASO ESCRIBIR (Semana) FIN
93
Fundamentos de Programacin
5. Calcular el total a pagar por una compra, sabiendo que existe un recargo segn tipo de tarjeta de crdito con la que se paga la compra.
Tipo de Tarjeta Visa Electrn ( E ) VISA ( V ) MasterCard ( M ) Recargo 0% 5% 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. Disee un programa que calcule el costo de un paciente, el costo depende del tipo de enfermedad. De acuerdo a la siguiente tabla: TIPO ENFERMEDAD 1 2 3
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
94
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Escriba un programa que lea un nmero desde el teclado entre 1 y 12 e imprima el nombre del mes del ao correspondiente. (Enero, Febrero,...etc.). 2. Ingrese un nmero de hasta tres cifras, visualizar el nmero en romanos, por ejemplo: 255 CCLV 3. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de inters segn la siguiente tabla: Plan de Cuenta Plan A Plan B Plan C Plan X Tasa de Inters 0.07 % 0.08 % 0.09 % 0.10 % Monto Mnimo 1000 1500 2000 2500
Elabore un algoritmo donde ingrese el Monto de apertura, luego calcule y visualice el inters generado, el plan al cual pertenece y el nuevo saldo. 4. Ingrese el estado civil y nmero de hijos, luego calcule la bonificacin a pagar a un trabajador segn la siguiente tabla: Estado Civil S S C C V V D D Hijos 0 >0 0 >0 0 >0 0 >0 Bonificacin (% Haber Bsico) 2.50 % 2.75 % 2.80 % 3.00 % 2.50 % 2.75 % 2.50 % 3.00 %
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 nmero de das de ese mes e identificar si el ao es bisiesto. Computacin, Informtica & Sistemas 95
Fundamentos de Programacin
7. Ingrese por teclado el nombre de un Empleado y su categora. Segn su categora obtendr su bsico y bonificacin:
96
Fundamentos de Programacin
CONTENIDOS
Estructura iterativa Definicin Tipos de estructuras Estructura repetitiva Para Fin Para Contadores y acumuladores Desarrollo de ejercicios de aplicacin
Qu es una Iteracin?
Es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle.
97
Fundamentos de Programacin
En este flujograma, el bucle se estar repitiendo indefinidamente ya que no existe ninguna condicin que nos permita finalizar en algn momento.
98
Fundamentos de Programacin
ESTRUCTURA REPETITIVA PARA - HACER Definicin Si tenemos que repetir el bucle un nmero 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 automticamente 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
99
Fundamentos de Programacin
PSEUDOCDIGO
FIN-PARA
Donde:
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 accin. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle; deben realizar una operacin de inicializacin y posteriormente las sucesivas de incremento o decremento del mismo. La inicializacin consiste en asignarle al contador un valor. Se situar antes y fuera del bucle.
Representacin:
<contador> <contador> + <valor constante>
Si en vez de incremento es decremento se coloca un menos en lugar del ms. Ejemplo: i i+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.
Representacin:
<variable> <variable> + <valor variable> Ejemplo: S S + variable
100
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Imprimir los 10 primeros nmeros naturales. ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO PARA N1 HASTA 10 ESCRIBIR (N) FIN-PARA FIN CODIFICACIN 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 nmeros naturales pero en forma descendente. ALGORITMO Ejemplo2 VARIABLES ENTERO N INICIO PARA N 10 HASTA 1 DE -1 ESCRIBIR (N) FIN-PARA FIN CODIFICACIN 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
101
Fundamentos de Programacin
3. Visualizar todos los nmeros 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 CODIFICACIN 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 nmero 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
102
Fundamentos de Programacin
5. Disee un programa que imprima una tabla de cuadrados y de cubos para los nmeros 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 CODIFICACIN 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 nmeros, visualizar el mayor y el menor de los nmeros 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 Computacin, Informtica & Sistemas 103
Fundamentos de Programacin
7. Elabore un programa para calcular el factorial de un nmero 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
104
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Visualizar los nmeros de 2 cifras pares. 2. Ingrese un nmero entero y luego calcule el factorial del nmero ingresado. 3. Ingrese un nmero entero y luego visualice un mensaje indicando si es primo o no primo. 4. Ingrese un nmero entero y luego visualice un mensaje PERFECTO o NO ES PERFECTO. indicando si es
5. Ingrese un nmero entero y luego calcule la suma de todos los nmeros impares menores al nmero ingresado. 6. Visualizar la siguiente serie de nmeros: +1-2+3-4+5-6+7-8++N NOTA: N ser el valor lmite de la serie. 7. Calcular la suma de todos los nmeros de 3 cifras compuestos por cifras diferentes impares. 8. Disee 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 mxima Edad mnima 9. Escribe un algoritmo que lea un nmero natural N y un carcter. La salida debe ser un rombo compuesto del carcter y de la anchura que especifica el nmero N. Por ejemplo, si N es 5 y el carcter es *, el rombo sera: * ** *** **** ***** **** *** ** * 10. Elabore un programa que permita convertir un nmero de base 10 a un nmero de otra base, para ello ingrese el nmero y la base. Ejemplo: Suponga que el nmero 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 nmero, visualizar los divisores del nmero ingresado.
105
Fundamentos de Programacin
12. Escribe un algoritmo que imprima una pirmide de dgitos como la de la figura, tomando como entrada el nmero de filas de la misma.
13. Escriba un Algoritmo que permita formar la siguiente serie, donde N es ingresado por teclado: 1, 4, 9, 16, N2
3, 8, 15, 24
18. Disee un programa donde visualice los nmeros primos comprendidos entre el 1 al 100.
106
Fundamentos de Programacin
OBJETIVOS ESPECFICOS
Defina el propsito de las estructuras repetitivas. Implementar desarrollos prcticos utilizando contadores y acumuladores. Realiza la solucin de diversos casos prcticos aplicando estructuras repetitivas.
CONTENIDOS
Estructura Mientras - hacer Definicin Sintaxis Desarrollo de ejercicios de aplicacin
Caracterstica
Se llama Mientras a la estructura algortmica que se ejecuta mientras la condicin evaluada resulte verdadera. Se evala la expresin booleana y, si es cierta, se ejecuta la instruccin especificada, llamada el cuerpo del bucle. Este proceso de evaluacin de la expresin booleana y ejecucin del cuerpo se repite mientras la expresin sea cierta. La estructura MIENTRAS se conoce como Iterativa. Se usan cuando no se conoce con anticipacin el nmero de veces que se ejecutar la accin.
107
Fundamentos de Programacin
PSEUDOCDIGO
: :
FIN-MIENTRAS
VERDAD
108
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Imprimir los 3 primeros nmeros naturales.
ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO N1 MIENTRAS( N <= 3 ) HACER ESCRIBIR( N ) NN+1 FIN-MIENTRAS FIN
CODIFICACIN 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 nmeros naturales, calcule y visualice la suma de los 10 nmeros.
ALGORITMO Ejemplo2 VARIABLES ENTERO N, SUMA INICIO N1 SUMA 0 MIENTRAS (N <= 10) HACER SUMA SUMA + N NN+1 FIN-MIENTRAS ESCRIBIR (LA SUMA ES:, SUMA) FIN
Acumulador Contador
109
Fundamentos de Programacin
CODIFICACIN 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
ESCRIBIR (LA SUMA ES:, SUMA) FIN CODIFICACIN 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
110
Fundamentos de Programacin
CODIFICACIN 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 ) NN+1 FIN-MIENTRAS ESCRIBIR (LA SUMA ES:, SUMA) FIN
111
Fundamentos de Programacin
7. Disee un programa que reciba un 5 nmeros enteros de 2 cifras y muestra la suma de ellos y cantidad de pares e impares
ALGORITMO Ejemplo7 VARIABLES ENTERO N, SUMA, CPARES, CIMPARES, i INICIO CPARES 0 CIMPARES 0 SUMA 0 I 1 MIENTRAS (i <=5) HACER LEER (N) SI (N>=10 Y N<=99) ENTONCES SUMA SUMA + N SI (N MOD 2 = 0) ENTONCES CPARES CPARES + 1 SINO CIMPARES CIMPARES + 1 FIN SI FIN SI i i+1 FIN MIENTRAS ESCRIBIR (SUMA, CPARES, CIMPARES) FIN
112
Fundamentos de Programacin
9. Disee un programa donde ingrese un nmero, visualizar un mensaje si es nmero primo o compuesto.
ALGORITMO Ejemplo9 VARIABLES ENTERO N, CONTADOR, i INICIO CONTADOR 0 LEER (N) i 2 MIENTRAS (i < N) HACER SI (N MOD N = 0) ENTONCES CONTADOR CONTADOR + 1 FIN SI i i+1 FIN MIENTRAS SI (i = 0) ENTONCES ESCRIBIR (NMERO PRIMO) SINO ESCRIBIR (NMERO COMPUESTO) FIN SI FIN
113
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Calcule y visualice la suma de los todos los nmeros 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 nmero entero y calcule la suma de las cifras del nmero. 5. Ingrese un nmero entero y luego calcule la suma de cifras pares e impares que estn contenidas en el nmero ingresado. 6. Ingrese un nmero entero y calcule la mayor y menor cifra contenidas en el nmero ingresado. 7. Ingrese un nmero entero y luego forme un 2do nmero con las cifras del nmero ingresado en forma inversa. 8. Ingrese un nmero entero y luego obtenga su equivalente en base 5. 9. Disee un programa que lea Nombre y edad de 5 alumnos y calcule la edad promedio as como tambin la mayor edad, considere que la edad debe encontrarse entre 18 a 70 aos. 10. Disee un programa que imprima lo siguiente: % %% %%% %%%% %%%%% %%%%%% %%%%%%% 11. Escribe un algoritmo que lea un nmero natural N y dibuje un tringulo de asteriscos con base y altura N. Por ejemplo si N=5 debera dibujarse: * ** *** **** ***** 12. Disee un programa para hallar la suma de N trminos de la siguiente serie: 1 + 1/32 + 1/52 + 1/72 + 1/92+............................ 13. Calcular la suma de todos los nmeros primos existentes entre 1 y 1000. 14. Calcular la suma de todos los nmeros de 3 cifras compuestos por cifras diferentes impares. 15. Visualizar la siguiente serie de nmeros: +1-2+3-4+5-6+7-8++N
114
Fundamentos de Programacin
OBJETIVOS ESPECFICOS
Defina el propsito de las estructuras repetitivas. Implementar desarrollos prcticos utilizando contadores y acumuladores. Realiza la solucin de diversos casos prcticos aplicando estructuras repetitivas.
CONTENIDOS
Estructura REPETIR - HASTA Definicin Sintaxis Desarrollo de ejercicios de aplicacin
Caracterstica
Esta es una estructura similar en algunas caractersticas, a la anterior. Repite un proceso una cantidad de veces, pero a diferencia del Mientras Que, el Repita-Hasta lo hace hasta que la condicin 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 condicin se evala al final del proceso, mientras que en el Mientras Que puede ser que nunca llegue a entrar si la condicin no se cumple desde un principio.
115
Fundamentos de Programacin
PSEUDOCDIGO
REPETIR
FALSO
: :
HASTA (Expresin<es>)
116
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Visualizar los 5 primeros nmeros naturales.
ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO N 1 REPETIR ESCRIBIR (N) NN+1 HASTA (N > 5) FIN
CODIFICACIN 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
117
Fundamentos de Programacin
CODIFICACIN 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
CODIFICACIN 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
118
Fundamentos de Programacin
CODIFICACIN 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
119
Fundamentos de Programacin
Imports System.Console Module Module1 Sub Main() Dim N,M , INV, CIFRA As Integer WRITE ( INGRESE UN NMERO 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
120
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Disee un programa que imprima lo siguiente: % %% %%% %%%% %%%%% %%%%%% %%%%%%% 2. Disee un programa que lea Nombre y edad de 5 alumnos y calcule la edad promedio as como tambin la mayor edad, considere que la edad debe encontrarse entre 18 a 70 aos. 3. Disee un programa que permita calcular la Serie Fibonacci: 0, 1, 1, 2, 3, 5, 8,. 4. Disee un programa que imprima N trminos de la siguiente serie: 3, 8, 15, 24 5. Disee un programa que halle los 3 primeros nmeros perfectos 6. Disee un programa para hallar la suma de N trminos de la siguiente serie: 1 + 1/32 + 1/52 + 1/72 + 1/92+............................ 7. Disee un programa donde visualice los nmeros primos comprendidos entre el 1 al 100. 8. Disee un programa donde ingrese un NMERO, visualice la cantidad de cifras ceros, pares e impares que tiene el NMERO ingresado. 9. Escriba un pequeo programa para imprimir los primeros cien nmeros 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 nmeros naturales pares. Valide el valor de n y emita un mensaje de error si no es natural. 11. Escribe un algoritmo que lea un nmero natural N y dibuje un tringulo de asteriscos con base y altura N. Por ejemplo si N=5 debera dibujarse: * ** *** **** ***** Computacin, Informtica & Sistemas 121
Fundamentos de Programacin
12. Escriba un programa para calcular e imprimir todos los nmeros enteros comprendidos entre 100 y 999 tales que sean iguales a la suma de los cubos de sus dgitos, es decir, los nmeros de la forma abc, con:
abc = a3 + b3 + c3
13. Ingrese un nmero entero y luego calcule la suma de cifras pares e impares que estn contenidas en el nmero ingresado.
14. Ingrese un nmero entero y calcule la mayor y menor cifra contenidas en el nmero ingresado.
122
Fundamentos de Programacin
OBJETIVOS ESPECFICOS
Defina el propsito de los subprogramas. Realice operaciones que permita implementar subprogramas.
CONTENIDOS
Programacin estructurada, subprogramas. Tipos de subprogramas, funciones y procedimientos. Procedimientos, declaracin, invocar un procedimientos, paso de parmetros.
SUBPROGRAMAS Introduccin
La programacin modular es una de las tcnicas fundamentales de la programacin. Se apoya en el diseo descendente y en la filosofa de divide y vencers, es decir se trata de dividir el problema dado, en problemas ms simples en que cada uno de los cuales lo implementaremos en un mdulo independiente. La programacin estructurada permite la escritura de programas fciles de leer y modificar. En esta programacin, el flujo lgico se gobierna por las estructuras de control bsicas vista hasta hoy: secuenciales, repetitivas y de seleccin. Cada subprograma tiene asociado un pseudocdigo 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.
123
Fundamentos de Programacin
Definicin
Los subprogramas permiten descomponer un problema en un conjunto de problemas independientes entre s, ms sencillos de resolver y que pueden ser tratados separadamente unos de otros. Adems se pueden probar los subprogramas de manera independiente, depurndose sus errores antes de su inclusin en el programa principal y almacenarse para su posterior utilizacin cuantas veces se precise.
124
Fundamentos de Programacin
PROCEDIMIENTOS Definicin
Un procedimiento es un subprograma o un subalgoritmo que ejecuta una determinada tarea, pero que tras ejecutar esa tarea no tienen ningn valor asociado a su nombre como en las funciones, sino que si devuelve informacin, lo hace a travs de parmetros. Al llamar a un procedimiento, se le cede el control, comienza a ejecutarse y cuando termina devuelve el control a la siguiente instruccin a la de llamada Un procedimiento puede tener sus propias variables que se declaran en la seccin var del propio procedimiento. Estas se llaman variables locales. As, las variables locales para un procedimiento slo 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 parmetros.
125
Fundamentos de Programacin
ALGORITMO Ejemplo VARIABLES ENTERO A, B PROCEDIMIENTO SUMA ( ) INICIO ESCRIBIR(A + B) FIN-PROCEDIMIENTO INICIO LEER(A, B) SUMA ( ) FIN
Para ejecutar un procedimiento se le puede incluir parmetros. El paso de valores a los parmetros de un procedimiento se puede hacer por valor y/o referencia. Ejemplo: Implemente un procedimiento que permita visualizar la suma de 2 nmeros enteros (utilice parmetros)
ALGORITMO Ejemplo VARIABLES ENTERO A, B PROCEDIMIENTO SUMA ( ENTERO: M, N) INICIO ESCRIBIR ( M +N ) FIN-PROCEDIMIENTO INICIO LEER (A, B) SUMA (A, B) FIN
126
Fundamentos de Programacin
Parmetros
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 parmetros se clasifican en: Por Valor Por Referencia
ESTRUCTURA DE UN PROCEDIMIENTO
Opcional
:
INICIO
<variables_locales>
Instrucciones y/o Sentencias
: :
FIN- PROCEDIMIENTO
127
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Implementar un procedimiento que permita visualizar un texto un nmero determinado de veces. N, variable Global ALGORITMO Ejemplo1 VARIABLES ENTERO N PROCEDIMIENTO Imprime (CADENA Texto, ENTERO NMERO) VARIABLES ENTERO I Procedimiento imprime, INICIO con la declaracin de PARA I 1 HASTA NMERO parmetros ESCRIBIR (Texto) FIN-PARA FIN-PROCEDIMIENTO INICIO LEER (N) Imprime (HOLA, N) Imprime (IDAT, 20) Imprime (COMPUTACION, 50) FIN CODIFICACIN EN VISUAL A NIVEL DE CONSOLA Imports System.Console Module Module1 Dim N As Integer SUB IMPRIME(TEXTO AS STRING, NMERO AS INTEGER) DIM I AS INTEGER For I=1 to NMERO 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
128
Fundamentos de Programacin
2. Implementar un procedimiento que imprima el mayor valor de 2 nmeros 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
CODIFICACIN 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
129
Fundamentos de Programacin
3. Implementar un procedimiento que visualice los divisores de un nmero 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 nmeros menores a un nmero 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
130
Fundamentos de Programacin
CODIFICACIN 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 nmero 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
131
Fundamentos de Programacin
6. Implementar un procedimiento que permita calcular y visualizar el menor de tres nmeros 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 nmero invertidos de un nmero 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
132
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Disee un procedimiento que imprima lo siguiente % %% %%% %%%% %%%%% %%%%%% %%%%%%% 2. Disee un procedimiento que permita calcular la Serie Fibonacci: 0, 1, 1, 2, 3, 5, 8, . 3. Disee un procedimiento que imprima N trminos de la siguiente serie: 3, 8, 15, 24 4. Disee un procedimiento para hallar la suma de N trminos de la siguiente serie: 1 + 1/32 + 1/52 + 1/72 + 1/92+............................ 5. Disee un procedimiento donde visualice los nmeros primos comprendidos entre el 1 al 100. 6. Disee un procedimiento donde ingrese un nmero, visualice la cantidad de cifras ceros, pares e impares que tiene el nmero ingresado. 7. Escriba un procedimiento que imprima los primeros n nmeros naturales pares. Valide el valor de n y emita un mensaje de error si no es natural. 8. Escribe un procedimiento que lea un nmero natural N y dibuje un tringulo de asteriscos con base y altura N. Por ejemplo si N=5 debera dibujarse: * ** *** **** ***** 9. Escriba un procedimiento para calcular e imprimir todos los nmeros enteros comprendidos entre 100 y 999 tales que sean iguales a la suma de los cubos de sus dgitos, es decir, los nmeros de la forma abc, con: abc = a3 + b3 + c3 10. Ingrese un nmero entero y luego desarrolle un procedimiento que permita calcular la suma de cifras pares e impares que estn contenidas en el nmero ingresado.
133
Fundamentos de Programacin
134
Fundamentos de Programacin
CONTENIDOS
Funciones Declaracin Invocar una funcin, paso de parmetros Desarrollo prctico.
FUNCIONES Definicin
Una funcin es un sub-programa que procesa un grupo de instrucciones y/o sentencias para luego devolver un nico valor. Las funciones pueden contener opcionalmente parmetros. Las funciones se invocan por su nombre seguido de los valores que se pasaran a sus respectivos parmetros formales. Una funcin puede llamar a otra funcin inclusive puede llamarse a si misma (recursividad).
:
INICIO
: :
RETORNAR (Valor) FIN-FUNCIN
135
Fundamentos de Programacin
EJERCICIOS RESUELTOS
1. Crear una funcin que retorne el cuadrado de un nmero entero. ALGORITMO Ejemplo1 VARIABLES ENTERO M FUNCIN Cuadrado (ENTERO N): ENTERO INICIO RETORNAR (N * N) FIN-FUNCIN INICIO LEER (M) ESCRIBIR (Cuadrado (M) ) FIN CODIFICACIN 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 funcin que retorne el mayor valor de 2 nmeros enteros. ALGORITMO Ejemplo2 VARIABLES ENTERO A, B FUNCIN Mayor (ENTERO M, ENTERO N): ENTERO INICIO SI (M > N) ENTONCES RETORNAR (M) SINO RETORNAR (N) FIN-SI FIN-FUNCIN INICIO LEER (A, B) ESCRIBIR (Mayor (A, B) ) FIN
136
Fundamentos de Programacin
CODIFICACIN 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 funcin que retorne la suma de la cifras de un nmero entero. ALGORITMO Ejemplo3 VARIABLES ENTERO M FUNCIN 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-FUNCIN INICIO LEER (M) ESCRIBIR (SumaCifras (M) ) FIN
137
Fundamentos de Programacin
138
Fundamentos de Programacin
CODIFICACIN 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 funcin que retorne el factorial de un nmero entero. ALGORITMO Ejemplo4 VARIABLES ENTERO M FUNCIN Factorial (ENTERO N ) : ENTERO VARIABLES ENTERO Facto, I INICIO Facto 1 PARA I 1 HASTA N Facto Facto * I FIN-PARA RETORNAR ( Facto ) FIN-FUNCIN INICIO PARA M 1 HASTA 5 ESCRIBIR (Factorial ( M ) ) FIN-PARA FIN
139
Fundamentos de Programacin
5. Implementar una funcin que retorne la suma de la mayor y menor cifras contenidas en un nmero entero. ALGORITMO Ejemplo5 VARIABLES ENTERO M FUNCIN 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-FUNCIN INICIO LEER (M) ESCRIBIR (SumaMaxMin (M)) FIN 6. Implementar una funcin que retorne la suma de todos los nmeros de 2 cifras compuestos por cifras diferentes pares. ALGORITMO Ejemplo6 VARIABLES ENTERO M FUNCIN 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-FUNCIN INICIO LEER (M) ESCRIBIR (SumaPares (M) ) FIN
140
Fundamentos de Programacin
7. Implementar una funcin que retorne la suma de los elementos de la siguiente serie:
1+8+27+64++1000
ALGORITMO Ejercicio7
FUNCIN SumaSerie (): ENTERO VARIABLES ENTERO INICIO PARA N 1 HASTA 10 SUMA SUMA + (N 3) FIN-PARA RETORNAR SUMA FIN-FUNCIN SUMA
141
Fundamentos de Programacin
EJERCICIOS PROPUESTOS
1. Implemente una funcin que permita calcular el factorial del nmero ingresado.
2. Implemente una funcin que retorne un mensaje indicando si es primo o no primo de un nmero ingresado.
3. Implemente una funcin que retorne un mensaje indicando si es PERFECTO o NO ES PERFECTO de un nmero ingresado por teclado.
4. Implemente una funcin que retorne la suma de todos los nmeros de 3 cifras compuestos por cifras diferentes impares.
5. Elabore una funcin que permita convertir un nmero de base 10 a un nmero de otra base, para ello ingrese el nmero y la base. Ejemplo: Suponga que el nmero en decimal que se desea transformar a su equivalente en binario es el 11:
Por lo tanto, (11)10 = (1011)2 6. Elabore una funcin que permita retornar la suma de la serie, donde N es ingresado por teclado: 1, 4, 9, 16, N2
7. Elabore una funcin que retorne la suma de N trminos de la siguiente serie: 1 + 1/32 + 1/52 + 1/72 + 1/92+............................
8. Elabore una funcin que retorne la suma de los N trminos de la siguiente serie: 1 + 1/2 + 2/3 + 3/4 + 4/5+............................
142
Fundamentos de Programacin
OBJETIVOS ESPECFICOS
Defina el propsito de los arreglos o vectores su importancia Realice operaciones que permita implementar procesos estadsticos
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 voltil por medio de una posicin la cual es manejada por un ndice que empieza desde 0 hasta el nmero de elementos -1 del tamao 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 ms claras.
Arreglos
Definicin tipos. o Arreglos Unidimensionales (Vectores). Declaracin. Algoritmos bsicos. Ejercicios.
143
Fundamentos de Programacin
QUE ES UN ARREGLO
Un arreglo es una coleccin de elementos homogneos 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 parntesis, este ndice representa la posicin del elemento en el arreglo. Sintaxis de declaracin para un arreglo unidimensional Sintaxis: VARIABLES Tipo_Dato Nombre_Arreglo (Nmero_Elementos)
144
Fundamentos de Programacin
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
145
Fundamentos de Programacin
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 bsqueda 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
146
Fundamentos de Programacin
EN VISUAL BASIC:
Ejemplo realizar una aplicacin para ingresar un nmero de elementos a un array de tamao 10 luego visualizar su contenido con la posicin 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.
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 Programacin
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 NMERO 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 bsqueda secuencial es la tcnica ms simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave).
148
Fundamentos de Programacin
La bsqueda binaria es el mtodo ms 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 bsqueda. 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 bsqueda 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 bandera=0 Leer ing elemento a buscar,bu Para i=0 hasta n Si(array(i)=bu) entonces Imprimir item, array(i), encontrado en.:, i Bandera=1 Fin si Fin para Si (bandera=0) entonces Imprimir no se encontr.: Fin si bandera = 0
Pro
WriteLine("ing elemento a buscar..:") bu = CDec(ReadLine()) For i = 0 To n If (a(i) = bu) Then WriteLine("item:" & array(i) & "encontrado en" & i) bandera = 1 End If Next If (bandera = 0) Then WriteLine("No se encontro elemento") End If
Consiste en anteponer el valor 0 encima del valor original del array Se debe emplear el mtodo de bsqueda y preguntar si desea anularlo o no al momento de imprimirlo debe preguntar si este es mayor que 0 para q no muestre la anulacin respectiva.
149
Fundamentos de Programacin
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 ms comunes y tiles en el procesamiento de datos, es la clasificacin u ordenacin de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado de objetos en una secuencia determinada. Cuando se analiza un mtodo de ordenacin, hay que determinar cuntas comparaciones e intercambios se realizan para el caso ms favorable, para el caso medio y para el caso ms desfavorable. Intercambio:
El mtodo de intercambio se basa en comparar los elementos del arreglo e intercambiarlos si su posicin actual o inicial es contraria inversa a la deseada. Ejemplo:
150
Fundamentos de Programacin
151
Fundamentos de Programacin
Formato del mtodo 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 adems cuantos son mayores que el promedio, imprimir el promedio, el nmero 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 posicin y el valor del elemento mayor almacenado en el vector. Suponga que todos los elementos del vector son diferentes. 4) Almacenar 500 nmeros 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 nmeros en un vector, imprimir cuantos son ceros, cuntos son negativos, cuantos positivos. Imprimir adems la suma de los negativos y la suma de los positivos. 6) Almacenar 150 nmeros en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.
152
Fundamentos de Programacin
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. Sern iguales cuando en la misma posicin de ambos vectores se tenga el mismo valor para todos los elementos.
8) Se tiene el vector A con 100 elementos almacenados. Disee un algoritmo que escriba SI si el vector esta ordenado ascendentemente o NO si el vector no est ordenado
9) Disee un algoritmo que lea un nmero cualquiera y lo busque en el vector X, el cual tiene almacenados 80 elementos. Escribir la posicin donde se encuentra almacenado el nmero en el vector o el mensaje NO si no lo encuentra. Bsqueda secuencial.
10) Disee 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 multiplicacin almacenarlo en un vector C.
11) Disee un algoritmo que almacene en un vector llamado FIB[100] los 100 primeros nmeros de la serie fibonacci.
153
Fundamentos de Programacin
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 nmero 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 ms claras.
TEMAS:
ARREGLOS o Arreglos bidimensionales (Vectores). Declaracin inicializacin y asignacin. Ejemplos de arreglos bidimensionales Ejercicios.
Las variables utilizar son. Nf ._ nmero de filas Nc ._ nmero 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 operacin. Aqu su formato para declarar. Ps Nf,nc,fi,ci : entero X(5,5), y(5,5), s(5,5) : real 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 Programacin
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 tambin de la capacidad de crear arrays formados por ms 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 Crearamos un array multidimensional formado por tres filas y cinco columnas. En este caso, el nmero correspondiente a la primera dimensin denota las filas, mientras que el nmero de la segunda dimensin 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 miembros, algunos de los cuales, describimos seguidamente. Rank. Devuelve el nmero de dimensiones del array. GetLength(Dimension). Devuelve el nmero de elementos de la dimensin de array pasada como parmetro. GetLowerBound(Dimensin). Devuelve el nmero de ndice inferior de la dimensin pasada como parmetro.
155
Fundamentos de Programacin
Es un array en que el acceso de sus elementos lo hace con ms de in ndice, trabajando as con uno principal para las filas y otro secundario para el nmero de columnas. Sintaxis. Para leer
Para ndice de fila= 0 hasta nmero de elementos de filas Para ndice de columna= 0 hasta nmero 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 nmero de elementos de filas Para indice de columna= 0 hasta nmero 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
156
Fundamentos de Programacin
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 nmero 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 t0 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 tt+1 Fin si Fin para Imprimir "Nmero 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 ms alta entre los atletas es {0}", sm Fin.
157
Fundamentos de Programacin
Ejemplo 2 : Realizar una matriz de 5 filas y 5 columnas ingresar los elementos y determinar cules son pares. Algoritmo Matriz2 Variables n(5, 5) : entero fi, ci, cp : 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 cp 0 Para fi = 1 hasta 5 Para ci = 1 hasta 5 Si (n(fi, ci) Mod 2 = 0) entonces cp cp + 1 Fin si Fin para ci Fin para fi Imprimir "pares d la matriz {0}", cp Fin.
158
Fundamentos de Programacin
Ejemplo 3 : Realizar una aplicacin para ingresar elementos a una matriz de nf = 8, nc = 7, realizar las siguientes operaciones matemticas.
Algoritmo Matriz3 Variables z(9, 9) : real a, b, c, fi, ci, nf, nc : entero INICIO Leer "Ing. nmero de filas ..:", nf - 1 "Ing. nmero 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.
159
Fundamentos de Programacin
Ejemplo 4. Realizar una aplicacin para ingresar elementos a dos matrices: nf = 9, nc = 9, realizar las siguientes operaciones matemticas.
Algoritmo Matriz4 Variables x(9, 9), y(9, 9) : real a, b, c, fi, ci, nf, nc : entero INICIO Leer "Ing. nmero de filas ..:", nf - 1 "Ing. nmero 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.
160
Fundamentos de Programacin
Ejercicio 5 Realizar una aplicacin 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. nmero de filas ..:", nf - 1 "Ing. nmero 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.
161
Fundamentos de Programacin
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 ledos 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 nmero que se introduzca, digamos 3 debe almacenarse en la casilla correspondiente; y los dems valores valdrn 0; si se ingresa el 15; si se ingresa el 8 y as sucesivamente, se tendra esta matriz:
0 0 3 0 0 0 0 8 0 0 0 0
Los valores solo van a ser validos del 1 al 20; si yo pongo otro fuera de ese parmetro me debe de rechazar el valor y pedir otra vez el valor. Tambin debe pedir si se quiere introducir ms 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 atencin a sus clientes 5 cajeros (1,2,3,4,5) por cada transaccin se ingresa el nmero de cajero e importe de la transaccin, que puede ser retiro, deposito y otros. El proceso finaliza cuando en nmero 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.
162
Fundamentos de Programacin
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 crditos de cada curso del primer ciclo. b) Nmero de cursos aprobados y desaprobados de cada alumno c) Porcentaje de alumnos con promedio ponderado aprobado en el ciclo. d) Nmero de alumnos con promedio mayor o igual a 8. Problema 6. Se desea desarrollar un programa que relacione la informacin de los sntomas que padece un paciente con la informacin de los sntomas 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 informacin sobre los sntomas de cada paciente est codificada en una matriz en donde las filas representa cada paciente y las columnas los diferentes sntomas que padece y la informacin de los sntomas de cada enfermedad debe colocarse en una matriz en donde las filas representan las diferentes enfermedades y las columnas los sntomas de cada enfermedad. Las matrices de sntomas tendrn solamente los valores verdadero o falso, en donde verdadero representa que el sntoma est presente en la enfermedad o en el paciente, segn 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 ms comn, el nmero de pacientes que la tienen y el porcentaje. Generar un reporte con la enfermedad menos comn, el nmero de pacientes que la tienen y el porcentaje.
Problema 7. Escribir un programa que determine si un matriz A de NxN es simtrica o no. La matriz es simtrica 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 sern ceros) Computacin, Informtica & Sistemas 163
Fundamentos de Programacin
a) Cuadrada b) No cuadrada (teniendo en cuenta de que tamao deber ser la nueva matriz) Problema 12. Se tiene una matriz, intercambiar los elementos de 2 renglones seleccionados por el usuario.
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.
164
Fundamentos de Programacin
165
Fundamentos de Programacin
166
Fundamentos de Programacin
Ejemplo Nro. 1: Ingresar 2 nmeros enteros y luego visualizar el mayor valor de estos nmeros. 1.1 Cdigo en Visual Basic .NET
167
Fundamentos de Programacin
168
Fundamentos de Programacin
Ejemplo Nro. 2: Una tienda comercial ofrece a sus clientes un descuento del 3% del total de compra si el nmero de productos adquiridos es mayor a 5. Calcular el total a pagar por una compra. 2.1 Cdigo en Visual Basic .NET
169
Fundamentos de Programacin
170
Fundamentos de Programacin
Ejemplo Nro. 3: Una empresa otorga a sus trabajadores una bonificacin equivalente al 5% del salario por cada hijo que tenga el trabajador. Calcular la bonificacin y el total a pagar a un trabajador. 3.1 Cdigo en Visual Basic .NET
171
Fundamentos de Programacin
172
Fundamentos de Programacin
Ejemplo 4: Ingrese un nmero entre 1 y 999 y visualice el nmero de cifras que lo componen. 4.1 Cdigo en Visual Basic .NET
173
Fundamentos de Programacin
174
Fundamentos de Programacin
Ejemplo 5: Ingresar un nmero entre 1 y 5, luego visualizar su equivalente en letras. 5.1 Cdigo en Visual Basic .NET
175
Fundamentos de Programacin
176
Fundamentos de Programacin
BIBLIOGRAFIA
Fundamentos de Programacin
: Jess Carretero Felix Garca Jos Manuel Prez Alejandro Caldern 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/
177