Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 76

lOMoARcPSD|6246918

Separata Unidad 1 AED - INTRODUCCIÓN A LA


ESTRUCTURA DE DATOS, ESTRUCTURA
CONDICIONALES, ESTRUCTURA
Algoritmos (Universidad Nacional del Callao)

Studocu no está patrocinado ni avalado por ningún colegio o universidad.


Descargado por BRUCE LLANOS ([email protected])
lOMoARcPSD|6246918

Separata preparada para el desarrollo del curso de:

Algorítmica y Estructura de Datos

Primera Unidad Temática:


INTRODUCCIÓN A LA ESTRUCTURA DE DATOS

Facultad de Ingeniería de
Sistemas

Semestre: 2015-II

Universidad Nacional del Callao Pag.1

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pag.2

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 3

INDICE
PRIMERA UNIDAD TEMATICA

INTRODUCCIÓN A LA ESTRUCTURA DE DATOS

PRIMERA SEMANA

MARCO TEORICO

ALGORITMICA Y ESTRUCTURA DE DATOS


Concepto de Algoritmo........................................................................................ 4
Los Lenguajes de Programación…………………................................................. 5
Datos, Tipos de Datos y Operaciones Primitivas.................................................. 6
Variables, Constantes, Expresiones, Operación de Asignación........................... 8
Metodologías empleadas para la representación de un algoritmo………………. 16
Introducción al Entorno de Programación – Java………………………………….. 20

MARCO PRÁCTICO
Actividades.......................................................................................................... 29

SEGUNDASEMANA

MARCO TEORICO

ESTRUCTURAS ALGORITMICAS: ESTRUCTURAS CONDICIONALES


Estructura Selectiva Simple….............................................................................. 31
Estructura Selectiva Doble….............................................................................. 32
Estructura Selectiva Anidada…............................................................................. 39
MARCO PRÁCTICO
Actividades………................................................................................................. 43

TERCERA SEMANA

MARCO TEORICO

PROGRAMACIÓN MODULAR: ESTRUCTURAS REPETITIVAS


Estructura Repetitiva FOR.................................................................................... 45
Estructura Repetitiva WHILE.……………………………....................................... 50
Contadores y acumuladores………………………………………………………….. 52
MARCO PRÁCTICO
Actividades............................................................................................................ 56

CUARTA SEMANA
MARCO TEORICO
ESTRUCTURA DE DATOS Y ARREGLOS
Importancia de las estructuras de datos….......................................................... 57

Universidad Nacional del Callao Pag.3

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 4

Datos Estructurados Estáticos………..…………………………………………....... 58

Nota: La Quinta Semana corresponde a una sesión de clases y a la 1ra. Practica


Calificada

Universidad Nacional del Callao Pag.4

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 5

PRIMERA SEMANA – Marco Teórico

Logro
Comprende los principales conceptos de la programación y la forma
como trabajan los lenguajes de programación. Reconoce los distintos
elementos que conforman un programa.

Resumen
La labor de la programación consiste en instruir al computador sobre
como debe desa-rrollar un determinado proceso o tarea, para este fin
contamos con los Lenguajes de Programación que son softwares que
nos permiten escribir nuestros programas (Código fuente),
compilarlos (traducirlos a un lenguaje de máquina) y ejecutarlos.
Los datos pueden ser numéricos, Cadenas de texto y valores lógicos.
Los datos que son manejados por el computador pueden ser
almacenados temporalmente en variables durante el tiempo en que
se ejecuta el programa.
Podemos construir dos tipos instrucciones para que el computador las
obedezca (Instrucciones Aritméticas y Instrucciones lógicas). Las
instrucciones aritméticas pueden usar los siguientes operadores
matemáticos: +,-,*,/. Y las instrucciones lógicas son aquellas que nos
devuelven un valor true o false y son el resultado de comparaciones
hechas con los operadores de comparación (>,<, <=, >=, =)

ALGORITMICA Y ESTRUCTURA DE DATOS

Es necesario antes de iniciar con el desarrollo de la asignatura, tener bien en claro


los siguientes conceptos:

1. CONCEPTO DE ALGORITMO
Es la secuencia de instrucciones o pasos que deben seguirse para resolver un
problema.

Características de un Algoritmo
 Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
 Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
 Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en
algún momento, o sea, debe tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, Proceso y


Salida.

Universidad Nacional del Callao Pag.5

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 6

2. LOS LENGUAJE DE PROGRAMACION:


Es un software de desarrollo de aplicaciones informáticas, basado en una sintaxis
de un lenguaje de programación (escrito mayormente en Inglés Técnico) con el
cual un programador puede instruir al computador. En la actualidad contamos con
una innumerable cantidad de lenguajes de programación que se diferencian en la
aplicación de diversas tecnologías.

Programar:
Es la acción de instruir o especificar a través de instrucciones o comandos a un
computador sobre cómo debe desarrollar una determinada labor o tarea. La labor
de la programación se desarrolla utilizando un Lenguaje de Programación.

Programa:
Serie de instrucciones que el computador debe ejecutar secuencialmente. Un
programa es desarrollado por un programador a través de un Lenguaje de
Programación. Un programa se puede encontrar en Código Fuente o Código
Ejecutable.

Programa En Código Fuente:


Cuando el programador crea un programa escribe código fuente (generalmente
basado en inglés técnico), este código debe necesariamente estar de acuerdo a
una sintaxis de un lenguaje de programación. El código fuente es entendible para
el programador, mas no al computador ¿Porqué? Porque los computador por se
máquinas electrónicas entienden Código Binario o Lenguaje de Máquina, basado
en 0 y 1.

Compilar Un Programa:
La acción de compilar un programa es la de traducir el programa basado en
CODIGO FUENTE a un programa en CODIGO EJECUTABLE (o en código
binario), de esta forma el computador podrá entender el programa que fue
previamente escrito por el programador. Entonces todo programa para ser
ejecutado por el computador necesita ser compilador previamente.

Programa En Código Ejecutable:


Es aquel programa basado en Lenguaje Binario o lenguaje de Máquina, este es el
tipo de programa que el computador entiende o interpreta directamente. Cuando
un programador desarrolla una aplicación informática, mayormente no
comercializa el programa en código fuente, sino mas bien se comercializa el
programa el programa en código ejecutable.
Si se tuviera que realizar modificaciones al programa, dichos cambios se
realizarán en el código fuente (el cual estará a recaudo del programador) y luego

Universidad Nacional del Callao Pag.6

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 7

se volverá a compilar la aplicación y como resultado se obtendrá una nueva


versión del programa ejecutable.

Clasificación De Los Lenguajes De Programación

a. Los Lenguajes de Alto Nivel


Este tipo de lenguajes son los más utilizados por los programadores. Están
diseñados para que las personas escriban y entiendan los programas de un
modo mucho más fácil que otros tipos de lenguajes. Ejemplo: Visual Basic,
Power Builder, etc.

b. Los Lenguajes de Medio Nivel


Este tipo de lenguajes utilizan un código fuente que es algo incomprensible a
simple vista, utiliza en su sintaxis palabras en Inglés junto con caracteres
especiales, no olvidemos que cuando un lenguaje de programación cuenta con
un código fuente más indescriptible para el programador es más asimilable para
el computador. Ejemplo: Lenguaje C, Lenguaje Java, etc.

c. Los Lenguajes de Bajo Nivel


Este tipo de lenguaje es el más complicado de utilizar, su sintaxis esta basada en
el uso de nemotécnicos, su uso esta reservado para realizar procesos que tienen
que ver con funciones directas del microprocesador, memoria, puertos o
dispositivos de almacenamiento. El lenguaje de bajo nivel por excelencia es el
Assembler (assembly language).

3. DATOS, TIPOS DE DATOS Y OPERACIONES PRIMITIVAS

Antes de aprender a programar tenemos que aprender algunos conceptos


esenciales:

3.A. Datos
El primer objetivo de toda computadora es el manejo de la información o datos.
Estos datos pueden ser las cifras de ventas de un supermercado o las
calificaciones e una clase.
Un dato es la expresión general que describe los objetos con los cuales opera
una computadora.

3.B. Tipo de Datos


Los datos que puede manejar una computadora básicamente son los siguientes:
• Numéricos
• Lógicos
• Carácter y Cadena

Universidad Nacional del Callao Pag.7

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 8

Nota: De estos tipos se desprenden todos los demás tipos considerados en


algunos lenguajes de programación, tales como: Cadenas de texto, fecha, etc.

3.B.1. Datos Numéricos


El tipo numérico es el conjunto de valores numéricos (positivos o negativos).
Estos pueden ser:
 El tipo numérico entero
Ejemplo: Edad, Cantidad de alumnos de un aula, etc.
 El tipo numérico decimal
Ejemplo: Talla, Sueldo, etc.

3.B.2. Datos Lógicos


El tipo lógico (también denominado booleano) es aquel dato que sólo puede
tomar unos de dos valores:
 Verdadero (true)
 Falso (false)
Este tipo de dato se utiliza para representar las alternativas (si/no) a
determinadas condiciones. Por ejemplo, cuando se pide si un valor entero es par,
la respuesta será verdadera o falsa.

3.B.3. Dato Tipo carácter


 El tipo carácter es el conjunto finito y ordenado de caracteres que la
computadora reconoce. Un dato tipo carácter contiene un solo carácter.
Ejemplo: El dato que corresponde a sexo puede ser F ó M.
 Los caracteres que reconocen las diferentes computadoras no son estándar;
sin embargo, la mayoría reconoce los siguientes caracteres alfabéticos y
numéricos:
 Caracteres alfabéticos (A,B,C,…,Z) (a,b,c,…,z)
 Caracteres numéricos (1,2, …, 9,0)
 Caracteres especiales (+, -, *, /, ^, ., ;, <, >, $, …)

3.B.4. Dato Tipo Cadena de Caracteres


 Una cadena (String) de caracteres es una sucesión de caracteres que se
encuentran delimitados por una comilla o doble comillas, según el tipo de
lenguaje de programación. La longitud de una cadena de caracteres es el
número de ellos comprendidos entre los separadores o limitadores.
Ejemplo:
“Universidad Privada Telesup”
“356-2525”

Universidad Nacional del Callao Pag.8

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 9

4. VARIABLES, CONSTANTES Y EXPRESIONES, OPERACION DE ASIGNACION

4.A. VARIABLE
Una variable es un espacio reservado en la memoria principal del computador
identificado por un nombre, contiene un valor que puede cambiar a lo largo del
programa.

Tipo de Dato Cantidad de


bytes que ocupa Valores que toma
(Primitivo) en Memoria
char 2 bytes Dato de un solo caracter (ASCII)
byte 1 byte -128 a 127
short 2 bytes -32768 a 32767
int 4 bytes -2147483648 a 2147483647
long 8 bytes -9223372036854775808 a
9223372036854775807
float 4 bytes 1.4E-45 a 3.4028235E38 (6 ó 7
cifras equivalentes)
double 8 bytes 4.9E-324 a
1.7976931348623157E308 (15
cifras equivalentes)
boolean 1 byte true or false

Los tipos primitivos de Java tienen algunas características importantes que se


resumen a continuación:
1. El tipo boolean no es un valor numérico: sólo admite los valores true o false.
2. El tipo char contiene caracteres en código UNICODE (que incluye el código
ASCII).
3. Los tipos byte, short, int y long son números enteros que pueden ser
positivos o negativos, con distintos valores máximos y mínimos.
4. Los tipos float y double son valores de punto flotante (números reales) con
6,7 y 15 cifras decimales equivalentes, respectivamente.
5. Se utiliza la palabra void para indicar la ausencia de un tipo de variable
determinado.
Nombres De Variables
Los nombres de variables en Java se pueden crear con mucha libertad. Pueden
ser cualquier conjunto de caracteres alfabéticos y alfanuméricos, sin algunos
caracteres especiales utilizados por Java como operadores o separadores tales
como: , . + - * / & “ # etc.. (Excepto _ ). Los nombres de variables tampoco
deben empezar con caracteres numéricos, ni contener en su nombre espacios en
blanco.

Universidad Nacional del Callao Pag.9

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 10

Existe una serie de palabras reservadas las cuales tienen un significado especial
para Java y por lo tanto no se pueden utilizar como nombres de variables. Dichas
palabras son:

Palabras reservadas en Java


abstract boolean break
byte case catch
char class const
continue default do
double else extends
final finally float
for goto* if
implements import instanceof
int interface long
native new null
package private protected
public return short
static super switch
synchronized this throw
transient try void
volatile while

