Академический Документы
Профессиональный Документы
Культура Документы
Algoritmos y Programación
(Trujillo-Perú, 2013)
ÍNDICE
1. PRESENTACIÓN ................................................................................................................. 2
2. CONCEPTOS BÁSICOS ........................................................................................................ 3
2. INTRODUCCIÓN A LA PROGRAMACIÓN ........................................................................... 17
3. REPRESENTACIÓN DE LOS ALGORITMOS Y ESTRUCTURAS SECUENCIALES ........................ 38
4. ESTRUCTURAS DE SELECCIÓN SIMPLES Y DOBLES ............................................................ 60
5. ESTRUCTURAS DE SELECCIÓN DOBLES ENCADENADAS .................................................... 77
6. MÉTODOS TIPO VOID ...................................................................................................... 89
7. MÉTODOS CON VALOR DE RETORNO............................................................................... 99
8. CONTADORES Y ACUMULADORES ................................................................................. 109
9. ESTRUCTURAS DE REPETICION WHILE – DO WHILE ........................................................ 123
10. ESTRUCTURAS DE SELECCIÓN MULTIPLES .................................................................. 139
11. ESTRUCTURAS DE REPETICION WHILE – DO WHILE .................................................... 154
12. BIBLIOGRAFIA ............................................................................................................ 170
ÍNDICE Página 1
Algoritmos y Programación – Ing. Haybert Escobedo Neyra 2013
1. PRESENTACIÓN
El texto universitario de Algoritmos y Programación en NetBeans tiene la finalidad de
ser un texto de apoyo en el aprendizaje de los algoritmos y programación mediante las
estructuras básicas de control para:
Estructuras Secuenciales
Estructuras Selectivas
Estructuras Repetitivas
PRESENTACIÓN Página 2
Algoritmos y Programación – Ing. Haybert Escobedo Neyra 2013
2. CONCEPTOS BÁSICOS
TEMARIO
Representación de la Información
Tipos de Programas
Lenguaje de Programación
Definición de Algoritmos
El Proceso de un algoritmo
Verificación del algoritmo o prueba de escritorio
Lenguaje Java
Etapas De Desarrollo De Un Programa Java
Tipos de Programas en Java
Software para el desarrollo de programas Java.
1. REPRESENTACIÓN DE LA INFORMACIÓN
a. Dato e Información
Son dos términos que suelen confundirse. Se consideran datos a toda entrada de
información a una computadora. Estos datos pueden ser administrativos, científicos,
comerciales, etc. son elementos primitivos, de los cuales a través del procesamiento se
obtiene la información. Presupuesto, ámbito y plazos
b. Proceso Computacional
R = t(D)
El proceso que define la transformación efectuada sobre los datos de entrada puede ser
especificado por el usuario; es por ello que se dice que el computador es programable.
c. Software
d. Programas
Es una transformación específica, definida y expresada de forma que pueda ser utilizada
por el computador.
2. TIPOS DE PROGRAMA
Sistema operativo,
Lenguajes de programación
Programas de aplicación.
Programa Fuente
Programa Objeto
Es aquel programa que resulta de la traducción del lenguaje fuente (lenguaje entendible
por el ser humano) a un lenguaje máquina, es decir a aquel que es inteligible por la
computadora. Esta tarea es llevada a cabo por los programas intérpretes o compiladores
Los intérpretes, realizan la traducción de manera tal que el lenguaje obtenido puede
ser ejecutado directamente por la máquina.
En cuanto a los compiladores, no realizan la traducción directa para que pueda ser
ejecutable por la computadora sino que debe utilizar también un programa montador
o enlazador, conocido como linker, que es el que realiza la acción final que permite
que el programa objeto pueda ser ejecutado.
3. Lenguajes de Programación
Se usan para poder dar a un computador las diferentes órdenes que llegan a componer un
algoritmo. Según su nivel de abstracción los lenguajes de programación se pueden
clasificar:
Lenguajes de alto nivel, son normalmente fáciles de aprender porque están formados
por elementos de lenguajes naturales, como el inglés. Algunos ejemplos de estos tipos
de lenguajes son. Visual Basic, Java, Power Builder, etc.
Lenguajes de medio nivel, hay lenguajes de programación que son considerados por los
expertos lenguajes de medio nivel al tener ciertas características que los acercan a los
lenguajes de bajo nivel, pero teniendo al mismo tiempo, ciertas cualidades que lo hacen
un lenguaje más cercano al humano, por lo tanto de alto nivel. Por ejemplo el lenguaje
C.
4. Definición de Algoritmo
Es un método o conjunto de reglas (sin ambigüedades) que se aplican paso a paso en
forma ordenada para solucionar problemas.
Se define también como los pasos ordenados que se deben efectuar para realizar un
trabajo o tarea específica.
Ejemplos de Algoritmo
Diseñar un algoritmo para preparar un litro de limonada:
Inicio
Llenar una jarra con un litro de agua
Exprimir el jugo de 5 limones
Añadir el jugo de limones al agua
Agregar 5 cucharadas de azúcar
Revolver el agua hasta que el azúcar se disuelva completamente
Fin
Algoritmo vs Programa
Recordemos que el término “Algoritmo” se refiere a la secuencia de pasos para resolver un
problema, pero independientemente del lenguaje de programación que se utilice, mientras
que “Programa” se refiere propiamente a la codificación de un algoritmo en un lenguaje de
programación.
Características de un algoritmo
Las características fundamentales que debe cumplir todo algoritmo son:
Debe ser preciso, es decir debe indicar el orden exacto de la realización de cada
etapa evitando acciones innecesarias.
Debe estar definido, significa que si se ejecuta un algoritmo 2 o más veces, con los
mismos valores iníciales, se debe obtener el mismo resultado todas las veces.
Debe ser finito, significa que si se sigue un algoritmo, se debe terminar en algún
momento, es decir, debe tener un número finito de pasos.
Debe tener un único punto de entrada o inicio y uno de salida o fin.
Todas las etapas o pasos a seguir son ejecutables
5. El proceso de un algoritmo
Ejemplo 01:
Leer la base y altura de un paralelogramo. Calcular su área.
Ejemplo 02:
Leer el radio de una circunferencia. Calcular su área y longitud.
Una vez escrito el algoritmo es necesario asegurarse de que éste realiza las tareas para las
que ha sido diseñado, y que por lo tanto produce el resultado correcto y esperado.
7. Lenguaje Java
Java es un lenguaje de programación de alto nivel con el que se pueden escribir programas
de cualquier tipo. Se dice que es un lenguaje de alto nivel porque se asemeja más al
lenguaje humano, a diferencia de los lenguajes de bajo nivel que se asemejan más al
lenguaje de las computadoras (conocidos como lenguajes máquina).
Los programas escritos en Java no son comprensibles en forma directa por el procesador,
por lo que requieren de pasos intermedios de traducción al lenguaje del computador
conocido como lenguaje máquina.
a. Edición
En esta etapa, se escriben las instrucciones del programa usando el lenguaje Java y se
guarda en un archivo cuyo nombre debe terminar con la extensión .java. Así, por
ejemplo, el archivo podría llamarse Saludo.java. A este programa escrito en Java se
denomina código fuente y para escribirlo se puede recurrir a cualquier editor de texto.
b. Compilación
c. Ejecución
En esta etapa, el código de bytes es ejecutado por la Máquina Virtual de Java (JVM,
siglas en inglés de Java Virtual Machine). El código de bytes es el lenguaje de la JVM.
Existe una JVM para cada plataforma (para cada sistema operativo); pero, todas las JVM
pueden ejecutar el mismo código de bytes. Así, el código de bytes es independiente de
la plataforma. Esto hace que los programas Java puedan ser ejecutados en cualquier
máquina que disponga de una JVM. Actualmente, existe una JVM para la mayor parte de
las plataformas, lo que garantiza que los programas Java sean ampliamente portables.
Con más de 9 millones de desarrolladores alrededor del mundo, Java permite desarrollar e
implementar de forma eficaz emocionantes aplicaciones y servicios. Con herramientas
integrales, un ecosistema maduro y un rendimiento sólido, Java ofrece portabilidad a las
aplicaciones incluso en los entornos más diversos.
Plataformas
Java Platform, Standard Edition (Java SE), está diseñado para permitirle
desarrollar aplicaciones seguras, portátiles y de alto rendimiento para la más
amplia gama posible de plataformas computacionales. Al hacer que las
aplicaciones estén disponibles para entornos heterogéneos, los negocios
pueden aumentar la productividad, la comunicación y la colaboración del
usuario final y así reducir drásticamente el costo de propiedad de las aplicaciones
empresariales y de consumidor.
Java para dispositivos móviles, Java Platform, Micro Edition (Java ME) se usa
para una gran cantidad de desarrolladores Java de teléfonos móviles,
proveedores de telecomunicaciones y OEM para crear productos de funciones
de teléfono alrededor del mundo. Oracle es el proveedor líder de tecnologías
para teléfonos móviles que se encuentran en más de tres mil millones de
dispositivos y contando.
• Java SE Development Kit (JDK), que contiene el compilador, la JVM y a las Librerías del
lenguaje. El JDK fue desarrollado inicialmente por Sun Microsystems y posteriormente
comprado por Oracle, la dirección es http://www.oracle.com/us/sun/index.html
• JCreator LE, que es un Entorno Integrado de Desarrollo (IDE, siglas del inglés
Integrated Development Environment) que permite editar, compilar y ejecutar
programas Java. Para la compilación y ejecución se requiere tener instalado el JDK.
JCreator LE puede ser descargado de la página de Xinox Software cuya dirección es
http://www.jcreator.com
A parte de JCreator LE existen otros Entornos Integrados de Desarrollo profesionales
como JBuilder de Borland, Visual Café de Symantec, Eclipse de IBM, JDeveloper de
Oracle, Visual Age de IBM, etc.
2. INTRODUCCIÓN A LA PROGRAMACIÓN
TEMARIO
Identificadores
Palabras Reservadas
Tipos de Datos
Variables
Variable Primitivas
Constantes
Instrucciones
Literales
Sentencias de Asignación
Expresiones
1. IDENTIFICADORES
Los identificadores son nombres usados para identificar diversos elementos de programa
como variables, constantes, métodos, clases, etc.
Para crear un identificador deben tenerse en cuenta las siguientes reglas:
Debe comenzar con una letra, un símbolo de subrayado (_) o un símbolo de dólar
($).
Los siguientes caracteres pueden ser letras, dígitos, símbolos de subrayado (_) o
símbolos de dólar ($).
Las mayúsculas y minúsculas se consideran diferentes
No puede ser una palabra reservada del lenguaje.
Ejemplo:
Son válidos los siguientes identificadores:
edadMaxima
edadmaxima
monto_total
sueldo_bruto
suelbru
$ganancia
nota2
importeCompra
Note que los identificadores edadMaxima y edadmaxima no son iguales dado que M
(mayúscula) no es lo mismo que m (minúscula).
2. PALABRAS RESERVADAS
En la tabla que sigue se muestran las 50 palabras reservadas del lenguaje Java. Note que
todas ellas están en minúsculas.
También lo podemos definir como Palabras utilizadas por los algoritmos o lenguajes de
programación para representar sentencias, órdenes, etc.
Ejemplos:
inicio. Fin. si–entonces - sino-mientras.
hacer. desde.
Se conocen como tipos de datos primitivos a los tipos de datos que forman parte del núcleo
del lenguaje Java. Existen ocho tipos primitivos que se muestran en la tabla 2
4. VARIABLES
Una variable es una localización de memoria en la que se puede almacenar un valor que
puede cambiar en el transcurso de la ejecución de un programa. Si una variable está
compuesto por dos palabras, éstas pueden ser juntas o unidos por el subrayado bajo ‘ _ ’ .
Nota:
No se deben utilizar como nombres de variables (identificadores) palabras reservadas
del algoritmo o del lenguaje de programación.
Ejemplos:
Nota
Nombre
Apellidos
nota_oral
Apellido_paterno
apellido_materno
Nota1
Contador1
precios
hora
prom
pi
Los nombres de las variables elegidas deben ser significativos y tener relación con el objeto
que representan, como pueden ser los casos siguientes:
5. CONSTANTES
Una constante toma o recibe un valor que no cambia durante el desarrollo del
algoritmo o la ejecución del programa.
6. INSTRUCCIONES
Las instrucciones especifican las operaciones o acciones que deben ser realizadas o
ejecutadas.
7. VARIABLES PRIMITIVAS
Todas las variables deben ser declaradas antes de ser utilizadas. Para declarar una variable
se usa una sentencia de declaración que en su forma básica tiene el siguiente formato:
tipo nombre;
Esta forma básica de declaración puede repetirse para cada variable a declarar; sin
embargo, si varias variables comparten el mismo tipo de dato, puede usarse el
siguiente formato:
tipo nombre1, nombre2, ...,nombren;
Ejemplo 1:
int edad;
int hijos;
double sueldo;
double bonificacion;
char letra;
String curso;
Ejemplo 2:
int edad, hijos;
double sueldo, bonificacion;
int a, b, c;
8. LITERALES
Por ejemplo:
Los siguientes literales son de tipo int
12, 34, 0, -50, etc.
Cualquier valor numérico decimal con parte fraccionaria es un literal real. Los literales
reales se consideran de tipo double. Para especificar que un literal es de tipo float,
debe añadirse, como sufijo, la letra F ó f.
Por ejemplo:
Los siguientes literales son de tipo double
1.23, 3.456, -2.0, 3.25E+12, 2.7e-5, etc.
Para representar un literal real en notación científica se usa la letra E ó e para expresar
la potencia de 10.
Por ejemplo:
3.25E+12 representa a 3.25 x 1012
2.7E-5 representa a 2.7 x 10-5
9. SENTENCIAS DE ASIGNACION
Una sentencia de asignación se utiliza para asignar (almacenar) un valor a una variable.
En una sentencia de asignación el valor situado a la derecha del signo igual se almacena en
la variable situada a la izquierda del signo igual.
variable = expresión;
Donde expresión puede ser una variable, un literal o una combinación de variables, literales
y operadores. La sentencia de asignación almacena en variable el valor de la expresión;
para esto se requiere que expresión y variable tengan el mismo tipo de dato.
Notas
o La asignación tiene carácter destructivo. Esto es, la variable que recibe la
asignación pierde su valor actual de forma irrecuperable
Una variable de tipo double puede recibir la asignación de un valor de tipo int. Esta
es una excepción a la regla. En ese caso el valor de tipo int se convierte
automáticamente al tipo double antes de ser asignado.
o Es un error de sintáxis tratar de asignar un valor de tipo double a una variable de
tipo int.
Ejemplo:
10.EXPRESIONES ARITMÉTICAS
En la tabla que sigue se muestran los operadores aritméticos del lenguaje Java.
Los operadores aritméticos pueden utilizarse con tipos enteros y reales. Si ambos
operandos son enteros, el resultado es un entero; si alguno de ellos es real, el
resultado es real.
Ejemplo:
2+5 produce el valor 7
2.0 + 5 produce el valor 7.0
2 + 5.0 produce el valor 7.0
2.0 + produce el valor 7.0
10/4
5.0 produce el valor 2
10/4.0 produce el valor 2.5
10.0/4 produce el valor 2.5
10.0/4. produce el valor 2.5
15/2 produce el valor 7
0
15%2 produce el valor 1
4/10 produce el valor 0
4%10 produce el valor 4
Operador Precedencia
() Se evalúan en primer lugar.
(^) Se evalúan en segundo lugar.
* / Se evalúan en tercer lugar.
%, div Se evalúan en quinto lugar.
+- Se evalúan al último.
Ejemplo1:
¿Cuál es el resultado de las siguientes expresiones?
a) 15 + 9 * 2 – 6 * 2 ^ 2
b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5)
Solución
Ejemplo2:
Escriba en Java las siguientes expresiones algebraicas:
a.
b.
c.
Solución
a. e = a*a + 3*b*c + 2;
c. z = (a+b+2)/(a*a+1) + 2*a*b;
d. prom = (n1+n2+n3+n4)/4;
Ejercicio de Clases
Convertir en expresiones aritméticas algorítmicas las siguientes expresiones:
a) 7 ( a + b )
b) 8x + 9y + 3z
c) a2 + 2a – 3
d)
x2 – y 2
e) p + q
r+s
t
f) a (cd)
b
Ejemplo:
9 div 2 = 4
Residuo (% o mod)
El operador mod se utiliza para obtener el residuo o resto de una división entera. Igual
que para el operador div, para poder hallar el residuo de una división utilizando
el operador mod, los operandos deben ser exclusivamente enteros.
Ejemplos:
a. 15 mod 6 = 3 b. 14 mod 2 = 0 c. 19 mod 3 = 1
d. 7 mod 9 = 7 e. 3 mod 3 = 0 f. 2 mod 5 = 2
√ Math.sqrt(n)
Donde n y m pueden ser de tipo int o de tipo double; pero el resultado en ambos casos
es de tipo double.
Ejemplo:
Escriba en Java las siguientes expresiones algebraicas:
√
a. ( )
( )
b.
√
Solución:
a. e = Math.pow(a,7) + Math.pow(a + b * b,4) + Math.sqrt(2 + b)/(a * a + b * b);
Una expresión lógica es una expresión que solo puede tomar dos valores:
verdad y falso. Las expresiones lógicas se forman combinando constantes
lógicas, variables lógicas y otras expresiones lógicas, utilizando los operadores
relacionales (de relación o comparación) y los operadores lógicos not, and y or.
Operadores de relación
Permiten realizar comparaciones de valores de tipo numérico o carácter. Los
operadores de relación sirven para expresar las condiciones en los algoritmos. El
resultado de las operaciones de comparación será verdadero o falso.
Operadores de Relación
Significado Operador Algebraico Operador Algorítmico
Menor que < <
Mayor que > >
Igual que = =
Menor o igual que ≤ <=
Mayor o igual que ≥ >=
Distinto de o ≠ <>
Diferente de
Ejemplos:
Si P = 7 * 2 y Q = 3 ^ 2
Nota
Para tener completa seguridad en la ordenación de los caracteres, será preciso
consultar el código de caracteres de su computadora, normalmente el ASCII
(American Standar Code for Information Interchange) o bien el EBCDIC (Extended
Binary-Coded Decimal Interchange Code) utilizado en computadoras IBM diferentes a
los modelos PC y PS/2.
Operadores lógicos
Los operadores lógicos o voléanos son not (no), and (y) y or(o). Las definiciones
de las operaciones no, y, o se resumen en unas tablas conocidas como las tablas de la
verdad.
Nota:
Siendo P y Q expresiones booleanas, V valor verdadero, F valor falso.
Negación = not
Disyunción = and
Conjunción = or
Ejemplos:
o (7 < 12) y (9 < 21) verdad
o (9 > 15) y (3 < 4) falso
o (6 = 41) o (13 > 8) verdad
o (16 > 8) o (2 > 5) verdad
o no(18 > 6) falso
11.ACTIVIDADES PROPUESTAS
11.1. Ponga un aspa al costado de los identificadores válidos.
• año nacimiento
• sueldoNeto
• $monto
• peso-máximo
• EDAD_PROMEDIO
• númeroDeEmpleados
• _temperatura
• xy1$$$$$
• 1_abc$$
• volumen_CILINDRO
e. Tú fecha de cumpleaños.
a.
b.
c.
d.
e.
a) Para un valor de A = 3 y B = 4:
4*A+8*A/B–B^2
b) Para un valor de M = 3 , N = 4 Y O = 5:
c) c. Para un valor de P = 3 , Q = 4 , R = 7 y S = 8:
raiz2(( S / Q ) ^ P * 7 – ( cuadrado(R) + (S - R) ))
a) A * B + B ^ 2 / 4 * C – ( B * C + C / 2 )
b) cuadrado(A + C) - raiz(B * A + 6) * (B * A / C )
c) ((( B + C ) / 2 * A + 10 ) - 3 * B ) + 6 – C
P^q^r
h) 6 * 10 – 40 mod 3 * 4 + 9
i) (9 ^ 2 mod 4 + ( 7 * 5 ) div 6) div 2
j) 5 mod 3 * ( 7 div 1 ) - ( 22 div 4 * 2 ) mod 3
a) raiz2(15 – 7 + 8 – 3 * 2)
b) 2 mod 3 + 3 div 5 * 7
c) 7 div 3 / 9
d) 9 mod 6 mod 2
e) 9 mod ( 6 mod 2)
f) ( 5 mod 3 ) mod 7
g) (( 9 + 8 ) div 2) / ( 4 * (1 mod 9))
h) ( 23 div 4 ) * ( 8 / 2 + 3 mod 8 )
TEMARIO
Ejemplo 1:
El diagrama de flujo siguiente representa la resolución de nuestro primer programa
que deduce el área y perímetro de un rectángulo, sabiendo que su base y altura tienen
los valores 8cm y 2cm respectivamente.
Análisis
Para este ejemplo hemos identificado nuestras variables a trabajar:
base
a = b
Altura
b
. = h
área
c = a
.
Perímetro
d = p
.
.
Todo algoritmo se debe comenzar con un inicio y finalizar con un fin, para ello
se utilizará el símbolo terminal. Para lograr explicar con mayor claridad nuestro
algoritmo, hemos incluido número de línea. Donde la explicación por línea es la
siguiente:
La línea 01, se utiliza el símbolo terminal junto con la palabra inicio que
representa el comienzo del algoritmo.
La línea 04, se utiliza el símbolo conector de página, donde sirve para enlazar dos
partes cualesquiera en la misma página del diagrama. Para poder enlazar los
conectores podemos utilizar números o símbolos diferentes a los utilizados en el
algoritmo.
La línea 06, se utiliza el símbolo entrada/salida, en este caso este símbolo representa
la salida de la información obtenida por el algoritmo: el área y el perímetro.
La línea 07, se utiliza el símbolo terminal junto con la palabra fin que representa el fin
del algoritmo.
Nota:
El diagrama de flujo nos da una idea del orden de ejecución de las actividades
en el tiempo. Primero cargamos los datos de entrada, luego hacemos las operaciones
necesarias y por último mostramos los resultados.
Ejemplo 2:
El diagrama de flujo del ejemplo anterior también se puede llevar acabo sin el uso de
conectores de página o de páginas diferentes, en el siguiente diagrama se muestra
cómo sería. Pero para este ejemplo haremos una variación en nuestro ejemplo. En el
ejemplo 1, los datos de la base y altura eran conocidos 8cm y 2cm. En este ejemplo los
datos de la base y altura, no se conocen y se solicitan para resolver el problema; para
solicitar los datos de entrada utilizaremos el símbolo entrada/salida.
Nota:
En el ejemplo 1, los valores de b y h se conocen, por ello se utiliza el símbolo proceso.
Pero para el ejemplo 2, los valores no se conocen por tanto tienen que ser ingresados,
para realizar ello en algoritmos se utiliza el símbolo entrada/salida.
Ejemplo 3:
Se ingresan por teclado dos números positivos. Calcular la suma, resta,
multiplicación, división real, división entera, residuo y promedio de dichos números.
Reportar los resultados.
Ejemplo 4:
Una tienda de ropa exclusiva compra en Lima 50 pantalones jeans a un costo de S/. 45
y aquí en Trujillo los oferta a S/. 60. ¿Cuánto es la ganancia?
Para poner en práctica los nuevos conocimientos adquiridos, resuelvan los ejemplos 3
y 4 de la parte de diagrama de flujo.
3.3. PSEUDOCÓDIGO
Instrucción 2
Instrucción 3
.
.
.
.
Instrucción n
Fin
algoritmo Ejemplo 1
var
entero : b, h, a, p
Inicio
b =8
h =2
a = b * h
p = 2*(b+h)
escribir ( a, p )
fin
algoritmo Ejemplo 2
var
entero : b, h, a, p
Inicio
leer (b)
leer (h)
a = b * h
p = 2*(b+h)
escribir ( a, p )
fin
Para poner en práctica los nuevos conocimientos adquiridos, resolveremos los ejemplos 3 y
4, de la parte de diagrama de flujo.
Nota: Hacer uso de un tiempo de 10 minutos para resolver cada ejemplo. Terminado
de hacerlo revisar sus respuestas con la solución que se presentará en la siguiente sesión.
C. Estructuras Repetitivas.
a. Mientras (while)
b. Hacer_Mientras (do - While)
c. Desde / Para (for)
Para poder conocer cómo se realiza un algoritmo utilizando los métodos para
representar algoritmos, procederemos a realizar tres ejercicios.
EJERCICIOS
Ejercicio 01:
Ejercicio 02:
Ejercicio 03:
Algoritmo
Inicio
// Declaración de variables
real horasTrab, tarifaHor
real sueldoBas, montoBoni, sueldoBru, montoDesc, sueldoNet
// Entrada de datos
Leer horasTrab, tarifaHor
// Proceso de cálculo
sueldoBas = horasTrab*tarifaHor
montoBoni = 0.20*sueldoBas
sueldoBru = sueldoBas+montoBoni
montoDesc = 0.10*sueldoBru
sueldoNet = sueldoBru-montoDesc
// Salida de resultados
Imprimir sueldoBas, montoBoni, sueldoBru, montoDesc, sueldoNet
Fin
5.2. Escriba un programa que calcule el área total y el volumen de un cilindro. Considere
las siguientes fórmulas: A = 2πr(r+h) y V = πr²h; siendo A el área, V el volumen, r el
radio y h la altura.
Algoritmo
Inicio
// Declaración de variables
real r, h, area, volumen
// Entrada de datos
Leer r, h
// Proceso de cálculo
area = 2*3.1416*r*(r+h)
volumen = 2*3.1416*r*r*h
// Salida de resultados
Imprimir area, volumen
Fin
5.3. René, Verónica y Leyla aportan cantidades de dinero para formar un capital. Diseñe
un programa que determine el capital formado y el porcentaje de dicho capital que
aporta cada una.
Algoritmo
Inicio
// Declaración de variables
real dineRene, dineVero, dineLey, capital, porcRene, porcVero, porcLey
// Entrada de datos
Leer dineRene, dineVero, dineLey
Algoritmo
Inicio
// Declaración de variables
entero numero, centro
// Entrada de datos
Leer numero
// Salida de resultados
Imprimir centro
Fin
5.5. Diseñe un algoritmo para repartir una cantidad de dinero a tres personas en forma
proporcional a sus edades. El monto que le corresponde a cada persona se calcula
con la siguiente fórmula:
Algoritmo
Inicio
// Declaración de variables
real montoP1, montoP2, montoP3, montoRepartir
entero edadP1, edadP2, edadP3, sumaEdades
// Entrada de datos
Leer montoRepartir, edadP1, edadP2, edadP3
// Salida de resultados
Imprimir montoP1, montoP2, montoP3
Fin
Algoritmo
Inicio
// Declaración de variables
real precio, importecom, importedes, importepag
entero unidades
// Entrada de datos
Leer precio, unidades
// Cálculo de importes
importecom = unidades*precio
importedes = 0.11*importecom
importepag = importecom – importedes
// Salida de resultados
Imprimir importecom, importedes, importepag
Fin
6. ACTIVIDADES PROPUESTAS
Realice los siguientes ejercicios utilizando los diagramas de flujo, N-S y Pseudocódigo.
6.10. Un hospital ha recibido una donación especial que será repartida entre las áreas de
Pediatría, Medicina General, Ginecología y Traumatología de la siguiente forma:
• Pediatría: 20% del monto total recibido entre Medicina General y
Ginecología
• Medicina General: 45% de la donación
• Ginecología: 30% de la donación
• Traumatología: lo que resta la donación.
Diseñe un algoritmo que determine cuánto recibirá cada área
6.11. Emplee la ley de Ohm para desarrollar un algoritmo para calcular el voltaje a partir
de los valores de la corriente y la resistencia ingresados por el usuario.
donde: v = voltaje
i = corriente Formula: v = i * r
r = resistencia
6.12. Una alcancía contiene n1 billetes de 200 soles, n2 billetes de 100 soles, n3 billetes
de 50soles, n4 billetes de 20 soles, n5 billetes de 10 soles, n6 monedas de 5 soles,
n7 monedas de 2 soles, n8 monedas de sol, n9 monedas de 50 centavos, n10
monedas de 20 centavos y n11 monedas de 10 centavos. ¿Cuánto dinero hay en la
alcancía expresado en soles y en centavos? n1, n2, n3,…n11 debe ingresar por
teclado.
6.13. Si la alcancía del problema anterior contuviera solamente n monedas de un sol.
¿Cuántos billetes de 200, de 100, de 50, de 20, de 10, contendría? Asimismo
monedas de 5, de 2 y de un sol?
TEMARIO
Estructuras de Selección
Operadores Lógicos y Relacionales
Estructura de Selección Simple
Estructura de Selección Doble
4. ESTRUCTURAS DE SELECCIÓN
Las estructuras de selección, se utilizan para tomar decisiones lógicas; de ahí que se
suelen denominar también estructuras condicionales, de decisión o alternativas.
Simples
Dobles
Múltiples
Anidadas
Son operadores que se utilizan para crear condiciones lógicas. Una condición lógica es una
expresión lógica que puede ser verdadera (true) o falsa (false) y puede incluir operadores
aritméticos.
Operador Significado
== Igual a
!= Diferente de
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
Operador Significado
|| OR lógico (ó)
&& AND lógico (y)
! NOT lógico (no)
Las tablas de verdad de los operadores lógicos son las mismas de la lógica
matemática, como se muestra en la tabla 3.
p q p && q p || q !
true true true true false
p
La estructura selectiva simple ejecuta una determinada acción o acciones cuando se cumple
una determinada condición, es decir, tenemos la opción de realizar una actividad o
varias si la condición es verdadero y si es falso no se realizará ninguna actividad.
Ejemplo 1:
Ingresar el sueldo de una persona, si supera los S/. 3000 soles, mostrar un mensaje en
pantalla indicando que debe abonar impuestos.
Ejemplo 2:
Realizar un algoritmo que permita el ingreso de un número entero, si es positivo debe
mostrar el mensaje que es un número positivo, elevarlo al cuadrado y mostrar dicho
resultado. Al terminar el algoritmo debe decir ’fin del algoritmo’.
De acuerdo a la condición podemos realizar actividades por el lado verdadero o por el lado
falso, PERO NUNCA se realizan las actividades de ambos lados al mismo tiempo.
Ejemplo 3:
Realizar un algoritmo que lea dos números enteros distintos entre sí y mostrar por
pantalla el mayor y el menor. Al final del algoritmo mostrar también el nombre del creador
del algoritmo.
Ejemplo de autoaprendizaje:
Resuelva en diagrama de flujo, estructurado y pseudocódigo.
Ejemplo 4:
Realizar un algoritmo que permita el ingreso de tres notas de un alumno. Calcular la
nota promedio y si el promedio es mayor o igual a 10.5 mostrar un mensaje
“Aprobado” o “Desaprobado”.
Ejemplo 5:
Un cobrador de impuestos tiene la meta de cobrar 1000 soles, realiza tres cobranzas; si el
dinero obtenido supera la meta mostrar un mensaje respectivo. Al final del algoritmo
mostrar el monto cobrado.
Algoritmo
Inicio
// Declaración de variables
entero unidades;
real impcom, impdes, imppag
// Entrada de datos
Leer unidades
// Cálculo del importe de la compra si( unidades >= 1 && unidades <= 25 )
impcom = unidades*27.5
si( unidades >= 26 && unidades <= 50 )
impcom = unidades*25.5
si( unidades >= 51 && unidades <= 75 )
impcom = unidades*27.5
si( unidades >= 76)
impcom = unidades*27.5
// Cálculo del importe del descuento si( unidades > 50 )
impdes = 0.15*impcom
si( unidades <= 50 )
impdes = 0.05*impcom
// Calcula el importe a pagar
imppag = impcom - impdes;
// Salida de resultados
Imprimir impcom, impdes, imppag
Fin
8.2. Los ángulos se clasifican de la siguiente manera:
Magnitud Clasificación
β = 0º Nulo
0º < β < 90º Agudo
β = 90º Recto
90º < β < 180º Obtuso
β = 180º Llano
180º < β < 360º Cóncavo
β = 360º Completo
Algoritmo
Inicio
// Declaración de variables
entero grados, minutos, segundos
real beta
cadena tipo
// Entrada de datos
Leer grados, minutos, segundos
// Determina el ángulo en grados
beta = grados + minutos/60.0 + segundos/3600.0
// Determina el tipo de ángulo
si( beta == 0 )
tipo = "Nulo"
si( beta > 0 && beta < 90 )
tipo = "Agudo"
si( beta == 90 )
tipo = "Recto"
si( beta > 90 && beta < 180 )
tipo = "Obtuso"
si( beta == 180 )
tipo = "Llano"
si( beta > 180 && beta < 360 )
tipo = "Cóncavo"
si( beta == 360 )
tipo = "Completo"
// Salida de resultados
Imprimir tipo
Fin
8.3. El promedio final de un curso se obtiene en base al promedio simple de tres
prácticas calificadas. Para ayudar a los alumnos, el profesor del curso ha prometido
incrementar en dos puntos la nota de la tercera práctica calificada, si es que esta es
no menor que
10. Diseñe un programa que determine el promedio final de un alumno conociendo
sus tres notas. Considere que la nota máxima es 20.
Algoritmo
Inicio
// Declaración de variables
real p1, p2, p3, promedio
// Entrada de datos
Leer p1, p2, p3
// Si amerita, añade 2 puntos a p3
si( p3 >= 10 ){
p3 = p3 + 2
si( p3 > 20 )
p3 = 20
}
// Determina el promedio
promedio = (p1+p2+p3)/3
// Salida de resultados
Imprimir promedio
Fin
8.4. Diseñe un programa que lea un número natural de cuatro cifras y forme el mayor
número posible de dos cifras usando la cifra mayor y la cifra menor del número
ingresado
Algoritmo
Inicio
// Declaración de variables
entero numero, cunid, cdece, ccent, cmill, cmay, cmen, maynum
// Entrada de datos
Leer numero
// Descompone el número en sus cifras
cmill = numero/1000
ccent = numero%1000/100
cdece = numero%1000%100/10
cunid = numero%1000%100%10
8.5. En un estacionamiento, se cobra S/. 2.5 por hora o fracción de hora. Dado el tiempo
de estacionamiento de un vehículo expresado en el formato HH:MM, determine el
importe a pagar por concepto de estacionamiento
Algoritmo
Inicio
// Declaración de variables
entero horas, minutos
real importe
// Entrada de datos
Leer horas, minutos
// Si hay una fracción de hora, se cobra una hora adicional
si( minutos > 0 )
horas = horas+1
// Determina el importe a pagar
importe = horas*2.5
// Salida de resultados
Imprimir importe
Fin
9. ACTIVIDADES PROPUESTAS
Realice los siguientes ejercicios utilizando los diagramas de flujo, N-S y Pseudocódigo.
9.2. Leer un tiempo en segundos y determinar cuantos minutos hay, Al final del
algoritmo mostrar los segundos sobrantes.
9.3. Realizar un algoritmo que convierta de dólares a soles o de soles a dólares.
9.4. En una autopista se multa a los conductores de vehículos que exceden el límite de
velocidad permitido de acuerdo a la siguiente tabla.
9.5. Una tienda vende un producto a un precio unitario que depende del número de
unidades adquiridas de acuerdo a la siguiente tabla:
Como oferta la tienda ofrece un descuento igual al 15% del importe de la compra si
es que el número de unidades adquiridas es mayor que 50; en caso contrario, sólo
descuenta el 5%.
9.8. Un curso se evalúa en base a cuatro notas de práctica de las cuales se elimina la
nota menor y se promedian las tres notas más altas. Diseñe un programa que
determine la nota eliminada y el promedio final de un alumno.
9.9. Realizar un algoritmo que calcule el salario semanal de un obrero, el cual se obtiene
de la siguiente manera:
Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja más de 40 horas se le paga $16 por cada una de las primeras 40
horas y $20 por cada hora extra.
9.10. En la empresa Toyota del Perú a los clientes se les ofrece los siguientes descuentos
en base al precio del auto que se quiere comprar.
9.11. Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se
compran tres camisas o más se aplica un descuento del 20% sobre el total de la
compra y si son menos de tres camisas un descuento del 10%.
9.12. Una empresa calcula el sueldo bruto de sus trabajadores en base a las horas
trabajadas. Hasta 48 horas, se paga una tarifa horaria normal. Para las horas en
exceso sobre 48, se paga un recargo del 15% respecto a la tarifa horaria normal. Por
otro lado, si el sueldo bruto es superior a S/. 1700, se aplica un descuento del 11%.
Diseñe un programa que determine el sueldo bruto, el descuento y el sueldo neto
de un trabajador.
9.13. Dado un número natural de tres cifras, diseñe un algoritmo que determine si el
número es o no capicúa. Un número es capicúa si se lee igual de derecha a
izquierda que de izquierda a derecha. Así, por ejemplo, 363 es capicúa; pero, 356
no lo es.
TEMARIO
En el caso de acciones compuestas, estas deben estar encerradas entre llaves de bloque { }.
Magnitud Clasificación
β = 0º Nulo
0º < β < 90º Agudo
β = 90º Recto
90º < β < 180º Obtuso
β = 180º Llano
180º < β < 360º Cóncavo
β = 360º Completo
Algoritmo
Inicio
// Declaración de variables
entero grados, minutos, segundos real beta Cadena tipo
// Entrada de datos
Leer grados, minutos, segundos
// Determina el ángulo en grados
beta = grados + minutos/60.0 + segundos/3600.0
// Determina el tipo de ángulo
si( beta == 0 )
tipo = "Nulo"
sino si(beta < 90 )
tipo = "Agudo"
sino si( beta == 90 )
tipo = "Recto"
sino si( beta < 180 )
tipo = "Obtuso"
Día Tarifa
Lunes a Jueves S/. 3.5
Viernes y Sábado S/. 4.5
Domingo S/. 2.5
Algoritmo
// Entrada de datos
Leer h1, m1, h2, m2, dia
si( totalmin%60 != 0 )
horaspag = horaspag+1
// Salida de resultados
Imprimir horaspag, montopag
Fin
Categoría Pensión
A S/. 380
B S/. 340
C S/. 300
D S/. 260
E S/. 180
Semestralmente, la universidad efectúa rebajas en las pensiones de sus
estudiantes a partir del segundo ciclo en base al promedio ponderado del
ciclo anterior en porcentajes dados en la tabla siguiente:
Promedio Descuento
0 a13.99 No hay descuento
14.00 a 15.99 10 %
16.00 a 17.99 12 %
18.00 a 20.00 15 %
Diseñe un programa que determine cuánto de rebaja recibirá un estudiante sobre
su pensión actual y a cuánto asciende su nueva pensión.
Algoritmo
Inicio
// Declaración de variables entero categoria
real actualpen, nuevapen, descuento, promedio
// Entrada de datos
Leer categoria, promedio
// Cálculo de la pensión actual
si( categoria == 0 )
actualpen = 550
sino si ( categoria == 1 )
actualpen = 500
sino si ( categoria == 2 )
actualpen = 460
sino
actualpen = 400
// Cálculo del descuento
si( promedio <= 13.99 )
descuento = 0
sino si( promedio <= 15.99 )
descuento = 0.10*actualpen
sino si( promedio <= 17.99 )
descuento = 0.12*actualpen
sino
descuento = 0.15*actualpen
// Cálculo de la nueva pensión
nuevapen = actualpen – descuento
// Salida de resultados
Imprimir actualpen, nuevapen
Fin
Algoritmo
Inicio
// Declaración de variables
real montoprestamo, montointeres, tasainteres, montocuota
entero cuotas
// Entrada de datos
Leer montoprestamo
// Obtención del número de cuotas
si( montoprestamo <= 5000 )
cuotas = 2
sino si( montoprestamo <= 10000 )
cuotas = 4
sino si( montoprestamo <= 15000 )
cuotas = 6
sino
cuotas = 10
// Obtención de la tasa de interés
si( montoprestamo > 10000 )
tasainteres = 0.03
sino
tasainteres = 0.05
// Cálculo del monto del interés total
montointeres = tasainteres*montoprestamo*cuotas
// Salida de resultados
Imprimir cuotas, montocuota, montointeres
Fin
6.5. Una empresa evalúa a sus empleados bajo dos criterios: puntualidad y
rendimiento. En cada caso el empleado recibe un puntaje que va de 1 a 10, de
acuerdo a los siguientes criterios:
Puntaje por puntualidad:- está en función a los minutos de tardanza de acuerdo a la
siguiente tabla:
Observaciones Puntaje
0 10
efectuadas
1 8
2 5
3 1
Más de 3 0
El puntaje total del empleado es la suma del puntaje por puntualidad más el
puntaje por rendimiento. En base al puntaje total, el empleado recibe una
bonificación anual de acuerdo a la siguiente tabla:
Algoritmo
Inicio
// Declaración de variables
entero minutosTar, numeroObs, puntajePun, puntajeRen, puntajeTot
real bonificacion
// Entrada de datos
Leer minutosTar, numeroObs
// Determinación del puntaje por puntualidad
si(minutosTar == 0)
puntajePun = 10
sino si(minutosTar <= 2)
puntajePun = 8
sino si(minutosTar <= 5)
puntajePun = 6
sino si(minutosTar <= 9)
puntajePun = 4
sino
puntajePun = 0
// Determinación del puntaje por rendimiento
si(numeroObs == 0)
puntajeRen = 10
sino si(numeroObs == 1)
puntajeRen = 8
sino si(numeroObs == 2)
puntajeRen = 5
sino si(numeroObs == 3)
puntajeRen = 1
sino
puntajeRen = 0
// Determinación del puntaje total
puntajeTot = puntajePun + puntajeRen
// Determinación de la bonificación
si(puntajeTot < 11)
bonificacion = 2.5*puntajeTot
sino si(puntajeTot <= 13)
bonificacion = 5.0*puntajeTot
sino si(puntajeTot <= 16)
bonificacion = 7.5*puntajeTot
sino si(puntajeTot <= 19)
bonificacion = 10.0*puntajeTot
sino
bonificacion = 12.5*puntajeTot
// Salida de resultados
Imprimir puntajePun, puntajeRen, puntajeTot, bonificacion
Fin
7. ACTIVIDADES PROPUESTAS
Realice los siguientes ejercicios utilizando los diagramas de flujo, N-S y Pseudocódigo.
Promedio Categoría
≥ 17 A
≥ 14 pero < 17 B
≥ 12 pero < 14 C
< 12 D
7.2. El índice de masa corporal (IMC) permite medir el grado de sobrepeso u obesidad
de una persona. El IMC de una persona se calcula con la fórmula:
7.4. Diseñar un programa que lea la temperatura promedio de un día e imprima el tipo
de clima correspondiente de acuerdo a la siguiente tabla:
Temperatura Clima
≤ 10 Frío
>10 pero ≤ 20 Nublado
>20 pero ≤ 30 Caluroso
> 30 Trópico
7.5. Una compañía cobra las cuotas mensuales de sus clientes de acuerdo a lo siguiente:
Si el cliente paga dentro de los primeros diez días del mes, obtiene un
descuento igual al mayor valor entre $5 y el 2% de la cuota.
Si el cliente paga en los siguientes diez días, no tiene derecho a ningún
descuento; deberá pagar exactamente la suma adeudada.
Si el cliente paga dentro de los restantes días del mes, tendrá un recargo igual al
mayor valor entre $10 y el 3% de la cuota.
Diseñe un programa que determine cuanto debe pagar un cliente en un mes dado.
7.6. Una empresa calcula el sueldo bruto de sus trabajadores multiplicando las horas
trabajadas por una tarifa horaria que depende de la categoría del trabajador de
acuerdo a la siguiente tabla:
Categoría Tarifa
A S/. 21.0
B S/. 19.5
C S/. 17.0
D S/. 15.5
Por ley, todo trabajador se somete a un porcentaje de descuento del sueldo bruto:
20% si el sueldo bruto es mayor que S/. 2500 y 15% en caso contrario.
7.7. Diseñe un programa que lea tres números a, b, c y determine si los números fueron
ingresados en orden ascendente, en orden descendente o en desorden.
7.8. Diseñe un programa que lea un número entero y determine si tiene 1, 2, 3, 4 ó más
de 4 dígitos.
7.9. Una empresa registra el sexo, edad y estado civil de sus empleados a través de un
número entero positivo de cuatro cifras de acuerdo a lo siguiente: la primera cifra
de la izquierda representa el estado civil (1 para soltero, 2 para casado, 3 para viudo
y 4 para divorciado), las siguientes dos cifras representan la edad y la tercera cifra
representa el sexo (1 para femenino y 2 para masculino).
Dados los votos obtenidos por cada candidato, se le pide diseñar un programa que
determine el nombre del candidato ganador o los nombres de los candidatos que
pasan a la segunda vuelta o un mensaje indicando la anulación de la elección.
TEMARIO
Programación modular.
Variables locales y globales.
Métodos tipo void.
6. PROGRAMACIÓN MODULAR
Las tareas asignadas a los subprogramas pueden ser de diversa índole: entrada, salida,
cálculos, control de otros módulos, etc. Para que un subprograma pueda efectuar su
tarea tiene que ser llamado o invocado por el programa principal o por algún otro módulo
que considere necesario el servicio del subprograma. Una vez que el subprograma termina
su tarea, devuelve el control al punto donde se hizo la llamada. Un subprograma puede
llamar a su vez a otros subprogramas.
Una variable local es una variable que se declara en el interior de un método por lo
que su ámbito es el interior del método, es decir, sólo puede ser utilizada dentro del
método donde fue declarada. Este tipo de variable se crea al iniciar la ejecución del
método y se destruye al finalizar. Por otro lado, una variable local se crea vacía, es
decir no recibe ninguna inicialización automática.
Una variable global es una variable que se declara dentro del programa, pero en el
exterior de todos los métodos, por lo que su ámbito es el interior de todo el
programa, es decir, puede ser utilizada desde cualquier parte del programa. Este tipo
de variable se crea al iniciar la ejecución del programa y se destruye al finalizar. Por
otro lado, una variable global se inicializa automáticamente: 0 si es de tipo int, 0.0 si
es de tipo double, false si es de tipo bolean, ‘\0’ si es de tipo char y null si es de tipo
String.
Un método tipo void es un módulo de programa que puede recibir datos de entrada a
través de variables locales denominadas parámetros; pero, que no retorna ningún
resultado al punto donde es invocado, razón por el que se le conoce también como
método sin valor de retorno. Este tipo de método, al igual que los métodos que retornan un
valor, pueden recibir datos de entrada a través de variables locales al método conocidas
como parámetros.
Definición
Este tipo de método se define de la siguiente manera:
void nombre(){
Declaración de variables locales
Cuerpo del método
}
Invocación
Este tipo de método se invoca de la siguiente manera:
nombre();
Donde nombre es el nombre del método.
Definición
Este tipo de método se define de la siguiente manera:
Invocación
Este tipo de método se invoca de la siguiente manera:
Categoría Pensión
A S/. 380
B S/. 340
C S/. 300
D S/. 260
E S/. 180
Semestralmente, la universidad efectúa rebajas en las pensiones de sus
estudiantes a partir del segundo ciclo en base al promedio ponderado del
Promedio Descuento
0 a 13.99 No hay descuento
14.00 a 15.99 10 %
16.00 a 17.99 12 %
18.00 a 20.00 15 %
Diseñe un programa que determine cuánto de rebaja recibirá un estudiante sobre
su pensión actual y a cuánto asciende su nueva pensión.
Declare todas las variables como globales y use métodos tipo void.
Solución
9.2. Una empresa evalúa a sus empleados bajo dos criterios: puntualidad y
rendimiento. En cada caso el empleado recibe un puntaje que va de 1 a 10, de
acuerdo a los siguientes criterios:
Puntaje por puntualidad:- está en función a los minutos de tardanza de acuerdo a la
siguiente tabla:
Observaciones Puntaje
0 10
efectuadas
1 8
2 5
3 1
Más de 3 0
El puntaje total del empleado es la suma del puntaje por puntualidad más el
puntaje por rendimiento. En base al puntaje total, el empleado recibe una
bonificación anual de acuerdo a la siguiente tabla:
Declare todas las variables como globales y use métodos tipo void.
10.ACTIVIDADES PROPUESTAS
Desarrolle los ejercicios utilizando métodos tipo void y considere las variables como
locales o globales según el caso.
10.1. Realice un programa que permita convertir un monto de dinero dado en soles a sus
equivalentes en dólares y euros.
10.3. Una tienda vende tres tipos de productos a los precios unitarios dados en la
siguiente tabla:
Producto Precio
P1 S/. 15.0
P2 S/. 17.5
P3 S/. 20.0
Solución 1:- Declare todas las variables como globales y use métodos tipo void.
Solución 2:- Declare todas las variables como locales y use métodos tipo void.
10.4. Una empresa calcula el sueldo bruto de sus trabajadores multiplicando las horas
trabajadas por una tarifa horaria que depende de la categoría del trabajador de
acuerdo a la siguiente tabla:
Categoría Tarifa
A S/. 21.0
B S/. 19.5
C S/. 17.0
D S/. 15.5
Por ley, todo trabajador se somete a un porcentaje de descuento del sueldo bruto:
20% si el sueldo bruto es mayor que S/. 2500 y 15% en caso contrario.
Declare todas las variables como globales y use métodos tipo void diferentes para
cada uno de los cálculos.
TEMARIO
Un método con valor de retorno es un módulo de programa que puede recibir datos de
entrada a través de variables locales denominadas parámetros y que retorna un resultado
al punto donde es invocado. Este tipo de método se utiliza para efectuar cualquier tipo de
proceso que produzca un resultado
Definición
tipo nombre(){
Declaración de variables locales
Cuerpo del método
return valor;
}
Donde:
Invocación
variable = nombre();
Donde:
variable : Es la variable que recibe el valor retornado por el método.
nombre : Es el nombre del método invocado.
Definición
Este tipo de método se define de la siguiente manera:
Donde:
nombre : Es el nombre del método
tipo : Es el tipo del valor de retorno.
p1, p2, p3, ... : Son los nombres de los parámetros
tipo1, tipo2, tipo3, … : Son los tipos de datos de los parámetros
valor : Es el valor de retorno
Invocación
Este tipo de método se invoca de la siguiente manera:
Donde:
nombre : Es el nombre del método invocado
variable : Es la variable que recibe el valor de retorno
v1, v2, v3, ... : Son los valores dados a los parámetros
Categoría Pensión
A S/. 380
B S/. 340
C S/. 300
D S/. 260
E S/. 180
Semestralmente, la universidad efectúa rebajas en las pensiones de sus
estudiantes a partir del segundo ciclo en base al promedio ponderado del
ciclo anterior en porcentajes dados en la tabla siguiente:
Promedio Descuento
0 a 13.99 No hay descuento
14.00 a 15.99 10 %
16.00 a 17.99 12 %
18.00 a 20.00 15 %
Diseñe un programa que determine cuánto de rebaja recibirá un estudiante sobre
su pensión actual y a cuánto asciende su nueva pensión.
Declare todas las variables como globales y use métodos tipo void.
Solución
8.2. Una empresa evalúa a sus empleados bajo dos criterios: puntualidad y
rendimiento. En cada caso el empleado recibe un puntaje que va de 1 a 10, de
acuerdo a los siguientes criterios:
Puntaje por puntualidad:- está en función a los minutos de tardanza de acuerdo a la
siguiente tabla:
Observaciones Puntaje
0 10
efectuadas
1 8
2 5
3 1
Más de 3 0
El puntaje total del empleado es la suma del puntaje por puntualidad más el
puntaje por rendimiento. En base al puntaje total, el empleado recibe una
bonificación anual de acuerdo a la siguiente tabla:
Declare todas las variables como locales y use métodos con valor de retorno para
cada una de las entradas y para cada uno de los cálculos.
9. ACTIVIDADES PROPUESTAS
Declare todas las variables como locales y use métodos con valor de retorno para cada una
de las entradas y para cada uno de los cálculos de los siguientes ejercicios.
9.1. Realice un programa que permita convertir un monto de dinero dado en soles a sus
equivalentes en dólares y euros.
9.3. Una tienda vende tres tipos de productos a los precios unitarios dados en la
siguiente tabla:
Producto Precio
P1 S/. 15.0
P2 S/. 17.5
P3 S/. 20.0
9.4. Una empresa calcula el sueldo bruto de sus trabajadores multiplicando las horas
trabajadas por una tarifa horaria que depende de la categoría del trabajador de
acuerdo a la siguiente tabla:
Categoría Tarifa
A S/. 21.0
B S/. 19.5
C S/. 17.0
D S/. 15.5
Por ley, todo trabajador se somete a un porcentaje de descuento del sueldo bruto:
20% si el sueldo bruto es mayor que S/. 2500 y 15% en caso contrario.
8. CONTADORES Y ACUMULADORES
TEMARIO
Son operadores que permiten incrementar o decrementar en una unidad el valor de una
variable numérica.
Operador Uso Equivalencia
++ a++; a = a + 1;
-- a--; a = a - 1;
Ejemplos:
// Incrementa en uno el valor de x (Forma 1)
x = x + 1;
// Incrementa en uno el valor de x (Forma 2)
x++;
// Decrementa en 1 el valor de la variable y (Forma 1)
y = y - 1;
// Decrementa en 1 el valor de la variable y (Forma 2)
y--;
Son operadores que permiten asignar a una variable el valor de la variable mas, menos, por
o entre el valor de otra variable.
Ejemplos:
// Incrementa en 2 el valor de la variable z (Forma 1)
z = z + 2;
// Incrementa en 2 el valor de la variable z (Forma 2)
z += 2;
// Decrementa en 5 el valor de la variable m (Forma 1)
m = m – 5;
// Decrementa en 5 el valor de la variable m (Forma 2)
m -= 5;
10.CONTADORES
Ejemplos:
// Incrementa el número de alumnos aprobados de una sección
aprobados++;
11.ACUMULADORES
Un acumulador es una variable que se utiliza para acumular o totalizar cantidades de una
misma especie.
Ejemplos:
Categoría Pensión
A S/. 380
B S/. 340
C S/. 300
D S/. 260
E S/. 180
Semestralmente, la universidad efectúa rebajas en las pensiones de sus
estudiantes a partir del segundo ciclo en base al promedio ponderado del
ciclo anterior en porcentajes dados en la tabla siguiente:
Promedio Descuento
0 a 13.99 No hay descuento
14.00 a 15.99 10 %
16.00 a 17.99 12 %
18.00 a 20.00 15 %
Diseñe un programa que determine cuánto de rebaja recibirá un estudiante sobre
su pensión actual y a cuánto asciende su nueva pensión.
Declare todas las variables como globales y use métodos tipo void.
Solución
12.3. En un peaje se desea saber cuántos vehículos de cada tipo pasaron por el peaje y
la cantidad total de pasajeros por tipo de vehículo. Los tipos de vehículos a
considerar son: automóvil, camión, camioneta, ómnibus y otros.
13.ACTIVIDADES PROPUESTAS
13.1. Una empresa desarrolladora de software ha puesto a la venta licencias de su
programa de edición: Video Edit 2.0 a los siguientes costos unitarios:
Licencia Costo
Cobre $ 510
Bronze $ 1500
Silver $ 3100
Gold $ 4500
Diseñe un programa que permita ingresar por cada venta el tipo de licencia y el
número de licencias y muestre luego de cada venta:
13.2. Diseñe un programa que permita ingresar de una en una las edades de un conjunto
de personas y muestre luego de cada ingreso:
o El número de personas mayores de edad.
o El número de personas menores de edad.
o La mayor edad ingresada.
o La menor edad ingresada.
13.3. Diseñe un programa que permita registrar una donación para uno de tres centros
de ayuda social: un comedor de niños, una posta médica o una escuela infantil. El
programa mostrará luego de cada donación:
Comedor 20 4500.0
Posta 10 1200.0
Escuela 80 5750.5
Pepsi 46 60 106
Coca 80 50 130
Fanta 100 67 167
13.5. Un hotel turístico tiene tres tipos de habitaciones, cuyos costos por día se dan en la
tabla adjunta. Como oferta, el hotel ofrece un descuento del 15% del importe bruto
para más de 5 días de hospedaje y 10% en caso contrario. Diseñe un programa que
determine el importe bruto, el importe del descuento y el importe a pagar por
parte de un cliente. Además, el programa debe mostrar información actualizada
sobre el número de clientes por tipo de habitación y el importe total pagado para
los clientes ingresados hasta el momento.
TEMARIO
Estructuras Repetitivas.
Estructura de repetición while.
Estructura de repitición do...while.
8. ESTRUCTURAS REPETITIVAS
La estructura while repite una acción o un conjunto de acciones mientras sea verdadera
una determinada condición, para lo cual primero verifica la condición y luego ejecuta la
acción. La acción puede ser una acción simple o una acción compuesta (bloque de
acciones encerradas entre llaves).
Ejemplo 01:
Escribir un algoritmo que lea las 40 notas finales del curso de Algoritmos y Programación, e
informe cuántos alumnos han aprobado y cuántos desaprobaron.
Dato: (Nota >= 10.5 Aprobado)
Ejemplo 02:
Realizar un algoritmo que permita calcular la suma de los números enteros comprendidos
entre dos cantidades ingresadas por teclado. Hallar adicionalmente el promedio de la suma.
Ejemplo 3:
En el curso de Algoritmos y Programación existen 40 alumnos, de los cuales se tiene el
promedio de la Primera Unidad. Se pide realizar un algoritmo que permita hallar el
promedio general de estos alumnos.
Ejemplo 4
Se desea contabilizar cuántos números son positivos, negativos y neutros del ingreso
continuo de números enteros. Este proceso re repite hasta que el usuario pulse la
tecla N al mensaje en pantalla “Desea Continuar[s/n]:”.
Solución
Para la solución del problema se va a necesitar de tres contadores, que realizarán la acción
de contar cuántos números son positivos, negativos y neutros se ingresarán por teclado, de
una serie de números.
cc : contador de ceros
cp : contador de positivos
cn : contador de negativos
11.ACTIVIDADES PROPUESTAS
11.1. Diseñar un algoritmo que permita visualizar la tabla de multiplicar de un
número entero ingresado por teclado.
1x5= 5
2 x 5 = 10
3 x 5 = 15
……
12 x 5 = 60
11.2. Cuantos números son pares positivos y negativos, impares positivos y negativos
entre N1 y N2 un rango de valores enteros.
11.3. Lea una serie de números hasta ingresar el valor de cero. Luego indique cuantos
números positivos, negativos, pares e impares fueron ingresados.
5! = 5 x 4 x 3 x 2 x 1= 120
11.9. Diseñe un programa que genere aleatoriamente las notas de una práctica
calificada de 30 alumnos de una sección e imprima por cada nota tantos
asteriscos como indique la nota.
Nota Histograma
10 **********
8 ********
5 *****
15 ***************
4 ****
1 *
20 ********************
.
.
.
7 *******
3 ***
52 – 8 = 44
44 – 8 = 36
36 – 8 = 28
28 – 8 = 20
20 – 8 = 12
12 – 8 = 4
11.13. En una campaña médica de medición de presión, se pide que se ingresen todas las
edades de los pacientes que serán atendidos. Se solicita que se calcule la mayor y
menor edad ingresada. El ingreso acaba cuando se ingrese un valor 0.
11.14. Escriba un algoritmo que permita reducir una fracción a su mínima expresión. Por
ejemplo:
24/30 = 4/5.
TEMARIO
En el lugar de <valor1> o <caso1>, <valor2> o <caso2>, ..., <valor n> o <caso n> pondremos
los diferentes valores que pueda tomar la decisión, según los cuales el programa debe
hacer una u otra cosa. Pueden existir tanto valores como a nosotros nos convenga. Esta
estructura es muy útil en el momento en el que debemos tomar diferentes decisiones de
una misma condición.
Consideraciones:
Ejemplo 1:
Realizar un algoritmo que lea un número que represente el día de la semana y diga qué día
es, teniendo en cuenta lo siguiente: (Lunes=1, Martes=2, ..., Domingo=7).
Algoritmo
Inicio
// Declaración de variables
entero dias, mes, año cadena nombre
// Entrada de datos
Leer mes, año
// Determina el nombre del mes
según( mes ){
caso 1 : nombre = "Enero"
caso 2 : nombre = "Febrero"
caso 3 : nombre = "Marzo"
caso 4 : nombre = "Abril"
caso 5 : nombre = "Mayo"
caso 6 : nombre = "Junio"
caso 7 : nombre = "Julio"
caso 8 : nombre = "Agosto"
caso 9 : nombre = "Setiembre"
caso 10: nombre = "Octubre"
caso 11: nombre = "Noviembre"
defecto: nombre = "Diciembre"
// Determina el número de días del mes
según( mes ){
caso 1:
caso 3:
caso 5:
caso 7:
caso 8:
caso 10:
caso 12:
dias = 31
caso 4:
caso 6:
caso 9:
caso 11:
dias = 30
defecto:
si((año%4 == 0) && ((año%100 != 0) || (año%400 ==
0)))
dias = 29
sino
dias = 28
}
// Salida
Imprimir nombre, dias
Fin
Día Tarifa
Lunes a Jueves S/. 3.5
Viernes y Sábado S/. 4.5
Domingo S/. 2.5
Algoritmo
// Entrada de datos
Leer h1, m1, h2, m2, dia
// Salida de resultados
Imprimir horaspag, montopag
Fin
Categoría Pensión
A S/. 380
B S/. 340
C S/. 300
D S/. 260
E S/. 180
Semestralmente, la universidad efectúa rebajas en las pensiones de sus
estudiantes a partir del segundo ciclo en base al promedio ponderado del
ciclo anterior en porcentajes dados en la tabla siguiente:
Promedio Descuento
0 a13.99 No hay descuento
14.00 a 15.99 10 %
16.00 a 17.99 12 %
18.00 a 20.00 15 %
Diseñe un programa que determine cuánto de rebaja recibirá un estudiante sobre
su pensión actual y a cuánto asciende su nueva pensión.
Algoritmo
Inicio
// Declaración de variables entero categoria
real actualpen, nuevapen, descuento, promedio
// Entrada de datos
Leer categoria, promedio
// Cálculo de la pensión actual
si( categoria == 0 )
actualpen = 550
sino si ( categoria == 1 )
actualpen = 500
sino si ( categoria == 2 )
actualpen = 460
sino
actualpen = 400
// Cálculo del descuento
si( promedio <= 13.99 )
descuento = 0
sino si( promedio <= 15.99 )
descuento = 0.10*actualpen
sino si( promedio <= 17.99 )
descuento = 0.12*actualpen
sino
descuento = 0.15*actualpen
// Cálculo de la nueva pensión
nuevapen = actualpen – descuento
// Salida de resultados
Imprimir actualpen, nuevapen
Fin
Algoritmo
Inicio
// Declaración de variables
real montoprestamo, montointeres, tasainteres, montocuota
entero cuotas
// Entrada de datos
Leer montoprestamo
// Obtención del número de cuotas
si( montoprestamo <= 5000 )
cuotas = 2
// Salida de resultados
Imprimir cuotas, montocuota, montointeres
Fin
10.5. Una empresa evalúa a sus empleados bajo dos criterios: puntualidad y
rendimiento. En cada caso el empleado recibe un puntaje que va de 1 a 10, de
acuerdo a los siguientes criterios:
Puntaje por puntualidad:- está en función a los minutos de tardanza de acuerdo a la
siguiente tabla:
Observaciones Puntaje
0 10
efectuadas
1 8
2 5
3 1
Más de 3 0
El puntaje total del empleado es la suma del puntaje por puntualidad más el
puntaje por rendimiento. En base al puntaje total, el empleado recibe una
bonificación anual de acuerdo a la siguiente tabla:
Algoritmo
Inicio
// Declaración de variables
entero minutosTar, numeroObs, puntajePun, puntajeRen, puntajeTot
real bonificacion
// Entrada de datos
Leer minutosTar, numeroObs
// Determinación del puntaje por puntualidad
si(minutosTar == 0)
puntajePun = 10
sino si(minutosTar <= 2)
puntajePun = 8
sino si(minutosTar <= 5)
puntajePun = 6
sino si(minutosTar <= 9)
puntajePun = 4
sino
puntajePun = 0
// Determinación del puntaje por rendimiento
si(numeroObs == 0)
puntajeRen = 10
sino si(numeroObs == 1)
puntajeRen = 8
sino si(numeroObs == 2)
puntajeRen = 5
sino si(numeroObs == 3)
puntajeRen = 1
sino
puntajeRen = 0
// Determinación del puntaje total
puntajeTot = puntajePun + puntajeRen
// Determinación de la bonificación
si(puntajeTot < 11)
bonificacion = 2.5*puntajeTot
sino si(puntajeTot <= 13)
bonificacion = 5.0*puntajeTot
sino si(puntajeTot <= 16)
bonificacion = 7.5*puntajeTot
sino si(puntajeTot <= 19)
bonificacion = 10.0*puntajeTot
sino
bonificacion = 12.5*puntajeTot
// Salida de resultados
Imprimir puntajePun, puntajeRen, puntajeTot, bonificacion
Fin
11.ACTIVIDADES PROPUESTAS
Realice los siguientes ejercicios utilizando los diagramas de flujo, N-S y Pseudocódigo, así
como sus respectivos programas utilizando interface gráfica con los objetos swing.
11.1. Realizar un programa que ingrese una vocal minúscula y lo muestre en mayúscula.
11.2. Realizar un programa que ingrese una vocal mayúscula y lo muestre en minúscula.
11.3. Realizar un programa que ingrese número del 1 al 10 y lo muestre en letras.
11.4. Realizar un programa que determine en que estación del año nos
encontramos de acuerdo a la siguiente tabla:
Valor Estación
1 Verano
2 Otoño
3 Invierno
4 Primavera
Valor Color
1 Rojo
2 Verde
3 Ambar
TEMARIO
Estructuras Repetitivas.
Estructura de repetición while.
Estructura de repitición do...while.
ESTRUCTURAS REPETITIVAS
La estructura while repite una acción o un conjunto de acciones mientras sea verdadera
una determinada condición, para lo cual primero verifica la condición y luego ejecuta la
acción. La acción puede ser una acción simple o una acción compuesta (bloque de
acciones encerradas entre llaves).
Ejemplo 01:
Escribir un algoritmo que lea las 40 notas finales del curso de Algoritmos y Programación, e
informe cuántos alumnos han aprobado y cuántos desaprobaron.
Dato: (Nota >= 10.5 Aprobado)
Ejemplo 02:
Realizar un algoritmo que permita calcular la suma de los números enteros comprendidos
entre dos cantidades ingresadas por teclado. Hallar adicionalmente el promedio de la suma.
Ejemplo 3:
En el curso de Algoritmos y Programación existen 40 alumnos, de los cuales se tiene el
promedio de la Primera Unidad. Se pide realizar un algoritmo que permita hallar el
promedio general de estos alumnos.
Ejemplo 4
Se desea contabilizar cuántos números son positivos, negativos y neutros del ingreso
continuo de números enteros. Este proceso re repite hasta que el usuario pulse la
tecla N al mensaje en pantalla “Desea Continuar[s/n]:”.
Solución
Para la solución del problema se va a necesitar de tres contadores, que realizarán la acción
de contar cuántos números son positivos, negativos y neutros se ingresarán por teclado, de
una serie de números.
cc : contador de ceros
cp : contador de positivos
cn : contador de negativos
12.ACTIVIDADES PROPUESTAS
12.1. Diseñar un algoritmo que permita visualizar la tabla de multiplicar de un
número entero ingresado por teclado.
1x5= 5
2 x 5 = 10
3 x 5 = 15
……
12 x 5 = 60
12.2. Cuantos números son pares positivos y negativos, impares positivos y negativos
entre N1 y N2 un rango de valores enteros.
12.3. Lea una serie de números hasta ingresar el valor de cero. Luego indique cuantos
números positivos, negativos, pares e impares fueron ingresados.
12.6. Imprime un rectángulo de altura n y ancho 2n relleno de asteriscos. Así, para n igual
a
5, el programa deberá imprimir un rectángulo de 10 asteriscos de ancho por 5
asteriscos de alto como el que se muestra a continuación:
5! = 5 x 4 x 3 x 2 x 1= 120
12.9. Diseñe un programa que genere aleatoriamente las notas de una práctica
calificada de 30 alumnos de una sección e imprima por cada nota tantos
asteriscos como indique la nota.
Nota Histograma
10 **********
8 ********
5 *****
15 ***************
4 ****
1 *
20 ********************
.
.
.
7 *******
3 ***
52 – 8 = 44
44 – 8 = 36
36 – 8 = 28
28 – 8 = 20
20 – 8 = 12
12 – 8 = 4
12.13. En una campaña médica de medición de presión, se pide que se ingresen todas las
edades de los pacientes que serán atendidos. Se solicita que se calcule la mayor y
menor edad ingresada. El ingreso acaba cuando se ingrese un valor 0.
12.14. Escriba un algoritmo que permita reducir una fracción a su mínima expresión. Por
ejemplo:
24/30 = 4/5.
12. BIBLIOGRAFIA
http://chuwiki.chuidiang.org/index.php?title=DecimalFormat