Vous êtes sur la page 1sur 169

Texto para el curso

de Algoritmos y
Estructura de Datos
del I ciclo de la
escuela profesional

ALGORITMOS Y de Ingeniera de
Sistemas.

ESTRUCTURA DE
DATOS
Contiene fundamentos de programacin a partir de la elaboracin de
algoritmos, estructuras secuenciales, estructuras selectivas, estructuras
repetitivas y estructura de datos arreglos

Elaborado por: Ing.


Arnaldo Gonzlez Aguilar

Editado por: Ing. Martn


Salcedo Quiones
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

FUNDAMENTOS BSICOS DE ALGORITMOS

Una computadora no tiene capacidad para solucionar problemas ms que cuando se le


proporcionan los pasos sucesivos a realizar, para ello elaboramos un algoritmo.

Qu es un algoritmo?
Es un mtodo para resolver un problema mediante una secuencia de instrucciones, cada una de
las cuales especifica las operaciones que debe realizar la computadora.

Caractersticas de un algoritmo
Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Debe ser preciso e indicar el orden de realizacin de cada paso.


Debe estar definido. Si se sigue un algoritmo dos o ms veces, con los mismos valores
iniciales se debe obtener el mismo resultado.
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento, es decir,
debe tener un nmero finito de pasos.

Tambin hay que tener en cuenta en un algoritmo:

El algoritmo sirve de base para generar un programa, pero no es el programa en s.


El algoritmo no es inteligible directamente por el ordenador.
El mismo algoritmo puede ser implementado de forma distinta en diversos programas, es
decir, dos programadores pueden obtener distintos cdigos fuente a partir del mismo
algoritmo.

El proceso de un algoritmo
La definicin de un algoritmo debe describir tres partes: Entrada, proceso y salida.

Entrada Salida
Proceso

La informacin proporcionada al algoritmo constituye su entrada, el procedimiento para la


solucin del problema constituye su proceso y la informacin producida por el algoritmo
constituye su salida.

A continuacin ejemplos para un mejor entendimiento:

Ejemplo 01:
Leer la base y altura de un paralelogramo. Calcular su rea.

Datos de Entrada ---> base y altura


Proceso ---> rea = base x altura
Datos de Salida ---> El rea del paralelogramo

1
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejemplo 02:
Leer el radio de una circunferencia. Calcular su rea y longitud.

Datos de Entrada ---> Radio de una circunferencia.


Proceso ---> rea = r2 y Longitud = 2r
Datos de Salida ---> El rea y longitud de una circunferencia.

Verificacin del algoritmo o prueba de escritorio


Una vez escrito el algoritmo es necesario asegurarse de que ste realiza las tareas para las que
ha sido diseado, y que por lo tanto produce el resultado correcto y esperado.

El modo ms normal de comprobar un algoritmo es mediante su ejecucin manual usando datos


significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel los
valores que van tomando en las diferentes fases, los datos de entrada o auxiliares y, por ltimo los
valores de los resultados. Este proceso se conoce como prueba del algoritmo o prueba de
escritorio.

Haremos una prueba de escritorio de los dos problemas anteriores:

Elementos Ejercicio 01 Ejercicio 02


Datos de entrada r (radio) = 3 Base = 5
(pi) = 3.14 (Solo tomaremos hasta Altura = 3
dos decimales)
Proceso A = r2 = 3.14 x (3)2 A = base x altura
L = 2r = 2 x 3.14 x 3 A=5x3

Datos de salida A = 28.26 A = 15


L = 18.84

Elementos bsicos de un algoritmo


Los elementos bsicos que forman parte esencial o fundamental de un algoritmo o programa son:

Palabras reservadas.
Identificadores.
Variables.
Constantes.
Instrucciones.

Palabras reservadas
Palabras utilizadas por los algoritmos o lenguajes de programacin para representar sentencias,
rdenes, etc.

Ejemplos:
inicio. sientonces-sino.
Fin. mientras.
hacer. desde.

2
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Identificadores
Son nombres usados para identificar a los objetos y dems elementos de un programa: variables,
constantes, operadores, funciones, procedimientos, etc. Existen reglas para construir
identificadores validos y son los siguientes:

El primer carcter debe ser una letra o el carcter subrayado bajo.


Los caracteres siguientes pueden ser letras, nmeros o smbolos de subrayado bajo.
Las letras maysculas y las letras minsculas se tratan como distintas. As suma, Suma y
SUMA son tres identificadores distintos.
No pueden ser iguales a ninguna palabra reservada.

Variables
Una variable es un objeto a quien se le asigna un valor y cuyo valor puede cambiar durante el
desarrollo del algoritmo o ejecucin del programa. Si una variable est compuesto por dos
palabras, stas pueden ser juntas o unidos por el subrayado bajo, guin bajo o subguin _ .

Nota:
No se deben utilizar como nombres de variables (identificadores) palabras reservadas del
algoritmo o del lenguaje de programacin.

Ejemplos:
Nota Apellido_paterno precios
Nombre apellido_materno hora
Apellidos Nota1 prom
nota_oral Contador1 pi

Los nombres de las variables elegidas deben ser significativos y tener relacin con el objeto que
representan, como pueden ser los casos siguientes:

nombre para representar nombres de personas.


precios para representar los precios de diferentes artculos.
notas para representar las notas de una clase.

A continuacin se muestra como ejemplos los nombres de variables no adecuados porque


tienen otro significado a lo expresado:

azucar para representar la nota de una clase.


pan para representar la edad de una persona.

Constantes
Una constante toma o recibe un valor que no cambia durante el desarrollo del algoritmo o la
ejecucin del programa.

Instrucciones
Las instrucciones especifican las operaciones o acciones que deben ser realizadas o ejecutadas.

3
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Expresiones
Son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de
funciones especiales, que cumplen determinadas reglas.

Ejemplos:
a+(b*3)/c
5 * a * b / ( c + d)

1. EXPRESIONES ARITMTICAS
Son anlogas a las formulas matemticas. Las variables y constantes son numricas (real o
entera) y las operaciones son las aritmticas.

Operadores Aritmticos
Significado Operador Algebraico Operador Algoritmico
Suma + +
Resta - -
Multiplicacin x *
Divisin real / /
Divisin entera / div
Exponenciacin -,**,^
Modulo (resto o mod
residuo)
Tabla 1: Operadores Aritmticos

A continuacin se mostrarn las equivalencias que debe conocer entre expresiones algebraicas y
expresiones aritmticas.

Ejemplos:

Representacin Algebraica Representacin Algortmica


12 + 19 12 + 19
ab a-b
5x7 5*7
6 +c (6 / 4) + c
4
37 3^7

Reglas de prioridad
Las expresiones que tienen dos o ms operandos en una expresin se evalan, en general, segn
el siguiente orden.

1. Las operaciones que estn encerradas entre parntesis se evalan primero. Si existen
diferentes parntesis anidados (internos unos a otros), las expresiones ms internas se
evalan primero.
2. Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de
prioridad.

a. Operador exponencial (^, o bien **)


b. Operadores *, /, \
c. Operadores div y mod
d. Operadores + , -
4
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Nota:
En caso coincidir varios operadores de igual prioridad en una expresin o subexpresin encerrada
entre parntesis, el orden de prioridad en este caso es de izquierda a derecha.

Ejemplo 1. Cul es el resultado de las siguientes expresiones?

a) 15 + 9 * 2 6 * 2 ^ 2
b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5)

Nota: Hacer uso de un tiempo de 5 minutos para resolver el inciso a) y b) del ejemplo 1.
Terminado de hacerlo revizar sus respuestas con la solucin que a continuacin se
presenta.

Solucin:

a) 15 + 9 * 2 6 * 2 ^ 2 b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5)

15 + 9 * 2 6 * 4 -8 / 4 * 6 + 3 ^ 2 * 2

15 + 18 - 24 =9 -8 / 4 * 6 + 9 * 2

-2 * 6 + 18 = 6

Ejemplo 2. Convertir en expresiones aritmticas algortmicas las siguientes expresiones:

a) 7(a+b)
b) 8x + 9y + 3z
c) a2 + 2a 3
d) x2 y2
e) p+q
r+s
t
f) a (cd)
b

Nota: Hacer uso de un tiempo de 5 minutos para resolver los incisos del a) al f) del ejemplo
2. Terminado de hacerlo revizar sus respuestas con la solucin que a continuacin se
presenta.
Solucin:

a) 7(a+b) 7 * (a + b)
b) 8x + 9y + 3z 8*x+9*y+3*z
c) a2 + 2a 3 a^2+2*a-3
d) x2 y2 x^2y^2
e) p +q (p + q) / (r + s / t)
r+s
t
f) a (cd) a/b*c*d
b

Divisin entera (div)


Es la accin de dividir dos nmeros enteros uno viene hacer el dividendo y el otro el divisor, el
resultado del operador div es el valor del cociente. En esta divisin no es de mucha importancia el
residuo. Recuerden que para utilizar el div solo se aplica a divisiones de nmeros enteros, veamos

5
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

el siguiente ejemplo:

Ejemplo: 9 div 2 = 4

Dividendo Divisor
9 2
8 4
1
Residuo Cociente
Ejemplos:
a. 15 div 6 = 2 b. 14 div 2 = 7 c. 0 div 3 = 0
d. 7 div 9 = 0 e. 3 div 3 = 1 f. 2 div 5 = 0

Reglasdeladivisinrealy entera:
Los operandos pueden ser enteros(E) o reales(R).

Divisinreal Divisinentera
Entero E/E=R E div E = E
E/R=R E div R = No Vlido
R/E=R resultados R div E = No Vlido
Real R/R=R R div R = No Vlido

operandos

Residuo (mod)
El operador mod se utiliza para obtener el residuo o resto de una divisin entera. Igual que para el
operador div, para poder hallar el residuo de una divisin utilizando el operador mod, los
operandos deben ser exclusivamente enteros.
Reglasdelresiduo:
Residuo
E mod E = E
E mod R = No Vlido
R mod E = No Vlido
R mod R = No Vlido

Ejemplos:
a. 15 mod 6 = 3 b. 14 mod 2 = 0 c. 19 mod 3 = 1
d. 7 mod 9 = 7 e. 3 mod 3 = 0 f. 2 mod 5 = 2

2. EXPRESIONES LGICAS
Una expresin lgica es una expresin que solo puede tomar dos valores: verdad y falso. Las
expresiones lgicas se forman combinando constantes lgicas, variables lgicas y otras
expresiones lgicas, utilizando los operadores relacionales (de relacin o comparacin) y los
operadores lgicos not, and y or.

Operadores de relacin
Permiten realizar comparaciones de valores de tipo numrico o carcter. Los operadores de
relacin sirven para expresar las condiciones en los algoritmos. El resultado de las operaciones de
comparacin ser verdadero o falso.

6
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Operadores de Relacin
Significado Operador Algebraico Operador Algoritmico
Menor que > <
Mayor que < >
Igual que = =
Menor o igual que <=
Mayor o igual que >=
Distinto de o <>
Diferente de
Tabla 2: Operadores de Relacin

Ejemplos:
Si P = 7 * 2 y Q = 3 ^ 2

Expresin Lgica Resultado


P>Q Verdad
P<Q Falso
P <> Q Verdad
(P-3) = (Q+2) Verdad
15 < 14 Falso
4+6=9 Falso

Para realizar comparaciones de datos tipo carcter, se requiere una secuencia de ordenacin de
los caracteres, similar al orden creciente o decreciente. Esta ordenacin suele ser alfabtica, tanto
maysculas como minsculas, y numrica, considerndolas de modo independiente.

A continuacin se mostrarn los caracteres situados en el cdigo ASCII en orden creciente:

Los caracteres que representan a los digitos.


0 <1 , 1 < 2 , , 8 < 9

Las letras maysculas A a Z siguen el orden alfabtico.


A < B , B < C , ..., Y < Z

Las letras minsculas, siguen el mismo criterio alfabtico.


a < b , b < c , .., y < z

Nota
Para tener completa seguridad en la ordenacin de los caracteres, ser preciso consultar el
cdigo de caracteres de su computadora, normalmente el ASCII (American Standar Code for
Information Interchange) o bien el EBCDIC (Extended Binary-Coded Decimal Interchange Code)
utilizado en computadras IBM diferentes a los modelos PC y PS/2.

Operadores lgicos
Los operadores lgicos o volanos son not (no), and (y) y or(o). Las definiciones de las
operaciones no, y, o se resumen en unas tablas conocidas como las tablas de la verdad.

Operador Lgico Expresin Lgica Significado


no (not) no P negacin de P
y (and) PyQ conjuncin de P y Q
o (or) PoQ disyuncin de P o Q
Tabla 3: Operadores Lgicos

7
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Las tablas de la verdad son las siguientes:

Operador No Operador Y Operador O

P no P P Q PYQ P Q POQ
V F V V V V V V
F V V F F V F V
F V F F V V
F F F F F F

Nota:
Siendo P y Q expresiones booleanas, V valor verdadero, F valor falso.
Negacin = not
Disyuncin = and
Conjuncin = or

Ejemplos:
(7 < 12) y (9 < 21) verdad
(9 > 15) y (3 < 4) falso
(6 = 41) o (13 > 8) verdad
(16 > 8) o (2 > 5) verdad
no (18 > 6) falso

Funciones internas
Las operaciones que se requieren en los programas exigen en numerosas ocasiones, adems de
las operaciones aritmticas bsicas, ya tratadas, un nmero determinado de operadores
especiales que se denominan funciones internas, incorporadas o estndar.

Por ejemplo, la funcin raiz2 calcula la raz cuadrada de un nmero positivo, la funcin abs
devuelve el valor absoluto de un nmero, la funcin cuadrado devuelve el valor de un nmero
elevado al cuadrado. Existen otras funciones que se utilizan para determinar las funciones
trigonomtricas.

La siguiente tabla recoge las funciones internas ms usuales en algoritmos, siendo x el


argumento de la funcin.

8
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Las funciones aceptan argumentos reales o enteros y sus resultados dependen de la tarea que
realice la funcin:

Ejemplos:

Tabla 5: Ejemplos

9
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Tipos de Datos
El primer objetivo de toda computadora es el manejo de la informacin o datos. Estos datos
pueden ser las cifras de ventas de una bodega, tickets para un encuentro deportivo, ingreso diario
de una empresa o las calificaciones de un saln de clase. Los algoritmos y programas
correspondientes operan sobre datos.

Los tipos de datos definen un conjunto de valores que puede almacenar una variable, junto con un
conjunto de operaciones que se pueden realizar sobre esa variable.

Los tipos de datos simples son los siguientes:

Numricos (enteros, reales).


Lgicos (booleanos).
Carcter (char, string).

Datos numricos
El tipo numrico es el conjunto de los valores numricos. Estos pueden representarse en dos
formas distintas:

Tipo numrico entero (int, integer)


Tipo numrico real (float, double)

Tipo entero
Es el subconjunto finito de los nmeros enteros, no tienen componentes fraccionarios o decimales,
y pueden ser negativos o positivos.

Ejemplos:
6 -9
-20 11
5 19
15 -1

Tipo reales
Subconjunto de los nmeros reales, siempre tiene un punto decimal y pueden ser positivos o
negativos. Constan de un entero y una parte decimal.
Ejemplos:
9.9 12.24
-123.11 0.89
1470.274 -0.99
54.77 3.0

Nota:
Existe un tipo de representacin denominado notacin exponencial o cientfica y que se utiliza
para nmeros muy grandes o muy pequeos.

Ejemplo:

Dado un nmero cualquiera:

367520100000000000000

10
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

se representa en notacin descomponindolo en grupo de tres digitos:

367 520 100 000 000 000 000

y posteriormente en forma de potencias de 10, es:

3.675201 x 1020

Ejemplos:

2079546000000 = 2.079546 x 1012


8927645125 = 8.927645 x 109
0.000000032458 = 3.2458 x 10-8
0.0000000009284 = 9.284 x 10-10

Datos lgicos
Es aquel dato que solo puede tomar uno de dos valores:

cierto o verdadero (true) y falso

(false) Ejemplo:
Cuando se le pide si un valor entero es par, la respuesta ser verdadera o falsa, segn sea
impar
o par.

Datos tipo caracter y tipo cadena


Un dato tipo caracter contiene un solo caracter y se encuentra delimitado por comilla simple.

Los caracteres que reconocen las diferentes computadoras no son estndar, sin embargo
la mayora reconoce los siguiente caracteres alfabticos, numricos y especiales:

caracteres alfabticos : (a, b, c, ... ,z) (A, B, C, ... ,Z)


caracteres numricos : (1, 2, 3, ... ,9 ,0)
caracteres especiales : (+,-,*,/,{, }, ... ;,< ,> , ...)

Una cadena (string) de caracteres es una sucesin de caracteres que se encuentran


delimitados
por una comilla simple (apostrofo) o dobles
comillas. Ejemplos:

Carcter : a b m
p q M
Z Y N

Cadena : Hola Per


8 de Octubre de
1879
Juan Pablo II

11
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

LABORATORIO N 01

1. Escribir las siguientes expresiones algebraicas como expresiones algortmicas:

2. Evaluar las siguientes expresiones y realizar el proceso:


a. Para un valor de A = 3 y B = 4:
4*A+8*A/BB^2
b. Para un valor de M = 3 , N = 4 Y O = 5:
( N M ) ^ 200 * raiz2 (( M * 12 ) + ( N * 7)) O * 6 / 15
c. Para un valor de P = 3 , Q = 4 , R = 7 y S = 8:
raiz2(( S / Q ) ^ P * 7 ( cuadrado(R) + (S - R) ))

3. Si el valor de A es 6, B es 5 y el valor de C es 2, evaluar las siguientes expresiones:


a. A * B + B ^ 2 / 4 * C ( B * C + C / 2 )
b. cuadrado(A + C) - raiz(B * A + 6) * (B * A / C )
c. ((( B + C ) / 2 * A + 10 ) - 3 * B ) + 6 - C

4. Si el valor de p es 3, q es 3 y r es 2, evaluar la expresin:


P^q^r

12
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

5. Obtener el valor de cada una de las siguientes expresiones aritmticas:


a. 11 div 2 f. 15 mod 4
b. 26 mod 2 g. 0 div 9
c. 32 div 3 h. 6 * 10 40 mod 3 * 4 + 9
d. 13 mod 3 i. (9 ^ 2 mod 4 + ( 7 * 5 ) div 6) div 2
e. 0 mod 5 j. 5 mod 3 * ( 7 div 1 ) - ( 22 div 4 * 2 ) mod 3

6. Encontrar el valor de cada una de las siguientes expresiones o decir si no es una


expresin vlida.
a. raiz2(15 7 + 8 3 * 2) e. 9 mod ( 6 mod 2)
b. 2 mod 3 + 3 div 5 * 7 f. ( 5 mod 3 ) mod 7
c. 7 div 3 / 9 g. (( 9 + 8 ) div 2) / ( 4 * (1 mod 9))
d. 9 mod 6 mod 2 h. ( 23 div 4 ) * ( 8 / 2 + 3 mod 8 )