¿Cómo se declaran e inicializan las variables?


Una variable se define especificando el tipo y el nombre de dicha variable. Si
no se especifica un valor en su declaración, las variable primitivas se inicializan
a cero (salvo boolean y char, que se inicializan a false y '\0'). Análogamente las
variables de tipo referencia son inicializadas por defecto a un valor especial:
null.
Ejemplos de declaración e inicialización de variables de tipo primitivas:

int x; // Declaración o creación de la variable x de tipo int. En este


// momento contiene el valor 0
x=5; // La variable anteriormente creada recibe el valor 5

boolean estado; //Declaración de la variable estado de tipo boolean


estado=true; //la variable anteriormente creada recibe el valor
//true

// LAS VARIABLES PUEDEN SER DECLARADAS Y AL MISMO TIEMPO PUEDEN


// RECIBIR UN VALOR
double precio=0.99; //Se declara la variable precio y se le asigna
// un valor al mismo tiempo.
char sexo=’f’; //Se declara la variable sexo de tipo char y se
//le asigna un primer valor.

//TAMBIEN SE PUEDEN DECLARAR VARIAS VARIABLES EN UNA SOLA LINEA


int a,b,c; //Se han declarado a la vez 3 variables distintas.

Universidad Nacional del Callao Pag.10

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 11

//Como no se les ha asignado un valor, su valor de inicio es 0

4.B. CONSTANTES
Una constante es una variable que recibe un valor inicial al momento de ser
declarada, y luego de esta no admite cambios, ni alteraciones a dicho dato.

Ejemplo: Declaración y asignación de una constante


double ptotal=399.99;
static final double igv=0.19; //Se ha creado la constante igv
//A partir de este momento cada vez que deseemos referirnos a este valor, bastará
//invocarlo de la siguiente forma:
ptotal=ptotal*igv;

4.C. OPERADORES DE JAVA


Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
Estos operadores se describen brevemente en los apartados siguientes.

4.C.1. Operadores aritméticos


Son operadores binarios (requieren siempre dos operandos) que realizan las
operaciones aritméticas habituales. Estos operadores son los siguientes:

Operador Lógico Lo que significa


+ Suma
- Resta
* Multiplicación
/ División Natural
% Residuo

4.C.2. Operadores de asignación


Los operadores de asignación permiten asignar un valor a una variable. El
operador de asignación por excelencia es el operador igual (=). La forma
general de las sentencias de asignación con este operador es:
variable = expresión;

Ejemplo:
int edad; //Declaración de la variable
edad=23; //Asignación de un dato hacia la variable edad

Java dispone de otros operadores de asignación. Se trata de versiones


abreviadas del operador (=) que realizan operaciones “acumulativas” sobre una
variable. La siguiente tabla muestra estos operadores y su equivalencia con el
uso del operador igual (=).

4.C.3. Operadores unarios

Universidad Nacional del Callao Pag.11

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 12

Los operadores más (+) y menos (-) unarios sirven para mantener o cambiar el
signo de una variable, constante o expresión numérica.

Ejemplo:
int total;
total=-12; //A la variable total se le asigna un dato numérico negativo

4.C.4. Operador condicional ?:


Este operador, tomado de C/C++, permite realizar bifurcaciones condicionales
sencillas. Su forma general es la siguiente:
booleanExpression ? res1 : res2

Donde se evalúa booleanExpression y se devuelve res1 si el resultado es


true y res2 si el resultado es false. Es el único operador ternario (tres
argumentos) de Java. Como todo operador que devuelve un valor puede ser
utilizado en una expresión. Por ejemplo las sentencias:

int x,y,z;
x=1; y=10; z=(x<y)?x+3:y+8;
System.out.println(z);

Se visualizará el valor 4 porque la variable z recibió el valor x+3.


NOTA: La expresión Sytem.out.println(); se utiliza para visualizar datos en la
consola de resultados.

4.C.5. Operadores incrementales


Java dispone del operador incremento (++) y decremento (--). El operador (+
+) incrementa en una unidad la variable a la que se aplica, mientras que ( --) la
reduce en una unidad. Estos operadores se pueden utilizar de dos formas:

1. Precediendo a la variable (por ejemplo: ++i). En este caso primero se


incrementa la variable y luego se utiliza (ya incrementada) en la expresión en
la que aparece.

2.Siguiendo a la variable (por ejemplo: i++). En este caso primero se utiliza la


variable en la expresión (con el valor anterior) y luego se incrementa.

Operador Lógico Lo que significa


++ Incremento de uno en uno
-- Decremento de uno en uno
+= Suma y asigna
-= Resta y asigna
*= Multiplica y asigna

Universidad Nacional del Callao Pag.12

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 13

/= Divide y asigna

4.C.6. Operadores de Comparación


Los operadores relacionales sirven para realizar comparaciones de igualdad,
desigualdad y relación de menor o mayor. El resultado de estos operadores es
siempre un valor boolean (true o false) según se cumpla o no la relación
considerada.

Operador Significa
== Igual que
< Menor que
<= Menor igual que
> Mayor que
>= Mayor igual que
!= Diferente

4.C.7. Operadores Lógicos


Se utilizan para unir varias expresiones lógicas en disyunción, conjunción o
negación.

Operador Lógico Lo que significa


|| Disyunción (Basta que una de las expresiones sea verdadera para
que
todo sea verdadero)
&& Conjunción (Todas las expresiones tienen que ser verdaderas para
que
todo sea verdadero)
! Negación

Ejemplo:
int x=10;
int y=12;
int z=15;
System.out.println(x<y && z>x); // Dos expresiones lógicas unidas por el
//conector lógico AND

Devuelve como resultado true por ambas comparaciones han dado verdadero.

4.C.8. Operador de concatenación de cadenas de caracteres (+)

Universidad Nacional del Callao Pag.13

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 14

El operador más (+) se utiliza también para concatenar (unir) cadenas de


caracteres. Por ejemplo, para escribir una cantidad con un rótulo y unas
unidades puede utilizarse la sentencia:

System.out.println("El total asciende a " + result + " unidades");

4.D. EXPRESIONES

4.D.1. Expresiones Lógicas


Las expresiones lógicas son aquellas que nos devuelven como
resultado valores true o false, y están estructuradas con operadores de
comparación.

Ejemplo:
int x=32;
int y=12;
System.out.println(x<y); //Estamos visualizando el resultado de una
//Expresión Lógica

Devuelve como resultado false por la comparación x<y da falso


Varias expresiones lógicas pueden unirse a través de los operadores
lógicos, ejemplo:

int a=32;
int b=12;
int c=4;
System.out.println(a<b && a<c); //Evalúa si a es menor que b y si a es
// menor que c, estas dos
expresiones
// lógicas están vinculadas con un
// operador lógico AND.
// El resultado final es FALSE

4.D.2 Expresión Aritmética o Matemática


Una expresión es un conjunto variables unidos por operadores
matemáticos. Son órdenes que se le dan al computador para que realice
un cálculo determinado. Ejemplo:

int a=32;
int b=12;
int c=4;
int d;

Universidad Nacional del Callao Pag.14

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 15

d=a+b; //Expresión aritmética


c=b/c; //Expresión aritmética
System.out.println(c);
System.out.println(d);

Una expresión es una sentencia que acaba en punto y coma (;). Se


permite incluir varias sentencias en una línea, aunque lo habitual es
utilizar una línea para cada sentencia. Por ejemplo:

i = a+b; j = 5; x = i + j; // Línea compuesta de tres expresiones


z=4/3; //Línea con una sola expresión.

4. E Comentarios
Los comentarios son tremendamente útiles para poder entender el código
utilizado, facilitando de ese modo futuras revisiones y correcciones.
Además permite que cualquier persona distinta al programador original
pueda comprender el código escrito de una forma más rápida. Se
recomienda acostumbrarse a comentar el código desarrollado. De esta
forma se simplifica también la tarea de estudio y revisión posteriores.

Java interpreta que todo lo que aparece a la derecha de dos barras “//” en
una línea cualquiera del código es un comentario del programador y no lo
tiene en cuenta. El comentario puede empezar al comienzo de la línea o a
continuación de una instrucción que debe ser ejecutada. La segunda
forma de incluir comentarios consiste en escribir el texto entre los
símbolos /*…*/. Este segundo método es válido para comentar más de
una línea de código. Por ejemplo:

// Esta línea es un comentario


int a=1; // Comentario a la derecha de una sentencia

// Esta es la forma de comentar más de una línea utilizando


// las dos barras. Requiere incluir dos barras al comienzo de cada línea

/* Esta segunda forma es mucho más cómoda para comentar un número elevado
de líneas ya que sólo requiere modificar
el comienzo y el final. */

4.F. LA OPERACION DE ASIGNACION


Consiste en asignar un dato a una variable declarada o creada
previamente.

Ejemplo:
int a;

Universidad Nacional del Callao Pag.15

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 16

a=345;

Universidad Nacional del Callao Pag.16

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 17

METODOLOGIAS EMPLEADAS PARA LA REPRESENTACION DE


UN ALGORITMO
Como hemos aprendido en la primera sección, programar consiste en instruir o
especificar a un computador sobre cómo debe desarrollar una determinada labor
o tarea. Para que la labor de programación sea una tarea fácil debemos seguir
una metodología la cual comprende los siguientes pasos:
1. Definición del problema (Enunciado)
2. Definición de la solución (Análisis del problema)
3. Diseño del algoritmo
4. Desarrollo del problema (Codificación)
5. Depuración y pruebas (Ejecución – Evaluación de Resultados)
6. Documentación

DESARROLLO DE UN CASO PRACTICO

A. ANALSIS DEL PROBLEMA


1er. Paso: DEFINICION DEL PROBLEMA
En este paso se debe establecer claramente el enunciado del problema que se
esta planteando.
Ejemplo:
Crear una aplicación Java que calcule el área de un rectángulo. En función a la
siguiente fórmula:
a=(b*h)

2do. Paso: DEFINICION DE LA SOLUCIÓN


Luego de que se entiende exactamente en que consiste el problema, debemos
identificar claramente lo siguiente:
a. Datos que deben ser ingresados para dar solución al problema
b. Establecer exactamente cuales son los procesos que deben llevarse a cabo a
fin de dar con la solución del problema
c. Determinar con exactitud que valores son los que se deben visualizar como
resultado o solución del problemas (estos resultados deben satisfacer los
objetivos del problema).

Ejemplo:
Objetivo del Problema: Hallar el Área de un Rectángulo
Entrada de Datos Proceso Salida de Información
- Altura (h) a=b*h - area (a)
- Base (b)
B. DISEÑO DEL ALGORITMO (Diagrama de flujo, Pseudocodigo)

3er. Paso: DISEÑO DE LA SOLUCIÓN

Universidad Nacional del Callao Pag.17

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 18

Ahora que conocemos exactamente los procesos que tendremos que programar y
conocemos los datos que estarán siendo entregados y la información que
debemos generar como resultado del proceso, estamos en condiciones de
diseñar nuestra solución.

Para diseñar la solución de nuestro problema debemos construir un algoritmo.


¿Qué es un algoritmo?

ALGORITMO:
Es el conjunto de instrucciones que se deben seguir secuencialmente a fin de
desarrollar un determinado proceso. Un algoritmo es construido por un
programador antes de codificar el programa en código fuente, como un prototipo
o ensayo a fin de garantizar la eficacia del proceso y de los resultados que
deriven de este.

Para construir algoritmos se utilizan metodologías como: El Diagrama de Flujo y


Pseudocódigos.

Diagrama De Flujo : Metodología grafica que permite construir visualmente el


recorrido del flujo de un programa y estructurar el algoritmo para una solución
determinada.

Simbología usada en un Diagrama de Flujo:


Símbolo Lo que significa
Inicio o Fin de un Diagrama de Flujo

Entrada o Salida: Representa una


operación de entrada de datos o
salida de información

Proceso: Representa una operación


de procesamiento de datos.

Decisión: Bifurca el flujo del


algoritmo, dependiendo del resultado
de la expresión lógica.

Conector: Este símbolo se usa para


conectar entre si dos o más puntos
relacionados del diagrama de flujo.

Universidad Nacional del Callao Pag.18

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 19

Dirección: Las flechas indican la


dirección del flujo de control en la
secuencia del algoritmo.

Ejemplo de un Diagrama de flujo:


El siguiente diagrama de flujo constituye el algorítmo que da solución al caso
propuesto.

INICIO

Leer:
b,h

a=b*h

Escribir
a

FIN

Pseudocódigo:
Es un lenguaje de especificación (descripción) de algoritmos. Generalmente se
escribe en el idioma natural del usuario, es muy semejante al código fuente de un
programa.
Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse
posteriormente a un lenguaje de programación. El pseudocódigo no puede ser
ejecutado por el computador.

Ejemplo de un Pseudocódigo: (Para el desarrollo del caso propuesto)

INICIO
Leer b,h
a=b*h
Escribir
a
FIN

Universidad Nacional del Callao Pag.19

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 20

C. EJERCICIO PRACTICO CON PROGRAMA DE ESTRUCTURA CONDICIONAL

4to. Paso: EJERCICIO PRACTICO


Consiste en la codificación del programa partiendo del algoritmo desarrollado en
el paso anterior, para este fin se deberá utilizar un Lenguaje de Programación.
Codificación en Java del algoritmo anterior
pub l
i
cclassRec t
an gul
o{
pub l
i
cstat
icvoi
dma i
n(St
ri
nga rgs[])
{
/
/DECLARACI ONDEVARI ABL ES
i
nt b;
i
nt h;
i
nt a;

/
/I
NGRESODEDAT
OS
b
=12;
h
=4;

/
/
PROCESODEDAT
OS
a
=b*
h;

//
SALIDADEINFORMACION
Syst
em.ou
t.
pr
int
l
n("
Elá
reaes
:"+a
);
}
}

Nota: Java si hace diferencia entre las mayúsculas y minúsculas, por lo que
debemos ser cuidados al escribir el código fuente, por lo general los nombres de
las clases siempre empiezan con mayúsculas.

5to. Paso: DEPURACION Y PRUEBA


Consiste en la ejecución, depuración y solución de errores.
Para ejecutar un programa se deberá presionar las teclas SHIFT + F6

Los errores que podrían presentarse pueden ser:

Universidad Nacional del Callao Pag.20

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 21

Errores de Sintaxis: Son errores de escritura de código, el compilador no los


puede interpretar y por lo tanto cuando ejecutamos el programa los señala como
un error indicándose la línea y elemento desconocido, mientras no arreglemos
todos estos errores el programa no podrá ejecutarse.

Error de Ejecución: El programa puede ejecutarse, pero por un mal manejo del
programa o un ingreso indebido, el programa colapsa o cierra repentinamente,
estos tipos de errores deben evitarse y debe ser el programa quien pueda
controlarlos.

Error de Lógica o procedimiento: Este tipo de error es percibido cuando nos


damos cuenta que los resultados de los procesos no son los correctos.

Todos estos tipos de errores deben examinarse antes de dar por concluido el
proceso de desarrollo del programa. De presentarse un error de lógica se debe
realizar un Feedback (Retroalimentación) y debemos volver al PASO Nro. 1

6to. Paso: DOCUMENTACION


En esta etapa debe recopilarse toda la documentación generada en las etapas
anteriores, la cual va a servir como base para la elaboración del manual técnico.

INTRODUCCION AL ENTORNO DE PROGRAMACION - JAVA

Recomendamos al alumno leer la Lectura Complementaria de esta semana a fin


de tener una idea clara de las características del Lenguaje de Programación Java.
Para nuestra asignatura utilizaremos para el desarrollo de los programas el IDE:
Netbeans 5.5, el cual Ud. lo puede descargar gratuitamente de: http://java.sun.com

a. RECONOCER EL ENTORNO
Luego de descargar el instalador de la dirección antes mencionada e instalarlo en
nuestro equipo, Ud. podrá ingresar al programa a través del icono del programa,
semejante a este:

PANTALLA DEL ENTORNO DE TRABAJO


Luego del paso anterior, aparecerá la siguiente pantalla inicial:

Universidad Nacional del Callao Pag.21

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 22

b. CREACION DE UN PROGRAMA
Para crear un programa, primero es necesario:

1. Crear un Proyecto
Pasos:
1. Acceda al Menu File / Escoja: New Project
2. Seleccione la categoría: General – Java Application

3. Botón Next
4. Coloque un nombre al proyecto:

Universidad Nacional del Callao Pag.22

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 23

5. Si desea grabar su proyecto en alguna carpeta especial, haga click en:


Botón Browse
o Para crear la clase principal: Marque el check Create main class y en
la parte final cambie el nombre main por el nombre que desea darle a
su clase. Luego Hacer clic en el botón Finish

6. Luego de esto aparecerá la clase, dentro del cual desarrollaremos nuestro


programa Java

Universidad Nacional del Callao Pag.23

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 24

7. El algoritmo a desarrollar lo insertaremos dentro del método main.

public class Matematicas {


public static void main(String[] args) {

Codifique su programa en este lugar

}
}

2. EJERCICIOS PRACTICOS: Codificar y ejecutar los programas estructurados


de la Semana Anterior

1er. Paso: DEFINICION DEL PROBLEMA


