Sie sind auf Seite 1von 188

Programa de Computacin, Diseo y Extensin

Algortmica
1
Algortmica
Programa de Computacin, Diseo y Extensin
Algortmica
2
Algortmica - Grupo IDAT
2
da
Edicin a cargo del Programa de Computacin e Informtica.
Los derechos de edicin, distribucin y comercializacin de esta obra son de exclusividad
del Instituto Superior Tecnolgico IDAT
Director Ejecutivo : Lic. Jaime Benavides Flores.
Coordinador Acadmico : Ing. Eloy Sotelo Cruz.
Elaboracin : Lic. ngel Ochoa Velasque.
: Ing. Jorge Cruz Pioquinto.
Diseo y Diagramacin : Roggers Publicidad E.I.R.L. - J.A.O.
Programa de Computacin, Diseo y Extensin
Algortmica
3
Presentacin
Este manual esta desarrollado exclusivamente para nuestros alumnos
siguiendo el syllabus planteado por nuestra plana docente.
El curso de algortmica se basa en el desarrollo de soluciones computa-
cionales de los diferentes problemas que se plantean, dichas soluciones son
independientes del lenguaje de programacin utilizado, por que son resueltos
en un nivel de abstraccin mayor utilizando representaciones ya sea grfcas
(diagramas de fujo) o textuales (pseudocdigo).
Su contenido es el siguiente:
Las estructuras de control
Permiten modelar la estructura del cdigo y el orden por el que ir leyendo
el computador las distintas instrucciones.
Es importante su conocimiento por que muchas soluciones algortmicas
se basan en ellas, el objetivo es aplicar la estructura ms adecuada al tipo
de problema con el cual nos enfrentamos.
Se desarrolla las estructuras secuenciales, condicionales, selectivas y
repetitivas.
Subprogramas
Divide y vencers, consiste en descomponer un problema grande en
problemas mas pequeos, resolver cada problema pequeo y combinar las
soluciones. El resultado, es la solucin del problema original.
Se desarrolla los procedimientos y las funciones.
Arreglos
Las estructuras de datos se defnen como la organizacin de la informa-
cin que permite un determinado lenguaje de programacin. Cada estructura
posee sus propias caractersticas de almacenamiento y recuperacin de los
datos, se analizan los arreglos que son estructuras de datos internos ya que
almacenan los datos en la memoria.
Se desarrolla los arreglos unidimensionales y bidimensionales.
Programa de Computacin, Diseo y Extensin
Algortmica
4
Programacin orientada a objetos
Se desarrollan las clases y se crean los objetos.
Programar, la programacin se entiende como la decisin anticipada de
lo que hay que hacer; se indica el conjunto de actividades dirigidas a la con-
secucin de una serie de tareas de forma automtica e independiente por el
computador. Pero en el mbito puramente informtico se puede decir que la
programacin es la herramienta de la que disponen los desarrolladores de
software para crear programas.
Los lenguajes de programacin utilizan una sintaxis propia para permitir
al programador escribir un cdigo que tras un proceso de compilacin sea
legible por la mquina creando as un programa.
Esperamos que esta gua constituya un complemento didctico que facilite
el aprendizaje de nuestros alumnos.
Los Autores
Programa de Computacin, Diseo y Extensin
Algortmica
5
C
A
P

T
U
L
O
1
Conceptos bsicos
1. Dato.- Son los objetos sobre los que opera una computadora.
2. Informacin.- Es el resultado del tratamiento de datos (en cual-
quiera de sus formas) y que por lo general es til para alguien o
para algo.
3. Algoritmo.- Es el conjunto ordenado y fnito de pasos o instruc-
ciones que conducen a la solucin de un problema. Aqu tiene
algunos ejemplos de algoritmos
- La receta para prepara un cebiche.
- Los pasos o instrucciones para armar un juguete.
Ejemplo de un algoritmo: ir al instituto desde su casa.
Me despierto.
Me levanto de la cama.
Me dirijo al bao a asearme.
Me visto.
Tomo el desayuno.
Me despido.
Me dirijo al paradero.
Abordo el bus.
Pago mi pasaje.
Verifco el paradero donde voy a bajar.
Bajo del bus.
Camino hacia el instituto.
Ingreso al instituto.
Programa de Computacin, Diseo y Extensin
Algortmica
6
Ejercicios
Desarrolle los siguientes algoritmos, para esto considere que todos los
materiales, productos o insumos que necesita los tiene a la mano.
1. Encender una de las dos hornillas de una cocina a gas.
2. Preparar una limonada sin helar.
3. Cambiar el foco quemado de una de las habitaciones de la casa.
Caractersticas de un algoritmo
- Preciso: indica el orden realizado en cada paso.
- Defnido: si se sigue dos o mas veces, se logra el mismo resultado.
- Finito: tiene un fnal, esto es, un nmero determinado de pasos.
2. Metodologa de la programacin.- Son los mtodos que se
utilizan para facilitar el proceso de programacin mediante la
construccin de algoritmos que permitan dar solucin a problemas
computacionales.
Para solucionar un problema con la computadora la parte lgica
esta en el algoritmo.
La efcacia de un programador no esta en conocer la herramienta
de programacin, cosa muy importante y necesaria, sino en saber
resolver problemas con la computadora.
Una vez que la solucin del problema ha sido expresada por medio
de un algoritmo el paso siguiente es convertirlo a programa para
lo cual se determina el lenguaje de programacin.
Por tanto, un programa resulta ser la implementacin de un algo-
ritmo en un determinado lenguaje de programacin. Esto signifca
que un algoritmo es independiente del lenguaje de progra-
macin.
2. Herramientas algortmicas.- Existe dos herramientas de pro-
gramacin muy utilizadas estas son:
a. Diagramas de fujo.
b. Pseudocdigos.
a. Diagrama de fujo.- Es una representacin grfca de un
algoritmo.
Es una herramienta que permite elaborar algoritmos de una
manera fcil utilizando smbolos los que indican las acciones
a realizar. Los smbolos utilizados han sido normalizados por
el Instituto Norteamericano de Normalizacin (ANSI).
b. Pseudocdigo.- Es una herramienta que facilita la
elaboracin de algoritmos en la que las instrucciones se
escriben utilizando un lenguaje de pseudoprogramacin, una
imitacin en castellano de los lenguajes de programacin
Programa de Computacin, Diseo y Extensin
Algortmica
7
de alto nivel. Por lo general las instrucciones se escriben en
lenguaje natural (castellano).
3. Programa.- Es un conjunto de instrucciones (ordenes) que guan
a la computadora para realizar alguna actividad o resolver un pro-
blema.
4. Lenguaje de programacin.- Es el medio a travs del cual le
comunicamos a la computadora la secuencia de instrucciones
(programa) que debe ejecutarse para resolver un problema.
5. Etapas para la solucin de un problema con la computado-
ra.- Un programa para el programador es un problema que tiene
que resolver, por tanto, para dar solucin a un problema con la
computadora se debe tener en cuenta las siguientes etapas:
1. Anlisis del problema
El objetivo es comprender y defnir claramente la naturaleza
del problema para poder llegar a una solucin satisfactoria.
Comprende los siguientes aspectos:
a. Defnicin del problema.- Qu har el programa que
se pretende construir?
b. Especifcaciones de entrada.- Cules sern los datos
de entrada?
c. Especifcaciones de salida.- Cules son los datos de
salida?
Lo que hace el programa
2. Diseo del algoritmo
En esta etapa se determina como hace el programa la tarea
solicitada, para esto se utilizan herramientas algortmicas
como diagramas de fujo y pseudocdigos.
En esta etapa es muy importante comprobar manualmente
el correcto funcionamiento del algoritmo.
Prueba de escritorio permite comprobar si el algoritmo cumple
con los objetivos planteados, consiste en elegir un conjunto
de valores de entrada y obtener los correspondientes valores
de salida y verificar si los resultados obtenidos son los
esperados.
Como lo hace el programa
Programa de Computacin, Diseo y Extensin
Algortmica
8
3. Codifcacin del programa
Etapa que consiste en escribir la solucin del problema en
una serie de instrucciones detalladas, estas se escriben en
un lenguaje de programacin de alto nivel.
Para pasar del algoritmo al programa se necesita conocer la
sintaxis (reglas de escritura) de las instrucciones del lenguaje
de programacin elegido.
Terminada la codifcacin se obtiene el llamado programa
fuente o cdigo fuente.
4. Compilacin y ejecucin
Obtenido el cdigo fuente se procede a la etapa de
compilacin. Este proceso consiste en verifcar la sintaxis
de cada instruccin del programa, si no se han producido
errores, el compilador producir el llamado programa objeto
o cdigo objeto.
5. Verifcacin y depuracin
En esta etapa se verifca el correcto funcionamiento del
programa con una amplia variedad de datos de entrada,
llamados datos de prueba.
La depuracin es el proceso de encontrar los errores del
programa y corregir o eliminar dichos errores.
6. Documentacin
Es una forma de comunicacin escrita, esta puede incluir
enunciados, procedimientos, conclusiones, diagramas, etc.
Por lo general, un programa es escrito por una persona y es
usado por otra. Por esta razn la documentacin sirve para
ayudar a comprender a usar el programa o para facilitar
futuras modifcaciones (mantenimiento).
7. Mantenimiento
Se realiza despus de haber terminado el programa, cuando
se determina que es necesario hacer algn o algunos
cambios, ajustes o complementacin al programa para que
siga trabajando de manera correcta. Para llevar a cabo esta
actividad es muy importante contar con la documentacin
del programa.
Programa de Computacin, Diseo y Extensin
Algortmica
9
Los datos
1. Esquema bsico de la clasifcacin de los datos:
Entera

Constantes Real
Datos
Variables Cadena

Carcter
En la siguiente expresin algebraica Y = X + 3, identifque:
- Las variables: . Por qu las identifc como tal?
- La constante: . Por qu la identifc como tal?
Digito (0, 1, 2,., 9 )
Qu es un carcter? Letra (A, B,.., Z, a, b, ....,z )
Especial ($, &, >,.)
2. Constantes.- Son aquellas que no cambian su valor durante la
ejecucin de un programa o prueba de un algoritmo. Las constantes
se clasifcan en:
2.1 C. Numrica Entera.- Para ser consideradas como tal,
deber cumplir la siguiente regla:
1 Formada por dgitos del 0 al 9.
2 Opcionalmente el uso del signo + o -.
Ejemplos: -7 +124 9
2.2 C. Numrica Real.- Para ser consideradas como tal, deber
cumplir la siguiente regla:
1 Formada por dgitos del 0 al 9.
2 Opcionalmente el uso del signo + o -.
3 Opcionalmente el uso del punto decimal.
Ejemplos: 0.24 -2.45 -.76 +.83 6
2.3 C. Carcter.- Para ser considerada como tal, deber cumplir
con la siguiente regla:
1 Limitada por comillas dobles.
2 Solo un carcter entre sus comillas.
Ejemplos: k 8 &
Programa de Computacin, Diseo y Extensin
Algortmica
10
2.4 C. Cadena.- Son llamadas tambin cadena de caracteres.
Para ser considerada como tal, deber cumplir con la siguiente
regla:
1 Limitada por comillas dobles.
2 Mximo 32 caracteres entre sus comillas.
3 Se acepta todo tipo de carcter entre las comillas a
excepcin de la misma comilla.
Ejemplos: venta JT265 $8
VALOR = CONSTANTE
3. Variables.- Son aquellas que cambian su valor durante la ejecucin
de un programa o prueba de un algoritmo.
Una variable es una zona de memoria cuya funcin es guardar el
valor que toma la variable, pero como una variable tomar varios
valores, stos, irn chancando a los valores antiguos manteniendo
el ltimo valor.
Para diferenciar una variable de la otra, es necesario darle un
nombre, ste, deber cumplir con la siguiente regla:
1 Deber empezar con una letra.
2 Mximo 16 caracteres.
3 Los caracteres aceptados son las letras, dgitos y el subrayado
(_).
Ejemplos: edad descuento3 igv F2T bonif_2
Observaciones:
* Una variable debe tener un nombre aparente al valor que guardar
de manera que sea fcil identifcarla.
* Esta misma regla se podr aplicar para dar nombre a una cons-
tante.
* Una variable ser siempre de un tipo especfco, los tipos a utilizar
en ste curso sern:
Entera
Real
Cadena
Carcter
* Una forma de determinar el tipo de una variable es conociendo el
tipo de la constante o valor que se guardar en dicha variable.
Programa de Computacin, Diseo y Extensin
Algortmica
11
Ejemplos: de que tipo deberan ser las siguiente variables y por
qu?
cant_hijos :.............................................................................
total_dsctos:.............................................................................
placa_vehiculo:.........................................................................
sexo:.......................................................................................
Las expresiones
1. Defnicin.- Es una agrupacin de constantes, variables y opera-
dores.
Ejemplo: K * 2 + X / 6
2. Operadores.- Son los smbolos que permiten crear las expresiones.
3. Tipos de operadores:
3.1 Operadores matemticos.
OPERADOR ACCIN
*
/
\
MOD
+
-

Multiplicacin
Divisin real
Divisin entera
Residuo de divisin
Adicin
Sustraccin
Potenciacin
Como se dar cuenta, los tres operadores tienen que ver necesaria-
mente con la divisin:
- El 7 / 2, obtiene el cociente, incluso con decimales.
- El 7 \ 2, obtiene slo la parte entera del cociente.
- El 7 MOD 2, obtiene el residuo de la divisin.
3.2 Operadores relacinales.
OPERADOR ACCIN
>
<
=

Mayor que
Menor que
Igual a
Diferente a
Mayor o igual a
Menor o igual a
Observe:
7 / 2 7 \ 2 7 MOD 2
Cociente 3.5 3 3
Residuo 0 1 1
Resultado 3.5 3 1
Programa de Computacin, Diseo y Extensin
Algortmica
12
3.3 Operadores lgicos.
OPERADOR ACCIN

NO
y (conjuncin)
O (disyuncin)
Negacin
Tablas de verdad de los operadores lgicos bsicos:
P Q P Q P Q
V V V V
V F V F
F V V F
F F F F
El operador de negacin:
P P
V F
F V
Considere que P y Q son proposiciones lgicas.
4. Prioridad de los operadores:
Regla general:
1 ( )
2 Operadores matemticos:
2.1
2.2 * , /
2.3 \ , MOD
2.4 + , -
3 Operadores relacinales
4 Operadores lgicos:
4.1 NO
4.2
4.3
Programa de Computacin, Diseo y Extensin
Algortmica
13
Observacin
Cuando en una expresin hay operadores que presentan la misma
prioridad, las operaciones se ejecutarn empezando de izquierda a de-
recha.
2 + 5 * 9 / 2 * 3 - 6
2 + 5 * 9 / 2 * 3 - 6
2 + 45 / 2 * 3 - 6
2 + 22.5 * 3 - 6
2 + 67.5 - 6
69.5 - 6
63.5
Ejemplo: Ejemplo: Ejemplo:
8 + 3 \ 2 > 9 * 3 - 2
8 + 1 > 27 - 2
9 > 25
F
2 + 5 < 9 4 = 2 * 4 - 3
7 < 9 4 = 8 - 3
7 < 9 4 = 5
V F
F
Gua prctica N1
Objetivos:
- Identifcar el tipo de constantes.
- Crear nombres de variables.
- Construir y evaluar expresiones de todo tipo.
1. Determinar que tipo de constantes representan los siguientes
ejemplos:
1.1. 13.25 ........
1.2. +125 ........
1.3. FIN ........
1.4. 2,560 ........
1.5. -25 ........
1.6. EDAD ........
1.7. 1.35 ........
1.8. 34 ........
2. Escriba tres nombres de variable para cada nombre que se indica:
2.1. Libreta electoral ......................
2.2. Nmero de postulantes ........................
2.3. Sueldo de un obrero .........................
2.4. Cdigo de un alumno .....................
2.5. Importe de venta ......................
Programa de Computacin, Diseo y Extensin
Algortmica
14
3. Indique si los siguientes nombres de variables estn bien escritos,
de no ser as, explique por qu:
Variable Bien / mal Por qu?
3.1. A
3.2. X1
3.3. BONIF-1
3.4. SK_2
3.5. CDIGO
3.6. J32T
3.7. IMPORTE 2
3.8. 2DSCTO
3.9. K6_8_G72
4. Utilice los operadores matemticos para transformar las siguientes
expresiones algebraicas:
4.1. 5K
4.2. 4X + 2Y
4.3. 2(A+B)
4.4. X2 - Y3
4.5. W + T
K
4.6. A - 3B2
5K + 8J
5. Obtenga las expresiones algebraicas que dieron origen a las si-
guientes expresiones:
5.1. x 2 - 3 * T
5.2. (2 * C + 5 * B) / A
5.3. J / (I - 2) 2
5.4. D - C / (E + 1)
5.5. (C + D) 2 / (A + B 2)
6. Obtenga el resultado de las siguientes expresiones:
6.1. 3 + 5 * 4 + 8 / 2 6
6.2. 6 + 10 \ 3 - 9 MOD 5+ 4
6.3. (2 * 2 + 4 * 2 * 3) \ (2 * 3 + 1)
6.4. (20 MOD 7 MOD 4 MOD 2 + 1) * 10
6.5. ( 50 \ 3 \ 3 \ 2 - 1 ) * 100
6.6. 2 + 5 * 30 - 4 3 + 18 \ 5 + 5
6.7. 5 + 3 * 20 - ( 4 + ( 3 - 1 * 2 ) + 5 - ( 3 * 2 - 4 ) )
6.8. 2 > 4 3 = 2 5 < 9 7 9 NO 4 4 8 > 9
Programa de Computacin, Diseo y Extensin
Algortmica
15
C
A
P

T
U
L
O
2
Estructura de un
algoritmo
Para construir un algoritmo utilizando como herramienta el pseudoc-
digo debemos utilizar el siguiente formato:
ALGORITMO nombre
CONSTANTES
nombre1 = valor1
: :
: :
VARIABLES
nombre1 : tipo A
: :
: :
INICIO
instruccin 1
:
:
:
:
instruccin N
FIN.
Ejemplo de un algoritmo utilizando el formato:
ALGORITMO ejemplo1
CONSTANTES
j = 10
VARIABLES
x , k : entera
a : real
INICIO
x 12
leer k
a j * k + x
escribir a, k, j
FIN.
Observe que cuando las variables son del mismo tipo esta se pueden
poner juntas pero separadas por comas.
Programa de Computacin, Diseo y Extensin
Algortmica
16
Las seccin llamada CONSTANTES se escribir en caso sea necesario,
de no ser as se podr obviar.
1. Instrucciones bsicas
La construccin de un algoritmo basado en pseudocdigo requiere
uniformizar sus instrucciones
1.1 Ingreso de Datos: ingreso de valores por medio del teclado,
se utiliza la siguiente instruccin.
leer nomb_var1, nomb_var2 , ..... , nomb_varN
Las palabras digitar o ingresar son sinnimos de la palabra
leer.
Ejemplo:
leer sueldo, apellido (se solicita el ingreso de dos
valores, el primer valor se
guardar en la variable sueldo
y el segundo valor en la
variable apellido)
leer edad (se solicita el ingreso de un
valor, este se almacenar en
la variable edad)
1.2 Asignacin de valor: para almacenar en una variable un
valor o el contenido de otra variable o el resultado de una
expresin, se utilizar la siguiente instruccin.
valor
nomb_var1 expresin
nomb_var2
El smbolo signifca asignar.
Observe que las llaves en el formato indican que se deber
elegir una de las alternativas que estn entre ellas.

Ejemplo:

turno m (Se asigna el valor m en la
variable turno)
sueldo 1245.5 (Se asigna el valor 1245.5 en
la variable sueldo)
Programa de Computacin, Diseo y Extensin
Algortmica
17
bonif1 0.08 * sueldo (El resultado de la expresin
se asignara en la variable
bonif1)
aux1 aux2 (El contenido de la variable
aux2 se almacenar en la
variable aux1)

1.3 Salida de datos: para mostrar en impresora o pantalla un
valor y/o el resultado de una expresin y/o el contenido de
una variable, se utilizar la siguiente instruccin.
b_var 1 nomb_var K
escribir expresin 1 , .......... , expresin K
valor 1 valor K
nom
Las palabras visualizar, mostrar o displayar son sinnimos de
la palabra escribir.
Ejemplo:
escribir bonif2 (se mostrar el contenido
de la variable bonif2)
escribir error, suma / 2, 10011 (se visualizar el valor
error, el resultado de la
expresin indicada y el
valor 10011)
Gua prctica N2
Problemas Resueltos (procesos secuenciales)
Lea atentamente el enunciado de cada enunciado y ob-
serve como se plantea su solucin.
1. Digite un nmero y visualice triple de dicho numero.
Signifcado de las variables:
num guarda el nmero ingresado.
triple almacena el triple del nmero que se ingreso.
Anlisis
Tenga en cuenta que para obtener el triple de un
cualquier nmero ste se deber multiplicar por tres.
Forma 1:
ALGORITMO prob_resueltos1
VARIABLES
num, triple: entera
INICIO
leer num
triple 3 * num
escribir triple
FIN.
Forma 2:
ALGORITMO prob_resueltos1
VARIABLES
num: entera
INICIO
leer num
escribir 3 * num
FIN.
Cul de las dos formas es la
mejor?
Programa de Computacin, Diseo y Extensin
Algortmica
18
2. Ingrese por teclado dos nmeros, muestre su semidiferencia.
Signifcado de las variables:
num1: guarda el primer nmero que se ingresar.
num2: almacena el segundo nmero a ingresar
semidif: guarda la semidiferencia de los nmeros
Anlisis
La semidiferencia se calcula restando los nmeros y
luego dividindolos entre dos.

ALGORITMO problema
VARIABLES
num1, num2: entera
semidif: real
INICIO
leer num1,num2
semidif ( num1 - num2 ) / 2
escribir semidif
FIN.
2
2 1 numero numero
ncia semidifere

=
3. Visualice el rea de un circulo y longitud de su circunferencia, para
esto se deber digitar el radio del circulo.
Signifcado de las variables:
rad: almacena el radio a ingresar
long: guarda la longitud de la circunferencia
rea: almacena el rea del circulo
Anlisis
Conocido el radio entonces
Area = r
2
Longitud = 2 r
En donde = 3.1416
ALGORITMO prob_resueltos3
CONSTANTES
pi = 3.1416
VARIABLES
rad, long, area: real
INICIO
leer rad
area pi * rad 2
long 2 * pi * rad
escribir area, long
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
19
4. Se ingresa el nmero total de soldados que participaron en la
ltima guerra y la cantidad de muertos, muestre el porcentaje de
soldados muertos y salvos.
Signifcado de las variables:
total_sold: guarda el total de soldados
muertos: almacena la cantidad de soldados
muertos
porc_muertos: guarda el porcentaje de
soldados muertos
porc_vivos: guarda el porcentaje de soldados
vivos
Anlisis
En porcentajes, el total se considera el 100%,
en este caso seria el total de soldados, por
tanto la cantidad de soldados muertos y vivos
serian una parte de este porcentaje.
El porcentaje de muertos se calculara como:
(muertos / total de soldados) x 100
El porcentaje de vivos se calculara como: (1 -
porc_muertos)*100
5. Una persona desea invertir un capital en un banco para ganar inte-
reses, para esto construya un algoritmo que haga una proyeccin
de los intereses a ganar.
Se deber digitar el nombre de la persona, el capital de inversin
y el nmero de meses que dejar el dinero en el banco.
Visualice el inters a obtener y el total de dinero que recibira al
cabo del tiempo que estuviera el dinero en el banco.
Considere que el inters es simple y que el banco le paga el 2%
mensual.
Signifcado de las variables
nom: guarda el nombre de la persona
interes_mes: almacena el inters mensual
interes_tot: guarda el total de intereses
total: almacena el total que recibe al fnal de
los meses
Anlisis
Como el inters simple, entonces cada mes
recibir la misma cantidad de dinero.
Interes mensual = 0.02 * capital
Interes total = nmero de meses * inters
mensual
Total que recibir = capital + inters total
ALGORITMO prob_resueltos4
VARIABLES
total_sold, muertos: entero
porc_muertos, porc_vivos: real
INICIO
leer total_sold,muertos
porc_muertos (muertos / total_sold)
* 100
porc_vivos (1 - porc_muertos) * 100
escribir porc_muertos, porc_vivos
FIN.
ALGORITMO prob_resueltos5
VARIABLES
nom: cadena
capital, interes_mes, interes_tot, total: real
nro_meses: entero
INICIO
leer nom, capital, n_mes
interes_mens 0.02 * capital
interes_tot nmes * interes_mes
total capital + interes_tot
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
20
6. Visualice la suma de los primeros nmeros naturales, para esto
digite la cantidad de nmeros naturales.
Signifcado de las variables
num guarda la cantidad de nmeros naturales
suma almacena la suma de los nmeros naturales
Anlisis
La formula para hallar la suma de los n primeros
nmeros naturales es
Suma = n ( n + 1) / 2
ALGORITMO prob_resueltos6
VARIABLES
num, suma: entera
INICIO
leer num
suma num * (num + 1) / 2
escribir suma
FIN.
7. Visualice el precio de venta de un articulo si se ingresa por tecla-
do el nombre del articulo y su precio de costo. Considere que la
ganancia del articulo es del 30% respecto al precio de costo.
Signifcado de las variables
Nom: guarda el nombre del articulo
Pcosto: almacena el precio de costo
Pventa: guarda el precio de venta
Gan: almacena la ganancia
Anlisis
Para el precio de venta se sabe que
Precio de venta = Precio de costo + ganancia
Y que ganancia = 0.3 x precio de costo
ALGORITMO prob_resueltos7
VARIABLES
nom: cadena
pcosto, pventa, gan : real
INICIO
leer nom, pcosto
gan 0.3 * pcosto
pventa pcosto + gan
escribir gan, pventa
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
21
8. Digite un nmero entero positivo de tres cifras luego visualice el
nuevo formado por sus cifras extremas y la inversa de dicho n-
mero.
Signifcado de las variables
num: guarda el nmero
nnum: almacena el nuevo nmero
c: guarda la cifra de la centena
u: almacena la cifra de la unidad
inv_nnum: guarda la inversa del nuevo nmero
Anlisis
Sea el nmero cdu
El nuevo nmero ser (nmero formado por las
cifras extremas)
La inversa del nuevo nmero se calcular como 1 /
cu
cu
ALGORITMO prob_resueltos8
VARIABLES
num, c, u, nnum: entera
inv_nnum: real
INICIO
leer num
c num \ 100
u num mod 10
nnum c * 10 + u
inv_nnum 1 / nnum
escribir nnum, inv_nnum
FIN.
Prctica dirigida
Lea atentamente el enunciado de cada problema y construya su al-
goritmo respectivo, para esto utilice pseudocdigo.
01. Ingrese por teclado un nmero, luego imprima su cuadrado.
02. Digite un nmero, muestre su 30%.
03. Se ingresan el nombre y las tres notas de prcticas de un alumno,
visualice el nombre y su promedio de prcticas. Considere decimales
para el calculo del promedio.
04. Ingrese por teclado un nmero, incremente su valor en un 25%, luego,
visualice el valor del incremento y el nuevo valor del nmero.
05. Un establecimiento comercial otorga 15% de descuento a todos
sus clientes, esto, independientemente al importe de compra, en
base a esto, construya un algoritmo que cumpla con las siguientes
acciones, se digitar el nombre del cliente y el valor de su importe
de compra, se mostrar el valor del descuento y el importe fnal
de dicha compra.
Programa de Computacin, Diseo y Extensin
Algortmica
22
06. Ingrese por teclado el nombre de un producto, su precio y la can-
tidad comprada, se visualizar el importe de compra, el IGV y el
importe fnal.
Observacin: para el IGV considere 19% respecto al importe de
compra.
07. Construya un algoritmo en el que se digite el nombre y el sueldo
de un trabajador, se deber imprimir el descuento, la bonifcacin
y el sueldo neto que recibe el trabajador, para esto, considere que
todos los trabajadores tienen un descuento de 9% del sueldo y que
la bonifcacin otorgada por la empresa es del 15% del sueldo.
08. Desarrolle un algoritmo en donde se ingrese por teclado el nombre
del vendedor, su sueldo bsico y los importes de sus tres ventas
realizadas durante el mes, muestre la comisin por conceptos de
ventas y el sueldo fnal. La comisin es del 12% del total de sus
ventas.
09. Una tienda comercializadora de artefactos elctricos pidi la crea-
cin de un algoritmo en el que se dieran las siguientes acciones,
se deber digitar el nombre del cliente y el precio del artefacto (no
incluye el IGV), se deber mostrar:
- El precio fnal.
- El valor de la cuota inicial.
- El valor de cada una de las 4 cuotas.
Considere que el valor de la cuota inicial es el 35% del precio fnal,
que el IGV es el 19% del precio y que las 4 cuotas tienen el mismo
valor.
10. Desarrolle un algoritmo para la compaa telefnica que permita
mostrar el pago por consumo telefnico; para esto se ingresar el
cdigo del usuario, el nmero telefnico y la cantidad de minutos
utilizados.
Imprima el cdigo del usuario, el importe por los minutos utilizados,
el IGV y el pago total.
Tenga en cuenta que la empresa cobra S/. 0.30 por minuto utili-
zado, S/. 48.00 de renta bsica y que el IGV es 18% respecto al
importe por minutos utilizados.
11. Digite dos nmeros, intercambie el contenido entre sus variables
y luego visualcelas.
12. Digite tres nmeros positivos de una cifra, estas representan la
unidad, decena y centena respectivamente, muestre el nmero
formado por estas cifras, considere que la centena ser diferente
de cero.
13. Ingrese por teclado un nmero entero y positivo de tres cifras
(almacene este nmero en una variable), visualice la suma de sus
cifras.
Programa de Computacin, Diseo y Extensin
Algortmica
23
14. Digite un nmero entero y positivo de cuatro cifras (guarde este
nmero en una variable), muestre el nmero ingresado pero, con
sus cifras en sentido contrario.
15. Ingrese por teclado el nmero total de segundos, visualice cuantas
horas, minutos y segundos existen en el valor que se ingres.
Problemas propuestos
01. Digite un nmero y luego muestre su mitad.
02. Digite un nmero por teclado, muestre su dcima parte.
03. Digite el nombre y ao de nacimiento de un paciente, muestre el
nombre y su edad.
04. En una fbrica de plsticos a los obreros se les paga por cada balde
S/. 0.25, el pago es diario, construya un algoritmo que realice las
siguientes acciones, se ingresar va teclado el nombre y la cantidad
de baldes hechos por un obrero, se debe visualizar el nombre y el
pago a realizar.
05. Desarrolle un algoritmo para SEDAPAL que permita el ingreso
por teclado el cdigo del usuario y la cantidad de metros cbicos
consumidos.
Calcule y visualice los siguientes pagos:
- Importe inicial.
- Mantenimiento de parques y jardines (2.8%).
- Relleno sanitario (1.4%).
- Mantenimiento general (2.1%).
- IGV (18%).
- Pago total.
Considere el precio que se paga por cada metro cbico consumi-
do se paga S/ 0.45 y que los porcentajes son respecto al importe
inicial.
06 Construya un algoritmo que permita convertir dlares en soles,
para esto, se deber ingresar por teclado la cantidad de dlares y
el valor actual del dlar, visualizar la cantidad de soles.
07. Crear un algoritmo que permita convertir una cantidad de litros en
galones exactos, para esto se deber digitar la cantidad de litros
y precio por galn, se deber mostrar la cantidad de galones y el
importe a pagar (considere 1 galn = 4.5 litros).
08. Ingrese por teclado la cantidad de dlares a cambiar y el tipo de
cambio actual, visualice el total de soles.
09. Digite un nmero entero y positivo de dos cifras (almacene este
nmero en una sola variable), visualice el promedio de stas as
como tambin su semiproducto.
Programa de Computacin, Diseo y Extensin
Algortmica
24
10. En un colegio se requiere tener un proceso que le de facilidad en
los das de matrcula, para esto se crear un algoritmo que realice
las siguientes acciones, se deber ingresar va teclado la cantidad
de alumnos matriculados, se visualizar:
- El nmero de aulas llenas.
- El nmero de alumnos que faltaran para llenar la ltima aula.
Considere que cada aula tiene capacidad para 40 alumnos.
11. Digite el nmero de horas, minutos y segundos muestre luego el
total de segundos contenidos en estos datos.
12. Ingresar por teclado un nmero entero y positivo de 4 cifras (guarde
este nmero en una variable), luego de esto deber de visualizar:
- El nmero formado por las cifras extremas.
- El nmero formado por las cifras centrales.
- La suma de los dos nmeros anteriormente.
13. Digite el nmero de botellas de cervezas que se desean poner en
cajas y el precio de cada botella, de deber mostrar:
- El total de cajas llenas.
- El precio de la caja de cerveza.
- El importe total por todas las cajas llenas.
Considere que cada caja contiene 12 botellas.
Programa de Computacin, Diseo y Extensin
Algortmica
25
Estructura condicional
1. Estructura condicional
Muchos de los problemas para llegar a su solucin requieren efec-
tuar tomas de decisiones que conducen a la ejecucin de una o
ms acciones dependiendo de la verdad o falsedad de una o ms
condiciones. A consecuencia de esto se producen alteraciones en la
secuencia normal de ejecucin de las instrucciones del algoritmo,
esto obliga a seleccionar una ruta con sus instrucciones respec-
tivas y ejecutarlas para luego enlazarse al fujo instrucciones del
algoritmo principal y continuar con su secuencia.
2. Otros nombres:
- Estructura de bifurcacin.
- Estructura de control.
- Estructura de decisin.
3. Clasifcacin:
- Estructura condicional simple.
- Estructura condicional doble.
- Estructura condicional anidada.
C
A
P