13
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

REPRESENTACIN GRFICA DE LOS ALGORITMOS

Para representar un algoritmo se debe utilizar algn mtodo que permita independizar dicho
algoritmo del lenguaje de programacin elegido. Ello permitir que un algoritmo pueda ser
codificado indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que el
algoritmo sea representado grfica o numricamente, de modo que las sucesivas acciones no
dependan de la sintaxis de ningn lenguaje de programacin, sino que la descripcin pueda servir
fcilmente para su transformacin en un programa, es decir, su codificacin.

Los mtodos usuales para representar un algoritmo son:

Diagrama de Flujo.
Diagrama estructurado o N S (Nassi Schneiderman).
Pseudocdigo.

Diagrama de Flujo
Un diagrama de flujo es una de las tcnicas de representacin de algoritmos ms antigua y a la
vez ms utilizada, aunque su empleo ha disminuido considerablemente. Un diagrama de flujo es
un diagrama que utiliza los smbolos (cajas) estndar y que tiene los pasos del algoritmo escritos
en esas cajas unidas por flechas, denominadas lneas de flujo, que indican la secuencia en que se
deben ejecutar.

Los smbolos ms utilizados en un diagrama de flujo son:

Smbolos Nombre Funcin


Terminal Representa el inicio y fin de un algoritmo. Puede representar
tambin una parada o interrupcin del algoritmo.

Entrada / Salida Sirve para cualquier ingreso de datos desde los perifricos
de entrada o muestra informacin en algn perifrico de
salida.
Proceso Cualquier tipo de operacin que pueda originar cambio de
valor, formato o posicin, operaciones aritmticas, etc.

no Decisin Empleado cuando el programa debe tomar una decisin con


dos salidas posibles (si, no) dependiendo del valor de una
condicin lgica.
si
Decisin En funcin del resultado de la comparacin se seguir uno
mltiple de los diferentes caminos de acuerdo con dicho resultado.

Conector Sirve para enlazar dos partes cualesquiera de un


organigrama. Se refiere a la conexin en la misma pgina
del diagrama.
Lnea de flujo Indica el sentido de ejecucin de las operaciones.

Lnea conectora Sirve de unin entre dos smbolos.

14
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Smbolo Nombre Funcin


Conector Conexin entre dos puntos del organigrama situado en
pginas diferentes.

Subrutina o Es un mdulo independiente del programa principal, que


Procedimiento recibe una entrada procedente de dicho programa, realiza
una tarea determinada y regresa al terminar, al programa
principal.
Pantalla Se utiliza en ocasiones en lugar del smbolo e E/S

Impresora Se utiliza en ocasiones en lugar del smbolo e E/S

Teclado Se utiliza en ocasiones en lugar del smbolo e E/S

Comentario Se utiliza para aadir comentarios al programa.

Tabla 1: Operadores Aritmticos

Los smbolos ms utilizados en un diagrama de flujo son:

a. inicio/fin.
b. proceso.
c. decisin.
d. conectores.
e. entrada/salida.
f. direccin del flujo.

Primeralgoritmo con un diagrama de flujo


Para conocer como se resuelve un problema mediante el diagrama de flujo, resolveremos un
ejemplo:
Ejemplo 1:
El diagrama de flujo siguiente representa la resolucin de nuestro primer programa que deduce el
rea y permetro de un rectngulo, sabiendo que su base y altura tienen los valores 8cm y 2cm
respectivamente.

01

02 05

03 06

04 07

15
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Explicacin de nuestro primer algoritmo

Lo primero que debemos hacer para realizar un algoritmo, es analizar el problema; reconocer las
variables que representarn a los datos de entrada, dentro del proceso de clculo y los datos de
salida, que vamos a utilizar, procesar y encontrar.

Anlisis
Para este ejemplo hemos identificado nuestras variables a trabajar:

a. base = b
b. altura = h
c. rea = a
d. permetro = p

Todo algoritmo se debe comenzar con un inicio y finalizar con un fin, para ello se utilizar el
smbolo terminal. Para lograr explicar con mayor claridad nuestro algoritmo, hemos incluido
nmero de lnea. Donde la explicacin por lnea es la siguiente:

La lnea 01, se utiliza el smbolo terminal junto con la palabra inicio que representa el
comienzo del algoritmo.

La lnea 02, se utiliza el smbolo proceso donde a las variables b y h se le asignan los
nmeros 8 y 2 respectivamente.

La lnea 03, se utiliza el smbolo proceso donde primero se realiza la operacin b * h y


segundo, el resultado de esta operacin se asigna a la variable a (rea).

La lnea 04, se utiliza el smbolo conector de pgina, donde sirve para enlazar dos partes
cualesquiera en la misma pgina del diagrama. Para poder enlazar los conectores
podemos utilizar nmeros o smbolos diferentes a los utilizados en el algoritmo.

La lnea 05, se utiliza el smbolo proceso donde primero se realiza la operacin 2 * (b + h)


y segundo, el resultado de esta operacin se asigna a la variable p (permetro).

La lnea 06, se utiliza el smbolo entrada/salida, en este caso este smbolo representa la
salida de la informacin obtenida por el algoritmo: el rea y el permetro.

La lnea 07, se utiliza el smbolo terminal junto con la palabra fin que representa el fin del
algoritmo.

Nota:
El diagrama de flujo nos da una idea del orden de ejecucin de las actividades en el tiempo.
Primero cargamos los datos de entrada, luego hacemos las operaciones necesarias y por ltimo
mostramos los resultados.

Ejemplo 2:
El diagrama de flujo del ejemplo anterior tambin se puede llevar acabo sin el uso de conectores
de pgina o de pginas diferentes, en el siguiente diagrama se muestra cmo sera. Pero para
este ejemplo haremos una variacin en nuestro ejemplo. En el ejemplo 1, los datos de la base y
altura eran conocidos 8cm y 2cm. En este ejemplo los datos de la base y altura, no se conocen y
se solicitan para resolver el problema; para solicitar los datos de entrada utilizaremos el smbolo
entrada/salida.

16
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Nota:
En el ejemplo 1, los valores de b y h se conocen, por ello se utiliza el smbolo proceso. Pero para
el ejemplo 2, los valores no se conocen por tanto tienen que ser ingresados, para realizar ello en
algoritmos se utiliza el smbolo entrada/salida.

Para poner en prctica los nuevos conocimientos adquiridos, resolveremos los siguientes
ejemplos:

Ejercicios de autocomprobacin de aprendizajes


Ejemplo 3:
Se ingresan por teclado dos nmeros positivos. Calcular la suma, resta, multiplicacin, divisin
real, divisin entera, residuo y promedio de dichos nmeros. Reportar los resultados.

Ejemplo 4:
Una tienda de ropa exclusiva compra en Lima 50 pantalones blueyn a un costo de S/. 45 y aqu
en Chimbote los oferta a S/. 60. Cunto es la ganancia?.

Nota: Hacer uso de un tiempo de 10 minutos para resolver cada ejemplo. Terminado de
hacerlo revizar sus respuestas con la solucin que se presentar en la siguiente sesin.

Diagrama Estructurado o N S
Se trata de un mtodo de representacin de algoritmos en forma de bloque compacto. Es un
diagrama algo similar a los diagramas de flujo (convencionales) en el que se omiten las flechas, y
las figuras que se usan son rectngulos contiguos.

La representacin del algoritmo se basa en los siguientes puntos:

Un programa se representa por un solo diagrama, en el que se incluyen todas las


operaciones a realizar para la resolucin del problema. La forma de conectar una pgina
con la siguiente es similar al mtodo anterior, es decir, mediante un nmero o un nombre
encerrados en uno de los rectngulos que componen el algoritmo.
Todo diagrama comienza con un rectngulo que tiene la palabra inicio y al ltimo del
algoritmo un rectngulo con la palabra fin.
Las acciones sucesivas se escriben en rectngulos sucesivos.
17
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

En un solo rectngulo se pueden escribir diferentes acciones.


Un proceso puede ser un subprograma.
La lectura del diagrama se hace de arriba hacia abajo.

La forma grfica de representar un algoritmo en diagrama estructurado o N S es el siguiente:

Primeralgoritmo con un diagrama estructurado o N-S


Para conocer cmo se realiza un diagrama estructurado, resolveremos el ejemplo 1 planteado en
la parte de diagrama de flujo:

Como se ve en la solucin del ejemplo 1, en este diagrama se utilizan slo rectngulos. Si se dan
cuenta, en un diagrama estructurado existe un rectngulo de declaracin de variables, donde se
colocan las variables que se utilizarn en el algoritmo y a la vez tambin podemos inicializar
variables con sus valores dados.

A continuacin, la solucin del ejemplo 2, de la parte de diagrama de flujo:

Para poner en prctica los nuevos conocimientos adquiridos, resuelvan los ejemplos 3 y 4 de la
parte de diagrama de flujo.

Nota: Hacer uso de un tiempo de 10 minutos para resolver cada ejemplo. Terminado de
hacerlo revizar sus respuestas con la solucin que se presentar en la siguiente sesin.
18
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Pseudocdigo
El pseudocdigo es una herramienta de programacin que naci como un lenguaje en que las
instrucciones se escriben en palabras similares al ingles o espaol, que facilitan tanto la escritura
como la lectura de programas. En esencia el pseudocdigo se puede definir como un lenguaje de
especificacin (descripcin) de algoritmos.

La ventaja del pseudocdigo es que en su uso, es decir durante la planificacin de un programa,


el programador se puede concentrar en la lgica y en las estructuras de control, sin preocuparse
por las reglas de un determinado lenguaje de programacin.

La escritura del pseudocdigo exige normalmente la identacin (sangra en el margen izquierdo)


de diferentes lneas. La lnea precedida por // se denomina comentario, que viene hacer
informacin para el programador o el lector del programa, y no realiza ninguna instruccin
ejecutable. El uso de pseudocdigo se ha extendido en la comunidad hispana con trminos en
espaol como: inicio, fin, leer, escribir, si_entonces_sino, mientras, fin_mientras, etc.

Estilo de escritura de algoritmos en pseudocdigo

algoritmo nombre_del_programa // cabecera

var // seccin de declaraciones

tipo_de_datos : Lista_de_identificadores

const

Lista_de_identificadores = valor

Inicio // cuerpo del programa

Instruccin 1
Instruccin 2
Instruccin 3
.
.
.
.
Instruccin n

fin

19
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Primeralgoritmo con un pseudocdigo


Para conocer cmo se realiza un pseudocdigo, resolveremos el mismo ejemplo 1 planteado en la
parte de diagrama de flujo:

algoritmo Ejemplo 1
var
entero : b, h, a, p
Inicio
b =8
h =2
a = b * h
p = 2*(b+h)
escribir ( a, p )
fin

Como se ve en esta solucin del ejemplo 1, en pseudocdigo, se coloca el nombre del algoritmo,
en la seccin de declaracin de variables se escriben a la parte izquierda los tipos de datos y a la
derecha las variables que pertenecen a ese tipo de dato. Para este ejemplo solo tenemos el tipo
de dato entero. Se tiene un cuerpo del programa donde se escriben todas las instrucciones
necesarias para resolver el problema.

A continuacin la solucin del ejemplo 2, de la parte de diagrama de flujo:

algoritmo Ejemplo 2
var
entero : b, h, a, p
Inicio
leer (b)
leer (h)
a = b * h
p = 2*(b+h)
escribir ( a, p )
fin

Para poner en prctica los nuevos conocimientos adquiridos, resolveremos los ejemplos 3 y 4, de
la parte de diagrama de flujo.

Nota: Hacer uso de un tiempo de 10 minutos para resolver cada ejemplo. Terminado de
hacerlo revizar sus respuestas con la solucin que se presentar en la siguiente sesin.

20
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

EJERCICIOS DE ALGORITMOS

Ejercicios:
1. Hallar el rea un cuadrado.
2. Hallar el perimetro de un rectangulo.
3. Hallar el rea y perimetro de un rombo.
4. Hallar el rea de un trapecio.
5. Hallar el volumen de un cono.

Tarea
Realizar los 5 ejercicios utilizando los diagramas de Flujo, N S y Pseudocdigo.

21
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructuras Bsicas de Control


L
Un algoritmo o programa puede ser escrito utilizando solamente tres tipos de estructuras de
control, a las cuales se les conocen como estructuras bsicas de control, y son las siguientes:

Estructuras Secuenciales.

Estructuras Selectivas.
a. Simples (si entonces - fin_si / if then end_if)
b. Dobles (si entonces sino fin_si / if then else end_if)
c. Mltiples

Estructuras Repetitivas.
a. Mientras (while)
b. Hacer_Mientras (do - While)
c. Desde / Para (for)

Estructura Secuencial

La estructura secuencial es aquella en la que una instruccin (accin) sigue a otra en secuencia.
Las tareas a realizar en cada instruccin se suceden de tal modo que la salida de una es la
entrada de la siguiente y as sucesivamente hasta el final del proceso.

La representacin grfica de una estructura secuencial se muestra en las siguientes figuras en


Diagrama de Flujo, Diagrama Estructurado y Pseudocdigo.

Figura 1. Diagrama de Flujo de una estructura secuencial

Figura 2. Diagrama Estructurado de una estructura secuencial

22
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

inicio

Instruccin 1
Instruccin 2
Instruccin 3
.
.
.
.
Instruccin n

fin
Figura 3. Pseudocdigo de una estructura secuencial

Para poder conocer cmo se realiza un algoritmo utilizando los mtodos para representar
algoritmos, procederemos a realizar tres ejercicios.

EJERCICIOS

1. Escribir un algoritmo que determine el pago por la compra de dos televisores LCD de 21''
marca SONY, si cada uno cuesta 2 400 soles.
2. Encontrar el valor de la funcin: x = 3y + z
3. Escribir un algoritmo en el cual se ingresen dos nmeros. Se desea calcular y mostrar la
suma y resta.

Solucindelosejemplos

Ejercicio01:

Inicio

CostoTV = 2400
CantidadTV = 2

Pago = CostoTV * CantidadTV

Escribir (Pago)

Fin
Figura 4. Diagrama de Flujo del ejercicio 01

23
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejercicio 01
Inicio CostoTV=2400, CantidadTV=2, Pago
Pago = CostoTV * CantidadTV
Escribir (Pago)
Fin

Figura 5. Diagrama Estructurado del ejercicio 01

algoritmo Ejercicio 01
var // seccin de declaraciones de variables
entero: CantidadTV
real: CostoTV, Pago
Inicio // cuerpo del programa
CostoTV = 2400
CantidadTV = 2
Pago = CostoTV * CantidadTV
Escribir (Pago)
fin

Figura 6. Pseudocdigo del ejercicio 01

Ejercicio02:

Inicio

Leer (y,z)

x=3*y+z

Escribir (x)

Fin
Figura 7. Diagrama de Flujo del ejercicio 02

24
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejercicio 02
Inicio x, y, z
Leer (y,z)
x=3*y+z
Escribir (x)
Fin

Figura 8. Diagrama Estructurado del ejercicio 02

algoritmo Ejercicio 02
var // seccin de declaraciones de variables
entero: x, y, z
Inicio // cuerpo del programa
Leer ( y , z )
x=3*y+z
Escribir ( x )
fin

Figura 9. Pseudocdigo del ejercicio 02

Ejercicio03:

Inicio

Leer (num1,num2)

Dentro del grfico de


proceso, se pueden realizar
Suma = num1 + num2
como mximo tres
Resta = num1 - num2
procesos. Si hay ms
procesos, utilizar otro
diagrama de proceso
Escribir ('La suma es : ',Suma)
Escribir ('La resta es : ',Resta)

Fin

Figura 10. Diagrama de Flujo del ejercicio 03

25
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejercicio 03
Inicio num1, num2, Suma, Resta
Suma = num1 + num2
Resta = num1 - num2
Escribir ('La suma es : ', Suma)
Escribir ('La resta es : ', Resta)
Fin

Figura 11. Diagrama Estructurado del ejercicio 03

algoritmo Ejercicio 03
var // seccin de declaraciones de variables entero:
num1, num2, Suma, Resta
Inicio // cuerpo del programa
Leer ( num1, num2 ) Suma =
num1 + num2
Resta = num1 - num2
Escribir ('La suma es : ', Suma)
Escribir ('La resta es : ', Resta)
fin

Figura 12. Pseudocdigo del ejercicio 03

26
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

LABORATORIO N 02
Estructura secuencial

Ejercicios:
1. Encontrar el valor de la funcin: r = 5m2 + n2
pq r
2
2. Encontrar el valor de la funcin: f =

ab c
2
3. Encontrar el valor de la funcin: z =
4. Escribir un algoritmo en el cual se ingresen dos nmeros. Se desea calcular y mostrar la
suma, resta, multiplicacin, divisin real, divisin entera y residuo de dichos nmeros.
5. Escribir un algoritmo en el cual se ingresen cuatro nmeros. Calcular y mostrar la suma de
los dos primeros nmeros y el producto de tercero y cuarto.
6. Realizar un algoritmo que lea cuatro valores numricos e informar su multiplicacin y
promedio.
7. Realizar un algoritmo que permita informar el rea y permetro de cuadrado.
8. Realizar un algoritmo que permita informar el rea de un tringulo y circunferencia.
9. Determinar la hipotenusa de un tringulo rectngulo conocidas las longitudes de los
catetos.
10. Escribir un algoritmo que pida el ingreso del precio de un artculo y la cantidad que lleva el
cliente. Mostrar lo que debe abonar.
11. Hacer un programa que tome como dato de entrada, la longitud de un dimetro de una
circunferencia y nos calcule e imprima la longitud de la circunferencia, el rea del crculo y
el volumen de la esfera que se corresponden con dicho dimetro.

4 3
Formulas: L = 2r ; A = r 2 ; V= r
3

12. Calcular la formula y = 100( 1 + x + 2x2 + 3x3), para un x ingresado por teclado.

27
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

13. Encontrar el valor de las siguientes funciones:

a) z = 4a + b
b) z = 3b 2c
c) z = 4
2x 3
d) El doble de la cantidad 3x 1 dividida por un medio de la cantidad 2x + 3.

14. Calcular y mostrar el sueldo neto de un empleado si se ingresan las horas trabajadas, el
sueldo por hora, tasa de descuento del seguro social.

15. Pasar un valor expresado en segundos a un perodo expresado en das, horas, minutos y
segundos.

16. La relacin entre temperaturas Celsius y Fahrenheit est dada por:


5
C= (F 32)
9
Escribir un programa que se ingrese una temperatura en Fahrenheit y lo devuelva en
Celsius.