Crear una aplicación Java que descomponga un numero, en sus cifras
respectivas. (El numero dado estará dentro del rango de [0 a 999]. Ejemplo: Si
ingresamos 356, el programa deberá indicar, como respuesta:

3
5
6

2do. Paso: DEFINICION DE LA SOLUCIÓN

Objetivo del Problema: Descomponer un número


Entrada de Datos Proceso Salida de Información
- Número (n) c= (int) n / 100; - Centenas (c)
r=n % 100 - Decenas (d)
d=(int) r/10 - Unidades (u)
u=r%10

Nota: La palabra reservada (int) como prefijo a una expresión aritmética permite
que solo se captura la parte entera de dicha operación. Ejemplo:

int c;
c=(int)n/100; // Divide el valor n entre 100, pero la variable c solo recibe
//la parte entera. Ejemplo: 353/100. El valor de c sería 3

3er. Paso: DISEÑO DE LA SOLUCIÓN

Universidad Nacional del Callao Pag.24

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 25

INICIO

Leer:
n

c=(int) n/100

r=n%100

d=(int)r/10

u=r%10

Escribir
c,d,u

FIN

Pseudocódigo:
INICIO
Leer n
c=(entero)n/100
r=n % 100
d=(entero) r/10
u=r%10
Escribir
c,d,u
FIN

4to. Paso: CODIFICAR UN PROGRAMA A PARTIR DE UN PSEUDOCODIGO


DESARROLLO DE LA SOLUCION
Consiste en la codificación del programa partiendo del algoritmo desarrollado en
el paso anterior, para este fin se deberá utilizar un Lenguaje de Programación.
Codificación en Java del algoritmo anterior
i
mp ortj
avax.
swing .
*;

p
u b
li
ccl
assDesc
ompos
ic
ion{
p
u b
li
cst
ati
cvo
idmai
n(
Str
in
ga r
gs[
]
)
{
/
/DECLARACI
ONDEVARI ABLES
i
ntn,
c,
r,
d,
u;

/
/I
NGRESODEDAT
OS-
Est
osd
atoss
onc
apt
ura
dosc
omoSt
ri
ng

Universidad Nacional del Callao Pag.25

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 26

St
r
ingn
n=J
Opt
i
onPa
ne.
sho
wIn
put
Di
al
og(
"I
ngr
esen
úme
ro:
");

/
/LOSDATOSRECEPCI
ONADOSDEBERANSERCONVERTI
DOSAlTI
POQUECORRESPONDEN
n=I
nt
eger.
par
seI
nt
(nn)
;

//
PROCESODEDAT OS
c=(
in
t)
n /
100;
r=
n%1 00;
d=(
int
)r/
10;
u=r
%1 0;
//
SALIDADEI NFORMACION
Syst
em.out
.p
ri
n t
l
n("
Laci
f
race
ntenae
s:"+c)
;
Syst
em.out
.p
ri
n t
l
n("
Laci
f
radec
enaes:"+d
);
Syst
em.out
.p
ri
n t
l
n("
Laci
f
rauni
dades
:"+u)
;
}
}

c. CODIFICAR Y EJECUTAR LOS PROGRAMAS ESTRUCTURADOS

5to. Paso: DEPURACION Y PRUEBA


Para ejecutar:
Presione la tecla Shift F6

Si el programa está libre de errores, visualizaremos la ejecución de nuestro


programa de la siguiente manera:

Luego de Aceptar, visualizaremos la ejecución:

Nota: Si Ud. no logra ver la consola de ejecución en Eclipse, puede acceder al


menú Window / Output

Universidad Nacional del Callao Pag.26

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 27

6to. Paso: DOCUMENTACION


Para grabar haga click en el botón Guardar o sino acuda al Menu File / Save. La
clase se grabará en la carpeta que Ud. configuró en el momento que creó el
proyecto
LECTURA COMPLEMENTARIA

Introducción a Java
Java surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron
de diseñar un nuevo lenguaje de programación destinado a electrodomésticos. La
reducida potencia de cálculo y memoria de los electrodomésticos llevó a desarrollar
un lenguaje sencillo capaz de generar código de tamaño muy reducido.
Debido a la existencia de distintos tipos de CPUs y a los continuos cambios, era
importante conseguir una herramienta independiente del tipo de CPU utilizada.
Desarrollaron un código “neutro” que no dependía del tipo de CPU y
electrodoméstico, el cual se ejecutaba sobre una “máquina hipotética o virtual”
denominada Java Virtual Machine (JVM). Era la JVM quien interpretaba el código
neutro convirtiéndolo a código particular de la CPU utilizada. Esto permitía lo que
luego se ha convertido en el principal lema del lenguaje: “Write Once, Run
Everywhere”. A pesar de los esfuerzos realizados por sus creadores, ninguna
empresa de electrodomésticos se interesó por el nuevo lenguaje.

Como lenguaje de programación para computadores, Java se introdujo a finales de


1995. La clave fue la incorporación de un intérprete Java en la versión 2.0 del
programa Netscape Navigator, produciendo una verdadera revolución en Internet.
Java 1.1 (Conocido como JAVA 1) apareció a principios de 1997, mejorando
sustancialmente la primera versión del lenguaje. Java 1.2, más tarde rebautizado
como Java 2, nació a finales de 1998.

Java como lenguaje de programación permitía desde aquel tiempo algo muy
singular: codificar en una plataforma (como por ejemplo Windows) y ejecutar la
misma aplicación en otra plataforma totalmente distinta (como por ejemplo Solaris),
¿Cómo podía lograrse esto? Gracias a que las aplicaciones ejecutables de Java no
dependen de un Sistema Operativo en particular, puesto que no se ejecutan
directamente sobre este. La tecnología Java dispone de una maquina virtual llamada
JVM (Java Virtual Machine) sobre la cual se ejecutan las aplicaciones, por lo que no
interesa el sistema operativo que este activo en el equipo y es esta máquina virtual
la que ejecuta la aplicación y no el CPU de nuestro equipo, característica que le da a
las aplicaciones JAVA la libertad de ejecutarse en cualquier equipo.

2. COMPONENTES DE LA TECNOLOGIA JAVA

A. EL ENTORNO DE DESARROLLO DE JAVA (JDK)

Universidad Nacional del Callao Pag.27

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 28

Es el entorno de desarrollo consta de un conjunto de programas y librerías que


permiten desarrollar, compilar y ejecutar programas en Java. Además
incorpora la posibilidad de ejecutar parcialmente el programa, deteniendo la
ejecución en el punto deseado y estudiando en cada momento el valor de cada
una de las variables (con el denominado Debugger), es decir contiene todo lo
necesario para trabajar en JAVA

Existen distintos programas comerciales que permiten desarrollar código Java,


con ventajas muy interesantes tales como Sun One Studio, Visual Age for
Java, JBuilder, etc. Pero, también La compañía Sun, creadora de Java,
distribuye gratuitamente el Java(tm) Development Kit (JDK). Visite:
http://java.sun.com

Algunos JDK gratuitos son:


Eclipse (www.eclipse.org)
Jcreator (www.jcreator.com)
JDeveloper (www.oracle.com)

B. COMPONENTES DEL ENTORNO DE DESARROLLO DE JAVA (JDK):


2. JRE (Java Runtime Environment) destinada únicamente a ejecutar código
Java (no permite compilar).
3. IDEs (Integrated Development Environment), tal y como su nombre indica,
son entornos de desarrollo integrados. En un IDE es posible escribir el
código Java, compilarlo y ejecutarlo sin tener que cambiar de aplicación.
Algunos incluyen una herramienta para realizar Debug gráficamente, frente
a la versión que incorpora el JDK basada en la utilización de una consola
(denominada habitualmente ventana de comandos de MS-DOS, en
Windows NT/95/98) bastante difícil y pesada de utilizar. Estos entornos
integrados permiten desarrollar las aplicaciones de forma mucho más
rápida, incorporando en muchos casos librerías con componentes ya
desarrollados, los cuales se incorporan al proyecto o programa. Como
inconvenientes se pueden señalar algunos fallos de compatibilidad entre
plataformas, y ficheros resultantes de mayor tamaño que los basados en
clases estándar.
Ejemplo: NetBeans IDE. Visite: http://www.netbeans.org
c. El compilador de Java
Se trata de una de las herramientas de desarrollo incluidas en el JDK.
Realiza un análisis de sintaxis del código escrito en los ficheros fuente de
Java (con extensión *.java). Si no encuentra errores en el código genera
los ficheros compilados (con extensión *.class). En otro caso muestra la
línea o líneas erróneas. En el JDK de Sun dicho compilador se llama
javac.exe. Tiene numerosas opciones, algunas de las cuales varían de una

Universidad Nacional del Callao Pag.28

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 29

versión a otra. Se aconseja consultar la documentación de la versión del


JDK utilizada para obtener una información detallada de las distintas
posibilidades.

d. La Java Virtual Machine (JVM)


Tal y como se ha comentado al comienzo del capítulo, la existencia de
distintos tipos de procesadores y ordenadores llevó a los ingenieros de
Sun a la conclusión de que era muy importante conseguir un software que
no dependiera del tipo de procesador utilizado. Se planteó la necesidad de
conseguir un código capaz de ejecutarse en cualquier tipo de máquina.
Una vez compilado no debería ser necesaria ninguna modificación por el
hecho de cambiar de procesador o de ejecutarlo en otra máquina. La clave
consistió en desarrollar un código “neutro” el cual estuviera preparado para
ser ejecutado sobre una “máquina hipotética o virtual”, denominada Java
Virtual Machina (JVM). Es esta JVM quien interpreta este código neutro
convirtiéndolo a código particular de la CPU utilizada. Se evita tener que
realizar un programa diferente para cada CPU o plataforma.

La JVM es el intérprete de Java. Ejecuta los “bytecodes” (ficheros


compilados con extensión *.class) creados por el compilador de Java
(javac.exe). Tiene numerosas opciones entre las que destaca la posibilidad
de utilizar el denominado JIT (Just-In-Time Compiler), que puede mejorar
entre 10 y 20 veces la velocidad de ejecución de un programa.

3. CARACTERISTICAS DEL LENGUAJE JAVA

A. Es un lenguaje de Programación Orientado a Objetos


Java utiliza la metodología de la programación orientada a objetos (POO), la
cual se basa en la conceptualización de todo lo que nos rodea como: objetos,
los cuales poseen características definidas (propiedades) y acciones de
comportamiento (métodos). Adicionalmente los objetos pertenecen a una clase
(plantilla o patrón utilizada para crear más objetos similares).

En una unidad próxima abordaremos a profundidad todo lo que encierra la


programación orientada a objetos, por ahora tan solo indicaremos que cada
vez que iniciemos una aplicación en java se creará automáticamente una
clase. Tal como se puede apreciar a continuación.

public class Calculadora {


public static void main(String args[])
{
}
}

Universidad Nacional del Callao Pag.29

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 30

El método main es aquel método principal de la clase en donde se debe


programar todo aquello que nosotros queramos que haga la clase.

B. Es un lenguaje OpenSource
Java a diferencia de otros lenguajes de programación tiene su código fuente
abierto, es decir se encuentra a disposición de que cualquier persona pueda
explorar la manera como han sido programadas los diferentes clases internas de
Java, también es posible que el programador añada funcionalidades a Java y
personalice Java a sus necesidades.

C. Es un lenguaje Multiplataforma
Tal como lo hemos explicado anteriormente Java puede desarrollarse en una
plataforma y puede ejecutarse en otra plataforma distinta sin ningún problema,
gracias a que las aplicaciones corren en su propia máquina virtual (JVM) lo que
permite que las aplicaciones no dependan exclusivamente de un sistema
operativo y equipo en especial.

Universidad Nacional del Callao Pag.30

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 31

PRIMERA SEMANA – Marco Práctico

TRABAJO PRÁCTICO 1

Objetivo del Trabajo:


Que el alumno se ejercite en la construcción de sus propios algoritmos
computacionales, utilizando estructuras simples.

Utilizando la metodología aprendida en clase, construya los algoritmos


computacionales para resolver los siguientes requerimientos:

a. Ingrese el nombre y 3 notas de un alumno, calcular y mostrar el


promedio del alumno.
b. Ingrese un número, calcular y mostrar:
ii. El doble del número ingresado
iii. La tercera parte del número ingresado
iv. El cubo del número ingresado
c. Ingrese un número, disminúyalo en 30%, mostrar el valor de la
disminución y el nuevo valor que toma el número ingresado.
d. Realizar la conversión de una temperatura dada en grados
Centígrados a grados Fahrenheit.
e. Se sabe el monto total de una factura, calcule cual fue el monto total
sin IGV e IGV de la factura.
f. Construya un programa que calcule el monto a pagar por el servicio de
telefonía celular, el pago se hará sobre la base de los segundos de uso
del servicio. Por cada segundo el servicio cuesta: S/. 0.0133 (al monto
resultante se debe incrementar el IGV)
g. Ingrese el nombre de un trabajador y su sueldo básico, calcular y
mostrar:
 Bonificación: 5% del sueldo básico
 Descuento: 2% del sueldo básico
 Sueldo Neto, sumar sueldo básico más bonificación y restarlo
con el descuento.
a. Diseñar un algoritmo para el Departamento de Personal de una
empresa. El cálculo del pago mensual de un empleado de una
empresa se efectúa de la siguiente manera: el sueldo básico se calcula
en base al número total de horas trabajadas basado en una tarifa
horaria, al sueldo básico se le aplica una bonificación del 20%
obteniéndose el sueldo bruto, al sueldo bruto se le aplica un descuento
del 10% obteniéndose el sueldo neto. Escriba un programa que calcule
e imprima el sueldo básico, el sueldo bruto y el sueldo neto de un
trabajador.

“Si deseas ser grande, empieza a crecer desde hoy... Esfuérzate por llegar
lejos.”

Universidad Nacional del Callao Pag.31

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 32

SEGUNDA SEMANA – Marco Teórico

Logro
Diferencia y determina cuando utilizar la estructura condicional SI
(Simple y Doble) en la construcción de sus programas.

Resumen
La estructura si (estructura IF) es una estructura condicional que
evalúa una expresión lógica, de ser el resultado verdadero realiza un
bloque de instrucciones y de ser falso realiza otro bloque de
instrucciones.
Se pueden usar estructura si dentro de otras estructuras si, a esta
clase de estructuras se le conoce como estructuras si anidadas

ESTRUCTURAS ALGORITMICAS: ESTRUCTURAS


CONDICIONALES

ESTRUCTURA SELECTIVA SI SIMPLE

DEFINCION: Es una estructura que evalúa una expresión lógica y dependiendo del
resultado escoge entre realizar uno u otro bloque de código.

En nuestra vida cotidiana a diario tomamos una serie de decisiones y todas tienen
que ver con: Evaluar una premisa y de acuerdo a su resultado podemos tomar una
u otra decisión.

Ejemplo:
- Deseo ir al cine.

Si van mis amigos entonces


Iré al cine
Sino
Me quedo en casa

De igual forma cuando el programador desea especificar dos o más caminos


alternativos en un algoritmo o programa, se deben utilizar estructuras de decisión
o selección.

Una instrucción de decisión o selección evalúa una condición y en función del


resultado de esa condición se bifurcará a un determinado punto.

Universidad Nacional del Callao Pag.32

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 33

Las estructuras selectivas se utilizan para tomar decisiones lógicas, de ahí que se
suelan denominar también estructuras de decisión o alternativas
Clasificación de las Estructuras Selectivas:
 Estructura Selectiva Simple
 Estructura Selectiva Doble
 Estructura Selectiva Anidada
 Estructura Selectiva Múltiple

ESTRUCTURA SELECTIVA SI SIMPLE

Este tipo de estructura evalúa una condición (expresión lógica) y de ser verdadera
ejecuta un bloque de instrucciones en caso contrario no hace absolutamente nada.

1. SU REPRESENTACIÓN EN EL DIAGRAMA DE FLUJO:

2. SU REPRESENTACIÓN EN EL PSEUDOCÓDIGO:
Si <condición> entonces
<acción 1>
<acción 2>

<acción n>
fin si

3. SU REPRESENTACIÓN EN LA CODIFICACION:
If monto>=300
{ d=monto*0.30; }
else
{ d=0; }

ESTRUCTURA SELECTIVA DOBLE

Este tipo de estructura presenta de igual forma una condición o (expresión lógica),

Universidad Nacional del Callao Pag.33

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 34

de ser verdadera esta condición, se ejecuta un bloque de instrucciones y en caso


contrario se ejecuta otro bloque distinto.
Se utiliza en la solución de problemas donde las alternativas se bifurcan en dos
posibilidades dependiendo de la condición evaluada.

1. SU REPRESENTACIÓN EN EL DIAGRAMA DE FLUJO:

2. SU REPRESENTACIÓN EN PSEUDOCÓDIGO:
Si <condición> entonces
<acción a>
<acción b>
sino
<acción x>
<acción y>
fin s
i
3. SU REPRESENTACIÓN EN LA CODIFICACION:
if <condición>
{ <acción a>;
<acción b>; }
else
{ <acción x>;
<acción y>;
}

Universidad Nacional del Callao Pag.34

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 35

EJERCICIOS PRACTICOS
a. Calcular el promedio de tres notas y determinar la situación académica del
alumno (Aprobado o Desaprobado)

public class Notas {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

//Declaracion de variables
float n1,n2,n3,prom;
String ea;

//Entrada
n1 = 12;
n2 = 16;
n3 = 10;

//Proceso
prom=(n1+n2+n3)/3;

if(prom>=10.5){
ea="Aprobado";
}
else{
ea="Desaprobado";
}

//Salida
System.out.println("El promedio del alumno es "+prom);
System.out.println("La Situacion academica del alumno es "+ea);
}

b. Calcular el total a pagar por un cliente, por la compra de n unidades de un


producto, tome en cuenta que la tienda piensa otorgar un descuento del 5% a
todos aquellos que compran a partir de 12 unidades. Mostrar el precio total, el
descuento y el precio con descuento.
public class Descuento {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//Declaracion de variables
double pu,cant,pt,pd,d;

//Entrada
pu=12.25;
cant=12;

//Proceso

Universidad Nacional del Callao Pag.35

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 36

pt=cant*pu;

if(cant>=12){
d=pt*0.05;
}
else{
d=0;
}
pd=pt-d;
//Salida
System.out.println("El Total es "+pt);
System.out.println("El descuento obtenido es "+d);
System.out.println("El Total con descuento es "+pd);
}

EJERCICIOS DE REFUERZO

EJEMPLO 1 -

//Ingrese 3 notas y luego calcular el promedio del alumno y su


// Situación académica
// Uso de if
//*********************************************************************************
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package semana8;

/**
*
* @author Pepe
*/
public class Notas {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

//Declaracion de variables
float n1,n2,n3,prom;
String ea;

//Entrada
n1 = 12;
n2 = 16;
n3 = 10;

//Proceso
prom=(n1+n2+n3)/3;

if(prom>=10.5){
ea="Aprobado";

Universidad Nacional del Callao Pag.36

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 37

}
else{
ea="Desaprobado";
}

//Salida
System.out.println("El promedio del alumno es "+prom);
System.out.println("La Situacion academica del alumno es "+ea);
}

EJEMPLO 2 -
// Calcular el total de la compra de n productos adquiridos, además
// considere que si el cliente compra a partir de 12 unidades la
// empresa le otorga un descuento del 5% del total
//*************************************************************************
***
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package ventas;

/**
*
* @author Pepe
*/
public class Descuento {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//Declaracion de variables
double pu,cant,pt,pd,d;

//Entrada
pu=12.25;
cant=12;

//Proceso
pt=cant*pu;

if(cant>=12){
d=pt*0.05;
}
else{
d=0;
}
pd=pt-d;
//Salida
System.out.println("El Total es "+pt);
System.out.println("El descuento obtenido es "+d);
System.out.println("El Total con descuento es "+pd);
}

Universidad Nacional del Callao Pag.37

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 38

EJEMPLO 3 - PROGRAMA DE EJEMPLO QUE USA LA ESTRUCTURA IF

// Ingresar dos números y determinar cuál de ellos es mayor y menor


//*********************************************************************************

package mayormenor;

/**
*
* @author Pepe
*/
public class Caso1 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//Declarar variables
int a,b,mayor,menor;
String r;

//Entrada
a=23;
b=12;

//Proceso
if (a>b) {
mayor=a;
menor=b;
} else {
mayor=b;
menor=a;
}

//Salida
System.out.println("El mayor es "+mayor);
System.out.println("El menor es "+menor);
}
}

EJEMPLO 4 - PROGRAMA DE EJEMPLO QUE USA LA ESTRUCTURA IF


//Calcular el promedio de 3 notas de práctica, sabiendo que el
profesor
//desea ayudar con la nota de la tercera practica aumentado 2 puntos
// a aquellos que tienen en la nota de la tercera practica de 10 a
18
//*************************************************************************
***
package caso2;

Universidad Nacional del Callao Pag.38

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 39

public class Promedio {


public static void main(String[] args) {
// TODO code application logic here
//Declarar Variables
double p1,p2,p3,p;
//entrada
p1=12;
p2=6;
p3=13;

//Proceso
if(p3>=10 && p3<=18){
p3=p3+2;
}
p=(p1+p2+p3)/3;

//Salida
System.out.println("El promedio del alumno es: "+p);
}
}

EJEMPLO 5 - PROGRAMA DE EJEMPLO QUE USA LA ESTRUCTURA IF


//Ingrese 3 valores y determinar cuál de ellos es el mayor y menor
// Uso de if
//*************************************************************************************
****
imp ortjavax.swing.
*;

p
u b
li
ccl
assCompa
ra{
p
u b
li
cst
at
icvoi
dmai
n(
Str
i
nga r
gs[
]
)
{
/
/DECLARACIONDEVARIABLES
i
nta,
b,
c,
ma y
or;

//
INGRESODEDAT OS-Estosdatossoncapt
ura
dosc omoStri
ng
St
rin
gaa=JOp
ti
onPane.
showInpu
tDial
og(
"I
ngr
esapr
imernúmero:"
);
St
rin
gbb=JOp
ti
onPane.
showInpu
tDial
og(
"I
ngr
esasegun
d onú
me r
o:")
;
St
rin
gcc=J
Opti
onPa
n e
.sho
wI np
utDial
og(
"I
ngr
esat
erce
rn úme
ro:")
;

/
/LOS DATOS RECEPCI
ONADOS DEBERAN SER CONVERTI
DOS Al TI
PO QUE
CORRESPONDEN
a=I
nt
eger.
par
seI
nt
(a
a);

Universidad Nacional del Callao Pag.39

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 40

b
=Int
eger
.
par
seI
nt
(bb
);
c
=In
tege
r.
par
seI
nt
(c
c);

/
/PROCESODEDAT
OS
i
f(a>
b&&a>c)
{ ma y
or=
a;}
i
f
(b>a&&b>c)
{ ma y
or=
b;}
i
f
(c>a&&c>b)
{ ma y
or=
c;}

i
f(
a<b&&a<c)
{ menor
=a;}
i
f(
b<a&&b<c)
{ menor
=b;}
i
f(
c<a&&c<b
)
{ menor
=c;}

//
SALIDADEINFORMACI
ON
Syst
em.ou
t.
pr
int
l
n("
Eln
úmer
oma
yore
s:"+ma
yor)
;
Syst
em.ou
t.
pr
int
l
n("
Eln
úmer
ome
nores
:"+men
or)
;
}
}

ESTRUCTURA SELECTIVA ANIDADA


Este tipo de estructura está formada por una serie de estructuras selectivas que se
encuentran inmersas unas dentro de otras.

Se utiliza para establecer una serie de condiciones jerárquicas desde lo más


genérico a lo más específico, sino se cumplen las primeras condiciones, no se
evalúan las siguientes.

1. SU REPRESENTACIÓN EN EL DIAGRAMA DE FLUJO:

Universidad Nacional del Callao Pag.40

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 41

2. SU REPRESENTACIÓN EN EL PSEUDOCÓDIGO:
Si <cond1> entonces
Si Cond1 es verdadero se realiza la acción
<acción a> a y la acción b y luego el flujo del
<acción b> programa sale de la estructura selectiva.
Sino Sino se cumple la Cond1, el flujo del
Si <cond2> entonces programa se dirigirá a evaluar la Cond2, si
esta se cumple solo se realizará la acción c
<acción c>
y la acción d y luego el flujo del programa
<acción d> saldrá de la estructura selectiva.
sino Sino Cond1 y la Cond2 no se cumple, el
Si <cond3> entonces flujo del programa se dirigirá a evaluar la
<acción e> Cond3, si esta se cumple solo se realizará
la acción e y acción f y luego el flujo del
<acción f>
programa saldrá de la estructura selectiva.
sino En el caso de no cumplirse Cond1, Cond2
<acción g> y Cond3, solo en ese caso se realizará la
<acción h> acción g y la acción h.
fin si
fin si
Fin si

3. SU REPRESENTACIÓN EN LA CODIFICACION:

If monto>=1000
{ d=monto*0.30; }
else
{ If (monto<1000 && monto>=500)
{ d=monto*0.20; }
else
{ If (monto<500 && monto>=200)

Universidad Nacional del Callao Pag.41

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 42

{ d=monto*0.10; }
else
{ d=0; }
}
}

El mismo caso anterior se puede representar de un modo más simplificado usando


el else if:

If monto>=1000 //Condicion inicial

{ d=monto*0.30; }
else if (monto<1000 && monto>=500) //Segunda condición sino se cumple el anterior

{ d=monto*0.20; }
else If (monto<500 && monto>=200) //Tercera condición sino se cumplen las anteriores

{ d=monto*0.10; }
else //En el caso de cumplirse ninguna de las anteriores

{ d=0; }

EJERCICIOS PRACTICOS: Codificar y Ejecutar Programas

PROGRAMA DE EJEMPLO QUE USA LA ESTRUCTURA IF


//Ingrese 3 valores y determinar cuál de ellos es el mayor y menor
// Uso de if
//*****************************************************************************************
imp ortjavax.swing.
*;

p
u b
li
ccl
assCompa
ra{
p
u b
li
cst
at
icvoi
dmai
n(
Str
i
nga r
gs[
]
)
{
/
/DECLARACIONDEVARIABLES
i
nta,
b,
c,
ma y
or;

//
INGRESODEDAT OS-Estosdatossoncapt
ura
dosc omoSt r
ing
St
rin
gaa=JOp
ti
onPane.
showInput
Di
a l
og(
"I
ngr
esapr
imernúmero: "
);
St
rin
gbb=JOp
ti
onPane.
showInput
Di
a l
og(
"I
ngr
esasegun
d onú
me r
o: ")
;
St
rin
gcc=J
Opti
onPa
n e
.sho
wI np
utDi
a l
og(
"I
ngr
esat
erce
rn úme
ro:");

/
/LOSDATOSRECEPCI
ONADOSDEBERANSERCONVERTI
DOSAlTI
POQUECORRESPONDEN
a=I
nt
eger.
par
seI
nt
(aa)
;
b=I
nt
eger.
par
seI
nt
(bb)
;
c
= I
nt
eger
.par
seI
nt
(cc
);

/
/
PROCESODEDAT
OS
i
f(
a>b&&a>c)
{ ma y
or=
a;}

Universidad Nacional del Callao Pag.42

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 43

i
f
(b>
a&&b>c)
{ may
or=
b;}

i
f
(c>
a&&c>b
)
{ mayo
r=c
;}

i
f(
a<b&&a<c)
{ me n
or=
a;}
i
f(
b<a&&b<c)
{ me n
or=
b;}

i
f(
c<a&&c<b)
{ me n
or=
c;}

//
SALIDADEINFORMACI
ON
Syst
em.ou
t.
pr
int
l
n("
Eln
úmer
oma
yore
s:"+ma
yor)
;
Syst
em.ou
t.
pr
int
l
n("
Eln
úmer
ome
nores
:"+men
or)
;
}
}

Universidad Nacional del Callao Pag.43

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 44

SEGUNDASEMANA – Marco Práctico

Objetivo del Trabajo:


Que el alumno se ejercite en la construcción de sus propios algoritmos
computacionales, utilizando estructuras condicionales.

Utilizando la metodología aprendida en clase, construya los algoritmos


computacionales para resolver los siguientes requerimientos:
1. Diseñe un programa que lea 3 números enteros y determine el número
intermedio.
2. Diseñe un programa que lea un número entero en el intervalo de 1 a 4,
correspondiente al estado civil de una persona, y determine el nombre del
estado civil: 1 para soltero, 2 para casado, 3 para viudo y 4 para divorciado. Si
el número no está en el intervalo de 1 a 4, imprima un mensaje de error. (Use
estructura condicional si).
3. A un trabajador le descuentan de su sueldo el 10%, si su sueldo es menor o
igual a 1000, si es por encima de 1000 y hasta 2000 el 5% del adicional (es
decir del monto que sobrepasa de 1000), y por encima de 2000 el 3% del
adicional (es decir del moto que sobrepasa de 2000). Calcular el descuento y
sueldo neto que recibe el trabajador dado su sueldo.
4. Diseñe un algoritmo que reciba dos números enteros A y B e incremente el
número A en el valor de B, si es que B es mayor que 100 pero menor que
200, en caso contrario no alterar el valor de A. Imprima luego el número A.
5. Una empresa desea adquirir cierta cantidad de unidades de un producto para
lo cual cuenta con la oferta de dos proveedores A y B, tal como se explica a
continuación:
Proveedor A: Costo unitario igual a S/. 25 y 15% de descuento para
más de 50 unidades adquiridas.
Proveedor B: Costo unitario igual a S/. 27.5 y 10% de descuento para
más de 35 unidades adquiridas.
6. Hacer un programa que muestre el mensaje de acuerdo la edad ingresada: Si
la edad es de 0 a 10 años “niño”, si la edad es de 11 a 14 años “púber”, si la
edad es de 15 a 18 años “adolescente”, si la edad es de 19 a 25 años “joven”,
si la edad es de 26 a 65 años “adulto”, si la edad es mayor de 65 “anciano”.

Universidad Nacional del Callao Pag.44

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 45

7. Dadas 3 longitudes, es decir mediante un mensaje si forman un triangulo:


equilátero, isósceles o escaleno, o no forman triangulo (cada lado tiene que
ser menos que la suma de los otros dos)
8. Diseñe un programa que recepcione el mes en número (1 a 12) y devuelve a
cambio el nombre del mes y la cantidad de días que contiene dicho mes.
(Utilice estructura switch).
9. En una elección democrática a la presidencia de un club participan Jaime,
Daniel y Gladys. Para ganar la elección se requiere obtener la mitad de los
votos emitidos más uno. En caso de no haber un ganador pasan a una
segunda vuelta los candidatos que alcanzaron los dos primeros puestos o se
anula la elección si hay empate entre los tres o si hay empate por el segundo
puesto. 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.
10. Una compañía cobra a sus clientes el primer día de cada mes:
a. Si el cliente paga dentro de los primeros diez días del mes, obtiene un
descuento de $5 o del 2% de la deuda dependiendo de cuál sea el
mayor.
b. Si el cliente paga en los siguientes diez días no tiene derecho a ningún
descuento, deberá pagar exactamente la suma adeudada.
c. Si el cliente paga dentro de los restantes días del mes, tendrá un
recargo de $10 o del 3% de la deuda dependiendo de cuál sea el
mayor.
Diseñe un programa que determine cuanto debe pagar un cliente en un mes
dado.

Nota:
 Esfuérzate por hacer tu mismo este trabajo, es importante que lo
COMPRUEBES en Java. No olvidar que se entrega el informe de este trabajo
en un folder y también el disquete o CD. (Leer forma de presentación según
aparece en la Diapositiva de la Semana 1).
 Si alguno de sus compañeros no tiene esta guía de práctica, reenvíenlo a su
correo.

Universidad Nacional del Callao Pag.45

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 46

TERCERA SEMANA – Marco Teórico

Logro
Diferencia y determina cuando utilizar la estructura condicional PARA en
la construcción de sus programas.

Resumen
La estructura FOR o PARA es una estructura repetitiva, esta estructura
trabaja con una variable índice que parte de un valor inicial y que en cada
vuelta automáticamente va incrementándose en 1 (a no ser que se
indique lo contrario), termina el ciclo de vueltas luego que el valor de la
variable índice haya llegado hasta el límite superior

PROGRAMACION MODULAR: ESTRUCTURAS REPETITIVAS


ESTRUCTURA REPETITIVA: FOR

En muchas ocasiones se conoce de antemano el número de veces que se desean


ejecutar las acciones de un bucle. En estos casos en los que el número de
iteraciones es fijo, se debe usar la estructura desde o para (for en inglés).

La estructura para ejecuta las acciones del cuerpo del bucle un número especificado
de veces y de modo automático controla el número de iteraciones o pasos a través
del cuerpo del bucle.

Esta estructura realiza una serie de ciclos repetitivos de acuerdo al valor del índice
de vueltas, en cada vuelta el valor del índice puede incrementarse o decrementarse
ya sea de uno en uno o de acuerdo a otro intervalo que se especifique.

1. REPRESENTACIÓN DE LA ESTRUCTURA PARA EN EL DIAGRAMA DE FLUJO

PARA I de 1 a N Esta estructura permite


repetir el bucle de
instrucciones, de 1 a N
Instrucción A veces, luego de cumplirse
las n vueltas, se procederán
a ejecutarse las instrucciones
que se encuentran después
Instrucción B

La variable I va incrementando sus


valores automáticamente, siendo
Instrucción N estos: 1,2,3,… N

Esta estructura permite repetir el


bucle de instrucciones, de N a 1
veces, luego de cumplirse las n
Universidad Nacional del Callao Pag.46
vueltas, se procederán a ejecutarse las
instrucciones que se encuentran
Descargado por BRUCE LLANOS ([email protected])
después del bucle.
lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 47

PARA I de N
a1

Instrucción A

Instrucción B
La variable I va decrementado sus
valores automáticamente, siendo
Instrucción N estos: N,….,,3,2,1

Esta estructura permite repetir el


PARA I de 2 bucle de instrucciones, de 2 a N
a N paso 2 veces, donde en cada vuelta el
valor de I se irá incrementando de
2 en 2.

Instrucción A

Instrucción B
B
u

e
c
l

La variable I va decrementado
sus valores automáticamente,
Instrucción N siendo estos: 2,4,6,8,…N

2. SU REPRESENTACION EN PSEUDOCODIGO

Para I de 1 a N veces Para I de N a 1 veces


Instrucción A Instrucción A
Instrucción B
Instrucción B
:
: Instrucción N
Instrucción N Fin Para
Fin Para Instrucción X
Instrucción X Instrucción Y
Instrucción Y

3. SU REPRESENTACION EN LA CODIFICACION

Universidad Nacional del Callao Pag.47

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 48

Ejemplo 1 – for – con índice de incremento


int cuenta=0;int i=0;
for(i=1;i<=6;i++)
{ If (i%2==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de vueltas”);
System.out.println(cuenta);

Ejemplo 2 – for – con el índice en decremento


int cuenta=0;int i=0;
for(i=6;i>=1;i--)
{ If (i%2==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de vueltas”);
System.out.println(cuenta);

Ejemplo 3 – for – Con el índice en incremento de 2


int cuenta=0; int i=0;
for(i=2;i<=30;i+=2)
{ If (i%10==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de vueltas”);
System.out.println(cuenta);

EJERCICIOS DE REFUERZO

CASO 1
Evaluar los primeros 100 números naturales y mostrar únicamente a aquellos son
múltiplos de 5, sumarlos y promediarlos.

// El siguiente programa: evalúa en los primeros 100 números naturales y


// muestra solo aquellos que son múltiplos de 5, los suma y promedia
public class Caso1 {
public static void main(String arg[])
{ int i; double acu=0; double cta=0;
for(i=1;i<=100;i++)
{ if (i%5==0) // Si no es múltiplo de 5

Universidad Nacional del Callao Pag.48

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 49

{ System.out.println(i);
cta++; // Es igual que cta=cta+1 - Es un contador
acu+=i; // Es igual que acu=acu+i - Es un acumulador
}
}
double prom=acu/cta;
System.out.println("El valor acumulado es: "+ acu);
System.out.println("El promedio acumulado es: "+ prom);
}
}

CASO 2
Evaluar los primeros 100 números naturales y mostrar únicamente a aquellos son
múltiplos de 3 ó de 5, pero no de ambos

// El siguiente programa: evalúa en los primeros 100 números naturales y


// muestra solo aquellos que son múltiplos de 3 ó 5, pero no de ambos
public class Caso2 {
public static void main(String[] args) {
int i=0;int cta=0;
for(i=1;i<=100;i++)
{
if(((i%3==0)||(i%5==0)) && !((i%3==0)&&(i%5==0)))
{
System.out.println(i);
cta++;
}
}
System.out.println(cta +" Números cumplen con esta condición entre el rango de 1 a 100");
}
}

CASO 3
Evaluar los primeros 100 números naturales y mostrar únicamente a aquellos son
capicúas (que al invertirse siguen siendo el mismo número)

// El siguiente programa: evalúa en los primeros 100 números naturales y


// muestra solo aquellos números capicúas
public class Capicua {
public static void main(String[] args) {
int i;int n;

Universidad Nacional del Callao Pag.49

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 50

for(i=1;i<=999;i++)
{
int c=(int)i/100; // Se descompone la Centena
int r1=i%100;
int d=(int)r1/10; // Se descompone la Decena
int u=r1%10; // Se descompone la Unidad

if((i>=10)&&(i<=99))
{ if(d==u)
{ System.out.println(i); }
}
else
{ if((i>=100)&&(i<=999))
{ if(c==u)
{ System.out.println(i); }
}
}
} //Fin del for
} // Fin del main
} // fin de la clase

Universidad Nacional del Callao Pag.50

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 51

ESTRUCTURA REPETITIVA WHILE (Mientras)

INTRODUCCION:
Las computadoras están especialmente diseñadas para todas aquellas aplicaciones
en las cuales una operación o conjunto de ellas deben repetirse muchas veces. Un
tipo muy importante de estructura, es el algoritmo necesario para repetir una o varias
acciones un número determinado de veces. Las estructuras que repiten una
secuencia de instrucciones un número determinado de veces se denominan bucles,
y se llama iteración al hecho de repetir la ejecución de una secuencia de acciones.

DEFINICIÓN
La estructura repetitiva mientras (en inglés while o do while: hacer mientras) es
aquella en que el cuerpo del bucle se repite mientras se cumple una determinada
condición.

Cuando se ejecuta la instrucción Mientras la primera cosa que sucede es que se


evalúa la condición (una expresión lógica). Si se evalúa falsa, ninguna acción se
toma y el programa prosigue con las instrucciones que se encuentran fuera del
bucle. Si la expresión es verdadera, entonces se ejecuta el cuerpo del bucle,
después de lo cual se evalúa de nuevo la expresión lógica. Este proceso se repite
una y otra vez mientras la expresión lógica (condición) sea verdadera.

Este tipo de estructura es utilizada cuando se necesita la estructura repetitiva, mas


no se conoce con exactitud la cantidad de iteraciones del bucle, pues la cantidad de
repeticiones dependerá de si se sigue cumpliendo la condición principal del bucle.

1. REPRESENTACIÓN EN EL DIAGRAMA DE FLUJO

No
Condici
ón

S
Instrucción A
Instrucción X

i
Instrucción Y
Instrucción B

Instrucción N

Universidad Nacional del Callao Pag.51

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 52

2. SU REPRESENTACION EN EL PSEUDOCÓDIGO

Mientras <Condición>
Instrucción A
Instrucción B
.
.
.
Instrucción N
Fin Mientras
Instrucción X
Instrucción Y

SU REPRESENTACION EN LA CODIFICACION

while (condición)
{ instrucción A;
instrucción B;

instrucción N;
}
Instrucción X;
Instrucción Y;

EJERCICIOS PRACTICOS: Codificar y ejecutar programas

DO WHILE – Ejemplo 1
// PROGRAMA QUE CALCULA EL FACTORIAL DE UN NUMERO
//*****************************************************************************************
import javax.swing.*;
public class Factorial {

public static void main(String[] args) {


//DECLRACION DE VARIABLES
int n,f,i;

//INGRESO DE DATOS
String nn=JOptionPane.showInputDialog("Ingrese un número: ");

//CONVERSION DE DATOS
n=Integer.parseInt(nn);
f=1; //Inicializamos el acumulador de productos

Universidad Nacional del Callao Pag.52

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 53

i=1; //Inicializamos el contador en 1

while(i<=n)
{
f=f*i;
i=i+1;
}
System.out.println("El factorial es :"+f);
}
}

CONTADORES Y ACUMULADORES

CONTADOR
Los procesos repetitivos son la base del uso de las computadoras. En estos
procesos se necesitan normalmente contar los sucesos o acciones internas del
bucle, como pueden ser los elementos de una lista. Una manera de controlar un
bucle es mediante un contador. Un contador es una variable cuyo valor se
incrementa o decrementa en una cantidad constante en cada iteración.

INICIO

La variable contador
se inicializa
CONT=1

Muestra el valor de
CONT
NO
CONT<=
5

SI
Mostrar
Cuerpo del Bucle CONT

CONT=CONT+1
FIN

La variable contador se
incrementa en 1 por cada
vuelta.

Universidad Nacional del Callao Pag.53

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 54

ACUMULADOR

INICIO

CONT=1

SUMA=0

NO
CONT<=
5

SI

Leer Valor
FIN

CONT=CONT+1

SUMA=SUMA+Valor

Un acumulador o totalizador es una variable cuya misión es almacenar cantidades


variables resultantes de sumas sucesivas. Realiza la misma función que un
contador, con la diferencia de que el incremento o decremento de cada suma es
variable en lugar de constante, como en el caso del contador.
Se representa por la instrucción S=S+N, donde N es una variable y no una
constante.

EJERCICIOS PRACTICOS: Codificar y ejecutar programas


//*******************************************************************************************
//* Realizar un programa que solicite un número
//* y devuelva su mcm
//*******************************************************************************************
import javax.swing.*;
public class mcm {
public static void main(String[] args) {
//DECLRACION DE VARIABLES
int a,b,c,mcm;
//INGRESO DE DATOS
String aa=JOptionPane.showInputDialog("Ingrese 1er. número: ");
String bb=JOptionPane.showInputDialog("Ingrese 2do. número: ");

//CONVERSION DE DATOS
a=Integer.parseInt(aa);

Universidad Nacional del Callao Pag.54

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 55

b=Integer.parseInt(bb);
c=2;
mcm=1;
while(a>1 || b>1)
{ if (a%c==0 && b%c==0)
{ a=a/c;
b=b/c;
mcm=mcm*c; }
else
{ if (a%c==0)
{ a=a/c;
mcm=mcm*c; }
else
{ if b%c==0
{ b=b/c;
mcm=mcm*c; }
else
{ c=c+1; }
}
}
}
System.out.println(“El mcm de los números ingresados es: “ + mcm);
} }

OTRO EJEMPLO USANDO LA ESTRUCTURA WHILE


//*******************************************************************************************
//* Genere los primeros 50 números de la serie Fibonnacci
//*******************************************************************************************
import javax.swing.*;
public class Fibonnacci {
public static void main(String[] args) {
//DECLRACION DE VARIABLES
int a,b,c,n;
while(n<48)
{ c=a+b;
a=b;
b=c;
System.out.print(c);
n=n+1;
}
}
}
OTRO EJEMPLO UTILIZANDO LA ESTRUCTURA WHILE

Universidad Nacional del Callao Pag.55

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 56

//*******************************************************************************************
//* Hacer un programa que solicite un número natural diferente
//* a cero y mostrar: La cantidad de divisores y la suma de los
//* mismos.
//*******************************************************************************************
import javax.swing.*;
public class Divisores {
public static void main(String[] args) {
//DECLRACION DE VARIABLES
int n,a,c,d;
//INGRESO DE DATOS
String nn=JOptionPane.showInputDialog("Ingrese un número: ");

//CONVERSION DE DATOS
n=Interger.parseInt(nn);
//PROCESO DE DATOS
a=0;
c=1;
d=0;
while(c<=n)
{ if(n%c==0)
{ a=c+a;
d=d+1;
}
c=c+1;
}
System.out.println("La cantidad total de divisores que tiene este número es:" + d);
System.out.println("La suma total de los divisores de este número es: "+ a);
}
}

Universidad Nacional del Callao Pag.56

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 57

TERCERA SEMANA – Marco Práctico

Realice los siguientes programas en Java utilizando la estructura para

1. Elabore un programa que visualice una lista de números del 100 al 50


2. Modifique el programa anterior con la finalidad de que muestre dentro del
rango de 100 a 50, a los números pares allí comprendidos. (No emplee la
estructura if).
3. Vuelva el programa a como quedo, luego de terminar el caso 1. Muestre
dentro del rango de 100 a 50 los números que son múltiplos de 5 y de 3 a la
vez. (Si su programa esta correcto, visualizará 90,75,60).
4. Elabore un programa que visualice una lista de números del 1 al 20
5. Modifique el programa anterior con la finalidad de que cuente cuantos
números son múltiplos de 5 y de 2 al mismo tiempo, dentro del rango del 1 al
20. Luego muestre la respuesta.
6. Calcule la suma y el promedio de los primeros 15 números naturales.
7. Desarrollar un programa que determine en un conjunto de cien número
naturales:
a. ¿Cuántos son menores de 15?
b. ¿Cuántos son mayores de 50?
c. ¿Cuántos están comprendidos entre 25 y 45?
8. Escribir un programa que calcule independientemente la suma de los
números pares e impares comprendidos entre 1 y 200
9. Escribir un programa que calcule y visualice la suma y el producto de los
números pares comprendidos entre 20 y 30, ambos inclusive.
10. Calcular la suma de los cuadrados de los cien primeros números naturales
11. Sumar los números pares del 2 al 100 e imprimir su valor
12. Calcular el promedio de cincuenta números e imprimir su resultado
13. Recibir N números enteros, contar cuantos números pares e impares se
ingresaron.
14. Ingresar 10 notas de alumnos e imprimir al final cuantos aprobados y
desaprobados existen.

Universidad Nacional del Callao Pag.57

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 58

CUARTA SEMANA – Marco Teórico

Logro
Que el alumno aplique el uso de funciones de usuario para establecer modulos
que contengan una librería de funciones que puedan ser invocadas por el resto del
sistema.

Resumen
Función de Usuario: Es un procedimiento anexo a nuestro programa
encargado de realizar una proceso específico, al cual podemos invocar
tantas veces sea necesario.

Estructura de Datos y Arreglos

IMPORTANCIA DE LAS ESTRUCTURAS DE DATOS:

Dentro del trabajo del procesamiento de datos, se hace necesario trabajar con
conjunto de datos, por ejemplo:

• Calcular el promedio de las edades de los alumnos del 3er. Ciclo de la


Carrera de Ingeniería de Sistemas.
• Buscar el máximo promedio alcanzado por los alumnos de la asignatura de
Algoritmos y Estructura de Datos I.
• Sumar las ventas obtenidas durante el día de hoy.

CLASIFICACIÓN DE LAS ESTRUCTURAS DE DATOS

1) Estructura de datos Estáticas


a) Arreglos Unidimensionales
b) Arreglos Multidimensionales

2) Estructura de datos Dinámicas


a) Listas Enlazadas
b) Pilas
c) Colas
d) Arboles
e) Conjuntos
f) Grafos
g) Tablas Hash