T
U
L
O
3
Programa de Computacin, Diseo y Extensin
Algortmica
26
Observaciones:
- La estructura condicional esta limitada por las palabras: si y
fn_si.
- Para crear una condicin se utilizan operadores lgicos y/o
relacionales adems de los matemticos si es necesario.
Ejemplos de condiciones:
Estructura de condicional simple
4. Estructura Condicional Simple
Formato :
instruccin
si condicin entonces

instruccin1
:
instruccin N
fin_si
instruccin X
:
Gua prctica N 3
Problemas resueltos
Construya los algoritmos que den solucin a los siguientes problemas:
1. Ingrese el nombre y el promedio fnal de un alumno, muestre el
nombre y el mensaje "FELICITACIONES" slo en caso que su
promedio fue 20.
Significado de las variables
nom guarda el nombre del alumno
pf almacena el promedio final
ALGORITMO prob_resueltos1
VARIABLES
nom : cadena
pf : entera
INICIO
leer nom, pf
si pf = 20 entonces
escribir nom, FELICITACIONES
fin_si
FIN.
Sueldo < 1200
(Sexo ="d") ^ (Turno = 2)
3 + x * 5 125
Programa de Computacin, Diseo y Extensin
Algortmica
27
2. Ingrese el nombre del trabajador y su ao de ingreso, visualice el
nombre y el tiempo de servicio del trabajador que tiene mas de
20 aos de tiempo de servicio.
3. Ingrese el valor de un ngulo en radianes, en caso este sea agudo
se visualizar lo que le falta para ser un ngulo recto.
Signifcado de las variables
nom guarda el nombre
a_ing almacena el ao de ingreso
t_serv guarda el tiempo de servicio
ALGORITMO prob_resueltos3
VARIABLES
nom : cadena
a_ing, t_serv : entera
INICIO
leer nom, a_ing
t_serv 2005 a_ing
si t_serv > 20 entonces
escribir nom, t_serv
fn_si
FIN.
Signifcado de las variables
ang_rad guarda el ngulo en radianes
ang_sex almacena el ngulo en sexagesimal
falta guarda lo que falta para convertirse en ngulo recto
ang. sexag. ang. rad.
------------------ = --------------
180
Despejando ang. sexag = 180 * (ang.rad. / )
En donde = 3.1416
ALGORITMO prob_resueltos4
VARIABLES
ang_rad, ang_sex, falta : real
INICIO
leer ang_rad
ang_sex 180 * ( ang_rad / 3.1416 )
si ang_sex < 90 entonces
falta 90 ang_sex
escribir falta
fn_si
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
28
4. Ingrese el numerador y el denominador de una fraccin, en caso
se pueda muestre la fraccin mixta.
5. Ingrese por teclado el nombre, el nmero de horas trabajadas
durante la semana y la tarifa por hora, sta informacin es de un
obrero cuya jornada laboral es de 48 horas semanales.
La poltica de pagos de la Empresa consiste en que el valor de la
hora extra tiene un incremento del 40%. Se deber visualizar, slo
del trabajador que hizo horas extras, el valor de la hora extra y el
valor del importe que se paga al trabajador.
Significado de las variables
num guarda el numerador
den almacena el denominador
coc guarda el cociente entero
res almacenara el residuo entero
Ejemplo de una fraccin mixta
2 3 5 numerador : 23
denominador : 5 Fraccin mixta: 4 3 / 5
2 0 4 cociente : 4 El cociente y residuo sern enteros.
residuo : 3
3
ALGORITMO prob_resueltos5
VARIABLES
num, den, coc, res : entera
INICIO
leer num, den
si num > den entonces
coc num \ den
res num mod den
escribir coc, res, /, den
fin_si
FIN.
Significado de las variables
num guarda el numerador
den almacena el denominador
coc guarda el cociente entero
res almacenara el residuo entero
Ejemplo de una fraccin mixta
2 3 5 numerador : 23
denominador : 5 Fraccin mixta: 4 3 / 5
2 0 4 cociente : 4 El cociente y residuo sern enteros.
residuo : 3
3
ALGORITMO prob_resueltos5
VARIABLES
num, den, coc, res : entera
INICIO
leer num, den
si num > den entonces
coc num \ den
res num mod den
escribir coc, res, /, den
fin_si
FIN.
Significado de las variables
nom nombre del trabajador
nht nmero de horas trabajadas
nhe nmero de horas extras
thn tarifa por hora normal
the tarifa por hora extra
imp_he importe por horas extras
imp_hn importe por horas normales
imp_tot importe total
ALGORITMO prob_resueltos6
VARIABLES
nom : cadena
nht, nhe : entera
thn, the : real
imp_tot, imp_he, imp_hn : real
INICIO
leer nom, nht, thn
si nht > 48 entonces
nhe nht 48
the thn + 0.4 * thn
imp_he nhe * the
imp_hn 48 * thn
imp_total imphn + imphe
escribir the, imp_total
fin_si
FIN.
Significado de las variables
nom nombre del trabajador
nht nmero de horas trabajadas
nhe nmero de horas extras
thn tarifa por hora normal
the tarifa por hora extra
imp_he importe por horas extras
imp_hn importe por horas normales
imp_tot importe total
ALGORITMO prob_resueltos6
VARIABLES
nom : cadena
nht, nhe : entera
thn, the : real
imp_tot, imp_he, imp_hn : real
INICIO
leer nom, nht, thn
si nht > 48 entonces
nhe nht 48
the thn + 0.4 * thn
imp_he nhe * the
imp_hn 48 * thn
imp_total imphn + imphe
escribir the, imp_total
fin_si
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
29
6. Ingrese tres nmeros y luego muestre el menor de ellos.
Prctica dirigida
Lea atentamente el enunciado de cada problema y construya su al-
goritmo respectivo
01. Ingrese un nmero entero y slo si es divisible por 5, muestre su
cuadrado.
02. Digite un nmero, si este es 50 digite otro y luego muestre la suma
de dichos nmeros.
03. Ingrese por teclado 3 nmeros, si el segundo es mayor a todos
visualice el primer y tercer nmero ingresado.
04. Digite una letra mayscula y muestre el mensaje vocal slo cuando
esto ocurra.
05. Ingrese por teclado el nombre, sexo(v,d), sueldo y turno(m,t,n)
de un trabajador, visualice el nombre y sueldo slo de aquella
trabajadora que est en el turno tarde.
06. Digite un nmero, si es mayor a 300 incremntele en 50%, luego
muestre el valor del incremento as como tambin el nuevo valor
que toma este nmero.
07. Ingrese por teclado un nmero de dos cifras, visualice el mensaje
capica slo en el caso que esto ocurra. Recuerde que un nmero
es capica cuando ledo de derecha a izquierda resulta tener el
mismo valor que ledo de izquierda a derecha.
08. Digite tres nmeros y visualice el mayor de ellos.
Significado de las variables
n1 guarda el primer numero
n2 almacena el segundo numero
n3 almacena el tercer nmero
menor guarda el menor de los nmeros
ALGORITMO prob_resueltos7
VARIABLES
n1, n2, n3, menor : real
INICIO
leer n1, n2, n3
menor n1
si n2 < menor entonces
menor n2
fin_si
si n3 < menor entonces
menor n3
fin_si
escribir menor
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
30
09. Construya un algoritmo en el que se ingrese por teclado el nom-
bre del comprador y el importe de compra, aplquele al importe
descuentos sucesivos del 20% y 30% slo en caso dicho importe
fuese mayor de S/ 250.00.
Problemas propuestos
01. Ingrese el nombre y el nmero de hijos de un empleado, visualice
el mensaje sin hijos slo de aquel empleado que cumpla con sta
condicin.
02. Ingrese las tallas de dos personas, slo si se cumple que la segunda
talla es mayor que la primera se mostrar la mayor talla.
03. Ingrese el nombre, sueldo y nmero de hijos de un empleado, ste
slo tendr bonifcacin si tiene hijos, la Empresa otorga S/. 40.00
por cada hijo.
Imprima la bonifcacin y el nuevo sueldo slo de aquel empleado
que se le dio este incentivo.
04. Ingrese un nmero, slo en caso que ste fuese positivo se tendr
que convertirlo a negativo y luego se visualizar.
05. Ingrese una letra, muestre el mensaje es una consonante, slo
cuando esto ocurra.
06. Ingrese un nmero entero, si ste es mltiplo de 2 y 3 a la vez, se
visualizar su cuadrado.
07. Ingrese un nmero de dos cifras, muestre la suma de sus cifras
en caso stas sean diferentes.
08. Ingrese dos nmeros y la operacin que se desea realizar, slo si
la operacin es multiplicacin se deber visualizar su resultado.
09 Ingresar el nombre, sexo (v,d) y edad, si se cumple que los datos co-
rresponden a una dama menor de edad se visualizar su nombre.
10. Ingrese el nombre, ao de ingreso y sexo (v,d) de un trabajador,
muestre el nombre y el tiempo de servicio de aquel trabajador que
tenga ms de 25 aos laborando.
11. Una tienda comercial dedicada a la venta slo de artculos importados
desea un algoritmo que permita el ingreso por teclado del importe
y el nmero de meses a pagar, slo, si el nmero de meses a pagar
excede a 6 se le dar un recargo del 28% del valor del importe.
Visualice el valor del recargo y el importe fnal slo de aquel cliente
que pago tuvo recargo.
Programa de Computacin, Diseo y Extensin
Algortmica
31
Estructura condicional
doble
5. Estructura Condicional Doble
A la estructura condicional simple le aumentamos la palabra sino y
el grupo de instrucciones correspondientes, las mismas que estn
relacionadas a la falsedad de la condicin.
C
A
P

T
U
L
O
4
Formato:
:
instruccin
si condicin entonces

instruccin
:
:
instruccin
sino
instruccin
:
:
instruccin
fin_si
instruccin X
:
Observaciones:
- A diferencia del condicional simple, en el que solo interesa si se
cumple la condicin, en el condicional doble interesa tambin que
hacer si la condicin no se cumple y las acciones que aqu se deben
hacer.
Programa de Computacin, Diseo y Extensin
Algortmica
32
02 Ingrese dos nmeros distintos, muestre ordenados en forma as-
cendente.
- La palabra sino esta relacionada con la falsedad de la condicin y
las acciones o instrucciones correspondientes se escribirn debajo
de esta palabra.
- Las instrucciones que estn debajo de la palabra fn_si se ejecutaran
al salir del condicional, esto permitir enlazarse al fujo instrucciones
del algoritmo principal y continuar con su secuencia.
- Es muy importante deducir la condicin a partir de la informacin
del enunciado del problema, de tal manera que permita tanto por
su verdad o su falsedad las instrucciones que se deben realizar.
Gua prctica N 4
Construya los algoritmos que den solucin a los siguientes proble-
mas:
01. Ingrese un nmero y visualice uno de los siguientes mensajes Es
10 o No es 10 segn sea el caso.
Signifcado de las variables
num: guarda el nmero
ALGORITMO prob_resueltos1
VARIABLES
num : entero
INICIO
leer nun
si num =10 entonces
escribir Es 10
sino
escribir No es 10
fn_si
FIN.
Signifcado de las variables
n1: guarda el primer nmero
n2: guarda el segundo nmero
ALGORITMO prob_resueltos2
VARIABLES
n1, n2 : entero
INICIO
leer n1, n2
si n1 < n2 entonces
escribir n1, n2
sino
escribir n2, n1
fn_si
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
33
03. Ingrese el nombre y las dos notas de un alumno, visualice el pro-
medio y uno de los siguientes mensajes aprob o desaprob
segn sea el caso.
04. Ingrese un nmero entero de hasta dos cifras, en caso el nmero
fue de una cifra se visualizar lo mnimo que le falta para ser un
nmero de dos cifras y si es de dos cifras se mostrar lo mnimo
que le falta para ser un nmero de tres cifras.
Signifcado de las variables
nom guarda el nombre
nt1 almacena la primera nota
nt2 guarda la segunda nota
prom almacena el promedio
ALGORITMO prob_resueltos3
VARIABLES
nom : cadena
nt1, nt2 : entera
prom : real
INICIO
leer nom, nt1, nt2
prom ( nt1 + nt2 ) / 2
si prom 10.5 entonces
escribir prom, APROBADO
sino
escribir prom, DESAPROBADO
fn_si
FIN.
Signifcado de las variables
num guarda el nmero
falta almacena lo que falta para ser un nmero de dos o
tres cifras.
ALGORITMO prob_resueltos4
VARIABLES
num : entero
INICIO
leer num
si num < 10 entonces
falta 10 - num
sino
falta 100 - num
fn_si
escribir falta
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
34
05. Ingrese el tiempo en minutos empleado en una llamada telefni-
ca, se pide visualizar el importe de la llamada si se sabe que por
los primeros 3 minutos se paga S/. 1.00 y que por cada minuto
adicional se paga S/. 0.50.
06. Ingrese las horas y minutos que estuvo el vehculo en la playa de
estacionamiento, se deber visualizar el pago que har el cliente
sabiendo que por cada hora o fraccin de la misma se cobra S/.
2.50.
Asuma que la fraccin es igual o mayor a 15 minutos.
Signifcado de las variables
minutos guarda los minutos
t_exceso almacena tiempo de exceso
Imp guarda el importe

ALGORITMO prob_resueltos5
VARIABLES
minutos, t_exceso : entero
imp : real
INICIO
leer minutos
si minutos 3 entonces
imp 1
sino
t_exceso minutos 3
imp 1 + t_exceso * 0.5
fn_si
escribir imp
FIN.
Signifcado de las variables
m guarda los minutos
h almacena tiempo de exceso
pago guarda el importe

ALGORITMO prob_resueltos6
VARIABLES
h, m : entero
pago : real
INICIO
leer h, m
si minutos 15 entonces
h h + 1
sino
h 1
fn_si
pago h * 2.5
escribir pago
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
35
07. Una empresa dedicada a la venta de repuestos de vehculos desea
realizar una compra de varios repuestos de la misma clase a una
fabrica de refacciones. La empresa, dependiendo del monto total
de la compra, decidir que hacer para pagar al fabricante.
Si el monto total de la compra excede de $ 500.00 la empresa
tendr la capacidad de invertir de su propio dinero un 55% del
monto de la compra, pedir prestado al banco un 30% y el resto lo
pagar solicitando un crdito al fabricante.
Ahora, si el monto total de la compra no excede a $ 500.00 la em-
presa tendr la capacidad de invertir de su propio dinero un 70%
y el restante 30% lo pagar solicitando un crdito al fabricante. El
fabricante cobra por concepto de Inters un 20% sobre la cantidad
que se le pague a crdito.
Usted deber construir un algoritmo en el que se Ingrese el precio
de costo y la cantidad de repuestos, se mostrar los montos de
inversin, prstamo, crdito e inters.
Signifcado de las variables
cant_resp guarda la cantidad de repuestos
pcosto almacena el precio de costo
imp_comp guarda el importe de compra
inver almacena el monto de inversin
prest guarda el monto de prstamo
cred almacena el monto de crdito
int guarda el monto de inters

ALGORITMO prob_resueltos6
VARIABLES
cant_rep : entero
costo, imp_comp, inver, prest, cred, int : real
INICIO
leer pcosto, cant_rep
imp_comp pcosto * cant_rep
si imp_comp > 500.00 entonces
inver imp_comp * 0.55
prest imp_comp * 0.30
cred imp_comp * 0.15
sino
inver imp_comp * 0.70
prest imp_comp * 0.30
cred 0
fn_si
int cred * 0.20
escribir inver, prest, cred, int
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
36
Prctica dirigida
Lea atentamente el enunciado de cada problema y construya su
algoritmo.
01. Ingrese por teclado un nmero (asuma diferente de cero) y luego
visualice uno de los siguientes mensajes, positivo o negativo
segn sea el caso.
02. Ingrese por teclado un nmero (asuma diferente de cero), si este es
positivo smele 20, si esto no ocurre entonces rstele 50, muestre
el nuevo nmero.
03. Ingrese el nombre del alumno y el puntaje obtenido; deber
visualizar el mensaje aceptado o rechazado, en caso de ser
rechazado se visualizar tambin el puntaje que le falto para ser
aceptado. Considere aceptado a aquel alumno cuyo puntaje sea
superior a 150 puntos.
04. Ingrese por teclado la hora, minutos y segundos en el formato
de 24 horas, visualice esta misma hora pero en el formato de 12
horas.
05. Una empresa da a sus trabajadores una bonifcacin que consiste
en que si el trabajador tiene hijos se le dar por cada uno S/. 40.00,
si no tienen hijos se le dar 25% de su sueldo, para esto se deber
ingresar el nombre, nmero de hijos y sueldo del trabajador. Si pide
mostrar los montos de bonifcacin y sueldo fnal del trabajador.
06. Una compaa dar bonifcacin a sus empleados basndose en
su tiempo de servicio, esto es, los que tienen hasta 20 aos se les
da 20%, al resto se le da 30%, estos porcentajes son respecto a
su sueldo. Para cumplir con esto se deber digitar el nombre, ao
de ingreso y sueldo. Mostrar el valor de la bonifcacin y el sueldo
fnal del empleado.
07. Para el clculo del salario semanal de un obrero se tiene en con-
sideracin lo siguiente, si trabaja 40 horas o menos se le paga S/.
.10.00 por hora, si trabaja ms de 40 horas se le paga S/. 15.00 por
cada hora extra. Construya un algoritmo en el que se ingrese por
teclado el nombre del obrero y el nmero de horas trabajadas, se
deber visualizar el nombre, el nmero de horas extras y el salario
semanal.
08. Disee un algoritmo en el que se ingrese un nmero de tres cifras
y muestre el mensaje si es o no capica.
09. Ingrese el nombre de un alumno y sus 4 notas de prcticas, visualice
el nombre y promedio de prcticas, para el calculo del promedio
elimine la menor nota de prctica.
Programa de Computacin, Diseo y Extensin
Algortmica
37
Problemas propuestos
01. Ingrese el nombre y la talla de un postulante a la polica, visualice
el mensaje aceptado, de lo contrario visualice no aceptado y el
nmero de centmetros que le faltaron para ser aceptado. Considere
que la talla esta en metros y que como mnimo deber medir 1.75
mt.
02. En un establecimiento comercial se determin que la forma de pago
slo se podr efectuar en efectivo con un descuento del 15% o
con tarjeta de crdito con un recargo del 25%, stos porcentajes
son respecto al valor del importe.
Se deber construir un algoritmo en el que se ingrese por teclado
el nombre del cliente, el valor del importe y la forma de pago, se
debe visualizar el recargo, descuento y importe fnal. La variable
forma de pago slo aceptar los valores 1 2 que signifcar que
se pag al contado o con tarjeta de crdito respectivamente.
03. Una empresa dedicada al alquiler de videos desea controlar mejor
sus ingresos, para lograr esto se necesita un algoritmo que le per-
mita digitar por teclado el nombre del cliente, la fecha de salida
del vdeo (da y mes) y la fecha de retorno del vdeo (da y mes).
Muestre el nombre de cliente, el nmero de das de mora, el importe
por mora y el importe fnal a pagar. La empresa cobra S/. 2.50 por
dos das de alquiler y por mora S/. 1.50 diario. Considere que las
fechas son del mismo ao y que cada mes tiene 30 das.
04. Ingrese un nmero entero y positivo, muestre el mensaje Tiene
dos cifras o no tiene dos cifras segn sea el caso.
05. En un colegio se autoriz el aumento de las pensiones en el mo-
mento de la matricula de la siguiente manera, si es repitente se
le aumentar el 30%, si fue promovido tendr un incremento slo
de S/. 12.00, para esto ingrese el nombre del alumno, su condi-
cin (promovido o repitente) y el valor de su pensin. Visualice el
nombre del alumno y el valor de la nueva pensin.
06. El algoritmo a construir deber permitir el ingreso por teclado del
nombre del elector, y el nmero de veces que solicit el duplicado
de su libreta, en base a esto muestre el importe a pagar.
Programa de Computacin, Diseo y Extensin
Algortmica
38
Programa de Computacin, Diseo y Extensin
Algortmica
39
C
A
P

T
U
L
O
5
Estructura condicional
anidada
6. Estructura condicional anidada
Se denomina as cuando una estructura en este caso condicional
esta dentro de otra, es decir se crea condiciones dentro de otras
condiciones.
No existe un formato para esta estructura, esta se va construyendo
en base a la condicin inicial y sus nuevos requerimientos.
Gua prctica N 5
Problemas resueltos
Construya los algoritmos que den solucin a los siguientes proble-
mas:
01. Ingrese dos nmero y visualice como es uno respecto del otro(igual,
mayor o menor).
Significado de las variables
n1 guarda el primer nmero
n2 guarda el segundo nmero
ALGORITMO prob_resueltos1
VARIABLES
n1, n2 : entero
INICIO
leer n1, n2
si n1 = n2 entonces
escribir Son iguales
sino
si n1 > n2 entonces
escribir n1, es mayor que , n2
sino
escribir n2, es mayor que , n1
fin_si
fin_si
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
40
02. Ingrese tres nmeros luego mustrelos ordenados de mayor a
menor.
03. En una Universidad particular todos sus alumnos tiene una categora
y en base a esto le corresponde un pago mensual. Teniendo en
cuenta la tabla de categoras construya un algoritmo en el que se
digite el nombre del alumno y su categora, se deber visualizar el
pago o un mensaje de error en caso la categora no exista.
Categora Pago
A S/. 600.00
B S/. 450.00
C S/. 390.00
D S/. 350.00
Significado de las variables
nom guarda el nombre
cat almacena la categoria
ALGORITMO prob_resueltos3
VARIABLES
nom : cadena
cat : caracter
INICIO
leer nom, cat
si cat = A entonces
escribir 600
sino
si cat = B entonces
escribir 450
sino
si cat = C entonces
escribir 390
sino
si cat = D entonces
escribir 350
sino
escribir ESTA CATEGORA NO EXISTE
fin_si
fin_si
fin_si
fin_si
FIN.
Signifcado de las variables
n1 guarda el primer numero
n2 guarda el segundo numero
n3 guarda el tercer numero
ALGORITMO prob_resueltos2
VARIABLES
n1, n2, n3 : entero
INICIO
leer n1, n2, n3
si ( n1 > n2 ) y ( n2 > n3 ) entonces
escribir n1, n2, n3
sino
si ( n1 > n3 ) y ( n3 > n2 ) entonces
escribir n1, n3, n2
sino
si ( n2 > n1 ) y ( n1 > n3 ) entonces
escribir n2, n1, n3
sino
si ( n2 > n3 ) y ( n3 > n1 ) entonces
escribir n2, n3, n1
sino
si ( n3 > n1 ) y ( n1 > n2 ) entonces
escribir n3, n1, n2
sino
escribir n3, n2, n1
fn_si
fn_si
fn_si
fn_si
fn_si
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
41
Significado de las variables
nom guarda el nombre
cat almacena la categoria
ALGORITMO prob_resueltos3
VARIABLES
nom : cadena
cat : caracter
INICIO
leer nom, cat
si cat = A entonces
escribir 600
sino
si cat = B entonces
escribir 450
sino
si cat = C entonces
escribir 390
sino
si cat = D entonces
escribir 350
sino
escribir ESTA CATEGORA NO EXISTE
fin_si
fin_si
fin_si
fin_si
FIN.
04. Ingrese los lados de un tringulo y muestre su clasifcacin segn
sus lados.
Asuma que los lados ingresados forman un tringulo.
Recuerde la clasifcacin de los tringulos segn sus lados:
- Equiltero, tiene todos sus lados iguales.
- Issceles, tiene dos lados iguales.
- Escaleno, sus tres lados son diferentes.
Signifcado de las variables
L1 guarda el primer lado
L2 guarda el segundo lado
L3 guarda el tercer lado