17. Emplee la ley de Ohm para desarrollar un algoritmo para calcular el voltaje a partir de los
valores de la corriente y la resistencia ingresados por el usuario.

donde: v = voltaje
i = corriente Formula: v = i * r
r = resistencia

18. Una alcanca contiene n1 billetes de 200 soles, n2 billetes de 100 soles, n3 billetes de 50
soles, n4 billetes de 20 soles, n5 billetes de 10 soles, n6 monedas de 5 soles, n7 monedas
de 2 soles, n8 monedas de sol, n9 monedas de 50 centavos, n10 monedas de 20 centavos
y n11 monedas de 10 centavos. Cunto dinero hay en la alcanca expresado en soles y en
centavos?. n1, n2, n3,n11 debe ingresar por teclado.

19. Si la alcanca del problema anterior contuviera solamente n monedas de un sol. Cuntos
billetes de 200, de 100, de 50, de 20, de 10, contendra?. Asimismo monedas de 5, de 2 y
de un sol?.

20. Escriba un programa que acepte como entrada un nmero de cinco dgitos, lo separe en
sus distintos dgitos y los imprima en sentido contrario a lo ingresado. (Sugerencia: emplee
los operadores de divisin y de mdulo) Por ejemplo, si el usuario tecla 42339, el programa
deber imprimir: 93324.

Tarea
Realizar los 20 ejercicios utilizando los diagramas de Flujo, N S y Pseudocdigo.

28
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructuras Selectivas

No todos los problemas pueden resolverse empleando estructuras secuenciales. Cuando hay que
tomar una decisin aparecen las estructuras selectivas. En nuestra vida diaria se nos presentan
situaciones donde debemos decidir:

Elijo la carrera A o la carrera B?


Me pongo este pantaln?
Para ir al trabajo, elijo el camino A o el camino B?
Al cursar una carrera, elijo el turno maana, tarde o noche?

Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah que se suelen
denominar tambin estructuras condicionales, de decisin o alternativas.

En las estructuras selectivas se evala una condicin y en funcin del resultado se realiza una
opcin u otra. Las condiciones se especifican usando expresiones lgicas.

Las estructuras selectivas pueden ser:

1. Simples.
2. Dobles.
3. Mltiples.
4. Anidadas.

Estructura Selectiva Simple


La estructura selectiva simple ejecuta una determinada accin o acciones cuando se cumple una
determinada condicin, es decir, tenemos la opcin de realizar una actividad o varias si la
condicin es verdadero y si es falso no se realizar ninguna actividad.

La representacin grfica de la estructura selectiva simple en un Diagrama de Flujo es la


siguiente:

Figura 13. Diagrama de flujo de la estructura selectiva simple

En la figura anterior se puede observar lo siguiente: el rombo representa la condicin. Hay dos
opciones que se pueden tomar. Si la condicin es verdadera se sigue el camino del verdadero, si
la condicin es falsa se sigue el camino del falso. Por el camino del verdadero pueden existir
varias operaciones, entradas y salidas que se pueden realizar, inclusive ya veremos que pueden
haber otras estructuras condicionales o selectivas.

29
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

La representacin grfica de la estructura selectiva simple en el diagrama estructurado y


pseudocdigo son las siguientes:

Figura 14. Diagrama estructurado de la estructura selectiva simple

si condicin entonces
instruccin 1
instruccin 2
.
.
instruccin n
fin_si

Figura 15. Pseudocdigo de la estructura selectiva simple

Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguiente


ejemplo:

Ejemplo 1:
Ingresar el sueldo de una persona, si supera los S/. 3000 soles, mostrar un mensaje en pantalla
indicando que debe abonar impuestos.

Figura 16. Diagrama de flujo del ejemplo 1

30
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 17. Diagrama estructurado del ejemplo 1

algoritmo Ejemplo1
var
real: sueldo
inicio
leer (sueldo)
si (sueldo > 3000) entonces

escribir(Esta persona debe abonar impuestos)

fin_si
fin

Figura 18. Pseudocdigo del ejemplo 1

Observacin del Pseudocdigo


Obsrvese que las palabras del pseudocdigo si y fin_si se alinean verticalmente identando
(sangrando) la instruccin o bloque de instrucciones.

31
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejemplo 2:
Realizar un algoritmo que permita el ingreso de un nmero entero, si es positivo debe mostrar el
mensaje que es un nmero positivo, elevarlo al cuadrado y mostrar dicho resultado. Al terminar el
algoritmo debe decir fin del algoritmo.

inicio

leer (num)

num > 0

mostrar 'Numero
positivo'

Cuad = num ^ 2

mostrar (Cuad)

mostrar ('Fin del algoritmo')

fin

Figura 19. Diagrama de Flujo del ejemplo 2

32
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

algoritmo Ejemplo 2
var
entero: num, Cuad
inicio
leer (num)
si ( num > 0 ) entonces
mostrar(Nmero positivo)
Cuad = num ^ 2
mostrar ( Cuad )
fin_si
Mostrar ('Fin del algoritmo')
fin

Figura 21. Pseudocdigo del ejemplo 2

33
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructura Selectiva Doble

La estructura selectiva doble permite elegir entre dos opciones o alternativas, en funcin del
cumplimiento de una determinada condicin, de tal forma que, si se cumple, se ejecutan las
acciones del primer bloque; si no se cumple, se ejecutan las acciones del segundo bloque.

La representacin grfica de una estructura selectiva doble en los mtodos para representar a los
algoritmos es el siguiente:

Figura 19. Diagrama de flujo de la estructura selectiva doble

Figura 20. Diagrama estructurado de la estructura selectiva doble

si condicin entonces
instruccin 1
instruccin 2
.
.
instruccin n
si_no
instruccin 1
instruccin 2
.
.
instruccin m
fin_si

Figura 21. Pseudocdigo de la estructura selectiva doble

De acuerdo a la condicin podemos realizar actividades por el lado verdadero o por el lado falso,
PERO NUNCA se realizan las actividades de ambos lados al mismo tiempo.

34
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguiente


ejemplo:

Ejemplo 3:
Realizar un algoritmo que lea dos nmeros enteros distintos entre s y mostrar por pantalla el
mayor y el menor. Al final del algoritmo mostrar tambin el nombre del creador del algoritmo.

Figura 22. Diagrama de flujo del ejemplo 3

Figura 23. Diagrama estructurado del ejemplo 3

35
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

algoritmo Ejemplo3
var
entero : num1, num2
inicio
leer (num1, num2)
si (num1 > num2) entonces
escribir(El mayor es, num1, y el menor es, num2)
si_no
escribir(El mayor es, num2, y el menor es, num1)
fin_si
escribir(Mi nombre es Maverick)
fin
Figura 24. Pseudocdigo del ejemplo 3

Ejemplo de autoaprendizaje:
Resuelva en diagrama de flujo, estructurado y pseudocdigo.

Ejemplo 4:
Realizar un algoritmo que permita el ingreso de tres notas de un alumno. Calcular la nota
promedio y si el promedio es mayor o igual a 10.5 mostrar un mensaje Aprobado o
Desaprobado.

36
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

TAREA N 1
Estructura selectiva simple

Ejercicios:
1. Un cobrador de impuestos tiene la meta de cobrar 1000 soles, realiza tres cobranzas; si
el dinero obtenido supera la meta mostrar un mensaje respectivo. Al final del
algoritmo mostrar el monto cobrado.
2. Una persona realiza 5 compras en un supermercado. Existe la oferta de que si la compra
supera los 550 soles, se le hace un descuento del 10%. Mostrar el monto a pagar.
3. Leer un tiempo en segundos y determinar cuantos minutos hay, Al final del algoritmo
mortrar los segundos sobrantes.

Tarea
Realizar los ejercicios utilizando los diagramas de Flujo, N S y Pseudocdigo.

37
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

LABORATORIO N 03
Estructura selectiva doble

Ejercicios:

1. Determinar si un alumno aprueba a desaprueba un curso, conociendo que aprobara si su


promedio de tres calificaciones es mayor o igual a 10.5; desaprobado en caso contrario.

Ejercicio 1
var
entero : calif1, calif2, calif3
real : prom
inicio
Leer calif1, calif2, calif3
prom = (calif1 + calif2 + calif3)/3
si prom >= 10.5 entonces
Escribir 'ALUMNO APROBADO'
si no
Escribir 'ALUMNO DESAPROBADO'
fin_si
fin

2. Un estudiante del curso de Fundamentos de Programacin ha obtenido cinco (5) notas en


el desarrollo de la primera unidad, las cuales servirn solamente cuatro (4) para determinar
el promedio final de unidad, eliminandose la menor nota. Mostrar la nota promedio y la
nota eliminada.

38
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

3. En un almacn se hace un 20% de descuento a los clientes cuya compra supere los $1000
Cual ser la cantidad que pagara una persona por su compra?

Ejercicio 3
var
real : compra, desc, tot_pag
inicio
Leer compra
si compra > 1000 entonces
desc = compra * 0.20
si no
desc = 0
fin_si
tot_pag = compra - desc
Mostrar tot_pag
fin.

4. Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran
tres camisas o mas se aplica un descuento del 20% sobre el total de la compra y si son
menos de tres camisas un descuento del 10%.

5. En la empresa Toyota del Per a los clientes se les ofrece los siguientes descuentos en
base al precio del auto que se quiere comprar.

Auto <= $ 15 000 5%


$ 15 000 < Auto 10%

Cual ser la cantidad que pagara una persona por su compra?

6. Realizar un algoritmo que calcule el salario semanal de un obrero, el cual se obtiene de la


siguiente manera:
Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja mas de 40 horas se le paga $16 por cada una de las primeras 40 horas y
$20 por cada hora extra.

7. Realizar un algoritmo que lea dos nmeros enteros diferentes y los imprima en forma
ascendente

Ejercicio 7
var
entero : num1, num2
inicio
Leer num1, num2
si num1 > num2 entonces
Imprimir 'El mayor es: ', num1 , ' y el menor es: ', num2
si no
Imprimir 'El mayor es: ', num2 , ' y el menor es: ', num1
fin_si
fin

39
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

8. Realizar un algoritmo que muestre cual es la edad mayor de las edades de Antony y
Ruben

9. Realizar un algoritmo que convierta de dolares a soles o de soles a dolares.

Ejercicio 9
var
entero : opcion
real : cant_dolares, cant_soles, Total
inicio
Mostrar 'MENU'
Mostrar '1. Convertir Dolares a Soles'
Mostrar '2. Convertir Soles a Dolares'
Mostrar 'Elija la opcin (1 2) : '

Leer opcion
si opcion = 1 entonces
Leer cant_dolares
Total = 2.80 * cant_dolares
Mostrar 'El total es : ', Total, ' Nuevo Soles'
si no
Leer cant_soles
Total = cant_soles / 2.83
Mostrar 'El total es : ', Total, ' Dolares Americanos'
fin_si
fin

10. Del ejercicio anterior la compra = 2.83 y la venta = 2.80 de dolares siempre sern los
mismos si ejecutamos el algoritmo siempre, pero si pasa un tiempo y estos valores
cambian este algoritmo ya no ser de utilidad. Modificar o agregar las instrucciones
necesarias para nos pueda ser util este algoritmo siempre.

Tarea
Resolver los ejercicios propuestos utilizando el Diagrama de Flujo, N S y Pseudocdigo.

40
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructura Selectiva Mltiple

Con frecuencia en la prctica se presentan ms de dos elecciones posibles de una cierta


condicin. La estructura selectiva mltiple se utiliza para este tipo de problemas, es decir, que la
estructura selectiva mltiple evaluar una expresin que podr tomar n valores distintos;: 1, 2, 3,
4,..., n. Segn qu elija uno de estos valores en la condicin, se realizar una de las n acciones, o
lo que es igual, el flujo del algoritmo seguir un determinado camino entre los n posibles.

La representacin grfica de una estructura selectiva doble en las tres herramientas de


programacin es la siguiente:

Figura 25. Diagrama de flujo de la estructura selectiva mltiple

Figura 26. Diagrama estructurado o N-S de la estructura selectiva mltiple

41
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

en caso expresin hacer


valor 1: instruccin 1
instruccin 2
........
valor 2: instruccin 1
instruccin 2
........
valor 3: instruccin 1
. instruccin 2
. ........
.
valor n: instruccin 1
instruccin 2
........
otros : instruccin 1
instruccin 2
........
fin_caso

Figura 27. Pseudocdigo de la estructura selectiva mltiple

En el lugar donde aparece la palabra expresin pondremos lo que nosotros queremos evaluar;
puede ser una variable, una instruccin o cualquier cosa que tome diferentes valores.

En el lugar de <valor1> o <caso1>, <valor2> o <caso2>, ..., <valor n> o <caso n> pondremos los
diferentes valores que pueda tomar la decisin, segn los cuales el programa debe hacer una u
otra cosa. Pueden existir tanto valores como a nosotros nos convenga. Esta estructura es muy til
en el momento en el que debemos tomar diferentes decisiones de una misma condicin.

Ejemplo5:
Realizar un algoritmo que lea un nmero que represente el da de la semana y diga qu da es,
teniendo en cuenta lo siguiente: (Lunes=1, Martes=2, ..., Domingo=7).

Figura 28. Diagrama de flujo del ejemplo 5

42
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 29. Diagrama estructurado del ejemplo 5

algoritmo Ejemplo5
var
entero : da
inicio
leer (da)
en caso (da) hacer
1: escribir(Lunes)
2: escribir(Martes)
3: escribir(Mircoles)
4: escribir(Jueves)
5: escribir(Viernes)
6: escribir(Sabado)
7: escribir(Domingo)
fin_caso
fin

Figura 30. Pseudocdigo del ejemplo 5

Ejemplodeautoaprendizaje:
Resuelva en diagrama de flujo, estructurado y pseudocdigo.

Ejemplo6:
Escribir un algoritmo que solicite el ingreso de dos nmeros y a continuacin un operador
aritmtico (+, -, *, /). El algoritmo debe calcular el resultado de la operacin seleccionada.

43
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructura Selectiva Anidada

La estructura selectiva anidada llamada tambin estructura de decisin anidada, viene hacer una
estructura si-entonces que puede contener otra estructura si-entonces, y sta a su vez a otra
estructura si-entonces, y as sucesivamente cualquier nmero de veces; dentro de cada
estructura pueden existir diferentes instrucciones o acciones.

Figura 31. Diagrama de flujo de la estructura selectiva anidada

Figura 32. Diagrama estructurado de la estructura selectiva anidada

44
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

si condicin entonces
si condicin entonces
instruccin 1
instruccin 2
......
instruccin n
fin_si
si_no
si condicin entonces
instruccin 1
instruccin 2
......
instruccin m
si_no
instruccin 1
instruccin 2
......
instruccin m
fin_si
fin_si

Figura 33. Pseudocdigo de la estructura selectiva anidada

Ejemplo7:
Realizar un algoritmo que permita el ingreso de tres notas de un alumno. Calcular la nota
promedio e imprima alguno de estos mensajes:
a. Si el promedio est entre 20 y 16 mostrar Alumno Excelente
b. Si el promedio est entre 15 y 11 mostrar Alumno Regular
c. Si el promedio est entre 10 y 6 mostrar Alumno Malo
d. Si el promedio est entre 5 y 0 mostrar Alumno Psimo

Figura 34. Diagrama de flujo del ejemplo 7

45
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

Figura 35. Diagrama estructurado del ejemplo 7

algoritmo Ejemplo7
var
entero : n1, n2, n3, prom
inicio
leer (n1, n2, n3)
prom = (n1+n2+n3) / 3
si (prom<=5 y prom>=0) entonces
escribir(Alumno Pesimo)
else
si (prom<=10) entonces
escribir(Alumno Malo)
else
si (prom<=15) entonces
escribir(Alumno Regular)
else
si (prom<=20) entonces
escribir(Alumno Excelente)
else
escribir(Promedio desconocido)
fin_si
fin_si
fin_si
fin_si
fin

Figura 36. Pseudocdigo del ejemplo 7

46
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

LABORATORIO N 04
Estructuras selectivas mltiples

Ejercicios:

1. Realizar un algoritmo que ingrese una vocal minscula y lo muestre en mayscula.

Ejercicio 1
var
carcter : vocal_min, vocal_may
inicio
Mostrar 'Ingrese una vocal minscula : '
Leer vocal_min
en_caso (vocal_min)
'a' : Mostrar 'A'
'e' : Mostrar 'E'
'i' : Mostrar 'I'
'o' : Mostrar 'O'
'u' : Mostrar 'U'
sino : Mostrar 'Error no es vocal minscula'
fin_caso
fin

2. Realizar un algoritmo que ingrese una vocal mayscula y lo muestre en minscula.

3. Realizar un algoritmo que ingrese nmero del 1 al 10 y lo muestre en letras.

4. Realizar un algoritmo que determine en que estacin del ao nos encontramos de


acuerdo a la siguiente tabla:

Valor Estacin
1 Verano
2 Otoo
3 Invierno
4 Primavera

47
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

5. Realizar un algoritmo que simule la funcin de un semforo, determine el color y su


significado de acuerdo a la siguiente tabla:

Valor Color
1 Rojo
2 Verde
3 Ambar

6. Realizar un algoritmo que solicite el ingreso de dos nmeros y de un operador


( + , - , * , /) . El algoritmo debe calcular el resultado de la operacin seleccionada.

7. Realizar un algoritmo que simule un cajero automtico de cualquier banco. Se desea


actualizar el saldo de ahorro de Un cliente tiene ahorrado un valor ingresado por
teclado, los tipos de movimientos que puede hacer es 1 2. Si el tipo de movimiento es
1 representa un deposito. Si es 2 representa un retiro. En ambos casos se debe pedir
el monto de la transaccin.

Tarea:
Resolver los siguientes ejercicios en Pseudocdigo.

48
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

LABORATORIO N 05
Estructuras selectivas anidadas

Ejercicios:

1. Leer un nmero entero y decir si es positivo, negativo o neutro.

2. Leer un nmero entero y decir si es positivo par, positivo impar, negativo par, negativo
impar cero.

3. Realizar un algoritmo que lea dos nmeros enteros y determinar si son iguales o
diferentes, si son diferentes mostrar tambin quien es el mayor y menor.

4. Determinar cual es el numero mayor de tres nmeros enteros ingresados por teclado.

5. Calcular el numero menor de cuatro nmeros ingresados por teclado.

6. Convertir una calificacin numrica a una calificacin de letra de acuerdo con la


siguiente escala:

90 100 A
80 89 B
70 79 C
60 69 D
Menos de 60 E

Si la calificacin no es la correcta, mostrar el mensaje Calificacin Incorrecta.

7. En una tienda efectan un descuento a los clientes dependiendo del monto de la


compra. El descuento se efecta con base al siguiente criterio:

compra < $500.00 No hay descuento