Durante este semestre nos ocuparemos de las estructuras de datos estáticas,


veamos en qué consiste este tipo de estructuras:

Universidad Nacional del Callao Pag.58

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 59

DATOS ESTRUCTURADOS ESTÁTICOS


Las estructuras de datos de tipo estático son aquellas que presentan estructuras
fijas y predeterminadas.

A este tipo de estructuras de datos se les conocen como arreglos y se clasifican de


la siguiente forma:
• Arreglo Unidimensional (Vectores)
• Arreglo Multidimensional (Matrices)

¿Qué es un Arreglo?
Un Arreglo es una estructura de datos que almacena bajo el mismo nombre
(variable) a una colección de datos del mismo tipo.

Los arreglos se caracterizan por:


 Almacenan los elementos en posiciones contiguas de memoria
 Tienen un mismo nombre de variable que representa a todos los elementos.
Para hacer referencia a esos elementos es necesario utilizar un índice que
especifica el lugar que ocupa cada elemento dentro del archivo.

Arreglo Unidimensional
• Un arreglo unidimensional es un tipo de dato estructurado que está formado de una colección
finita y ordenada de datos del mismo tipo.
• El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos
acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o
posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su
posición relativa.

EDAD 12 18 22 25 23
Índice 0 1 2 3 4