ALGORITMO prob_resueltos4
VARIABLES
L1, L2, L3 : entero
INICIO
leer L1, L2, L3
si ( L1 = L2 ) y ( L2 = L3 ) entonces
escribir Triangulo equiltero
sino
si ( L1 = L2 ) o ( L2 = L3 ) o ( L1 = L3 ) entonces
escribir Triangulo issceles
sino
escribir Triangulo escaleno
fn_si
fn_si
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
42
05. Una empresa reparte las utilidades entre sus trabajadores, el por-
centaje esta relacionado a su tiempo de servicio, deber desarrollar
un algoritmo en el que se ingrese el nombre del trabajador, su ao
de ingreso y su salario promedio anual. Visualice la utilidad y el
pago total.
Considere los porcentajes respecto al salario promedio anual que
percibe.
Tiempo de servicio Utilidad
< 1 5%
[ 1 a 2 > 7%
[ 2 a 5 > 10%
5
12%
Signifcado de las variables
nom guarda el nombre
t_serv almacena tiempo de servicio
a_ing guarda el ao de ingreso
pago_tot almacena el pago total
sal guarda el salario promedio anual
util almacena la utilidad

ALGORITMO prob_resueltos5
VARIABLES
nom : cadena
sal, util, pago_tot : real
a_ing, t_serv : entero
INICIO
leer nom, sal, a_ing
t_serv 2005 a_ing
si t_serv < 1 entonces
util 0.05 * sal
sino
si ( t_serv 1) y ( t_serv < 2 ) entonces
util 0.07 * sal
sino
si ( t_serv 2 ) y ( t_serv < 5 ) entonces
util 0.1 * sal
sino
util 0.12 * sal
fn_si
fn_si
fn_si
pago_tot sal + util
escribir util, pago_tot
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
43
Prctica dirigida
Lea atentamente el enunciado de cada problema y construya su
algoritmo.
01. Ingrese un nmero, muestre uno de los siguientes mensajes: par
positivo, par negativo, impar positivo, impar negativo o neutro,
segn sea el caso.
02. Ingrese tres nmeros diferentes, visualizar slo el mayor de ellos.
03. Ingrese el nombre, ao de nacimiento y sexo (v,d), se deber
visualizar uno de los siguientes mensajes: varn mayor de edad,
varn menor de edad, dama mayor de edad o dama menor de
edad.
04. Digite el nombre y las tres notas de un alumno, visualizar el pro-
medio entero y la clasifcacin obtenida.
1. PROMEDIO CLASIFICACIN
2. 00 - 05 Deficiente
3. 06 - 10 Malo
4. 11 - 13 Regular
5. 14 - 17 Bueno
6. 18 - 20 Excelente
05. Ingresar por teclado un nmero de hasta cinco cifras, se deber
visualizar su nmero de cifras
06. Ingrese el nombre, turno (1,2,3), sueldo y sexo (v,d) de un traba-
jador, visualizar su bonifcacin y su sueldo fnal. Los porcentajes
de la bonifcacin son respecto al sueldo y estn en funcin del
sexo y turno del trabajador.
1. TURNO SEXO BONIF
2. 1 V 3%
3. 1 D 2%
4. 2 V 4%
5. 2 D 5%
6. 3 V 6%
7. 3 D 7%
07. Ingrese por teclado el nombre y las tres notas de un alumno, vi-
sualice el promedio siempre y cuando las notas estn en el rengo
del 0 al 20, sino, se visualizar el mensaje error seguido de la
nota o las notas equivocadas.
08. Ingrese un nmero entero positivo de hasta 3 cifras, visualice las
caractersticas de cada una de sus cifras (para, impar o neutro).
09. Ingrese el valor de X y visualice el valor que toma Y.
x
2
+ 2x 1, x < 5
Y = 3x
2
+ 8, 5 x 10
7x
2
+ 8, x > 10

Programa de Computacin, Diseo y Extensin
Algortmica
44
Problemas propuestos
01. Ingrese el nombre y peso de una persona (en Kg.), luego muestre
su contextura sabiendo que:
Peso 1. Contextura 2.
< 60 3. Delgado 4.
[ 60 80 ] 5. Normal 6.
> 80 7. Obeso 8.
02. Ingrese el nombre del comprador y el valor de su compra, se deber
visualizar el valor del descuento y el total a pagar por el cliente,
para esto tenga en cuenta la siguiente tabla:
Valor de compra 1. Descuento 2.
< 100 3. 0% 4.
[ 100 300 > 5. 3% 6.
[ 300 500 > 7. 5% 8.
[ 500 1000 > 9. 8% 10.
> 1000 11. 10% 12.
03. Ingrese cuatro nmeros y visualice el menor de ellos.
04. Ingrese el nombre del usuario, direccin, nmero telefnico y canti-
dad de llamadas realizadas al mes; para lo cual se debe considerar
que si la cantidad de llamadas no excede a 50 la tarifa por llamada
es de S/. 0.50 y si fuera mayor a 50 pero no excede a 150 la tarifa
por llamada adicional es de S/.0.30; fnalmente si la cantidad de
llamadas fuera mayor a 150, la tarifa por llamada adicional es de
S/. 0.60. Se pide visualizar los datos del cliente as como el importe
total a pagar.
05. Ingrese la cantidad de grados Celsius (C) y el nombre de la escala
de temperatura a la cual se quiere convertir, muestre el resultado
de dicha conversin.
06. Disee un algoritmo para simular el jugo de nios papel, martillo,
tijera. En este caso dos personas eligen simultneamente o bien
martillo, papel, o tijera. Las reglas son:
a. Papel cubre a martillo, gana papel.
b. Tijera corta papel, gana tijera.
c. Martillo rompe a tijera gana martillo.
d. Todas las situaciones de emparejamiento son empates.
07. El resultado del juego deber mostrar al jugador ganador y la con-
dicin que produjo el triunfo, como por ejemplo: Martillo rompe
a tijera, gana Ral, para esto se deber ingresar los nombres de
las dos personas y el juego realizado por cada una.
Programa de Computacin, Diseo y Extensin
Algortmica
45
Estructura de seleccin
mltiple
7. Estructura de seleccin mltiple
Permite identifcar y analizar los diferentes valores que puede tomar
una variable o expresin y dependiendo del valor se ejecutar la
instruccin o grupo de instrucciones.
Formato:
C
A
P

T
U
L
O
6
Instituto de Educacin Superior Gua Prctica
IDAT ALGORITMICA

Av. Arequipa 790
Programa Acadmico
Telfono 4336635
Computacin e Informtica


7. Estructura de Seleccin Mltiple
Permite identificar y analizar los diferentes valores que puede tomar una variable o expresin y
dependiendo del valor se ejecutara la instruccin o grupo de instrucciones.

2 Formato

:
variable
expresin

valor1(es) / Rango1 : instruccin(es)

valor2(es) / Rango2 : instruccin(es)

:
:

sino instruccin(es)

fin_en caso
instruccin x
:

3 Recomendaciones
El valor ser entero o carcter.
Los valores se separan por :
a) Comas : ejemplo 4,6,10
ejemplo n, k
b) Puntos seguidos : 3..8 (indica intervalo que considera a los nmeros 3,4,5,6,7,8)

4 Observaciones
Las instrucciones que acompaan a la palabra sino se realizarn en caso no se cumpla
ningn valor o rango especificado.
Identificado el valor o rango se realizarn las instrucciones correspondientes y luego se
saldr de esta estructura para continuar las instrucciones que esta debajo de la palabra
fin_en_caso.











en caso sea
Programa de Computacin, Diseo y Extensin
Algortmica
46
Recomendaciones
- El valor ser entero o carcter.
- Los valores se separan por :
a. Comas: ejemplo 4,6,10
ejemplo n, k
b. Puntos seguidos: 3..8 (indica intervalo que considera a los
nmeros 3,4,5,6,7,8)
Observaciones
- Las instrucciones que acompaan a la palabra sino se realizarn
en caso no se cumpla ningn valor o rango especifcado.
- Identifcado el valor o rango se realizarn las instrucciones corres-
pondientes y luego se saldr de esta estructura para continuar las
instrucciones que esta debajo de la palabra fn_en_caso.
Gua prctica N 6
Construya los algoritmos que den solucin a los siguientes problemas:
01. Digite el nmero de mes y visualice el nombre de dicho mes.
Signifcado de las variables
nmes guarda el numero de mes
mes almacena el nombre del mes
ALGORITMO prob_resueltos1
VARIABLES
nmes : entero
mes : cadena
INICIO
leer nmes
En caso nmes sea
1 : mes Enero
2 : mes Febrero
3 : mes Marzo
4 : mes Abril
5 : mes Mayo
6 : mes Junio
7 : mes Julio
8 : mes Agosto
9 : mes Setiembre
10 : mes Octubre
11 : mes Noviembre
sino mes Diciembre
Fin_ en caso
escribir mes
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
47
02. Desarrolle un algoritmo en el que se ingrese el nombre de una
persona y su edad, luego muestre la etapa en que se encuentra
de acuerdo a la siguiente tabla.
Edad Etapa
Menos de 13 Niez
De 13 a17 Adolescencia
De 18 a 25 Juventud
De 26 a 60 Adultez
Mas de 60 Ancianidad

03. Ingrese un nmero entero de hasta 2 cifras, mustrelo en romano.
Signifcado de las variables
nom guarda el nombre
ed almacena la edad
etapa guarda la etapa
ALGORITMO prob_resueltos2
VARIABLES
nom, etapa : cadena
ed : entera
INICIO
leer nom, ed
En caso ed sea
0 .. 12 : etapa Niez
13 .. 17 : etapa Adolescencia
18 .. 25 : etapa Juventud
26 .. 60 : etapa Adultez
sino etapa Ancianidad
Fin_ en caso
escribir etapa
FIN.
Signifcado de las variables
num guarda el numero
d almacena la decena
u guarda la unidad
dr almacena la decena en romano
ur guarda la unidad en romano
nr guarda el numero en romano
ALGORITMO prob_resueltos3
VARIABLES
num, d, u : entero
dr, ur, nr : cadena
INICIO
leer num
d num \ 10
u num mod 10
En caso d sea
Programa de Computacin, Diseo y Extensin
Algortmica
48
04. Ingrese el nmero de da de un mes que tiene 31 das, sabiendo
que en dicho mes el primer da fue jueves, visualice el nombre del
da ingresado.
0 : dr
1 : dr X
2 : dr XX
3 : dr XXX
4 : dr XL
5 : dr L
6 : dr LX
7 : dr LXX
8 : dr LXXX
sino dr XC
Fin_ en caso
En caso u sea
0 : ur
1 : ur I
2 : ur II
3 : ur III
4 : ur IV
5 : ur V
6 : ur VI
7 : ur VII
8 : ur VIII
sino ur IX
Fin_ en caso
nr dr + ur
escribir nr
FIN.
Signifcado de las variables
nd guarda el numero de da
da almacena el nombre del da
ALGORITMO prob_resueltos4
VARIABLES
nd : entero
da : cadena
INICIO
leer nd
En caso nd sea
1, 8, 15, 22, 29 : da Jueves
2, 9, 16, 23, 30 : da Viernes
3, 10, 17, 24, 31 : da Sbado
4, 11, 18, 25 : da Domingo
5, 12, 19, 26 : da Lunes
6, 13, 20, 27 : da Martes
sino da Mircoles
Fin_ en caso
escribir da
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
49
05. En un instituto para determinar el descuento que tendr un alum-
no sobre su pensin se estableci la siguiente tabla, la que indica
que el porcentaje de descuento esta en funcin al tipo de colegio
de procedencia y al distrito donde estuvo ubicado. Construya un
algoritmo en el que se ingrese el cdigo del alumno, su nombre,
pensin, colegio, distrito. Visualice el porcentaje y el valor de la
nueva pensin.




Colegio A (Comas) B (J. Maria) C (S. Borja)
N ( nacional ) 50% 40% 30%
P ( particular ) 25% 20% 15%


Signifcado de las variables
nom guarda el nombre
cod almacena el cdigo
col guarda el colegio
dist almacena el distrito
pen guarda la pensin
desc almacena el descuento
npen guarda la nueva pensin

ALGORITMO prob_resueltos5
VARIABLES
nom , cod : cadena
pen, desc, npen : real
col, dist : caracter
INICIO
leer nom, cod, col, dist, pen
En caso dist sea
A : si col = N entonces
desc 0.5 * pen
sino
desc 0.25 * pen
fn_si
B : si col = N entonces
desc 0.4* pen
sino
desc 0.2 * pen
fn_si
sino si col = N entonces
desc 0.3 * pen
sino
desc 0.15 * pen
fn_si
Fin_ en caso
npen pen desc
escribir desc, npen
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
50
Prctica dirigida
Lea atentamente el enunciado de cada problema y construya su
algoritmo.
01. En un instituto se hicieron reajustes a las pensiones de los estu-
diantes en funcin al ciclo al que pertenecen, para esto se tomo
en cuenta la siguiente tabla, construya un algoritmo en el que se
ingrese por teclado el nombre, cdigo, ciclo y pensin del estu-
diante, se deber visualizar el nombre, el valor del incremento y
la nueva pensin que el estudiante pagar.
CICLO INCREMENTO
1 15%
2 12%
3 9%
4 7%
5 5%
6 2%

02. Ingrese por teclado dos nmeros y el operador de la operacin que
se desea realizar (*, +, -, /), muestre el resultado de la operacin
deseada. Tenga cuidado con la divisin.
03. Ingrese un nmero entero positivo de hasta 5 cifras, muestre la
cantidad de cifras que tiene.
04. Ingrese un nmero de mes y nmero de ao de dicho mes, muestre
la cantidad de das de dicho mes y el mensaje si el ao fue o no
bisiesto.
05. Evale la siguiente funcin, para esto ingrese por teclado el valor
de x y visualice el valor de Z:
Observacin, X slo tomar valores enteros entre 1 y 90, de no
ser as se visualizar el mensaje fuera de rango.
06. La Empresa Sedapal present a los usuarios la tarifa por consumo
de agua, desarrolle un algoritmo en donde se ingrese por teclado
el consumo de agua y se visualice el importe a pagar.
Ejemplo: si el consumo de agua fue 620, su importe se calculara
as Importe = 100*0.25+200*0.35+200*0.40+120*0.50
METROS CUBICOS S/. x MT. CUBICO
1 a 100 0.25
101 a 300 0.35
301 a 500 0.40
501 a 800 0.50
801 a ms 0.60

X, si 1 x 5
X + 5, si 6 x 25
1/ X, si 26 x 50
5 X - 4, si 51 x 90
Z
Programa de Computacin, Diseo y Extensin
Algortmica
51
Problemas propuestos
01. Ingrese el nmero de canal de televisin nacional (no cable),
muestre el nombre del canal.
02. Ingresar por teclado el nmero de mes y el nmero de da de dicho
mes, visualizar el nmero de das transcurridos desde el inicio del
ao hasta la fecha ingresada.
Considere que el ao no es bisiesto y que los meses no tienen el
mismo nmero de das.
03. Ingrese un nmero de hasta tres cifras, visualcelo pero en letras.
04. Ingrese el da y mes de nacimiento de una persona, muestre a que
signo zodiacal pertenece.
05. Ingrese el nmero de mes y el nmero de da de dicho mes, muestre
la estacin a la que pertenece. Considere que la primavera inicia el
23 de septiembre, el verano el 21 de diciembre, el otoo empieza
21 de marzo e invierno el 22 de junio.
06. En una Universidad se desea aumentar las pensiones a los alumnos
solo del primer y segundo ciclo, para esto, se autoriz un incre-
mento respecto al valor de la pensin en el que el porcentaje est
en funcin del turno, ciclo y facultad.
Construya un algoritmo en el que se ingrese por teclado el nombre,
turno, ciclo, facultad y pensin de un alumno, se deber visualizar
el valor del incremento, y el valor de la nueva pensin.
TURNO CICLO FACULTAD INCREMENTO
M 1 A 3.0%
M 1 B 3.2%
T 1 A 2.8%
T 1 B 2.9%
N 1 A 3.1%
N 1 B 3.3%
M 2 A 2.5%
M 2 B 2.7%
T 2 A 2.1%
T 2 B 2.3%
N 2 A 3.1%
N 2 B 3.3%

07. Una establecimiento comercial ofrece crdito a sus clientes en tres
formas como lo indica la siguiente tabla:
TIPO
FINANCIAMIENTO
%
INTERES
%
CUOTA INICIAL
NUMERO
LETRAS
1 4 60 3
2 8 40 6
3 12 30 9

Programa de Computacin, Diseo y Extensin
Algortmica
52
El cliente deber frmar antes de la fnanciacin el monto de la com-
pra, el cual es afecto a un 12% de impuesto, por lo que el monto
a pagar ser el monto de la compra mas el importe del impuesto.
Luego el cliente elige el tipo de fnanciamiento que le convenga,
se mostrar el monto de la factura, el monto de los intereses, el
nuevo monto de la factura (incluye los intereses), monto de la cuota
inicial y el monto de cada letra a pagar (nuevo monto de la factura
menos el monto de la cuota inicial entre el numero de letras).
Para esto se deber ingresar el nombre del cliente, el monto de
compra y el tipo de fnanciamiento elegido.
08. Una librera muy famosa ofrece descuentos dependiendo de la
editorial y del tipo de comprador, segn la siguiente tabla.
EDITORIAL ESTUDIANTE PUBLICO EN GENERAL
San Marcos 25% 10%
Coveas 30% 13%
Otros 35% 16%

Construya un algoritmo que ingrese el importe de la compra y
muestre el descuento e importe total a pagar. Asuma que el monto
total de la compra es de una misma editora.
09. Una empresa que suministra servicio elctrico, cataloga a sus
clientes segn la siguiente tabla:
TIPO DE CLIENTE COSTO POR Kw-hr CONSUMIDO
S (social) 0.15
E (estatal) 0.25
R (Residencial) 0.50
I (Industrial) 0.65

La empresa para incentivar el ahorro de energa recompensa a sus
clientes con tarifa social, estatal o residencial que tengan un con-
sumo menor o igual a 299 Kw-hr con un descuento del 7% sobre
el total facturado. Aquellos que consuman mas de esta cantidad
se les hace un recargo del 10% a excepcin de aquellos que estn
sujetos a una tarifa social.
Desarrollo un algoritmo que se ingrese el nombre del cliente, su
tipo y su consumo muestre el total facturado y el descuento o
recargo segn sea el caso.
Programa de Computacin, Diseo y Extensin
Algortmica
53
Estructura repetitiva
1. Introduccin
Los algoritmos desarrollados hasta ahora se construan de manera
tal que sus instrucciones se ejecutaban una tras otra, desde el inicio
al fn, pero que ocurra si quisiramos que slo 3 de sus instruccio-
nes consecutivas se repitan 20 veces, o que se repitan hasta que
se cumpla una condicin, esto nos obliga a utilizar estructuras que
permitan la repeticin de instrucciones para llegar a la solucin del
problema.
2. Estructura repetitiva
Esta estructura permite que dentro de un algoritmo una instruccin
o grupo de ellas se repita una cantidad fnita de veces.
3. Otros nombres:
- Estructura iterativa.
- Estructura cclica.
- Lazo.
- Bucle.
- Loop.
- Ciclo.
4. Clasifcacin:
4.1 Cuando se conoce el nmero exacto de veces que se repetir
una instruccin o grupo de ellas, se utilizar la instruccin
PARA - FIN_PARA
4.2 Cuando una instruccin o grupo de ellas se repetir hasta que
se cumpla cierta condicin o mientras se cumpla la condicin,
se utilizarn indistintamente las instrucciones:
C
A
P

T
U
L
O
7
Programa de Computacin, Diseo y Extensin
Algortmica
54

variable variable constante
6. Acumulador
Es una expresin matemtica que dentro de un proceso repetitivo,
tiene como objetivo sumar (acumular) el valor que toma la variable
relacionada en cada vuelta.
Para sumas positivas usar +, para sumas negativas usar -.

variable variable variable
r

Observacin, los contadores y acumuladores se debern inicializar
antes de entrar a un proceso repetitivo.
- MIENTRAS - FIN_MIENTRAS
- REPETIR - HASTA
5. Contador
Es una expresin matemtica que dentro de un proceso repetitivo,
en cada vuelta, tiene como objetivo contar ya sea en forma ascen-
dente o descendente de acuerdo al valor que tiene su constante.
Para contar en forma ascendente o descendente utilizar el signo
+ o respectivamente.
Formato:
Ejemplos
N N + 1
c_prod_nac c_prod_nac + 1
mult5 mult5 + 5

pares pares - 2
Ejemplos
S S + N
a_sueldos a_sueldos + sueldo
a_retiros a_retiros - retiro

Programa de Computacin, Diseo y Extensin


Algortmica
55
Preguntas necesarias
01. Para saber cuantas damas hay en el saln, debemos sumar o
contar?
Respuesta: __________________________________________
02. Para saber el total de dinero recaudado en un saln, debemos
sumar o contar?
Respuesta: __________________________________________
03. Para calcular la nota promedio de los aprobados en un aula qu
debemos conocer?
Respuesta: __________________________________________
____________________________________________________
____________________________________________________
04. Para obtener el porcentaje de autos de color blanco que tiene una
fota grande de autos de distintos colores qu debemos conocer?
Respuesta: __________________________________________
____________________________________________________
____________________________________________________
Estructura: PARA .. FIN_PARA
1. Formato de la Instruccin: PARA FIN_PARA

:
instruccin variable1 variable2
Para variable expresion1 hasta expresin2
valor1 valor2

instruccin1
:
:
instruccinN




n

Fin_Para
instruccin X
:


Para el uso de esta instruccin hay que identifcar:
- La cantidad de veces que se repetir la instruccin o grupo
de ellas.
- La instruccin o instrucciones que se repetirn.
- Tenga en cuenta que:

variable1 variable2
expresion1 < expresin2
valor1 valor2


Programa de Computacin, Diseo y Extensin
Algortmica
56
- Slo se puede ir de:
variable1 variable2
expresion1 a expresin2 de 1 en 1 y en forma ascendente
valor1 valor2



- Tanto la variable / expresin / valor sern de tipo entero.
Anidamiento de la instruccin PARA FIN_PARA
Se presenta cuando una instruccin PARA se encuentra dentro
de otra instruccin PARA, en este caso el funcionamiento es el
siguiente, por cada valor que toma la variable del PARA externo
har que la variable del PARA interno tome todos sus valores.
Esto a su vez nos da a entender que el PARA interno cambia mas
rpido que el PARA externo.
Ejemplo:
Gua prctica N 7
Problemas resueltos
01. Genere y visualice los 25 primeros mltiplos de 7.
Para X = 1 hasta 10
Para Y = 1 hasta 20
:
:
:
Fin_para
Fin_para
Signifcado de las variables
j guarda los valores de j
mult7 almacena los mltiplos de 7

Resultados a obtener :
7 14 21 ....... 168 175
En realidad, los resultados saldrn en forma vertical y no
en horizontal como esta en la lnea anterior.
ALGORITMO prob_resueltos1
VARIABLES
j, mult7 : entero
INICIO
para j = 1 hasta 25
mult7 7 * j
escribir mult7
fn_para
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
57
02. Ingrese 15 nmeros, muestre su producto.
03. Genere y visualice los 80 primeros nmeros naturales, fnalizado
el proceso muestre la suma de los pares y la de los impares en
forma independiente. No utilice el operador mod.
Signifcado de las variables
j guarda los valores de j
prod almacena el producto de los nmeros
num guarda el nmero ingresado
ALGORITMO prob_resueltos2
VARIABLES
j, num, prod : entero
INICIO
prod 1
para j = 1 hasta 15
leer num
prod prod * num
fn_para
escribir prod
FIN.
Signifcado de las variables
sw guarda el valor ( 0 o 1) en sw (switch)
j almacena los valores de j
a_par acumulador de pares
a_impar acumulador de impares
ALGORITMO prob_resueltos3
VARIABLES
sw, j, a_para, a_impar : entero
INICIO
sw 0
para j = 1 hasta 80
if sw = 0 entonces
a_impar a_impar + j
sw 1
sino
a_par a_par + j
sw 0
fn_si
fn_para
escribir a_par, a_impar
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
58
04. Genere y muestre las siguientes series, fnalizado el proceso visua-
lice la suma de cada serie.
05. Ingrese 50 nmeros, fnalizado el ingreso visualice su promedio y
el menor de ellos.
15 25
18 30
35 21
: :
: :
297 495
500 300
XXXX XXXX (Sumas)
Signifcado de las variables
j almacena los valores de j
mult3 guarda los mltiplos de 3
mult5 almacena los mltiplos de 5
a_mult3 acumula los mltiplos 3
a_mult5 acumula los mltiplos de 5
ALGORITMO prob_resueltos4
VARIABLES
j, mult3,mult5,a_mult3,a_mult5 : entero
INICIO
a_mult3 a_mult5 0
para j 5 hasta 100
mult3 3 * j
mult5 5 * j
escribir mult3, mult5
a_mult3 a_mult3 + mult3
a_mult5 a_mult5 + mult5
fn_para
escribir a_mult3, a_mult5
FIN.
Signifcado de las variables
num guarda el nmero ingresado
j almacena los valores de j
men guarda el menor de los nmeros
a_num acumula los nmeros ingresados
prom_num guarda el promedio de los nmeros
ALGORITMO prob_resueltos5
VARIABLES
num, men, j : entero
INICIO
leer num
men num
a_num num
Programa de Computacin, Diseo y Extensin
Algortmica
59
06. Genere y visualice las 20 primeras tablas de multiplicar, cada una
del 1 al 12.
07. Construya un algoritmo que simule las horas minutos y segundos
en un reloj digital que utiliza el formato 24 horas.
para j = 1 hasta 49
leer num
a_num a_num + num
si num < men entonces
men num
fn_si
fn_para
prom_num a_num / 50
escribir prom_num, men
FIN.
Signifcado de las variables
t guarda los valores de la tabla
n almacena los valores de n
prod guarda el resultado del producto de t y n
ALGORITMO prob_resueltos6
VARIABLES
t, n, prod : entero
INICIO
para t = 1 hasta 20
escribir Tabla del , t
para n = 1 hasta 12
prod t * n
escribir t, x , n, = , prod
fn_para
fn_para
FIN.
Signifcado de las variables
h guarda la horas
m almacena los minutos
s Guarda los segundos
ALGORITMO prob_resueltos7
VARIABLES
h, m, s : entero
INICIO
para h = 0 hasta 23
para m = 0 hasta 59
para s = 0 hasta 59
escribir h, m, s
fn_para
fn_para
fn_para
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
60
08 Ingrese el nombre, tuno, sueldo de 350 trabajadores, por cada uno
muestre su aumento y sueldo fnal. Finalizado el proceso visualice:
- El promedio de sueldo fnal.
- La cantidad de trabajadores por cada turno.
- El total de sueldo fnal a pagar por cada turno.
Considere que si el trabajador tiene un sueldo inferior a 700 recibir
un aumento del 12% de su sueldo, de lo contrario su aumento ser
del 10% de su sueldo.
Signifcado de la s variables
j guarda los valores de j :
ctt cuenta los trabajadores de la tarde
ctn cuenta los trabajadores de la noche
ctm cuenta los trabajadores de la maana
alsdfm acumula los sueldos fnales de los
trabajadores de la maana
asldft acumula los sueldos fnales de los
trabajadores de la tarde
asldfn acumula los sueldos fnales de los
trabajadores de la noche
sldf guarda el sueldo fnal
aum almacena el aumento
prom_sldf guarda el promedio de sueldo fnal
nom almacena el nombre
tur guarda el turno
ALGORITMO prob_resueltos8
VARIABLES
j, ctt, ctm, ctn : entero
sld, asldfm, asldft, sldfn, aum, prom_sldf : real
nom : cadena
tur : caracter
INICIO
ctt ctm ctn 0
asldfm asldft sldfn 0
para j = 1 hasta 350
leer nom, tur, sld
si sld < 700 entonces
aum sld * 0.12
sino
aum sld * 0.1
fn_si
sldf sld + aum
escribir aum, sldf
en caso tur sea
M : ctm ctm + 1
asldfm asldfm + sldf
T : ctt ctt + 1
asldft asldft + sldf
sino ctn ctn + 1
asldfn asldfn + sldf
fn en caso
fn_para
prom_sldf (asldfm + asldft + asldfn) / 350
escribir prom_sldf
escribir ctm, ctt, ctn
escribir asldfm, asldft, asldfn
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
61
Prctica dirigida
Parte I (no utilice contadores ni acumuladores)
Observacin: considere como nmero natural al nmero referido en
el problema.
01. Visualice la palabra ALGORITMO 200 veces.
02. Ingrese el nombre de una persona, visualcelo 300 veces.
03. Ingrese el nombre de una ciudad, visualice el 250 veces numerando
cada visualizacin.
04. Ingrese el nmero de veces que se visualizar la palabra PRO-
GRAMA.
05. Genere y muestre los 80 primeros nmeros naturales.
07. Ingrese un nmero, muestre todos los nmeros naturales conse-
cutivos inferiores a ste.
08. Muestre todos los nmeros naturales en forma descendente infe-
riores al nmero que se ingresar.
09. Ingrese un nmero, visualice los 50 nmeros naturales consecutivos
superiores a ste.
10. Ingrese dos nmeros, muestre todos los nmeros naturales con-
secutivos comprendidos entre stos. Considere que los nmeros
ingresados son diferentes.
11. Genere y visualice los 20 primeros trminos de la serie: 36, 49, 64
81, 100 ............
12. Genere y muestre los 30 primeros trminos de la serie: 1.6, 1.7,
1.8, 1.9, 2.0 ............
Parte II (utilice los contadores y/o acumuladores)
01. Genere y visualice los pares positivos consecutivos menores de
150, fnalizando esto, visualice su suma.
02. Genere y visualice los 70 primeros impares positivos, al fnal de
esto, visualice su suma.
03. Genere y visualice los 50 primeros mltiplos de 3, al fnal de esto,
visualice su promedio.
04. Genere y visualice todos los mltiplos de 5 que estn compren-
didos desde 10 hasta 90 inclusive, fnalizando esto, visualice su
promedio.
05. Generar y visualizar los 60 primeros mltiplos de 3 y los 60 prime-
ros mltiplos de 5 intercaladamente, fnalizando esto, visualice la
suma de los mltiplos de 5 y 3 en forma independiente.
Programa de Computacin, Diseo y Extensin
Algortmica
62
06. Generar y visualizar los mltiplos de 2 y 3 a la vez que estn com-
prendidos entre 20 y 100, fnalizando esto se deber visualizar
cuantos nmeros se generaron.
07. Generar y visualizar los mltiplos de 7 menores a 500 con excepcin de
35, 105, 210, 490; muestre la suma de los nmeros visualizados.
08. Ingrese por teclado 100 nmeros, sin ningn orden en particular,
visualice el mayor.
09. Ingrese los nombres y edades de 400 postulantes, fnalizando esto
visualice:
- El promedio de edades.
- El nombre y la edad del ms joven.
Asuma que slo un trabajador tiene la menor edad.
10. En una empresa se tiene curiosidad por ciertos datos estadsticos
de su personal, para esto se sugiri se crear un algoritmo que
permita el ingreso por teclado los nombres, ao de ingreso y sexo
de sus 500 trabajadores, terminado esto se deber visualizar:
- El nmero de damas que laboran.
- El nmero de varones que laboran.
- El promedio de tiempo de servicio de todos los trabajadores.
Considere que la variable sexo slo guarda los valores V o D, que
se referen a varn o dama respectivamente.
11. En una competencia de atletismo se presentaron 350 deportistas,
el comit seleccionador recomend que, para facilitar su labor,
confeccionaran un algoritmo en el que se tendra que ingresar
por teclado los nombres y tallas de todos los deportistas, luego
visualice:
- La cantidad de deportistas que miden 1.71 mt.
- El nmero de deportistas que miden hasta 1.68 mt.
- Cuantos deportistas miden ms de 1.79 mt.
- El nmero de deportistas fueron aceptados.
- El promedio de talla de los deportistas aceptados.
El comit seleccionador considera que slo aceptar a los depor-
tistas que midan entre 1.70 y 1.78 mts. Inclusive.
12. Ingrese por teclado un nmero entero, visualice todos sus divisores,
fnalizado esto visualice:
- La cantidad de divisores.
- La suma de todos sus divisores.
- La cantidad de divisores pares.
Programa de Computacin, Diseo y Extensin
Algortmica
63
Problemas propuestos
01. Genere y visualice los 50 primeros pares positivos en forma des-
cendente, fnalizado esto, muestre su suma.
02. Genere y visualice todos los mltiplos de 7 que estn comprendidos
entre dos nmeros que sern ingresados por teclado. Considere
que el primer valor ingresado es mayor que el segundo.
03. Por cada una de las series que abajo se indican construya un algo-
ritmo en el que se ingrese por teclado el nmero de trminos que
tendr la serie, luego de esto, se visualizar todos sus trminos,
las series a generar son:
4.1. -2, -4, -6, -8, -10, -12 ...............................
4.2. 3.3, 4.4, 5.5, 6.6, 7.7, 8.8 ..........................
4.3. 1, 4, 9, 16, 25, 36 ....................................
4.4. -1, +2, -3, +4, -5, +6 .. .............................
4.5. +0.1, -0.2, +0.3, -0.4, +0.5, -0.6 ..............
4.6. -1, 3, 15, 35, 63, 99 .................................
04. Genere y visualice los 30 primeros mltiplos de 7 y los 30 primeros
mltiplos de 5, se deber visualizar :
- La suma de los mltiplos de 7.
- La suma de los mltiplos de 5.
- La suma de todos los mltiplos generados.
05. Generar y visualizar todos los mltiplos de 5 que estn compren-
didos entre -50 y 2000, fnalizado el proceso visualice:
- El promedio de los mltiplos positivos.
- La cantidad de mltiplos negativos.
06. Ingrese 600 letras maysculas, terminado ste proceso, visualice
el nmero de veces que se ingres cada vocal.
07. Ingrese por teclado 200 nmeros enteros, fnalizado el proceso
visualice:
- El porcentaje de pares.
- El porcentaje de impares.
- El porcentaje de ceros.
La serie se genera empezando con los nmeros 0 y 1, a partir de
estos valores cada trmino se construir sumando los dos trminos
anteriores.
- 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ....................
Programa de Computacin, Diseo y Extensin
Algortmica
64
08. En una universidad se desea obtener ciertos datos de sus estu-
diantes, por este motivo se deber crear un algoritmo que permita
ingresar por teclado el nombre de alumno, la especialidad que
sigue, el sexo, su promedio y su ao de ingreso, por cada alumno
se deber visualizar el nombre y su especialidad, fnalizando el
proceso visualice:
- El porcentaje de damas.
- El porcentaje de varones.
- La cantidad de aprobados de cada una de las especialidad.
- El total de varones de contabilidad que estn desaprobados.
- El nmero de estudiantes que tiene ms de 6 aos en la
Universidad.
Observacin, la variable sexo tendr los valores v o d, la varia-
ble especialidad tendr los valores A, B, C o D que corresponden
a las especialidades de Sistemas, Computacin, Contabilidad y
Economa respectivamente. Considere que la universidad cuenta
con 870 alumnos.
Programa de Computacin, Diseo y Extensin
Algortmica
65
Estructura Repetitiva
Mientras..Fin mientras
1. Introduccin
Esta estructura repetitiva se utilizara cuando no sabemos la cantidad
exacta de veces que se repetirn una o un grupo de instrucciones,
pero, la fnalizacin se dar en base a una condicin, logrando salir
del proceso repetitivo.
2. Instruccin: MIENTRAS - FIN_MIENTRAS
Las instrucciones se repetirn mientras la condicin sea verdade-
ra, de lo contrario se continuarn con las instrucciones que estn
despus de la palabra fn_mientras.
Puede darse el caso de que nunca se ingrese al proceso repetitivo,
esto se debe a que la condicin es falsa desde el principio, si ocurre
esto se continuarn con las instrucciones que estn luego de la
palabra fn_mientras.
Formato:
:
instruccin
mientras condicin hacer


instruccin
:
:
instruccin





fin_mientras
instruccin X
:

C
A
P

T
U
L
O
8
Programa de Computacin, Diseo y Extensin
Algortmica
66
Observacin:
Es muy importante que en cada vuelta se verifque el estado de la
condicin, es por eso, que por lo menos una instruccin que esta dentro
de la lnea punteada cambie el valor de la condicin, de no ser as se
estara entrando a un proceso repetitivo infnito, esto es debido a que
la condicin nunca cambi.
Estas instrucciones son muy tiles para hacer para realizar consistencia
y/o validaciones de datos, con esto se lograr que se acepten slo datos
adecuados y que por lo tanto no se obtengan resultados inadecuados.
Gua prctica N 8
Problemas resueltos
01. Construya un algoritmo en el se ingrese un nmero entero positivo
y luego muestre su factorial.
02. Desarrolle un algoritmo que visualice los 350 primeros nmeros
de la serie:1, 4, 7, 10, 13, 16, ...........
Signifcado de las variables
n guarda los valores de n
num almacena el numero ingresado
fact guarda el valor del factorial

ALGORITMO prob_resueltos1
VARIABLES
n, fact, num : entero
INICIO
leer num
n 0
fact 1
mientras n num hacer
n n + 1
fact fact * n
fn_mientras
escribir fact
FIN.
Signifcado de las variables
c_term contador de trminos de la serie
term almacena los trminos de la serie
ALGORITMO prob_resueltos2
VARIABLES
term, c_term : entero
INICIO
term 1
c_term 1
mientras c_term 350 hacer
Programa de Computacin, Diseo y Extensin
Algortmica
67
03. Disee un algoritmo en el que se ingrese el nombre de un alumno
y sus seis notas de prctica. Muestre el nombre y el promedio de
prcticas de las cinco notas mas altas.
Prctica dirigida
01. Construya un proceso repetitivo que permita el ingreso por teclado
de varios nombres, ste fnalizar cuando se ingrese por nombre
Benancio. Utilice MIENTRAS FIN_MIENTRAS.
02. Crear un proceso repetitivo en el que se ingrese por teclado
varios numeros y visualizar cu cuadrado, el proceso se deber
fnalizar cuando el nmero ingresado sea impar. Utilice MIENTRAS
FIN_MIENTRAS.
escribir term
term term + 3
c_term c_term + 1
fn_mientras
FIN.
Signifcado de las variables
c_pract contador, cuenta las notas de prctica
a_npract acumulador de las notas de prctica
menor almacena la menor nota de prctica
npract guarda la nota de prctica
prom almacena el promedio de prctica
nom guarda el nombre
ALGORITMO prob_resueltos3
VARIABLES
c_pract, a_npract, menor, npract : entero
prom : real
nom : cadena
INICIO
c_pract 1
a_npract 0
menor 20
leer nom
mientras c_pract 6 hacer
leer npract
si npract < menor entonces
menor npract
fn_si
a_npract a_npract + npract
c_pract cprac + 1
fn_mientras
prom ( a_pract menor ) / 5
escribir nom, prom
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
68
03. Genere un proceso repetitivo que permita el ingreso por teclado
de varios nmeros, para fnalizar el proceso se deber ingresar por
teclado el nmero cero. Utilice MIENTRAS FIN_MIENTRAS.
04. Crear un proceso repetitivo en el que se ingrese por teclado n-
meros de una cifra (stos pueden repetirse), para fnalizar este
proceso ingrese un nmero de ms de una cifra. Utilice MIENTRAS
FIN_MIENTRAS.
05. Genere un proceso repetitivo que permita el ingreso por teclado
de nmeros de dos cifras, el proceso fnalizar cuando la suma de
las cifras sea 12. Utilice MIENTRAS FIN_MIENTRAS.
Programa de Computacin, Diseo y Extensin
Algortmica
69
Formato :
:
instruccin
repetir

instruccin
:
:
:
instruccin






hasta condicin
instruccin X
:

Estructura repetitiva
Repetir..Hasta
1. Introduccin
Es otra de las instrucciones para controlar un proceso repetitivo,
en este caso no existe condiciones para abandonar el bucle pero
se pueden generar interrogantes.
2. Instruccin: REPETIR HASTA
Es muy similar a la instruccin mientras - fn_mientras, aqu las
instrucciones se repetirn si la condicin es Falsa, de lo contrario
si es Verdadera se continuarn con las instrucciones que estn
despus de la palabra hasta.
A diferencia de la instruccin mientras - fn_mientras, esta ins-
truccin ejecutara todas las instrucciones que estn dentro por lo
menos una vez, ya que la condicin esta al fnal del bloque.
C
A
P

T
U
L
O
9
Programa de Computacin, Diseo y Extensin
Algortmica
70
Gua practica N 9
Problemas resueltos
01. Construya un algoritmo que visualice el total de ventas y su prome-
dio, para esto, se ingresar los importes de ventas del da, controle
la fnalizacin o continuacin del ingreso de importes digitando N
o S respectivamente.
02. Escriba un algoritmo que permita obtener el mximo comn divisor
de dos nmeros enteros los que sern ingresados va teclado.
Signifcado de las variables
ventas almacena los importes de ventasj
a_ventas acumula y guarda las ventas
c contador
prom_ventas guarda el promedio de ventas
rspta almacena la respuesta
ALGORITMO prob_resueltos4
VARIABLES
ventas, a_ventas, prom_ventas : real
c : entero
rspta : caracter
INICIO
a_ventas 0
c 0
repetir
leer ventas
c c + 1
a_ventas a_ventas + ventas
leer rspta
hasta rspta =N
prom_ventas a_ventas / c
escribir a_ventas, prom_ventas
FIN.
Signifcado de las variables
num1 guarda el primer nmero
num2 almacena el segundo nmero
res guarda el residuo de la divisin
ALGORITMO prob_resueltos5
VARIABLES
num1, nun2, res : entero
INICIO
leer num1, num2
repetir
res num1 mod num2
num1 num2
num2 res
hasta res = 0
escribir num1
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
71
03. Una empresa que vende vehculos desea un algoritmo que permita
el ingreso del nmero de placa, nombre del propietario, tipo y precio
de venta del vehculo. Por cada venta se mostrar el descuento y el
precio fnal; para continuar con los datos de otro vehculo vendido
digite S, para fnalizar digite N. Cuando esto ocurra visualice:
- Cantidad de cada tipo de vehculo vendidos.
- El total recaudado por las ventas.
- La cantidad de autos vendidos cuyo precio fnal sea superior
a $2000.
Aplique los descuentos al precio de venta inicial del vehculo.

TIPO DESCUENTO
A (auto) 5%
B (camioneta) 8%
C (couster) 12%


Signifcado de las variables
c contador, cuenta los que cumplen la condicin
nom almacena el nombre
tipo guarda el tipo de vehculo
c_tipo_a contador de vehculos tipo A
c_tipo_b contador de vehculos tipo B
c_tipo_c contador de vehculos tipo C
p_venta guarda el precio de venta
p_fnal almacena el precio fnal
a_p_fnal acumula el precio fnal
descto guarda el descuento
ALGORITMO prob_resueltos6
VARIABLES
c, c_tipo_a, c_tipo_b, c_tipo_c : entero
descto, p_venta, p_fnal, a_p_fnal : real
nom : cadena
tipo : carcter
INICIO
c_tipo_a c_tipo_b c_tipo_c c a_p_fnal 0
repetir
leer placa, nom, tipo, p_venta
en caso tipo sea
A : c_tipo_a c_tipo_a + 1
descto 0.05 * p_venta
B : c_tipo_b c_tipo_b + 1
descto 0.08 * p_venta
sino c_tipo_c c_tipo_c + 1
descto 0.12 * p_venta
fn_en_caso
p_fnal p_venta descto
a_p_fnal a_p_fnal + p_fnal
escribir descto, p_fnal
Programa de Computacin, Diseo y Extensin
Algortmica
72
Prctica dirigida
1. Leer un nmero y visualizar si es par o impar, si desea evaluar otro
conteste con una s a una pregunta y con una n para terminar.
2. Una empresa requiere de un algoritmo que le permita tener cierta
informacin de una manera ms rpida, para esto, el algoritmo
deber permitir el ingreso por teclado del nombre y sueldo de un
trabajador, con estos datos se visualizar su bonifcacin y su sueldo
fnal.
Para repetir el proceso con otro trabajador, se deber ingresar por
teclado una S, o una N para fnalizar, cuando ocurra esto visualice:
- El total de bonifcacin.
- El sueldo promedio fnal.
Considere que la empresa da una bonifcacin a todos sus traba-
jadores del 13% respecto a su sueldo.
3. Un establecimiento comercial solicit el diseo de un algoritmo
que le permita llevar un control estadstico de su negocio de una
manera ms efectiva, para esto el algoritmo deber indicar que se
ingrese por teclado el nombre y precio del producto, para continuar
con el ingreso de otro producto de deber digitar una S, o una N
si desea terminar, cuando esto se de visualice:
- La cantidad de productos que cuestan exactamente 75.00
nuevos soles.
- La cantidad de productos en los que su precio excede a los
200 nuevos soles.
- El precio promedio.
si ( tipo = A ) ( p_fnal > 2000 ) entonces
c c + 1
fn_si
leer rpta
hasta rpta = N
escribir c_tipo_a, c_tipo_b, c_tipo_c
escribir a_p_fnal
escribir c
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
73
Anidamiento de estructuras
repetitivas
Formatos generales:
utilizando instruccin mientras - fin_mientras

:
mientras condicion1 hacer
instruccin
:
mientras condicion2 hacer
instruccin
:
:
fin_mientras
:
:
fin_mientras
:


utilizando instruccin repetir - hasta

:
repetir
instruccin
:
repetir
instruccin
:
:
hasta condicin1
:
:
hasta condicin2
:



Gua prctica N 10
Problemas Resueltos con validaciones y procesos repetitivos anidados
1. Obtenga los resultados que se obtienen del siguiente algoritmo:
ALGORITMO EJEMPLO1
VARIABLES
X, Y, Z : entera
INICIO
para X = 1 hasta 4
para Y = 1 hasta 3
Z X * Y
Escribir X, Y, Z
fn_para
fn_para
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
74
02. Obtenga los resultados que se obtienen del siguiente algoritmo:
03. Desarrolle un algoritmo en el que se calcule el promedio de 10
prcticas las que se ingresaran va teclado, si la nota no fuera
valida, o sea no esta en el rango [ 0 - 20 ] se pedir el ingreso de
una nueva nota hasta que sea una nota valida.
Se deber mostrar el promedio de prcticas y la cantidad de notas
que no fueron validas.
ALGORITMO EJEMPLO2
VARIABLES
X, Y, Z, W : entera
INICIO
para X = 1 hasta 4
para Y = 1 hasta 3
para Z = 1 hasta 3
W X + Y + Z
Escribir X, Y, Z, W
fn_para
fn_para
fn_para
FIN.
Signifcado de las variables
nota guarda la nota de practica
c_notas contador de notas
c_error contador de notas erradas
a_notas acumulador de notas
prom promedio de practicas
ALGORITMO prob_resueltos7
VARIABLES
nota, c_notas, a_notas, c_error : entero
prom : real
INICIO
c_notas 1
a_notas 0
c_error 0
mientras c_notas 10 hacer
leer nota
mientras ( nota < 0 ) ( nota > 20 ) hacer
c_error c_error + 1
leer nota
fn_mientras
a_notas a_notas + nota
c_notas c_notas + 1
fn_mientras
prom a_notas / 10
escribir prom, c_error
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
75
Prctica dirigida
01. Construya un algoritmo que valide el ingreso de la edad de un
trabajador, la edad valida ser de 18 a 65 aos, para esto digite
20 edades, fnalizado el proceso muestre la cantidad de edades
que no fueron validas as como tambin el porcentaje de edades
validas.
02. Desarrolle un algoritmo que valide el peso de un postulante a una
escuela militar, el peso valido ser de 55 a 75 Kg, para esto digite
los pesos de 70 postulantes, fnalizado esto muestre el porcentaje de
pesos validos as como tambin la cantidad de pesos no validos.
03. Un colegio requiere el diseo de un algoritmo en el que se ingrese
por teclado el nombre, sexo (V,D) y ao de nacimiento de alumno,
luego se mostrar su nombre y su edad actual, para repetir este
proceso con otro alumno se deber digitar una S, si ya no desea
continuar el ingreso digite una N, en caso que esto ocurriera se
mostrar:
- La edad promedio.
- El total de alumnas.
- El total de alumnos.
Valide el dato sexo y la respuesta para continuar o no con otros
datos.
04. Una compaa comercial solicita la creacin de un algoritmo en el
que se muestre el ingreso por teclado del nombre, sueldo y turno
(M, T, N) de un trabajador, para continuar con los datos de otro
digite S, para terminar el ingreso de datos digite N con lo cual se
mostrar:
- El nmero de trabajadores por cada turno.
- El total de sueldos a pagar por cada turno.
- El sueldo promedio por cada turno.
Valide del dato turno y la respuesta para continuar o no con otros
datos.
05. Construya un algoritmo en el que se ingrese la cantidad de nmeros
primos a visualizar.
06. Genere y visualice 15 tablas de multiplicar cada una del 1 al 12,
cada tabla deber tener el nombre correspondiente.
07. Desarrolle un algoritmo que permita visualizar los primeros nmeros
primos, para esto ingrese la cantidad de primos a mostrar.
08. Genere y visualice los factoriales de los 15 primeros nmeros na-
turales.
Programa de Computacin, Diseo y Extensin
Algortmica
76
Problemas mltiples propuestos
01. Construya un algoritmo que permita el ingreso de un nmero
entero, luego visualice el mensaje EL NMERO ES PERFECTO
EL NMERO NO ES PERFECTO, segn sea el caso. Recuerde, un
nmero es PERFECTO cuando sumados todos sus divisores a ex-
cepcin del mismo nmero, resulta dar igual al mismo nmero.
02. Una cooperativa de transporte urbano pidi la creacin de un algo-
ritmo en el que se ingrese por teclado el nmero de la unidad de
transporte, el nmero de placa y la cantidad de boletos de adulto,
medio y escolar, por cada unidad se deber visualizar el importe
de boleto adulto, medio y escolar as como tambin el total de im-
porte de boletos vendidos por cada unidad. Considere 1.00, 0.50
y 0.30, como los precios de los boletos de adulto, medio y escolar
respectivamente. Para continuar con otra unidad deber digitar S,
para fnalizar se digitar N, en cuyo caso se visualizar:
a. El total de unidades procesadas.
b. El total recaudado por la venta de boletos de adulto.
c. El total recaudado por la venta de boletos de medio.
d. El total recaudado por la venta de boletos de escolar.
e. El total de todo lo recaudado.
03. Una empresa dedicada a la venta de casas requiere de un algoritmo
que le permita obtener informacin de sus clientes y de las ventas,
para esto, dicho algoritmo deber aceptar va teclado el nombre
del cliente, el valor de la casa y la zona (A,B,C).
04. Por la zona en que esta la casa su valor tendr un incremento que
podr ser 15%, 22% 27% que corresponde a la zona A, B o C
respectivamente.
05. Por cada cliente visualice el valor fnal de la casa. Para continuar
con otro cliente digite S, para fnalizar el ingreso digite N, si ocurre
esto visualice
I. El total de clientes.
II. El total de casas vendidas de cada zona.
III. El importe de lo vendido por cada zona.
06. Disee un algoritmo que muestre el resultado de la siguiente serie:
- + 10 + 15 + ............ ( 30 trminos )
- 22 32
07. Elabore un algoritmo que muestre el rea de varios crculos de
radio 4, 6, 8, ...... 28, 30.
08. Desarrolle un algoritmo que muestre la suma de los 40 primeros
trminos de la siguiente serie:
1, 2, 4, 7, 11, 16, 22, ........
Programa de Computacin, Diseo y Extensin
Algortmica
77
09. Construya un algoritmo que visualice la suma de los 50 primeros
trminos de la siguiente serie:
3, 8, 15, 24, ............
10. Disee un algoritmo que visualice la suma de los 60 primeros tr-
minos de la serie:
12 + 22 + 32 + 42 + ...................
11. Construya un algoritmo que muestre la suma de los 15 primeros
terminos de la siguiente serie:
1 + 2 + 3 + 4 + ............
12. Disee un algoritmo que visualice la suma de los 20 primeros tr-
minos de la serie:
21 + 43 + 65 + 87 + ................... + 2n2n-1
13. Realice un algoritmo en el que se ingrese por teclado el nombre y
peso de un grupo de persona, slo en el caso en que dicho peso
sea cero, negativo o ms de 230 kilos motivar la fnalizacin del
ingreso, en ese momento visualice:
- El nmero de personas registradas.
- El peso promedio de las personas.
14. Construya un algoritmo en el que se ingrese va teclado varios n-
meros pares (no consistencia), el proceso se detendr al ingresar
un nmero impar negativo, cuando esto ocurra visualice:
- La cantidad de pares ingresados.
- El promedio de dichos pares.
15. Genere un proceso repetitivo en el que se pueda ingresar por te-
clado letras del alfabeto, este proceso llegar a su fn cuando se
ingrese por teclado un asterisco y cuando esto ocurra se deber
visualizar:
- El total de letras ingresadas.
- La cantidad de cada una de las vocales.
- La cantidad de consonantes.
16. Desarrolle un algoritmo en el que se ingrese por teclado un nmero
entero (base 10) y luego visualcelo en base 2.
17. Digite por teclado la hora bajo el formato (H, M, S), visualice la
hora, minuto y segundo, un segundo despus.
18. Digite dos nmeros enteros, visualice sus divisores comunes
19. Digite el nmero de trminos que tendr la serie de FIBONACCI, vi-
sualice cada termino y la suma de todos los trminos, la serie es:
0, 1, 1, 2, 3, 5, 8,13, ............
Programa de Computacin, Diseo y Extensin
Algortmica
78
20. Digite un nmero entero y visualice si es o no un cubo perfecto.
Tenga en cuenta que un nmero Amstrong es un cubo perfecto si
sumados los cubos de sus dgitos nos da el mismo numero.
Ejemplo: 13 + 53 + 33 = 153
21. Digite un nmero entero en base 10 y el nmero de la base a la que
se quiere convertir, visualice el nmero en la nueva base, considere
que el nmero de la base a convertir ser menor de 10.
Programa de Computacin, Diseo y Extensin
Algortmica
79
- Ejemplo 01: crear un procedimiento el cual imprima una cadena
que se le pasara como parmetro.
Procedimientos y funciones
SubProgramas
Un Sub-Programa esta compuesto por un conjunto de instrucciones
que realizan un proceso determinado, cuando son llamados mediante
su nombre.
Tipos
Los subprogramas se dividen en 2 tipos:
I. Procedimientos.
II. Funciones.
I. Procedimiento: sus instrucciones realizan un determinado proceso
cuando es llamado mediante su nombre, retornando a la instruccin
siguiente desde donde fue invocado.
Para invocar a un procedimiento se hace uso del nombre del
mismo, acompaando dicho nombre con parmetros si es que lo
requiere.
PROCEDIMIENTO Nombre_Procedimiento(Lista de Parametros)
Variables Locales
Lista_Variables : Tipo_Dato
INICIO
:
Instrucciones
:
FIN-PROCEDIMIENTO
Para llamar al procedimiento:
Nombre_Procedimiento(Lista de Parmetros)
Tambin antecediendo el nombre con la palabra Call
Call Nombre_Procedimiento
ALGORITMO Prueba_Procedimiento
PROCEDIMIENTO ImprimeCadena(Texto : Cadena)
INICIO
ESCRIBIR( Texto )
FIN-PROCEDIMIENTO
INICIO
ImprimeCadena(HOLA)
ImprimeCadena(BIENVENIDO)
FIN.
Programa de Computacin, Diseo y Extensin
Algortmica
80
- Ejemplo 02: elaborar un procedimiento para imprimir el mayor
valor de dos numeros enteros:
- Anlisis: se implementar un procedimiento de nombre
ImprimeMayor, el cual recibir dos nmeros enteros como
parmetros, el procedimiento imprimir el mayor valor de los
dos nmeros recibidos. Luego desde el programa principal
se invocara al procedimiento con los valores almacenados
en las variables X e Y. Observe los resultados.
ALGORITMO Calcular_Mayor
PROCEDIMIENTO ImprimeMayor(A : ENTERO, B : ENTERO)
INICIO
SI ( A > B ) ENTONCES
ESCRIBIR( A )
SINO
ESCRIBIR( B )
FIN-SI
FIN-PROCEDIMIENTO
VARIABLES
X, Y : ENTERO
INICIO
ESCRIBIR(INGRESE 2 NUMEROS ENTEROS:)
LEER(X, Y)
ESCRIBIR(EL MAYOR ES:)
ImprimeMayor(X, Y)
FIN.
Respuesta:
INGRESE 2 NUMEROS ENTEROS: 5, 10
EL MAYOR ES: 10
Programa de Computacin, Diseo y Extensin
Algortmica
81
Parmetros por valor
y/o referencia
Cuando se implementa un subprograma se pueden declarar parme-
tros pasados por valor y/o referencia, en caso no se especifque el tipo
de paso se asume por el paso por valor por defecto.
- PASO POR VALOR: el paso de parmetros por valor signifca
pasar una copia del valor de una variable a su parmetro formal.
Los parmetros declarados como paso por valor pierden su valor
al terminar el subprograma.
- PASO POR REFERENCIA: el paso de parmetros por referencia
signifca pasar la direccin de memoria donde se encuentra alma-
cenado una variable del programa, por lo tanto cualquier cambio
al parmetro dentro del subprograma se devuelve al terminar el
subprograma.
- Ejemplo: elaborar un procedimiento donde se reciba como
parmetro un nmero entero y luego se incremente el valor del
parmetro en 2 unidades.
C
A
P

T
U
L
O
10
Programa de Computacin, Diseo y Extensin
Algortmica
82
ALGORITMO Paso_Por_Valor
PROCEDIMIENTO AgregarDos( N : ENTERO)
INICIO
N N + 2
FIN-PROCEDIMIENTO

VARIABLES
M : ENTERO
INICIO
M 10
ESCRIBIR(VALOR ANTES:, M)
AgregarDos( M )
ESCRIBIR(VALOR DESPUES:, M)
FIN.

Resultado:
VALOR ANTES: 10
VALOR DESPUS: 10
Como habr podido
observar en el paso de
parmetro por valor, el
valor deM no cambia
al terminar la llamada al
procedimiento AgregarDos,
justamente porque lo
que se esta pasando al
procedimiento es la copia
del valor de M, por lo
tanto esta copia pierde
su valor al terminar el
procedimiento.
NOTA NOTA
Solucin 02:
- Anlisis: se crear un procedimiento de nombre AgregarDos,
el cual recibir como parmetro un nmero de tipo
entero al cual llamaremos N, dentro del procedimiento
incrementaremos el valor del parmetro N en 2 unidades,
a diferencia del caso anterior se le antepondr al parmetro
N la palabra REFERENCIA el cual indicar que lo que se
esta pasando no es un valor sino una direccin de memoria
de una variable de programa. Desde el bloque principal del
algoritmo se inicializar una variable de nombre M el cual se
inicializara con el valor 10, luego se visualizar el valor antes
de la llamada al procedimiento AgregarDos y luego el valor
devuelto al terminar el procedimiento. Observe los resultado
de esta solucin y comprela con la solucin anterior.
Solucin 01:
- Anlisis: se crear un procedimiento de nombre AgregarDos,
el cual recibir como parmetro un nmero de tipo
entero al cual llamaremos N, dentro del procedimiento
incrementaremos el valor del parmetro N en 2 unidades.
Desde el bloque principal del algoritmo se inicializar una
variable de nombre M el cual se inicializar con el valor
10, luego se visualizar el valor antes de la llamada al
procedimiento AgregarDos y luego el valor devuelto al
terminar el procedimiento.
Programa de Computacin, Diseo y Extensin
Algortmica
83
ALGORITMO Paso_Por_Referencia
PROCEDIMIENTO AgregarDos( REFERENCIA N : ENTERO)
INICIO
N = N + 2
FIN-PROCEDIMIENTO

VARIABLES
M : ENTERO
INICIO
M = 10
ESCRIBIR(VALOR ANTES:, M)
AgregarDos( M )
ESCRIBIR(VALOR DESPUES:, M)
FIN.

Resultado:
VALOR ANTES: 10
VALOR DESPUS: 12
NOTA NOTA
Como habr podido
observar en el paso de
parmetro por referencia,
el valor deM cambia
al terminar la llamada al
procedimiento AgregarDos,
justamente porque lo
que se esta pasando al
procedimiento la direccin
de memoria donde reside
M, por lo tanto cualquier
cambio dentro del
procedimiento se mantiene
inclusive al terminar el
procedimiento.
Gua prctica
Problemas Resueltos
Lea atentamente el enunciado de cada problema y observe como se
plantea su solucin.
1. Ingrese un nmero entero y luego llamar a un procedimiento de
nombre ImprimeDoble el cual visualizara el doble del nmero in-
gresado.
Identificadores del Algoritmo
ImprimeDoble Nombre del Procedimiento
N Nombre del Parmetro

- Anlisis: se implementar el procedimiento de nombre
ImprimeDoble, se declarara un parmetro de nombre N
de tipo entero y dentro del procedimiento se imprimir el
doble del numero N, luego desde el bloque principal del
programa se invocara al procedimiento.
Programa de Computacin, Diseo y Extensin
Algortmica
84
2. Elaborar un procedimiento que permita intercambiar los valores de
dos nmeros enteros.
Identificadores del Algoritmo
InterCambio Nombre del Procedimiento
A, B Parmetros

- Anlisis: se implementar el procedimiento de nombre
InterCambio, se declarar dos parmetro de nombre A y
B de tipo entero y dentro del procedimiento intercambiaran
los valores de A y B, luego desde el bloque principal del
programa se invocara al procedimiento. Recuerde que este
caso tendr que defnir los parmetros como REFERENCIA
ya que los cambios que se realicen dentro del procedimiento
se deben mantener al terminar el procedimiento.
Solucin:
ALGORITMO Proceso_InterCambio
PROCEDIMIENTO InterCambio(REFERENCIA A, B : ENTERO)
VARIABLES
TEMP : ENTERO
INICIO
TEMP = A
A = B
B = TEMP
FIN-PROCEDIMIENTO
VARIABLES
X, Y : ENTERO
INICIO
ESCRIBIR(INGRESE DOS NUMEROS :)
LEER( X, Y )
ESCRIBIR(VALORES ANTES :, X, Y)
InterCambio( X, Y )
ESCRIBIR(VALORES DESPUES :, X, Y)
FIN.

Resultado:
INGRESE UN NUMERO: 5
EL DOBLE DE 5 ES: 10
ALGORITMO Proceso_Valor
PROCEDIMIENTO ImprimeDoble( N : ENTERO )
INICIO
ESCRIBIR(EL DOBLE DE , N, ES :, N * 2 )
FIN-PROCEDIMIENTO
VARIABLES
A : ENTERO
INICIO
ESCRIBIR(INGRESE UN NUMERO :)
LEER( A )
ImprimeDoble( A )
FIN.

Solucin:
Programa de Computacin, Diseo y Extensin
Algortmica
85
ALGORITMO Proceso_InterCambio
PROCEDIMIENTO InterCambio(REFERENCIA A, B : ENTERO)
VARIABLES
TEMP : ENTERO
INICIO
TEMP = A
A = B
B = TEMP
FIN-PROCEDIMIENTO
VARIABLES
X, Y : ENTERO
INICIO
ESCRIBIR(INGRESE DOS NUMEROS :)
LEER( X, Y )
ESCRIBIR(VALORES ANTES :, X, Y)
InterCambio( X, Y )
ESCRIBIR(VALORES DESPUES :, X, Y)
FIN.

Resultado:
INGRESE DOS NMEROS: 5, 10
VALORES ANTES: 5, 10
VALORES DESPUS: 10, 5
Programa de Computacin, Diseo y Extensin
Algortmica
86
Programa de Computacin, Diseo y Extensin
Algortmica
87
C
A
P

T
U
L
O
11
Funciones
- Funciones: una funcin es un subprograma que realiza un pro-
ceso determinado para devolver un nico valor. Para llamar a una
funcin se hace uso del nombre del mismo seguido de los valores
que se pasaron a los parmetros de la funcin, el valor devuelto
se puede asignar a un variable del programa que sea del mismo
tipo del valor que devolver la funcin. En las funciones tambin
se puede declarar parmetros por valor y/o referencia.
Sintaxis:
FUNCION Nombre_Funcion(Lista_Parametros) : Tipo_Dato
VARIABLES
Lista_Variables : Tipo
INICIO
:
Instrucciones
:
RETORNAR( Valor_de_Retorno)
FIN-FUNCION
- Ejemplo 01: crear una funcin que devuelva el cuadrado de un
numero entero.
ALGORITMO Implementa_Funcion

FUNCION Cuadrado(N : ENTERO) : ENTERO
INICIO
RETORNAR( N * N)
FIN-FUNCION
VARIABLES
A : ENTERO
INICIO
PARA A = 1 HASTA 10 HACER
ESCRIBIR( El Cuadrado de , A, , es :, Cuadrado(A) )
FIN-PARA
FIN.

Programa de Computacin, Diseo y Extensin
Algortmica
88
Resultado:
- El Cuadrado de 1, es 1
- El Cuadrado de 2, es 4
- El Cuadrado de 3, es 9
:
- El Cuadrado de 10, es 100
ALGORITMO Implementa_Funcion

FUNCION Cuadrado(N : ENTERO) : ENTERO
INICIO
RETORNAR( N * N)
FIN-FUNCION
VARIABLES
A : ENTERO
INICIO
PARA A = 1 HASTA 10 HACER
ESCRIBIR( El Cuadrado de , A, , es :, Cuadrado(A) )
FIN-PARA
FIN.

- Ejemplo 02: especifque el resultado que se obtiene al ejecutar
el siguiente algoritmo.
ALGORITMO Demo_Proceso

PROCEDIMIENTO CalculoVelocidad(distancia, tiempo : ENTERO )
VARIABLES
vel : REAL
INICIO
vel = distancia / tiempo
ESCRIBIR (La velocidad es , vel, Kmph)
FIN_PROCEDIMIENTO

VARIABLES
distancia, tiempo : REAL
INICIO
distancia = 100
tiempo = 2
CalculoVelocidad(distancia, tiempo)
CalculoVelocidad(400, 10)
FIN.

Prctica dirigida N 1
01. Crear un procedimiento el cual permita imprimir el nmero de cifras
pares e impares que componen a un nmero entero.
Recomendacin: utilice el siguiente encabezado para el procedi-
miento:
PROCEDIMIENTO ImprimeCifras( N : ENTERO )
Programa de Computacin, Diseo y Extensin
Algortmica
89
02. Elaborar un procedimiento que imprima un texto un nmero de-
terminado de veces.
Recomendacin: el encabezado del procedimiento seria:
PROCEDIMIENTO ImprimeTexto(Texto:CADENA, N:ENTERO)
03. Desarrollar un procedimiento que permita ordenar de forma as-
cendente 3 nmero enteros.
Recomendacin: utilizar el siguiente encabezado:
PROCEDIMIENTO OrdenaAscendente(REFERENCIA A, B, C
: ENTERO)
04. Crear un procedimiento que imprima los n primeros nmeros de
la serie de fbonacci 0, 1 ,1, 2, 3, 5, 8, , N
Recomendacin: el encabezado podra ser:
PROCEDIMIENTO Fibonacci(N: ENTERO)
05. Crear una funcin que devuelva el nmero de cifras que componen
a un nmero entero.
Recomendacin: Utilizar el siguiente encabezado:
FUNCIN NumeroCifras(N : ENTERO): ENTERO
06. Elaborar una funcin que devuelva el factorial de un nmero entero.
Recomendacin: el encabezado podra ser:
FUNCIN Factorial(N : ENTERO) : ENTERO
07. Desarrollar una funcin que invierta las cifras que componen a un
nmero entero.
Recomendacin: utilice el siguiente encabezado:
FUNCIN InvertirCifras(N : ENTERO) : ENTERO
08. Desarrollar una funcin que devuelva el mayor valor de tres n-
meros enteros.
Recomendacin: podra utilizar el siguiente encabezado:
FUNCIN MayorDeTres(A, B, C : ENTERO) : ENTERO
09. Una funcin recibe como parmetro un nmero entero, la funcin
debe devolver un valor igual a 1 si el nmero es PRIMO o un valor
igual a 0 si el numero NO ES PRIMO.
Recomendacin: el encabezado podra ser:
FUNCIN PRIMO( N : ENTERO ) : ENTERO
10. Elaborar una funcin que convierta un nmero entero en base 10
a una base entre 2 y 9.
Recomendacin: utilice el siguiente encabezado:
FUNCIN CambiarBase(N : ENTERO) : ENTERO
Programa de Computacin, Diseo y Extensin
Algortmica
90
Programa de Computacin, Diseo y Extensin
Algortmica
91
Arreglos
Los arreglos son una coleccin de variables del mismo tipo que se
referencia utilizando un nombre comn. Un arreglo consta de posicio-
nes de memoria contigua. La direccin ms baja corresponde al primer
elemento y la ms alta al ltimo. Un arreglo puede tener una o varias
dimensiones. Para acceder a un elemento en particular de un arreglo
se usa un ndice.
Arreglos unidimensionales (vectores)
Es una serie de datos del mismo tipo, tambin conocidos como vectores
o rangos. Un arreglo esta constituido por varias posiciones de memoria
de igual tamao consecutivas que tienen el mismo tipo de variable y se
accesan usando el mismo nombre seguido de un subndice entre corche-
tes. La cantidad total de espacio que se usa por un arreglo depende de 2
cosas: el nmero de elementos en el arreglo y El tamao del arreglo.
Notacin:
Es igual a como se hara con una variable, a excepcin de que tambin
se especifca la cantidad de elementos en el arreglo encerrado entre
parntesis de la siguiente manera: tipo nombre_del_arreglo(tamao);
Cuando se declara un arreglo, sus valores se pueden inicializar de la
siguiente manera:
C
A
P

T
U
L
O
12
A(4):Entero

Arreglo A con cuatro elementos

La asignacin correspondiente seria:
A(0) 5
A(1) 67
A(2) 98 .. as sucesivamente

Programa de Computacin, Diseo y Extensin
Algortmica
92
Vector dinmico
Carcter vector[]=('p','r','o','g','r','a','m','a','d','o','r')
Si no se le pone dimensin se toma como un vector dinmico que
puede aumentar o disminuir en dimensin.
Gua prctica
Problemas resueltos
01. Generar dos arreglos de 10 elementos cada uno donde el primero
contiene una lista de nombres y el segundo sus respectivas eda-
des, luego visualizar como respuesta los nombres de las personas
menores de edad, visualizar adems al fnal que porcentaje son
menores y que porcentaje son mayores.
Planteamiento:
En primer lugar debemos cargar los dos arreglos y luego declarar
dos contadores, uno para contar los mayores de edad y otro para
los menores porque ser necesario para obtener los porcentajes.
ALGORITMO: Ejemplo1
VARIABLES
Nomb(10) :Cadena
Ed(10) : Entero
I,tot_may,tot_men : Entero
Pmay,pmen : Real
INICIO
Para I 1 hasta 10
Leer Nomb(i),Ed(i)
Fin_para
Tot_may 0
Tot:men 0
Para I 1 hasta 10
Si ed(i) >17 entonces
Tot_may tot_may +1
Si no
Tot_men tot:men + 1
Escribir Nomb(i)
Fin_si
Fin_para
Pmay (tot_may*100)/10
Pmen (tot_men*100)/10
Escribir pmay,pmen

FIN

Programa de Computacin, Diseo y Extensin
Algortmica
93
02. Generar dos arreglos de 5 elementos cada uno con nmeros alea-
torios luego trasladar estos elementos a un tercer arreglo de 10
elementos en cualquier orden, visualizar el arreglo resultante.
ALGORITMO: Ejemplo2
VARIABLES
c(10) : Entero
a(5),b(5): Entero
I, x ,p : Entero
INICIO
Para I 1 hasta 5
Leer a(i),b(i)
Fin_para
P 6
Para I 1 hasta 5

C(i) a(i)
C(p) b(i)
P p + 1
Fin_para
Para I 1 hasta 10
Escribir c(i)
Fin_para

FIN


03. Genera un arreglo de 10 elementos con una lista de nmeros y
trasladar estos elementos aun segundo arreglo pero en orden
invertido, visualizar el arreglo resultante.
ALGORITMO: Ejemplo3
VARIABLES
a(10),b(10): Entero
I, x ,p : Entero
INICIO
Para I 1 hasta 10
Leer a(i)
Fin_para
P 10
Para I 1 hasta 10
b(i) a(p)
Escribir b(i)
P p - 1
Fin_para

FIN

Programa de Computacin, Diseo y Extensin
Algortmica
94
04. Genera cuatro arreglos de 50 elementos cada uno el primero con-
tiene una lista de vendedores y los tres restantes las ventas del
primer trimestre (ventas de enero, febrero y marzo) luego visualizar
el nombre del vendedor y el promedio de ventas del trimestre,
visualizar adems al fnal el nombre del vendedor estrella (el de
mayor venta).
Vendedor Ene Feb Mar
Jos 32434 4344 34334
Lus 5454 656 5656
..


ALGORITMO: Ejemplo4
VARIABLES
vend(50) : cadena
ene(50) : entero
feb(50) : entero
mar(50) : entero
I, x ,p : Entero
Xn : cadena
INICIO
Para I 1 hasta 50
Leer vend(i),ene(i),feb(i),mar(i)
Fin_para
vm 0
Para I 1 hasta 50
pv (ene(i) + feb(i) + mar(i))/3
Escribir vend(i),pv
Si pv > vm entonces
Vm pv
Xn vend(i)
Fin_si
Fin_para
Escribir El vendedor de mayo r promedio de venta es:,xn
FIN

Prctica dirigida N 1
Arreglos unidimensionales
01. Se tiene un vector de 20 elementos de tipo entero, calcule el mayor
elemento e indicar cul es la posicin que ocupa el nmero en el
vector.
02. Se pide ingresar N carcteres a un vector de tipo CARACTER, diga
cuantas vocales existe en dicho vector?.
Programa de Computacin, Diseo y Extensin
Algortmica
95
03. Teniendo en cuenta un vector con notas fnales de tipo real, realice
el ingreso de las notas e indique el promedio de dicho vector.
04. Se tiene un vector de N elementos con datos enteros, realice la
bsqueda secuencial de un valor ingresado e indique su posicin
en que se ubica.
05. Se tiene un vector de N elementos al azar, indique cuantos pares
e impares hay en el vector?
06. Teniendo en cuenta un vector de tipo real que guarda las ventas
anuales de una tienda, se pide indicar cul es el mes que tiene
mayor venta, visualice los meses con ventas mayores al promedio.
07. Se tiene un vector de N elementos, realice el ordenamiento burbuja
para el vector e indicar el sentido que se desea ordenar.
08. Se tiene un vector de N elementos de tipo entero con nmeros al
azar entre 1..10, indique cuantas veces se repite cada nmero en
el vector.
Problemas propuestos
01. Se tiene un vector, realice el ingreso de los elementos en forma
ordenada a un vector y luego muestre dicho vector.
02. Se tiene 3 vectores de tipo entero de 10 elementos, realice la
sumatoria como se indica:
a. Los tres vectores en un cuarto vectos de 30 posiciones en
cualquier orden
b. La suma de cada elemento de los tres vectores en un cuarto
vector y visualizar el vector resultante:
Ejemplo: d(i) = a(i) + b(i) + c(i)
03. Se tiene el arreglo VentasAnuales donde se almacenan las ventas
mensuales de una empresa.
0 1 2 10 11
v
ene
v
feb
v
mar
. . v
nov
v
dic

Haga un programa que escriba:
a. En qu mes se dieron las ventas mximas de la empresa?
b. A cunto ascendieron las ventas mximas?
c. Cul fue el total de las ventas?
d. Cul fue el promedio de las ventas?
Programa de Computacin, Diseo y Extensin
Algortmica
96
Programa de Computacin, Diseo y Extensin
Algortmica
97
Arreglos
Bidimensionales
(Matrices)
Un arreglos bidimensional esta compuesto, por un conjunto de elemen-
tos homogneos y se puede acceder a los datos utilizando dos subndices,
este tipo de arreglo es tambin conocido como matriz.
Un arreglo bidimensional se puede defnir de diferentes formas:
Matriz(1 hasta10,1 hasta 5):entero
Matriz1(10,5):entero
por ejemplo en C++ seria
ENTERO arreglo[10][10];
REAL matriz[10][10];

C
A
P

T
U
L
O
13
Tambin podemos utilizar constantes para defnir la dimensin del
arreglo de dos dimensiones:
Inicializacin:
Una matriz o arreglo bidimensional se puede inicializar de este
modo:
A (3,3): entero
matriz(3,3): ENTERO = (1,2,3,4,5,6,7,8,9)
Programa de Computacin, Diseo y Extensin
Algortmica
98
Declaracin:
Una matriz de 3,3
Matriz (3,3): Entero

Fil/Col
0 1 2
0 11 22 35
1 42 53 66
2 72 83 91

LA ASIGNACIN SERIA:
Matriz (0,0)11
Matriz (1,1)53
Matriz (2,2)91
.. as sucesivamente.

Tambin podemos utilizar una estructura for dentro de otra estructura
for para inicializar los valores de un arreglo de dos dimensiones como
se muestra a continuacin:
Con la anterior asignacin se crea en memoria una matriz igual a la
de abajo.
Programa de Computacin, Diseo y Extensin
Algortmica
99
Problemas resueltos
01. Genera una matriz de 5,5 y luego visualizar cuantos elementos de
la matriz son nmeros pares.
Planteamiento:
- Primero se debe declarar el arreglo en memoria, luego las
variables que sern usados en el problema planteado.
- Tambin se recomienda realizar el trabajo por mdulos, es
decir primero cargar los datos a la matriz, luego desarrollar
el problema segn el enunciado.
No se olvide que en la
mayora de los lenguajes
como el visual Basic los
ndices de los arrays
empiezan en 0. Si el array
tiene n elementos los
ndices varan de 0 a n-1.
NOTA NOTA
Algoritmo Ejemplo1
Variables
N(5,5):Entero
I,x,cp :entero
Inicio
Cargamos datos al arreglo
Para i=1 hasta 5
Para x = 1 hasta 5
Leer n(i,x)
Fin para
Fin para
Realizamos la evaluacin de elementos
Cp=0
Para i=1 hasta 5
Para x = 1 hasta 5
Si n(i,x) mod 2 =0 entonces
Cp=cp+1
Fin para
Fin para
Fin para
Escribir La cantidad de elementos pares es:,cp

Fin.

02. En una competencia de salto alto, establecida se evala las marcas
obtenidas por 25 atletas, esto es: cada uno de ellos realiza cuatro
intentos y se registra la altura logrado, con estos datos determine:
a. Cuantos atletas lograron superar la primera marca.
b. Cual es el promedio de marcas de cada uno.
c. Cual es la marca mas alta entre los 25 participantes.
Programa de Computacin, Diseo y Extensin
Algortmica
100
Solucin:
intentos Intento1 Intento2 intento3 intento4
Atleta 1 3.59 4.45 4.70 4.40
Atleta2 4.02 3.90 4.00 3.90
--- --- --- ---
Aleta 25 4.00 4.50 4.36 4.20

ALGORITMO: Intentos
VARIABLES
n(25,4) :Real
I,x ,t1 :Entero
Sm,pm :real

INICIO
Cargamos la tabla con el resultado de los Intentos
Para i=1 hasta 25
Para x = 1 hasta 4
Leer n(i,x)
Fin para
Fin para
Realizamos la evaluacin de los intentos
La primera pregunta
T1=0
Para i = 1 hasta 25
Si n(i,1)<n(i,2) or n(i,1)<n(i,2) or n(i,1)<n(i,3) or n(I,1)<n(I,4) entonces
t1=t1+1
Fin para
Escribir el nro de atletas que superaron la primera marca son:,t1

La segunda pregunta
Para i=1 hasta 25
Sm=0
Para x = 1 hasta 4
Sm=sm+n(i,x)
Fin para
Pr=sm/4
Escribir el promedio del atleta ,i ,es:,pr
Fin para

La tercera pregunta
Sm=0
Para i=1 hasta 25
Para x = 1 hasta 4
Si n(i,x)>sm entonces
Sm=n(i,x)
Fin para
Escribir la marca mas alta es :,sm
Fin para
Fin.

Programa de Computacin, Diseo y Extensin
Algortmica
101
ALGORITMO: Intentos
VARIABLES
n(25,4) :Real
I,x ,t1 :Entero
Sm,pm :real

INICIO
Cargamos la tabla con el resultado de los Intentos
Para i=1 hasta 25
Para x = 1 hasta 4
Leer n(i,x)
Fin para
Fin para
Realizamos la evaluacin de los intentos
La primera pregunta
T1=0
Para i = 1 hasta 25
Si n(i,1)<n(i,2) or n(i,1)<n(i,2) or n(i,1)<n(i,3) or n(I,1)<n(I,4) entonces
t1=t1+1
Fin para
Escribir el nro de atletas que superaron la primera marca son:,t1

La segunda pregunta
Para i=1 hasta 25
Sm=0
Para x = 1 hasta 4
Sm=sm+n(i,x)
Fin para
Pr=sm/4
Escribir el promedio del atleta ,i ,es:,pr
Fin para

La tercera pregunta
Sm=0
Para i=1 hasta 25
Para x = 1 hasta 4
Si n(i,x)>sm entonces
Sm=n(i,x)
Fin para
Escribir la marca mas alta es :,sm
Fin para
Fin.

Prctica dirigida
01. Se tiene un matriz de 3 x 8 con nmeros al azar, indique el mayor
elemento de la matriz y sus coordenadas.
02. En una matriz de 5 x 8 con nmeros al azar indique que columna
tiene le mayor promedio.
03. Se tiene una matriz de orden N x N, indique la suma de sus dia-
gonales.
04. Se tiene una matriz de orden N x N, invierta el contenido de las
diagonales.
05. Haga un programa que lea una matriz de enteros de m flas y n
columnas y calcule la suma de los elementos de cada columna.
06. Se tiene una matriz de 6 x 8 con nmeros al azar, indique la suma-
toria de los elementos que pertenecen a la periferia de la matriz y
cul es su mayor elemento.
07. Escriba un programa que lea una matriz de m X n y la escriba
poniendo las columnas como flas y las flas como columnas.
Por ejemplo, si la matriz que da el usuario es:
4 7 1 3 5
2 0 6 9 7
3 1 2 6 4

Entonces el programa debe escribir la matriz transpuesta:
4 2 3
7 0 1
1 6 2
3 9 6
5 7 4
Programa de Computacin, Diseo y Extensin
Algortmica
102
08. Escriba un programa que reciba como entrada un entero n y una
matriz cuadrada (n x n) de enteros e imprima los elementos que
conforman la diagonal que inicia en la esquina superior derecha y
termina en la esquina inferior izquierda.
Prctica propuesta
01. Una matriz cuadrada A se dice que es simtrica si A(i, j) = A(j, i)
para todo i, j dentro de los lmites de la matriz. Escriba un programa
que lea una matriz y diga si es simtrica o no.
02. Haga un programa que lea una matriz de enteros de m X n (1 < n,
m 50) y encuentre el menor y el mayor valor y sus posiciones.
03. Haga un programa para calcular la matriz c(m,p) = a(m,n) *
b(n,p).
04. Se tiene una matriz de orden N x N con nmeros al azar, invierta
el contenido de cada una de las columnas.
05. Una empresa automotriz tiene cinco agencias y cuenta con la in-
formacin acerca de las ventas mensuales de automviles logradas
el ao pasado por cada una de stas. A partir de estos datos la
empresa construy la siguiente matriz ventas:
Lima Ica Piura Tacna Cuzco
Enero
Febrero
. . .
Noviembre
Diciembre
Elabore un programa para contestar las siguientes preguntas:
a. Cul fue el total de ventas en el ao de la agencia de Lima?
b. Cul fue el promedio de ventas en el mes de diciembre?
c. Qu agencia tuvo mayores ventas en el mes de mayo?
d. En qu mes se registraron las menores ventas del ao,
considerando todas las agencias?
06. Haga un programa que genere las tablas de multiplicar del 1 al 10
en un solo arreglo de dos dimensiones y posteriormente imprima
dicho arreglo.
07. Los resultados de las elecciones del pas se esquematizarn en una
matriz como la que se muestra a continuacin:
Programa de Computacin, Diseo y Extensin
Algortmica
103
Partidos
P1 P2 P3 P4 P5 P6 P0(votos anulados)
R
E
G
I
O
N
E
S
R1
R2
. . .
R15
La matriz almacena el nmero de votos que obtuvo cada partido
en el estado correspondiente, as como los otos anulados en cada
estado.
Se desea conocer:
a. Total de votos de cada partido.
b. Total de votos por estado, para comparar con una tabla que
indica el nmero de personas que deben votar por estado
con el fn de detectar en qu estados vot menos del 60% de
la poblacin electora y tomar as medidas de concientizacin
cvica.
Nmero de personas que deben votar por estado:
R1 R2 . . . R15
c. Qu partido obtuvo el mayor nmero de votos en el cuarto
estado?
d. Cul es el estado con mayor nmero de abstenciones y cul
es el estado con mayor porcentaje de abstenciones? Debe
ser forzosamente el mismo estado en ambos casos?
08. Se tienen los resultados de las ltimas elecciones para alcalde en
el estado X, el cual est conformado por 5 municipios. En dichas
elecciones hubo 4 candidatos.
Haga un programa que:
a. Lea e imprima una tabla indicando los votos obtenidos en
cada municipio por los 4 candidatos.
b. Calcule el total de votos recibidos por cada candidato y el
porcentaje del total de votos emitidos.
c. Calcule el candidato ms votado.
Programa de Computacin, Diseo y Extensin
Algortmica
104
d. Si un candidato recibi ms del 50% de los votos, indicar
que es el ganador. Si ningn candidato recibi ms del 50%
de los votos, el programa debe imprimir los dos candidatos
ms votados, que sern los que pasen a la segunda ronda
de las elecciones.
Programa de Computacin, Diseo y Extensin
Algortmica
105
C
A
P

T
U
L
O
14
Programacin
orientado a objetos
(POO)
1. Manejo de clases y objetos.
a. Atributos, defnicin, alcance.
2. Mtodos, defnicin, sintaxis.
- La POO es un paradigma de programacin que facilita la
creacin de software y su reutilizacin.
- Trata de amoldarse al modo de pensar del hombre y no al
de la mquina.
- El elemento bsico de este paradigma es un ente denominado
objeto.
Una clase es una defnicin abstracta de un objeto.
- Defne la estructura y el comportamiento compartidos por
los objetos.
- Sirve como modelo para la creacin de objetos.
- Los objetos pueden ser agrupados en clases.
Programa de Computacin, Diseo y Extensin
Algortmica
106
Clase
Una clase es la defnicin de las caractersticas de un determinado ob-
jeto, es decir cuales son los datos y mtodos de los que va a disponer.
Las clases son representaciones abstractas de objetos.
- Una clase es una abstraccin que:
- Enfatiza las caractersticas relevantes.
- Suprime otras caractersticas (simplifcacin).
- Descripcin de un grupo de objetos con:
- Propiedades en comn (atributos).
- Comportamiento similar (operaciones).
- Una semntica en comn (signifcan lo mismo).
Objeto
Un objeto es una instancia de una clase.
- Representa una entidad del mundo real.
- Entidades fsicas (vehculo, casa, etc).
- Entidades conceptuales (proceso matemtico, transaccin fnan-
ciera).
- Entidades de software (interfaz grfca).
En la programacin orientada a objetos debemos considerar:
Encapsulamiento
- Establece que los atributos propios de un objeto no deben ser vi-
sibles desde otros objetos; Deben ser declarados como privados
Abstraccin
- La abstraccin nos ayuda a trabajar con cosas complejas; Se enfoca
en lo importante.
- Se enfatizan las caractersticas relevante.
Herencia
Es una relacin entre clases en la cual una clase comparte la estructura
y comportamiento defnido en otra clase.
Relaciones
- Los objetos contribuyen en el comportamiento de un sistema co-
laborando entre si.
Programa de Computacin, Diseo y Extensin
Algortmica
107
Class nombre_clase,
Miembros de la clase (datos y mtodos)
End Class.

En las clases podemos tener como miembros de la clase (campos,
propiedades, mtodos)
Campos: son variables usadas a nivel de la clase, representan los
datos de la clase, representan la informacin que "internamente" la clase
manipular.
Pueden ser:
- Private, ese miembro slo ser accesible desde "dentro" de la
clase.
- Public, ese miembro ser accesible tanto desde dentro como desde
fuera de la clase.
Los mtodos
Los mtodos nos permitirn realizar acciones sobre los datos.
Existen dos tipos de mtodos: las funciones (Function) que siempre
devuelven un valor y los procedimientos (Sub) que no devuelven ningn
valor.
- Sub realizan una tarea especfca.
- Function adems de realizar una tarea, devuelven un valor, el cual
suele ser el resultado de la tarea que realizan.
Ejemplo:
- Existen dos tipos principales de relaciones:
- Asociacin.
- Agregacin.
Defnicin de una clase
La clase se defne usando la instruccin Class seguida del nombre de
la clase y termina con la instruccin End Class.
Module Module1
Sub Main() Procedimiento Sub main() principal
MostrarS() LLAMADA AL PROCEDIMIENTO
Dim s As String = MostrarF() LLAMADA A LA FUNCION
Console.WriteLine(s)
Console.ReadLine()
End Sub

Sub MostrarS() Procedimiento Sub MostrarS
Console.WriteLine("Este es el procedimiento MostrarS")
End Sub

Function MostrarF() As String Procedimiento Function MostrarF
Return "Esta es la funcin MostrarF"
End Function
End Module

La salida producida por este cdigo ser la siguiente:

Este es el procedimiento MostrarS
Esta es la funcin MostrarF

Programa de Computacin, Diseo y Extensin
Algortmica
108
Las propiedades
Son procedimientos especiales, nos permiten realiza validaciones o
acciones. Una propiedad en una clase se defne, por norma general,
mediante dos elementos: una variable de propiedad y un procedimiento
de propiedad.
La variable de propiedad, es una variable con mbito privado a nivel
de la clase, que se encarga de guardar el valor de propiedad.
El procedimiento de propiedad o Property, es el encargado de actuar
de puente entre el cdigo cliente y la variable de propiedad, realizando
las operaciones de acceso y asignacin de valores a dicha variable.
Public Property Nombre() As String
parte Get es la que devuelve el valor de la propiedad ' La
Get
Return elNombre
End Get

' La parte Set es la que se usa al asignar el nuevo valor
Set(ByVal Value As String)
If Value <> "" Then
elNombre = Value
If End
End Set
End Property

Creacin de un objeto
Un objeto es la instancia de una clase.
Si creamos una clase Persona, para poder crear un objeto de la clase
Persona, debemos crear una nueva instancia basada en esa clase.
Public PersonaEstudiante As Persona Se crea la referencia

PersonaEstudiante = new Persona Se instancia

Esta sera la manera ms efciente de instanciar un objeto es:
Public PersonaEstudiante as New Persona()

Module Module1
Sub Main() Procedimiento Sub main() principal
MostrarS() LLAMADA AL PROCEDIMIENTO
Dim s As String = MostrarF() LLAMADA A LA FUNCION
Console.WriteLine(s)
Console.ReadLine()
End Sub

Sub MostrarS() Procedimiento Sub MostrarS
Console.WriteLine("Este es el procedimiento MostrarS")
End Sub

Function MostrarF() As String Procedimiento Function MostrarF
Return "Esta es la funcin MostrarF"
End Function
End Module

La salida producida por este cdigo ser la siguiente:

Este es el procedimiento MostrarS
Esta es la funcin MostrarF

Programa de Computacin, Diseo y Extensin
Algortmica
109
Cada objeto es un elemento nico de la clase en la que se basa. Si
una clase es como un molde, entonces un objeto es lo que se crea a
partir del molde.
La clase es la defnicin de un elemento; el objeto es el ele-
mento.
Programa de Computacin, Diseo y Extensin
Algortmica
110
Programa de Computacin, Diseo y Extensin
Algortmica
111
Gua de laboratorio
En Visual Basic (modo consola)
Aplicaciones en consola
Una aplicacin en consola es aquella que se ejecuta en una ventana
de MS-DOS, es decir, en la lnea de comandos. Utiliza un formato de
salida y entrada de datos en modo texto.
La clase Console: mediante esta clase se consigue mostrar informa-
cin en la pantalla, as como capturar la informacin que se introduce.
Los mtodos de la clase Console son de tipo Shared, esto signifca
que no es necesario crear un objeto a partir de la clase para invocar a
sus mtodos, sino que se indica el nombre de la clase seguido de un
punto y el nombre del mtodo.
Console.Write Console.WriteLine - Salida

Console.Read Console.ReadLine - Entrada

El mtodo WriteLine: se utiliza para mostrar texto en la consola, el
mtodo escribe en la pantalla el valor que le pasemos como parmetro.
El parmetro que recibe el mtodo puede ser una cadena de caracteres,
un nmero entero, una lnea en blanco.
Programa de Computacin, Diseo y Extensin
Algortmica
112
Trabajando en el modo consola
01. Cargar Visual Studio 2005.
a. Seleccione:


b. Se muestra la ventana donde deber seleccionar: Crear
proyecto.

Este mtodo aade automticamente el salto de carro al fnal de la
lnea, esto signifca que la siguiente llamada a Console.WriteLine()
escribe en la siguiente lnea.
El mtodo ReadLine(): se utiliza para leer la informacin que el
usuario introduce.
Cuando invocamos al mtodo Console.ReadLine() el sistema queda
en espera hasta que el usuario pulsa la tecla ENTER.
Si se asigna la llamada Console.ReadLine() a una variable se con-
sigue capturar el dato introducido por el usuario, para despus poder
operar con l.
Programa de Computacin, Diseo y Extensin
Algortmica
113
c. Seleccione el tipo de Proyecto: Visual Basic, luego Windows
y la Plantilla: Aplicacin de consola.
d. Luego ingrese el Nombre del proyecto y su ubicacin (donde
lo va a guardar).

e. En la Ventana de cdigo se muestra el Module1.

- Aplicacin 01: ingrese 2 nmeros, halle su suma o su resta, segn
la opcin seleccionada.
Module Module1
Sub Main()
Dim Numero1 As Integer
Dim Numero2 As Integer
Dim opcion As Integer
Console.Write("Introduzca el primer nmero: ") : Numero1 = Console.ReadLine()
Console.Write("Introduzca el segundo nmero: ") : Numero2 = Console.ReadLine()
Console.Write("Seleccione una opcin: ([1]Sumar | [2] Restar )")
opcion = Console.ReadLine()
If (opcion = 1) Then
Console.WriteLine("La suma de los numeros es: " & Numero1 + Numero2)
ElseIf (opcion = 2) Then
Console.WriteLine("La resta de los numeros es: " & Numero1 - Numero2)
Else
Console.WriteLine("Eligio una opcin Incorrecta")
End If
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
114

Siguiendo el fujo de la aplicacin: el usuario deber ingresar el valor de cada
nmero y luego seleccionar una de las 2 opciones: [1] Sumar o [2] Restar, luego del
cual se muestra el resultado de la operacin por pantalla.
Programa de Computacin, Diseo y Extensin
Algortmica
115
Problemas desarrollados
Estructuras secuenciales
01. Uso de Write, WriteLine y ReadLine().
Module Module1
Sub Main()

Console.Write("Hola ") 'Hola Mundo!
Console.WriteLine("Mundo!")
Console.WriteLine("What is your name: ") 'What is your
name:
Dim name As String = Console.ReadLine() 'George <-
Ingresarlo
Console.Write("Buenos Dias, ") 'Buenos Dias,
George!
Console.Write(name)
Console.WriteLine("!")
Console.Read()
End Sub
End Module

02. Ingreso de datos.
Module Module1
Sub Main()
Console.Write("Ingrese Nombre: ")
Dim Nom As String = Console.ReadLine()
Console.Write("Ingrese Precio :")
Dim Precio As Double = Console.ReadLine()
Console.Write("Ingrese Cantidad vendida :")
Dim CV As Integer = Console.ReadLine()
Console.WriteLine()
Console.Read()
End Sub
End Module
03. Ingrese la base y altura de un rectngulo, visualice su rea, permetro y diagonal.
Module Module1
Sub Main()
Dim b, h As Integer
Dim A, P, D As Double
Console.Write(" Ingrese la base : "): b = Console.ReadLine
Console.Write(" Ingrese la altura : ") : h = Console.ReadLine
A = b * h
P = 2 * (b + h)
D = (h ^ 2 + b ^ 2) ^ 0.5
Console.WriteLine("El Area es : " & A)
Console.WriteLine("El Perimetro es : " & P)
Console.WriteLine("La Diagonal es :" & Format(D, "###.00"))
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
116

04. Ingrese un nmero y visualice su cuadrado.
Module Module1
Sub Main()
'Declaracion de variables
Dim numero, r As Integer
'Inicio
Console.Write("Digite un numero ")
numero = Console.ReadLine
r = numero * numero
Console.WriteLine("El cuadrado es : " & r)
Console.ReadLine()
'Fin
End Sub
End Module


05. Ingrese el nombre de un artculo, precio y cantidad a comprar,
visualice su importe, descuento y neto a pagar. Descuento ser
8% del importe.
Module Module1
Sub Main()
'Declaracion de variables
Dim art As String
Dim cant As Integer
Dim pu, imp, dcto, np As Double
'Inicio
Console.Write("Digite el articulo :")
art = Console.ReadLine
Console.Write("Precio unitario :")
pu = Console.ReadLine
Console.Write("Cantidad a comprar :")
cant = Console.ReadLine
imp = pu * cant
dcto = imp * 0.08
np = imp - dcto
Console.WriteLine()
Console.WriteLine("Importe de la compra : " & imp)
Console.WriteLine("Descuento : " & dcto)
Console.WriteLine("Neto a pagar : " & np)
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
117

06. Ingrese el nombre y las 3 notas de un alumno, visualice su nombre
y el promedio de sus notas.
Module Module1
Sub Main()
Dim nom As String
Dim n1, n2, n3 As Integer
Dim prom As Double
Console.Write("Ingrese Nombre del Alumno : ") : nom = Console.ReadLine
Console.Write("Ingrese la primera nota : ") : n1 = Console.ReadLine
Console.Write("Ingrese la segunda nota : ") : n2 = Console.ReadLine
Console.Write("Ingrese la tercera nota : ") : n3 = Console.ReadLine
prom = (n1 + n2 + n3) / 3
Console.WriteLine(nom & " tu promedio es " & prom)
Console.ReadLine()
End Sub
End Module

07. Ingrese el nombre y sueldo de un trabajador, calcule y visualice su
descuento (9%), bonifcacin (15%) y su sueldo neto.
Module Module1
Sub Main()
Dim nom As String
Dim S, D, B, SN As Double
Console.Write("Ingrese el nombre del Trabajador ")
nom = Console.ReadLine
Console.Write("Ingrese el Sueldo del Trabajador : ")
S = Console.ReadLine
D = 0.09 * S
B = 0.15 * S
SN = S + B - D
Console.WriteLine("Descuento : " & D)
Console.WriteLine("Bonificacion : " & B)
Console.WriteLine("Sueldo Neto : " & SN)
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
118

08. Ingrese el nombre del Vendedor, su sueldo Bsico y el importe de
sus 3 ventas, calcule y visualice su comisin (12% de sus ventas),
sueldo fnal.
Module Module1
Sub Main()
Dim nom As String
Dim SB, V1, V2, V3, Comision, Sueldofinal As Double
Console.Write("Ingrese el nombre del Vendedor: ")
nom = Console.ReadLine
Console.Write("Ingrese su Sueldo Basico: "): SB =
Console.ReadLine
Console.Write("Importe de la Venta1 : "): V1 =
Console.ReadLine
Console.Write("Importe de la Venta2 : "): V2 =
Console.ReadLine
Console.Write("Importe de la Venta3 : "): V3 =
Console.ReadLine
Comision = 0.12 * (V1 + V2 + V3)
Sueldofinal = SB + Comision
Console.WriteLine("Comision por ventas : " & Comision)
Console.WriteLine("Sueldo Final : " & Sueldofinal)
Console.ReadLine()
End Sub
End Module

Estructuras condicionales
01. Ingrese un nmero, visualice el mensaje es par, impar o neutro.
Module Module1
Sub Main()
Dim n As Integer
Dim r As Char
Console.Write("Ingrese un numero:"):n = Console.ReadLine
If n = 0 Then
Console.WriteLine("El numero es Neutro")
ElseIf n Mod 2 = 0 Then
Console.WriteLine("El numero es Par")
Else
Console.WriteLine("El numero es Impar")
End If
Console.ReadLine()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
119
02. Ingrese el nombre, edad y sexo (V o D) de una persona, visualice
el mensaje: Varn mayor de edad, Varn menor de edad, Dama
mayor de edad o Dama menor de edad, segn sea el caso.
Sub Main()
Dim nomb As String
Dim ed As Integer
Dim sexo As Char
'Inicio
Console.Write("Ingrese su nombre : ") : nomb =
Console.ReadLine()
Console.Write("Ingrese su edad..: ") : ed = Console.ReadLine()
Console.Write("Ingrese su Sexo (V o D) : "): sexo =
Console.ReadLine()
If (sexo = "V") Then
If (ed > 17) Then
Console.WriteLine("Varon mayor de edad.")
Else
Console.WriteLine("Varon menor de edad.")
End If
Else
If (ed > 17) Then
Console.WriteLine("Dama mayor de edad.")
Else
Console.WriteLine("Dama menor de edad.")
End If
End If
Console.ReadLine()
End Sub
End Module


03. Ingrese 4 nmeros visualice el mayor de ellos.
Module Module1
Sub Main()
Dim n1, n2, n3, n4, mayor As Integer
Console.Write("Numero 1 :") : n1 = Console.ReadLine
Console.Write("Numero 2 :") : n2 = Console.ReadLine
Console.Write("Numero 3 :") : n3 = Console.ReadLine
Console.Write("Numero 4 :") : n4 = Console.ReadLine
mayor = n1
If n2 > mayor Then
mayor = n2
End If
If n3 > mayor Then
mayor = n3
End If
If n4 > mayor Then
mayor = n4
End If
Console.WriteLine("El mayor es " & mayor)
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
120

04. Ingrese el nombre y las cuatro notas de un alumno visualice su
nombre y promedio, considere para el clculo del promedio las 3
notas mas altas.
Module Module1
Sub Main()
Dim nom As String
Dim n1, n2, n3, n4 As Integer
Dim prom As Double
Console.Write("Nombre : ") : nom = Console.ReadLine()
Console.Write("Nota1 : ") : n1 = Console.ReadLine
Console.Write("Nota2 : ") : n2 = Console.ReadLine
Console.Write("Nota3 : ") : n3 = Console.ReadLine
Console.Write("Nota4 : ") : n4 = Console.ReadLine
If n1 < n2 And n1 < n3 And n1 < n4 Then
n1 = 0
ElseIf n2 < n1 And n2 < n3 And n2 < n4 Then
n2 = 0
ElseIf n3 < n1 And n3 < n2 And n3 < n4 Then
n3 = 0
Else
n4 = 0
End If
prom = (n1 + n2 + n3 + n4) / 3
Console.WriteLine(nom&"tu promedioes"&Format
(prom, "##.00"))
Console.ReadLine()
End Sub
End Module


05. Ingrese un nmero, visualice el mensaje: es neutro, es par +, es
par - , es impar +, es impar - , segn sea el caso.
Module Module1
Sub Main()
Dim n As Integer
Dim r As Char = ""
Do
Console.Clear()
Console.Write("Ingrese un Numero : ") : n =
Console.ReadLine
If n = 0 Then
Console.WriteLine(" Es Neutro ")
ElseIf n > 0 Then
If n Mod 2 = 0 Then
Console.WriteLine(" Es Par Positivo ")
Else
Console.WriteLine(" Es Impar Positivo")
End If
Else
If n Mod 2 = 0 Then
Console.WriteLine(" Es Par Negativo")
Else
Console.WriteLine(" Es Impar Negativo")
End If
End If
Console.Write("Desea continuar [s/n] : ")
r = Console.ReadLine()
Loop While r = "s"
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
121
Module Module1
Sub Main()
Dim n As Integer
Dim r As Char = ""
Do
Console.Clear()
Console.Write("Ingrese un Numero : ") : n =
Console.ReadLine
If n = 0 Then
Console.WriteLine(" Es Neutro ")
ElseIf n > 0 Then
If n Mod 2 = 0 Then
Console.WriteLine(" Es Par Positivo ")
Else
Console.WriteLine(" Es Impar Positivo")
End If
Else
If n Mod 2 = 0 Then
Console.WriteLine(" Es Par Negativo")
Else
Console.WriteLine(" Es Impar Negativo")
End If
End If
Console.Write("Desea continuar [s/n] : ")
r = Console.ReadLine()
Loop While r = "s"
End Sub
End Module


06. Juego del martillo, papel y tijera.
Module Module1
Sub Main()
Dim juego1, juego2, nom1, nom2 As String

Console.WriteLine("=============================================")
Console.WriteLine(" Juego del Martillo, Papel y Tijera
")

Console.WriteLine("=============================================")
Console.Write("Nombre del 1 jugador: ") : nom1 =
Console.ReadLine
Console.Write("Nombre del 2 jugador: ") : nom2 =
Console.ReadLine

Console.WriteLine("=============================================")
Console.WriteLine(" comienza el juego
")

Console.WriteLine("=============================================")
Console.Write("Escoge " & nom1 & " (martillo)(papel)(tijera):
")
juego1 = Console.ReadLine
Console.Write("Escoge " & nom2 & " (martillo)(papel)(tijera):
")
juego2 = Console.ReadLine

Console.WriteLine("=============================================")
Console.WriteLine(" RESPUESTA
")

Console.WriteLine("=============================================")
If juego1 = "papel" And juego2 = "martillo" Then
Console.Write("Papel cubre Martillo gana " & nom1)
ElseIf juego2 = "papel" And juego1 = "martillo" Then
Console.Write("Papel cubre Martillo gana " & nom2)
End If
If juego1 = "tijera" And juego2 = "papel" Then
Console.Write("Tijera corta Papel gana " & nom1)
ElseIf juego2 = "tijera" And juego1 = "papel" Then
Console.Write("Tijera corta Papel gana " & nom2)
End If
If juego1 = "martillo" And juego2 = "tijera" Then
Console.Write("Martillo Rompe a tijera gana " & nom1)
ElseIf juego2 = "martillo" And juego1 = "tijera" Then
Console.Write("Martillo Rompe a tijera gana " & nom2)
End If
If juego1 = "martillo" And juego2 = "papel" Then
Console.Write("Papel envuelve a Martillo gana " & nom1)
ElseIf juego2 = "martillo" And juego1 = "papel" Then
Console.Write("Papel envuelve a Martillo gana " & nom2)
End If
If juego1 = juego2 Then
Console.Write(" Empate
")
End If
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
122
Module Module1
Sub Main()
Dim juego1, juego2, nom1, nom2 As String

Console.WriteLine("=============================================")
Console.WriteLine(" Juego del Martillo, Papel y Tijera
")

Console.WriteLine("=============================================")
Console.Write("Nombre del 1 jugador: ") : nom1 =
Console.ReadLine
Console.Write("Nombre del 2 jugador: ") : nom2 =
Console.ReadLine

Console.WriteLine("=============================================")
Console.WriteLine(" comienza el juego
")

Console.WriteLine("=============================================")
Console.Write("Escoge " & nom1 & " (martillo)(papel)(tijera):
")
juego1 = Console.ReadLine
Console.Write("Escoge " & nom2 & " (martillo)(papel)(tijera):
")
juego2 = Console.ReadLine

Console.WriteLine("=============================================")
Console.WriteLine(" RESPUESTA
")

Console.WriteLine("=============================================")
If juego1 = "papel" And juego2 = "martillo" Then
Console.Write("Papel cubre Martillo gana " & nom1)
ElseIf juego2 = "papel" And juego1 = "martillo" Then
Console.Write("Papel cubre Martillo gana " & nom2)
End If
If juego1 = "tijera" And juego2 = "papel" Then
Console.Write("Tijera corta Papel gana " & nom1)
ElseIf juego2 = "tijera" And juego1 = "papel" Then
Console.Write("Tijera corta Papel gana " & nom2)
End If
If juego1 = "martillo" And juego2 = "tijera" Then
Console.Write("Martillo Rompe a tijera gana " & nom1)
ElseIf juego2 = "martillo" And juego1 = "tijera" Then
Console.Write("Martillo Rompe a tijera gana " & nom2)
End If
If juego1 = "martillo" And juego2 = "papel" Then
Console.Write("Papel envuelve a Martillo gana " & nom1)
ElseIf juego2 = "martillo" And juego1 = "papel" Then
Console.Write("Papel envuelve a Martillo gana " & nom2)
End If
If juego1 = juego2 Then
Console.Write(" Empate
")
End If
Console.ReadLine()
End Sub
End Module


Estructuras selectivas
01. Ingresar un nmero del 1 al 6, visualice el nombre del nmero.
Module Module1
Sub Main()
Dim n As Integer
Console.Write("Ingrese un nmero del 1-6:")
n = Console.ReadLine
Select Case n
Case 1 : Console.WriteLine("UNO")
Case 2 : Console.WriteLine("DOS")
Case 3 : Console.WriteLine("TRES")
Case 4 : Console.WriteLine("CUATRO")
Case 5 : Console.WriteLine("CINCO")
Case 6 : Console.WriteLine("SEIS")
Case Else
Console.WriteLine("Error!!! ingrese de 1 a 6")
End Select
Console.Read()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
123
02. Otra forma de solucin de problema anterior.
Module Module1
Sub Main()
Dim n As Integer
Dim r As String
Console.Write("ingrese un numero del 1 al 6 : ")
n = Console.ReadLine
Select Case n
Case 1 : r = "UNO"
Case 2 : r = "DOS"
Case 3 : r = "TRES"
Case 4 : r = "CUATRO"
Case 5 : r = "CINCO"
Case 6 : r = "SEIS"
End Select
Console.Write("Ingreso " & r)
Console.ReadLine()
End Sub
End Module


03. Ingrese el nombre y puntaje obtenido por un postulante e indique
en que facultad ingreso, y si no ingreso cuantos puntos le falto
para ingresar. Puntajes: 70 a 89: Mecnica, 90 a 109: Electrnica,
110 a 149: Sistemas y mayor o igual a 150 Medicina.
Module Module4
Sub main()
Dim nombre As String
Dim puntaje, falta As Integer
Console.Write("Ingrese Nombre del estudiante:"):nombre =
Console.ReadLine
Console.Write("Ingrese puntaje obtenido:"):puntaje =
Console.ReadLine
Select Case puntaje
Case 0 To 69
falta = 70 - puntaje
Console.WriteLine("NO INGRESO LE FALTO=" & falta)
Case 70 To 89
Console.WriteLine("INGRESO A MECANICA")
Case 90 To 109
Console.WriteLine("INGRESO A ELECTRONICA")
Case 110 To 149
Console.WriteLine("INGRESO A SISTEMAS")
Case puntaje >= 150
Console.WriteLine("INGRESO A MEDICINA")
End Select
End Sub
End Module


Programa de Computacin, Diseo y Extensin
Algortmica
124
04. Ingrese el cdigo, nombre, ciclo y pensin de un estudiante, de-
termine el incremento y su nuevo pago. El incremento es sobre la
pensin y de acuerdo al ciclo, 15%, 12%, 9%, 7%, 5%, y 2% del
primer al sexto ciclo respectivamente.
Module Module3
Sub Main()
Dim Nombre, Codigo As String
Dim Ciclo As Integer
Dim pension, inc, np As Double
Console.Write("Ingrese Nombre del alumno: ") : Nombre =
Console.ReadLine
Console.Write("Ingrese Cdigo: ") : Codigo = Console.ReadLine
Console.Write("Ingrese Ciclo: ") : Ciclo = Console.ReadLine
Console.Write("Ingrese Pensin: "): pension = Console.ReadLine
Select Case Ciclo
Case 1 : inc = 0.15 * pension
Case 2 : inc = 0.12 * pension
Case 3 : inc = 0.09 * pension
Case 4 : inc = 0.07 * pension
Case 5 : inc = 0.05 * pension
Case 6 : inc = 0.02 * pension
End Select
np = pension + inc
Console.WriteLine("Incremento=" & inc)
Console.WriteLine("Nueva pension=" & np)
Console.Read()
End Sub
End Module

05. Ingrese un nmero de 3 cifras visualice dicho nmero en romanos.
Module Module1
Sub Main()
Dim n As Integer
Dim p, s, t As Integer
Dim r1, r2, r3 As String
Console.Write(" Ingrese un numero de 3 cifras : "):n=
Console.ReadLine
If n > 99 And n < 1000 Then
p = n \ 100
s = (n Mod 100) \ 10
t = (n Mod 100) Mod 10
Select Case t
Case 0 : r3 = ""
Case 1 : r3 = "I"
Case 2 : r3 = "II"
Case 3 : r3 = "III"
Case 4 : r3 = "IV"
Case 5 : r3 = "V"
Case 6 : r3 = "VI"
Case 7 : r3 = "VII"
Case 8 : r3 = "VIII"
Case 9 : r3 = "IX"
End Select
Select Case s
Case 0 : r2 = ""
Case 1 : r2 = "X"
Case 2 : r2 = "XX"
Case 3 : r2 = "XXX"
Case 4 : r2 = "XL"
Case 5 : r2 = "L"
Case 6 : r2 = "LX"
Case 7 : r2 = "LXX"
Case 8 : r2 = "LXXX"
Case 9 : r2 = "XC"
End Select
Select Case p
Case 1 : r1 = "C"
Case 2 : r1 = "CC"
Case 3 : r1 = "CCC"
Case 4 : r1 = "CD"
Case 5 : r1 = "D"
Case 6 : r1 = "DC"
Case 7 : r1 = "DCC"
Case 8 : r1 = "DCCC"
Case 9 : r1 = "CM"
End Select
Console.WriteLine("El numero : " & n & " en Romanos es " & r1 & r2
& r3)
Else
Console.WriteLine(" El numero ingresado no es de tres cifras ")
End If
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
125
Module Module1
Sub Main()
Dim n As Integer
Dim p, s, t As Integer
Dim r1, r2, r3 As String
Console.Write(" Ingrese un numero de 3 cifras : "):n=
Console.ReadLine
If n > 99 And n < 1000 Then
p = n \ 100
s = (n Mod 100) \ 10
t = (n Mod 100) Mod 10
Select Case t
Case 0 : r3 = ""
Case 1 : r3 = "I"
Case 2 : r3 = "II"
Case 3 : r3 = "III"
Case 4 : r3 = "IV"
Case 5 : r3 = "V"
Case 6 : r3 = "VI"
Case 7 : r3 = "VII"
Case 8 : r3 = "VIII"
Case 9 : r3 = "IX"
End Select
Select Case s
Case 0 : r2 = ""
Case 1 : r2 = "X"
Case 2 : r2 = "XX"
Case 3 : r2 = "XXX"
Case 4 : r2 = "XL"
Case 5 : r2 = "L"
Case 6 : r2 = "LX"
Case 7 : r2 = "LXX"
Case 8 : r2 = "LXXX"
Case 9 : r2 = "XC"
End Select
Select Case p
Case 1 : r1 = "C"
Case 2 : r1 = "CC"
Case 3 : r1 = "CCC"
Case 4 : r1 = "CD"
Case 5 : r1 = "D"
Case 6 : r1 = "DC"
Case 7 : r1 = "DCC"
Case 8 : r1 = "DCCC"
Case 9 : r1 = "CM"
End Select
Console.WriteLine("El numero : " & n & " en Romanos es " & r1 & r2
& r3)
Else
Console.WriteLine(" El numero ingresado no es de tres cifras ")
End If
Console.ReadLine()
End Sub
End Module


Estructuras repetitivas
For - Next
01. Genere 10 nmeros aleatorios y visualice el mayor de ellos.
Module Module1
Dim i, num As Integer
Dim M As Integer
Sub Main()
M = 0
For i = 1 To 10
num = CInt(Rnd() * 100)
Console.WriteLine(num)
If num > M Then
M = num
End If
Next
Console.WriteLine("mayor es " & M)
Console.ReadLine()
End Sub
End Module


Programa de Computacin, Diseo y Extensin
Algortmica
126
02. Visualizar los nmeros perfectos comprendidos del 1 al 1000. Un
nmero es perfecto cuando la suma de sus divisores menores al
nmero nos da el mismo nmero.
Module Module1
Sub Main()
Dim sd, i, K As Integer
For K = 1 To 1000
sd = 0
For i = 1 To K - 1
If K Mod i = 0 Then
sd = sd + i
End If
Next
If sd = K Then
Console.WriteLine("El numero Perfecto es " & K)
End If
Next K
Console.ReadLine()
End Sub
End Module


03. Ingrese un nmero y calcule y visualice su factorial. El factorial de
un nmero es igual al producto de todos los nmeros del 1 hasta
el nmero. Factorial de N = 1*2*3*4*N
Module Module1
Sub Main()
Dim n, i As Integer
Dim f As Long
Console.Clear()
Console.Write("Ingrese un Numero : ")
n = Console.ReadLine
If n = 0 Then
f = 1
Else
f = 1
For i = 1 To n
f = f * i
Next
End If
Console.WriteLine("El Factorial de " & n & " es " & f)
Console.WriteLine("================================")
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
127
04. Hallar la potencia de un nmero, para esto ingrese el nmero y su
exponente.
Module Module1
Sub Main()
Dim R As String = "s"
Dim n, x, P, i As Integer
Do
Console.Clear()
Console.Write("Ingrese Numero : "):n = Console.ReadLine
Console.Write("Ingrese Exponente : "): x = Console.ReadLine
If n = 0 Then
P = 1
Else
P = 1
For i = 1 To x
P = P * n
Next
End If
Console.WriteLine("La Potencia de " & n & " ^ " & x & " = " &
P)
Console.WriteLine("================================")
Console.Write("Desea realizar otro ingreso [s/n] ")
R = Console.ReadLine()
Loop While R = "s"
End Sub

End Module

05. Ingrese un nmero y determine si es o no es primo.
Module Module1
Sub Main()
Dim n, i, d As Integer
Console.Write("Ingrese un Numero : ")
n = Console.ReadLine
For i = 1 To n
If n Mod i = 0 Then
d = d + 1
End If
Next
If d = 2 Then
Console.WriteLine("El numero " & n & " ES PRIMO")
Else
Console.WriteLine("El numero " & n & " NO ES PRIMO")
End If
Console.ReadLine()
End Sub
End Module



Programa de Computacin, Diseo y Extensin
Algortmica
128
Do While y Do Until
01. Generar nmeros del 1 al 10 y mostrar sus cuadrados.
Module Module1
Sub Main()
Dim N As Integer = 1
Console.WriteLine("Generar numeros del 1 al 10 y sus
cuadrados")
Console.WriteLine("Numero , CUADRADO")
Console.WriteLine("----------------")
Do While (N <= 10)
Console.WriteLine(N & " " & N * N)
N += 1
Loop
Console.ReadLine()
End sub
End module


02. Generar la serie de Fibonacci (1 1 2 3 5 8 13 21 34 55 89 ...) de
los trminos menores a 100.
Module module1
Sub main
Console.WriteLine("USO DE LA INSTRUCCION : DO - LOOP UNTIL")
Console.WriteLine("SERIE DE FIBONACCI")
Dim A As Integer = 0, B As Integer = 1
Do
Console.Write("{0},", A)
A = A + B
B = A - B
Loop Until A > 100
Console.Read()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
129
03. Ingrese un nmero y visualice su factorial.
Module Module1
Sub Main()
Dim n, num As Integer
Dim fac As Double
Dim Res As Char
Do
Console.Clear()
Console.Write("Ingrese un numero : ") : num =
Console.ReadLine
If num = 0 Then
fac = 1
Else
n = 0 : fac = 1
Do While n < num
n = n + 1
fac = fac * n
Loop
End If
Console.WriteLine("El Factorial de " & num & " es " & fac)
Console.Write("Desea Ingresar otro numero [s/n] ")
Res = Console.ReadLine()
Loop While Res = "s"
End Sub
End Module


04. Hallar la potencia de un nmero, para esto ingrese la base y el
exponente.
Module Module1
Sub Main()
Dim num, exp, n As Integer
Dim pot As Double
Dim res As Char
Do
Console.Clear()
Console.Write("Ingrese el numero : ") : num = Console.ReadLine
Console.Write("Ingrese el exponente : ") : exp =
Console.ReadLine
If exp = 0 Then
pot = 1
Else
pot = 1 : n = 0
Do While n < exp
pot = pot * num
n = n + 1
Loop
End If
Console.WriteLine("La potencia de"& num& "^"&exp &" = " & pot)
Console.Write("Desea realizar otro calculo [s/n] ")
res = Console.ReadLine()
Loop While res = "s"
End Sub
End Module


Programa de Computacin, Diseo y Extensin
Algortmica
130
05. Ingresar 2 nmeros y visualizar su mximo comn divisor.
Module Module1
Sub Main()
Dim n1, n2, mcd As Integer
Dim res As Char
Do
Console.Clear()
Console.Write("Ingrese primer numero : ") : n1 =
Console.ReadLine
Console.Write("Ingrese segundo numero : ") : n2 =
Console.ReadLine
Do
mcd = n1 Mod n2
n1 = n2
n2 = mcd
Loop Until mcd = 0
Console.WriteLine("El Maximo Comun Divisor es " & n1)
Console.Write("Desea realizar otro ingreso [s/n] ")
res = Console.ReadLine()
Loop While res = "s"
End Sub
End Module


Do Until
06. Ingresar un nmero y muestre la cantidad de cifras que tiene el
nmero ingresado.
Module Module1
Sub main()
Dim N As Integer
Dim res As String
Do
Console.Clear()
Console.Write("Ingrese Numero : ")
N = Console.ReadLine
Dim Cont As Integer = 0
Dim r As Integer
Do While N > 0
r = N Mod 10
N = N \ 10
Cont = Cont + 1
Loop
Console.WriteLine("La cantidad de cifras es " & Cont)
Console.Write("Desea continuar [s/n] ? ")
res = Console.ReadLine
Loop Until res = "n"
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
131
07. Ingrese el dividendo y divisor de una divisin, visualice el cociente
y residuo, no utilice el operador de divisin, ni el mod.
Module Module1
Sub Main()
Dim Dividendo, divisor, res, q As Integer
Dim x As Char
Do
Console.Clear()
Console.Write("Ingrese Dividendo : ") : Dividendo =
Console.ReadLine
Console.Write("Ingrese Divisor : ") : divisor =
Console.ReadLine
q = 0
Do
res = Dividendo - divisor
q = q + 1
Dividendo = res
Loop Until res < divisor
Console.WriteLine("Cociente : " & q)
Console.WriteLine("Residuo : " & res)
Console.Write("Desea continuar [s/n] ") : x =
Console.ReadLine()
Loop Until x <> "s"
End Sub
End Module

08. Ingrese un nmero, visualcelo con las cifras invertidas.
Module Module1
Sub Main()
Dim n, inv, q, r As Integer
Console.Write("Ingrese un Numero : ") : n = Console.ReadLine
inv = 0
Do
q = n \ 10
r = n Mod 10
inv = inv * 10 + r
n = q
Loop Until q = 0
Console.WriteLine(inv)
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
132
Funciones: Function
01. Utilizando una funcin de nombre potencia, hallar la siguiente
suma:
S= X^
1
+ X^
2
+ X^
3
+ X^
4
X^
x
Module Module1
Sub Main()
Dim r As Char
r = ""
Do
Console.Clear()
Dim X, N, k As Integer
Dim suma As Integer = 0
Console.Write("Ingrese la Base : ") : X = Console.ReadLine
Console.Write("Ingrese El Exponente:") : N = Console.ReadLine
For k = 1 To N
suma = suma + Potencia(X, k)
Console.WriteLine("La Potencia de " & X & "^" & k & "=" & Potencia(X, k))
Next
Console.WriteLine("==========================)
Console.WriteLine("La suma es : " & suma)
Console.WriteLine("==========================)
Console.Write("Desea continuar [s/n] ") : r = Console.ReadLine
Loop While r = "s"
End Sub

Function Potencia(ByVal base As Integer, ByVal exp As Integer) As Long
Dim i As Integer
Dim P As Long
If exp = 0 Then
P = 1
Else
P = 1
For i = 1 To exp
P = P * base
Next
End If
Return (P)
End Function
End Module


Programa de Computacin, Diseo y Extensin
Algortmica
133
02. Utilizando una funcin de nombre potencia, hallar la siguiente suma:
S= X^1 - X^2 + X^3 - X^4 .. +/- X^N
Module Module1
Sub Main()
Dim r As Char
r = ""
Do
Console.Clear()
Dim X, k As Integer
Dim suma As Integer = 0
Console.Write("Ingrese la Base : ") : X = Console.ReadLine
For k = 1 To X
suma = suma + (-1) ^ (k + 1) * Potencia(k, k)
Console.WriteLine("La Potencia de " & k & "^" & k &
"=" & (-1) ^ (k + 1) * Potencia(k, k))
Next
Console.WriteLine("La suma es : " & suma)
Console.Write("Desea continuar [s/n] ") : r =
Console.ReadLine
Loop While r = "s"
End Sub
Function Potencia(ByVal base As Integer, ByVal exp As Integer) As
Long
Dim i As Integer
Dim P As Long
If exp = 0 Then
P = 1
Else
P = 1
For i = 1 To exp
P = P * base
Next
End If
Return (P)
End Function
End Module


Procedimiento: SUB
01. Procedimiento que imprime un texto un nmero de veces especifcado.
Module Module1
Sub Main()
Dim CAD As String
Dim NUM As Integer
Console.Write("Ingrese un Texto : ") : CAD = Console.ReadLine
Console.Write("Ingrese numero de veces: ") : NUM =
Console.ReadLine
imprimetexto(CAD, NUM)
Console.ReadLine()
End Sub
Sub imprimetexto(ByVal texto, ByVal n)
Dim i As Integer
For i = 1 To n
Console.WriteLine(i & " ) " & texto)
Next i
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
134
02. Ingrese 3 nmeros y ordenelos ascendentemente.
Module Module1
Dim N1, N2, N3, x, y, z As Integer
Sub Main()
Console.Write("Ingrese Numero1 : ") : N1 = Console.ReadLine
Console.Write("Ingrese Numero2 : ") : N2 = Console.ReadLine
Console.Write("Ingrese Numero3 : ") : N3 = Console.ReadLine
Call ordenaascendente(N1, N2, N3)
Console.Write("Ascendente : " & x & " " & y & " " & z)
Console.ReadLine()
End Sub
Sub ordenaascendente(ByVal a, ByVal b, ByVal c)
If a > b And a > c Then
If b > c Then
x = c : y = b : z = a
Else
x = b : y = c : z = a
End If
ElseIf b > a And b > c Then
If a > c Then
x = c : y = a : z = b
Else
x = a : y = c : z = b
End If
ElseIf c > a And c > b Then
If a > b Then
x = b : y = a : z = c
Else
x = a : y = b : z = c
End If
End If
End Sub
End Module


03. Genere la serie de Fibonacci, para esto ingrese el nmero de ter-
minos a visualizar.
Module Module1
Sub Main()
Dim num As Integer
Console.Write("Serie de Fibonacci ")
Console.Write("Ingrese Numero de terminos: ")
num = Console.ReadLine
Fibonacci(num)
Console.ReadLine()
End Sub
Sub Fibonacci(ByVal n)
Dim a, b, c, i As Integer
a = 0 : b = 1 : c = 0
For i = 1 To n
a = a + b
b = a - b
Console.Write(a & " ")
Next
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
135
Arrays (Arreglos)
Arreglos Unidimensionales (Vectores)
Module Module1
Sub Main()
Dim V(9) As Integer
Dim n, i As Integer
Console.WriteLine("Generando 10 numeros aleatorios en el rango de 0 a
100")
For i = 0 To 9
n = Rnd() * 100
V(i) = n
Console.WriteLine(i + 1 & ") " & V(i))
Next
Console.WriteLine("Mostrando los pares")
For i = 0 To 9
If V(i) Mod 2 = 0 Then
Console.WriteLine(i + 1 & ") " & V(i))
End If
Next
Console.WriteLine("Mostrando los Impares")
For i = 0 To 9
If V(i) Mod 2 <> 0 Then
Console.WriteLine(i + 1 & ") " & V(i))
End If
Next
Console.ReadLine()
End Sub
End Module

01.
Programa de Computacin, Diseo y Extensin
Algortmica
136
02. Genere 20 nmeros del 0 al 100 y visualice todos los primos.
Module Module1
Sub Main()
Dim V(19) As Integer
Dim n, i, d As Integer
Console.WriteLine("Generando 20 numeros en el rango de 0 a
1000")
For i = 0 To 19
n = Rnd() * 100
V(i) = n
Console.WriteLine(i + 1 & ") " & V(i))
Next
Console.WriteLine("Mostrando los Primos")
For i = 0 To 19
d = 0
For n = 1 To V(i)
If V(i) Mod n = 0 Then
d = d + 1
End If
Next
If d = 2 Then
Console.WriteLine(i + 1 & ") " & V(i))
End If
Next
Console.ReadLine()
End Sub
End Module


Programa de Computacin, Diseo y Extensin
Algortmica
137
03. Genere 20 nmeros aleatorios del 0 al 100 y ordnelos ascenden-
temente.
Module Module1
Sub Main()
Dim V(19) As Integer
Dim n, i, j, aux As Integer
Console.WriteLine("Genera 20 numeros")
For i = 0 To 19
n = Rnd() * 100
V(i) = n
Console.WriteLine(i + 1 & ") " & V(i))
Next
' Ordenando ascendentemente
For i = 0 To 18
For j = i To 19
If V(i) > V(j) Then
aux = V(i)
V(i) = V(j)
V(j) = aux
End If
Next j
Next i
Console.WriteLine("Ordenado ascendentemente")
For i = 0 To 19
Console.WriteLine(i + 1 & ") " & V(i))
Next i
Console.ReadLine()
End Sub
End Module

Programa de Computacin, Diseo y Extensin
Algortmica
138
Matrices
01. Se tiene una matriz cuadrada de orden 4, cargarlo con valores
numricos enteros, visualice lo siguiente:
a. Suma de los valores de cada fla.
b. Suma de los valores de cada columna.
c. Suma de los valores de su diagonal principal.
d. Suma de los valores de su diagonal secundaria.
e. Suma total de sus valores.
Module Module1
Dim M(3, 3) As Integer
Dim i, j As Integer
Dim sum, sum1, sum2, sumF, sumC As Integer

Sub Main()
'Cargando la Matriz
Console.WriteLine("------Cargando la Matriz --------------")
Console.WriteLine("--------------------------")
sum = 0 : sum1 = 0
For i = 0 To M.GetUpperBound(0)
For j = 0 To M.GetUpperBound(1)
M(i, j) = CInt(Rnd() * 10 + 1)
sum = sum + M(i, j) 'Acumulando los valores
Console.Write(M(i, j) & " ")
Next j
Console.ReadLine()
Console.WriteLine("----------------------")
Next i
Console.WriteLine("Suma de todos los valores de la Matriz: " &
sum)
Call DiagonalPrincipal()
Console.WriteLine("Suma de la Diagonal Principal: " & sum1)
Call DiagonalSecundaria()
Console.WriteLine("Suma de la Diagonal Secundaria: " & sum2)
Call SumaFilas(0) : Console.WriteLine("Suma Primera Fila: " &
sumF)
Call SumaFilas(1) : Console.WriteLine("Suma Segunda Fila: " &
sumF)
Call SumaFilas(2) : Console.WriteLine("Suma Tercera Fila: " &
sumF)
Call SumaFilas(3) : Console.WriteLine("Suma Cuarta Fila: " &
sumF)
SumaColumnas(0) : Console.WriteLine("Suma Primera Columna: " &
sumC)
SumaColumnas(1) : Console.WriteLine("Suma Segunda Columna: " &
sumC)
SumaColumnas(2) : Console.WriteLine("Suma Tercera Columna: " &
sumC)
SumaColumnas(3) : Console.WriteLine("Suma Cuarta Columna: " &
sumC)
Console.Read()
End Sub
Sub DiagonalPrincipal()
For i = 0 To M.GetUpperBound(0)
sum1 = sum1 + M(i, i)
Next
End Sub
Sub DiagonalSecundaria()
sum2 = 0
For i = 0 To M.GetUpperBound(0)
For j = 0 To M.GetUpperBound(1)
If i + j = 4 Then
sum2 = sum2 + M(i, j)
End If
Next
Next
End Sub
Sub SumaFilas(ByVal i)
sumF = 0
For j = 0 To M.GetUpperBound(0)
sumF = sumF + M(i, j)
Next
End Sub
Sub SumaColumnas(ByVal j)
sumC = 0
For i = 0 To M.GetUpperBound(0)
sumC = sumC + M(i, j)
Next
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
139
Module Module1
Dim M(3, 3) As Integer
Dim i, j As Integer
Dim sum, sum1, sum2, sumF, sumC As Integer

Sub Main()
'Cargando la Matriz
Console.WriteLine("------Cargando la Matriz --------------")
Console.WriteLine("--------------------------")
sum = 0 : sum1 = 0
For i = 0 To M.GetUpperBound(0)
For j = 0 To M.GetUpperBound(1)
M(i, j) = CInt(Rnd() * 10 + 1)
sum = sum + M(i, j) 'Acumulando los valores
Console.Write(M(i, j) & " ")
Next j
Console.ReadLine()
Console.WriteLine("----------------------")
Next i
Console.WriteLine("Suma de todos los valores de la Matriz: " &
sum)
Call DiagonalPrincipal()
Console.WriteLine("Suma de la Diagonal Principal: " & sum1)
Call DiagonalSecundaria()
Console.WriteLine("Suma de la Diagonal Secundaria: " & sum2)
Call SumaFilas(0) : Console.WriteLine("Suma Primera Fila: " &
sumF)
Call SumaFilas(1) : Console.WriteLine("Suma Segunda Fila: " &
sumF)
Call SumaFilas(2) : Console.WriteLine("Suma Tercera Fila: " &
sumF)
Call SumaFilas(3) : Console.WriteLine("Suma Cuarta Fila: " &
sumF)
SumaColumnas(0) : Console.WriteLine("Suma Primera Columna: " &
sumC)
SumaColumnas(1) : Console.WriteLine("Suma Segunda Columna: " &
sumC)
SumaColumnas(2) : Console.WriteLine("Suma Tercera Columna: " &
sumC)
SumaColumnas(3) : Console.WriteLine("Suma Cuarta Columna: " &
sumC)
Console.Read()
End Sub
Sub DiagonalPrincipal()
For i = 0 To M.GetUpperBound(0)
sum1 = sum1 + M(i, i)
Next
End Sub
Sub DiagonalSecundaria()
sum2 = 0
For i = 0 To M.GetUpperBound(0)
For j = 0 To M.GetUpperBound(1)
If i + j = 4 Then
sum2 = sum2 + M(i, j)
End If
Next
Next
End Sub
Sub SumaFilas(ByVal i)
sumF = 0
For j = 0 To M.GetUpperBound(0)
sumF = sumF + M(i, j)
Next
End Sub
Sub SumaColumnas(ByVal j)
sumC = 0
For i = 0 To M.GetUpperBound(0)
sumC = sumC + M(i, j)
Next
End Sub
End Module

Ejercicios con clases
01.
Module Module1
' Clase: es una plantilla a partir del cual se crean los objetos
'CLASS : permite crear una clase asi como la definicion de sus
variables,
' propiedades, eventos y metodos
' creamos una clase y declaramos 4 campos (variables publicas)
Public Class Persona
Public Apellidos As String
Public Nombres As String
Public FechaNac As Date
Public Sexo As String
End Class
Sub Main()
' Dim es utilizado a nivel de clase para declarar y asignar
'espacios de almacenamiento para las variables
Dim cPersona As Persona
'New : permite crear una nueva instancia del objeto,debemos
especificar
'una clase definida
cPersona = New Persona
'Cuando se ejecuta la instruccion,esta llama al constructor de
la clase
'especificada y le pasa los argumentos que se le haya
proporcionado
'Asignamos valores a la clase Persona
With cPersona
.Apellidos = "Flores Casas"
.Nombres = "Juan"
.FechaNac = "23/11/1980"
.Sexo = "Masculino"
'visualizando los valores de los miembros de la clase
Console.WriteLine("Apellidos : " + .Apellidos)
Console.WriteLine("Nombres : " + .Nombres)
Console.WriteLine("Fecha Nacimiento : " + .FechaNac)
Console.WriteLine("Sexo : " + .Sexo)
End With
Console.ReadLine()
End Sub

End Module


Programa de Computacin, Diseo y Extensin
Algortmica
140
02.
Module Module1
Class Persona
Public apellidos As String
Public nombres As String
Public fechanac As Date
Public sexo As String
Public Function Edad() As Integer
Return Year(Now) - Year(fechanac)
End Function
End Class
Sub Main()
'Dim cpersona As Persona
'cpersona = New Persona
Dim cpersona As New Persona
With cpersona
.apellidos = "Rios Nicho"
.nombres = "Fernando"
.fechanac = "12/10/1990"
.sexo = "Masculino"
Console.WriteLine("Nombre y Apellido: " & .nombres + " " +
.apellidos)
Console.WriteLine("Fecha Nacimiento: " & .fechanac.ToString + " ")
Console.WriteLine("Sexo: " & .sexo)
Console.WriteLine("Edad:" + .Edad.ToString)
End With
Console.ReadLine()
End Sub

03.
Module Module1
Public Class Productos
Public Codigo As String
Public Nombre As String
Public Precio As Single
Public Cantidad As Integer
Function calculo() As Single
Return (Precio * Cantidad)
End Function
End Class
Sub Main()
Dim cProd As New Productos
With cProd
.Codigo = "12345"
.Nombre = "Arroz"
.Precio = 50
.Cantidad = 100
Console.WriteLine("Codigo :" + .Codigo)
Console.WriteLine("Nombre :" + .Nombre)
Console.WriteLine("Precio :" + .Precio.ToString)
Console.WriteLine("Cantidad :" + .Cantidad.ToString)
Console.WriteLine("Total :" + .calculo.ToString)
End With
Console.ReadLine()
End Sub

End Module

Programa de Computacin, Diseo y Extensin
Algortmica
141
04. Module Module1
Sub main()
Dim s As String
Dim num1, num2 As Integer
Console.Write("Ingrese signo de la operacion a realizar: [+ ,- ,* ,/
]")
s = Console.ReadLine
Console.Write("Ingrese primer numero :") : num1 =
Console.ReadLine
Console.Write("Ingrese segundo numero :") : num2 =
Console.ReadLine
Dim x As New operaciones
x.n1 = num1
x.n2 = num2
Console.WriteLine("El resultado de su operacion es: " &
x.operar(s))
Console.ReadLine()
End Sub
End Module

Public Class operaciones
Public n1 As Integer
Public n2 As Integer
Function operar(ByVal signo As String) As String
Select Case signo
Case "+" : operar = n1 + n2
Case "-" : operar = n1 - n2
Case "*" : operar = n1 * n2
Case "/" : operar = n1 / n2
Case Else : operar = 0
End Select
End Function
End Class

05. Module Module1
'CLASS :declara el nombre de una clase
Public Class Persona
' Definimos los miembros de la clase (Campos: variables Publicas}
Public ApPaterno As String
Public Nombre As String
End Class
Sub Main()
'Dim : permite asignar espacio de almacenamiento para variables
Dim CPersona As Persona
'New : crea una nueva instancia del objeto a partir de la clase
CPersona = New Persona
'Asignando valores a los miembros de la clase
With CPersona
Console.Write("Nombre de la persona: ") : .Nombre = Console.ReadLine
Console.Write("Apellido de la persona: "):.ApPaterno= Console.ReadLine
'visualizando los valores de los miembros de la clase
Console.WriteLine("------------------------------------------------")
Console.WriteLine("{0}{1}", .Nombre, .ApPaterno)
Console.WriteLine("------------------------------------------------")
Console.WriteLine("{0,10}{1,15}", .Nombre, .ApPaterno)
Console.WriteLine("------------------------------------------------")
Console.WriteLine("{0,-10}{1,-15}", .Nombre, .ApPaterno)
End With
Console.WriteLine("------------------------------------------------")
Console.WriteLine("Datos del Hijo")
Dim Chijo As New HijodePersona
Console.Write("Ingrese el nombre del Hijo ")
Chijo.NomHijo = Console.ReadLine()
Console.Write("Ingrese Fecha de Nacimiento del Hijo :")
Chijo.Fechnacimiento = Console.ReadLine()
Console.Write("Hola : ")
Console.WriteLine("{0,10}{1,15}", Chijo.NomHijo, CPersona.ApPaterno)
Console.WriteLine("------------------------------------------------")
Console.Write(Chijo.NomHijo & " " & CPersona.ApPaterno & " Tu Edad es :"
& (Year(Now) - Year(Chijo.Fechnacimiento)).ToString)
Console.Read()
End Sub
Public Class HijodePersona
Inherits Persona
Public NomHijo As String
Public Fechnacimiento As Date
End Class
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
142
Module Module1
'CLASS :declara el nombre de una clase
Public Class Persona
' Definimos los miembros de la clase (Campos: variables Publicas}
Public ApPaterno As String
Public Nombre As String
End Class
Sub Main()
'Dim : permite asignar espacio de almacenamiento para variables
Dim CPersona As Persona
'New : crea una nueva instancia del objeto a partir de la clase
CPersona = New Persona
'Asignando valores a los miembros de la clase
With CPersona
Console.Write("Nombre de la persona: ") : .Nombre = Console.ReadLine
Console.Write("Apellido de la persona: "):.ApPaterno= Console.ReadLine
'visualizando los valores de los miembros de la clase
Console.WriteLine("------------------------------------------------")
Console.WriteLine("{0}{1}", .Nombre, .ApPaterno)
Console.WriteLine("------------------------------------------------")
Console.WriteLine("{0,10}{1,15}", .Nombre, .ApPaterno)
Console.WriteLine("------------------------------------------------")
Console.WriteLine("{0,-10}{1,-15}", .Nombre, .ApPaterno)
End With
Console.WriteLine("------------------------------------------------")
Console.WriteLine("Datos del Hijo")
Dim Chijo As New HijodePersona
Console.Write("Ingrese el nombre del Hijo ")
Chijo.NomHijo = Console.ReadLine()
Console.Write("Ingrese Fecha de Nacimiento del Hijo :")
Chijo.Fechnacimiento = Console.ReadLine()
Console.Write("Hola : ")
Console.WriteLine("{0,10}{1,15}", Chijo.NomHijo, CPersona.ApPaterno)
Console.WriteLine("------------------------------------------------")
Console.Write(Chijo.NomHijo & " " & CPersona.ApPaterno & " Tu Edad es :"
& (Year(Now) - Year(Chijo.Fechnacimiento)).ToString)
Console.Read()
End Sub
Public Class HijodePersona
Inherits Persona
Public NomHijo As String
Public Fechnacimiento As Date
End Class
End Module

1) If <Expresi n> then
Instruccin
2) I f <Ex pr es i n Then
Instrucciones
End If
3) I f <Ex pr es i n Then
Instrucciones
Else
Otras Instrucciones
End If
If <Expresin1> Then
Instrucciones1
Else if <Expresin2> Then
Instruccione2
Else if <Expresin3> Then
Instruccione3
Else if <Expresin4> Then
Instruccione4
Else
Otras Instrucciones
End If
ESTRUCTURAS DE CONTROL
Estructuras Condicionales
Programa de Computacin, Diseo y Extensin
Algortmica
143
APLICACIONES
01.
02.
Ingrese una letra, visualice si es una VOCAL.
Imports System.Console
Module Module4
Sub main()
Dim X As Char
Write("Ingrese una letra mayuscula :") : X = ReadLine()
If X =Ucase("A") Or X =Ucase("E") Or X =Ucase("I") Or
X=Ucase("O") Or X =Ucase("U") Then
WriteLine("LA LETRA ES LA VOCAL " & X)
ReadLine()
End If
End Sub
End Module
Ingrese 3 numeros visualice el Mayor de ellos
Imports System.Console
Module Module8
Sub main()
Dim n1, n2, n3, MAY As Integer
Write("Primer numero: ") : n1 = ReadLine()
Write("Segundo numero: ") : n2 = ReadLine()
Write("tercer numero: ") : n3 = ReadLine()
MAY = n2
If n2 > MAY Then
MAY = n2
End If
If n3 > MAY Then
MAY = n3
End If
Write("El mayor es: " & MAY)
ReadLine()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
144
1) For .. Next
For var = VI to VF [ step
incremento]
Instrucciones
[ Exit For]
Instrucciones
Next Var
Var: Variable numrica entera
que contabiliza el nmero de
repeticiones
Vi: Valor inicial que toma la
variable
Vf: Valor final que toma la
variable
Incremento: incremento que
tendr l a vari abl e en cada
repeticin, es opcional (+/-)
Exit For permite abandonar el
Bucle, sin llegar al valor fnal
Estructuras Repetitivas
Select Case <Expresin>
Case Lista_Expresiones1
Instrucciones 1
Case Lista_Expresiones2
Instrucciones 2
Case Lista_Expresiones3
Instrucciones 3
Case Else
Otras Instrucciones
End select
Si la expresin cumple con
cualquier valor de la lista de
expresiones, se cumple el
caso y por lo tanto ejecutara
las instrucciones de ese caso
Solo ejecutara la primera
coincidencia.
El case else es opcional, se
ejecuta solo si no se cumple
ningn caso.

Estructura Selectiva
Programa de Computacin, Diseo y Extensin
Algortmica
145
01.
02.
Genere la siguiente serie: -1,3,15,35,63,99,
Imports System.Console
Module Module3
Sub main()
Dim a, b, c, nt As Integer
WriteLine()
WriteLine("SERIE -1,3,15,35,63,99")
WriteLine("----------------------")
Write("NUMERO DE TERMINOS: ") : nt = ReadLine()
WriteLine()
c = 4
b = -1
For a = 1 To nt
WriteLine(" " & b)
b = b + c
c = c + 8
Next
Read()
End Sub
End module
Visualice los numeros Perfectos del 50 al 500
Imports System.Console
Module Module5
Sub main()
Dim a, b, sc As Integer
WriteLine("NUMEROS PERFECTOS del 50 - 500")
For a = 50 To 500
sc = 0
For b = 1 To a - 1
If a Mod b = 0 Then
sc += b
End If
Next
If sc = a Then
WriteLine(" " & sc)
End If
Next
Programa de Computacin, Diseo y Extensin
Algortmica
146
03.
Read()
End Sub
END MODULE
Genere la siguiente serie: -1,+2,-3,+4,-5,+6...
Module Module4
Sub main()
Dim a, b, c, n As Integer
WriteLine(" -1,+2,-3,+4,-5,+6...")
WriteLine("----------------------------------")
n = 1
Write(" NUMERO DE TERMINOS: ") : a = ReadLine()
WriteLine()
For b = 1 To a
n = -1 * n
c = n * b
If c > 0 Then
WriteLine(" +" & c)
Else
WriteLine(" " & c)
End If
Next
Read()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
147
04. Genere 20 numeros enteros, visualice el mayor, menor y el
promedio de los numeros generados.
Imports System.Console
Module Module1
Sub Main()
Dim n, max, min, a As Integer
Dim s As Single
max = 0
min = 201
WriteLine("NUMEROS GENERADOS")
WriteLine("-----------------")
For a = 0 To 19
Randomize()
n = (Rnd() * 100) + 100
WriteLine(Space(15) & n)
If n > max Then
max = n
End If
If n < min Then
min = n
End If
s = s + n
Next
WriteLine()
s = s / 20
WriteLine(" ---------------------------")
WriteLine()
WriteLine(" MAYOR NUMERO: " & max)
WriteLine(" MENOR NUMERO: " & min)
WriteLine(" PROMEDIO DE NUMEROS GENERADOS: "
& s)
Read()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
148
Muestre todos los numeros primos menores al numero
generado.
Imports System.Console
Module Module1
' Ejercico 1
Sub Main()
Dim a, b, c, d, n As Integer
WriteLine()
WriteLine("NUMEROS PRIMOS MENORES A UN NUMERO
GENERADO")
WriteLine("-------------------------------------------")
For a = 1 To 5
n = 100 * Rnd()
WriteLine()
WriteLine()
Write(" " & n & "-> ")
For b = 1 To n - 1
c = 0
For d = 1 To b
If b Mod d = 0 Then
c = c + 1
End If
Next
If c = 2 Then
Write(b & ",")
End If
Next
Next
Read()
End Sub
End Module
05.
Programa de Computacin, Diseo y Extensin
Algortmica
149
01. ingrese el nombre, Nota1 y Nota2 de varios alumnos, fnalice
cuando ingrese como nombre la palabra FIN. Visualice el
total de Aprobados y Desaprobados.
Imports System.Console
Module Module1
Dim nomb, m As String
Dim n1, n2, ta, td As Integer
Dim pr As Double
Sub Main()
ta = 0: td = 0
Write("Ingrese su nombre :")
nomb = ReadLine()
Write("Nota 1 :")
n1 = ReadLine()
Write("Nota 2 :")
n2 = ReadLine()
Do While (UCase(nomb) <> "FIN")
pr = (n1 + n2) / 2
If pr > 10 Then
m = "Aprobado"
ta = ta + 1
Else
m = "Desaprobado"
td = td + 1
2) Do Loop
Repite un conjunto de instrucciones dependiendo de la evaluacin de
una expresin lgica
DO WHILE: Si la expresin es Verdadera repite la ejecucin de las
instrucciones. Finaliza cuando la expresin sea falsa
DO UNTIL: Si la expresin es Falsa repite la ejecucin de las instrucciones.
Finaliza cuando la expresin sea Verdadera.
Do While <Expresion>
Instrucciones
Exit Do
Instrucciones
Loop
Ejemplos:
Programa de Computacin, Diseo y Extensin
Algortmica
150
02.
End If
WriteLine(" Nombre :" & nomb)
WriteLine(" Promedio :" & pr)
WriteLine(" Condicion :" & m)
Write("Ingrese su nombre :") : nomb = ReadLine()
Write("Nota 1 :") : n1 = ReadLine()
Write("Nota 2 :") : n2 = ReadLine()
Loop
WriteLine("Total Aprobados :" & ta)
WriteLine("Total Desaprobados :" & td)
ReadLine()
End Sub
End Module
Genere 20 numeros comprendidos entre 50 y 100, visualice
el porcentaje de pares,Impares generados.
Imports System.Console
Module Module2
Sub main()
Dim cp, ci, cn, n As Integer
cn = 0
Do While (cn < 20)
n = 50 * Rnd()+ 50
If n Mod 2 = 0 Then
cp += 1
Else
ci += 1
End If
cn = cn + 1
WriteLine(" " & cn & ".- " & n)
End If
Loop
WriteLine("PORCENTAJE DE PARES: " & (cp / cn) &
"%")
WriteLine("PORCENTAJE DE IMPARES: " & (ci /cn 5) &
"%")
Read()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
151
Crear 3 Procedimientos para calcular el mayor,menor y
Promedio de 4 Notas ingresadas.
Imports System.Console
Module Module1
Dim may, men, pro As Integer
Sub Main()
Dim n1, n2, n3, n4 As Integer
WriteLine()
Write("PRIMERA NOTA. ") : n1 = ReadLine()
Write("SEGUNDA NOTA. ") : n2 = ReadLine()
Write("TERCERA NOTA. ") : n3 = ReadLine()
Write("CUARTA NOTA. ") : n4 = ReadLine()
WriteLine()
Call Mayor(n1, n2, n3, n4) : WriteLine("MAYOR NOTA: "
& may)
Call Menor(n1, n2, n3, n4) : WriteLine("MENOR NOTA: "
& men)
Call Prom(n1, n2, n3, n4) : WriteLine("PROMEDIO: " &
pro)
Read()
End Sub
Sub Mayor(ByVal a As Integer, ByVal b As Integer, ByVal c As
Integer, ByVal d As Integer)
If a > b And a > c And a > d Then
may = a
ElseIf b > a And b > c And b > d Then
may = b
ElseIf c > b And c > a And c > d Then
may = c
Else
may = d
End If
End Sub
01.
Do
Instrucciones
Exit Do
Instrucciones
Loop Until <Expresion>
Procedimientos y Funciones
Programa de Computacin, Diseo y Extensin
Algortmica
152
Sub Menor(ByVal a As Integer, ByVal b As Integer, ByVal c As
Integer, ByVal d As Integer)
If a < b And a < c And a < d Then
men = a
ElseIf b < a And b < c And b < d Then
men = b
ElseIf c < b And c < a And c < d Then
men = c
Else
men = d
End If
End Sub
Sub Prom(ByVal a As Integer, ByVal b As Integer, ByVal c As
Integer, ByVal d As Integer)
pro = (a + b + c + d) \ 4
End Sub
End Module
Crear 3 Funciones para calcular el mayor,menor y Promedio
de 4 Notas ingresadas.
Imports System.Console
Module Module2
Sub Main()
Dim n1, n2, n3, n4 As Integer
WriteLine()
Write("PRIMERA NOTA. ") : n1 = ReadLine()
Write("SEGUNDA NOTA. ") : n2 = ReadLine()
Write("TERCERA NOTA. ") : n3 = ReadLine()
Write("CUARTA NOTA. ") : n4 = ReadLine()
WriteLine()
WriteLine("MAYOR NOTA: " & Mayor(n1, n2, n3, n4))
WriteLine("MENOR NOTA: " & Menor(n1, n2, n3, n4))
WriteLine("PROMEDIO: " & Prom(n1, n2, n3, n4))
Read()
End Sub
Function Mayor(ByVal a As Integer, ByVal b As Integer, ByVal
c As Integer, ByVal d As Integer) As Integer
Dim may As Integer
02.
Programa de Computacin, Diseo y Extensin
Algortmica
153
If a > b And a > c And a > d Then
may = a
ElseIf b > a And b > c And b > d Then
may = b
ElseIf c > b And c > a And c > d Then
may = c
Else
may = d
End If
Return may
End Function
Function Menor(ByVal a As Integer, ByVal b As Integer,
ByVal c As Integer, ByVal d As Integer)
Dim men As Integer
If a < b And a < c And a < d Then
men = a
ElseIf b < a And b < c And b < d Then
men = b
ElseIf c < b And c < a And c < d Then
men = c
Else
men = d
End If
Return men
End Function
Function Prom(ByVal a As Integer, ByVal b As Integer,
ByVal c As Integer, ByVal d As Integer)
Dim pro As Integer
pro = (a + b + c + d) \ 4
Return pro
End Function
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
154
03. Ingrese un numero, visualize su numero de cifras y el
promedio de sus crifras, utilice dos funciones
Imports System.Console
Module Module3
Sub main()
Dim num As Long
Write("INGRESE NUMERO: ") : num = READLINE()
WriteLine()
WriteLine("NUMERO DE CIFRAS: " & Cifras(num, 1))
WriteLine("PROMEDIO DE CIFRAS: " & Cifras(num, 2))
Read()
End Sub
Function SumCif(ByVal n As Integer) As Integer
WriteLine()
Dim a, sc, c As Integer
' c = Cifras(n)
For a = 1 To c
WriteLine((n \ (10 ^ (a - 1))) Mod 10)
sc = sc + (n \ (10 ^ (a - 1))) Mod 10
Next
Return (sc / a)
End Function
Function Cifras(ByVal n As Integer, ByVal id As Integer) As
Integer
Dim a, sc, c As Integer
Dim n2 As Long
n2 = n
c = 0
Do While (n > 0)
n = n \ 10
c = c + 1
Loop
For a = 1 To c
sc = sc + (n2 \ (10 ^ (a - 1))) Mod 10
Next
'Qu valor retornar...?
If id = 1 Then
Return c
Else
Return (sc / c)
Programa de Computacin, Diseo y Extensin
Algortmica
155
End If
End Function
End Module
Ingrese un numero, visualize su numero de cifras y el promedio
de sus crifras, utilice una sola Funcion funciones
Imports System.Console
Module Module
Sub main()
Dim n As Integer
WriteLine()
Write("INGRESE EL NUMERO: ")
n = ReadLine()
WriteLine("NUMERO DE CIFRAS: " & Cifras(n, 0))
WriteLine("PRODUCTO DE CIFRAS: " & Cifras(n, 1))
Read()
End Sub
Function Cifras(ByVal n As Integer, ByVal p As Integer) As
Integer
Dim x, a, b, pr As Integer
x = n : a = 0 : pr = 1
Do While (x > 0)
a = a + 1
b = x Mod 10
x = x \ 10
pr = pr * b
Loop
'RETORNA UN VALOR SEGUN LA OPCION ENVIADA EN EL
VALOR 'P'
If p = 0 Then
Return a
Else
Return pr
End If
End Function
End Module
04.
Programa de Computacin, Diseo y Extensin
Algortmica
156
Generar 20 numeros(Par,Impar,Perfecto,Primo)")
Imports System.Console
Module Module1
Dim np, ni, npr, npe As Integer
Sub Main()
WriteLine("EVALUACION DE NUMEROS")
Dim a, b As Integer
np = 0 : ni = 0 : npr = 0 : npe = 0
For a = 1 To 20
Randomize()
b = 100 * Rnd()
WriteLine(b)
Call Pares(b)
Call Impares(b)
Call Perfectos(b)
Call Primos(b)
Next
WriteLine("Numero de Pares: " & np)
WriteLine("Numero de Impares: " & ni)
WriteLine("Numero de Perfectos: " & npe)
WriteLine("Numero de Primos: " & npr)
Read()
End Sub
Sub Pares(ByVal n As Integer)
If n Mod 2 = 0 And n <> 0 Then
np = np + 1
End If
End Sub
Sub Impares(ByVal n As Integer)
If n Mod 2 <> 0 And n <> 0 Then
ni = ni + 1
End If
End Sub
Sub Perfectos(ByVal n As Integer)
Dim w, sd As Integer
If n <> 0 Then
For w = 1 To n - 1
If n Mod w = 0 Then
sd = sd + w
05.
Programa de Computacin, Diseo y Extensin
Algortmica
157
End If
Next
If sd = n Then
npe = npe + 1
'WriteLine(n & "*")
End If
End If
End Sub
Sub Primos(ByVal n As Integer)
Dim w, cd As Integer
For w = 1 To n
If n Mod w = 0 Then
cd = cd + 1
End If
Next
If cd = 2 Then
npr = npr + 1
'WriteLine(n & "-")
End If
End Sub
End Module
Cambiar de base 10 a cualquier base")
Imports System.Console
Module Module2
Sub main()
WriteLine("CAMBIAR DE BASE 10 A OTRA")
Dim num, bas As Integer
Write("Ingrese numero en base (10) : ")
num = ReadLine()
Write("A qu{e base desea convertir? ")
bas = ReadLine()
WriteLine()
WriteLine("El numero " & num & " en base " & bas & " es: " &
CambioXBase(num,bas))
Read()
End Sub
Function CambioXBase(ByVal n As Integer, ByVal b As
Integer) As String
06.
Programa de Computacin, Diseo y Extensin
Algortmica
158
07.
Dim r, e As String
Dim re As Integer
r = ""
Do While (n > 0)
re = n Mod b
n = n \ b
If re > 9 Then
e = Chr(55 + re)
Else
e = Str(re)
End If
r = e + r
Loop
Return r
End Function
End Module
Procesar Numero
Imports System.Console
Module Module3
Sub main()
WriteLine("PROCESANDO NUMEROS")
Dim n As Integer
Write(" Ingrese el Numero: ")
n = ReadLine()
WriteLine()
WriteLine("Numero de Cifras: " & Proceso(n, 1))
WriteLine("Suma de cifras: " & Proceso(n, 2))
WriteLine("Producto de sus Cifras: " & Proceso(n, 3))
WriteLine("Numero Invertido: " & Proceso(n, 4))
Read()
End Sub
Function Proceso(ByVal num As Integer, ByVal ind As Integer) As
Integer
Dim b, c, cf, f, scf, pcf, nui As Integer
b = num
c = 0
f = 1
scf = 0
Programa de Computacin, Diseo y Extensin
Algortmica
159
08.
pcf = 1
Do While b > 0
f = (num \ (10 ^ c)) Mod 10
pcf = pcf * f
scf = scf + f
c = c + 1
cf = cf + 1
b = b \ 10
Loop
Select Case ind
Case 1
Return cf
Case 2
Return scf
Case 3
Return pcf
Case 4
For b = 0 To cf - 1
f = (num \ (10 ^ b)) Mod 10
nui = nui + f * (10 ^ (cf - (b + 1)))
Next
Return nui
End Select
End Function
End Module
EVALUACION DE NUMEROS si es Primo o no es Primo
Imports System.Console
Module Module4
Sub main()
WriteLine("EVALUACION DE NUMEROS")
WriteLine("1= ES PRIMO <> 0= NO ES PRIMO")
WriteLine("------------------------------")
Dim num As Integer
Write("Ingrese el Numero: ")
num = ReadLine()
WriteLine()
WriteLine("RESULTADO: " & Evalua(num))
Programa de Computacin, Diseo y Extensin
Algortmica
160
Read()
End Sub
Function Evalua(ByVal n As Integer) As Integer
Dim t, c As Integer
c = 0
For t = 1 To n
If n Mod t = 0 Then
c += 1
End If
Next
If c = 2 Then
Return 1
Else
Return 0
End If
End Function
End Module
Crear un Vector de 10 elementos enteros y visualizarlo.
Sub Main()
Dim V(9) As Integer
Dim a, b As Integer
For a = 0 To 9
Write("Ingresar en V(" & a & "): ")
V(a) = ReadLine()
Clear()
Next
WriteLine()
WriteLine(" Datos del vector")
WriteLine()
For a = 0 To 9
WriteLine(" V(" & a & ") = " & V(a))
Next
Read()
End Sub
09.
Vectores y Matrices
(Problemas Propuestos Pg. 95)
Programa de Computacin, Diseo y Extensin
Algortmica
161
Sub main()
Dim A(9), B(9), C(9), D(9), E(29) As Integer
Dim x As Integer
WriteLine()
WriteLine(" Sumado de Vectores")
WriteLine()
WriteLine(" A B C D")
WriteLine()
For x = 0 To 9
Randomize()
A(x) = Rnd() * 100
C(x) = Rnd() * 100
B(x) = Rnd() * 100
'se llena el vector E
E(x) = A(x)
E(10 + x) = B(x)
E(20 + x) = C(x)
D(x) = A(x) + B(x) + C(x)
WriteLine(" " & A(x) & " + " & B(x) & " + " &
C(x) & " = " & D(x))
Next
'mOSTRAR LOS tres vectores unidos en uno solo
WriteLine()
WriteLine(" Todos los vectores unidos en uno solo")
WriteLine()
For x = 0 To 29
WriteLine(" " & E(x))
Next
Read()
End Sub
10.
Programa de Computacin, Diseo y Extensin
Algortmica
162
Sub main()
Dim V(11) As Integer
Dim x, m, max, sum As Integer
Dim pro As Single
WriteLine()
WriteLine(" Ventas realizadas")
WriteLine()
max = 0
For x = 0 To 11
Randomize()
V(x) = Rnd() * 500
WriteLine(" Mes #" & (x + 1) & ": " & V(x))
If V(x) > max Then
max = V(x)
m = x
End If
sum = sum + V(x)
Next
WriteLine()
pro = sum / 12
WriteLine("Mes de mxima venta: " & m + 1)
WriteLine("Mxmima Venta realizada: " & max)
WriteLine("Ventas Totales: " & sum)
WriteLine("promedio de Ventas: " & pro)
Read()
End Sub
1) Se tiene las 15 ventas mensuales de un Producto,hallar
la suma de las ventas,Promedio de las ventas y todas las
ventas realizadas menores al Promedio de ventas.
Imports System.Console
Module Module1
Sub Main()
Dim V(14) As Single
'cargar vector
Dim a, i1, i2 As Integer
Dim Pro, max, min As Single
Randomize()
WriteLine("VENTAS EN LOS 15 MESES")
11.
Programa de Computacin, Diseo y Extensin
Algortmica
163
max = 0 : min = 101
For a = 0 To 14
V(a) = Math.Round(Rnd() * 100, 2)
If V(a) > max Then : max = V(a) : i1 = a + 1 : End If
If V(a) < min Then : min = V(a) : i2 = a + 1 : End If
WriteLine("Mes" & a + 1 & " = " & V(a))
pro = pro + V(a)
Next
WriteLine()
Pro = Math.Round(Pro, 2)
WriteLine("SUMA DE VENTAS = " & Pro)
Pro = Math.Round(Pro / 15, 2)
WriteLine("PROMEDIO DE VENTAS = " & Pro)
WriteLine()
WriteLine()
WriteLine(" VENTAS REALIZADAS MENORES AL
PROMEDIO")
WriteLine("--------------------------------------")
WriteLine()
For a = 0 To 14
If V(a) < pro Then
WriteLine("Mes" & a + 1 & " = " & V(a))
End If
Next
WriteLine()
WriteLine("MAYOR VENTA: " & max & " EN EL MES" &
i1)
WriteLine("MENOR VENTA: " & min & " EN EL MES" &
i2)
Read()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
164
Imports System.Console
Module Module2
Sub main()
Dim A(19) As Integer
Dim B(10) As Integer
Dim x, y, aux As Integer
WriteLine()
WriteLine("TRANSFERENCIA DE DATOS EN VECTORES")
WriteLine()
WriteLine("ELEMENTOS GENERADOS EN 'A'")
WriteLine("---------------------------")
For x = 0 To 19
Randomize()
A(x) = Rnd() * 1000
WriteLine("A(" & x + 1 & ")= " & A(x))
Next
'Ordenamiento
For x = 0 To 18
For y = x + 1 To 19
If A(x) < A(y) Then
aux = A(x)
A(x) = A(y)
A(y) = aux
End If
Next
Next
WriteLine()
WriteLine(" ELEMENTOS DE 'B'")
WriteLine("-----------------")
'Mostrar ordenamiento
'TRANSFERENCIA DE DATOS
For x = 0 To 9
B(x) = A(x)
WriteLine("B(" & x + 1 & ")= " & B(x))
Next
Read()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
165
Imports System.Console
Module Module1
Dim A(19) As Integer
Dim B(9) As Integer
Dim C(4) As Integer
Sub Main()
Dim x, y, z As Integer
WriteLine("VALORES GENERADOS EN VECTOR 'A'")
For x = 0 To 19
Randomize()
A(x) = Rnd() * 100
WriteLine("A(" & x & ") = " & A(x))
Next
WriteLine()
For x = 0 To 18
For y = x + 1 To 19
If A(x) < A(y) Then
z = A(x)
A(x) = A(y)
A(y) = z
End If
Next
Next
WriteLine()
WriteLine("VALORES EN VECTOR 'B'")
For x = 0 To 9
B(x) = A(x)
WriteLine("B(" & x & ") = " & A(x))
Next
WriteLine()
WriteLine("VALORES EN VECTOR 'C'")
For x = 15 To 19
C(x - 15) = A(x)
WriteLine("C(" & x - 15 & ") = " & A(x))
Next
Read()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
166
Imports System.Console
Module Module2
Dim NAME(4) As String
Dim PROM(4) As Single
Dim NOTA(4) As Integer
Sub MAIN()
Dim x, y, z, ax As Integer
Dim OPC As String
For x = 0 To 3
WriteLine()
Write(" NOMBRE DEL ALUMNO Nro. :" & (x + 1) & ": ") :
NAME(x) = ReadLine()
WriteLine()
Write(" GENERAR O INGRESAR LAS NOTAS? (G/I) ") :
OPC = ReadLine()
If UCase(OPC) = "I" Then
For y = 0 To 4
Write(" NOTA" & (y + 1))
NOTA(y) = ReadLine()
Next
Else
Randomize()
NOTA(0) = Rnd() * 20 : WriteLine(" NOTA1: "
& NOTA(0))
NOTA(1) = Rnd() * 20 : WriteLine(" NOTA2: "
& NOTA(1))
NOTA(2) = Rnd() * 20 : WriteLine(" NOTA3: "
& NOTA(2))
NOTA(3) = Rnd() * 20 : WriteLine(" NOTA4: "
& NOTA(3))
NOTA(4) = Rnd() * 20 : WriteLine(" NOTA5: "
& NOTA(4))
End If
For y = 0 To 2
For z = y + 1 To 3
If NOTA(y) < NOTA(z) Then
ax = NOTA(y)
NOTA(y) = NOTA(z)
NOTA(z) = ax
Programa de Computacin, Diseo y Extensin
Algortmica
167
End If
Next
Next
PROM(x) = (NOTA(0) + NOTA(1) + NOTA(2)) / 3
Next
Dim CON As String
WriteLine()
WriteLine("RELACION DE ALUMNOS")
WriteLine("-------------------")
For x = 0 To 3
WriteLine("ALUMNO: " & NAME(x))
WriteLine("PROMEDIO: " & Str(PROM(x)))
If PROM(x) >= 10.5 Then
CON = "'APROBADO'"
Else
CON = "'DESAPROBADO'"
End If
WriteLine("CONDICIN: " & CON)
WriteLine()
Next
Read()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
168
MATRICES
(Propuestos pag.102)
04. Sub main()
'Simetria entre matrices de 3x3
Dim A(2, 2), B(2, 2) As Integer
Dim x, y As Integer
WriteLine()
WriteLine("Llenar valores de vector 1")
WriteLine()
For x = 0 To 2
For y = 0 To 2
Write(" Ingresar en A(" & x & "," & y & ") : ")
A(x, y) = ReadLine()
Next
Next
WriteLine()
WriteLine("Llenar valores de vector 2")
WriteLine()
For x = 0 To 2
For y = 0 To 2
Write(" Ingresar en B(" & x & "," & y & ") : ")
B(x, y) = ReadLine()
Next
Next
Dim c As Integer
'Empieza el proceso para saber si es simtrica
c = 0
For x = 0 To 2
For y = 0 To 2
If A(x, y) = B(y, x) Then
c = c + 1
End If
Next
Next
WriteLine()
If c = 9 Then
WriteLine(" Vectores Simtricos")
Programa de Computacin, Diseo y Extensin
Algortmica
169
Else
WriteLine(" Vectores no Simtricos")
End If
Read()
End Sub
Sub main()
Dim x, y, a, b, i1, i2, max As Integer
WriteLine()
Write(" Ingrese cantidad de flas ('> 1'): ")
a = ReadLine()
Write(" Ingrese cantidad de columnas ('<= 50'): ")
b = ReadLine()
If a > 1 And b <= 50 Then
Dim V(a - 1, b - 1) As Integer
For x = 0 To a - 1
WriteLine()
Write(" ")
For y = 0 To b - 1
Randomize()
V(x, y) = Rnd() * 100
Write(V(x, y) & ",")
If V(x, y) > max Then
i1 = x
i2 = y
max = V(x, y)
End If
Next
Next
WriteLine()
WriteLine()
WriteLine(" Valor mximo: " & max & " encontrado en V(" &
i1 + 1 & "," & i2 + 1 & ")")
Else
WriteLine("NUMERO DE COLUMNAS O FILAS
ERRADOS")
End If
Read()
End Sub
05.
Programa de Computacin, Diseo y Extensin
Algortmica
170
06. Sub main()
Dim A(3, 3), B(3, 3), C(3, 3) As Integer
Dim x, y As Integer
WriteLine()
WriteLine(" Matriz A")
WriteLine()
For x = 0 To 3
WriteLine()
For y = 0 To 3
Randomize()
A(x, y) = Rnd() * 10
B(x, y) = Rnd() * 10
'producto de matricez
C(x, y) = A(x, y) * B(x, y)
Write(A(x, y) & ",")
Next
Next
WriteLine()
WriteLine(" Matriz B")
WriteLine()
For x = 0 To 3
WriteLine()
For y = 0 To 3
Write(B(x, y) & ",")
Next
Next
WriteLine()
'mostrar datos
WriteLine()
WriteLine(" MATRIZ RESULTANTE C(X,Y)=A(X,Y) *
B(X,Y)")
WriteLine()
For x = 0 To 3
WriteLine()
For y = 0 To 3
Write(C(x, y) & " , ")
Next
Next
Read()
End Sub
Programa de Computacin, Diseo y Extensin
Algortmica
171
07. Sub main()
Dim n, x, y As Integer
WriteLine()
Write("Crear matriz cuadrada de : ")
n = ReadLine()
Dim A(n - 1, n - 1) As Integer
WriteLine()
WriteLine(" Matriz generada inicialmente")
WriteLine()
For x = 0 To n - 1
WriteLine()
For y = 0 To n - 1
A(x, y) = Rnd() * 10
Write(A(x, y) & " , ")
Next
Next
Dim aux As Integer
WriteLine()
WriteLine()
WriteLine(" Matriz con columnas invertidas")
WriteLine()
n = n - 1
'inverit columnas
For y = 0 To n \ 2
For x = 0 To n \ 2
aux = A(x, y)
A(x, y) = A(n - x, y)
A(n - x, y) = aux
' WriteLine(A(x, y) & " " & A(n - x, y))
Next
Next
For x = 0 To n
WriteLine()
For y = 0 To n
Write(A(x, y) & " , ")
Next
Next
Read()
End Sub
Programa de Computacin, Diseo y Extensin
Algortmica
172
08. Sub main()
Dim M(11, 4) As Integer
Dim x, y, s1, s2, s3, ms, mmes, max2, mmay As Integer
mmay = 0
max2 = 0
WriteLine()
WriteLine(" 1=Lima 2=Ica 3=Piura 4=Tacna
5=Cuzco")
For x = 0 To 11
Randomize()
WriteLine()
For y = 0 To 4
Randomize()
M(x, y) = Rnd() * 100
Write(M(x, y) & " , ")
If y = 0 Then
s1 = s1 + M(x, y)
End If
If x = 11 Then
s2 = s2 + M(x, y)
End If
If x = 4 Then
If M(x, y) > mmay Then
mmay = M(x, y)
mmes = y
End If
End If
s3 = s3 + M(x, y)
Next
If s3 > max2 Then
max2 = s3
ms = x
End If
Next
WriteLine()
WriteLine()
WriteLine(" Venta Total de Agencia de Lima: " & s1)
WriteLine(" Promedio de ventas de Diciembre: " & s2 / 5)
WriteLine(" Agencia con mayor venta en Mayo: " &
mmes)
Programa de Computacin, Diseo y Extensin
Algortmica
173
09.
10.
WriteLine(" La Mayor venta se registro en el mes: " & ms
+ 1)
'mayor venta, que mes
Read()
End Sub
Sub main()
Dim A(9, 9) As Integer
Dim x, y As Integer
For x = 0 To 9
A(x, 0) = x + 1
A(0, x) = x + 1
Next
For x = 1 To 10
For y = 1 To 10
A(x - 1, y - 1) = x * y
Next
Next
'mostrar tabla de multiplicar
For x = 0 To 9
WriteLine()
For y = 0 To 9
Write(A(x, y) & " - ")
Next
Next
Read()
End Sub
Sub main()
Dim M(14, 6) As Integer
Dim a, b As Integer
Dim ima, sv, se, max As Integer
max = 0
For a = 0 To 14
WriteLine()
For b = 0 To 6
Randomize()
M(a, b) = Rnd() * 99
Programa de Computacin, Diseo y Extensin
Algortmica
174
Write(M(a, b) & " , ")
If M(3, b) > max Then
max = M(3, b)
ima = b
End If
Next
Next
WriteLine()
WriteLine()
Dim omax, oim As Integer
omax = 0
For a = 0 To 14
If M(a, 6) > omax Then
omax = M(a, 6)
oim = a
End If
Next
For a = 0 To 6
sv = 0
For b = 0 To 14
sv = sv + M(b, a)
Next
WriteLine(" Partido " & (a + 1) & " obtuvo " & sv & "
votos")
Next
WriteLine() : WriteLine()
For a = 0 To 14
se = 0
For b = 0 To 6
se = se + M(a, b)
Next
WriteLine(" Estado " & (a + 1) & " dio " & se & "
votos")
Next
WriteLine()
WriteLine(" En el Estado 4 el que botuvo ms votos es el
Partido " & (ima + 1))
WriteLine(" En el Estado con mas abtenciones es el
Estado " & oim + 1)
Read()
End Sub
Programa de Computacin, Diseo y Extensin
Algortmica
175
Sub main()
Dim M(4, 3) As Integer
Dim a, b, tot As Integer
For a = 0 To 4
WriteLine()
For b = 0 To 3
Randomize()
M(a, b) = Rnd() * 99
Write(M(a, b) & " , ")
Next
Next
WriteLine()
WriteLine()
tot = 0
Dim se, id As Integer
For a = 0 To 4
se = 0
For b = 0 To 3
se = se + M(a, b)
Next
tot = tot + se
WriteLine(" Municipio " & (a + 1) & " dio " & se & "
votos")
Next
Dim max, ima As Integer
WriteLine()
For a = 0 To 3
se = 0
For b = 0 To 4
se = se + M(b, a)
Next
If se > max Then
max = se
ima = a + 1
End If
WriteLine(" Candidato " & (a + 1) & " obtuvo " & se &
" votos")
Next
WriteLine()
WriteLine(" Cantidad de Votos en total: " & tot)
11.
Programa de Computacin, Diseo y Extensin
Algortmica
176
WriteLine()
WriteLine(" El mas votado es el Candidato " & ima)
max = 0
ima = 0
For a = 0 To 3
se = 0
For b = 0 To 4
se = se + M(b, a)
Next
If se > max Then
max = se
ima = a + 1
End If
If se > (tot \ 2) Then
WriteLine("Candidado " & ima & " obtuvo mas del
50 %")
End If
Next
Read()
End Sub
Imports System.Console
Module Module2
Sub main()
Dim M(2, 4) As Integer
Dim C(2) As String
Dim D(4) As String
WriteLine()
WriteLine()
WriteLine(" EMPRESA DISTRIBUIDORA DE
REVISTAS")
WriteLine(" ---------------------------------------------
---------")
C(0) = "LIMA" : C(1) = "PUNO" : C(2) = "ICA "
D(0) = "LUNES" : D(1) = "MARTES" : D(2) =
"MIERCOLES" : D(3) = "JUEVES" : D(4) = "VIERNES"
Dim x, y, sum As Integer
WriteLine()
Ejercicio:
Programa de Computacin, Diseo y Extensin
Algortmica
177
Write(" L M M J V")
For x = 0 To 2
WriteLine() : WriteLine()
Write(Space(4) & C(x) & Space(4))
For y = 0 To 4
Randomize()
M(x, y) = Rnd() * 500
Write(M(x, y) & Space(10 - Len(Str(M(x, y)))))
sum = sum + M(x, y)
Next
Next
'contar revistas por Ciudad
WriteLine() : WriteLine()
Dim sv As Integer
For x = 0 To 2
sv = 0
For y = 0 To 4
sv = sv + M(x, y)
Next
'muestra por cada ciudad
WriteLine(Space(4) & "REVISTAS EN " & C(x) & " ES " & sv)
Next
'contar revistas por dia
WriteLine()
For y = 0 To 4
sv = 0
For x = 0 To 2
sv = sv + M(x, y)
Next
'muestra por cada dia
WriteLine(Space(4) & "REVISTAS EL DIA " & D(y) & " ES " & sv)
Next
'muestra toda la suma de revistas
WriteLine() : WriteLine()
WriteLine(" TOTAL DE REVISTAS DISTRIBUIDAS ES: " & sum)
Read()
End Sub
End Module
Imports System.Console
Programa de Computacin, Diseo y Extensin
Algortmica
178
Module Module2
Sub main()
Dim M(2, 4) As Integer
Dim C(2) As String
Dim D(4) As String
WriteLine()
WriteLine()
WriteLine(" EMPRESA DISTRIBUIDORA DE
REVISTAS")
WriteLine(" ----------------------------------------------------
--")
C(0) = "LIMA" : C(1) = "PUNO" : C(2) = "ICA "
D(0) = "LUNES" : D(1) = "MARTES" : D(2) = "MIERCOLES" :
D(3) = "JUEVES" : D(4) = "VIERNES"
Dim x, y, sum As Integer
WriteLine()
Write(" L M M J V")
For x = 0 To 2
WriteLine() : WriteLine()
Write(Space(4) & C(x) & Space(4))
For y = 0 To 4
Randomize()
M(x, y) = Rnd() * 500
Write(M(x, y) & Space(10 - Len(Str(M(x, y)))))
sum = sum + M(x, y)
Next
Next
'contar revistas por Ciudad
WriteLine() : WriteLine()
Dim sv As Integer
For x = 0 To 2
sv = 0
For y = 0 To 4
sv = sv + M(x, y)
Next
'muestra por cada ciudad
WriteLine(Space(4) & "REVISTAS EN " & C(x) & " ES " & sv)
Next
'contar revistas por dia
WriteLine()
Programa de Computacin, Diseo y Extensin
Algortmica
179
For y = 0 To 4
sv = 0
For x = 0 To 2
sv = sv + M(x, y)
Next
'muestra por cada dia
WriteLine(Space(4) & "REVISTAS EL DIA " & D(y) & " ES "
& sv)
Next
'muestra toda la suma de revistas
WriteLine() : WriteLine()
WriteLine(" TOTAL DE REVISTAS DISTRIBUIDAS ES: " &
sum)
Read()
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
180
Imports System.Console
Module EmpCerveza
Dim E(4, 4) As Integer
Dim D(1, 4) As String
Dim sde, sdi, stot As Integer
Sub main()
D(0, 0) = "Lima" : D(0, 1) = "Ucayali" : D(0, 2) = "Cuzco" :
D(0, 3) = "Arequipa" : D(0, 4) = "Iquitos"
D(1, 0) = "Lunes" : D(1, 1) = "Martes" : D(1, 2) = "Miercoles"
: D(1, 3) = "Jueves" : D(1, 4) = "Viernes"
Dim x, y As Integer
stot = 0
WriteLine()
WriteLine(" L M M J V")
For x = 0 To 4
WriteLine()
Write(" " & D(0, x) & Space(15 - Len(D(0, x))))
For y = 0 To 4
Randomize()
E(x, y) = Rnd() * 500
stot = stot + E(x, y)
Write(E(x, y) & Space(10 - Len(CStr(E(x, y)))))
Next
Next
Call SumaFilasColumnas()
WriteLine()
WriteLine(" VENTA TOTAL REALIZADA POR LA EMPRESA:
" & stot)
Read()
End Sub
Sub SumaFilasColumnas()
WriteLine()
WriteLine()
Dim a, b As Integer
For a = 0 To 4
sde = 0
For b = 0 To 4
sde = sde + E(a, b)
Next
WriteLine(" Venta Total de " & D(0, a) & " es: " & sde)
Programa de Computacin, Diseo y Extensin
Algortmica
181
Next
WriteLine()
For a = 0 To 4
sdi = 0
For b = 0 To 4
sdi = sdi + E(b, a)
Next
WriteLine(" Venta Total de los " & D(1, a) & " es: " &
sdi)
Next
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
182
Imports System.Console
Module Module1
Dim z, z2, sf As Integer
Dim M(3, 3) As Integer
Sub Main()
Console.Title = "The Solorasmus Master"
Dim x, y As Integer
z = 0
For x = 0 To 3
WriteLine()
Write(" ")
For y = 0 To 3
Randomize()
M(x, y) = Rnd() * 50
Write(M(x, y) & Space(5 - Len(CStr(M(x, y)))))
Diagonal(x, y)
Next
Next
WriteLine()
WriteLine()
WriteLine(" Suma de Diagonal Principal: " & z)
WriteLine(" Suma de Diagonal Secundaria: " & z2)
Call SumaFila()
Call SumaColumna()
Read()
'muestra datos
End Sub
Sub Diagonal(ByVal x As Integer, ByVal y As Integer)
If x = y Then
z = z + M(x, y)
End If
If x + y = 3 Then
z2 = z2 + M(x, y)
End If
End Sub
Sub SumaFila()
WriteLine()
Programa de Computacin, Diseo y Extensin
Algortmica
183
Dim a, b As Integer
For a = 0 To 3
sf = 0
For b = 0 To 3
sf = sf + M(a, b)
Next
WriteLine(" Suma de Fila " & (a + 1) & " es: " & sf)
Next
End Sub
Sub SumaColumna()
WriteLine()
Dim sc As Integer
sc = 0
Dim a, b As Integer
For a = 0 To 3
sc = 0
For b = 0 To 3
sc = sc + M(b, a)
Next
WriteLine(" Suma de Columna " & (a + 1) & " es: " & sc)
Next
End Sub
End Module
Programa de Computacin, Diseo y Extensin
Algortmica
184
Programa de Computacin, Diseo y Extensin
Algortmica
185
ndice General
Algortmica
Programa de Computacin, Diseo y Extensin
Algortmica
186
Programa de Computacin, Diseo y Extensin
Algortmica
187
Presentacin 3
Captulo 01
Conceptos bsicos 5
Ejercicios 6
Caractersticas de un algoritmo 6
Los datos 9
Las expresiones 11
Gua prctica N1 13
Captulo 02
Estructura de un algoritmo 15
Gua prctica N2 17
Prctica dirigida 21
Problemas propuestos 23
Captulo 03
Estructura condicional 25
Gua prctica N 3 26
Estructura de condicional simple 26
Prctica dirigida 29
Problemas propuestos 30
Captulo 04
Estructura condicional doble 31
Gua prctica N 4 32
Prctica dirigida 36
Problemas propuestos 37
Captulo 05
Estructura condicional anidada 39
Gua prctica N 5 39
Prctica dirigida 43
Problemas propuestos 44
Captulo 06
Estructura de seleccin mltiple 45
Gua prctica N 6 46
Prctica dirigida 50
Problemas propuestos 51
Captulo 07
Estructura repetitiva 53
Preguntas necesarias 55
Estructura: PARA .. FIN_PARA 55
Gua prctica N 7 56
Prctica dirigida 61
Problemas propuestos 63
Captulo 08
Estructura Repetitiva Mientras..Fin mientras 65
Gua prctica N 8 66
Prctica dirigida 67
Programa de Computacin, Diseo y Extensin
Algortmica
188
Captulo 09
Estructura repetitiva Repetir..Hasta 69
Gua practica N 9 70
Prctica dirigida 72
Anidamiento de estructuras repetitivas 73
Gua prctica N 10 73
Prctica dirigida 75
Problemas mltiples propuestos 76
Procedimientos y funciones 79
SubProgramas 79
Captulo 10
Parmetros por valor y/o referencia 81
Gua prctica 83
Captulo 11
Funciones 87
Prctica dirigida N 1 88
Captulo 12
Arreglos 91
Arreglos unidimensionales (vectores) 91
Vector dinmico 92
Gua prctica 92
Prctica dirigida N 1 94
Problemas propuestos 95
Captulo 13
Arreglos Bidimensionales (Matrices) 97
Problemas resueltos 99
Prctica dirigida 101
Prctica propuesta 102
Captulo 14
Programacin orientado a objetos (POO) 105
Clase 106
Objeto 106
Encapsulamiento 106
Abstraccin 106
Herencia 106
Relaciones 106
Defnicin de una clase 107
Los mtodos 107
Las propiedades 108
Creacin de un objeto 108
Gua de laboratorio 111
En Visual Basic (modo consola) 111
Problemas desarrollados 115
Estructuras de Control 142
Estructuras Condicionales 142
Estructura Selectiva 143
Estructuras repetitivvas 144
Procedimientos y funciones 149
Vectores y matrices 155
Matrices 161
ndice General 169

Das könnte Ihnen auch gefallen