Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Los derechos de edicin, distribucin y contenidos de este texto son de exclusividad del
GRUPO IDAT.
Fundamentos de Programacin
PRESENTACIN
Esperamos que este material en su primera edicin, sirva de gran ayuda a los
estudiantes Idatinos y contribuya en el proceso de su formacin profesional.
Fundamentos de Programacin
Fundamentos de Programacin
NDICE
Nro. Pg.
UNIDAD I.. 09
UNIDAD II. 79
APNDICES. 165
BIBLIOGRAFA.. 177
Fundamentos de Programacin
Fundamentos de Programacin
Fundamentos de Programacin
Fundamentos de Programacin
CAPTULO I
INTRODUCCIN A LA ALGORTMICA
OBJETIVOS ESPECFICOS
1. Introduccin a la Algortmica.
2. Conceptualizar el Algoritmo y definir las caractersticas
3. Como elaboramos un Algoritmo
CONTENIDOS
ALGORITMOS
Entenderemos como problema a cualquier accin o evento que necesite cierto grado de
anlisis, desde la simpleza de cepillarse los dientes hasta la complejidad del
ensamblado de un automvil. En general, cualquier problema puede ser solucionado
utilizando un algoritmo, en este sentido podemos utilizar los algoritmos para resolver
problemas de cmputo.
1. Salir de la cama
2. Quitarse el pijama
3. Ducharse
4. Vestirse
5. Desayunar
6. Arrancar el automvil para ir al trabajo o tomar transporte.
Es importante recalcar que los pasos de un algoritmo no son conmutativos pues, no dara
solucin al mismo problema a tratar.
ROBUSTEZ DE UN ALGORITMO
Quiere decir que un algoritmo debe contemplar todas las posibles facetas del problema
que queremos resolver, al elaborar un algoritmo no se nos debe escapar ningn detalle
que provoque un funcionamiento malo nuestro algoritmo. Si logramos construir un
algoritmo robusto, cualquier giro inesperado del problema ser controlado por el
algoritmo, es decir, debe ser flexible a cambios.
Puede darse el caso de que exista un algoritmo eficaz pero no eficiente, en lo posible
debemos de manejar estos dos conceptos conjuntamente.
Para lograr resolver cualquier problema se deben seguir bsicamente los siguientes
pasos:
Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y
precisa. Es importante que se conozca lo que se desea que realice la computadora;
mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente
etapa.
DEFINICIN DE UN ALGORITMO
El Algoritmo es una secuencia de pasos lgicos necesarios para llevar a cabo una tarea
especfica, como la solucin de un problema.
CARACTERSTICAS DE UN ALGORITMO
Ser finito. Se debe terminar en algn momento; o sea debe de tener un nmero
finito de pasos.
ESTRUCTURA DE UN ALGORITMO
Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes
para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas.
Los pasos en esta primera descripcin pueden requerir una revisin adicional antes de
que podamos obtener un algoritmo claro, preciso y completo.
Este mtodo de diseo de algoritmos en etapas, yendo de los conceptos generales a los
de detalle, se conoce como mtodo descendente (TOP-down).
Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie
de un rectngulo proporcionndole su base y altura. Lo primero que debemos hacer es
plantearnos las siguientes preguntas:
Especificaciones de entrada
- Qu datos son de entrada?
- Cuntos datos se introducirn?
- Cuntos son datos de entrada vlidos?
Especificaciones de salida
- Cules son los datos de salida?
- Cuntos datos de salida se producirn?
- Qu formato y precisin tendrn los resultados?
EJERCICIOS RESUELTOS
1. Defina un algoritmo para realizar una llamada
INICIO
1. Acercarse al Telfono
2. Levantar el Auricular
3. Recordar el Nmero telefnico
4. Discar el Nmero
5. Esperar que respondan
6. Conversar
7. Colgar el Auricular
FIN
2. Defina un algoritmo para cambiar bombilla
INICIO
1. Colocar una escalera debajo de la bombilla
2. Subir la escalera
3. Desenroscar la bombilla
4. Bajar la escalera
5. Coger la bombilla nueva
6. Subir la escalera
7. Enroscar la bombilla
8. Bajar la escalera
9. Retirar la escalera
FIN
3. Defina un Algoritmo para cambiar una Llanta
INICIO
1. Bajarse del Auto
2. Abrir la cajuela, sacar la gata y la llave
3. Colocar la gata y levantar el auto
4. Destornillar los pernos
5. Sacar la llanta
6. Sacar la llanta de repuesto
7. Colocar la llanta de repuesto
8. Enroscar los pernos
9. Bajar el auto
10. Guardar la llanta, la gata y la llave
FIN
INICIO
1. Encender la Radio
2. Seleccionar la opcin TAPE
3. Insertar el CD
4. Esperar que cargue el CD
5. Graduar el volumen
6. Escuchar el CD
FIN
EJERCICIOS PROPUESTOS
5. Defina un Algoritmo que permita Elaborar el Arroz con pollo, Sugerencia: Conversar
con la Mam.
7. Defina un Algoritmo que permita realizar una compra al crdito en una empresa
comercial.
CAPTULO II
OBJETIVOS ESPECFICOS
CONTENIDOS
Datos, definicin
Tipos de datos: Numrico, de cadena, lgicos
Manejo de Operadores
Expresiones
Ejercicios Prcticos
DEFINICIN DE DATOS
1. Un dato es la expresin general que describe los objetos con los cuales opera una
computadora.
2. Existen dos tipos de datos: simples (sin estructuras) y compuestos (estructurados),
los datos compuestos son conjuntos de partidas de datos simples con relaciones
definidas entre ellos.
3. Los datos simples son: numricos, lgicos y caracter.
DATOS NUMRICOS
1. Es el conjunto de los valores numricos y puede ser expresado como
numricoentero y numricoreal.
DATOS LGICOS
1. Tambin llamados booleanos, es aquel que solo puede tomar uno de dos
valores: verdadero (true) o falso (false).
DATOS CARACTER
1. Este tipo de dato contiene un solo carcter.
EJERCICIOS PRCTICOS
Datos Tipo
Hola
123
Quin eres?
Verdadero
El Sabio
Falso
12.56
12/15
Trae
EL Quijote
56.8999999
Alo!
Persona
Juan
MANEJO DE OPERADORES
Definicin
TIPOS DE OPERADORES
Aritmticos
De relacin,
Lgicos,
De asignacin,
OPERADORES ARITMTICOS
Los operadores aritmticos son los ms sencillos de entender y de utilizar.
Todos ellos son operadores binarios.
Se utilizan los operadores siguientes:
OPERADOR SIGNIFICADO
+ SUMAR
- RESTAR
* MULTIPLICAR
\, DIV DIVISION ENTERA
/ DIVISION REAL
MOD, % RESTO ARTIMETICO
POTENCIACION
OPERADORES RELACIONALES
Una caracterstica imprescindible de cualquier lenguaje de programacin es la
de considerar alternativas, esto es, la de proceder de un modo u otro segn se
cumplan o no ciertas condiciones.
Los operadores relacionales permiten estudiar si se cumplen o no esas
condiciones.
En un programa si una condicin se cumple, el resultado es cierto; en caso
contrario, el resultado es falso.
Los operadores relacionales son los siguientes
OPERADOR SIGNIFICADO
> MAYOR
< MENOR
>= MAYOR o IGUAL
= IGUAL
<> DIFERENTE
OPERADOR PRIORIDAD
() [] Signos de Agrupacin
Potencia
*, /, % Producto y Divisin
+, - Suma y Resta
Y Operador lgico y
O Operador lgico O
NO Operador lgico de negacin
>,>=,<,<=,=,<> Operador de relacin
EXPRESIONES
Definicin
Es una combinacin de distintas variables, constantes, operadores y parntesis.
Tiene un valor concreto que es el resultado de evaluarla de izquierda a derecha.
El valor devuelto tras la evaluacin de una expresin determina el tipo de la
expresin (entera, lgica )
Ejemplo
Sentencias
Las expresiones son tems elementales de unas entidades que son las
sentencias. Si nos fijamos en la expresin anterior, la variable que est a la
izquierda del signo (=), el operador de asignacin, la expresin aritmtica y el
carcter (;) constituyen una sentencia.
Las sentencias son unidades completas, ejecutables en s mismas. Ya se ver
que muchos tipos de sentencias incorporan expresiones aritmticas, lgicas o
generales como componentes de dichas sentencias.
EJERCICIOS PROPUESTOS
1. (15 + ( 12 * 2 ) / 4 ) + ( 30 MOD 7) * 5
4. 21 + ( 15 + 20 MOD 9 ) DIV 3
5. Sea: a = 10 b = 12 c = 13 d =10
CAPTULO III
VARIABLES Y CONSTANTES
OBJETIVOS ESPECIFICOS
CONTENIDOS
Variables, definicin
Identificacin de una Variable
Declaracin de una Variable
Constantes
Ejercicios Prcticos
VARIABLES
Definicin
Declaracin
Ejemplos
DECLARACION
ABC VALIDO
A123 VALIDO
1A2B NO VALIDO
_MiVariable VALIDO
Mi_Variable VALIDO
Mi_123456 VALIDO
_1_2_3 VALIDO
Mi@Variable NO VALIDO
Declaracin
Ejemplos:
ENTERO: A, B, C
REAL: X, Y, Z
CARCTER: Car1, Car2
CADENA : Texto1, Texto2
LOGICO: Estado, Ok, Done
CONSTANTES
Definicin
Ejemplos
PI=3.14
SALUDO=Hola mundo
MAXIMO=500
RESPUESTA=S
Equivalencias en Visual Basic que se va utilizar para realizar las pruebas de los
seudocdigos:
CONST PI=3.14
CAPTULO IV
ESTRUCTURAS BSICAS
OBJETIVOS ESPECFICOS
CONTENIDOS
ALGORITMO
Tipos de Algoritmos
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan clculos numricos para definir los
pasos del proceso.
Lenguajes Algortmicos
Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un
proceso. De los cuales se encuentran los siguientes tipos de
Lenguajes Algortmicos:
Diagrama de Flujo
Pseudo Cdigo
INICIO
Edad: Entero
ESCRIBA cual es tu edad?
Lea Edad
SI Edad >=18 entonces
ESCRIBA Eres mayor de Edad
FIN SI
ESCRIBA fin del algoritmo
Estructuras Algortmicas
Estructura
ALGORITMO Nombre_Descriptivo
Variables:
INICIO
Instrucciones
y/o
Sentencias
FIN
Sentencias Declarativas
Algoritmo CalculaArea
Cabecera del Programa
VARIABLE
Declaracin de Variables
Real: Radio, A
Sentencias Ejecutables
CAPITULO V
ESTRUCTURAS SECUENCIALES
OBJETIVOS ESPECFICOS
CONTENIDOS
Estructura Secuencial
Definicin
Estructura
Desarrollo Prctico
DEFINICIN
DIAGRAMA DE FLUJO
PSEUDOCDIGO
La Asignacin
Consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona ser
reconocida con el nombre de la variable que recibe el valor.
La asignacin se puede clasificar de la siguiente forma:
ESCRIBIR (VALOR)
ESCRIBIR (MENSAJE)
LEER VARIABLE
EJERCICIOS RESUELTOS 1
ALGORITMO Ejemplo1
VARIABLES
ENTERO: A
INICIO
LEER (A)
A A + 2
ESCRIBIR (A)
FIN
ALGORITMO Ejemplo2
VARIABLES
ENTERO: A, B, Suma, Producto
INICIO
LEER ( A, B )
Suma A + B
Producto A * B
ESCRIBIR (Suma, Resta, Producto)
FIN
ALGORITMO Ejemplo3
VARIABLES
ENTERO: N
REAL: Porcentaje
INICIO
LEER (N)
Porcentaje N * (5 / 100)
ESCRIBIR (Porcentaje)
FIN
4. Una empresa decide otorgar una bonificacin del 5% del haber bsico por cada hijo
a todos sus trabajadores. Calcule el total a pagar a un trabajador.
ALGORITMO Ejemplo4
VARIABLES
ENTERO NroHijos
REAL Hbasico, Bonificacin, Total
INICIO
LEER (Hbasico, NroHijos)
Bonificacin (Hbasico * 0.05) * NroHijos
Total Hbasico + Bonificacin
ESCRIBIR (Total)
FIN
ALGORITMO Ejemplo5
VARIABLES
ENTERO Nmero, Inverso, Unidad, Decena
INICIO
LEER (Nmero)
Unidad Nmero MOD 10
Decenal Nmero DIV 10
Inverso 10 * Unidad + Decena
ESCRIBIR (Inverso)
FIN
6. Ingrese por teclado el nombre del cliente y el costo de una PC; por estar de
promocin la empresa, se aplicar un descuento del 15% del costo, donde el neto
es la diferencia del costo menos el descuento. Aplique el 19% del neto donde el
monto a pagar es la suma del neto mas IGV. Visualice el descuento, neto, IGV y el
monto a pagar.
ALGORITMO Ejemplo6
VARIABLES
REAL Costo, Descuento, Neto, IGV, Monto, Pago
CADENA Nombre
INICIO
LEER (Nombre, Costo)
Descuento 0.15 * Costo
Neto Costo Descuento
IGV 0.19 * Neto
Pagar Neto + IGV
ESCRIBIR (Descuento, Neto, IGV, Pagar)
FIN
ALGORITMO Ejemplo7
VARIABLES
ENTERO Matriculas, Aulas, Falta
INICIO
LEER (matriculas)
Aula Matriculas DIV 40
Falta Matricula MOD 40
ESCRIBIR (Aula, Matricula)
FIN
8. Ingrese por teclado un Nmero de 3 cifras, visualice la suma de las cifras del nmero
ingresado.
ALGORITMO Ejemplo8
VARIABLES
ENTERO Nmero, Unidad, Decena, Suma
INICIO
LEER (Nmero)
Unidad Nmero MOD 10
Decena (Nmero DIV 10) MOD 10
Centena NMERO DIV 100
Suma Unidad + Decena + Centena
ESCRIBIR (Suma)
FIN
9. Ingrese por teclado la cantidad de metros cbicos de agua que se consume en una
casa. Calcula y visualice cada uno de los gastos sabiendo que el costo por metros
cubico es 0.35 nuevos soles y el monto del consumo es el producto de la cantidad de
metros cbicos por el precio.
Del total a pagar deber pagar el impuesto a las Ventas que representa el 19% del
Monto Total, calcule y visualice el Monto Total a Pagar.
ALGORITMO Ejemplo9
VARIABLES
REAL Cbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar
INICIO
LEER (Cbicos)
Monto 0.35 * Cubicos
Mant Monto * 0.25 /100
PJ Monto * 0.15 / 100
Explor Monto * 0.05 / 100
Limp Monto * 0.07 / 100
Monto Monto + Mant + PJ + Explor + Limp
IGV Monto * 0.19
Pagar Monto + IGV
ESCRIBIR (Mantenimiento:, Mant)
ESCRIBIR (Parques y Jardines:, PJ)
ESCRIBIR (Exploracin:, Explor)
ESCRIBIR (Limpieza:, Limp)
ESCRIBIR (Monto:, Monto)
ESCRIBIR (IGV:, IGV)
ESCRIBIR (A Pagar:, Pagar)
FIN
10. Una Empresa dedicada a la Venta de Electrodomsticos, realiza una promocin del
20% + 15% de descuento. Ingrese el precio de un electrodomstico, calcule y
visualice su descuento y el neto a pagar.
ALGORITMO Ejemplo10
VARIABLES
INICIO
LEER (Precio)
Descuento1 (Precio * 0.20)
Descuento2 (Precio Descuento1) * 0.15
Neto Precio (Descuento1 + Descuento2)
ESCRIBIR ((Descuento1+Descuento2), Neto)
FIN
EJERCICIOS RESUELTOS 2
Iniciar la codificacin en Visual Net 2005 (software donde se comprueban los algoritmos
desarrollados)
ALGORITMO EDAD
INICIO
// Declaracin de las variables M : almacena cantidad de meses
Entero: M , A , AM A : almacena cantidad de aos
AM : almacena cantidad total de meses
// Muestra en pantalla e Ingresa Datos
ESCRIBIR Ingrese Anyos:
LEER A
ESCRIBIR Ingrese Meses:
LEER M
// Factor: 1 ao = 12 meses
//Proceso: consideramos que 1 ao tiene 12 meses
AM = A * 12 + M
Imports system.console
Imports System.Math
Module Module1
Sub main()
End Sub
End Module
2. Ingresar por teclado las dimensiones de un terreno, largo, ancho, precio por metro
cuadrado, se pide calcular y ESCRIBIR:
- El rea total
- El precio del Terreno
- La cuota inicial que es 13% del precio
- Cuota mensual a pagar si el pago es en dos aos
INICIO
// Declaracin de las variables
Real: larg,anch ,pxm, prect , cuotaini,saldo, cutamensu
Imports system.console
Imports System.Math
Module Module2
Sub main()
Dim larg, anch, pxm, area, prect, cuotini, sald, cuotmensu As Double
Write("ingresar largo..:")
larg = ReadLine()
Write("ingresar ancho..:")
anch = ReadLine()
Write("ingresar precio por metros ..:")
pxm = ReadLine()
area = (larg * anch)
prect = (area * pxm)
cuotini = (prect * 0.13)
sald = (prect - cuotini)
cuotmensu = (sald / 24)
WriteLine("el area es..:" & area)
WriteLine("precio total..:" & prect)
WriteLine("cuota inicial..:" & cuotini)
WriteLine("el saldo es ..:" & sald)
WriteLine("la cuota mensual es ..:" & cuotmensu)
ReadLine()
End Sub
End Module
3. Se deposita una cierta de dinero en un banco , se desea saber los intereses ganados
y el valor futuro del dinero
INICIO
// Declaracin de las variables variables
meses :Entero
ints, monto, vfut :real
FIN
Imports System.Console
Imports System.Math
Module Module3
Sub main()
Write("ingresa monto..:")
monto = ReadLine()
Write("ingresa meses..:")
meses = ReadLine()
ints = monto * 0.02 * meses
vfut = monto + meses
WriteLine()
WriteLine("el valor final es..:" & vfut)
ReadLine()
End Sub
End Module
INICIO
// Declaracin de las variables
Real : Vp , Vm, Vc
Vp Valor en Pies almacena un valor en pies
Vm Valor en metros almacena un valor en metros
Vc Valor en centimetros almacena un valor en centimetros
Factor : 1 pie = 30.48 cm 1 m = 100 cm
// Proceso : Calcula Vm
Vc = Vp * 30.48 // Valor en cm
Vm = Vc /100 // Valor en m
// Salida en pantalla
ESCRIBIR Vm
FIN
Imports System.Console
Imports System.Math
Module Module 4
Sub main()
// Salida en pantalla
WriteLine("velocidad en metros.:" & vm)
ReadLine()
End Sub
End Module
INICIO
//Declaracin de las variables
Real: A, B, C, P, sp, Area
Lados del tringulo: A , B y C
P : Permetro del Tringulo (suma de sus lados)
sp : SemiPermetro del Tringulo = P/2
Area : SQRT ( sp * (sp A) * (sp - B) * (sp - C))
// Ingreso de Datos
LEER A, B, C
// Salida de Resultados
ESCRIBIR P, Area
FIN
Imports System.Console
Imports System.math
Module Module 5
Sub Main()
Dim l1, l2, l3 As Integer
Dim area, p As Double
Write("Ingresa lado 1..:")
l1 = ReadLine()
Write("ingresa lado 2..:")
l2 = ReadLine()
Write("ingresa lado 3 ..:")
l3 = ReadLine()
p = (l1 + l2 + l3) / 2
area = Sqrt(p * (p - l1) * (p - l2) * (p - l3))
WriteLine()
WriteLine("ESCRIBIR area..:" & area)
ReadLine()
End Sub
End Module
VARIABLES
ENTERO: Nmero, Inverso, Unidad, Decena
INICIO
LEER (Nmero)
Unidad Nmero MOD 10
Decenal Nmero DIV 10
Inverso 10 * Unidad + Decena
ESCRIBIR (Inverso)
FIN
Imports System.Console
Imports System.math
Module Module6
Sub Main()
Dim Nmero, Inverso, Unidad, Decena As Integer
Write("Ingresa un nmero de 2 cifras..:")
nmero =ReadLine()
Unidad = Nmero MOD 10
Decenal = Nmero \10
Inverso = 10 * Unidad + Decena
WriteLine("nmero invertido.:" & inverso)
ReadLine()
End Sub
End Module
VARIABLES
ENTERO: Matriculas, Aulas, Falta
INICIO
LEER (matriculas)
Aula Matriculas DIV 40
Falta Matricula MOD 40
ESCRIBIR (Aula, Matricula)
FIN
Imports System.Console
Imports System.math
Module Module7
Sub Main()
Aula=Matriculas \40
Falta =Matricula MOD 40
End Sub
End Module
8. Ingrese por teclado un Nmero de 3 cifras, visualice la suma de las cifras del nmero
ingresado.
VARIABLES
ENTERO Nmero, Unidad, Decena, Suma
INICIO
LEER (Nmero)
Unidad Nmero MOD 10
Decena (Nmero DIV 10) MOD 10
Centena NMERO DIV 100
Suma Unidad + Decena + Centena
ESCRIBIR (Suma)
FIN
9. Ingrese por teclado la cantidad de metros cbicos de agua que se consume en una
casa. Calcula y visualice cada uno de los gastos sabiendo que el costo por metros
cubico es 0.35 nuevos soles y el monto del consumo es el producto de la cantidad de
metros cbicos por el precio.
Del total a pagar deber pagar el impuesto a las ventas que representa el 19% del
Monto Total, calcule y visualice el Monto Total a Pagar.
VARIABLES
REAL: Cbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar
INICIO
LEER (Cbicos)
Monto 0.35 * Cubicos
Mant Monto * 0.25 /100
PJ Monto * 0.15 / 100
Explor Monto * 0.05 / 100
Limp Monto * 0.07 / 100
Monto Monto + Mant + PJ + Explor + Limp
IGV Monto * 0.19
Pagar Monto + IGV
ESCRIBIR (Mantenimiento:, Mant)
ESCRIBIR (Parques y Jardines:, PJ)
ESCRIBIR (Exploracin:, Explor)
ESCRIBIR (Limpieza:, Limp)
ESCRIBIR (Monto:, Monto)
ESCRIBIR (IGV:, IGV)
ESCRIBIR (A Pagar:, Pagar)
FIN
10. Una Empresa dedicada a la Venta de Electrodomsticos, realiza una promocin del
20% + 15% de descuento. Ingrese el precio de un electrodomstico, calcule y
visualice su descuento y el neto a pagar.
VARIABLES
INICIO
LEER (Precio)
Descuento1 (Precio * 0.20)
Descuento2 (Precio Descuento1) * 0.15
Neto Precio (Descuento1 + Descuento2)
ESCRIBIR ((Descuento1+Descuento2), Neto)
FIN
EJERCICIOS PROPUESTOS
1. Ingrese por teclado un nmero, calcule y visualice:
a) El doble del nmero ingresado
b) La tercera parte del nmero ingresado
c) El cubo del nmero ingresado
4. Ingrese por teclado el nombre del producto, el precio unitario y la cantidad vendida,
calcule y visualice:
6. Ingrese por teclado un nmero de dos cifras, mostrar el nmero pero en sentido
inverso.
7. Se desea repartir cierto monto de dinero entre tres personas que conforman una
empresa; obtener el monto que le corresponde a cada persona si la reparticin se
basa en la cantidad de acciones que posee cada socio:
Socio % Acciones
A 35%
B 45%
C 20%
Ingrese por teclado el monto de dinero, visualice el importe que recibir cada uno de
los accionistas.
8. Desarrolle un algoritmo para la compaa telefnica que permite mostrar el pago por
consumo telefnico, para esto se ingresar el cdigo del usuario, el nmero
telefnico y la cantidad de minutos utilizados.
Mostrar el cdigo del usuario, el importe de las llamadas realizadas, el IGV y el pago
total, considerando que la empresa cobra 0.30 cntimos de nuevo sol por cada
minuto, la renta bsica cobra 48 nuevos soles y el IGV es el 19% del Monto.
10. Ingrese por teclado la cantidad de soles, transformarlo en dlares; considere el tipo
de cambio del da.
a) Cantidad de horas
b) Cantidad de minutos
c) Cantidad de segundos restantes
13. Ingrese por teclado un nmero, incrementar el 2.4% de su valor, mostrar el valor del
incremento y el nuevo nmero.
14. Ingrese por teclado un nmero de 4 cifras, mostrar los nmeros formados por las
cifras de los extremos y los medios.
15. Ingrese por teclado el sueldo de un trabajador, asumiendo que ste es un valor
entero, visualizar la mejor distribucin de billetes y monedas que se utilizarn para
pagar un sueldo.
Considere billetes de 100, 50, 20 ,10.
Monedas de 5, 2 ,1
16. En un instituto se planteo los siguientes pesos para cada una de las evaluaciones
que tendr en el curso.
Para tal caso ingrese el nombre del alumno y las 4 evaluaciones, mostrar el nombre
del alumno y su promedio.
CAPITULO VI
OBJETIVOS ESPECFICOS
CONTENIDOS
Clasificacin
Definicin
Sintaxis
Desarrollo Practico
ESTRUCTURAS CONDICIONALES
Definicin
Las estructuras condicionales comparan una variable contra otro(s) valor (es), para que
en base al resultado de esta comparacin, se siga un curso de accin dentro del
programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o
contra una constante, segn se necesite.
Pongamos un pequeo ejemplo. Imagine que tenemos nuestro robot subiendo las
escaleras de la Torre Eiffel y le indicamos lo siguiente: si est en el escaln 200 entonces
no contine subiendo, sino continua su ascensin. Como puede ver aqu se nos presenta
una condicin y, segn en el punto de la escalera en la que se encuentre, nuestro robot
se parar o continuar subiendo.
Qu es una Condicin?
Se pueden utilizar condiciones tan complejas como se quiera siempre que estn bien
formadas
Clasificacin
Definicin
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCDIGO
EJERCICIOS RESUELTOS
1. Ingrese por teclado 2 nmeros enteros y visualice el mayor de los 2 nmeros
ingresados.
ALGORITMO Ejemplo1
VARIABLES
ENTERO: A, B, Mayor
INICIO
LEER ( A, B )
Mayor A
SI ( B > A )ENTONCES
Mayor B
FIN-SI
ESCRIBIR ( Mayor )
FIN
Imports System.Console
Imports System.math
Module Module1
Sub Main()
End Sub
End Module
ALGORITMO Ejemplo2
VARIABLES
ENTERO: N
INICIO
LEER ( N )
SI ( N > 10) ENTONCES
N N + 10
FIN-SI
ESCRIBIR ( N )
FIN
Imports System.Console
Imports System.math
Module Module1
Sub Main()
Dim N As Integer
Write("Ingresa valor 1..:")
N = ReadLine()
IF N>10 THEN
N=N+10
END IF
WriteLine("EL NUEVO VALOR..:" & N)
ReadLine()
End Sub
End Module
3. Ingrese por teclado la edad de una persona; si su edad es mayor a 17, visualice un
mensaje Es mayor de edad.
ALGORITMO Ejemplo3
VARIABLES
ENTERO: edad
INICIO
LEER (edad)
SI (edad > 17) ENTONCES
ESCRIBIR Es mayor de edad
FIN-SI
FIN
Imports System.Console
Imports System.math
Module Module1
Sub Main()
End Sub
End Module
ALGORITMO Ejemplo4
VARIABLES
REAL: talla
INICIO
LEER (talla)
SI (talla>=1.70) ENTONCES
ESCRIBIR Servicio Obligatorio
FIN-SI
FIN
Imports System.Console
Imports System.math
Module Module1
Sub Main()
End Sub
End Module
5. Una empresa otorga un bonificacin del 5% del haber bsico solo a sus trabajadores
que tienen hijos, calcular el total a pagar a un trabajador.
ALGORITMO Ejemplo5
VARIABLES
ENTERO: NroHijos
REAL: Hbasico, Bonificacin, Total
INICIO
LEER (Hbasico, NroHijos)
Bonificacin 0
SI ( NroHijos > 0 ) ENTONCES
Bonificacin Hbasico * 0.05 * NroHijos
FIN-SI
Total Hbasico + Bonificacin
ESCRIBIR (Total)
FIN
Imports System.Console
Imports System.math
Module Module1
Sub Main()
End Sub
End Module
EJERCICIOS PROPUESTOS
2. Ingrese por teclado un nmero entero visualice el cuadrado del nmero, si el nmero
es mayor a 10 y menor a 50.
3. Ingrese por teclado la edad y talla de una dama, visualice un mensaje Postulante a la
Escuela de Oficiales, si su edad mnima es 17 y su talla mnima es 1.65 metros.
7. Ingrese por teclado un nmero, si es nmero par, duplique el valor del nmero;
mostrar el nuevo valor.
8. Ingrese por teclado un nmero, si es de 3 cifras, visualice la suma de las cifras del
nmero.
9. Ingrese por teclado el nombre del curso y su precio; si el nombre del curso es
Networking, se le aplicar un descuento del 15% al precio, visualice el descuento y el
nuevo precio.
11. Ingrese por teclado dos notas, calcule su promedio sabiendo que la segunda nota es
peso doble; visualice un mensaje Aprobado, si su promedio es mayor o igual a 11
12. Ingrese por teclado un nmero, si el nmero es impar y de tres cifras, visualice el
nmero incrementado por su nmero invertido.
13. Ingrese por teclado el nombre, precio y la cantidad de productos a vender, calcule el
monto de la venta. Se aplicar un descuento del 35% de su precio por la compra de
20 unidades. Visualice el descuento y el neto.
CAPTULO VII
OBJETIVOS ESPECFICOS
CONTENIDOS
Definicin
Sintaxis
Desarrollo Practico
Definicin
SINTAXIS
DIAGRAMA DE FLUJO
EJERCICIOS RESUELTOS
1. Ingrese por teclado 2 nmeros, visualice el mayor de los dos nmeros ingresados.
ALGORITMO Ejemplo1
VARIABLES
ENTERO: A, B
INICIO
LEER(A, B)
SI ( A > B )ENTONCES
ESCRIBIR (A)
SINO
ESCRIBIR (B)
FIN-SI
FIN
ALGORITMO Ejemplo2
VARIABLES
ENTERO: A
INICIO
LEER(A)
SI ( A MOD 2 = 0) ENTONCES
ESCRIBIR (2*A)
SINO
ESCRIBIR (A^2)
FIN-SI
FIN
Imports System.Console
Module Module1
Sub Main()
Dim A As Integer
Write("Ingresa valor 1..:")
A = ReadLine()
IF A MOD 2=0 THEN
WriteLine("EL DOBLE ES..:" & 2*A)
ELSE
WriteLine("SU CUADRADO ..:" & A^2)
END IF
ReadLine()
End Sub
End Module
ALGORITMO Ejemplo3
VARIABLES
ENTERO: edad
INICIO
LEER (edad)
SI (edad>17) ENTONCES
ESCRIBIR (APTO)
SINO
ESCRIBIR (NO APTO)
FIN-SI
FIN
Imports System.Console
Module Module1
Sub Main()
END IF
ReadLine()
End Sub
End Module
ALGORITMO Ejemplo3
VARIABLES
REAL: ahorros
INICIO
LEER (ahorros)
SI (ahorros>1000) ENTONCES
ESCRIBIR (PUEDE COMPRAR SU TV)
SINO
ESCRIBIR (SIGA AHORRANDO)
FIN-SI
FIN
Imports System.Console
Module Module1
Sub Main()
Dim AHORROS As DOUBLE
Write("Ingrese ahorros)
ahorros = ReadLine()
IF ahorros>1000 THEN
WriteLine("puede comprar su tv)
ELSE
WriteLine("siga ahorrando)
END IF
ReadLine()
End Sub
End Module
5. Ingrese por teclado el tiempo que demora en recorrer 1500 metros un atleta,
visualice un mensaje ATLETA A COMPETIR EN LA OLIMPIADA si la marca
mnima es 3 minutos, sino visualice un mensaje PREPARARSE MAS
ALGORTMICA Ejemplo5
VARIABLES
REAL: tiempo
INICIO
LEER (tiempo)
SI (tiempo<=3.00) ENTONCES
ESCRIBIR (ATLETA A COMPETIR EN LA OLIMPIADA)
SINO
ESCRIBIR (PREPARARSE MAS)
FIN-SI
FIN
Imports System.Console
Module Module1
Sub Main()
Dim tiempo As double
Write("Ingresa EDAD..:")
tiempo = ReadLine()
IF tiempo<=3.00 THEN
WriteLine (ATLETA A COMPETIR EN LA OLIMPIADA))
ELSE
WriteLine("PREPARARSE MAS)
END IF
ReadLine()
End Sub
End Module
6. Una tienda comercial ofrece un descuento del 3% del valor de compra si el pago se
efecta al contado, en caso el pago sea con tarjeta se le recarga un 5% del valor de
compra. Calcular el total a pagar.
ALGORITMO Ejemplo6
VARIABLES
REAL: Vcompra, Descuento, Recargo, Total
CARCTER: TipoPago
INICIO
LEER (Vcompra, TipoPago)
Descuento 0 : Recargo 0
SI (TipoPago = C ) ENTONCES
Descuento Vcompra * 0.03
SINO
Recargo Vcompra * 0.05
FIN-SI
Total Vcompra Descuento + Recargo
ESCRIBIR (Total)
FIN
Imports System.Console
Module Module1
Sub Main()
Dim Vcompra, Descuento, Recargo, Total As double
Dim TipoPago as char
Write("Ingresa valor de la compra..:")
vcompra = ReadLine()
Write("Ingrese tipo de compra c/r..:")
tipopago = ReadLine()
If (TipoPago = C ) then
Descuento = Vcompra * 0.03
Else
Recargo =Vcompra * 0.05
End if
Total = Vcompra Descuento + Recargo
WriteLine("total a pagar: & totAL)
ReadLine()
End Sub
End Module
ALGORTMICA Ejemplo7
VARIABLES
ENTERO: N, A, C
INICIO
LEER( N )
SI ( N >= 100) Y ( N <= 999 ) ENTONCES
A N DIV 100
C ( N MOD 100) MOD 10
SI ( A = C ) ENTONCES
ESCRIBIR (CAPICUA)
SINO
ESCRIBIR(NO ES CAPICUA)
FIN-SI
FIN-SI
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N, A, C As INTEGER
Write("Ingrese UN NMERO DE 3 CIFRAS)
N = ReadLine()
IF ( N >= 100) AND ( N <= 999 ) THEN
A = N \ 100
C = ( N MOD 100) MOD 10
IF ( A = C ) THEN
WRITELINE (CAPICUA)
ELSE
WRITELINE (NO ES CAPICUA)
END IF
END IF
ReadLine()
End Sub
End Module
8. Una tienda comercial por campaa publicitaria est ofreciendo descuentos por sus
diversos artculos, donde lo artculos que cuestan mnimo 1000 nuevos soles se le
aplicar un descuento del 10% y aquellos que son menores a dicho monto se le
aplicar un descuento del 3% del precio. Visualice el descuento y el neto
ALGORITMO Ejemplo8
VARIABLES
REAL: Precio, Descuento, Neto
INICIO
LEER (Precio)
Descuento 0
SI (Precio>=1000) ENTONCES
Descuento Precio * 0.10
SINO
Descuento Precio * 0.03
FIN-SI
Neto Precio Descuento
ESCRIBIR (Descuento, Neto)
FIN
ALGORTMICA Ejemplo9
VARIABLES
ENTERO: edad
REAL: talla
CADENA: nombre, estudios
INICIO
LEER (nombre, talla, edad, estudios)
SI ( edad>17 Y talla>=1.70 Y estudios=SUPERIOR) ENTONCES
ESCRIBIR (APTO PARA ESCUELA DE OFICIALES)
SINO
ESCRIBIR (APTO PARA ESCUELA DE SUB OFICIALES)
FIN-SI
FIN
EJERCICIOS PROPUESTOS
1. Ingrese por teclado 2 notas, visualice el mayor de las dos notas y si esa nota es
aprobatoria o no (notas de 0-20).
4. Ingrese por teclado dos nmeros, visualice el menor de los dos nmeros ingresados.
6. Ingrese por teclado tres nmeros enteros diferentes, visualice el segundo mayor
nmero.
8. Ingrese por teclado el nombre de un alumno y sus tres notas, calcule y visualice su
promedio; si el promedio es menor a 11, deber ingresar la nota sustitutoria que
reemplazara a la nota ms baja; calcule y visualice su promedio.
10. Ingrese por teclado el nombre de un obrero y sus horas trabajadas, el pago que
recibe por cada hora es de 15 nuevos soles. Su jornal es el producto del pago por
hora y las horas trabajadas; si trabaja ms de 40 horas, por cada hora extra
trabajada, se le pagar 25 nuevos soles. Visualice el jornal que recibi.
CAPTULO VIII
OBJETIVOS ESPECFICOS
CONTENIDOS
Definicin
Sintaxis
Desarrollo Practico
Definicin
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCDIGO
EJERCICIOS RESUELTOS
1. Ingrese 3 nmeros enteros y visualice el mayor de los 3 nmeros ingresados.
ALGORITMO Ejemplo1
VARIABLES
ENTERO: A, B, C, Mayor
INICIO
LEER( A, B, C)
SI( A>B AND A>C ) ENTONCES
Mayor A
SINO SI( B>A AND B>C ) ENTONCES
Mayor B
SINO
Mayor C
FIN-SI
ESCRIBIR ( Mayor )
FIN
CODIFICACIN EN VISUAL A NIVEL DE CONSOLA
Imports System.Console
Module Module1
Sub Main()
Dim A, B, C, Mayor As INTEGER
Write("Ingrese UN PRIMER VALOR:)
A = ReadLine()
Write("Ingrese UN SEGUNDO VALOR:)
B = ReadLine()
Write("Ingrese UN TERCER VALOR:)
IF ( A>B AND A>C ) THEN
Mayor = A
ELSEIF ( B>A AND B>C ) THEN
Mayor = B
ELSE
Mayor= C
END IF
WRITELINE (EL MAYOR VALOR ES : & Mayor )
ReadLine()
End Sub
End Module
12. Una empresa otorga bonificaciones de su haber bsico segn la categora del
trabajador; categora A: 250; categora B: 200; categora C: 120; otras categoras 50.
ALGORITMO Ejemplo3
VARIABLES
CADENA: Categora
REAL: Bonificacin
INICIO
LEER (Categora)
SI (Categora = A) ENTONCES
Bonificacin 250
SINO SI (Categora = B) ENTONCES
Bonificacin 200
SINO SI (Categora = C) ENTONCES
Bonificacin 120
SINO
Bonificacin 50
FIN-SI
ESCRIBIR (Bonificacin)
FIN
Imports System.Console
Module Module1
Sub Main()
Dim Bonificacin As double
Dim categoria as string
Write("Ingrese una categora :)
categoria = ReadLine()
IF (categoria = A) THEN
Bonificacin=250
ELSEIF (categoria = B) THEN
Bonificacin=200
ELSEIF (categoria = C) THEN
Bonificacin= 120
ELSE
Bonificacin =50
END IF
Writeline(Valor DE Bonificacin : & Bonificacin )
ReadLine()
End Sub
End Module
PROMEDIO CATEGORA
18 20 Excelente
15 17 Bueno
11 14 Regular
0 -10 Malo
ALGORITMO Ejemplo4
VARIABLES
CADENA: Categora
ENTERO: nota
INICIO
LEER (nota)
SI (nota<=10) ENTONCES
Categora Malo
SINO SI (nota<=14) ENTONCES
Categora Regular
SINO SI (nota<=17) ENTONCES
Categora Bueno
SINO
Categora Excelente
FIN-SI
ESCRIBIR (Categora)
FIN
Imports System.Console
Module Module1
Sub Main()
Dim nota As integer
Dim categoria as string
Write("Ingrese nota :)
nota = ReadLine()
If (nota<=10) then
Categora=Malo
Else if (nota<=14) then
Categora = Regular
Else if (nota<=17) then
Categora = Bueno
Else
Categora = Excelente
End if
Writeline(observacion: & categoria)
ReadLine()
End Sub
End Module
14. Una persona est a punto de ver televisin, mostrar si segn su edad est apto para
ver el programa televisivo.
EDAD CATEGORA
18 -ms Contenido para adultos
14 -17 Mayores de 14
0 13 apt
ALGORITMO Ejemplo4
VARIABLES
ENTERO: edad
INICIO
LEER (edad
SI (nota<=13) ENTONCES
ESCRIBIR (apt)
SINO SI (nota<=17) ENTONCES
ESCRIBIR (Mayores de 14)
SINO
ESCRIBIR (Contenido para Adultos)
FIN-SI
FIN
Imports System.Console
Module Module1
Sub Main()
Dim edad As integer
Write("Ingrese edad :)
If (nota<=13) then
Writeline (apta para todos)
Else if (nota<=17) then
Writeline (Mayores de 14)
Else
Writeline (Contenido para Adultos)
End if
ReadLine ()
End Sub
End Module
EJERCICIOS PROPUESTOS
Ingrese por teclado el nombre del Postulando y la facultad que va a estudiar, visualice:
El importe de la matricula
El monto de la mensualidad
El monto total, que es la suma de la matricula y la mensualidad
9. Un cliente, por campaa navidea, desea comprar panteones, donde segn su marca
tiene un precio
Ingrese por teclado el nombre del cliente, la marca del panten y la cantidad de
panetones a comprar; visualice el precio unitario del panten, el monto de la compra,
el descuento y el neto a pagar.
10. Ingrese por teclado la distancia que recorri un atleta, de acuerdo a la distancia, el
atleta est clasificado:
CAPTULO IX
OBJETIVOS ESPECFICOS
CONTENIDOS
Definicin
SINTAXIS
PSEUCODIGO
Donde:
EJERCICIOS RESUELTOS
1. Ingrese un nmero entre 1 y 3, luego visualice su equivalente en letras.
ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
LEER( N )
SI( N = 1 )ENTONCES
ESCRIBIR (UNO)
SINO
SI( N = 2 )ENTONCES
ESCRIBIR (DOS)
SINO
SI( N = 3 )ENTONCES
ESCRIBIR (TRES)
SINO
ESCRIBIR (NMERO NO VALIDO)
FIN-SI
FIN-SI
FIN-SI
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N As INTEGER
Write("Ingrese UN NMERO entre 1- 3 :)
N = ReadLine()
IF ( N =1) THEN
Writeline(uno:)
ELSE
IF N=2 THEN
Writeline(DOS:)
ELSE
IF N=3 THEN
WRITELINE(TRES)
ELSE
Writeline(NMERO NO VALIDO:)
END IF
END IF
END IF
ReadLine()
End Sub
End Module
2. Ingrese el puntaje obtenido por un postulante y luego visualice a que carrera ingreso,
segn la siguiente tabla:
ALGORITMO Ejemplo2
VARIABLES
ENTERO Puntaje
INICIO
LEER ( Puntaje )
SI (Puntaje >= 70) Y (Puntaje < 90) ENTONCES
ESCRIBIR (Contabilidad)
SINO
SI (Puntaje >= 90) Y (Puntaje < 100) ENTONCES
ESCRIBIR (Administracin)
SINO
SI (Puntaje >= 100) Y (Puntaje < 120) ENTONCES
ESCRIBIR (Derecho)
SINO
SI (Puntaje >= 120) Y (Puntaje <= 150) ENTONCES
ESCRIBIR (INGENIERIA)
SINO
ESCRIBIR (LE FALTO:, 70-Puntaje)
FIN-SI
FIN-SI
FIN-SI
FIN-SI
FIN
3. Ingrese el ciclo y turno a estudiar, luego calcule el total a pagar segn la siguiente
tabla:
ALGORITMO Ejemplo3
VARIABLES
REAL Pensin
ENTERO Ciclo
CARCTER Turno
INICIO
LEER( Ciclo, Turno )
SI (Ciclo = 1) ENTONCES
SI (Turno = M) ENTONCES
Pensin 850
SINO
Pensin 800
FIN-SI
SINO
SI (Ciclo = 2) ENTONCES
SI (Turno = M) ENTONCES
Pensin 750
SINO
Pensin 700
FIN-SI
SINO
SI (Turno = M) ENTONCES
Pensin 650
SINO
Pensin 600
FIN-SI/
FIN-SI
FIN-SI
FIN
Consumo Tarifa
[ 1 50 > 0.8
ALGORITMO Ejemplo4
VARIABLES
REAL: Consumo, Tarifa, Monto
INICIO
LEER (Consumo)
SI (Consumo<50) ENTONCES
Tarifa 0.8
SINO
SI (Consumo >= 50) Y (Consumo < 100) ENTONCES
Tarifa 1.5
SINO
SI (Consumo >= 100) Y (Consumo < 150) ENTONCES
Tarifa 1.8
SINO
Tarifa 2.0
FIN-SI
FIN-SI
FIN-SI
Monto Tarifa * Consumo
ESCRIBIR (Tarifa, Monto)
FIN
ALGORITMO Ejemplo5
VARIABLES
REAL: bsico, bonificacin, monto
CADENA: Categora
INICIO
LEER (Categora)
SI (Categora =Empleado) ENTONCES
bsico 600
bonificacin 600
SINO
SI (Categora = Obrero) ENTONCES
bsico 550
bonificacin 190
SINO
SI (Categora Ejecutivo) ENTONCES
bsico 1500
bonificacin 500
SINO
bsico 200
bonificacin 50
FIN-SI
FIN-SI
FIN-SI
monto bsico + bonificacin
ESCRIBIR (bsico, bonificacin, monto)
FIN
EJERCICIOS PROPUESTOS
S 0 2.50 %
S >0 2.75 %
C 0 2.80 %
C >0 3.00 %
V 0 2.50 %
V >0 2.75 %
D 0 2.50 %
D >0 3.00 %
3. Calcular el total a pagar por una compra, sabiendo que existe un recargo segn tipo
de tarjeta de crdito con la que se paga la compra.
Visa Electrn ( E ) 0%
VISA ( V ) 5%
MasterCard ( M ) 7%
4. Calcular el total a pagar por su consumo telefnico, sabiendo que su renta bsica es
de S/. 50 (60 minutos libres), y que el cobro por minutos adicionales se factura segn
la siguiente tabla.
<500 Ms 0.002
5. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de inters
segn la siguiente tabla :
6. Ingrese por teclado un nmeros del 1 al 999, exprese el nmero en letras, por
ejemplo 125 un ciento veinticinco
Se pide elaborar un programa para emitir el recibo por dicho curso, los datos que se
mostraran en el recibo son: nombre del participante, costo del curso y nivel del curso.
CAPTULO X
ESTRUCTURAS SELECTIVAS
OBJETIVOS ESPECFICOS
CONTENIDOS
Estructura Selectiva
Definicin
Sintaxis
Desarrollo Practico
ESTRUCTURA SELECTIVA
Definicin
La estructura condicional selectiva evaluar una expresin que podr tomar n valores
distintos 1, 2, 3, 4,..n.
Segn que elija uno de estos valores en la condicin, se realizar una de las n
acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre
los n posibles.
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCDIGO
EJERCICIOS RESUELTOS
1. Ingresar un nmero entre 1 y 5, y luego visualizar su equivalente en letras.
ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
LEER( N )
CASO ( N ) SEA
1: ESCRIBIR (UNO)
2: ESCRIBIR (DOS)
3: ESCRIBIR (TRES)
4: ESCRIBIR (CUATRO)
5: ESCRIBIR (CINCO)
OTRO CASO: ESCRIBIR (FUERA DE RANGO)
FIN-CASO
FIN
ALGORITMO Ejemplo2
VARIABLES
CADENA: Categora
REAL: Bonificacin
INICIO
LEER (Categora)
CASO (Categora) SEA
A: Bonificacin 250
B: Bonificacin 200
C: Bonificacin 120
OTRO CASO: Bonificacin 50
FIN-CASO
ESCRIBIR (Bonificacin)
FIN
Imports System.Console
Module Module1
Sub Main()
Dim categoria As Integer
Dim bonificacion as double
Write("Ingresa categoria..:")
categoria = ReadLine()
select case categoria
case A:bonificacion=250
case B:bonificacion=200
case C:bonificacion=120
case else
bonificacion=50
End select
Writeline(la bonificacion es: & bonificacion)
ReadLine()
End Sub
End Module
3. Ingrese 2 nmeros y una operacin matemtica realizar (+,-,*,/, DIV, EXP), luego
muestre el resultado de operar los 2 nmeros.
ALGORITMO Ejemplo2
VARIABLES
ENTERO: A, B, Resultado
CADENA: Operador
INICIO
LEER (A, B, Operador)
CASO (Operador) SEA
+ : Resultado A + B
- : Resultado A B
* : Resultado A * B
DIV: Resultado A \ B
EXP: Resultado EXP(A,B)
/ : SI( B <> 0 )ENTONCES
Resultado A DIV B
SINO
Resultado 0
FIN-SI
FIN-CASO
ESCRIBIR (Resultado)
FIN
Imports System.Console
Module Module1
Sub Main()
End Sub
End Module
ALGORITMO Ejemplo4
VARIABLES
CADENA: Semana
ENTERO: da
INICIO
LEER (da)
CASO (da) SEA
1: Semana Lunes
2: Semana Martes
3: Semana Mircoles
4: Semana Jueves
5: Semana Viernes
6: Semana Sbado
7: Semana Domingo
OTRO CASO:
Semana Error
FIN -CASO
ESCRIBIR (Semana)
FIN
5. Calcular el total a pagar por una compra, sabiendo que existe un recargo segn tipo de
tarjeta de crdito con la que se paga la compra.
VISA ( V ) 5%
MasterCard ( M ) 7%
ALGORITMO Ejemplo5
VARIABLES
REAL: monto. Recargo, total
CADENA: tarjeta
INICIO
LEER (tarjeta, monto)
CASO (tarjeta) SEA
E: recargo 0
V: recargo 0.05*monto
M: recargo 0.07* monto
FIN CASO
Total monto + recargo
ESCRIBIR (total)
FIN
6. Disee un programa que calcule el costo de un paciente, el costo depende del tipo de
enfermedad. De acuerdo a la siguiente tabla:
ALGORITMO Ejemplo6
VARIABLES
REAL: costo
CARACTER: tipo
INICIO
LEER (tipo)
CASO (tipo) SEA
1: costo 122
2: costo 150
3: costo 200
FIN CASO
ESCRIBIR (costo)
FIN
EJERCICIOS PROPUESTOS
1. Escriba un programa que lea un nmero desde el teclado entre 1 y 12 e imprima el
nombre del mes del ao correspondiente. (Enero, Febrero,...etc.).
3. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de inters
segn la siguiente tabla:
Se pide elaborar un programa para emitir el recibo por dicho curso, los datos que se
mostraran en el recibo son: nombre del participante, costo del curso y nivel del curso.
CAPTULO XI
OBJETIVOS ESPECFICOS
CONTENIDOS
Estructura iterativa
Definicin
Tipos de estructuras
Contadores y acumuladores
ESTRUCTURA REPETITIVA
Definicin
Qu es una Iteracin?
Todo problema que trabaja con procesos repetitivos o cclicos debe tomar en cuenta las
siguientes fases:
Definicin
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCDIGO
Instrucciones y/o
Sentencias
FIN-PARA
Donde:
CONTADORES
Representacin:
Ejemplo:
ii+1
ACUMULADORES
Es una variable que suma sobre s misma un conjunto de valores para de esta
manera tener la suma de todos ellos en una sola variable.
La diferencia entre un contador y un acumulador es que mientras el primero va
aumentando de uno en uno, el acumulador va aumentando en una cantidad
variable.
Representacin:
<variable> <variable> + <valor variable>
Ejemplo:
S S + variable
EJERCICIOS RESUELTOS
ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
PARA N1 HASTA 10
ESCRIBIR (N)
FIN-PARA
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
For n=1 to 10
Writeline( valor: & N)
End for
ReadLine()
End Sub
End Module
ALGORITMO Ejemplo2
VARIABLES
ENTERO N
INICIO
PARA N 10 HASTA 1 DE -1
ESCRIBIR (N)
FIN-PARA
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
For n=10 to 1 step -1
Writeline( valor: & N)
End for
ReadLine()
End Sub
End Module
ALGORITMO Ejemplo3
VARIABLES
ENTERO N, A, B
INICIO
PARA N 10 HASTA 99
A N DIV 10
B N MOD 10
SI ( A = B ) ENTONCES
ESCRIBIR (N)
FIN-SI
FIN-PARA
FIN
Imports System.Console
Module Module1
Sub Main()
End Sub
End Module
ALGORITMO Ejemplo4
VARIABLES
ENTERO N, Divisor
INICIO
LEER (N)
PARA Divisor 1 HASTA N
SI N MOD Divisor = 0 Entonces
ESCRIBIR (Divisor)
FIN-SI
FIN-PARA
FIN
5. Disee un programa que imprima una tabla de cuadrados y de cubos para los
nmeros del 1 hasta N, donde N se ingresa.
ALGORITMO Ejemplo5
VARIABLES
ENTERO N, i, CUADRADO, CUBO
INICIO
LEER (N)
PARA i 1 HASTA N
CUADRADO i * i
CUBO i * i * i
ESCRIBIR (N, CUADRADO, CUBO)
FIN-PARA
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N,I,CUADRADO, CUBO As Integer
WRITE(Ingrese unn valor)
N=readline
For I=1 to N
CUADRADO=I*I
CUABO=I*I*I
Writeline(I, & CUADRADO & & CUBO)
End for
ReadLine()
End Sub
End Module
ALGORITMO Ejemplo6
VARIABLES
ENTERO N, MAYOR, MENOR, i
INICIO
MENOR 0
MAYOR 0
PARA i 1 HASTA 30
LEER (N)
SI N > MAYOR ENTONCES
MAYOR N
FIN SI
SI N < MENOR ENTONCES
MENOR N
FIN SI
FIN-PARA
ESCRIBIR (MAYOR, MENOR)
FIN
ALGORITMO Ejemplo7
VARIABLES
ENTERO N, FACTORIAL, i
INICIO
FACTORIAL 1
LEER (N)
PARA i 1 HASTA N
FACTORIAL FACTORIAL * i
FIN-PARA
ESCRIBIR (FACTORIAL)
FIN
8. Elabore un programa donde ingrese las notas de 30 alumnos: nombre del alumno, el
curso, nota1 y nota2. Por cada ingreso calcule y visualice su promedio; al finalizar
visualice la cantidad de alumnos aprobados y la cantidad de alumnos desaprobados
ALGORITMO Ejemplo8
VARIABLES
ENTERO N, NOTA1, NOTA2, i, CAPROB, CDESAPROB
REAL PROMEDIO
CADENA NOMBRE, CURSO
INICIO
CAPROB 0
CDESAPROB 0
PARA i 1 HASTA 30
LEER (NOMBRE, CURSO, NOTA1, NOTA2)
PROMEDIO (NOTA1 + NOTA2) /2
ESCRIBIR (PROMEDIO)
SI (PROMEDIO>=11) ENTONCES
CAPROB CAPROB + 1
SINO
CDESAPROB CDESAPROB + 1
FIN SI
FIN-PARA
ESCRIBIR (CAPROB, CDESAPROB)
FIN
EJERCICIOS PROPUESTOS
5. Ingrese un nmero entero y luego calcule la suma de todos los nmeros impares
menores al nmero ingresado.
7. Calcular la suma de todos los nmeros de 3 cifras compuestos por cifras diferentes
impares.
8. Disee un programa que ingrese las edades de 10 alumnos y que calcule lo siguiente:
Suma de todas las edades
Promedio de edades
Promedio de edades pares
Edad mxima
Edad mnima
9. Escribe un algoritmo que lea un nmero natural N y un carcter. La salida debe ser un
rombo compuesto del carcter y de la anchura que especifica el nmero N. Por
ejemplo, si N es 5 y el carcter es *, el rombo sera:
*
**
***
****
*****
****
***
**
*
10. Elabore un programa que permita convertir un nmero de base 10 a un nmero de otra
base, para ello ingrese el nmero y la base. Ejemplo: Suponga que el nmero en
decimal que se desea transformar a su equivalente en binario es el 11:
11. Elabore un programa donde ingrese un nmero, visualizar los divisores del nmero
ingresado.
12. Escribe un algoritmo que imprima una pirmide de dgitos como la de la figura,
tomando como entrada el nmero de filas de la misma.
1
121
12321
1234321
123454321
13. Escriba un Algoritmo que permita formar la siguiente serie, donde N es ingresado por
teclado:
1, 4, 9, 16, N2
3, 8, 15, 24
18. Disee un programa donde visualice los nmeros primos comprendidos entre el 1 al
100.
CAPTULO XII
OBJETIVOS ESPECFICOS
CONTENIDOS
Definicin
Sintaxis
ESTRUCTURA MIENTRAS-HACER
Definicin
Esta es una estructura que repetir un proceso durante N veces, donde N puede
ser fijo o variable. Para esto, la instruccin se vale de una condicin que es la que
debe cumplirse para que se siga ejecutando. Cuando la condicin ya no se cumple,
entonces ya no se ejecuta el proceso.
Caracterstica
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCDIGO
VERDAD
:
:
FIN-MIENTRAS Instrucciones y/o
Sentencias
EJERCICIOS RESUELTOS
1. Imprimir los 3 primeros nmeros naturales.
ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
N1
MIENTRAS( N <= 3 ) HACER
ESCRIBIR( N )
NN+1
FIN-MIENTRAS
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
WHILE N<=3
Writeline(N)
N=N+1
End WHILE
ReadLine()
End Sub
End Module
Imports System.Console
Module Module1
Sub Main()
End Sub
End Module
ALGORITMO Ejemplo3
VARIABLES
ENTERO N, SUMA
INICIO
N 10
SUMA 0
MIENTRAS (N <= 99) HACER
SUMA SUMA + N
NN+1
FIN-MIENTRAS
ESCRIBIR (LA SUMA ES:, SUMA)
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N, SUMA As Integer
N=10
SUMA=0
WHILE N<=99
SUMA=SUMA+N
N=N+1
End WHILE
WRITELINE( La suma es : & suma)
ReadLine()
End Sub
End Module
Imports System.Console
Module Module1
Sub Main()
End Sub
End Module
ALGORITMO Ejemplo6
VARIABLES
ENTERO N, Cifras
INICIO
LEER (N)
Cifras 0
MIENTRAS (N <> 0) HACER
Cifras Cifras + 1
N N DIV 10
FIN-MIENTRAS
ESCRIBIR (Nmero Cifras:, Cifras)
FIN
ALGORITMO Ejemplo7
VARIABLES
ENTERO N, SUMA, CPARES, CIMPARES, i
INICIO
CPARES 0
CIMPARES 0
SUMA 0
I1
MIENTRAS (i <=5) HACER
LEER (N)
ALGORITMO Ejemplo8
VARIABLES
RESTO N MOD 10
SUMA SUMA + RESTO
N N DIV 10
FIN MIENTRAS
ESCRIBIR (SUMA)
FIN
ALGORITMO Ejemplo9
VARIABLES
ENTERO N, CONTADOR, i
INICIO
CONTADOR 0
LEER (N)
i2
MIENTRAS (i < N) HACER
SI (N MOD N = 0) ENTONCES
CONTADOR CONTADOR + 1
FIN SI
ii+1
FIN MIENTRAS
SI (i = 0) ENTONCES
ESCRIBIR (NMERO PRIMO)
SINO
ESCRIBIR (NMERO COMPUESTO)
FIN SI
FIN
EJERCICIOS PROPUESTOS
S 2 + 4 + 6 + 8 + + 98
3. Generar y visualizar la siguiente serie:
S 1+2+3/2+4/3+5/4++10/9
4. Ingrese un nmero entero y calcule la suma de las cifras del nmero.
5. Ingrese un nmero entero y luego calcule la suma de cifras pares e impares que
estn contenidas en el nmero ingresado.
6. Ingrese un nmero entero y calcule la mayor y menor cifra contenidas en el nmero
ingresado.
7. Ingrese un nmero entero y luego forme un 2do nmero con las cifras del nmero
ingresado en forma inversa.
8. Ingrese un nmero entero y luego obtenga su equivalente en base 5.
9. Disee un programa que lea Nombre y edad de 5 alumnos y calcule la edad
promedio as como tambin la mayor edad, considere que la edad debe encontrarse
entre 18 a 70 aos.
10. Disee un programa que imprima lo siguiente:
%
%%
%%%
%%%%
%%%%%
%%%%%%
%%%%%%%
11. Escribe un algoritmo que lea un nmero natural N y dibuje un tringulo de asteriscos
con base y altura N. Por ejemplo si N=5 debera dibujarse:
*
**
***
****
*****
12. Disee un programa para hallar la suma de N trminos de la siguiente serie:
1 + 1/32 + 1/52 + 1/72 + 1/92+............................
13. Calcular la suma de todos los nmeros primos existentes entre 1 y 1000.
14. Calcular la suma de todos los nmeros de 3 cifras compuestos por cifras diferentes
impares.
15. Visualizar la siguiente serie de nmeros: +1-2+3-4+5-6+7-8++N
CAPTULO XIII
OBJETIVOS ESPECFICOS
CONTENIDOS
Definicin
Sintaxis
Definicin
Caracterstica
Repite un proceso una cantidad de veces, pero a diferencia del Mientras Que, el
Repita-Hasta lo hace hasta que la condicin se cumple y no mientras, como en el
Mientras Que. Por otra parte, esta estructura permite realizar el proceso cuando
menos una vez, ya que la condicin se evala al final del proceso, mientras que en el
Mientras Que puede ser que nunca llegue a entrar si la condicin no se cumple
desde un principio.
SINTAXIS
DIAGRAMA DE FLUJO
PSEUDOCDIGO
REPETIR
Instrucciones y/o
FALSO : Sentencias
:
HASTA (Expresin<es>)
EJERCICIOS RESUELTOS
ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
N 1
REPETIR
ESCRIBIR (N)
NN+1
HASTA (N > 5)
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
N=1
Do
Writeline ( valor & N)
N=N+1
Loop Until N>5
End Sub
END MODULE
ALGORITMO Ejemplo2
VARIABLES
ENTERO N
INICIO
N 10
REPETIR
ESCRIBIR (N)
NN+2
HASTA (N > 98)
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
N=10
Do
Writeline (valor & N)
N=N+2
Loop Until N>98
End Sub
END MODULE
ALGORITMO Ejemplo3
VARIABLES
INICIO
N 1
REPETIR
ESCRIBIR ( N 2 )
NN+1
HASTA (N > 10)
FIN
Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
N=1
Do
Writeline( valor & N^2)
N=N+1
Loop Until N>10
End Sub
END MODULE
ALGORITMO Ejemplo4
VARIABLES
ENTERO N, Divisor, Resto
INICIO
LEER (N)
Divisor 1
REPETIR
Resto N MOD Divisor
SI (Resto = 0) ENTONCES
ESCRIBIR (Divisor)
FIN-SI
Divisor Divisor + 1
HASTA (Divisor > N)
FIN
Imports System.Console
Module Module1
Sub Main()
End Sub
END MODULE
ALGORITMO Ejemplo5
VARIABLES
ENTERO N, M, INV, Cifra
INICIO
LEER (N)
M N
INV 0
REPETIR
Cifra M MOD 10
INV (INV * 10) + Cifra
M M DIV 10
HASTA (M = 0)
SI (N = INV) ENTONCES
ESCRIBIR (ES CAPICUA)
SINO
ESCRIBIR (NO ES CAPICUA)
FIN-SI
FIN
Imports System.Console
Module Module1
Sub Main()
End Sub
END MODULE
EJERCICIOS PROPUESTOS
9. Escriba un pequeo programa para imprimir los primeros cien nmeros naturales
haciendo una pausa cada vez que se llene la pantalla e indicando con un mensaje
adecuado que al oprimir una tecla la lista continuar.
10. Escriba un programa que imprima los primeros n nmeros naturales pares. Valide el
valor de n y emita un mensaje de error si no es natural.
11. Escribe un algoritmo que lea un nmero natural N y dibuje un tringulo de asteriscos
con base y altura N. Por ejemplo si N=5 debera dibujarse:
*
**
***
****
*****
12. Escriba un programa para calcular e imprimir todos los nmeros enteros
comprendidos entre 100 y 999 tales que sean iguales a la suma de los cubos de sus
dgitos, es decir, los nmeros de la forma abc, con:
abc = a3 + b3 + c3
13. Ingrese un nmero entero y luego calcule la suma de cifras pares e impares que
estn contenidas en el nmero ingresado.
14. Ingrese un nmero entero y calcule la mayor y menor cifra contenidas en el nmero
ingresado.
CAPTULO XIV
OBJETIVOS ESPECFICOS
CONTENIDOS
SUBPROGRAMAS
Introduccin
Cuando una de estas acciones no primitivas se repite en varios puntos del algoritmo
es interesante darle un nombre y reutilizarla.
Definicin
1. DIVISION EN MODULOS
2. ABSTRACCION
3. ENCAPSULAMIENTO
Procedimientos o Rutinas
Funciones
PROCEDIMIENTOS
Definicin
Invocar un Procedimiento
ALGORITMO Ejemplo
Definicin de
VARIABLES
variables publicas
ENTERO A, B
PROCEDIMIENTO SUMA ( )
INICIO
Definicin del
ESCRIBIR(A + B)
procedimiento
FIN-PROCEDIMIENTO
Suma ( )
INICIO
LEER(A, B) Ejecutar el
SUMA ( ) procedimiento
FIN Suma ( )
ALGORITMO Ejemplo
Definicin de
VARIABLES
variables publicas
ENTERO A, B
PROCEDIMIENTO SUMA ( ENTERO: M, N)
INICIO
Definicin de l
ESCRIBIR ( M +N )
procedimiento Suma( )
FIN-PROCEDIMIENTO
donde se definen sus
parmetros M y N
INICIO
LEER (A, B)
SUMA (A, B)
FIN Ejecutar el
procedimiento
Suma enviando
como parmetros el
valor de A y B.
Parmetros
ESTRUCTURA DE UN PROCEDIMIENTO
Opcional
VAR
: <variables_locales>
INICIO Instrucciones
y/o
: Sentencias
:
FIN- PROCEDIMIENTO
EJERCICIOS RESUELTOS
ALGORITMO Ejemplo1
VARIABLES
ENTERO N
PROCEDIMIENTO Imprime (CADENA Texto, ENTERO NMERO)
VARIABLES
ENTERO I Procedimiento imprime,
INICIO
con la declaracin de
PARA I 1 HASTA NMERO
ESCRIBIR (Texto) parmetros
FIN-PARA
FIN-PROCEDIMIENTO
INICIO
LEER (N)
Imprime (HOLA, N)
Imprime (IDAT, 20)
Imprime (COMPUTACION, 50)
FIN
Imports System.Console
Module Module1
Dim N As Integer
SUB IMPRIME(TEXTO AS STRING, NMERO AS INTEGER)
DIM I AS INTEGER
For I=1 to NMERO
Writeline (Texto)
End for
END SUB
Sub Main()
End Sub
End Module
ALGORITMO Ejemplo2
VARIABLES
ENTERO A, B
PROCEDIMIENTO ImprimeMayor (ENTERO M, ENTERO N)
INICIO
SI ( M > N )ENTONCES
ESCRIBIR (M)
SINO
ESCRIBIR (N)
FIN-SI
FIN-PROCEDIMIENTO
INICIO
LEER (A, B)
ImprimeMayor (A, B)
FIN
Imports System.Console
Module Module1
Sub Main()
WRITE ( INGRESE UN VALOR A :)
A=READLINE
WRITE ( INGRESE UN VALOR B :)
B=READLINE
ImprimeMayor (A, B)
End Sub
End Module
ALGORITMO Ejemplo3
VARIABLES
ENTERO M
PROCEDIMIENTO ImprimeDivisores (ENTERO N)
VARIABLES
ENTERO I
INICIO
PARA I 1 HASTA N
SI (N MOD I = 0) ENTONCES
ESCRIBIR (I)
FIN-SI
FIN-PARA
FIN-PROCEDIMIENTO
INICIO
LEER (M)
ImprimeDivisores (M)
FIN
ALGORITMO Ejemplo4
VARIABLES
ENTERO M
PROCEDIMIENTO ImprimeSumaMenores (ENTERO N)
VARIABLES
ENTERO SUMA, I
INICIO
SUMA 0
PARA I 1 HASTA N-1
SUMA SUMA + I
FIN-PARA
ESCRIBIR (SUMA)
FIN-PROCEDIMIENTO
INICIO
LEER (M)
ImprimeSumaMenores (M)
FIN
Imports System.Console
Module Module1
Dim M As Integer
SUB ImprimeSumaMenores (N AS INTEGER)
Dim I , SUMA as Integer
SUMA=0
FOR I=1 TO N-1
SUMA=SUMA+I
END FOR
END SUB
Sub Main()
WRITE( INGRESE UN VALOR ENTERO :)
M=READLINE
ImprimeSumaMenores (M)
End Sub
End Module
ALGORITMO Ejemplo5
VARIABLES
ENTERO M
PROCEDIMIENTO ImprimeSumaCifras (ENTERO N)
VARIABLES
ENTERO SUMA, CIFRA
INICIO
SUMA 0
MIENTRAS (N<>0) HACER
CIFRA N MOD 10
SUMA SUMA + CIFRA
N N DIV 10
FIN-MIENTRAS
ESCRIBIR (SUMA)
FIN-PROCEDIMIENTO
INICIO
LEER (M)
ImprimeSumaCifras (M)
FIN
ALGORITMO Ejemplo6
VARIABLES
ENTERO N1, N2, N3
PROCEDIMIENTO ImprimeMenor (ENTERO A, ENTERO B, ENTERO C)
VARIABLES
ENTERO MENOR
INICIO
MENOR A
SI (B < MENOR) ENTONCES
MENOR B
FIN-SI
SI (C < MENOR) ENTONCES
MENOR C
FIN-SI
ESCRIBIR (MENOR)
FIN-PROCEDIMIENTO
INICIO
LEER (N1, N2, N3)
ImprimeMenor (N1, N2, N3)
FIN
ALGORITMO Ejemplo7
VARIABLES
ENTERO M
PROCEDIMIENTO ImprimeInverso (ENTERO N)
VARIABLES
ENTERO INVERSO, CIFRA
INICIO
INVERSO 0
MIENTRAS (N<>0) HACER
CIFRA N MOD 10
INVERSO 10 * INVERSO + CIFRA
N N DIV 10
FIN-MIENTRAS
ESCRIBIR (INVERSO)
FIN-PROCEDIMIENTO
INICIO
LEER (M)
ImprimeInverso (M)
FIN
EJERCICIOS PROPUESTOS
*
**
***
****
*****
abc = a3 + b3 + c3
10. Ingrese un nmero entero y luego desarrolle un procedimiento que permita calcular
la suma de cifras pares e impares que estn contenidas en el nmero ingresado.
CAPTULO XV
USO DE FUNCIONES
OBJETIVOS ESPECFICOS
CONTENIDOS
Funciones
Declaracin
Desarrollo prctico.
FUNCIONES
Definicin
Las funciones se invocan por su nombre seguido de los valores que se pasaran a
sus respectivos parmetros formales.
Una funcin puede llamar a otra funcin inclusive puede llamarse a si misma
(recursividad).
EJERCICIOS RESUELTOS
1. Crear una funcin que retorne el cuadrado de un nmero entero.
ALGORITMO Ejemplo1
VARIABLES
ENTERO M
FUNCIN Cuadrado (ENTERO N): ENTERO
INICIO
RETORNAR (N * N)
FIN-FUNCIN
INICIO
LEER (M)
ESCRIBIR (Cuadrado (M) )
FIN
Imports System.Console
Module Module1
Dim M As Integer
Function Cuadrado (N AS INTEGER) as Integer
Return n*n
END FUNCTION
Sub Main()
WRITE( INGRESE UN VALOR ENTERO :)
M=READLINE
Writeline( Llama a la function & Cuadrado (M))
End Sub
End Module
2. Crear una funcin que retorne el mayor valor de 2 nmeros enteros.
ALGORITMO Ejemplo2
VARIABLES
ENTERO A, B
FUNCIN Mayor (ENTERO M, ENTERO N): ENTERO
INICIO
SI (M > N) ENTONCES
RETORNAR (M)
SINO
RETORNAR (N)
FIN-SI
FIN-FUNCIN
INICIO
LEER (A, B)
ESCRIBIR (Mayor (A, B) )
FIN
Imports System.Console
Module Module1
Sub Main()
WRITE( INGRESE UN VALOR ENTERO :)
A=READLINE
WRITE( INGRESE UN SEGUNDO ENTERO :)
B=READLINE
Writeline( Llama a la function & MAYOR (A,B))
End Sub
End Module
ALGORITMO Ejemplo3
VARIABLES
ENTERO M
FUNCIN SumaCifras (ENTERO N): ENTERO
VARIABLES
ENTERO SUMA, Cifra
INICIO
SUMA 0
MIENTRAS (N <> 0) HACER
Cifra N MOD 10
SUMA SUMA + Cifra
N N DIV 10
FIN-MIENTRAS
RETORNAR (Suma)
FIN-FUNCIN
INICIO
LEER (M)
ESCRIBIR (SumaCifras (M) )
FIN
Imports System.Console
Module Module1
Dim M As Integer
Function SumaCifras ( N AS INTEGER) as Integer
Dim suma, cifra as Integer
Suma=0
Do while n<>0
Cifra= n mod 10
Suma=suma+cifra
N=n \10
Loop
Return suma
End Function
Sub Main()
WRITE( INGRESE UN VALOR ENTERO :)
m=READLINE
Writeline( Llama a la function & SumaCifras (M))
End Sub
End Module
ALGORITMO Ejemplo4
VARIABLES
ENTERO M
FUNCIN Factorial (ENTERO N ) : ENTERO
VARIABLES
ENTERO Facto, I
INICIO
Facto 1
PARA I 1 HASTA N
Facto Facto * I
FIN-PARA
RETORNAR ( Facto )
FIN-FUNCIN
INICIO
PARA M 1 HASTA 5
ESCRIBIR (Factorial ( M ) )
FIN-PARA
FIN
5. Implementar una funcin que retorne la suma de la mayor y menor cifras contenidas en
un nmero entero.
ALGORITMO Ejemplo5
VARIABLES
ENTERO M
FUNCIN SumaMaxMin (ENTERO N): ENTERO
VARIABLES
ENTERO Cifra, MayorCifra, MenorCifra
INICIO
MayorCifra 0 : MenorCifra 9
MIENTRAS (N <> 0) HACER
Cifra N MOD 10
SI (Cifra > MayorCifra) ENTONCES
MayorCifra Cifra
FIN-SI
SI (Cifra < MenorCifra) ENTONCES
MenorCifra Cifra
FIN-SI
N N DIV 10
FIN-MIENTRAS
RETORNAR (MayorCifra + MenorCifra)
FIN-FUNCIN
INICIO
LEER (M)
ESCRIBIR (SumaMaxMin (M))
FIN
6. Implementar una funcin que retorne la suma de todos los nmeros de 2 cifras
compuestos por cifras diferentes pares.
ALGORITMO Ejemplo6
VARIABLES
ENTERO M
FUNCIN SumaPares (ENTERO N): ENTERO
VARIABLES
ENTERO SUMA, A, B
INICIO
SUMA 0
PARA N 10 HASTA 99
A N DIV 10
B N MOD 10
SI ( A <> B ) Y (A MOD 2=0) Y (B MOD 2=0) ENTONCES
SUMA SUMA + N
FIN-SI
FIN-PARA
RETORNAR SUMA
FIN-FUNCIN
INICIO
LEER (M)
ESCRIBIR (SumaPares (M) )
FIN
7. Implementar una funcin que retorne la suma de los elementos de la siguiente serie:
1+8+27+64++1000
ALGORITMO Ejercicio7
INICIO
ESCRIBIR (SumaSerie ())
FIN
EJERCICIOS PROPUESTOS
1. Implemente una funcin que permita calcular el factorial del nmero ingresado.
4. Implemente una funcin que retorne la suma de todos los nmeros de 3 cifras
compuestos por cifras diferentes impares.
6. Elabore una funcin que permita retornar la suma de la serie, donde N es ingresado
por teclado:
1, 4, 9, 16, N2
8. Elabore una funcin que retorne la suma de los N trminos de la siguiente serie:
1 + 1/2 + 2/3 + 3/4 + 4/5+............................
CAPITULO XVI
OBJETIVOS ESPECFICOS
CONTENIDOS
Objetivo:
Indicarle al alumno el uso correcto de los Arreglos para determinar el
manejo de los elementos (items) que puede almacenar un programa en forma
voltil por medio de una posicin la cual es manejada por un ndice que empieza
desde 0 hasta el nmero de elementos -1 del tamao original del vector para
realizar un proceso o n procesos cuando son llamados.
Cabe resaltar cada punto ser afianzada por dada clase que se tratara hasta que
el alumno identifique los temas y sus ideas queden ms claras.
Arreglos
Definicin tipos.
o Arreglos Unidimensionales (Vectores).
Declaracin.
Algoritmos bsicos.
Ejercicios.
QUE ES UN ARREGLO
Para acceder a los elementos de un arreglo se hace uso del nombre del arreglo
seguido de un ndice cerrado entre parntesis, este ndice representa la posicin del
elemento en el arreglo.
Sintaxis:
VARIABLES
Tipo_Dato Nombre_Arreglo (Nmero_Elementos)
EJERCICIOS RESUELTOS
ALGORITMO Ejemplo1
CONSTANTES
MAX = 10
VARIABLES
ENTERO A (MAX), I
INICIO
PARA I 0 HASTA MAX-1
LEER(A ( I ) )
FIN-PARA
PARA I 0 HASTA MAX-1
ESCRIBIR( A( I ) )
FIN-PARA
FIN
FIN
3. Calcular el promedio de los elementos contenidos en un arreglo de tipo entero.
ALGORITMO Ejemplo3
CONSTANTES
MAX = 10
VARIABLES
ENTERO M(MAX), I, SUMA, PROMEDIO
INICIO
SUMA 0
PARA I 0 HASTA MAX-1
LEER( M(I) )
SUMA SUMA + M( I )
FIN-PARA
PROMEDIO SUMA DIV MAX
ESCRIBIR( PROMEDIO )
FIN
4. Calcular el mayor y menor valor de los elementos contenidos en un arreglo de tipo entero
ALGORITMO Ejemplo4
CONSTANTES
MAX = 10
VARIABLES
ENTERO M(MAX), I, MAYOR, MENOR
INICIO
PARA I 0 HASTA MAX-1
LEER( M(I) )
FIN-PARA
MAYOR M(0) : MENOR M(0)
PARA I 1 HASTA MAX-1
SI( M(I) > MAYOR)ENTONCES
MAYOR M(I)
FIN-SI
SI( M(I) < MENOR)ENTONCES
MENOR M(I)
FIN-SI
FIN-PARA
ESCRIBIR(MAYOR=,MAYOR, MENOR=, MENOR)
FIN
ALGORITMO Ejemplo5
CONSTANTES
MAX = 10
VARIABLES
ENTERO M(MAX), I, DATO, POSICION
INICIO
PARA I 0 HASTA MAX-1
LEER( M(I) )
FIN-PARA
LEER( DATO )
POSICION -1
PARA I 0 HASTA MAX-1
SI( M(I) = DATO )ENTONCES
POSICION I : I MAX-1
FIN-SI
FIN-PARA
SI( POSICION <> - 1 )ENTONCES
ESCRIBIR(DATO ENCONTRADO)
SINO
ESCRIBIR(DATO NO ENCONTRADO)
FIN-SI
FIN
EN VISUAL BASIC:
Ejemplo realizar una aplicacin para ingresar un nmero de elementos a un array de tamao
10 luego visualizar su contenido con la posicin de memoria correspondiente.
Ps Pro
Algoritmo array1 Imports System.Console
Variables Module array1
i,n : entero Sub main()
a(10) : real Dim i, n As Integer
Inicio Dim a(10) As Decimal
Leer Write("ing # de elementos al array..:")
"ing # de elementos.:",n-1 n = CInt(ReadLine()) - 1
si (n>10) entones If (n > 10) Then
imprimir WriteLine("error desbordamiento de
" error desbordamiento de division..:")
division..:" Else
si no 'ingresar elementos al array
para i=0 hasta n For i = 0 To n
Leer Write("ing elementos al array..:")
"ing elementos al a(i) = CDec(ReadLine())
array",a(i) Next
fin para WriteLine("")
' imprimir
para i=0 hasta n For i = 0 To n
imprimir WriteLine(" indice #.: " & i & " valor
" ndice #: ",i," valor es: es..: " & a(i))
", a(i) Next
fin para End If
fin si ReadLine()
Fin. End Sub
End Module
Ps Pro
Imports System.Console
Module suma
Sub main()
Dim i, n As Integer
Dim a1(12), b1(12), S(12) As Decimal
Write("ING NMERO DE ELEMENTOS..:")
n = CInt(ReadLine()) - 1
If (n > 12) Then
WriteLine("error desbordamiento de division.:")
Else
' primer array
For i = 0 To n
Write("ing elementos al array a1.:")
a1(i) = CDec(ReadLine())
Next
WriteLine("")
' segundo array
For i = 0 To n
Write("ing elementos al array b1.:")
b1(i) = CDec(ReadLine())
Next
WriteLine("")
' calculo de la suma
For i = 0 To n
S(i) = a1(i) + b1(i)
Next
' imprimir la suma
For i = 0 To n
WriteLine("indice #.: " & i & " valor es.:" & S(i))
Next
End If
ReadLine()
End Sub
End Module
Aqu su formato.
Ps Pro
bandera=0 bandera = 0
Leer WriteLine("ing elemento a buscar..:")
ing elemento a buscar,bu bu = CDec(ReadLine())
Para i=0 hasta n For i = 0 To n
Si(array(i)=bu) entonces If (a(i) = bu) Then
Imprimir WriteLine("item:" & array(i) &
item, array(i), encontrado en.:, i "encontrado en" & i)
Bandera=1 bandera = 1
Fin si End If
Fin para Next
Si (bandera=0) entonces If (bandera = 0) Then
Imprimir WriteLine("No se encontro elemento")
no se encontr.: End If
Fin si
Ps Pro
Desarrollar el ps. bandera = 0
WriteLine("ingresar elemento a buscar..:")
bu = CDec(ReadLine())
For i = 0 To n
If (a(i) = bu) Then
WriteLine("Elemento.: " & a(i) & " fue encontrado ")
bandera = 1
WriteLine(" Desea anular el item " & a(i) & " (s/n) ")
s = CChar(ReadLine())
If (s = "s") Then
WriteLine(" El item " & a(i) & " fue anulado en pos.:" & i)
a(i) = 0
WriteLine("")
WriteLine("los nuevos elementos son.:")
WriteLine("")
For si = 0 To n
If a(si) > 0 Then
WriteLine(a(si))
End If
Next si
End If
End If
Next i
If (bandera = 0) Then
WriteLine("No se encontro elemento")
End If
Ordenamiento de datos:
Intercambio:
Ps Pro
Para i=0 hasta n For i = 0 To n
Para ndice secun=1 +1 hasta n For si = i + 1 To n
Si (array(i) > array(ndice secun)) If (a(i) > a(si)) Then
entonces temp = a(si)
Temp=array (ndice secun) a(si) = a(i)
Array(ndice secun)=array(i) a(i) = temp
Array(i)=temp End If
Fin si Next si
Fin para ndice secun Next i
Fin para i For i = 0 To n
WriteLine(a(i))
Para i=0 hasta n Next
Imprimir
Array(i)
Fin para i
Problemas propuestos
2) Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector
A con el elemento uno del vector B y as sucesivamente hasta 45, almacenar el
resultado en un vector C, e imprimir el vector resultante.
5) Almacenar 300 nmeros en un vector, imprimir cuantos son ceros, cuntos son
negativos, cuantos positivos. Imprimir adems la suma de los negativos y la suma de los
positivos.
8) Se tiene el vector A con 100 elementos almacenados. Disee un algoritmo que escriba
SI si el vector esta ordenado ascendentemente o NO si el vector no est ordenado
10) Disee un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique
el primer elemento de A con el ltimo elemento de B y luego el segundo elemento de A
por l diecinueveavo elemento de B y as sucesivamente hasta llegar al veinteavo
elemento de A por el primer elemento de B. El resultado de la multiplicacin almacenarlo
en un vector C.
11) Disee un algoritmo que almacene en un vector llamado FIB[100] los 100 primeros
nmeros de la serie fibonacci.
MATRICES
OBJETIVO:
Cabe resaltar cada punto ser afianzada por dada clase que se tratara hasta que el alumno
identifique los temas y sus ideas queden ms claras.
TEMAS:
ARREGLOS
o Arreglos bidimensionales (Vectores).
Ps Pro
Nf,nc,fi,ci : entero Dim Nf,nc,fi,ci as integer
X(5,5), y(5,5), s(5,5) : real Dim x(5, 5), y(5, 5), s(5, 5) As double
Dim a3(,,) As Integer
Dim c3(,,) As Integer = {{1, 2}, {3, 4}, {5, 6},{7,
8}, {9, 10}, {11, 12},{{13, 14}, {15, 16}, {17,
18},{{19, 20}, {21, 22}, {23, 24}}
Arrays Bidimensionales
Todos los arrays vistos hasta el momento han sido de tipo unidimensional, es decir, estaban
compuestos de una lista de valores nica.
.NET Framework nos provee tambin de la capacidad de crear arrays formados por ms de
una lista de valores, o lo que es igual, arrays multidimensionales. Un array de este tipo, se
caracteriza por estar compuesto de varias dimensiones o listas anidadas al estilo de filas y
columnas.
Crearamos un array multidimensional formado por tres filas y cinco columnas. En este caso,
el nmero correspondiente a la primera dimensin denota las filas, mientras que el nmero
de la segunda dimensin hace lo propio para las columnas. La Figura 209 muestra un
diagrama con la estructura de este array.
Para recorrer arrays multidimensionales, la clase Array dispone de varios miembros, algunos
de los cuales, describimos seguidamente.
EJEMPLOS
Ejemplo 1 : Realizar una matriz de nf =5 nc =5, para ingresar las marcar de 5 atletas al final
visualizar los intentos de cada atleta, el nmero de atletas que pasaron la marca y el atleta
que tiene mayor marca.
Algoritmo Matriz1
Variables
a(5, 4) : real
i, x : entero
t, sm, prom : real
INICIO
para i = 1 hasta 5
Para x = 1 hasta 4
Imprimir "Ingrese intentos {0} del atleta {1}", x, i), a(i, x)
Fin para x
Fin para i
Para i = 1 hasta 5
Imprimir "atleta {0}", i
Para x = 1 hasta 4
Imprimir "intentos {0} {1}", i, a(i, x)
Fin para x
Fin para i
t0
Para i = 1 hasta 5
Si (a(i, 1) < a(i, 2)) o (a(i, 1) < a(i, 3)) o (a(i, 1) < a(i, 4)) entonces
tt+1
Fin si
Fin para
Imprimir "Nmero de atletas que pasaron la primera marca ", t
Para i = 1 hasta 5
sm 0
Para x = 1 hasta 4
sm sm + a(i, x)
Fin para
prom sm / 4
Imprimir " el promedio del atleta {0} es {1}", i, prom
Fin para
sm 0
para i = 1 hasta 5
Para x = 1 hasta 4
Si (a(i, x) > sm) entonces
sm a(i, x)
Fin si
Fin para x
Fin para i
Imprimir " La marca ms alta entre los atletas es {0}", sm
Fin.
Ejemplo 2 : Realizar una matriz de 5 filas y 5 columnas ingresar los elementos y determinar
cules son pares.
Algoritmo Matriz2
Variables
n(5, 5) : entero
fi, ci, cp : entero
INICIO
Para fi = 1 hasta 5
Para ci = 1 hasta 5
Imprimir "Ingrese elementos a la matriz n(" , fi , "," , ci , ")", n(fi, ci)
Fin para ci
Fin para fi
cp 0
Para fi = 1 hasta 5
Para ci = 1 hasta 5
Si (n(fi, ci) Mod 2 = 0) entonces
cp cp + 1
Fin si
Fin para ci
Fin para fi
Imprimir "pares d la matriz {0}", cp
Fin.
Algoritmo Matriz3
Variables
z(9, 9) : real
a, b, c, fi, ci, nf, nc : entero
INICIO
Leer
"Ing. nmero de filas ..:", nf - 1
"Ing. nmero de columnas ..:", nc - 1
Si (nf > 8) y (nc > 8) entonces
"Horror"
Sino
Imprimir "matrix de " , (nf * nc) , "--> elementos"
Para fi = 1 hasta nf
Para ci = 1 hasta nc
Imprimir "(" , fi , "," , ci ")->"
Leer
"ing valor de A :", a
"ing valor de B :", b
"ing valor de C :", c
Calcular
z(fi, ci) Pow(a, 2) + Pow(b, 2) + Pow(c, 2)
Fin para ci
Fin para fi
Para fi = 1 hasta nf
Para ci = 1 hasta nc
Imprimir
"(" , fi , "," , ci , ")--->", z(fi, ci)
Fin para ci
Fin para fi
fin si
Fin.
Algoritmo Matriz4
Variables
x(9, 9), y(9, 9) : real
a, b, c, fi, ci, nf, nc : entero
INICIO
Leer
"Ing. nmero de filas ..:", nf - 1
"Ing. nmero de columnas ..:", nc - 1
Si (nf > 8) y (nc > 8) entonces
"Error
Sino
"matrix de " , (nf * nc) , "--> elementos"
Para fi = 1 hasta nf
Para ci = 1 hasta nc
Imprimir
"(" , fi , "," , ci , ")->"
Leer
"ing valor de A :", a
"ing valor de B :", b
"ing valor de C :", c
Calcular
x(fi, ci) (b + Pow(b, 2) - 4 * a * c) / 2
y(fi, ci) (c + 1 * a + 1) + ((c - 2) + (b + 2))
Fin para ci
Fin para fi
"indice valor x(i)", "indice valor y(i)
Para fi = 1 hasta nf
Para ci = 1 hasta nc
Imprimir
"(" , fi , "," , ci , ")--->" , x(fi, ci) , "(" , fi , "," , ci , ")--->" , y(fi, ci)
Fin para ci
Fin para fi
Fin si
Fin.
Ejercicio 5 Realizar una aplicacin para ingresar elementos a una matriz nf = 20, nc = 15
acumularlos, luego visualizar la matriz.
Algoritmo Matriz5
Variables
m(20, 15), am : real
fi, ci, nf, nc, cm : entero
INICIO
Leer
"Ing. nmero de filas ..:", nf - 1
"Ing. nmero de columnas ..:", nc - 1
Si (nf > 8) y (nc > 8) entonces
"Error
Sino
am 0
Imprimir
"matrix de " , (nf * nc) , "elementos"
Para fi = 1 hasta nf
Para ci = 1 hasta nc
"Ing. Items matrix m (" , fi , ", " , ci , ")-->", m(fi, ci)
am am + m(fi, ci)
Fin para ci
Fin para fi
Para fi = 1 hasta nf
Para ci = 1 hasta nc
"(" , fi , " , " , ci , ")" , m(fi, ci)
Fin para ci
Fin para fi
Imprimir
"suma de elementos .: ", am
Fin si
Fin.
OBJETIVOS:
0 0 3 0 Los valores solo van a ser validos del 1 al 20; si yo pongo otro fuera de ese
parmetro me debe de rechazar el valor y pedir otra vez el valor. Tambin
0 0 0 8
debe pedir si se quiere introducir ms datos, y mostrar la tabla; si se introduce
0 0 0 0 un valor ya repetido que debe marcar que el dato ya existe, mostrar el mensaje
para introducir nuevamente.
Problema 4. Un comercio utiliza para la atencin a sus clientes 5 cajeros (1,2,3,4,5) por cada
transaccin se ingresa el nmero de cajero e importe de la transaccin, que puede ser retiro,
deposito y otros. El proceso finaliza cuando en nmero de caja se ingresa cero. Determinar: a)
total de ingresos, retiros y otros en cada caja b) cual fue el cajero con menos ingresos y con
mayores retiros c) visualizar el total por cada caja.
Problema 5.
Problema 6.
Se desea desarrollar un programa que relacione la informacin de los sntomas que padece un
paciente con la informacin de los sntomas de las diferentes enfermedades. El nombre de los
pacientes debe colocarse en un vector, el nombre de las enfermedades debe colocarse en otro
vector, la informacin sobre los sntomas de cada paciente est codificada en una matriz en
donde las filas representa cada paciente y las columnas los diferentes sntomas que padece y la
informacin de los sntomas de cada enfermedad debe colocarse en una matriz en donde las
filas representan las diferentes enfermedades y las columnas los sntomas de cada
enfermedad. Las matrices de sntomas tendrn solamente los valores verdadero o falso, en
donde verdadero representa que el sntoma est presente en la enfermedad o en el paciente,
segn sea el caso, y falso lo contrario.
El programa debe:
Generar un reporte de los pacientes con la enfermedad que padecen
Generar un reporte con la enfermedad ms comn, el nmero de pacientes que la tienen y el
porcentaje.
Generar un reporte con la enfermedad menos comn, el nmero de pacientes que la tienen y el
porcentaje.
Problema 8. Escribir un programa que lea los elementos de una matriz A de NxN y retorne
la transpuesta de A en otra matriz B de NXN, tal que B[i][j]=A[j][i].
Problema 9. Hacer un algoritmo que permita obtener el productos de dos matrices A[i][j] y
B[j][k].
Problema 10. Hacer un algoritmo que permita rotar los elementos del contorno de una
matriz NxM en sentido horario (Los elementos internos sern ceros)
a) Cuadrada
b) No cuadrada (teniendo en cuenta de que tamao deber ser la nueva matriz)
Problema 12. Se tiene una matriz, intercambiar los elementos de 2 renglones seleccionados
por el usuario.
Problema 13. Obtener en un arreglo la suma de los elementos de cada columna par de una
matriz y el producto de los elementos de cada columna impar de la misma matriz.
Ejemplo Nro. 1: Ingresar 2 nmeros enteros y luego visualizar el mayor valor de estos
nmeros.
Ejemplo Nro. 2: Una tienda comercial ofrece a sus clientes un descuento del 3% del
total de compra si el nmero de productos adquiridos es mayor a 5. Calcular el total a
pagar por una compra.
Ejemplo Nro. 3: Una empresa otorga a sus trabajadores una bonificacin equivalente al
5% del salario por cada hijo que tenga el trabajador. Calcular la bonificacin y el total a
pagar a un trabajador.
BIBLIOGRAFIA
Ismael Patio
Felix Garca
Alejandro Caldern
Javier Fernandez
Direcciones Internet
http://www.ulpgc.es/otros/tutoriales/mtutor/indice.html
http://www.programacion.com/java/tutorial/jap_data_alg/
http://pjsml.50megs.com/java/algoritmos.html
http://www.csgabriel.edu.ec/java/