Aquí podemos observar un arreglo unidimensional con las siguientes características:


- Longitud: 5 Elementos
- Primera posición: 0
- Última posición: Longitud-1
Nombre del Arreglo: EDAD
Asignar datos a las posiciones de un arreglo: Obtener datos del arreglo:
EDAD[1] = 18 x=EDAD[2]
EDAD[2] = 22 y=EDAD[3]
Llenado de un Vector
EDAD[3] = 25 z=EDAD[4]

CARGAR Y VISUALIZAR UN ARREGLO UTILIZANDO POO EN JAVA SWING

Caso Práctico: Realizar una aplicación que cargue datos a un arreglo


unidimensional y que luego los muestre.

Universidad Nacional del Callao Pag.59

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 60

LOGICA DE PRESENTACIÓN: Interface de Usuario


frmArreglos

LÓGICA DE NEGOCIOS
public class Arreglos {

//Propiedades
public double[] ventas;

//Método
public void cargardatos(double dato,int pos){
ventas[pos]=dato;
}

//Método
public double mostrarUnDato(int pos){
return ventas[pos];
}

//Método
public String mostrarTodoslosDatos(int n){
int i;
String acu="";
for(i=0;i<=n-1;i++)
{ acu=acu+ventas[i]+"\n"; }
return acu;
}

//Método constructor

Universidad Nacional del Callao Pag.60

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 61

public Arreglos(){
//Se ejecuta cuando ocurre una instancia
ventas=new double[100];
}
}

