Beruflich Dokumente
Kultur Dokumente
Fundamentos
de
Programacin
Fundamentos
de Programacin
con Java 2
Indice
Leccin 01
Algoritmos................................................................................................................................................ 2
Qu es un Algoritmo? ........................................................................................................................ 2
Caractersticas de un Algoritmo........................................................................................................... 2
Niveles de un Algoritmo ....................................................................................................................... 4
Representacin de Algoritmos ................................................................................................................ 5
Diagramas de Flujo.............................................................................................................................. 6
Definicin.......................................................................................................................................... 6
Smbolos .......................................................................................................................................... 6
Ejemplos........................................................................................................................................... 8
Reglas de un Diagrama de Flujo.................................................................................................... 11
Ventajas de los Diagramas de Flujo .............................................................................................. 11
Desventajas de los Diagramas de Flujo......................................................................................... 12
Tablas de Decisiones......................................................................................................................... 13
Definicin........................................................................................................................................ 13
Ejemplo .......................................................................................................................................... 14
Ventajas de las Tablas de Decisiones ........................................................................................... 15
Desventajas de las Tablas de Decisiones ..................................................................................... 16
Pseudocdigo .................................................................................................................................... 16
Definicin........................................................................................................................................ 16
Ejemplos......................................................................................................................................... 17
Ventajas del Pseudocdigo............................................................................................................ 17
Limitaciones del Pseudocdigo...................................................................................................... 17
Ejercicios ............................................................................................................................................... 18
Ejercicio 01 ........................................................................................................................................ 18
Ejercicio 02 ........................................................................................................................................ 18
Ejercicio 03 ........................................................................................................................................ 18
Ejercicio 04 ........................................................................................................................................ 19
Ejercicio 05 ........................................................................................................................................ 19
Ejercicio 06 ........................................................................................................................................ 19
Ejercicio 07 ........................................................................................................................................ 19
Leccin 02
Proceso de Instalacin .......................................................................................................................... 22
Archivo de Instalacin........................................................................................................................ 22
Proceso de Instalacin....................................................................................................................... 23
La Carpeta bin....................................................................................................................................... 28
Probando Java ...................................................................................................................................... 29
Carpeta de Trabajo ............................................................................................................................ 29
Establecer la Variable de Entorno PATH........................................................................................... 29
Ejecutando el Primer Programa......................................................................................................... 31
Leccin 03
Introduccin a Variables ........................................................................................................................ 34
Tipos de Datos................................................................................................................................... 35
Declaracin de Variables ................................................................................................................... 36
Asignacin de Valores a Variables .................................................................................................... 38
Asignacin Directa ......................................................................................................................... 38
Instruccin de Lectura .................................................................................................................... 39
Operadores............................................................................................................................................ 40
Operadores Aritmticos ..................................................................................................................... 40
Operadores Relacionales .................................................................................................................. 41
Operadores Lgicos........................................................................................................................... 42
Precedencia de Operadores.............................................................................................................. 43
Ejemplos ................................................................................................................................................ 46
Ejemplo 1 ........................................................................................................................................... 46
Ejemplo 2 ........................................................................................................................................... 47
Ejemplo 3 ........................................................................................................................................... 48
Ejemplo 4 ........................................................................................................................................... 50
Ejercicios ............................................................................................................................................... 52
Ejercicio 1 .......................................................................................................................................... 42
Ejercicio 2 .......................................................................................................................................... 52
Ejercicio 3 .......................................................................................................................................... 52
Ejercicio 4 .......................................................................................................................................... 52
Ejercicio 5 .......................................................................................................................................... 52
Ejercicio 6 .......................................................................................................................................... 52
II
CEPS-UNI
Leccin 04
Estructura: if ......................................................................................................................................... 54
Estructuras if Simple ......................................................................................................................... 54
Estructura if...else ............................................................................................................................. 57
Estructura ifelse Anidada ............................................................................................................... 61
Estructura: switchcase ....................................................................................................................... 65
Ejercicios ............................................................................................................................................... 69
Ejercicio 1 .......................................................................................................................................... 69
Ejercicio 2 .......................................................................................................................................... 69
Ejercicio 3 .......................................................................................................................................... 69
Ejercicio 4 .......................................................................................................................................... 69
Ejercicio 5 .......................................................................................................................................... 69
Ejercicio 6 .......................................................................................................................................... 69
Ejercicio 7 .......................................................................................................................................... 69
Ejercicio 8 .......................................................................................................................................... 70
Ejercicio 9 .......................................................................................................................................... 70
Ejercicio 10 ........................................................................................................................................ 70
Ejercicio 11 ........................................................................................................................................ 70
Ejercicio 12 ........................................................................................................................................ 71
Ejercicio 13 ........................................................................................................................................ 71
Ejercicio 14 ........................................................................................................................................ 71
III
Leccin 05
Estructura: while.................................................................................................................................... 74
Ejemplo 1 ........................................................................................................................................... 75
Ejemplo 2 ........................................................................................................................................... 78
Estructura: for ........................................................................................................................................ 81
Ejemplo 4 ........................................................................................................................................... 82
Ejercicios Propuestos ............................................................................................................................ 85
Ejercicio 1 .......................................................................................................................................... 85
Ejercicio 2 .......................................................................................................................................... 85
Ejercicio 3 .......................................................................................................................................... 85
Ejercicio 4 .......................................................................................................................................... 85
Ejercicio 5 .......................................................................................................................................... 85
Ejercicio 6 .......................................................................................................................................... 85
Ejercicio 7 .......................................................................................................................................... 85
Ejercicio 8 .......................................................................................................................................... 85
Ejercicio 9 .......................................................................................................................................... 85
Ejercicio 10 ........................................................................................................................................ 86
Ejercicio 11 ........................................................................................................................................ 86
Ejercicio 12 ........................................................................................................................................ 86
Ejercicio 13 ........................................................................................................................................ 86
Ejercicio 14 ........................................................................................................................................ 86
Ejercicio 15 ........................................................................................................................................ 86
Ejercicio 16 ........................................................................................................................................ 86
Ejercicio 17 ........................................................................................................................................ 86
Ejercicio 18 ........................................................................................................................................ 87
Ejercicio 19 ........................................................................................................................................ 87
Ejercicio 20 ........................................................................................................................................ 87
Ejercicio 21 ........................................................................................................................................ 87
Ejercicio 22 ........................................................................................................................................ 87
Ejercicio 23 ........................................................................................................................................ 87
Ejercicio 24 ........................................................................................................................................ 88
Ejercicio 25 ........................................................................................................................................ 88
Ejercicio 26 ........................................................................................................................................ 88
IV
CEPS-UNI
Leccin 06
Enfoque Modular a la Programacin..................................................................................................... 90
Ejemplo 1 ........................................................................................................................................... 91
Procedimientos...................................................................................................................................... 92
Declarar, Definir e Invocar Procedimientos ....................................................................................... 92
Ejemplo 2 ........................................................................................................................................... 93
Parmetros de los Procedimientos.................................................................................................... 97
Ejemplo 3 ........................................................................................................................................... 98
Funciones ............................................................................................................................................ 100
Declarar, Definir e Invocar Funciones ............................................................................................. 100
Parmetros de las Funciones .......................................................................................................... 101
Ejemplo 4 ......................................................................................................................................... 102
Alcance de las Variable ....................................................................................................................... 104
Alcance Local................................................................................................................................... 104
Alcance Global................................................................................................................................. 105
Alcance de lo Parmetros................................................................................................................ 106
Ejercicios ............................................................................................................................................. 107
Ejercicio 1 ........................................................................................................................................ 107
Ejercicio 2 ........................................................................................................................................ 107
Ejercicio 3 ........................................................................................................................................ 107
Ejercicio 4 ........................................................................................................................................ 107
Propuesta Adicional ......................................................................................................................... 107
Bibliografa
VI
CEPS-UNI
Leccin 01
Algoritmos
Contenido
Algoritmos
Representacin de Algoritmos
Ejercicios
Algoritmos
Qu es un Algoritmo?
Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar
una tarea o resolver un problema. En su vida diaria y profesional tambin ejecuta una
secuencia de pasos para lograr una tarea dada. Por ejemplo, para mirar una pelcula
en el cine, usted necesita comprar los tickets y luego mirar la pelicula en el cine. Usted
no puede entrar directamente a la sala del cine sin comprar los tickets.
Otro ejemplo de una secuencia de pasos se puede considerar en una tienda por
departamento. En una tienda por departamento se automatiz la facturacin por los
productos comprados por los clientes, los siguientes son los pasos que se realizan:
Usted notar que el algoritmo sigue ciertos pasos para lograr la tarea. Los pasos se
pueden categorizar en las tres fases siguientes:
1. En la fase de la entrada, la informacin relacionada con la compra de los
productos se proporciona a la computadora.
2. En la fase de proceso, el computador procesa la informacin proporcionada
para calcular el valor total por la compra de los productos.
3. En la fase de salida, el resultado del clculo hecho en la fase de proceso se
muestra en la pantalla.
Estas tres fases juntas forman el ciclo Entrada-Proceso-Salida (EPS). Cada vez que
se genere una nueva factura se repite el ciclo EPS.
Caractersticas de un Algoritmo
Un algoritmo tiene las siguientes cinco caractersticas:
CEPS-UNI
L01: Algoritmos
Inicio
Paso 2:
Paso 3:
Paso 4:
Paso 5:
Paso 6:
Paso 7:
Paso 8:
Fin
Este algoritmo acepta los puntajes sobre cuatro temas como entrada y exhibe
el puntaje total para un estudiante.
Paso 1:
Inicio
Paso 2:
Paso 3:
Paso 4:
Paso 5:
Paso 6:
Paso 7:
Paso 8:
Fin
Niveles de un Algoritmo
Los niveles de un algoritmo son:
Nivel Macro Un algoritmo que contenga pasos sin mucho detalle sobre un proceso
se llama algoritmo de nivel macro.
Nivel Micro
Por ejemplo, una compaa de televisin puede proporcionar pasos breves usando un
algoritmo nivel macro en el manual del usuario de la televisin para localizar averas
de sonido como sigue:
Paso 1:
Inicio
Paso 2:
Paso 3:
Paso 4:
Paso 5:
Fin
Paso 1:
Inicio
Paso 2:
Paso 3:
Paso 4:
Paso 5:
Paso 6:
Fin
CEPS-UNI
L01: Algoritmos
Representacin de Algoritmos
Los algoritmos pueden ser representados mediante:
Diagramas de flujo
Tablas de decisiones
Pseudocdigos
Diagramas de Flujo
Definicin
Los diagramas de flujo son representaciones grficas de algoritmos. Un diagrama de
flujo consta de smbolos, que representan los pasos o etapas del algoritmo. Cada
smbolo representa un tipo de actividad.
Smbolos
Los diferentes smbolos usados en un diagrama de flujo son:
Smbolo
Paso Actividad
Entrada/Salida
Este smbolo representa una entrada salida.
Proceso
Este smbolo representa un proceso de una entrada, tal como la
suma de dos nmeros.
Decisin
Este smbolo representa una condicin con la cual se debe tomar
una decisin.
Procedimiento/Subrutina
Este smbolo representa la llamada a un procedimiento o
subrutina predefinido compuesto de pasos que no son parte de
este diagrama.
Lnea de flujo
Este smbolo representa los enlaces de un smbolo con otro y
ayuda a entender la secuencia de los pasos a seguir para
completar una tarea. Este smbolo indica el flujo del diagrama de
flujo desde arriba hacia abajo o de la izquierda a la derecha.
Inicio y Fin
Este smbolo representa el inicio y fin del diagrama de flujo.
CEPS-UNI
L01: Algoritmos
Smbolo
Paso Actividad
Conector en Pgina
Un diagrama de flujo se puede dividir en partes cuando muchas
lneas del flujo lo hacen ilegible. Este smbolo representa la
conexin entre estas partes del un diagrama de flujo en una
misma pgina. Este smbolo es etiquetado con letras en
maysculas, por ejemplo A.
Visualizacin
Este smbolo representa la salida usando la instruccin mostrar.
Ejemplos
CEPS-UNI
L01: Algoritmos
10
CEPS-UNI
L01: Algoritmos
Los smbolos de inicio y fin deberan tener una sola lnea de flujo.
Los diagramas de flujo actan como gua durante la fase de diseo del
programa.
11
12
Los cambios hechos en un solo paso pueden ocasionar tener que volver a
dibujar el diagrama de flujo completo.
CEPS-UNI
L01: Algoritmos
Tablas de Decisiones
Definicin
Las tablas de decisiones representan algoritmos que implican una toma de decisiones
compleja.
Una tabla de decisiones consta de cuatro componentes, Cdigo de Condicin,
Condicin Aplicada, Cdigo de Accin y Accin Tomada, tal como se muestra en la
siguiente tabla:
Cdigo de Condicin
Condiciones Aplicadas
Cdigo de Accin
Accin Tomada
Cdigo de Condicin
Condiciones Aplicadas
Cdigo de Accin
Accin Tomada
13
Ejemplo
Para entender cada componente del cuadro de decisin, considere un ejemplo de
desarrollo de una tabla de decisin para representar la eleccin de un candidato a
solicitar el puesto de recepcionista en ABC Ltd. Los criterios de eleccin para aceptar
los candidatos son:
Condiciones Aplicadas
El candidato es mujer.
Cdigo de Accin
Candidata aceptada
Accin Tomada
N
14
Especificar todas las acciones que pueden hacerse en conjuncin con cada
combinacin.
CEPS-UNI
L01: Algoritmos
Son tiles en casos en los que hay que representar algoritmos complejos con
muchas derivaciones.
15
Pseudocdigo
Definicin
El pseudocdigo representa un algoritmo en el lenguaje ingls. Se usa como
alternativa a un diagrama de flujo. Las sentencias usadas en el pseudocdigo son
simples y estn escritas de manera secuencial.
En el pseudocdigo se emplean una serie de claves:
begin
end
accept
display
ifelse
accept
if ... else
begin, end
16
CEPS-UNI
L01: Algoritmos
Ejemplos
17
Ejercicios
Ejercicio 01
Los campos de la vacunacin necesitan ser organizados para proporcionar la
vacunacin gratis a los nios por debajo de cinco aos de la edad. Para organizar
estos campos de vacunacin, es necesaria realizar una encuesta a la poblacin. Esta
encuesta ayudar al personal del hospital a determinar el nmero aproximado de
vacunas que deben ser provistas a los campos. Se darn vacunaciones gratis a los
nios que estn debajo de cinco aos la edad, no tienen ninguna enfermedad, y nacen
en familias por debajo de la lnea de pobreza. Asumirn a las familias que tienen una
renta anual menor de $4500 para estar debajo de la lnea de la pobreza.
Qu tcnica usted utilizar para representar el algoritmo para este problema? D un
anlisis razonado para su opcin, y represente el algoritmo usando la tcnica
seleccionada.
Ejercicio 02
Global Manufactures Company mantiene y repara coches y tiene muchos talleres por
todo el mundo. Cuando un coche es trado para servicio a un taller de Global
Manufacturers Company, este es enviado al departamento de mantenimiento. Sin
embargo, si se encuentra daado y es trado para ser reparado, se enva al
departamento de reparacin. Despus de terminar el mantenimiento o reparacin del
coche, un supervisor lo examina y el coche se devuelve al cliente.
Desarrolle el diagrama de flujo que represente el algoritmo para este problema.
Ejercicio 03
La gerencia de PeruDev decide otorgar un Subsidio por Alquiler de Vivienda (SAV) a
sus empleados. Los criterios para calcular el importe de SAC son:
18
CEPS-UNI
L01: Algoritmos
Ejercicio 04
La Universidad de Pacherrez publica los resultados finales de los exmenes en su
Web Site. Para ver los resultados, los estudiantes necesitan ingresar sus cdigos en
la Web Site. Si la calificacin de un estudiante es superior al 50 por ciento, se
publicar el mensaje Aprobado, junto con sus notas. Si no, se publica el mensaje
Desaprobado.
Desarrollar un diagrama de flujo y su respectivo pseudocdigo que represente el
algoritmo para este problema.
Ejercicio 05
Una librera est ofreciendo descuentos en algunos de sus libros. Los libros estn
divididos en dos categoras, A y B. El descuento es solo para los libros de la categora
A. Si un cliente compra un libro de la categora A, se le otorga un descuento de 10%.
Desarrollar el pseudocdigo que represente el algoritmo para este problema.
Ejercicio 06
Sergio, un docente de ISIL, necesita calcular el puntaje promedio de los estudiantes en
la clase de SQL Server. El cdigo y puntaje de todos los estudiantes son:
Cdigo
Puntaje
A001
45
A002
78
A003
56
A004
89
A005
70
Ejercicio 07
Una tienda de electrnica est ofreciendo un descuento en los televisores. El
descuento ofrecido se basa en el tamao de la televisin. Para una televisin de 14
pulgadas, se ofrece un 10% de descuento, mientras que para televisiones de 21
pulgadas, se esta ofreciendo un descuento de 20%.
Represente el problema usando pseudocdigo.
19
Apuntes
20
CEPS-UNI
Leccin 02
Instalacin de Java
Contenido
Proceso de Instalacin
La Carpeta bin
Probando Java
Proceso de Instalacin
Archivo de Instalacin
En este caso instalaremos Java 2 JDK versin 5.0, el archivo de instalacin se detalla
a continuacin.
Pagina Web
http://java.sun.com/j2se/1.5.0/download.jsp
Archivo
jdk-1_5_0_06-windows-i586-p.exe
Tamao
59.86 MB
La pgina Web de donde debe bajar este archivo se muestra en la siguiente figura:
22
CEPS-UNI
Proceso de Instalacin
1. Ejecute el archivo de instalacin, obtendr la siguiente ventana de bienvenida.
23
24
CEPS-UNI
25
26
CEPS-UNI
jdk1.5.0_06
jre1.5.0_06
27
La Carpeta bin
La carpeta bin contiene las diferentes herramientas de desarrollo de la plataforma
Java.
28
javac.exe
java.exe
javadoc.exe
appletviewer.exe
jdb.exe
CEPS-UNI
Probando Java
Carpeta de Trabajo
La carpeta de trabajo para este laboratorio es:
C:\j2n100\lab01
29
[Enter]
Path=C:\Archivos de programa\Java\jdk1.5.0_06\bin;C:\oracle\product\10.2.0\db_1\
bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
30
CEPS-UNI
[Enter]
31
Apuntes
32
CEPS-UNI
Leccin 03
Variables y Expresiones
Contenido
Introduccin a Variables
Operadores
Ejemplos
Ejercicios
Introduccin a Variables
La memoria interna del computador se utiliza para almacenar los datos de entrada
proporcionados por el usuario, las instrucciones para tratar estos datos y el resultado
del proceso o datos de salida. La memoria consta de diversas localizaciones en las
cuales se almacenan los datos. A estas ubicaciones de la memoria se les denomina
variables. A los valores que se almacenan en las variables se los denomina literales.
Los literales representan valores que pueden clasificarse en dos categoras:
Valores carcter como "Hola", "X", "E001" y "1988". Los literales carcter
siempre van entre comillas (" ")
Cuando las instrucciones son ejecutadas, el valor del primer nmero es aceptado y
almacenado en la memoria. De manera similar, el valor del segundo nmero es
tambin aceptado y almacenado en la memoria. El computador hace referencia a los
nmeros almacenado en memoria, calcula la suma, y almacena el resultado obtenido
34
CEPS-UNI
Tipos de Datos
El nmero de bytes que debe reservarse para las diferentes variables depende del tipo
de valor que stas almacenan. Por lo tanto, hay una necesidad de clasificar los tipos
de datos que puedan ser almacn en la memoria. Este tipo de valor es denominado
tipo de dato. Los tipos de datos estn clasificados en:
Numricos:
Carcter:
35
Declaracin de Variables
Es necesario declarar una variable antes de ser usada dentro de un programa.
Cuando se declara una variable, una posicin de memoria defina se esta asignado a la
variable. La declaracin de una variable asigna un nombre a la variable y especifica el
tipo de dato que la variable puede almacenar.
Por ejemplo, se necesita desarrollar un pseudocdigo para aceptar el cdigo, nombre,
edad, y telfono de un cliente. Para aceptar el cdigo y nombre, se necesita declarar
dos variables de tipo carcter. Es buena practica declarar una variable con un nombre
que pueda describir su propsito. Por lo tanto, para nuestro ejemplo, se sugiere
declarar las dos variables con los nombres clicod y clinom en lugar de cc y cn. De
manera similar, es necesario declarar dos variables numricas con los nombre edad y
telefono para aceptar la edad y telfono del cliente. La declaracin de estas variables
es como sigue:
character clicod
character clinom
numeric edad
numeric telefono
Tambin se puede declarar variables del mismo tipo en una simple sentencia como se
ilustra a continuacin:
character clicod, clinom
numeric edad, telefono
36
CEPS-UNI
En este diagrama de flujo, las variable nNumero1, nNumero2, y nSuma son declaradas
en el primer paso. En el segundo paso, los valores de los dos nmeros son aceptados
desde el usuario. Posteriormente, el resultado de la suma de nNumero1 y nNumero2
es almacenado en la variable nSuma. Finalmente, se muestra el valor de nSuma.
37
Aunque no hay convenciones para dar nombre a las variables, las siguientes pautas
pueden resultar tiles:
Asignacin directa
Instruccin de lectura
Asignacin Directa
Se puede asignar valores a las variables siguiendo el mtodo de la asignacin directa
utilizando el signo igual (=).
Sintaxis:
nombre_variable = valor
38
CEPS-UNI
Instruccin de Lectura
Se puede asignar valores a variables por medio de la instruccin de lectura.
Sintaxis
accept nombre_variable
39
Operadores
Los operadores determinan el tipo de operacin que se quiere realizar con los
elementos de una expresin. En una expresin, el elemento sobre el cual acta un
operador se llama operando. Por ejemplo, en la expresin, a + b, a y b son conocidos
como operandos.
Los operadores pueden ser clasificados en las siguientes categoras:
Operadores aritmticos
Operadores Relacionales
Operadores lgicos
Operadores Aritmticos
Los operadores aritmticos, como su nombre lo indica, son utilizados para realizar
clculos aritmticos. Algunos de los operadores aritmticos ms comunes son los
siguientes:
Operador
Descripcin
Ejemplo
Suma (+)
c=a+b
Resta (-)
c=a-b
Multiplicacin (*)
c=a*b
Divisin (/)
c= a/b
Modulo (%)
c= a%b
40
CEPS-UNI
Operadores Relacionales
Se puede comparar dos operandos con el operadores relacional. Cuando dos
operandos son comparados usando estos operadores, el resultado es un valor lgico,
TRUE o FALSE.
Son seis operadores relacionales. La siguiente tabla muestra los operadores
relacionales:
Operador
Descripcin
Ejemplo
Explicacin
a=b
!=
a != b
>
Evala si el operando de la
izquierda es mayor que el
operando de la derecha
a>b
<
Evala si el operando de la
izquierda es menor que el
operando de la derecha
a<b
>=
Evala si el operando de la
izquierda es mayor o igual que el
operando de la derecha.
a >= b
<=
Evala si el operando de la
izquierda es menor o igual que el
operando de la derecha
a <= b
41
Operadores Lgicos
Los operadores lgicos son usados para combinar los resultados de expresiones que
contienen operadores relacionales.
A continuacin tenemos una tabla que describe los operadores lgicos:
Operador
Descripcin
Ejemplo
AND
Lgica AND
Lgica OR
a < 5 OR b > 10
Lgica NOT
NOT a = 5
OR
NOT
Expresin 1
42
Expresin 2
OR
TRUE
TRUE
TRUE
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
TRUE
FALSE
TRUE
FALSE
FALSE
FALSE
FALSE
CEPS-UNI
Precedencia de Operadores
Cada operador tiene una precedencia asociada. Se utiliza esta caracterstica para
determinar la manera en que es evaluada una expresin que implica ms de un
operador. Por ejemplo, consideremos la siguiente expresin:
nResultado = nNum1 + nNum2 * nNum3 / 45
Descripcin
()
Parntesis
Lgica NOT
Multiplicacin
Divisin
Mdulo
Suma
Resta
<
Menor que
<=
>
Mayor que
>=
Igual que
Asociatividad
Nivel de Precedencia
De Izquierda a Derecha
De Izquierda a Derecha
De Izquierda a Derecha
De Izquierda a Derecha
Diferente que
AND
Lgica Y
De Izquierda a Derecha
OR
Lgica O
De Izquierda a Derecha
43
El operador "/" tiene precedencia alta que "+". Por lo tanto, 90/45 es evaluado primero.
El resultado de la expresin es:
nResultado = 8 + 2
En la expresin anterior, supongamos que el propsito era primero sumar los nmeros
nNum1 y nNum2, y despus multiplicar su resultado con nNum3. Finalmente, dividir el
resultado por 45. Para resolver este propsito, se puede cambiar la orden de
precedencia usando el operador parntesis "( )", tal como sigue:
nResultado = ( nNum1 + nNum2 ) * nNum3 / 45
44
CEPS-UNI
El diagrama de flujo lee el nombre del alumno, y las notas obtenidas en el curso.
Luego calcula el promedio. Para que el alumno apruebe el curso debe cumplirse dos
condiciones, la primera que la nota mnima en promedio de practicas debe ser 10, y el
promedio final del curso debe ser mnimo 14.
45
Ejemplos
Ejemplo 1
Determinar la suma de los N primeros nmeros enteros de acuerdo a la siguiente
formula:
Suma =
N * ( N + 1)
2
Pseudocdigo
begin
numeric nN, nSuma
display "Ingrese el valor de N"
accept nN
nSuma = n * (n + 1) / 2
display nSuma
end
Programacin en Java
import java.util.Scanner;
public class Ejemplo01 {
public static void main(String[] args){
Scanner teclado = new Scanner(System.in);
int n, suma;
System.out.print("Ingrese el valor de N: ");
n = teclado.nextInt();
suma = n * (n+1) / 2;
System.out.println("La suma es: " + suma);
}
}
46
CEPS-UNI
Ejemplo 2
Crear un programa para encontrar el rea de un Crculo, segn la siguiente formula:
Area = * R 2
Pseudocdigo
begin
numeric radio, area
display "Ingrese el valor del radio"
accept radio
area = 3.141516 * radio * radio
display area
end
Programacin en Java
import java.util.Scanner;
public class Ejemplo02 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int radio;
double area;
System.out.print("Ingrese el valor del radio: ");
radio = teclado.nextInt();
area = Math.PI * radio * radio;
System.out.println("El area es: " + area);
}
}
47
Ejemplo 3
Un docente del instituto San Ignacio de Loyola lleva a cabo una prueba de SQL Server
para tres estudiantes: Marcelo, Carlos y Manuel. El ha de comparar el puntaje
obtenido por los tres estudiantes, y mostrar el nombre del estudiante que sac el
mayor puntaje. El siguiente pseudocdigo representa el algoritmo correspondiente a
este problema.
Pseudocdigo
begin
numeric nNota1, nNota2, nNota3
display "Ingrese la nota de Marcelo"
accept nNota1
display "Ingrese la nota de Carlos"
accept nNota2
display "Ingrese la nota de Manuel"
accept nNota3
if nNota1 > nNota2 AND nNota1 > nNota3
display "Marcelo tiene la nota mas alta"
if nNota2 > nNota1 AND nNota2 > nNota3
display "Carlos tiene la nota mas alta"
if nNota3 > nNota1 AND nNota3 > nNota2
display "Manuel tiene la nota mas alta"
end
48
CEPS-UNI
Programacin en Java
import java.util.Scanner;
public class Ejemplo03 {
public static void main(String[] args) {
// Variables
Scanner teclado = new Scanner(System.in);
int nota1, nota2, nota3;
// Lectura de Datos
System.out.print("Ingrese la nota de Marcelo: ");
nota1 = teclado.nextInt();
System.out.print("Ingrese la nota de Carlos: ");
nota2 = teclado.nextInt();
System.out.println("Ingrese la nota de Manuel: ");
nota3 = teclado.nextInt();
// Proceso
if(nota1 > nota2 & nota1 > nota3)
System.out.println("Marcelo tiene la nota mas alta");
if(nota2 > nota1 & nota2 > nota3)
System.out.println("Carlos tiene la nota mas alta");
if(nota3 > nota1 & nota3 > nota1)
System.out.println("Marcelo tiene la nota mas alta");
}
}
49
Ejemplo 4
Pacherrez Delivery International presta servicios de mensajera nacional e
internacional. Las tarifas del servicio de mensajera son calculadas de acuerdo al peso
y destino de los paquetes. La siguiente tabla muestra las distancias y la
correspondiente tarifa de entrega.
Distancia en Km.
0 a 500
50
501 a 10,000
100
mas de 10,0000
500
50
CEPS-UNI
Programacin en Java
import java.util.Scanner;
public class Ejemplo04 {
public static void main(String[] args) {
// Variables del Programa
Scanner teclado = new Scanner(System.in);
int distancia, peso, costo=0;
// Lectura de Datos
System.out.print("Ingrese distancia: ");
distancia = teclado.nextInt();
System.out.print("Ingrese peso: ");
peso = teclado.nextInt();
// Proceso
if(distancia
costo =
if(distancia
costo =
if(distancia
costo =
// Reporte
System.out.println("Costo = " + costo);
}
}
51
Ejercicios
Ejercicio 1
Crear un programa que calcule la media aritmtica de 3 nmeros enteros positivos.
Ejercicio 2
Crear un programa que calcular el sueldo Neto a pagar a un empleado, considerando
los siguientes puntos:
Ejercicio 3
Un proyecto internacional sobre clima y temperaturas, iniciado por el Departamento
Meteorolgico, requiere un listado conteniendo el nombre de tres ciudades con sus
temperaturas. Los datos se registran en grados Celsius, y se requiere en grados
Fahrenheit.
Desarrollar el programa que permita mostrar los datos en Fahrenheit.
Ejercicio 4
Desarrollar un programa para calcular el importe que pagara una promocin para ir de
excursin al Cuzco, los datos de entrada son: nmero de alumnos, costo por persona.
Ejercicio 5
Desarrollar un programa para encontrar el tiempo que se demora en desplazarse un
auto de la ciudad A hacia la ciudad B, los datos de entrada son: la distancia en Km y la
velocidad en Km.
Ejercicio 6
Desarrollar un programa para determinar si el precio de venta de un articulo es barato
caro, se considera caro si la ganancia es superior al 20% del precio de costo.
52
CEPS-UNI
Leccin 04
Estructuras Condicionales
Contenido
Estructura: if
Estructura: switchcase
Ejercicios
Estructura: if
La estructura if permite tomar decisiones dentro de un programa. El resultado de una
decisin determina la secuencia en que el programa puede ejecutar las instrucciones.
La decisin se toma en base al resultado de una comparacin.
Los tres tipos principales de if son los siguientes:
Estructuras if simples
Estructuras ifelse
Estructuras if Simple
Sintaxis
if ( condicin )
begin
// Sentencias
end
54
CEPS-UNI
55
56
CEPS-UNI
Estructura if...else
Sintaxis
If ( condicin )
begin
// Sentencias
end
else
begin
// Sentencias
end
57
58
CEPS-UNI
El mismo algoritmo puede tambin ser representado usando pseudocdigo, tal como
se muestra a continuacin:
begin
// Variables del Programa
numeric nNum1, nNum2, nSuma
// Lectura de Datos
display "Ingrese nmero 1 y nmero2"
accept nNum1
accept nNum2
// Proceso
nSuma = nNum1 + nNum2
// Reporte
display nSuma
if ( nSuma % 2 = 0 )
begin
display "La suma es par"
end
else
begin
display "La suma es impar"
end
end
59
60
CEPS-UNI
61
62
CEPS-UNI
El mismo algoritmo puede tambin ser representado con estructuras ifelse anidadas,
tal como se muestra a continuacin:
begin
// Datos del Programa
numeric nNota1, nNota2, nProm
// Lectura de Datos
display "Ingrese la nosta de los dos cursos"
accept nNota1, nNota2
// Proceso
nProm = ( nNota1 + nNota2 ) / 2
// Reporte
display nProm
if ( nProm > 13 )
begin
if( nProm > 17 )
begin
display "Excelente"
end
else
begin
display "Aprobado"
end
end
else
begin
diaplay "Desaprobado"
end
end
63
64
CEPS-UNI
Estructura: switchcase
Otra estructura condicional disponible es, la estructura switch...case. Esta es usada
cuando hay varios valores para una variable que deben ser evaluados.
La estructura switch...case permite seleccionar una opcin desde un conjunto de
alternativas. Esta estructura consiste de una sentencia switch, un nmero de
sentencias case, y una sentencia por defecto.
Sintaxis
switch ( expresin )
begin
case constante_1:
sentencia(s)
break
case constante_2:
sentencia(s)
break
case constante_3:
sentencia(s)
break
...
...
default:
sentencia(s)
end
65
66
CEPS-UNI
67
}
}
}
68
CEPS-UNI
Ejercicios
Ejercicio 1
El restaurante "El Sabor Norteo" ofrece un descuento del 10 % para consumos de
hasta S/.100.00 y un descuento de 20% para consumos mayores, para ambos casos
se aplica un impuesto del 19%. Determinar el importe a pagar por lo consumido,
mostrando todos los importes (subtotal, impuesto, y total).
Ejercicio 2
Elabore un programa para determinar si un nmero entero A es divisible por otro B.
Considere que un nmero es divisible por otro si y solo si el residuo de la divisin es
cero.
Ejercicio 3
Debido a los excelentes resultado, el restaurante "El Sabor Norteo" decide ampliar
sus ofertas de acuerdo a la siguiente escala de consumo. Determinar el importe a
pagar por lo consumido, mostrando todos los importes.
Consumo (S/.)
Descuento (%)
Mayor a 200
30
Mayor a 100
20
Hasta 100
10
Ejercicio 4
Elabore un programa que encuentre el mayor de 3 nmeros dados.
Ejercicio 5
Crear un programa que compruebe si un nmero ingresado es Par o Impar.
Ejercicio 6
Crear un programa que determine el Menor nmero de 5 nmeros ingresados.
Ejercicio 7
Crear un programa que calcule el sueldo neto de un trabajador segn el nmero de
horas trabajadas, considerando que si excede a 40 horas se le paga 15% ms del
pago por hora solo por las horas extras y si el sueldo excede a 2000, tiene que abonar
un impuesto de 5% del sueldo bruto.
69
Ejercicio 8
El rendimiento de un alumno se califica segn lo siguiente:
Calificacin
condicin
Bueno
Regular
Deficiente
Psimo
Ejercicio 9
La comisin sobre las VENTAS de un empleado es como sigue:
Comisin
Condicin
No hay comisin
VENTAS menores a 50
10%
20%
Ejercicio 10
Crear un programa tipo calculadora que permita ingresar dos nmeros y una letra que
indica la operacin a realizar (S, R, M, D).
Ejercicio 11
En una Universidad se ha establecido los siguientes puntajes de ingreso a sus
respectivas facultades:
Facultad
Puntaje Mnimo
Sistemas
100
Electrnica
90
Industrial
80
Administracin
70
70
CEPS-UNI
Ejercicio 12
Crear un programa que lea un nmero que represente a un mes y muestre el nombre
del mes al que corresponde, por ejemplo 1 es Enero.
Ejercicio 13
Crear un programa que ingresado una fecha determine a que estacin pertenece
(Verano, Otoo, Invierno, Primavera).
Ejercicio 14
Crear un programa que lea el da y el mes de nacimiento de una persona, y determine
a que signo pertenece.
71
Apuntes
72
CEPS-UNI
Leccin 05
Estructuras Repetitivas
Contenido
Estructura: while
Estructura: for
Ejercicios Propuestos
Estructura: while
La estructura while ejecuta un grupo de instrucciones mientras se cumple una
condicin. Para que se ingrese al cuerpo del bucle, debe cumplirse la condicin, si la
primera vez que la condicin evaluada da como resultado false, el bucle no se ejecuta
ninguna vez.
Diagrama de Flujo
Sintaxis
while ( condicin )
begin
// Sentencias
end
74
CEPS-UNI
Ejemplo 1
Enunciado
Encontrar las suma de 10 nmeros ingresados por teclado.
Diagrama de Flujo
75
Pseudocdigo
begin
// Datos del Programa
numeric nNum, nSum, nCont
// Proceso
nCont = 0
nSuma = 0
while ( nCont < 10 )
begin
display "Ingrese nmero entero"
accept nNum
nSuma = nSuma + nNum
nCont = nCont + 1
end
// Reporte
display "La suma es:" + nSuma
end
nNum
nSuma
nCont
Valores Iniciales
null
15
15
10
25
20
45
30
75
10
85
15
100
20
120
10
130
25
155
10
15
170
10
76
CEPS-UNI
Programacin en Java
import java.util.Scanner;
public class Ejemplo1 {
public static void main(String[] args) {
// Variables del programa
Scanner teclado = new Scanner(System.in);
int num, suma, cont;
// Proceso
cont = 0;
suma = 0;
while( cont < 10 ){
System.out.print("Ingrese numero entero: ");
num = teclado.nextInt();
suma = suma + num;
cont = cont + 1;
}
// Reporte
System.out.println("La suma es: " + suma);
}
77
Ejemplo 2
Ernesto es docente del curso de Fundamentos Web y quiere calcular la nota promedio
de su clase, se sabe que son 20 alumnos.
Diagrama de Flujo
78
CEPS-UNI
Pseudocdigo
begin
// Datos del programa
numeric nNota, nSuma, nProm, nCont
// Inicializacin de Variables
nSuma = 0
nCont = 0
// Proceso
while( nCont < 30 )
begin
display "Ingrese Nota:"
accept nNota
nSuma = nSuma + nNota
nCont = nCont + 1
end
nProm = nSuma / nCont
// Reporte
display "La nota promedio es:"
display nProm
end
79
Programacin en Java
import java.util.Scanner;
public class Ejemplo2 {
public static void main(String[] args) {
// Variables del Programa
Scanner teclado = new Scanner(System.in);
int nota, suma, prom, cont;
// Inicializacin de Variables
suma = 0;
cont = 0;
// Proceso
while( cont < 3 ){
System.out.println("Ingrese nota:");
nota = teclado.nextInt();
suma = suma + nota;
cont = cont + 1;
}
prom = suma / cont;
// Reporte
System.out.println("La nota promedio es: " + prom);
}
}
80
CEPS-UNI
Estructura: for
El bucle for se utiliza cuando el nmero de iteraciones del bucle se conoce de manera
anticipada.
El bucle for tiene la siguiente sintaxis:
for( expr_inicializacin; expr_evaluacin; expt_incremento/decremento )
begin
// Instrucciones
end
81
Ejemplo 3
Desarrollar un programa para encontrar la suma de los nmeros pares e impares
comprendidos entre 1 y num. El valor de num es el dato de entrada.
Diagrama de Flujo
82
CEPS-UNI
Pseudocdigo
begin
// Datos del Programa
numeric nNum, nSumaPares, nSumaImpares, k
// Lectura de Datos
display "Ingrese el valor de N:"
accept nNum
// Inicializacin de Variables
nSumaPares = 0
nSumaImpares = 0
// Proceso
for( k=1; k <= nNum; k = k + 1 )
begin
if( (k % 2) = 0 )
begin
nSumaPares = nSumaPares + k
end
else
begin
nSumaImpares = nSumaImpares + k
end
end
// Reporte
display "La suma de los nmeros pares es: "
display nSumaPares
display "La suma de los nmeros impares es: "
display nSumaImpares
end
83
Programacin en Java
import java.util.Scanner;
public class Ejemplo4 {
public static void main(String[] args) {
// Variables del Programa
Scanner teclado = new Scanner(System.in);
int num, sumaPares, sumaImpares;
// Lectura de num
System.out.println("Ingrese el valor de num: ");
num = teclado.nextInt();
// Inicializacin de variables
sumaPares = 0;
sumaImpares = 0;
// Proceso
for( int k = 1; k <= num; k++ ){
if( (k%2) == 0 )
sumaPares += k;
else
sumaImpares += k;
}
// Reporte
System.out.println("Suma de Pares: " + sumaPares);
System.out.println("Suma de Impares: " + sumaImpares);
}
}
84
CEPS-UNI
Ejercicios Propuestos
Ejercicio 1
Crear un programa que permita ingresar un nmero y muestre el nmero en forma
invertida, por ejemplo al ingresar 12345 deber mostrarlo en forma invertida 54321.
Ejercicio 2
Dado un nmero positivo, mostrar los divisores del nmero ingresado.
Ejercicio 3
Crear un programa que permita convertir un nmero de Base 10 a Base 16.
Ejercicio 4
Escribir un programa que permita imprimir los 10 primeros nmeros mltiplos de 7.
Ejercicio 5
Escribir un programa que dado un nmero entero, muestre el menor y el mayor digito
que lo conforma.
Ejercicio 6
El factorial de un nmero es:
n! = 1 x 2 x 3 x 4 x . . . x n
Escribir un programa que permita calcular el factorial de un nmero.
Ejercicio 7
Un nmero es primo cuando es divisible por uno y por si mismo. Escribir un programa
que permita evaluar si un nmero es primo.
Ejercicio 8
Escribir un programa que muestre los divisores primos de un nmero.
Ejercicio 9
Escribir un programa que muestre los N primeros trminos de la serie de fibonacci.
85
Ejercicio 10
Escribir un programa que imprima la tabla de multiplicar de un nmero.
Ejercicio 11
Escribir un programa que muestre los N primeros nmeros mltiplos de 5 que no son
mltiplos de 3, y adems debe mostrar la suma de todos ellos.
Ejercicio 12
Escribir un programa para determinar los nmeros mltiplos de P que hay entre M y N,
donde: M < N.
Ejercicio 13
Escribir un programa que determine cuantos dgitos tiene un nmero.
Ejercicio 14
Escribir un programa que permita determinar si dos nmeros son amigos.
Dos nmeros son amigo si la suma de sus divisores de uno de ellos es igual al otro y
viceversa, por ejemplo 220 y 284 son amigos:
Divisores de 220 son: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
Divisores de 284 son: 1 + 2 + 4 + 71 + 142 = 220
Ejercicio 15
Desarrollar un programa que permita calcular la suma de los cuadrados de los
primeros N nmeros.
Ejercicio 16
Desarrollar un programa que permita calcular la suma de los cubos de los N primeros
nmeros.
Ejercicio 17
Crear un algoritmo que indique si un nmero es cubo perfecto (anstrong) o no, se dice
que un nmero es cubo perfecto si al sumar los cubos de sus dgitos dan el mismo
nmero, por ejemplo 153, cubos de sus dgitos 13 + 53 + 33 = 153, por lo tanto el
nmero 153 es cubo perfecto.
86
CEPS-UNI
Ejercicio 18
Desarrollar un programa para obtenga el cociente y el residuo de una divisin
mediante restas sucesivas.
Por ejemplo si el dividendo es 3989 y el divisor es 1247, entonces:
Iteracin
Operacin
R(1)
R(2)
R(3)
Ejercicio 19
Escribir un programa para convertir un nmero de base 10 a base 2.
Ejercicio 20
Escribir un programa para obtener el MCD (mximo comn divisor) de dos nmeros,
utilice el mtodo EUCLIDES (divisiones sucesivas).
Ejercicio 21
Escribir un programa para obtener el MCD (mximo comn divisor) de dos nmeros,
utilice el mtodo Factorizacin Simultanea.
Recuerde: El mximo comn divisor es el divisor mayor comn de todos ellos.
Ejercicio 22
Escribir un programa para obtener el MCM (mnimo comn mltiplo) de dos nmeros,
utilice descomposicin simultanea.
Recuerde: El mnimo comn mltiplo es el mltiplo menor comn de todos ellos.
Ejercicio 23
Escriba un programa que calcule, la suma de la siguiente serie:
1 2 3 4
+ + +
2 3 4 N
Hasta el nmero entero positivo N ingresado.
87
Ejercicio 24
Escriba un programa que calcule, la suma de la siguiente serie:
1 1 1 1
+ + +
2 4 6 N
Hasta el nmero entero positivo N ingresado.
Ejercicio 25
Crear un programa que determine si un nmero es perfecto o no.
Un nmero es perfecto si la suma de sus divisores es igual al nmero, por ejemplo 6
tiene como divisores 1, 2 y 3, entonces 1 + 2 + 3 = 6 el nmero 6 es perfecto, si el
nmero es 9 tiene como divisores 1, 3, entonces 1 + 3 = 4 no es perfecto.
Ejercicio 26
Desarrollar un programa que permita encontrar el cuadrado de un nmero usando la
siguiente sumatoria:
N2 = 1 + 3 + 5 + . . . . . + (2N -1)
88
CEPS-UNI
Leccin 06
Procedimientos y Funciones
Contenido
Procedimientos
Funciones
Ejercicios
90
CEPS-UNI
Ejemplo 1
Consideremos una situacin en la cual se necesita aceptar el ingreso de tres nmeros,
y mostrar la suma de estos tres nmeros.
Podemos crear un diagrama de flujo simple que acepte tres nmeros, los sume, y
muestre el resultado.
Otro mtodo es dividir la aplicacin y crear un mdulo separado para calcular la suma
de los tres nmeros. Este mdulo puede ser integrado dentro del programa principal.
91
Procedimientos
En el enfoque modular, uno de los mtodos de representacin de un mdulo es el
procedimiento. Un procedimiento es un conjunto de instrucciones que ejecutan una
tarea especfica. El funcionamiento de un procedimiento se conoce bajo el nombre
mecanismo llamada-retorno.
Los siguientes pasos forman parte del mecanismo llamada-retorno:
Se llama a un procedimiento.
92
CEPS-UNI
Ejemplo 2
Enunciado
Desarrollar un programa para encontrar el promedio de un alumno. Se sabe que son
tres notas y se elimina la ms baja.
Planteamiento
La solucin del problema se enfoca en tres procesos perfectamente identificados:
1. Lectura de notas, el que desarrollaremos en un procedimiento de nombre
Lectura.
2. Proceso de las notas, el que desarrollaremos en un procedimiento de nombre
Proceso.
3. Reporte del resultado obtenido, el que desarrollaremos en un procedimiento de
nombre Reporte.
Todos los procedimientos se invocaran en forma secuencial desde el programa
principal, el siguiente grafico ilustra el planteamiento descrito.
93
Pseudocdigo
// Datos del programa
numeric nNota1, nNota2, nNota3, nProm
begin
call Lectura
call Proceso
call Reporte
end
procedure Lectura
begin
display "Nota 1: "
accept nNota1
display "Nota 2: "
accept nNota2
display "Nota 3: "
accept nNota3
end
procedure Proceso
begin
numeric menor
menor = nNota1
if(menor > nNota2)
begin
menor = nNota2
end
if(menor > nNota3)
begin
menor = nNota3
end
end
procedure Reporte
begin
display
display
display
display
display
display
display
display
"Nota 1: "
nNota1
"Nota 2: "
nNota2
"Nota 3: "
nNota3
"Promedio:"
nProm
end
94
CEPS-UNI
Programacin en Java
En Java no existen funciones y procedimientos, lo que tenemos son mtodos, si
queremos que un mtodo se comporte similar a un procedimiento, no debe retornar
ningn resultado, esto se especifica con la palabra reservada void, para nuestro caso
la sintaxis es:
private static void nombre_mtodo ( argumentos ) {
// instrucciones
}
El programa es el siguiente:
import java.util.Scanner;
public class Ejemplo2 {
private static int nota1, nota2, nota3, prom;
public static void main(String[] args) {
lectura();
proceso();
reporte();
}
private static void lectura(){
Scanner teclado = new Scanner(System.in);
System.out.println("Ingreso de Notas");
System.out.println("Nota 1:");
nota1 = teclado.nextInt();
System.out.println("Nota 2:");
nota2 = teclado.nextInt();
System.out.println("Nota 3:");
nota3 = teclado.nextInt();
}
private static void proceso(){
int menor;
menor = nota1;
if(menor>nota2) menor = nota2;
if(menor>nota2) menor = nota2;
prom = (nota1 + nota2 + nota3 - menor) / 2;
}
95
96
CEPS-UNI
Los parmetros de tipo input son usados para enviar datos al procedimiento, y los
parmetros de tipo output son usados para recuperar datos desde el procedimiento.
97
Ejemplo 3
Enunciado
Desarrollar un programa que permita calcular el MCD y MCM de dos nmeros.
Planteamiento
La solucin del problema se enfoca en tres procesos perfectamente identificados:
1. Lectura de los dos nmeros que se quieren procesar, este proceso se
desarrollar con un procedimiento de nombre Lectura, este procedimiento
tendr dos parmetros de salida.
2. Proceso de los nmeros ingresados para obtener el MCD y MCM, este proceso
se desarrollar con un procedimiento de nombre Proceso, este procedimiento
tendr dos parmetros de entrada y dos de salida.
3. Reporte de resultados obtenidos, este proceso se desarrollar con un
procedimiento de nombre Reporte, este procedimiento tendr cuatro
parmetros de entrada.
Todos los procedimientos se invocaran en forma secuencial desde el programa
principal, el siguiente grafico ilustra el planteamiento descrito.
Pseudocdigo
begin
// Datos del programa
numeric nNum1, nNum2, nMCD, nMCM
// Llamada a procedimientos
call Lectura ( nNum1, nNum2 )
call Proceso ( nNum1, nNum2, nMCD, nMCM )
call Reporte ( nNum1, nNum2, nMCD, nMCM )
end
98
CEPS-UNI
"Nmero 1: "
nN1
"Nmero 2: "
nN2
"MCD: "
nMCD
"MCM: "
nMCM
end
99
Funciones
Una funcin es un bloque de sentencias que realizan una tarea especfica. Los
principios bsicos de las funciones y de los procedimientos son muy similares, por lo
que se pueden intercambiar.
La diferencia entre una funcin y un procedimiento, es que la funcin retorna un valor
al programa que la invoca, mientras que un procedimiento no retorna ningn valor.
Las funciones en un programa interactan entre s pasando y recibiendo datos. Las
funciones tambin operan bajo el mecanismo llamada-retorno. Estos son los pasos del
mecanismo llamada-retorno utilizando funciones:
La funcin es invocada.
Una vez que se declara la funcin, sta puede ser invocada desde el programa. El
mtodo para invocar funciones se conoce como llamada a la funcin. La sintaxis de la
llamada a la funcin es:
resultado = call <nombre_funcin>
100
CEPS-UNI
101
Ejemplo 4
Enunciado
Desarrollar un programa para imprimir la tabla de multiplicar de un nmero.
Planteamiento
La solucin de este problema se enfoca en la construccin de una funcin que retorne
el producto de dos nmeros, luego esta funcin se utilizar en el proceso para imprimir
la tabla de multiplicar.
Pseudocdigo
begin
// Datos del Programa
numeric nNum, k, p;
// Lectura del nmero
display "Tabla del: "
accept nNum;
// Proceso
display "Tabla del: " + nNum
for( k = 1; k <= 12; k = k + 1 )
begin
p = call producto( k, nNum )
display k + " * " + nNum + " = " + p
end
end
function producto( numeric a, numeric b )
begin
numeric p
p=a*b
return p
end
102
CEPS-UNI
Programacin en Java
import java.util.Scanner;
public class Ejemplo4 {
public static void main(String[] args) {
// Variables
int n, p;
Scanner teclado = new Scanner(System.in);
// Lectura de Dato
System.out.println("Ingrese el valor de N:");
n = teclado.nextInt();
// Proceso
System.out.println("Tabla del: " + n);
for(int k=1; k <= 12; k++)
System.out.println(k + " * " + n + " = " + producto(k, n));
}
private static int producto ( int a, int b ){
int c;
c = a * b;
return c;
}
}
103
Alcance Local
Alcance Global
Alcance Local
Las variables que se declaran dentro del bloque begin .. end de un pseudocdigo
principal, de una funcin de un procedimiento tienen alcance local.
Las variables que tienen alcance local se denominan variables locales o internas.
Durante la ejecucin del programa:
Las variables expiran cuando el control sale del bloque begin .. end.
104
CEPS-UNI
Alcance Global
Las variables que pueden utilizarse en cualquier parte del pseudocdigo tienen
alcance global y se denominan variables globales.
Las variables globales se declaran fuera de la funcin, del procedimiento o del bloque
begin .. end del pseudocdigo principal.
El siguiente pseudocdigo ilustra el alcance de una variable global:
numeric a
caracter b
// Variable Global
// Variable Global
begin
numeric c
...
...
// Variable Local
end
procedure proceso
begin
numeric d
...
...
// Variable Local
end
105
Alcance de lo Parmetros
Los parmetros de un procedimiento o funcin son variables a las que slo se puede
acceder desde dentro del procedimiento o la funcin.
Esto significa que los parmetros actan como las variables locales de una funcin o
procedimiento.
Este es el alcance de los parmetros:
106
CEPS-UNI
Ejercicios
Ejercicio 1
Desarrollar un programa para averiguar el mayor de tres nmeros, debe tener en
cuenta lo siguiente:
Ejercicio 2
Basndose en la lgica del Ejercicio 1, desarrollar un programa que permita calcular el
promedio de un alumnos, se sabe que son 4 notas y se promedia las tres mejores.
Ejercicio 3
Desarrollar un programa que calcule el factorial de lo N primeros nmeros, debe tener
en cuenta lo siguiente:
Ejercicio 4
Desarrollar un programa para averiguar si los nmeros en un rango de [M,N] son
primos, debe tener en cuenta lo siguiente:
La funcin del paso anterior debe ser utilizada en el proceso para anlisis del
rango de nmeros.
Propuesta Adicional
Los ejercicios propuestos en la Leccin 05, debe reprogramarlos utilizando el enfoque
modular, utilizando funciones y/o procedimientos.
107
Apuntes
108
CEPS-UNI