$500.00 <= compra <= $1,000.00 5% de descuento
$1,000.00 < compra <= $7,000.00 11% de descuento
$7,000.00 < compra <= $15,000.00 18% de descuento
compra > $15,000.00 25% de descuento

Escriba un programa tal, que dado el importe de la compra de un cliente, determine lo


que el mismo debe de pagar.

49
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

8. El valor de y se define como sigue:

y = x 2 + 2x 3 s -3 <= x <= 2
y = 5x + 7 s 2 < x <= 10
y=0 s x <= -3 x > 10

Escriba un programa que encuentre y dando el usuario la entrada para x.

8. Escriba un programa que permita calcular el valor de f(x), segn la expresin:

X2 si(x mod 4) = 0
X/6 si(x mod 4) = 1
f(x) X si(x mod 4) = 2
X3 + 5 si(x mod 4) = 3

x es una variable de tipo entero, que expresa el dato que se ingresa.

10. Escriba un programa que calcule el precio del boleto de ida y vuelta en ferrocarriles,
conociendo la distancia del viaje de ida y el tiempo de estancia. El precio por kilmetro
es de $0.17. Se sabe adems que si el nmero de das de estancia es superior a 7 y la
distancia total (ida y vuelta) a recorrer es superior a 800 Km. el boleto tiene un
descuento del 30%.

Tarea:
Resolver los siguientes ejercicios en Pseudocdigo.

50
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructuras Repetitivas

Las computadoras estn diseadas para aquellas aplicaciones en las cuales una operacin o
conjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es el
algoritmo necesario para repetir una o varias acciones por un nmero determinado de veces, a
est estructura se la llama Estructura Repetitiva.

Las estructuras repetitivas se utilizan cuando se desea que una instruccin o bloque de
instrucciones se repita un nmero determinado de veces o hasta que una condicin de
terminacin se cumpla.

Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces se
denominan bucles, y se llama iteracin al hecho de repetir la ejecucin de una secuencia de
acciones. Iterar es repetir una vez el bucle.

Se debe tener en cuenta lo siguiente para la construccin de una estructura repetitiva:

El cuerpo del bucle: Es el grupo de instrucciones que se van a repetir. Dentro del cuerpo
del bucle debe existir una instruccin que modifique la condicin lgica de terminacin.
Las sentencias de inicializacin. Son instrucciones que inicializan contadores y
acumuladores.
Las condiciones para la terminacin del bucle: Expresiones lgicas que controlan la
terminacin del bucle.

A continuacin se detallan tres estructuras repetitivas bsicas:

1. Estructura Repetitiva Desde / Para. (FOR)


2. Estructura Repetitiva Hacer Mientras. (DO WHILE)
3. Estructura Repetitiva Mientras. (WHILE)

Para poder entender cmo funciona un proceso repetitivo, se necesita conocer el concepto de dos
expresiones: Qu es un contador? y Qu es un acumulador?

CONTADOR
En un proceso repetitivo cuya funcin es contar los sucesos o acciones internas del bucle, como
pueden ser el nmero de iteraciones del bucle, la cantidad de elementos que tiene un archivo, un
vector, una matriz, etc. Una forma de controlar un bucle es mediante un contador.

Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante o
fija en cada iteracin.
La forma de representar un contador es:

contador = contador 1

La expresin anterior se debe interpretar como asignar a la variable contador el valor que tenia
anteriormente ms uno o menos uno, dependiendo del caso si se quiere incrementar o
decrementar.

51
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Nota:
En todo contador es necesario que exista una instruccin que inicializa la variable que va a tener
la funcin de contador y esta variable puede ser cualquier identificador.

Ejemplo 1: Contador que incrementa de uno en uno.


La variable contador va a tener la funcin de ser el contador.

contador = 1 // Inicializacin de la variable contador con el valor 1

contador = contador + 1 // la variable contador incrementa a 2 por la suma

Ejemplo 2: Contador que decrementa de uno en uno


La variable cont va a tener la funcin de ser el contador.

cont = 10 // Inicializacin de la variable cont con el valor 10

cont = cont - 1 // la variable cont decrementa a 9 por la resta

10
Nota:
Un contador puede ser positivo (incrementos, uno a uno) o negativo (decrementos, uno a uno). Un
contador tambin puede incrementar o decrementar de dos en dos, tres en tres, cuatro en cuatro y
as sucesivamente, dependiendo de la tarea que est realizando el bucle.

Ejemplo 3: Contador que incrementa de dos en dos

c = 0 // Inicializacin de la variable c con el valor 0

c = c + 2 // la variable c incrementa a 2 por la suma

Ejemplo 4: Contador que decrementa de cinco en cinco

contador = 57 // la variable contador es igual a 57

contador = contador - 5 // el contador decrementa a 52

57

52
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

ACUMULADOR
Un acumulador es una variable cuya misin es almacenar cantidades variables. Realiza la misma
funcin que un contador pero con la diferencia de que el incremento o decremento es variable y
no constante como en el contador.

La forma de representar un acumulador es:

S = S + valorVariable

Nota:
En todo acumulador es necesario que exista una instruccin que inicializa la variable que va a
tener la funcin de acumulador y esta variable puede ser cualquier identificador.

Ejemplo 5:
Calcular el promedio de notas de 10 alumnos, primero debemos utilizar una variable acumulador
para ir sumando las 10 notas (cantidades variables) y luego dividir este valor entre diez. La
variable S va a tener la funcin de ser el acumulador.

Solucin del ejemplo 5.

S=0
leer(nota)
S=S+nota
Prom=S/10

La explicacin del algoritmo es el siguiente:

S = 0 // Inicializacin de la variable S acumulador con el


valor 0

// el bucle; tiene dos instrucciones.

leer (nota) // 1. Se lee la 1era nota

S = S + nota // Se suma la 1era nota + el valor de S que es cero


0
// Imaginemos que la 1era nota = 13, ahora S vale 13
// terminado regresa el bucle a su primera instruccin
//
// 2. Leer la 2da nota en la misma variable nota
// imaginamos ahora nota=08, ahora S vale 13+8=21
//
// 3. Leer nota por tercera vez
// imaginamos ahora nota=17, ahora S vale 21+17=38
// 4. Leer nota por cuarta vez
// nota=11, ahora S vale 38+11=49
// y asi sucesivamente hasta leer las 10 notas,
// terminado en la varible acumuladora esta el total de
// la suma de las 10 notas.
Prom = S/10 // 5. Hallar el promedio = S / 10

Esto es la forma como trabaja un acumulador.


53
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructura Repetitiva Desde/Para


En muchas ocasiones se conoce de antemano el nmero de veces que se desean ejecutar las
acciones o instrucciones de un bucle. En estos casos en los que el nmero de iteraciones es fijo,
se debe usar la estructura desde/para. Por ejemplo, ingresar 10 notas, 100 nmeros, etc.

La representacin grfica de la estructura repetitiva desde/para en un Diagrama de Flujo es el


siguiente:

Figura 37. Diagrama de flujo de la estructura repetitiva Desde/Para

En su forma ms tpica y bsica, esta estructura requiere una variable entera que cumple la
funcin de un contador de vueltas. En la seccin indicada como inicializacin, se suele colocar
el nombre de la variable que har de contador, asignndole a dicha variable un valor inicial. En la
seccin de condicin se coloca la condicin que deber ser verdadera para que el ciclo contine
(en caso de falso el ciclo se detendr). Y finalmente, en la seccin modificacin se coloca una
instruccin que permite modificar el valor de la variable que hace de contador (para permitir que
alguna vez sea falsa).

Ejemplo: Queremos que se repita 50 veces el bloque de instrucciones.


Describiremos el siguiente ejemplo por etapas:
Nota: El smbolo de la flecha apuntando a la izquierda ( ) significa = (igual)

1era Etapa (c=1): Cuando el ciclo comienza antes de dar la primera vuelta, la variable de
inicializacin toma el valor indicado en la seccin de inicializacin.

1era Etapa

54
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

2da. Etapa (c<=50): Inmediatamente se verifica en forma automtica, si la condicin es


verdadera. En caso de serlo se ejecuta el bloque de instrucciones del ciclo, es decir, si el bloque
tuviera 5 instrucciones esas se realizan una por una.

2da Etapa

3era. Etapa (c=c+1): Al finalizar de ejecutarse el bloque de instruccines del bucle, la ejecucin
de la estructura repetitiva se regresa a la seccin de modificacin. Se incrementa en una unidad
en contador.

3era Etapa

4ta Etapa (c<=50): Seguidamente, se vuelve a comprobar la condicin si es verdadera, y si lo es,


vuelve a realizar las instrucciones del ciclo, as prosigue ejecutndose todo el bucle hasta que la
condicin es falsa y sale del bucle.

55
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

4ta Etapa

Analicemos el ejemplo:
La variable c toma inicialmente el valor 1.
Se controla automticamente el valor de la condicin: como c vale 1 y esto es menor que
50, la condicin da verdadero.
Como la condicin fue verdadera, se ejecutan la(s) instruccion(es).
Al finalizar de ejecutar todas las instrucciones, se retorna a la instruccin c = c + 1, por lo
que la variable c se incrementa en uno.
Se vuelve a controlar automticamente si c es menor o igual a 50. Como ahora su valor es
2 y sigue siendo menor que 50, se ejecuta nuevamente el bloque de instrucciones e
incrementa nuevamente la variable del contador c.
El proceso se repetir hasta que la variable c sea incrementada al valor 51. En ese
momento la condicin ser falsa, el ciclo se detendr y saldr del bucle repetitivo.

La variable c puede ser inicializada y finalizar en cualquier valor. Adems, no es obligatorio que la
instruccin de modificacin sea un incremento de tipo contador c = c + 1. Puede ser tambin c = c
+ 2, en lugar de c = c + 1, el valor de c ser incrementado de a 2 en cada vuelta, y no de a uno.
En este caso, esto significar que el ciclo no efectuar las 50 vueltas sino solo 25 Por qu?

La instruccin de modificacin no solamente puede ser un incrementador, tambin puede ser un


decrementador, es decir, la variable de inicializacin decrementar a lo que se desea, esto se
puede hacer siempre y cuando la variable de inicializacin comienza en un valor mayor que el de
la condicin, por ejemplo:

56
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Analicemos el ejemplo:
La variable c toma inicialmente el valor 100.
El valor de la condicin es c >= 1.
La variable c decrementa de dos en dos.
Esto quiere decir que el bucle se repite 50 veces, que comienza en un valor de contador =
100, decrementa de dos en dos, hasta que la condicin es falsa.

La representacin grfica de la estructura repetitiva desde/para en el diagrama estructurado y


pseudocdigo son los siguientes:

estructura repetitiva
desde/para

Figura 38. Diagrama estructurado de la estructura repetitiva Desde/Para

modificacin
condicin
inicializacin

desde c = vi hasta vf inc|dec valor hacer


instruccin 1
instruccin 2
.
.
instruccin n
fin_desde

Figura 39. Pseudocdigo de la estructura repetitiva Desde/Para

57
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejemplo 1:
Realizar un algoritmo que permita hallar la suma de los 10 primeros nmeros enteros positivos, y
su promedio.

Cuerpo del bucle

Figura 40. Diagrama de flujo del ejemplo 1

Cuerpo del bucle

Figura 41. Diagrama estructurado del ejemplo 1

58
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

algoritmo Ejemplo1
var
entero: c , suma
real: prom
inicio
suma = 0
desde c = 1 hasta 10 inc 1 hacer
suma = suma + c Cuerpo del bucle
fin_desde
prom = suma/10
escribir(La suma es : ,suma)
escribir(El promedio es : ,prom)
fin
Figura 42. Pseudocdigo del ejemplo 1

Nota:
En Pseudocdigo si la instruccin de incremento es en uno, se puede obviar la instruccin inc 1, y
solamente se puede colocar: desde c = 1 hasta 10 hacer . Porque en algoritmo se
sobrentiende que aumenta en 1.

Ejemplo 2:
Realizar un algoritmo que permita hallar la suma y promedio de 20 nmeros enteros ingresados
por teclado.

Cuerpo del bucle

Figura 43. Diagrama de flujo del ejemplo 2

59
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Cuerpo del bucle

Figura 44. Diagrama estructurado del ejemplo 2

algoritmo Ejemplo2
var
entero: n, c, suma
real: prom
inicio
suma = 0
desde c = 1 hasta 20 inc 1
leer(n)
Cuerpo del bucle
suma = suma + n
fin_desde
prom = suma/20
escribir(La suma es : ,suma)
escribir(El promedio es : ,prom)
fin
Figura 45. Pseudocdigo del ejemplo 2

Ejemplos de autoaprendizaje:
Resuelva en diagrama de flujo, estructurado y pseudocdigo.

Ejemplo 3: Realizar un algoritmo que me permita leer 10 nmeros positivos y negativos, e imprima
solamente los nmeros positivos.

Ejemplo 4:
Realizar un algoritmo que me permita leer 20 nmeros e imprimir cuntos son positivos, negativos
y neutros.
Dato: Neutro se le conoce al cero 0

60
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

EJERCICIOS DE ESTRUCTURA REPETITIVA


DESDE/PARA

Ejercicios:
1. Hallar la suma de los 50 primeros nmeros enteros positivos.
2. Hallar la suma y promedio de los 35 primeros nmeros enteros positivos pares.
3. Hallar la suma y promedio de los 70 primeros nmeros enteros positivos impares.
4. Hallar la suma y promedio de los nmeros enteros positivos comprendidos entre 100 y 200.

Tarea
Realizar los 4 ejercicios utilizando los diagramas de Flujo, N S y Pseudocdigo.

61
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructura Repetitiva Hacer - Mientras


Existen muchas situaciones en las que se desea que un bucle se ejecute al menos una vez antes
de comprobar la condicin de repeticin, para ello se puede utilizar la estructura repetitiva
Hacer - Mientras. Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo
menos una vez se ejecutar el bloque repetitivo.

Cuando una instruccin Hacer-Mientras se ejecuta, lo primero que sucede es la ejecucin del
bucle (todas las instrucciones) y a continuacin se evala la expresin booleana de la condicin.
Si se evala como verdadera, el cuerpo del bucle se repite y se vuelve a evaluar la condicin, si
sigue siendo verdadera se seguir repitiendo el bucle hasta que la condicin sea falsa.

Dentro del bucle existir una instruccin que en un cierto momento har que la condicin sea
falsa.

La representacin grfica de la estructura repetitiva Hacer-Mientras es la siguiente:

Figura 46. Diagrama de flujo de la estructura repetitiva Hacer-Mientras

estructura repetitiva
hacer/mientras

Figura 47. Diagrama estructurado de la estructura repetitiva Hacer-Mientras

hacer
instruccin 1
instruccin 2
.
.
instruccin n
mientras (condicin)

Figura 48. Pseudocdigo de la estructura repetitiva Hacer-Mientras

62
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

A continuacin se presenta el siguiente ejemplo para comprender el funcionamiento de la


estructura repetitiva Hacer-Mientras.

Ejemplo 5:
En el curso de Algoritmos y Diagramacin existen 40 alumnos, de los cuales se tiene el promedio
de la Primera Unidad. Se pide realizar un algoritmo que permita hallar el promedio general de
estos alumnos.

Solucin

Cuerpo del bucle

Figura 49. Diagrama de flujo del ejemplo 5

Desarrollamos el ejemplo 5 en 5 pasos:

1. Se asignan valores a las variables c = 0 y suma = 0


2. Se ingresa al cuerpo del bucle (no existe ninguna instruccin que nos impida), se tiene tres
instrucciones:
2.1. En la primera instruccin que se ejecuta tenemos un contador, este contador
incrementa en una unidad siendo su resultado c = 1.
2.2. En la segunda instruccin se lee la nota del primer alumno (esta nota se ingresa por
teclado).
63
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

2.3. La tercera instruccin es un acumulador; cuya funcin es acumular la suma de todas


las notas (40 notas).
3. A continuacin, se evala la condicin; se pregunta: c es menor que 40? Si la respuesta
es verdadera se regresa al paso 2 y se ejecutan las tres instrucciones del cuerpo del bucle
nuevamente, de lo contrario se contina con el paso 4.
4. Se llega a este paso despus de finalizarse las 40 iteraciones que da el bucle. En la
variable suma se tiene la suma total de las notas y ahora se ejecuta la instruccin que
permite hallar el promedio.
5. Muestra en pantalla el resultado del promedio de notas.

La solucin del ejemplo 5 en el diagrama estructurado y pseudocdigo es el siguiente:

Cuerpo del bucle

Figura 50. Diagrama estructurado del ejemplo 5

algoritmo Ejemplo5
var
entero: nota, c, suma
real: prom
inicio
c=0
suma = 0
hacer
c=c+1
leer(nota) Cuerpo del bucle
suma = suma + nota
mientras (c < 40)
prom = suma/c
escribir(El promedio general es : ,prom)
fin

Figura 51. Pseudocdigo del ejemplo 5

64
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejemplo 6:
Se desea contabilizar cuntos nmeros son positivos, negativos y neutros del ingreso continuo de
nmeros enteros. Este proceso re repite hasta que el usuario pulse la tecla N al mensaje en
pantalla Desea Continuar[s/n]:.

Solucin
Para la solucin del problema se va a necesitar de tres contadores, que realizarn la accin de
contar cuntos nmeros son positivos, negativos y neutros se ingresarn por teclado, de una serie
de nmeros.

Para ello, utilizaremos tres variables, a las que llamaremos:

cc : contador de ceros
cp : contador de positivos
cn : contador de negativos

Adems, utilizaremos estructuras selectivas anidadas, con las que haremos la comprobacin de
cules nmeros son iguales a cero, positivos y negativos. Y de acuerdo al resultado de la
condicin, los contadores (cc, cp y cn) incrementarn su valor.

Terminadas de realizar todas las condiciones, se preguntar al usuario si Desea continuar [s/n]
ingresando ms nmeros, para ello utilizaremos una variable de tipo carcter, llamado opc. El cul
almacenar el carcter de s de s continuo, o n de no continuo ingresando valores. De
acuerdo a la respuesta seguiremos o terminamos el bucle.

Al responder en 'n' de no continuo el algoritmo debe reportar lo siguiente:

Cantidad de nmeros ceros.


Cantidad de nmeros positivos.
Cantidad de nmeros negativos.

65
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 52. Diagrama de flujo del ejemplo 6

66
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

Figura 53. Diagrama estructurado del ejemplo 6

algoritmo Ejemplo6
var
entero: n, cc, cp, cn
caracter: opc
inicio
cc = 0
cp = 0
cn = 0
hacer
leer (n)
si (n=0) entonces
cc = cc + 1
sino
si (n>0) entonces
cp = cp + 1
sino
cn = cn + 1
fin_si
fin_si
escribir(Desea continuar : [s/n] :)
escribir(opc)
mientras (opc = s)
escribir(Cantidad de ceros : ,cc)
escribir(Cantidad de positivos : ,cp)
escribir(Cantidad de ceros : ,cn)
fin