CODIFICACIÓN EN EL FORMULARIO
Previamente debe declararse los siguientes objetos:
public class frmArreglos extends javax.swing.JFrame {
Arreglos obj; //Objeto que servirá para la instancia
public int n; //Variable Global que controla la longitud
/** Creates new form frmArreglos */
public frmArreglos() {
obj=new Arreglos(); //Instancia de la clase
initComponents();
}

Nota: Las líneas que están en letras distintas, son aquellas deben agregarse en la
parte inicial de la codificación del formulario.

BOTON CARGAR DATOS


private void btnCargarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
double dato;
int i;
n=Integer.parseInt(JOptionPane.showInputDialog("¿Cuántos datos desea ingresar?"));

for(i=0;i<=n-1;i++){
dato=Double.parseDouble(JOptionPane.showInputDialog("Introduzca dato para ventas["+i+"]"));
obj.cargardatos(dato, i);
}
}

BOTON MOSTRAR DATOS


private void btnMostrarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
txtlista.setText(obj.mostrarTodoslosDatos(n));
}

CUARTA SEMANA – Marco Práctico

Durante esta semana, no se han programado trabajos domiciliarios, a fin de que los
alumnos puedan dedicarse exclusivamente para prepararse para la 1ra. Practica
Calificada de la próxima semana.

Universidad Nacional del Callao Pag.61

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 62

III. BIBLIOGRAFIA

Autor Titulo Edición Año


Fundamentos De
JOYANES Programación. Libro De
Mcgraw-hill
AGUILAR, Luis Problemas. Algoritmos, 2003
Estructuras De Datos
D. Camacho, J.M. 1ª edición, Prentice-Hall,
Programación, Algoritmos y
Valls, J. García, J.M. 2003
Ejercicios resueltos en Java".
Molina, E. Bueno.

IV. AUTOEVALUACION PARA LA UNIDAD

1. ¿Cuál es la utilidad de la estructura FOR

2. ¿Cómo se representa la estructura FOR en el diagrama de flujo?

3. ¿Cómo se representa la estructura FOR en el Pseudocódigo?

4. ¿Cómo se representa la estructura FOR en la codificación Java?


5. ¿Qué representa el siguiente código?

int cuenta=0;int i=0;