Figura 54. Pseudocdigo del ejemplo 6

67
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejemplo de autoaprendizaje:
Resuelva en diagrama de flujo, diagrama estructurado y pseudocdigo.

Ejemplo 7:
En una campaa mdica de medicin de presin, se pide que se ingresen todas las edades de los
pacientes que sern atendidos. Se solicita que se calcule la mayor y menor edad ingresada. El
ingreso acaba cuando se ingrese un valor 0.

68
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

EJERCICIOS DE ESTRUCTURA REPETITIVA


HACER_MIENTRAS

Ejercicios:
1. Hallar la suma de los 50 primeros nmeros enteros positivos.
2. Hallar la suma y promedio de los 35 primeros nmeros enteros positivos pares.
3. Hallar la suma y promedio de los 70 primeros nmeros enteros positivos impares.
4. Hallar la suma y promedio de los nmeros enteros positivos comprendidos entre 100 y 200.
5. Hallar la suma de los nmeros enteros positivos pares e impares comprendidos entre 201 y
300.

Tarea
Realizar los 5 ejercicios utilizando el Pseudocdigo.

69
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Estructura Repetitiva Mientras

El proceso de una estructura repetitiva Mientras es el siguiente: para que ingrese al cuerpo del
bucle tiene que evaluarse una condicin, si sta es verdadera se ingresa y se realizan todas las
instrucciones que estn dentro del cuerpo del bucle; terminado la ltima instruccin se vuelve a
comprobar la condicin; se seguir realizando el bucle mientras la condicin siga siendo
verdadera y si en un momento es falsa sale del bucle.

Es decir, la estructura repetitiva Mientras es aquella en que el cuerpo del bucle se repite mientras
se cumpla una determinada condicin, y termina cuando ya no se cumple.

Si al querer ingresar al cuerpo del bucle por primera vez y la condicin es falsa, no ingresa al
bucle, ninguna accin se realiza y el algoritmo prosigue en la siguiente instruccin fuera del bucle.

La representacin grfica de la estructura repetitiva Mientras es la siguiente:

Figura 55. Diagrama de Flujo de la estructura repetitiva Mientras

Figura 56. Diagrama Estructurado de la estructura repetitiva Mientras

70
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

mientras (condicin) hacer


instruccin 1
instruccin 2
.
.
instruccin n
fin_mientras

Figura 57. Pseudocdigo de la estructura repetitiva Mientras

A continuacin se presenta el siguiente ejemplo para comprender el funcionamiento de la


estructura repetitiva Mientras.

Ejemplo 8:
Escribir un algoritmo que lea las 40 notas finales del curso de Fundamentos de Programacin, e
informe cuntos alumnos han aprobado y cuntos desaprobaron. Dato: (Nota >= 10.5 Aprobado)

Figura 58. Diagrama de Flujo del ejemplo 8

71
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

Figura 59. Diagrama estructurado del ejemplo 8

algoritmo Ejemplo8
var
entero: c, ca, cd
real: notaFinal
inicio
c = 0
ca = 0
cd = 0
mientras ( c < 40 ) hacer
c=c+1
leer (notaFinal)
si (notaFinal >= 10.5) entonces
ca = ca + 1
sino
cd = cd + 1
fin_si
fin_mientras
escribir(Aprobados : ,ca)
escribir(Desaprobados : ,cd)
fin

Figura 60. Pseudocdigo del ejemplo 8

72
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejemplo 9:
Realizar un algoritmo que permita calcular la suma de los nmeros enteros comprendidos entre
dos cantidades ingresadas por teclado. Hallar adicionalmente el promedio de la suma.

Figura 61. Diagrama de Flujo del ejemplo 9

73
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

Figura 62. Diagrama estructurado del ejemplo 9

algoritmo Ejemplo9
var
entero: Pnum, Snum, c, suma, aux
real: prom
inicio
leer( Pnum , Snum )
c =0
suma = 0
si (Pnum>Snum) entonces
aux = Pnum
Pnum = Snum
Snum = aux
fin_si
mientras ( Pnum <= Snum ) hacer
c=c+1
suma = suma + Pnum
Pnum = Pnum + 1
fin_mientras
prom = suma / c
escribir(La suma es : ,suma)
escribir(El promedio es : ,prom)
fin

Figura 63. Pseudocdigo del ejemplo 9

74
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

EJERCICIOS DE ESTRUCTURA REPETITIVA


MIENTRAS

Ejercicios:
1. Hallar la suma de los 100 primeros nmeros enteros positivos.
2. Hallar la suma y promedio de los 50 primeros nmeros enteros positivos pares.
3. Hallar la suma y promedio de los 100 primeros nmeros enteros positivos impares.
4. Hallar la suma y promedio de los nmeros enteros positivos comprendidos entre 500 y
1000.
5. Hallar la suma de los nmeros enteros positivos pares e impares comprendidos entre 501 y
999.

Tarea
Realizar los 5 ejercicios utilizando el Pseudocdigo.

75
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

LABORATORIO N 09
Estructuras repetitivas

Ejercicios:

1. Disear un algoritmo que permita visualizar la tabla de multiplicar de un nmero entero


ingresado por teclado.

1x5= 5
2 x 5 = 10
3 x 5 = 15

12 x 5 = 60

2. Cuantos nmeros son pares positivos y negativos, impares positivos y negativos entre N1 y
N2 un rango de valores enteros.

3. Lea una serie de nmeros hasta ingresar el valor de cero. Luego indique cuantos nmeros
positivos, negativos, pares e impares fueron ingresados.

4. A una fiesta ingresaron personas de diferentes edades, no se permite el ingreso de


menores de edad. Se pide encontrar la edad menor, la mayor y el promedio de edades. El
ingreso debe terminar cuando la edad ingresada sea cero.

5. Hallar el factorial de un nmero.


Ejemplo: n = 5, lo que debe mostrar el programa es:

5! = 5 x 4 x 3 x 2 x 1= 120

6. Lea N nmeros e indique el mayor y el menor ingresado.

76
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

7. Obtenga el cociente y el residuo de una divisin calculando la cantidad de veces


que un nmero est contenido en otro, mediante restas sucesivas.
Por ejemplo: Si el dividendo es n1=52 y el divisor es n2=8, entonces

52 8=44
44
36 28
28 20
20 12
12

Ya no seguimos restando pues 4 es menor que 8. El cociente estar dado por el


nmero de restas (6) y el residuo por el ltimo nmero obtenido (4). El programa
debe mostrar las restas sucesivas.

8. Escribir un algoritmo que me permita encontrar el mximo comn mltiplo de un


nmero.
Por ejemplo: 30 = 2x3x5.

9. Escribir un algoritmo que diga si es un nmero primo.

10. Escriba un algoritmo que permita reducir una fraccin a su mnima expresin. Por
ejemplo:
24/30 = 4/5.

Resolver en Pseudocdigo cada ejercicio por la estructura repetitiva que crea ms


conveniente.

77
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA DE INGENIERIA DE SISTEMAS

INSTALACIN E INTERFAZ GRFICA


DE LA HERRAMIENTA DE
PROGRAMACIN

NETBEANS 6.0

78
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

INSTALACIONDEL NETBEANS 6.0


El IDE de NetBeans es gratuito, y de codigo abierto para desarrolladores de software. En esta
version tienes al alcance de tu mano todas las herramientas necesarias para crear aplicaciones
profesionales para entornos de escritorio, empresa, web y moviles, ya sea en C/C++, Java e
incluso Ruby. El IDE ha sido desarrollado para distintas plataformas como Linux, MacOS X,
Solaris y tambien Windows.

Pueden bajar el instalador haciendo click aqu desde la misma pagina web oficial del NetBeans o
desde mi espacio en el servidor FTP de la universidad haciendo click aqu (Recomendado). Para
poder llevar acabo la instalacin es necesario tener instalado el JDK (Java Development Kit), en el
archivo que han bajado desde mi espacio FTP esta incluido este archivo.

PROCESO DE INSTALACION
Se necesita tener estos dos (2) programas almacenados en su computadora y realizar los
siguientes pasos:

Imagen 1: Pasos para instalar el Netbeans

1er PASO: Instalar el software JDKpre requisito para instalarel NetBeans


El JDK (Java Development Kit) viene hacer el kit de desarrollo de Java, que es un conjunto
de herramientas , utilidades, documentacin y ejemplos para desarrollar aplicaciones Java.
El que vamos a utilizar es el jdk-6u4-windows-i586-p.exe

A continuacin se presenta el proceso de instalacin de este software.

1ero: Doble click sobre el software jdk-6u4-windows-i586-p.exe

Imagen 2: Software JDK

79
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

2do. Esperar mientras se carga el Asistente de Instalacin.

Imagen 3: Asistente de instalacin

3ero. Click en el boton aceptar el acuerdo de licencia (en ingles).

Imagen 4: Acuerdo de licencia

4to. Click en el boton next (siguiente). No modificar nada.

Imagen 5: Programas del kit de desarrollo de java que


sern instalados

80
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

5to. Esprerar mientras se esta instalando el kit de desarrollo de java

Imagen 6: Instalando el kit de desarrollo de java

6to. Click en el boton next (siguiente). No modificar nada.

Imagen 7: Los idiomas que sern instalados

7mo. Esperar mientras se termina el proceso de instalacin.

Imagen 8: Instalacin en proceso


81
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

8vo. Finalizacin de la instalacin, hacer click en el boton Finish

Imagen 9: Fin de la instalacin

2do PASO: Ejecutar elinstalador del NetBeans


La herramienta de programacin NetBeans es software libre, es decir, no se necesita pagar
licencia por tenerlo instalado en nuestra computadora.

A continuacin se presenta el proceso de instalacin del NetBeans

1ero: Doble click sobre el software netbeans-6.0-windows.exe

Imagen 10: Software NetBeans

2do. Esperar mientras se carga el Asistente de Instalacin.

Imagen 11: Cargando el asistente de instalacin

82
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

3ero. Click en el boton next (siguiente)

Imagen 12: Bienvenido al instalador del NetBeans

4to. Hacer click en el check para estar de acuerdo con la licencia y luego click en el
boton next.

Imagen 13: Acuerdo de licencia

5to. Click en el boton next (siguiente). No modificar nada.

Imagen 14: Eleccin de las carpetas donde se instalar

83
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

el NetBeans y JDK

84
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

6to. Click en el boton next (siguiente). No modificar nada.

Imagen 15: Eleccin de las carpetas de instalacin de


servidores y propiedades

7mo. Click en el boton next (siguiente) para comenzar la instalacin del NetBeans.

Imagen 16: Comienzo del proceso de instalacin

8vo. Esperar mientras se termina el proceso de instalacin.

Imagen 17: Instalacin en proceso

85
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

9no. Click en el boton finish(final) para terminar con la instalacin.

Imagen 18: Fin de la instalacin

Terminado la instalacin de los dos programas ya tenemos instalado el NetBeans en nuestra


computadora y lo podemos apreciar por el siguiente icono.

Imagen 19: Icono del NetBeans

EJECUTANDO NETBEANSPORPRIMERA VEZ


Existen dos caminos:
1. INICIO >> PROGRAMAS >> NETBEANS >> NETBEANS IDE 6.0

2. DOBLE CLICK SOBRE EL ICONO DEL NETBEANS UBICADO EN EL ESCRITORIO

86
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

INTERFAZ GRAFICA DEDESARROLLO (IDE)


DEL NETBEANS 6.0

1. Barra de ttulo: Icono del programa y el nombre


de la herramienta de programacin

2. Barra de
mens 3. Barra
estandar

4. Ventana
de proyectos,
archivos y
servicios 6. Ventana
de edicin

5. Ventana
de navegacin

87
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Definicin de NETBEANS
Netbeans es un entorno de desarrollo integrado (IDE) que permite editar programas en java,
compilarlos, ejecutarlos, depurarlos, construir rpidamente el interfaz grfico de una aplicacin
eligiendo los componentes de una paleta, etc.

1. Barra de ttulo
Todas las ventanas de una herramienta de programacin contienen una barra de ttulo en el cual
se ve el ttulo de la aplicacin (programa) y los botones de control de la ventana con los cuales es
posible hacer que se reduzca a un botn en la barra de tareas (tamao mnimo), ordenar que
ocupe toda la pantalla (tamao mximo), lograr que recupere el tamao que tena antes de ser la
ventana mxima o mnima (restaurar) o, simplemente, cerrar la ventana.

2. Barra de mens
En est rea aparecen los mens disponibles. Cada men contiene acciones especficas relativas
al nombre del men.

3. Barra estandar
La barra de herramientas estndar contiene botones para las operaciones ms habituales de los
mens File(Archivo), Edit(Edicin), etc. New Project(Nuevo proyecto), Open Project(abrir
proyecto), Save all (guardar todo), etc. Estos botones se utilizan del mismo modo que los
comandos de men equivalentes.

4. Ventana de proyectos, archivos y servicios


Es la ventana que va a contener el objeto activo del proyecto, los paquetes y librerias. Ademas los
archivos del proyecto y los servicios que se desean utilizar en la aplicacin.

5. Ventana de navegacin
Esta ventana nos permite visualizar los objetos que contiene el proyecto actual agrupados por
categoras

6. Ventana de edicin
Es la ventana donde se va a realizar el cdigo de los programas, el diseo de los formularios, etc.

88
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA DE INGENIERIA DE SISTEMAS

BIENVENIDOS AL CURSO DEFUNDAMENTOSDE


PROGRAMACIN

QUE ES UNPROGRAMA?
Conjunto de cdigo, agrupados por instrucciones, donde cada instruccin le dice a la computadora
que operaciones debe realizar para resolver el problema.

Conjunto
de
cdigo

Imagen 1: Cdigo de un programa.

89
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

QUE ES UNLENGUAJE DE PROGRAMACIN?


Un Lenguaje de Programacin es un lenguaje que los programadores usan para comunicar
instrucciones a una computadora y poder ejecutar un programa. Est constituido por un grupo de
reglas gramaticales, un grupo de smbolos utilizables, un grupo de trminos monosmicos (es
decir, con sentido nico) que definen su estructura y el significado de sus elementos y
expresiones.

TIPOS DE LENGUAJE DE PROGRAMACIN


Existen tres tipos de lenguaje de programacin:
1. Lenguajes de bajo nivel
2. Lenguajes de medio nivel
3. Lenguajes de alto nivel

Lenguajes de bajo nivel


Son lenguajes totalmente dependientes de la mquina, es decir que el programa que se realiza
con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Este lenguaje es
mucho ms rpido que los lenguajes de alto nivel. La desventaja es que son bastantes difciles de
manejar y usar, adems de tener cdigos fuente enormes donde encontrar un fallo es casi
imposible.

Ejemplo:
Lenguaje ASSEMBLER

Imagen 2: Cdigo Assembler


Lenguajes de alto nivel
Son aquellos que se encuentran ms cercanos al lenguaje natural que al lenguaje mquina. Se
tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un
programa escrito en un lenguaje de alto nivel, lo puedes migrar de una mquina a otra sin ningn
tipo de problema.

Ejemplos:
JAVA
PROLOG
C++
DELPHI
Otros.

Imagen 3: Herramienta de Programacin NetBeans 6.0

90
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Lenguajes de Medio nivel


Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos
lenguajes podra situarse el lenguaje de programacin C ya que puede acceder a los registros del
sistema, trabajar con direcciones de memoria, todas ellas caractersticas de lenguajes de bajo
nivel y a la vez realizar operaciones de alto nivel.
Ejemplos
C
BCPL

CARACTERSTICAS DE UNPROGRAMA
Debe ser confiable y funcional.
Advertir errores de entrada obvios comunes.
Documentado adecuadamente.
Ser comprensible.
Cdificado en el lenguaje apropiado.

DATOS
La materia prima de que se nutren los programas para producir resultados. Pueden ser de varios
tipos: numricos, alfabticos, alfanumricos (cualquier conjunto de smbolos) y lgicos (solo dos
valores posibles, verdadero o falso).

INFORMACIN
Es lo que se obtiene del procesamiento de datos. Todo aquello que permite adquirir cualquier tipo
de conocimientos

Imagen 4: Procesando los datos

91
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
MIPRIMERPROYECTO

El NetBeans es un entorno de desarrollo integrado que permite crear aplicaciones de escritorio,


aplicaciones web y aplicaciones mviles utilizando las ltimas tecnologas para los desarrolladores
de software de Java. El IDE de NetBeans es un producto gratuito y sin restricciones de uso
pudiendo escribir, compilar, depurar e implementar programas en Java.

NetBeans es un proyecto open source de desarrollo escrito en Java. La plataforma NetBeans da


soporte para escritura de servlets, ayuda on-line y ayudas con el cdigo. Usaremos la versin 6.0
de NetBeans para la construccin y diseo de las aplicaciones.

Una vez que ingresas al entorno de desarrollo de NetBeans se observa:

92
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Para dar inicio a una aplicacin de Java bajo el entorno de Netbeans se debe definir un proyecto,
para ello, seleccionas la opcin del men denominada File. Se muestra inmediatamente un men
flotante cuya primera opcin indica New Proyect, est opcin la seleccionas.

Al momento de seleccionar New Proyect se visualiza la ventana siguiente:

93
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Dado que nuestras aplicaciones van ser desarrolladas en entorno no visual, es decir en modo
consola, en Categories seleccionas la carpeta Java y en Proyects seleccionas Java Application.
Luego hacer click en el botn de comando Next que mostrar la siguiente ventana:

Es conveniente que uno mismo cree su carpeta de destino de los archivos que se generan para la
construccin de una aplicacin. Supongamos que la carpetas que necesitamos crear se llama
EjerciciosDeNetBeans y la creamos en la unidad D, para ello es necesario dar click en el botn de
comando Browse.

94
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

95
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Una vez indicada la nueva carpeta EjerciciosDeNetBeans, procede a dar click en el botn de
comando Abrir quedando la ventana New Java Application de la siguiente forma:

Se observa que en Proyect Location se muestra la carpeta destino del proyecto. Vamos a
suponer que se quiere construir un programa que calcule el promedio de dos notas, entonces la
ventana debera quedar de la siguiente forma:

96
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Nombre del proyecto: Nombre de la clase principal:


prjPromedio PromedioDeDosNotas, dentro
Nombre del paquete
pkgPromedio del paquete pkgPromedio

Al dar click en Finish se mostrar el entorno de desarrollo de NetBeans listo para dar inicio a la
construccin de la aplicacin.

97
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ahora estamos listo para comenzar a realizar nuestro primer ejercicio de programacin en
NetBeans. Pero antes conoceremos la estructura de la clase principal.
Comentario
del programa

Comentario
del paquete

Comentario
de la clase Implementacin
del cdigo del
programa

98
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

EJERCICIO 01
Realizar un programa para el curso de Fundamentos de Programacin que permita calcular la
nota promedio final de un estudiante en base a la nota de la 1ra unidad y de la 2da Unidad.

Solucin
Este programa se va a desarrollar de dos fomas, para que ustedes estimados estudiantes puedan
diferenciar la programacin con datos fijos y variables de las notas de las dos unidades.

Lenguaje de Programacin Java

Para resolver este ejercicio primero debemos conocer un poco el lenguaje de programacin Java.

Tipos de Datos

Algortmico Java Significado


entero int Entero corto
long Entero largo
real float Real corto
double Real Largo
carcter char Caracter
cadena String Cadena

En el Lenguaje de Programacin de Java


se debe respetar las maysculas y las
minsculas.
Los tipos de datos se debe escribir
todos en minsculas a excepcin de
String.

Ejemplos:

int nota1 char letra_abecedario


int hora_inicial char UnSimbolo
int nota1, nota2, nota3 String nombres
float pi String ApellidoPat, ApellidoMat
duoble promedio String Nombre_Paises
double precio_azucar, precio_producto String Nombre_De_La_Ciudad

99
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

1era forma:
Se desarrollar el problema conociendo que las dos notas de la 1era unidad y 2da unidad son: 13
y 17 respectivamente.

La solucin en algoritmo por intermedio del pseudocdigo en esta 1era forma es el siguiente:

algoritmo PromedioDeNotas
var
entero : n1, n2
real : prom
inicio
n1 = 13
n2 = 17
prom = ( n1 + n2 )/2
mostrar ( 'El promedio final es ', prom )
fin

La solucin en cdigo de este ejercicio en esta 1era forma es el siguiente:

Nota: Toda linea de cdigo debe acabar con un punto y coma ( ; )

Instrucciones de cdigo Significado


int n1,n2; Declaracin de dos variables n1 y n2 de tipo
de dato entero
double prom; Declaracin de la variable prom de tipo real
n1=13; A la variable n1 se le asigna 13
n2=17; A la variable n2 se le asigna 17
prom=(n1+n2)/2; Se realiza el proceso de obtener el
promedio. El resultado se almacenar en la
variable prom.
System.out.println("El promedio final es " + prom); Se reporta el resultado del promedio, por
intermedio de un cdigo estandar.
System = Sistema
out = salida
println = Imprimir o mostrar por pantalla los
resultados y hacer un salto de lnea.
100
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

2da forma:
La solucin en algoritmo por intermedio del pseudocdigo en esta 2da forma es el siguiente:

algoritmo PromedioDeNotas
var
entero : n1, n2
real : prom
inicio
Leer ( n1 )
Leer ( n2 )
prom = ( n1 + n2 )/2
mostrar ( 'El promedio final es ', prom )
fin

La solucin en cdigo de este ejercicio en esta 2da forma es el siguiente:

Comentarios minimizados

Nota: Toda linea de cdigo debe acabar con un punto y coma ( ; )

En la siguiente tabla se explica que hace cada instruccin, y los elementos que intervienen en
ellas:

101
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Instrucciones de cdigo Significado


import javax.swing.JOptionPane; import es una instruccin de cdigo que permite importar clases y pueda
ser utilizado dentro del programa.
javax.swing.JOptionPane es cdigo que llama al objeto JOptionPane
que sirve para representar un cuadro de dialgo (dialog box), para varios
propsitos:
1. Mostrar Mensaje a travs del uso de showMessageDialog.
2. Preguntar por la confirmacin del usuario showConfirmDialog.
3. Obtener datos de entrada ingresados por el usuario
ShowInputDialog.
4. La combinacin de los tres de arriba ShowOptionDialog.

int n1,n2; Declaracin de dos variables n1 y n2 de tipo de dato entero


double prom; Declaracin de la variable prom de tipo real
n1=Integer.parseInt(JOptionPane.showInputDialog("Ingrese 1er Numero")); Esta instruccin tiene dos partes:
La 1era. JOptionPane.showInputDialog("Ingrese 1er Nmero")
Solicita al usuario que ingrese un dato que viene hacer el 1er nmero. La 2da.
Integer.parseInt( ... )
Esta instruccin premite convertir una cadena a valor entero. La
instruccin JoptionPane devuelve una cadena.
Conclusin
El valor ingresado en JOptionPane, este lo devuelve como cadena y con la
funcin Integer.parseInt lo convertirmos a entero y lo
asignamos a la variable n1.
n2=Integer.parseInt(JOptionPane.showInputDialog("Ingrese 2do Numero")); Lo mismo que la instruccin anterior.
El segundo valor ingresado se asigna a la variable n2.
prom=(n1+n2)/2; Se realiza el proceso de obtener el promedio. El resultado se
almacenar en la variable prom.
JOptionPane.showMessageDialog(null,"El promedio final es " + prom); Se reporta el resultado del promedio por intermedio de JoptionPane. Para
ello se utiliza la propiedad showMessageDialog.
1ero, null significa que el cuadro de dilogo se mostrar en el centro de la
pantalla, y
2do, el mensaje del resultado + el valor de la variable prom.
9

102
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Que les parecio estas dos formas de programar?......


Les comento:
Por la primera forma si ejecutamos este programa mil veces siempre dar el mismo resultado,
porque los valores de entrada siempre son los mismos, por tanto reporta el mismo resultado.
En la segunda forma las cosas cambian, porque los datos de entrada pueden ser variables en
cada vez que se ejecuta el programa, por tanto el resultado sera diferente.

PASOS PARA EJECUTAR UNPROGRAMA

Cuando este terminado todo el cdigo del programa estamos listo de ver los resultados, para ello
debemos hacer lo siguiente:

1er paso. Pulsamos la tecla F9 para compilar nuestro programa y ver si existen errores en la
codificacin de nuestro programa, si todo esta bien continuamos con el siguiente
paso, pero si hubiern errores el programa jamas se ejecutar mientras no se
corrigan los errores.
Tambin se puede hacer este paso con el uso del Menu Build

2do paso. Despues de verificado que no hay errores, pulsamos la tecla F6 para ejecutar el
programa.
Tambin se puede hacer este paso con el uso del Menu Run

o por el comando encontrado en la barra de herramientas estandar

Nota: El ejecutar el programa tambin se llama correr el programa.

103
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
MISEGUNDO PROYECTO
A continuacin resolveremos un segundo proyecto, el cual tomaremos el siguiente ejercicio:

EJERCICIO 02
Encontrar el valor de la funcin: r = 5m2 + n2

Para resolver este ejercicio abriremos un nuevo proyecto (Esto es otra forma de llamar a un nuevo
proyecto):

Figura 01: Eleccion de un nuevo proyecto

Figura 02: Eleccion de un proyecto Java Application

104
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 03: Ingresar nombre del proyecto, paquete y de la clase principal

Figura 04: Proyecto listo para programar

Ahora estamos listo para comenzar con la programacin de este ejercicio. Antes hay que recordar
como esta resuelto en algoritmo.

algoritmo Funcion
var
entero : m, n, r
inicio
Leer(m)
Leer(n)
Leer(r)
r = 5 * m^2 + n^2
mostrar ( 'El valor de la funcin es ', r )
fin

105
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

La solucin en cdigo de este ejercicio es el siguiente:

En este ejercicio utilizaremos los mtodos de la clase Math, La clase Math tiene miembros dato y
funciones miembro estticas.

106
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Explicaremos algunas funciones de Math en la siguiente tabla:

Funcin Significado Ejemplo Resultado


abs Valor absoluto de un nmero int a; a = 45
a = Math.abs (-45);

ceil Devuelve el valor redondeado int redondeado; redondeado =13


hacia el nmero superior. redondeado = Math.ceil(12.5);
cos Coseno de un angulo double valor_coseno; valor_coseno=0.8660..
valor_coseno = Math.cos(30);
exp Devuelve el valor de la base double valor_exp1; valor_exp1 = 2.7182..
del logaritmo neperiano, double valor_exp2; valor_exp2 = 7.3890..
elevado a la potencia del valor_exp1 = Math.exp(1);
exponente. valor_exp2 = Math.exp(2);
floor Devuelve el valor redondeado double r,q; r = 12
a la baja del nmero r = Math.floor(12.5); q=7
q = Math.floor(7.9);
log Devuelve el logaritmo del double a, b, c; a = -Infinity
parmetro X. a = Math.log(0); b=0
b = Math.log(1); c = 0.69314718..
c = Math.log(2);
max Devuelve entre dos nmeros int mayor; mayor = 5
el mayor de ellos mayor = Math.max(3,5);
min Devuelve entre dos nmeros int menor; mayor = 3
el menor de ellos menor = Math.min(3,5);
pow Eleva un nmero a una double potencia; Potencia = 25
potencia X. potencia = Math.pow(5,2);
Math.pow(numero, potenciaX)
sqrt Devuelve la raiz cuadrada de Double raiz; raiz = 1.7321...
un valor. raiz = Math.sqrt(3);

Comprendido la clase Math, ahora pasamos a ejecutar el programa para ver los resultados
obtenidos.

107
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Si ingresamos los siguientes datos:

Debe de obtenerse el siguiente resultado:

108
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

LABORATORIO N XX

Ejercicio 1
Realizar un algoritmo que determine en que estacin del ao nos encontramos de acuerdo a la
siguiente tabla:
Valor Estacin
1 Verano
2 Otoo
3 Invierno
4 Primavera

Cdigo en Java
package prjestructuraselectivamultiple;
import javax.swing.JOptionPane;

public class estructuraselectivamultiple {

public static void main(String[] args) {


int estacion;
estacion=Integer.parseInt(JOptionPane.showInputDialog("Ingrese un nmero del 1 al 4 :"));
switch(estacion)
{
case 1 : JOptionPane.showMessageDialog(null, "Verano");break;
case 2 : JOptionPane.showMessageDialog(null, "Otoo");break;
case 3 : JOptionPane.showMessageDialog(null, "Invierno");break;
case 4 : JOptionPane.showMessageDialog(null, "Primavera");break;
default: JOptionPane.showMessageDialog(null, "Estacin desconocida");break;
}

} //Llave de cierre del cuerpo del programa


} //Llave de cierre del programa

109
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
ESTRUCTURAS SELECTIVAS

Las estructuras selectivas se dividen en 4 estructuras. La forma de representarlo en cdigo


utilizando el lenguaje de programacin Java es el siguiente.

1. Estructura Selectiva Simple

1er caso

si (condicin) entonces
instruccion1 Cuando una estructura selectiva
fin_si simple tiene una sola instruccin
no lleva llaves
if (condicion)
instruccion1;

2do caso

si (condicin) entonces
instruccion1
instruccion2
.
.
instruccionN
fin_si

if (condicion) Cuando una estructura selectiva


{ simple tiene ms de una
instruccion1; instruccin lleva llaves
instruccion2;
.
.
instruccionN;
}

110
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

2. Estructura Selectiva Doble

1er caso

si (condicin) entonces
instruccion1
sino
instruccion2 Cuando en una estructura
fin_si selectiva doble; si existe dentro del
if una sola instruccin no lleva
llaves. Y dentro del else si existe
una sola instruccin tampoco lleva
if (condicion) llaves.
instruccion1;
else
instruccion2;

2do caso

si (condicin) entonces
instruccion1
instruccion2
.
.
instruccionN
sino
instruccion1
fin_si

Cuando en una estructura


selectiva doble; si existe dentro del
if (condicion) if varias instrucciones lleva llaves.
{ Y dentro del else si existe una sola
instruccion1; instruccin tampoco lleva llaves.
instruccion2;
.
.
instruccionN;
}
else
instruccion1;

111
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

3er caso
si (condicin) entonces
instruccion1
instruccion2
.
.
instruccionN
sino
instruccion1
instruccion2
.
.
instruccionM
fin_si
Cuando en una estructura
if (condicion) selectiva doble; si existe dentro del
{ if varias instrucciones lleva llaves.
instruccion1; Y dentro del else si existe tambin
instruccion2; varias instrucciones lleva llaves.
.
.
instruccionN;
}
else
{
instruccion1;
instruccion2;
.
.
instruccionM;
}

3. Estructura Selectiva Mltiple

en caso expresin hacer


valor 1: instruccin 1
instruccin 2
........
valor 2: instruccin 1
instruccin 2
........
valor 3: instruccin 1
instruccin 2
........
.
.
valor n: instruccin 1
instruccin 2
........
otros : instruccin 1
instruccin 2
........
fin_caso
112
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

switch (expresion)
{ Esta estructura es parecida que la
case 1: instruccion1; de pseudocdigo.
instruccion2; En el switch se evalua una
......... expresin y las opciones que
break; puede tomar.
case 2: instruccion1; Si es la 1era opcin (case 1) se
instruccion2; realizan todas sus instrucciones; al
......... terminar todas ellas se coloca en
break; la siguiente lnea la instruccin
case 3: instruccion1; break. La instruccin break;
instruccion2; significa que sale del cuerpo del
......... switch que esta enmarcado entre
break; llaves, y continua en la siguiente
. instruccin. Eso quiere decir, que
. al ingresar a cada opcin se llega a
. la instruccin break y sale del
switch.
case N: instruccion1; Se ingresa a la opcin default
instruccion2; siempre y cuando no se eliga
......... ninguna opcin de las establecidas
break;
default: instruccion1;
instruccion2;
.........
break;
}

4. Estructura Selectiva Anidada

si condicin entonces
si condicin entonces
instruccin 1
instruccin 2
......
instruccin N
fin_si
si_no
si condicin entonces
instruccin 1
instruccin 2
......
instruccin M
si_no
instruccin 1
instruccin 2
......
instruccin P
fin_si
fin_si

113
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y
Estructura de Datos

if (condicion)
{
if (condicion)
{
instruccion1;
instruccion2; Es bueno organizar la informacin
. del if y del else dentro de llaves
. para poder saber cuales son las
instruccionN; instrucciones que corresponden a
} cada uno
}
else
{

if (condicion)
{
instruccion1;
instruccion2;
.
.
instruccionM;
}
else
{
instruccion1;
instruccion2;
.
.
instruccionP;
}
}

114
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
PROYECTO DE ESTRUCTURA SELECTIVA
DOBLE

A continuacin resolveremos el siguiente proyecto.

LABORATORIO N 03 -EJERCICIO 01
Determinar si un alumno aprueba a desaprueba un curso, conociendo que aprobara si su
promedio de tres calificaciones es mayor o igual a 10.5; desaprobado en caso contrario.

Para resolver este ejercicio abriremos un nuevo proyecto.

Figura 01: Eleccion de un nuevo proyecto

Figura 02: Eleccion de un proyecto Java Application

115
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 03: Ingresar nombre del proyecto, paquete y de la clase principal

Figura 04: Proyecto listo para programar

Ahora estamos listo para comenzar con la programacin de este ejercicio. Antes hay que recordar
como esta resuelto en algoritmo.

algoritmo Lab3Ejercicio01
var
entero : calif1, calif2, calif3
real : prom
inicio
Leer calif1, calif2, calif3
prom = (calif1 + calif2 + calif3)/3
si prom >= 10.5 entonces
Escribir 'ALUMNO APROBADO'
si no
Escribir 'ALUMNO DESAPROBADO'
fin_si
fin

116
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

La solucin en cdigo de este ejercicio es el siguiente:

package pkgEstructuraSelectivaDoble;
import javax.swing.JOptionPane;

public class EstructuraSelectivaDoble {

public static void main(String[ ] args) {


int calif1, calif2, calif3;
double prom;
calif1=Integer.parseInt(JOptionPane.showInputDialog("Ingrese 1era Calificacin"));
calif2=Integer.parseInt(JOptionPane.showInputDialog("Ingrese 2da Calificacin"));
calif3=Integer.parseInt(JOptionPane.showInputDialog("Ingrese 3era Calificacin"));
prom=(calif1 + calif2 + calif3)/3.0;
if(prom>=10.5)
JOptionPane.showMessageDialog(null,"ALUMNO APROBADO");
else
JOptionPane.showMessageDialog(null,"ALUMNO DESAPROBADO");

}
}

Comprendido el cdigo de la estructura selectiva doble en Java, ahora pasamos a ejecutar el


programa para ver los resultados obtenidos.

117
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Si ingresamos los siguientes datos:

Debe de obtenerse el siguiente resultado:

Dato adicional:
Estimados estudiantes pueden ustedes mejorar el cdigo a manera de prctica y mostrar en el
mismo mensaje de aprobado o desaprobado la nota promedio obtenida.

118
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
ESTRUCTURA SELECTIVA MLTIPLE

A continuacin resolveremos el siguiente proyecto de estructura selectiva mltiple.

LABORATORIO N 04 -EJERCICIO 03
Realizar un algoritmo que ingrese nmero del 1 al 10 y lo muestre en letras.

Para resolver este ejercicio abriremos un nuevo proyecto.

Figura 01: Eleccion de un nuevo proyecto

Figura 02: Eleccion de un proyecto Java Application

119
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 03: Ingresar nombre del proyecto, paquete y de la clase principal

Figura 04: Proyecto listo para programar

Ahora estamos listo para comenzar con la programacin de este ejercicio. Antes hay que recordar
como esta resuelto en algoritmo.

Algoritmo Lab04Ejercicio03
var
entero: Numero
inicio
Leer Numero
en_caso (Numero)
1 : Mostrar 'UNO'
2 : Mostrar 'DOS'
3 : Mostrar 'TRES'
4 : Mostrar 'CUATRO'
5 : Mostrar 'CINCO'
6 : Mostrar 'SEIS'
7 : Mostrar 'SIETE'
8 : Mostrar 'OCHO'
9 : Mostrar 'NUEVE'
10 : Mostrar 'DIEZ'
sino : Mostrar 'Numero fuera del rango establecido'
fin_caso
fin

120
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

La solucin en cdigo de este ejercicio es el siguiente:

package pkgEstructuraSelectivaMultiple;
import javax.swing.JOptionPane;

public class EstructuraSelectivaMultiple {


public static void main(String[ ] args) {
int Numero;
Numero=Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero (1-10)"));
switch(Numero)
{
case 1 : JOptionPane.showMessageDialog(null, "UNO");break;
case 2 : JOptionPane.showMessageDialog(null, "DOS");break;
case 3 : JOptionPane.showMessageDialog(null, "TRES");break;
case 4 : JOptionPane.showMessageDialog(null, "CUATRO");break;
case 5 : JOptionPane.showMessageDialog(null, "CINCO");break;
case 6 : JOptionPane.showMessageDialog(null, "SEIS");break;
case 7 : JOptionPane.showMessageDialog(null, "SIETE");break;
case 8 : JOptionPane.showMessageDialog(null, "OCHO");break;
case 9 : JOptionPane.showMessageDialog(null, "NUEVE");break;
case 10: JOptionPane.showMessageDialog(null, "DIEZ");break;
default: JOptionPane.showMessageDialog(null, "Numero fuera del rango establecido");
break;
}
}
}

121
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