for(i=1;i<=6;i++)
{ If (i%2==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de vueltas”);
System.out.println(cuenta);

6. ¿Qué representa el siguiente código?

int cuenta=0;int i=0;


for(i=6;i>=1;i--)
{ If (i%2==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de vueltas”);
System.out.println(cuenta);

7. ¿Qué representa el siguiente código?


int cuenta=0; int i=0;
for(i=2;i<=30;i+=2)

Universidad Nacional del Callao Pag.62

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 63

{ If (i%10==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de vueltas”);
System.out.println(cuenta);

8. ¿Qué representa el siguiente código?


int i; double acu=0; double cta=0;
for(i=1;i<=100;i++)
{ if (i%5==0) // Si no es múltiplo de 5
{ System.out.println(i);
cta++; // Es igual que cta=cta+1 - Es un contador
acu+=i; // Es igual que acu=acu+i - Es un acumulador
}
}

9. ¿Qué representa el siguiente código?


public static void main(String arg[])
{ int i; double acu=0; double cta=0;
for(i=1;i<=100;i++)
{ if (i%5==0) // Si no es múltiplo de 5
{ System.out.println(i);
cta++; // Es igual que cta=cta+1 - Es un contador
acu+=i; // Es igual que acu=acu+i - Es un acumulador
}
}
double prom=acu/cta;
System.out.println("El valor acumulado es: "+ acu);
System.out.println("El promedio acumulado es: "+ prom);
}

10. ¿Qué representa el siguiente código?


int i=0;int cta=0;
for(i=1;i<=100;i++)
{
if(((i%3==0)||(i%5==0)) && !((i%3==0)&&(i%5==0)))
{
System.out.println(i);
cta++;
}
}

Universidad Nacional del Callao Pag.63

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 64

11. ¿Qué representa el siguiente código?


public static void main(String[] args) {
int i=0;int cta=0;
for(i=1;i<=100;i++)
{
if(((i%3==0)||(i%5==0)) && !((i%3==0)&&(i%5==0)))
{
System.out.println(i);
cta++;
}
}
System.out.println(cta +" Números cumplen con esta condición entre el rango de 1 a 100");
}

12. ¿Qué representa el siguiente código?

int i;int n;
for(i=1;i<=999;i++)
{
int c=(int)i/100; // Se descompone la Centena
int r1=i%100;
int d=(int)r1/10; // Se descompone la Decena
int u=r1%10; // Se descompone la Unidad

if((i>=10)&&(i<=99))
{ if(d==u)
{ System.out.println(i); }
}
else
{ if((i>=100)&&(i<=999))
{ if(c==u)
{ System.out.println(i); }
}
}
} //Fin del for
} // Fin del main

13. ¿En qué consiste la estructura repetitiva While?

14. ¿Por qué deben utilizarse las estructuras repetitivas?

15. Cuál es la representación de la estructura while en el diagrama de flujo

Universidad Nacional del Callao Pag.64

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 65

16. Cuál es la representación de la estructura while en el pseudocódigo

17. Cuál es la representación de la estructura while en Java

18. ¿Qué representa la siguiente estructura?


f=1; //Inicializamos el acumulador de productos
i=1; //Inicializamos el contador en 1

while(i<=n)
{ f=f*i;
i=i+1;
}
System.out.println("El factorial es :"+f);

19. Convierta el código anterior a FOR

20. ¿Qué es un contador?

21. ¿Cuál es la representación de un contador en el diagrama de flujo?

22. ¿Qué es un acumulador?

23. ¿Cuál es la representación de un acumulador en el diagrama de flujo?

24. ¿Qué representa el siguiente código?

public static void main(String[] args) {


//DECLRACION DE VARIABLES
int a,b,c,mcm;
//INGRESO DE DATOS
String aa=JOptionPane.showInputDialog("Ingrese 1er. número: ");
String bb=JOptionPane.showInputDialog("Ingrese 2do. número: ");

//CONVERSION DE DATOS
a=Integer.parseInt(aa);
b=Integer.parseInt(bb);

c=2;
mcm=1;
while(a>1 || b>1)
{ if (a%c==0 && b%c==0)
{ a=a/c;

Universidad Nacional del Callao Pag.65

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 66

b=b/c;
mcm=mcm*c; }
else
{ if (a%c==0)
{ a=a/c;
mcm=mcm*c; }
else
{ if b%c==0
{ b=b/c;
mcm=mcm*c; }
else
{ c=c+1; }
}
}
}
System.out.println(“El mcm de los números ingresados es: “ +
mcm);
}
}

25. ¿Qué representa el siguiente código?


public static void main(String[] args) {
//DECLRACION DE VARIABLES
int a,b,c,n;

while(n<48)
{ c=a+b;
a=b;
b=c;
System.out.print(c);
n=n+1;
}
}

V. RESOLUCION DEL CUESTIONARIO

1. ¿Cuál es la utilidad de la estructura FOR


En muchas ocasiones se conoce de antemano el número de veces que se
desean ejecutar las acciones de un bucle. En estos casos en los que el número
de iteraciones es fijo, se debe usar la estructura desde o para (for en inglés).

La estructura para ejecuta las acciones del cuerpo del bucle un número

Universidad Nacional del Callao Pag.66

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 67

especificado de veces y de modo automático controla el número de iteraciones o


pasos a través del cuerpo del bucle.

Esta estructura realiza una serie de ciclos repetitivos de acuerdo al valor del
índice de vueltas, en cada vuelta el valor del índice puede incrementarse o
decrementarse ya sea de uno en uno o de acuerdo a otro intervalo que se
especifique.

2. ¿Cómo se representa la estructura FOR en el diagrama de flujo?

Esta estructura permite


repetir el bucle de
PARA I de 1 a N instrucciones, de 1 a N
veces, luego de cumplirse
las n vueltas, se procederán
a ejecutarse las instrucciones
Instrucción A
que se encuentran después

La variable I va incrementando sus


Instrucción B
valores automáticamente, siendo
estos: 1,2,3,… N

Instrucción N

3. ¿Cómo se representa la estructura FOR en el Pseudocódigo?

Para I de 1 a N veces Para I de N a 1 veces


Instrucción A Instrucción A
Instrucción B Instrucción B
: :
Instrucción N
Instrucción N
Fin Para
Fin Para Instrucción X
Instrucción X Instrucción Y
Instrucción Y

4. ¿Cómo se representa la estructura FOR en la codificación Java?


int cuenta=0;int i=0;
for(i=1;i<=6;i++)
{ If (i%2==0)
{ cuenta=cuenta+1; }
}

Universidad Nacional del Callao Pag.67

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 68

System.out.print(“La estructura FOR dio la siguiente cantidad de vueltas”);


System.out.println(cuenta);

5. ¿Qué representa el siguiente código?

int cuenta=0;int i=0;


for(i=1;i<=6;i++)
{ If (i%2==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de vueltas”);
System.out.println(cuenta);

R. Esta rutina se realiza 6 veces y evalúa entre los números del 1 al 6 y


cuenta cuantos números son divisibles entre dos.

6. ¿Qué representa el siguiente código?

int cuenta=0;int i=0;


for(i=6;i>=1;i--)
{ If (i%2==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de
vueltas”);
System.out.println(cuenta);

R. Esta rutina se realiza 6 veces y evalúa entre los números del 1 al 6 y


cuenta cuantos números son divisibles entre dos. (El índice de vueltas se
hace de modo inverso de 6 a 1).

7. ¿Qué representa el siguiente código?


int cuenta=0; int i=0;
for(i=2;i<=30;i+=2)
{ If (i%10==0)
{ cuenta=cuenta+1; }
}
System.out.print(“La estructura FOR dio la siguiente cantidad de
vueltas”);
System.out.println(cuenta);

R. Esta rutina se realiza 15 veces y evalúa entre los números del 2 al 30 y


cuenta cuantos números son divisibles entre 10. (El índice de vueltas se hace
de dos en dos de manera decreciente).

Universidad Nacional del Callao Pag.68

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 69

8. ¿Qué representa el siguiente código?


int i; double acu=0; double cta=0;
for(i=1;i<=100;i++)
{ if (i%5==0) // Si no es múltiplo de 5
{ System.out.println(i);
cta++; // Es igual que cta=cta+1 - Es un contador
acu+=i; // Es igual que acu=acu+i - Es un acumulador
}
}

R. Esta rutina se realiza 100 veces y evalúa entre los números del 1 al 100 y
cuenta cuantos números son divisibles entre cinco y acumula la suma de los
números del 1 al 100. (El índice de vueltas se hace de modo decreciente de 1
a 100).

9. ¿Qué representa el siguiente código?


public static void main(String arg[])
{ int i; double acu=0; double cta=0;
for(i=1;i<=100;i++)
{ if (i%5==0) // Si no es múltiplo de 5
{ System.out.println(i);
cta++; // Es igual que cta=cta+1 - Es un contador
acu+=i; // Es igual que acu=acu+i - Es un acumulador
}
}
double prom=acu/cta;
System.out.println("El valor acumulado es: "+ acu);
System.out.println("El promedio acumulado es: "+ prom);
}

R. Esta rutina se realiza 100 veces y evalúa entre los números del 1 al 100 y
cuenta cuantos números son divisibles entre cinco y acumula la suma de los
números del 1 al 100. Luego calcula el promedio de los números incluidos en
la serie numérica del 1 al 100. (El índice de vueltas se hace de modo
decreciente de 1 a 100).

10. ¿Qué representa el siguiente código?


int i=0;int cta=0;
for(i=1;i<=100;i++)
{
if(((i%3==0)||(i%5==0)) && !((i%3==0)&&(i%5==0)))
{
System.out.println(i);
cta++;
}
}

Universidad Nacional del Callao Pag.69

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 70

R. Esta rutina se realiza 100 veces y evalúa entre los números del 1 al 100 y
cuenta cuantos números son divisibles entre 3 ó 5 y no de ambos y muestra y
cuenta los divisores que cumplen con dicho código. (El índice de vueltas se
hace de modo decreciente de 1 a 100).

11. ¿Qué representa el siguiente código?


public static void main(String[] args) {
int i=0;int cta=0;
for(i=1;i<=100;i++)
{
if(((i%3==0)||(i%5==0)) && !((i%3==0)&&(i%5==0)))
{
System.out.println(i);
cta++;
}
}
System.out.println(cta +" Números cumplen con esta condición entre el rango de 1 a 100");
}

R. Esta rutina se realiza 100 veces y evalúa entre los números del 1 al 100 y
cuenta cuantos números son divisibles entre 3 ó 5 y no de ambos y muestra y
cuenta los divisores que cumplen con dicho código. (En este caso no la forma
diferente de establecer la condición).

12. ¿Qué representa el siguiente código?

int i;int n;
for(i=1;i<=999;i++)
{
int c=(int)i/100; // Se descompone la Centena
int r1=i%100;
int d=(int)r1/10; // Se descompone la Decena
int u=r1%10; // Se descompone la Unidad

if((i>=10)&&(i<=99))
{ if(d==u)
{ System.out.println(i); }
}
else
{ if((i>=100)&&(i<=999))
{ if(c==u)
{ System.out.println(i); }
}
}
} //Fin del for
} // Fin del main

R. Esta rutina se realiza 999 veces y evalúa entre los números del 1 al 999 y
cuenta cuantos números son capicúas.

Universidad Nacional del Callao Pag.70

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 71

13. ¿En qué consiste la estructura repetitiva While?


La estructura repetitiva mientras (en inglés while o do while: hacer mientras)
es aquella en que el cuerpo del bucle se repite mientras se cumple una
determinada condición.

Cuando se ejecuta la instrucción Mientras la primera cosa que sucede es que


se evalúa la condición (una expresión lógica). Si se evalúa falsa, ninguna
acción se toma y el programa prosigue con las instrucciones que se
encuentran fuera del bucle. Si la expresión es verdadera, entonces se ejecuta
el cuerpo del bucle, después de lo cual se evalúa de nuevo la expresión
lógica. Este proceso se repite una y otra vez mientras la expresión lógica
(condición) sea verdadera.

14. ¿Por qué deben utilizarse las estructuras repetitivas?


Las computadoras están especialmente diseñadas para todas aquellas
aplicaciones en las cuales una operación o conjunto de ellas deben repetirse
muchas veces. Un tipo muy importante de estructura, es el algoritmo
necesario para repetir una o varias acciones un número determinado de
veces. Las estructuras que repiten una secuencia de instrucciones un número
determinado de veces se denominan bucles, y se llama iteración al hecho de
repetir la ejecución de una secuencia de acciones.

15. Cuál es la representación de la estructura while en el diagrama de flujo

No
Condici
ón

S
Instrucción A
Instrucción X

i
Instrucción Y
Instrucción B

Instrucción N

16. Cuál es la representación de la estructura while en el pseudocódigo

Mientras <Condición>

Universidad Nacional del Callao Pag.71

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 72

Instrucción A
Instrucción B
.
.
.
Instrucción N
Fin Mientras
Instrucción X
Instrucción Y

17. Cuál es la representación de la estructura while en Java

while (condición)
{ instrucción A;
instrucción B;

instrucción N;
}

18. ¿Qué representa la siguiente estructura?

f=1; //Inicializamos el acumulador de productos


i=1; //Inicializamos el contador en 1

while(i<=n)
{ f=f*i;
i=i+1;
}
System.out.println("El factorial es :"+f);

R. Esta rutina calcula el factorial de n, para ello utiliza un acumulador de


productos.

19. Convierta el código anterior a FOR

f=1; //Inicializamos el acumulador de productos

for(i=1;i<=n;i++)
{ f=f*i;
}
System.out.println("El factorial es :"+f);

Universidad Nacional del Callao Pag.72

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 73

20. ¿Qué es un contador?


Los procesos repetitivos son la base del uso de las computadoras. En estos
procesos se necesitan normalmente contar los sucesos o acciones internas
del bucle, como pueden ser los elementos de una lista. Una manera de
controlar un bucle es mediante un contador. Un contador es una variable cuyo
valor se incrementa o decrementa en una cantidad constante en cada
iteración.

21. ¿Cuál es la representación de un contador en el diagrama de flujo?

INICIO

La variable contador
se inicializa
CONT=1

NO
CONT<=
5

SI
Mostrar
Cuerpo del Bucle CONT

CONT=CONT+1
FIN

La variable contador se
incrementa en 1 por cada
vuelta.

22. ¿Qué es un acumulador?


Un acumulador o totalizador es una variable cuya misión es almacenar
cantidades variables resultantes de sumas sucesivas. Realiza la misma
función que un contador, con la diferencia de que el incremento o decremento
de cada suma es variable en lugar de constante, como en el caso del
contador.
Se representa por la instrucción S=S+N, donde N es una variable y no una
constante.

Universidad Nacional del Callao Pag.73

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 74

23. ¿Cuál es la representación de un acumulador en el diagrama de flujo?

INICIO

CONT=1

SUMA=0

NO
CONT<=
5

SI

Leer Valor
FIN

CONT=CONT+1

SUMA=SUMA+Valor

24.¿Qué representa el siguiente código?

public static void main(String[] args) {


//DECLRACION DE VARIABLES
int a,b,c,mcm;
//INGRESO DE DATOS
String aa=JOptionPane.showInputDialog("Ingrese 1er. número: ");
String bb=JOptionPane.showInputDialog("Ingrese 2do. número: ");

//CONVERSION DE DATOS
a=Integer.parseInt(aa);
b=Integer.parseInt(bb);

c=2;
mcm=1;
while(a>1 || b>1)
{ if (a%c==0 && b%c==0)
{ a=a/c;
b=b/c;
mcm=mcm*c; }
else
{ if (a%c==0)
{ a=a/c;
mcm=mcm*c; }
else
{ if b%c==0
{ b=b/c;
mcm=mcm*c; }
else
{ c=c+1; }
}
}
}

Universidad Nacional del Callao Pag.74

Descargado por BRUCE LLANOS ([email protected])


lOMoARcPSD|6246918

Universidad Nacional del Callao Pág. 75

System.out.println(“El mcm de los números ingresados es: “ + mcm);


}
}

R. Esta codificación calcula el mcm de dos números

25. ¿Qué representa el siguiente código?

public static void main(String[] args) {


//DECLRACION DE VARIABLES
int a,b,c,n;

while(n<48)
{ c=a+b;
a=b;
b=c;
System.out.print(c);
n=n+1;
}
}

R. Esta codificación visualiza los 48 primeras series del Fibonnacci.

Universidad Nacional del Callao Pag.75

Descargado por BRUCE LLANOS ([email protected])

También podría gustarte