ESTRUCTURA SELECTIVA MLTIPLE


En las estructuras selectivas mltiples solo se pueden evaluar variables de tipo entero:

No se puede evaluar variables reales (double), de cadena (String) y ni de carcter (char).


La orden break hace que la ejecucin salga del switch; de no ponerlo en cada case se ejecutarn
todas las rdenes hacia abajo sin importar el valor de los case hasta encontrar un break o la llave
de cierre del switch.

Nota
Los ejercicios 1 y 2 del Laboratorio 4 no se podrn llevar a NetBeans igual como est en el
pseudocdigo, porque estariamos evaluando una variable de tipo carcter.

La realizacin de un algoritmo viene hacer la solucin de un problema independiente del lenguaje


de programacin. En este caso el NetBeans solo evalua variables de valor tipo entero.

EJECUCINDEL PROGRAMA
Ahora pasamos a ejecutar el programa para ver los resultados obtenidos.

Si ingresamos el siguiente dato:

Debemos de obtener el siguiente resultado:

122
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
PROYECTO DE ESTRUCTURA SELECTIVA
ANIDADA

A continuacin resolveremos el siguiente proyecto.

LABORATORIO N 05 -EJERCICIO 01
Leer un nmero entero y decir si es positivo, negativo o neutro.

Para resolver este ejercicio abriremos un nuevo proyecto.

Figura 01: Eleccion de un nuevo proyecto

Figura 02: Eleccion de un proyecto Java Application

123
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 03: Ingresar nombre del proyecto, paquete y de la clase principal

Figura 04: Proyecto listo para programar

Ahora estamos listo para comenzar con la programacin de este ejercicio. Antes hay que recordar
como esta resuelto en algoritmo.

algoritmo Lab5Ejercicio01
var
entero : num

inicio
Leer num
si (num = 0) entonces
Escribir 'NMERO NEUTRO'
si no
si (num > 0) entonces
Escribir 'NMERO POSITIVO'
sino
Escribir 'NMERO NEGATIVO'
fin_si
fin_si
fin

124
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

La solucin en cdigo de este ejercicio es el siguiente:

package pkgEstructuraSelectivaAnidada;
import javax.swing.JOptionPane;

public class EstructuraSelectivaAnidada {


public static void main(String[] args) {
int num;
num=Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero entero"));
if(num==0)
JOptionPane.showMessageDialog(null, "NUMERO NEUTRO");
else
{
if(num>0)
JOptionPane.showMessageDialog(null, "NUMERO POSITIVO");
else
JOptionPane.showMessageDialog(null, "NUMERO NEGATIVO");
}
}
}

Comprendido el cdigo de la estructura selectiva anidada en Java, ahora pasamos a ejecutar el


programa para ver los resultados obtenidos.

125
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

Si ingresamos el siguiente dato:

Debe de obtenerse el siguiente resultado:

Tambin pueden obtenerse los siguientes resultados:

126
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

LABORATORIO DE ESTRUCTURAS SELECTIVAS DOBLES

EJER 01
public static void main(String[] args){
int n1,n2,n3;
double pro;
n1=Integer.parseInt(JOptionPane.showInputDialog("ingese la 1ra Nota"));
n2=Integer.parseInt(JOptionPane.showInputDialog("ingese la 2da Nota"));
n3=Integer.parseInt(JOptionPane.showInputDialog("ingese la 3ra Nota"));
pro=(n1+n2+n3)/3;
if (pro>=10.5)
JOptionPane.showMessageDialog(null,"ALUMNOS APROBADO " + pro);
else
JOptionPane.showMessageDialog(null,"ALUMNO DESAPROBADO " + pro);
}

EJER N2

public static void main(String[] args) {


int n1,n2,n3,n4,n5,min;
double pro;
n1=Integer.parseInt(JOptionPane.showInputDialog("ingese la 1ra Nota"));
127
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

n2=Integer.parseInt(JOptionPane.showInputDialog("ingese la 2da Nota"));


n3=Integer.parseInt(JOptionPane.showInputDialog("ingese la 3ra Nota"));

128
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

n4=Integer.parseInt(JOptionPane.showInputDialog("ingese la 4ra Nota"));


n5=Integer.parseInt(JOptionPane.showInputDialog("ingese la 5da Nota"));
min=n1;
if(n2<min)
min=n2;
if(n3<min)
min=n3;
if(n4<min)
min=n4;
if(n5<min)
min=n5;
pro=(n1+n2+n3+n4+n5-min)/4;
if (pro>=10.5){
JOptionPane.showMessageDialog(null,"ALUMNOS APROBADO " + pro);
JOptionPane.showMessageDialog(null,"nota eliminada " + min);
}
else
{
JOptionPane.showMessageDialog(null,"ALUMNO DESAPROBADO " + pro);
JOptionPane.showMessageDialog(null,"nota eliminada " + min);
}
}

129
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

EJER 03
public static void main(String[] args) {
double compra,d,t;
compra=Integer.parseInt(JOptionPane.showInputDialog("ingese MONTO DE LA COMPRA"));
if(compra>1000)
d=compra*0.20;
else
d=0;
t=compra-d;
JOptionPane.showMessageDialog(null,"el descuento es de: " + d);
JOptionPane.showMessageDialog(null,"monto a pagar " + t);
}

130
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

EJER 04
public static void main(String[] args) {
double c,d,t,p,x;
c=Integer.parseInt(JOptionPane.showInputDialog("ingese la cantidad de CAMISAS"));
p=Integer.parseInt(JOptionPane.showInputDialog("ingese EL PRECIO POR CAMISA"));
x=c*p;
if(c>3)
d=x*0.20;
else
d=x*0.10;
t=x-d;
JOptionPane.showMessageDialog(null,"el descuento es de: " + d);
JOptionPane.showMessageDialog(null,"monto a pagar " + t);
}

131
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Ejer 05
public static void main(String[] args) {
double d,t,p;
p=Integer.parseInt(JOptionPane.showInputDialog("ingese EL PRECIO DEL AUTO"));
if(p > 15000)
d=p*0.10;
else
d=p*0.05;
t=p-d;
JOptionPane.showMessageDialog(null,"el descuento es de : " + d);
JOptionPane.showMessageDialog(null,"monto a pagar " + t);
}

EJER 06
public static void main(String[] args) {
double h,s,t,p,horas_extras;
h=Integer.parseInt(JOptionPane.showInputDialog("ingese la cantidad de HORAS DE TRABAJO"));
if(h>40){
horas_extras=h-40;
p=40*16;
t=horas_extras*20;
}
else{
horas_extras=0;
p=h*16;
t=0;
}
s=p+t;
JOptionPane.showMessageDialog(null,"el n de horas extras es: " + horas_extras);
JOptionPane.showMessageDialog(null,"monto a pagar " + s);
}

132
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

Ejer 07
public static void main(String[] args) {
double m,n;
m=Integer.parseInt(JOptionPane.showInputDialog("ingese EL 1 NUMERO"));
n=Integer.parseInt(JOptionPane.showInputDialog("ingese EL 2 NUMERO"));
if(n> m){
JOptionPane.showMessageDialog(null,"EL MAYOR ES:" + n);
JOptionPane.showMessageDialog(null,"EL MENOR ES : " + m);
}
else{
JOptionPane.showMessageDialog(null,"EL MAYOR ES:" + m);
JOptionPane.showMessageDialog(null,"EL MENOR ES : " + n);
}
}

133
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de
Datos

EJER 08
public static void main(String[] args) {
int m,n;
m=Integer.parseInt(JOptionPane.showInputDialog("ingese LA EDAD DE ANTONY"));
n=Integer.parseInt(JOptionPane.showInputDialog("ingese LA EDAD DE RUBEN"));

if(n> m){
JOptionPane.showMessageDialog(null,"EL MAYOR EDAD ES DE RUBEN:" + n);
JOptionPane.showMessageDialog(null,"EL MENOR EDAD ES DE ANTONY: " + m);
}
else{
JOptionPane.showMessageDialog(null,"EL MAYOR EDAD ES DE ANTONY:" + m);
JOptionPane.showMessageDialog(null,"EL MENOR EDAD ES DE RUBEN: " + n);
}
}

134
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

EJER 09
public static void main(String[] args) {
int m;
double s,d,c;
m=Integer.parseInt(JOptionPane.showInputDialog("MENU "+" 1.CONVERTIR DOLARES A SOLES "+"
2.CONVERTIR SOLES A DOLARES "+" ELIJA UNA OBCION (1 2)"));
if(m==1){
d=Integer.parseInt(JOptionPane.showInputDialog("INGRESE LA CANTIDAD DE DOLARES"));
c=d*2.8;
JOptionPane.showMessageDialog(null,"EL TOTAL ES:" + c + " Nuevos Soles");
}
if(m==2){
s=Integer.parseInt(JOptionPane.showInputDialog("INGRESE LA CANTIDAD DE SOLES"));
c=s/2.83;
JOptionPane.showMessageDialog(null,"EL TOTAL ES:" + c + " DOLARES");
}
}

EJER 10
public static void main(String[] args) {
int m;
double s,d,c,x,y;
m=Integer.parseInt(JOptionPane.showInputDialog("MENU "+" 1.CONVERTIR DOLARES A SOLES "+"
2.CONVERTIR SOLES A DOLARES "+" ELIJA UNA OBCION (1 2)"));
if(m==1){
135
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

d=Integer.parseInt(JOptionPane.showInputDialog("INGRESE LA CANTIDAD DE DOLARES"));


y=Integer.parseInt(JOptionPane.showInputDialog("ingrese el cambio para CONVERTIR DOLARES
A SOLES "));
c=d*y;
JOptionPane.showMessageDialog(null,"EL TOTAL ES:" + c + " Nuevos Soles");
}
if(m==2){
s=Integer.parseInt(JOptionPane.showInputDialog("INGRESE LA CANTIDAD DE SOLES"));
x=Integer.parseInt(JOptionPane.showInputDialog("ingrese el cambio para CONVERTIR SOLES A
DOLARES "));
c=s/x;
JOptionPane.showMessageDialog(null,"EL TOTAL ES:" + c + " DOLARES");
}
}

136
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
ESTRUCTURAS REPETITIVAS

Las estructuras repetitivas se dividen en 3 estructuras. La forma de representarlo en cdigo


utilizando el lenguaje de programacin Java es el siguiente.

1. Estructura Repetitiva FOR

1er caso

modificacin
condicin
inicializacin

desde c = vi hasta vf inc|dec valor hacer


instruccin 1
fin_desde

En la condicin se utilizan los


operadores relacionales.

Se puede incrementar o decrementar.


condicin
Por ejemplo:
inicializacin
incremento
for (c = vi ; c <= vi ; c++) c++ , incrementa de uno en uno
instruccion1; c = c + 3 , incrementa de tres en tres
c = c + ? , incrementa de ? en ?
decremento
c-- , decrementa de uno en uno
c = c - 3 , decrementa de tres en tres
c = c - ? , decrementa de ? En ?
Nota: ? = cualquier nmero entero

Cuando una estructura repetitiva For


tiene una sola instruccin no lleva
llaves
137
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

2do caso

desde c = vi hasta vf inc|dec valor hacer


instruccin 1
instruccin 2
.
.
instruccin N
fin_desde

for (c = vi ; c <= vi ; c++)


{
instruccion1;
instruccion2; Cuando una estructura repetitiva For
. tiene de dos a ms instrucciones lleva
. llaves
instruccionN;
}

El bucle FORfunciona de la siguiente forma

2 4

for( c = vi ; c <= vi ; c++ )


1
{
instruccion1;
instruccion2;
. 3
.
instruccionN;
}

A continuacin se describen los 4 pasos:


1. Cuando se esta programando y se llega a la instruccin del for, se realiza el primer paso
de asignar un valor inicial a una variable cualquiera.
2. En el segundo paso para ingresar al cuerpo del for, se evaluar la condicin en base a la
variable inicial, si es verdad se pasa al cuerpo del bucle del for, de lo contrario sale del for.
3. Terminado de realizar todas las instrucciones del bucle del for, se pasa a la instruccin que
permite incrementar o decrementar el valor de la variable inicial.
4. Se vuelve a evaluar la condicin ahora con el valor de la variable inicial incrementada o
decrementada, si es verdad se pasa al cuerpo del bucle del for, de lo contrario sale del for.

138
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

2. Estructura Repetitiva Do_While

1er caso

hacer
instruccin 1
mientras (condicin)

do
Cuando una estructura repetitiva Do
instruccion1;
W hile tiene una sola instruccin no
while (condicion);
lleva llaves

2do caso

hacer
instruccin 1
instruccin 2
.
.
instruccin N
mientras (condicin)

do
{ Cuando una estructura repetitiva Do
instruccion1; W hile tiene de dos a ms
instruccion2; instrucciones lleva llaves
.
.
instruccionN;
}
while (condicion);

El bucle WHILEfunciona de la siguiente forma

1
do
{
instruccion1;
instruccion2;
. Cuerpo del Do W hile
.
instruccionN;
}
while (condicion); 2

139
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

A continuacin se describen los 2 pasos:


1. Do es la palabra reservada que indica que es el comienzo del cuerpo del bucle del Do
While.
Nota
La estructura repetitiva Do While es la unica estructura que no se necesita evaluar ninguna
condicin para ingresar al cuerpo del bucle, se ingresa aunque sea una vez, luego se llega
al final del cuerpo del bucle y se evala la condicin.
2. Al llegar a esta instruccin se evaluar la condicin, si es verdadera se regresa al inicio del
cuerpo del bucle al paso 1, de lo contrario sale del Do While.

3. Estructura Repetitiva While

1er caso

mientras (condicin) hacer


instruccin 1
fin_mientras

Cuando una estructura repetitiva


while (condicion) W hile tiene una sola instruccin no
instruccion1; lleva llaves

2do caso

mientras (condicin) hacer


instruccin 1
instruccin 2
.
.
instruccin N
fin_mientras

while (condicion)
{ Cuando una estructura repetitiva
instruccion1; W hile tiene de dos a ms
instruccion2; instrucciones lleva llaves
.
.
instruccionN;
}

140
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

while (condicion) 1
{
2 instruccion1;
instruccion2;
. Cuerpo del Do W hile
.
instruccionN;

A continuacin se describen los 2 pasos:


1. Al llegar a esta instruccin del While, para ingresar a ella se evaluar la condicin, si es
verdadera se ingresa al cuerpo del bucle y se ejecutan todas las instrucciones, de lo
contrario sale del While.
2. Al finalizar la ultima instruccin del cuerpo del bucle, se contina con el paso 1.

141
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
PROYECTO DE ESTRUCTURA REPETITIVA
FOR

A continuacin resolveremos el siguiente proyecto.


LABORATORIO 06 - EJERCICIO 01
Disear un algoritmo que permita visualizar la tabla de multiplicar de un nmero entero ingresado
por teclado. Por ejemplo:
1x5=5
2 x 5 = 10
3 x 5 = 15

12 x 5 = 60

Para resolver este ejercicio abriremos un nuevo proyecto.

Figura 01: Eleccion de un nuevo proyecto

Figura 02: Eleccion de un proyecto Java Application


142
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 03: Ingresar nombre del proyecto, paquete y de la clase principal

Figura 04: Proyecto listo para programar

Ahora estamos listo para comenzar con la programacin de este ejercicio. Antes hay que recordar
como esta resuelto en algoritmo.

algoritmo Lab06Ejercicio01
var
entero : num, producto, i
cadena: cad
inicio
Leer num
cad = ' '
si (num >0) entonces
desde i =1 hasta 12 inc 1 hacer
producto = i * num
cad = cad, i , ' * ' , num, ' = ', producto
fin_desde
Mostrar (cad)
sino
Mostrar ('Error de ingreso...!! El Numero debe ser mayor que cero')
fin_si
fin

143
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

La solucin en cdigo de este ejercicio es el siguiente:

package pkgfor;
import javax.swing.JOptionPane;

public class For {


public static void main(String[ ] args) {
int num, producto, i;
String cad="";

num=Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero"));
if(num>0)
{
for(i=1;i<=12;i++)
{
producto=num*i;
cad=cad + i + " x " + num + " = " + producto + "\n";
}
JOptionPane.showMessageDialog(null, cad);
}
else
JOptionPane.showMessageDialog(null, "Error de ingreso..!! El numero debe ser mayor que cero");
}
}

144
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

2
3

5
6

145
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

En este ejercicio de estructura repetitiva For nos mostrar la tabla de multiplicar de un nmero
entero positivo.

La explicacin delprograma paso a paso es el siguiente

1. Declaracin de variables; en estas instruccines tambin se pueden inicializar dichas


variables. Inicializamos la variable cad = .
2. Ingreso de los datos de entrada.
3. Esta instruccin es una condicin para determinar:
3.1. Si la condicin es verdadera, quiere decir que el nmero es positivo y se ingresa al
cuerpo del if. Luego se ejecuta el paso 4.
3.2. Si la condicin es falsa se salta al paso 8.
4. Para ingresar al bucle del For, se llevarn acabo las siguientes acciones:
4.1. Si es la primera vez que se ejecuta la instruccin del For, a la variable inicial de tipo
entero que se le asigna un valor; para este ejemplo: i = 1.
4.2. Para ingresar al bucle se evaluar la condicin; para este ejemplo: i <= 12, si es
verdad se ingresa y se pasa al paso 5, de lo contrario se pasa al paso 7.
5. En la variable producto se almacenarn los valores obtenidos del producto de num * i.
6. Esta instruccin es la mas importante porque en la variable cad almacenamos toda la tabla
de multiplicar de un nmero N.
6.1. Analizaremos primero esta parte del cdigo: cad + i + " * " + num + " = " + producto, la
variable cad al comenzar el programa se le inicializo como una cadena vacia, a esta
se le concatena el valor de la variable i (De 1 a 12 dependiendo de la interacin en
que se encuentra), y tambien se le concatena el smbolo *, el valor de la variable num,
el smbolo = y el valor de la variable producto obtenido en el paso 5. Formando as
una cadena de la siguiente forma, para este ejemplo: 1 x 5 = 5
6.2. Esta parte de la instruccin: + "\n" significa que a la cadena obtenida se le va a
concatenar un salto de lnea. Esto hace que el resultado que se va a mostrar salga
lnea por lnea.
6.3. Toda esta cadena concatenada se almacena en la variable cad, que nos seguir
sirviendo en las iteraciones del bucle como repositorio de toda la tabla de multiplicar.
6.4. Terminado de realizar todas las instrucciones del cuerpo del For, se pasa al paso 4
(accin 4.2) pero antes se incrementa o decrementa la variable i un valor constante,
esto depende de la instruccin del For, para este ejemplo: i++, significa que se
incrementar el valor de uno en uno.
7. Se muestra el valor almacenado en la variable cad, que viene hacer la tabla de multiplicar
de un nmero N.
8. Muestra el mensaje de Error de ingreso..!! por ser un nmero negativo y se acaba el
programa.

Comprendido el cdigo de la estructura repetitiva For en Java, ahora pasamos a ejecutar el


programa para ver los resultados obtenidos.

146
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

1er caso
Ingresaremos un numero entero positivo:

Debe de obtenerse el siguiente resultado:

2do caso
Ingresaremos un numero entero negativo:

Debe de obtenerse el siguiente resultado:

147
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
PROYECTO DE ESTRUCTURA REPETITIVA
DO WHILE

A continuacin resolveremos el siguiente proyecto.

EJERCICIO 01
Realizar un programa para un Supermercado que calcule el total a pagar de un cliente, por la
compra de varios productos, el ingreso de las compras debe continuar si digitamos el valor 1, y 2
se termina el ingreso y muestra el resultado.

Para resolver este ejercicio abriremos un nuevo proyecto.

Figura 01: Eleccion de un nuevo proyecto

Figura 02: Eleccion de un proyecto Java Application

148
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 03: Ingresar nombre del proyecto, paquete y de la clase principal

Figura 04: Proyecto listo para programar

Ahora estamos listo para comenzar con la programacin de este ejercicio. Antes hay que recordar
como esta resuelto en algoritmo.

algoritmo Ejercicio01
var
entero : CantProducto, opcion, cont
real : PrecioProducto, compra
inicio
compra=0
cont = 0
Hacer
cont = cont + 1
Leer PrecioProducto, CantProducto
compra = compra + PrecioProducto * CantProducto

Escribir 'Desea continuar [si=1 , no=2] : '


Leer opcion
Mientras (opcion = 1)
Mostrar ('La compra total por ', cont, ' productos es : ', compra)
fin

149
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

La solucin en cdigo de este ejercicio es el siguiente:

package pkgDoWhile;
import javax. swing.JOptionPane;
public class DoWhile {
public static void main(String[ ] args) {
int cantProducto,opcion,cont;
double precioProducto,compra;

compra=0;cont=0;
do
{
//contador de productos ingresados
cont=cont+1;
//Ingreso de cantidad y precio del producto a comprar
cantProducto=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Cantidad del Producto " + cont));
precioProducto=Double.parseDouble(JOptionPane.showInputDialog("Ingrese Precio Producto " + cont));
//Obtencion del subtotal de la compra de uno o mas productos
compra=compra + cantProducto * precioProducto;

//Pregunta de si DESEA SEGUIR ingresando al bucle para seguir


//acumulando el subtotal de los productos comprados.
opcion=Integer.parseInt(JOptionPane.showInputDialog("Desea continuar[Si=1 , No=2]"));
}while(opcion==1);
JOptionPane.showMessageDialog(null, "El total a pagar por la compra de " + cont + " productos" +
"\nes : " + compra);
}
}

150
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

2
3

5
4

7
8

151
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

En este ejercicio de estructura repetitiva Do While podemos ingresar un sin nmero de compras
siempre y cuando digitemos el valor 1 a la consulta Desea continuar [si=1 , no=2] : , si la
respuesta es positiva el programa va acumulando las compras subtotales en la variable compra.
Recordemos que una compra viene hacer el producto de la cantidad y el precio de un producto, es
decir:

compra = PrecioProducto * CantProducto

Ahora la instruccin que me permite acumular los subtotales de las compras es:

compra = compra + PrecioProducto * CantProducto

La explicacin delprograma paso a paso es el siguiente

1. Declaracin de variables.
2. Se inicializa las variables compra y cont con un valor igual a cero.
3. Do, instruccin que determina el comienzo del bucle Do While.
4. Esta instruccin nos sirve de contador de cuantas compras vamos realizando.
5. Ingreso de los datos de entrada de la 1era compra.
6. Esta instruccin se ejecuta de la siguiente manera:
8.1. Se multiplica el PrecioProducto * CantProducto
8.2. El resultado se suma con el valor de la variable compra, esta variable fue inicializado
con cero al comenzar el programa, es decir:

0 + PrecioProducto * CantProducto

8.3. El resultado de toda esta instruccin se almacena en la misma variable compra, que
nos servir como variable que va acumulando los subtotales de las compras.
7. En esta parte el programa nos pregunta si deseamos seguir ingresando compras.
8. Se evalua la condicin del While, aqu pueden pasar dos cosas:
8.1. Si la condicin es verdadera vuelve a ingresar al bucle y se continua con:
a. El paso 4, se incrementa el contador.
b. El paso 5; ingresamos los valores de una segunda compra.
c. El paso 6; se suma el valor de la primera compra que se tenia almacenado en la
variable compra con el producto de los datos de entrada de la segunda compra,
almacenando nuevamente el resultado en la variable compra.
d. Se realiza el paso 7.
e. Se realiza el paso 8, si vuelve a ingresar al bucle se incrementa el contador, se
ingresan los datos de la 3era compra y asi sucesivamente hasta llegar al paso 9.
8.2. Si la condicin es falso se continua con el paso 9.
9. Se muestra el resultado total de los N productos comprados.

152
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Comprendido el cdigo de la estructura repetitiva Do While en Java, ahora pasamos a ejecutar el


programa para ver los resultados obtenidos.

Ingresaremos los datos de tres compras:

1era compra

2da compra

153
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

154
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

NETBEANS 6.0
PROYECTO DE ESTRUCTURA REPETITIVA
WHILE
A continuacin resolveremos el siguiente proyecto.
LABORATORIO 06 - EJERCICIO 01
Disear un algoritmo que permita visualizar la tabla de multiplicar de un nmero entero ingresado
por teclado. Por ejemplo:
1x5=5
2 x 5 = 10
3 x 5 = 15

12 x 5 = 60

Para resolver este ejercicio abriremos un nuevo proyecto.

Figura 01: Eleccion de un nuevo proyecto

Figura 02: Eleccion de un proyecto Java Application


155
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Figura 03: Ingresar nombre del proyecto, paquete y de la clase principal

Figura 04: Proyecto listo para programar

Ahora estamos listo para comenzar con la programacin de este ejercicio. Antes hay que recordar
como esta resuelto en algoritmo.

algoritmo Lab06Ejercicio01
var
entero : num, producto, i
cadena: cad
inicio
Leer num
i=1
cad = ' '
si (num >0) entonces
mientras(i <=12)
producto = i * num
cad = cad, i , ' * ' , num, ' = ', producto
i=i+1
fin_mientras
Mostrar (cad)
sino
Mostrar ('Error de ingreso...!! El Numero debe ser mayor que cero')
fin_si
fin

156
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

La solucin en cdigo de este ejercicio es el siguiente:

package pkgWhile;
import javax.swing.JOptionPane;
public class While {
public static void main(String[ ] args) {
int num, producto, i=1;
String cad="";

num=Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero"));
if(num>0)
{
while(i<=12)
{
producto=num*i;
cad=cad + i + " x " + num + " = " + producto + "\n";
i=i+1;
}
JOptionPane.showMessageDialog(null, cad);
}
else
JOptionPane.showMessageDialog(null, "Error de ingreso..!! El numero debe ser mayor que cero");
}
}

157
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

2
3

5
6
7

158
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

En este ejercicio de estructura repetitiva While nos mostrar la tabla de multiplicar de un nmero
entero positivo.

La explicacin delprograma paso a paso es el siguiente

1. Declaracin de variables; en estas instruccines tambin se pueden inicializar dichas


variables. Inicializamos las variables i = 1 y cad = .
2. Ingreso de los datos de entrada.
3. Esta instruccin es una condicin para determinar:
3.1. Si la condicin es verdadera, quiere decir que el nmero es positivo y se ingresa al
cuerpo del if. Luego se ejecuta el paso 4.
3.2. Si la condicin es falsa se salta al paso 9.
4. Se ingresa al bucle While siempre y cuando la condicin sea verdadera. Si la condicin es
verdadera se sigue al paso 5, de lo contrario se pasa al paso 8.
5. En la variable producto se almacenarn los valores obtenidos del producto de num * i.
6. Esta instruccin es la mas importante porque en la variable cad almacenamos toda la tabla
de multiplicar de un nmero N.
6.1. Analizaremos primero esta parte del cdigo: cad + i + " * " + num + " = " + producto, la
variable cad al comenzar el programa se le inicializo como una cadena vacia, a esta
se le concatena el valor de la variable i (De 1 a 12 dependiendo de la interacin en
que se encuentra), y tambien se le concatena el smbolo *, el valor de la variable num,
el smbolo = y el valor de la variable producto obtenido en el paso 5. Formando as
una cadena de la siguiente forma, por ejemplo: 1 x 5 = 5
6.2. Esta parte de la instruccin: + "\n" significa que a la cadena obtenida se le va a
concatenar un salto de lnea. Esto hace que el resultado que se va a mostrar salga
lnea por lnea.
6.3. Toda esta cadena concatenada se almacena en la variable cad, que nos seguir
sirviendo en las iteraciones del bucle como repositorio de toda la tabla de multiplicar.
7. Se va incrementando el valor de la variable i, que es la que en algn momentos nos
permitir salir del bucle While. Al terminar esta instruccin se regresa al paso 4.
8. Se muestra el valor almacenado en la variable cad, que viene hacer la tabla de multiplicar
de un nmero N.
9. Muestra el mensaje de Error de ingreso..!! por ser un nmero negativo y se acaba el
programa.

Comprendido el cdigo de la estructura repetitiva While en Java, ahora pasamos a ejecutar el


programa para ver los resultados obtenidos.

1er caso
Ingresaremos un numero entero positivo:

159
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Debe de obtenerse el siguiente resultado:

2do caso
Ingresaremos un numero entero negativo:

Debe de obtenerse el siguiente resultado:

160
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

DEFINICIONES BSICASDELAS
ESTRUCTURASDEDATOS
En programacin, una estructura de datos es una forma de organizar un conjunto de datos
elementales con el objetivo de facilitar su manipulacin. Un dato elemental es la mnima
informacin que se tiene en un sistema.

Una estructura de datos define la organizacin e interrelacin de stos y un conjunto de


operaciones que se pueden realizar sobre ellos. Las operaciones bsicas son:
Adicionar un nuevo valor a la estructura.
Borrar un valor de la estructura.
Bsqueda, encontrar un determinado valor en la estructura para realizar una operacin con
este valor, en forma SECUENCIAL o BINARIO (siempre y cuando los datos estn
ordenados)

Otras operaciones que se pueden realizar son:


Ordenamiento, de los elementos pertenecientes a la estructura.
Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las
apareadas.

Existen dos clases de tipos de datos: Simples (sin estructuras) y Compuestos (estructurados).

Entero (integer, int)


estndar Real (float, double)
Carcter (char)
Datos simples Lgico (boolean)

definido por Subrango (subrange)


el programador Enumerativo

Array (vector/matriz)
Registro
estticos Archivo (fichero)
Conjunto
Datos estructurados Cadena (string)

Lista (pila/cola)
dinmicos Lista enlazada
rbol
Grafo

Los tipos de datos simples o primitivos significa que no estn compuestos de otras estructuras de
datos; lo ms frecuentes y utilizados por casi todos los lenguajes de programacin son: enteros,
reales, carcter y lgico. Los tipos de datos compuestos estn construidos basados en tipos de
datos primitivos; el ejemplo ms significativo es la cadena (string) de caracteres.

Los tipos de datos simples pueden ser organizados en diferentes estructuras de datos: estticas y
dinmicas.
161
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Las estructuras de datos estticas son aqullas en las que el tamao ocupado en memoria se
define antes de que el programa se ejecute y no puede modificarse ese tamao durante la
ejecucin del programa. Estas estructuras estn en casi todos los lenguajes de programacin:
array (vectores y matrices), registros, etc.

Las estructuras de datos dinmicas no tienen las limitaciones o restricciones en el tamao de


memoria ocupada, como si lo tiene las estructuras estticas.

Una caracterstica importante que diferencia a los tipos de datos es la siguiente: los tipos de datos
simples tienen como caracterstica comn que cada variable representa un elemento; los tipos de
datos estructurados, tienen como caracterstica comn que un identificador (nombre) puede
representar mltiples datos individuales, pudiendo cada uno de stos ser referenciado
independientemente.

La eleccin del tipo de estructura de datos idonea a cada aplicacin depender esencialmente del
tipo de aplicacin.

ARRAYS UNIDIMENSIONALESO VECTORES


Un arreglo unidimensional(vector) es un tipo de datos estructurado que est formado de una
coleccin finita y ordenada de datos del mismo tipo. Un array puede estar compuesto de todos sus
elementos de tipo de dato entero, otro puede tener todos sus elementos de tipo de dato reales,
etc.

A los arrays unidimensionales se le conoce tambin como arreglos unidimensionales. Un array


unidimensional es una estructura que se le asigna un nombre y a cada elemento que tiene ese
array se asocia con un nico ndice. 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 posicin relativa

Ejemplo1:
Se tiene un array unidimensional llamado Notas de 10 elementos; este vector va almacenar
elementos de tipo de dato entero.

El ndice del array unidimensional es la


variable i, que va a tomar valores desde
Notas el 1 hasta la cantidad mxima de
i=1 elementos, que para este ejemplo es 10.
i=2 Cada valor del ndice representa a un
i=3 elemento del arreglo, es decir,
el ndice i=1 representa al 1er elemento,
. el ndice i=2 representa al 2do elemento,
. el ndice i=3 representa al 3er elemento y
asi sucesivamente hasta el ndice i=10
. que representa al ultimo elemento del
i=7 array.
.
.
i = 10

162
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

En base al ejemplo anterior podemos definir la sintaxis de un array unidimensional: Sintaxis:


Representacin grfica de un array unidimensional

NombreDelArray
i=1
i=2
i=3
.
.
.
i=x
.
.
i=n

Tambin se puede representar grficamente de la siguiente forma:

NombreDelArray
.
.
.
.
.
i=1
i=2
i=3

i=n
i=x

y de esta ultima tambin:


i=1
i=2
i= 3

i=n
i= x
.
.
.

.
.

NombreDelArray

163
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

INGRESO DE DATOS
El ingreso de datos al arreglo se hace de la siguiente forma:

Sintaxis:

NombreDelArray [ ndice ] = ValorDelElemento

Leer ( NombreDelArray [ ndice ] )

Asignacin de valores al arreglo unidimensional


Del ejemplo 1, haremos el ingreso de los elementos al arreglo Notas:

Notas
Notas[ 1 ] = 15 15

Notas[ 2 ] = 18 18
14
Notas[ 3 ] = 14

17
Notas[ 7 ] = 17

20
Notas[ 10 ] = 20

Podemos apreciar que para ingresar un elemento al arreglo se debe determinar en que lugar se
almacenar, para ello utilizamos el ndice. Por ejemplo:

Notas [ 3 ] = 14 Elemento a almacenarsen el arreglo

Nombre del arreglo ndice

Para este ejemplo la nota 14 se almacenar en el ndice 3, pero se puede almacenar en otro
ndice: Notas[ 5 ] = 14, o en otro: Notas[ 9 ] = 14. En la programacin podemos definir en que
ndice queremos almacenar un elemento.

Lectura de datos alarreglo unidimensional


Si queremos ingresar valores al arreglo por intermedio del teclado, haremos uso de la funcin
Leer.

Ejemplos:

Leer (Notas[1]) En esta instruccin ingresamos una nota en el ndice 1.


Leer (Notas[7]) En esta otra instruccin ingresamos una nota en el ndice 7.

y asi para todos los ndices del arreglo.

164
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Para el llenado de un arreglo unidimensional se hace uso de las estructuras repetitivas, la ms


utilizada es la estructura FOR. Por ejemplo tenemos un arreglo llamado arrayPrecios de 10, 20,
100 1000 elementos donde se almacenarn los precios de diferentes productos. Para este tipo
de casos se debe utilizar las estructuras repetitivas para su llenado de datos.

A continuacin se muestra en Pseudocdigo la forma de ingresar los 1000 datos de precios al


arreglo arrayPrecios.

desde i = 1 hasta 1000 hacer

Leer (arrayPrecios[i])

fin desde

MOSTRAR DATOS
Mostrar los datos de un arreglo unidimensional se hace de la siguiente forma:

Sintaxis:

NombreDelArray [ ndice ]

Del ejemplo 1, mostraremos los elementos del arreglo Notas:

Mostrar (Notas[ 1 ])

Esta instruccin muestra el valor 15

Mostrar (Notas[ 2 ])

Esta instruccin muestra el valor 18

Mostrar (Notas[ 7 ])

Esta instruccin muestra el valor 17, y asi sucesivamente cada instruccin mostrar los elementos
del arreglo.

De la misma forma como se ha hecho el llenado de datos del arreglo arrayPrecios, tambin sern
necesarias las estructuras repetitivas para mostrar sus elementos.

desde i = 1 hasta 1000 hacer

Mostrar (arrayPrecios[i])

fin desde

Nota:
Y esta misma estructura repetitiva nos servir para poder hacer los clculos que deseamos
realizar con los elementos del arreglo.

165
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

OPERACIONES CONVECTORES
Para llevar acabo estas operaciones necesitaremos de un arreglo. A continuacin se muestra un
arreglo llamado Edad de 7 elementos que almacena datos de tipo entero.

.
.
.
Edad 23 12 56 31 8 72 49

166
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

Universidad Los ngeles de Chimbote


FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

FUNDAMENTOS DE PROGRAMACIN

EJERCICIOS DE ARREGLOS UNIDIMENSIONALES O


VECTORES

Ejercicios:
1. Hallar el promedio de edad de las 20 personas que han ingresado a la fiesta.
2. En una panaderia se han realizado 10 ventas. Se les pide hallar la venta total del da y la
mayor venta.
3. En una ganaderia se han realizado 20 ventas de bidones de leche. Se les pide hallar la
venta promedio del da y la menor venta.

167
Universidad los ngeles de Chimbote
Facultad de Ingeniera
Escuela Profesional de Ingeniera de Sistemas Algoritmos y Estructura de Datos

TRABAJO FINAL

Estimados estudiantes..!!

El trabajo final consiste en realizar un pequeo sistema en NetBeans utilizando todos los
conocimientos asimilados durante todo el semestre acadmico. El pequeo sistema ser
evualuado de la siguiente forma:

Programacin (10 ptos)


Estetica (5 ptos)
Complejidad (5 ptos)

El pequeo sistema debe comenzar con una ventana de contrasea y si la clave es correcta
ingresar al men principal del sistema, luego dentro de ella se realizarn todos los procesos del
sistema.

Los sistemas recomendados a realizar son los siguientes:

Sistema de librera.
Sistema de biblioteca.
Sistema de farmacia.
Sistema de supermercado.
Sistema de banco.
Sistema de futbol del campeonato profesional del Per (Apertura y Clausura).
Sistema de hotel.

Saludos,
Ing. Arnaldo Gonzales.

168

Vous aimerez peut-être aussi