Вы находитесь на странице: 1из 89

Apuntes de Algoritmos

Real izado por Ing. Kene Reyna Rojas


El presente documento es una recopilacin de apuntes de algoritmos diferentes
autores de libros, documentos y direcciones de internet


INDICE GENERAL
1. Sistema de procesamiento de informacin ............................................................ 0
2. Concepto de algoritmo ............................................................................................. 0
2.1. Caractersticas de los algoritmos ...................................................................... 0
2.2. Partes de un algoritmo ...................................................................................... 0
3. Resolucin de problemas con computadoras y las herramientas de programacin
1
3.1. Anlisis del problema: ....................................................................................... 1
3.2. Diseo o desarrollo del algoritmo .................................................................... 1
3.3. Resolucin del algoritmo en la computadora .................................................. 1
4. Representacin de un algoritmo ............................................................................. 1
4.1. Diagrama de flujo .............................................................................................. 1
4.2. Pseudocdigo .................................................................................................... 2
5. Datos y Tipos de datos ............................................................................................. 3
5.1. Datos numricos ................................................................................................ 3
5.1.1. Enteros: ...................................................................................................... 3
5.1.2. Reales: ........................................................................................................ 3
5.2. Datos Lgicos: .................................................................................................... 3
5.3. Datos carcter: .................................................................................................. 3
6. Constantes y Variables: ............................................................................................ 4
7. Operadores ............................................................................................................... 4
7.1. Relacionales o condicionales: ........................................................................... 4
7.2. Aritmticos : ...................................................................................................... 4
7.3. Alfanumricos: .................................................................................................. 5
7.4. Lgicos o Booleanos: ......................................................................................... 5
7.5. Parntesis: ......................................................................................................... 5
8. Expresiones ............................................................................................................... 6
9. Regla de Prioridad .................................................................................................... 6
10. Operacin de Asignacin ...................................................................................... 7
11. Ejercicios ................................................................................................................ 7
12. Estructura General de un Programa ..................................................................... 8
12.1. Partes de un programa .................................................................................. 8
13. Instrucciones y tipos de instrucciones ................................................................. 9
13.1. Instruccin ..................................................................................................... 9
13.2. Tipos de instruccin ....................................................................................... 9
14. Programacin Estructurada ................................................................................ 10
14.1. Estructuras Secuencial ................................................................................. 10
14.2. Estructuras Selectivas .................................................................................. 14
14.2.1. Selectivas simples: ................................................................................... 16
14.2.2. Selectivas Dobles: .................................................................................... 17
14.2.3. Selectivas mltiples: ................................................................................ 17
14.2.4. Ejemplos ................................................................................................... 18
14.2.5. Ejercicios ................................................................................................... 20
14.3. Estructuras Repetitivas ................................................................................ 28
14.3.1. Estructura repetitiva mientras (While o Do while): ............................... 37
14.3.2. Estructura repetitiva para (For): ............................................................. 38
14.3.3. Estructura repetitiva repetir:................................................................... 39
14.3.4. Ejemplos ................................................................................................... 40
14.3.5. Ejercicios ................................................................................................... 46
15. Subprogramas ..................................................................................................... 59
15.1. Procedimientos (Subprograma): ................................................................. 59
15.2. Funciones ..................................................................................................... 60
15.3. Algoritmos Recursivos ................................................................................. 61
16. Estructuras de Datos ........................................................................................... 63
16.1. Arreglos unidimensionales .......................................................................... 64
16.1.1. Ordenacin ............................................................................................... 65
16.1.2. Bsqueda .................................................................................................. 76
16.2. Arreglos bidimensionales ............................................................................ 79


1. Sistema de procesamiento de informacin
Los temimos procesador de datos y sistema de procesamiento (tratamiento) de la
informacin se utilizan con frecuencia., el uso de diario de datos e informacin
son esencialmente sinnimos sin embargo existe una diferencia datos se refiere a
la representacin de algn hecho, concepto o entidad real (los datos pueden
tomar diferentes formas, por ejemplo palabras escritas o habladas, nmeros y
dibujos), informacin implica datos procesados y organizados, un sistema en
general se define como conjunto de componentes conectados e interactivos, que
tienen un propsito y una unidad total. Sistema de procesamiento de informacin
es un sistema que transforma datos brutos en informacin organizado,
significativo y til (Aguilar, 1988)





2. Concepto de algoritmo
Es el conjunto de instrucciones que especifican la secuencia de operaciones a
realizar en orden para resolver un sistema especfico o clase de problema. Los
algoritmos son independientes tanto del lenguaje de programacin en que se
expresa como de la computadora que los ejecuta. El diseo de la mayora de los
algoritmos requiere creatividad y conocimientos profundos de la tcnica de la
programacin. En esencia. Todo problema se puede describir por medio de un
algoritmo (Aguilar, 1988)
2.1. Caractersticas de los algoritmos
Un algoritmo debe ser preciso e indicar el orden de realizacin de cada
paso
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se
debe obtener el mismo resultado cada vez
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en
algn momento sea debe tener un numero finito de pasos
2.2. Partes de un algoritmo
La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y
Salida
Entrada: son los datos que van iniciar el proceso
Proceso: Es la secuencia de paso que nos permite ejecutar alguna operacin
Salida: Es la informacin que se requiere al resolver el problema
2.3. Frfr

Procesador Entrada=Datos
Salida=Informacin

3. Resolucin de problemas con computadoras y las herramientas de programacin
Esta se puede dividir en tres fases importantes
3.1. Anlisis del problema:
El problema debe estar bien definido si se desea llegar a una solucin
satisfactoria, para poder definir con precisin el problema se requiere que las
especificaciones de entrada y salida sean descritas con detalle. Una buena
definicin del problema junto con una descripcin detallada de las
especificaciones de entrada y salida son los requisitos ms importantes para
llegar a una solucin eficaz. El Anlisis del problema exige una lectura previa
del problema a fin de obtener una idea general de lo que se solicita la segunda
lectura servir para responder a las preguntas
Qu informacin debe proporcionar la resolucin del problema?
Qu datos se necesitan para resolver el problema?
3.2. Diseo o desarrollo del algoritmo
La descomposicin del problema original en subproblemas ms simples y a
continuacin dividir estos subproblemas en otros ms simples que pueden ser
implementados para la solucin en la computadora se denomina diseo
descendente (Top Down Design.). Las ventajas ms importantes del diseo
descendente son.
El problema se comprende ms fcilmente al dividirse en partes ms
simples denominados mdulos.
Las modificaciones en los mdulos son ms fciles
La comprobacin del problema se puede verificar fcilmente
Tras los pasos anteriores es preciso representar el algoritmo mediante
determinadas herramientas de programacin diagrama de flujo, pseudocdigo
o diagrama N-S
3.3. Resolucin del algoritmo en la computadora
Una vez que el algoritmo est diseado y representado grficamente
mediante una herramienta de programacin (diagrama de flujo, pseudocdigo
o diagrama N-S) se debe pasar a la fase de resolucin prctica del problema
con la computadora
4. Representacin de un algoritmo
Para representar los algoritmos debemos utilizar mtodos grficos o numricos,
que sea independiente de un lenguaje de programacin, de tal manera que nos
permita visualizar el algoritmo que queramos representar, existen varios mtodos,
los ms usados a nivel internacional son el diagrama de flujo y el pseudocdigo.
4.1. Diagrama de flujo
Es un diagrama que utiliza los smbolos (cajas) estndar mostrados y que tiene
los pasos del algoritmo escritos en esas cajas unidas por flechas, denominadas
lneas de flujo, que indican la secuencia en que se deben ejecutar.
Un diagrama de flujo (flowchart) es una de las tcnicas de representacin de
algoritmos ms antigua y a la vez ms utilizada, aunque su empleo ha
disminuido, estos smbolos estn normalizados por ANSI y entre las cajas ms
importantes tenemos: (Aguilar, 1988)

Smbolo Funcin





Terminal: representa el comienzo,
inicio, final y fin de un programa.
Puede representar tambin una
parada o interrupcin programada



Entrada / Salida : cualquier tipo de
introduccin de datos en la memoria
desde los perifricos o registro dela
informacin procesada en un
perifrico




Proceso: Cualquier tipo de
informacin que pueda originar
cambio de valor, formato, posicin de
la informacin almacenada en
memoria, operaciones aritmticas, de
transferencia, etc.





Decisin: indican operaciones lgicas
o de comparacin entre datos,
normalmente dos y en funcin del
resultado de la misma determina cul
de los distintos caminos alternativos
del programa se debe seguir
normalmente tiene dos salidas
respuesta s o no pero puede tener
tres o ms segn los casos



Indicador de Direccin o Lnea de
Flujo:indica el sentido de ejecucin de
las operaciones

4.2. Pseudocdigo
Es un lenguaje especificado de algoritmos. El uso de tal lenguaje hace el paso
de codificacin final relativamente fcil. La ventaja de un pseudocdigo es que
en su uso la planificacin de un programa, el programador se puede
concentrar en la lgica y en las estructuras de control y preocuparse de las
reglas de un lenguaje de programacin. Es tambin fcil modificar el
pseudocdigo si se descubren errores o anomalas en la lgica del programa
(Aguilar, 1988)
Si
No
El pseudocdigo es un lenguaje algortmico, de alto lenguaje utilizado para
escribir con mucha ms abstraccin instrucciones de un lenguaje de
programacin.
5. Datos y Tipos de datos
5.1. Datos numricos
El tipo numrico es el conjunto de los valores numricos, estos pueden
representarse de dos formas distintas
5.1.1. Enteros:
Es un subconjunto finito de los nmeros enteros. Los enteros son nmeros
completos, no tienen componentes fraccionarios o decimales y pueden
ser negativos o positivos (Aguilar, 1988)
En java existen los siguientes tipos de datos enteros
Byte, enteros de 8 bits, con rango de valores entre -128 y 127
Short, entero corto de 16 bits, con rango de valores entre -32768 y 32767
Int entero de 32 bits, con rango de valores entre -2147483648 y
2147483647
Long, entero largo de 64 bits, con rango de valores entre -
9223372036854775808 y 9223372036854775807
5.1.2. Reales:
El tipo real consiste en un subconjunto de los nmeros reales, Los
nmeros reales siempre tienen su punto decimal y pueden ser positivos o
negativos
En java existen los siguientes tipos de datos reales
Float, valores de punto flotante de 32 bits, con rango de valores entre-
1.40239846e-45 y 3.40282347e+38
Doubl, valores de punto flotante de 64 bits, con rango de valores entre
4.9406564581246544e-324 y 1.79769313486231570e+308
5.2. Datos Lgicos:
Tipo lgico tambin denominado booleano, es aquel dato que solo puede
tener uno o dos valores cierto o verdadero (True ) y falso (False), este tipo de
dato se utiliza para representar alternativas (si/no) a determinadas
conclusiones
En java existe
Boolean, sus valore son true y false

5.3. Datos carcter:
Es el conjunto finito y ordenado de caracteres que la computadora reconoce.
Un dato tipo carcter contiene un solo carcter (Aguilar, 1988)
Una cadena de caracteres (String) es una sucesin de caracteres que se
encuentran delimitados por una comilla (apostrofo) o dobles comillas segn el
tipo de lenguaje de programacin. La longitud de una cadena de caracteres es
el nmero de ellos comprendidos entre los separadores o delimitadores
En java existe
Char, valores de 16 bits, no signados de 0 65535 representa caracteres
Unicode

6. Constantes y Variables:
Los programas de computadora contiene ciertos valores que no deben cambiar
durante la ejecucin del programa tales valores se llaman constantes de igual
forma existen otros valores que cambiaran durante la ejecucin del programa a
estos valores se les llama variables.
7. Operadores
Todos los smbolos que representan enlaces entre cada uno de los argumentos
que intervienen en una operacin se llaman operadores y se utilizan para construir
expresiones. (Rodriguez Almeida, 1991) Los operadores pueden ser:
7.1. Relacionales o condicionales:
Se utilizan para formar expresiones booleanas, es decir, expresiones que al ser
evaluadas producen un valor booleano: verdadero o falso. Tal como se
muestra en la figura (Rodriguez Almeida, 1991)






Fuente: Libro de metodologa de la programacin de Rodrguez Almeida
7.2. Aritmticos :
Para tratar los nmeros se utilizan los operadores aritmticos, que junto con
las variables numricas forman expresiones aritmticas (Rodriguez Almeida,
1991)










Fuente: Libro de metodologa de la programacin de Rodrguez Almeida
Los operadores mod y div son de menor prioridad


7.3. Alfanumricos:
Se utiliza para unir datos alfanumricos (Rodriguez Almeida, 1991)





Fuente: Libro de metodologa de la programacin de Rodrguez Almeida
Concatenacin, unir expresiones alfanumricas como si fueran eslabones de
una cadena.
7.4. Lgicos o Booleanos:
Combinan sus operandos de acuerdo con las reglas del algebra de Boole con el
fin de producir un nuevo valor que se convierta en el valor de la expresin






Fuente: Libro de metodologa de la programacin de Rodrguez Almeida
OR u O: Es un operador binario, afecta a dos operadores. La expresin forma
es cierta cuando al menos algunos de los operandos es cierto. Es el operador
lgico de disyuncin.
AND o Y: es un operador binario. La expresin formada es cierta cuando
ambos operandos son ciertos al mismo tiempo. Es el operador lgico de
Conjuncin.
NOT o no: es un operador unario. Afecta a la expresin cambiando sus estado
lgico, si era verdad lo transforma en falso o viceversa
7.5. Parntesis:
Los parntesis se utilizan para anidar expresiones,




Fuente: Libro de metodologa de la programacin de Rodrguez Almeida
7.6. ded
8. Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de
operacin, parntesis, y nombres de funciones especiales. Las mismas ideas son
utilizadas en notacin matemtica tradicional
Cada expresin toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecucin de las operaciones indicadas
Una expresin consta de operando y operadores segn el tipo de objetos que se
manipulan, se clasifican las operaciones en:
Aritmticas
Relacionales
Lgicas
Carcter

9. Regla de Prioridad
Segn Rodrguez (Rodriguez Almeida, 1991), la prioridad a la hora de evaluar los
operadores en cualquier expresin es
Parntesis
Potencias
Productos y divisiones
Sumas y restas
Concatenacin
Relacionales
Lgicos
Segn Joyanes(Aguilar, 1988)Las expresiones que tienen dos o ms operadores
requieren usar reglas matemticas que permitan determinar el orden de las
operaciones, se denominan reglas de prioridad o precedencia y son:
a) Las operaciones que estn encerradas entre parntesis se evalan primero.
Si existen diferentes parntesis anidados (interiores unos a otros), las
expresiones ms internas se evalan primero.
b) Las expresiones aritmticas dentro de una expresin suelen seguir el
siguiente orden de prioridad:
Operador exponencial (^)
Operadores de multiplicacin y divisin
Operadores de suma y resta
Operadores lgicos or y and
10. Operacin de Asignacin
La operacin de asignacin es el modo de darle valores a una variable. La
operacin de asignacin se representa con el smbolo u operador ( ). LA
operacin de asignacin se conoce como instruccin o sentencia de asignacin
cuando se refiere a un lenguaje de programacin
El formato general de una operacin de asignacin es



Expresin Expresin, expresin, variable o constante
Ejemplo
A 10
Significa que la variable A se le ha asignado el valor entero de 10
11. Ejercicios
Encontrar el valor de la variable valor despus de la ejecucin de las
siguientes operaciones
a. Valor 4.0*5
b. X 3.0
Y 2.0
Valor X^Y Y
c. Valor 5
X 3
Valor valor* X
Deducir el resultado que se puede producir con las siguientes
instrucciones
Variables x, y = enteros
X 1
Y 5
Escribir x, y
Deducir el valor de las expresiones siguientes
X A +B +C
X A + B * C
X A + B / C
X A + B mod C
X (A + B )/ C
X A + (B / C)
X A + (B * C)
Siendo A =5, B =25, C= 10
Nombre de la variable Expresin
Escribir las siguientes expresiones en forma de expresiones algortmicas

i.



ii.


iii.


iv.


v.


vi.


Como se intercambian los valores de las A, B y Aux
Aux A
A B
B Aux




12. Estructura General de un Programa
Es un conjunto de instrucciones, rdenes dadas a la mquina, que producirn la
ejecucin de una determinada tarea. En esencia un programa es un medio para
conseguir un fin.
El proceso de la programacin es por consiguiente, un proceso de solucin de
problemas, y el desarrollo de un programa requiere las siguientes fases
Definicin y anlisis del problema
Diseo de algoritmos
o Diagrama de flujo
o pseudocdigo
Codificacin del programa
Depuracin y verificacin del programa
Documentacin
Mantenimiento
12.1. Partes de un programa







Programa
(algoritmo de
resolucin)
Entrada
Salida
12.2. d
13. Instrucciones y tipos de instrucciones
13.1. Instruccin
Son las acciones o instrucciones que se deben escribir y posteriormente
almacenar en memoria en el mismo orden en que han de ejecutarse, es decir,
en secuencia
13.2. Tipos de instruccin
Instrucciones de inicio y fin
Son aquellas instrucciones que inicializan y finalizan la escritura y
ejecucin del programa por ejemplo en java
public class {
public static void main(String[], args){
}
}
Instrucciones de asignacin
Son aquellas instrucciones que permite asignar valores a una variable
Ejemplo en java
I=3;
Int x [];
Int [] x;
Char [] c = {1, b, c, d, e}
Char [] x = new char [20];
Char x [] = new char [20];
Char [] [] x =new char [3][2];

Instrucciones de lectura
Esta instruccin lee datos de un dispositivo de entrada ejemplo leer
edad, tiempo. Ejemplos.
a=Integer.parseInt(JOptionPane.showInputDialog("ingrese un numero:
"));

Instrucciones de escritura
Esta instruccin escribe en un dispositivo de salida ejemplo escribir A, B, C
Ejemplos
System.out.Println(i)
Instrucciones de bifurcacin
El desarrollo lineal de un programa se interrumpe cuando se ejecuta una
bifurcacin. Las bifurcaciones pueden ser segn el punto del programa a
donde se bifurca hacia adelante o hacia atrs.
o Bifurcacin incondicional: se realiza siempre que el flujo del
programa pase por la instruccin sin necesidad del cumplimiento
de ninguna condicin










o Bifurcacin Condicional: depende del cumplimiento de una
determinada condicin. Si se cumple la condicin, el flujo sigue
ejecutando la accin F2 si no cumple se ejecuta la accin F1






14. Programacin Estructurada
Se refiere a un conjunto de tcnicas que aumentan considerablemente la
productividad del programa reduciendo un elevado grado el tiempo para escribir,
verificar, depurar y mantener los programas. La programacin estructurada
incorpora
Diseo descendente: es el proceso mediante el cual un problema se descompone
en una serie de niveles o pasos sucesivos de refinamiento
Recursos abstractos: la programacin estructura se auxilia de los recursos
abstractos en lugar de los recursos concretos de que se dispone
Estructuras bsicas: son tres tipos de control: secuencial, selectiva y repetitivas.

14.1. Estructuras Secuencial
La estructura secuencial es aquella en la que una accin (instruccin) sigue a
otra en secuencia. Las tareas se suceden de tal modo que la salida de una es
la entrada de la siguiente y as sucesivamente hasta el fin del proceso.
Accin 1
Accin 2
Accin 3
Accin F2
Accin
F1
?
(Wilder, 2010)
En Pseudocdigo una Estructura Secuencial se representa de la siguiente
forma:
Ejemplo 1
Tengo un telfono y necesito llamar a alguien pero no s cmo hacerlo.












Ejemplo 2
Escriba un algoritmo que pregunte por dos nmeros y muestre como
resultado la suma de estos. Use Pseudocdigo y diagrama de flujos.











Ejercicios 1 al 11 extrados de Lic. Salomn Aquino de la materia Lgica
Computacional.(Aquino, 2007)
1. Leer el sueldo de tres empleados y aplicarles un aumento del 10, 12 y
15% respectivamente. Desplegar el resultado.
2. Escribir un programa que calcule el salario de un trabajador de la
manera siguiente. El trabajador cobra un precio fijo por hora y se le
descuenta el 10% en concepto de impuesto sobre la renta. El programa
debe pedir el nombre del trabajador, las horas trabajadas y el precio
que cobra por hora. Como salida debe imprimir el sueldo bruto, el
descuento de renta y el salario a pagar.
3. Programa que pida el precio de un artculo y calcule su valor,
aplicndole un 18% de IGV.
4. Dada una medida de tiempo expresada en horas, minutos y segundos
con valores arbitrarios, elabore un programa que transforme dicha
medida en una expresin correcta. Por ejemplo, dada la medida 3h 118
min 195 seg, el programa deber obtener como resultado 5h 1m 15s
5. Escriba un programa que calcule el rea de un tringulo rectngulo,
dada la altura y la base.
6. Elabore un programa que realice la conversin de cm. a pulgadas.
Donde 1 cm = 0.39737 pulgadas. Por lo tanto, el usuario proporcionara
el dato de N cm. y el programa dir a cuantas pulgadas es equivalente.
7. Elabore un programa que realice la conversin de pulgadas a cm.
Donde 1 cm. = 0.39737 pulgadas. Por lo tanto, el usuario proporcionara
el dato de N pulgadas y el programa dir a cuantos centmetros
equivale.
8. Elabore un programa que realice la conversin de metros a pies
Donde 1 m = 3.2808 pies, Por lo tanto, el usuario proporcionara el dato
de N m y el programa dir a cuantos pies equivale.
9. Elabore un programa que realice la conversin de pies a metros
Donde 1 m = 3.2808 pies. Por lo tanto, el usuario proporcionara el dato
de N pies y el programa dir a cuantos metros equivale.
10. Elabore un programa que realice la conversin de kilogramos a libras
Donde 1 Kg. = 2.2046 libras. Por lo tanto, el usuario proporcionara el
dato de N Kg. y el programa dir a cuantas libras equivale.
11. Elabore un programa que realice la conversin de libras a kilogramos
Donde 1 Kg. = 2.2046 libras. Por lo tanto, el usuario proporcionara el
dato de N libras y el programa dir a cuantos kilogramos equivale.
12. Introducir 5 notas por teclado, obtener la suma de las notas, el
promedio de las mismas y el doble de las notas.
13. Un alumno desea saber cul ser su calificacin final en la materia de
Algoritmos. Dicha calificacin se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificacin del examen final.
15% de la calificacin de un trabajo final.
14. Calcular el nmero de pulsaciones que una persona debe tener por cada
10 segundos de ejercicio, si la frmula es:
num. Pulsaciones = (220 - edad)/10

15. En un hospital existen tres reas: Ginecologa, Pediatra, Traumatologa.
El presupuesto anual del hospital se reparte conforme a la siguiente
tabla:
rea Porcentaje del presupuesto
Ginecologa 40%
Traumatologa 30%
Pediatra 30%
Obtener la cantidad de dinero que recibir cada rea, para cualquier
monto presupuestal.
16. El coste de un automvil nuevo para un comprador es la suma total del
coste del vehculo, del porcentaje de la ganancia del vendedor y de los
impuestos locales o estatales aplicables (sobre el precio de venta).
Suponer una ganancia del vendedor del 12% en todas las unidades y un
impuesto del 6% y disear un algoritmo para leer el coste total del
automvil e imprimir el coste para el consumidor.
17. Un alumno desea saber cul ser su promedio general en las tres
materias ms difciles que cursa y cul ser el promedio que obtendr
en cada una de ellas. Estas materias se evalan como se muestra a
continuacin:
La calificacin de Matemticas se obtiene de la sig. Manera:
Examen 90%
Promedio de tareas 10%
En esta materia se pidi un total de tres tareas.
La calificacin de Fsica se obtiene de la sig. Manera:
Examen 80%
Promedio de tareas 20%
En esta materia se pidi un total de dos tareas.
La calificacin de Qumica se obtiene de la sig. Manera:
Examen 85%
Promedio de tareas 15%
En esta materia se pidi un promedio de tres tareas.
18. Dados las coordenadas (x1,y1) y (x2,y2) de dos puntos en el plano
cartesiano, determinar la distancia (d) entre estos dos puntos
19. Se tiene las votaciones de 3 candidatos (v1, v2, v3). Sobre el total (tot),
determinar el porcentaje de votacin obtenido por cada uno de los
candidatos (p1, p2, p3)
20. Leer tres valores enteros y realizar las siguientes operaciones
Sumar todos los valores
Multiplicar todos los valores
Restar de las suma de los dos el doble del tercero
Promedio de todos los valores.
Suma de las mitades de los ltimos valores
21. Leer cuatro valores reales a, b, c y d. Realizar lo siguiente:
Sumar el cuadrado de los extremos ms el cubo de los dems
Multiplicar el promedio de los tres primeros por el promedio de los
tres ltimos valores
Calcular la siguiente expresin: (suponga que c es diferente de
cero)

2
2
4
2 5 4
a b cd a
Valor cd
a
c
c
a b
+
= +
+
+ +


22. Si tenemos una expresin algebraica de la forma

, donde
conocemos los valores de los coeficientes de cada uno de los trminos
A, B, C , disee una aplicacin que realice los siguiente:
Calcular dos valores de la expresin para cinco valores diferentes de
la variable independiente x.
Elevar a la cuarta potencia todos los coeficientes de los temimos

23. Se tiene un tringulo rectngulo de base B y altura H. Calcular lo
siguiente:
rea de la figura
Permetro de la figura
hipotenusa
24. Se lee el radio de un circulo y el lado de un cuadrado, se le pide que
realice una aplicacin que haga lo siguiente:
Calcular rea de las figuras
Sumar los permetros de ambas figuras
rea promedio
Elevar al cubo el permetro del triangulo
Calcular la altura promedio de las figuras
25. Hay un cilindro, una esfera y un cono. Al leer las dimensiones bsicas de
cada uno de ellos, haga una aplicacin que realice:
Volumen promedio
Suma de reas laterales
Altura promedio
26. Leer cuatro valores reales y calcular la siguiente expresin: (suponga
que c es diferente de cero)

2
2
4
2 5 4
a b cd a
Valor cd
a
c
c
a b
+
= +
+
+ +


27. Leer dos valores reales p y q del teclado y escribir la media aritmtica
28. Leer un valor real x del teclado. Calcular y escribir r=x
2
2x
3

29. Leer los coeficientes de un polinomio de grado tres de la forma
P(x)=x
3
+ax
2
+bx+c, leer a continuacin un cierto valor para la variable
independiente x y calcular y escribir y = P(x)
30. Convertir a radianes un valor de ngulo medido en grados
sexagesimales
31. Calcular y escribir la temperatura T que corresponde a n moles de gas
ideal sometido a una presin P cuando ocupa un volumen V. Se supone
que los valores de P y V se proporcionan por teclado. R es una constante
universal de los gases


32. Permitir ingresar una hora determinada con el formato H M S (H= Hora,
M= Minuto, S= Segundo). Se pide imprimir la hora que ser despus de
un segundo
33. Ingresar un nmero de cuatro dgitos y que obtenga e imprima el
nmero que resulta de invertir sus cifras.
34. Realizar un programa que calcule la longitud y el rea total de tres
circunferencias sabiendo que la 1ra de ellas tiene un radio R que ser
PV nRT =
introducido por teclado, la 2da tiene un radio 3R y la 3ra tiene un radio
de 3R.






35. Realizar un algoritmo para hallar cuantos estudiantes tiene una
academia, donde en ciencias sociales hay dos grupos de asignaturas:
Filosofa con 124 alumnos y ciencias econmicas, con 220. Si hay 25
alumnos que estudian Filosofa y Ciencias Econmicas.
36. Realizar un algoritmo para resolver el siguiente problema, Orlando
compro 15 metros de tela para mandar a fabricar, a S/. 2890 el
metro. Para colgarla necesita 28 aros de madera cuyo valor es de S/.
235 cada uno. El riel y dems accesorios cuestan S/. 4550. Si la modista
cobra S/. 500 por cada metro de tela confeccionado y la instalacin
vale S/. 2000 Cundo es el costo total de la cortina instalada?
37. Un vendedor recibe un sueldo base ms un 10% extra por comisin de
sus ventas, el vendedor desea saber cunto dinero obtendr por
concepto de comisiones por las tres ventas que realiza en el mes y el
total que recibir en el mes tomando en cuenta su sueldo base y
comisiones.
38. Un profesor desea saber qu porcentaje de hombres y que porcentaje
de mujeres hay en un grupo de estudiantes.
39. Elaborar un programa en el cual se ingrese la distancia que existe en
dos vehculos y sus respectivas velocidades hallar el tiempo de alcance
y el tiempo de encuentro?
40. Elabore un programa en la que me devuelva la altura y la velocidad
final de un cuerpo de se deja caer ingresando nicamente el tiempo.
41. Convierta un ngulo sexagesimal g, m, s a grados, minutos y segundos
centesimales.
42. Elaborar un programa en el que se ingrese la masa atmica y la
cantidad de neutrones para que nos devuelva el nmero atmico, la
cantidad de neutrones y protones.
43. Elaborar un programa en el que ingrese el tiempo en el que se
demora en llegar el sonido de una detonacin a cierto lugar. calcular
la distancia donde se realiz la detonacin?
44. Elaborar un algoritmo que solicite el nmero de respuestas correctas,
incorrectas y en blanco, correspondientes a postulantes y muestre su
puntaje final considerando, que por cada respuesta correcta tendr 4
puntos, respuestas incorrectas tendr -1 y respuestas en blanco tendr
0.
45. Elaborar un algoritmo que permita ingresar el nmero de partidos
ganados, perdidos y empatados, por algn equipo en el torneo apertura,
se debe demostrar su puntaje total, teniendo en cuenta que por cada
partido ganado obtendr 3 puntos, empatado 1 punto y perdido 0
puntos.
46. Elabore el algoritmo que permita ingresar dos valores numricos
enteros cualquiera, luego de evaluar se debe imprimir sus valores
intercambiados.
47. Determinar la suma de los N primeros nmeros enteros de acuerdo a la
siguiente formula:





48. Cifrado de datos: dado un nmero de cuatro dgitos se reemplazar
cada dgito por (dgito +7) mdulo 10. A continuacin se intercambiar
el primer dgito por el tercero y el segundo por el cuarto, y ese ser el
nmero cifrado
49.
14.2. Estructuras Selectivas
Este tipo de estructuras se utilizan cuando el programador quiere realizar
algunas bifurcaciones o establecer condiciones que cumpla o alguna
determinada condicin o restriccin
14.2.1. Selectivas simples:
Ejecuta una determinada accin cuando se cumple una determinada
condicin. A continuacin se muestra su sintaxis

Pseudocdigo

Si condicin Entonces
Instruccin
Fin si

En Diagrama de flujo se muestra en la figura











Instruccin
Condici
n
*( 1)
2
N N
Suma
+
=



14.2.2. Selectivas Dobles:
La estructura anterior es muy limitada y normalmente se necesitara una
estructura que permita elegir dos opciones o alternativas posibles en
funcin del cumplimiento o no de una determinada condicin. A
continuacin se muestra su sintaxis










Si condicin entonces
Instruccin 2
Sino
Instruccin 1
Fin si




14.2.3. Selectivas mltiples:
Con frecuencia en la prctica, es necesario que existan ms de dos
elecciones posibles

Diagrama de Flujo






Condicin
Instruccin 2
Instruccin 1
Condicin
Instruccin n







Pseudocdigo

Segn sea condicin

Case 1:
Case 2:
.
.
.
Case n:
Fin segn

14.2.4. Ejemplos
Ejemplo 1:
Resolucin de una ecuacin de primer grado
Si la ecuacin es ax + b =0, a y b son los datos y las posibles soluciones
son
Si a <> 0 entonces x= -b/a
a=0 b<>0 entonces solucin imposible
a= 0 b =0 entonces solucin indeterminada
Algoritmo pseudocdigo
Inicio
Leer a, b
Si a <> 0 entonces
x - b/a
Sino
Si b<>0 entonces
Escribir solucin imposible
Sino
Escribir solucin indeterminada
Fin- si
Fin si


Fin
Ejemplo 2
Resolucin de la ecuacin de segundo grado teniendo en cuenta los
tres posibles valores de discriminacin
La ecuacin de segundo grado es:
ax^2 + bx +c = 0
El discriminante D vale
D = b^2 - 4ac
Y las races son
X1, x2 =


Si el discriminante es menor que cero, las races son imaginarias
Algoritmo Pseudocdigo
Inicio
Leer a, b, c
D b^2 -4*a*c
Segn sea D hacer
D <0: escribir races complejas
D = 0: x - b/2*a
D >0: rcraizcua(D)
X1 (-b + rc)/2*a
X2 (-b -rc)/2*a
Escribir x1, x2
Fin _ segn
fin
Ejemplo 3
Se desea disear un algoritmo que escriba los nombres de los das de
la semana en funcin del valor de una variable DIA introducida por
teclado
Inicio
Leer Da
Segn_ sea DIA hacer
1: escribir Lunes
2: escribir Martes
3: escribir Miercoles
4: escribir Jueves
5: escribir Viernes
6: escribir Sabado
7: escribir Domingo
Otros: escribir Error
Fin_ segn
Fin

14.2.5. Ejercicios
1. Para calcular el nivel de ruido de una calle de una ciudad se
realizan 4 medidas, una cada 8 horas, en un punto concreto. Si la
media de las medidas del nivel de ruido supera la mxima
admitida (por ejemplo mxima =4), significa que el ruido es nocivo
para la salud. Realizar un programa que calcule el nivel medio del
ruido de una calle y determine si el nivel de ruido es nocivo o es
admisible.
2. Un banco antes de conceder un prstamo a 20 aos comprueba los
ingresos del solicitante. Si los ingresos son superiores a 1200.00
nuevos soles mensuales el crdito se concede. Si los ingresos son
inferiores a 1200.00 nuevos soles pero superiores a 1000.00
nuevos soles y est soltero el crdito se concede. Tambin se le
concede si tiene ingresos entre 1200.00 y 1000.00 nuevos soles y
est casado sin hijos. Realizar un programa que pida los ingresos
mensuales y el estado civil del solicitante y si tiene hijos y diga si
se le da el crdito o no
3. Escriba un programa que lea el importe de la compra y la cantidad
recibida y calcule el cambio a devolver, teniendo en cuenta que el
nmero de monedas que devuelva debe ser mnimo. Suponer que
el sistema monetario utilizado consta de monedas de 100, 50, 25,
5, 1 unidad.
4. Escriba un programa que lea tres nmeros enteros y asigne el
valor apropiado TRUE o FALSE a las siguientes variables booleanas
y muestre el tipo de triangulo que es (si es un tringulo)
Triangulo: True si los nmeros pueden representar longitudes de
los lados de un tringulo (La suma de dos cualesquiera de los lados
debe ser mayor que el otro).
Equiltero: True si es un tringulo equiltero (todos los lados son
iguales).
Issceles: True si es un tringulo issceles (al menos dos lados son
iguales).
Escaleno: True si es un tringulo escaleno (no tiene dos lados
iguales).
5. Escribe un programa que lea los coeficientes A, B, C de la ecuacin
cuadrtica AX
2
+ BX + C = 0 y muestre por pantalla la solucin
obtenida. Considerar los casos en que no exista solucin, que
existan infinitas soluciones, que exista una sola solucin (Ecuacin
lineal) o que existan dos soluciones.
6. Se quiere realizar un programa que determine si un alumno es
apto o no. Un alumno se considera apto si su nota final es de 5 o
ms y no apto en caso contrario. La nota final se calcula como la
media ponderada del trabajo realizado en casa, la media obtenida
en los tests y la puntuacin del examen. Nota final = 0.2* Trabajo +
0.5*Test + 0.3*Examen. Adems debe tener la calificacin de
acuerdo a la tabla:
Nota >=9.5 Matrcula de Honor
8.5 <= Nota < 9.5 Sobresaliente
6.5 <= Nota < 8.5 Notable
5 <= Nota < 6.5 Aprobado
Nota < 5 Suspenso
7. Escribir un algoritmo tal que dada la temperatura mxima del mes
y la temperatura medida hoy, actualice el valor de la mxima si la
temperatura leda hoy es mayor que dicho mximo.
8. Implementar un algoritmo que dados tres nmeros a, b y c, los
devuelva ordenados de menor a mayor
9. El cuadrante de un punto (x, y) se puede determinar a partir del
signo de x e y. Escribir un algoritmo tal que dadas las coordenadas
x e y, indique a que cuadrante pertenece el punto







10. Dados el valor antiguo y el actual del contador de la luz, escribir un
algoritmo que determine a cunto asciende la factura de la luz de
un determinado abonado. El importe es la suma de la cuota fija
(S/. 12 ) ms una cuota variable que depende del consumo y se
calcula por tramos: los primeros 100 Kw, a 0.06 el Kw, los 150 Kw
siguientes a 0.04 el Kw, si el consumo excede de 250 Kw, esa
fraccin se cobra 0.02 el kw
11. Supngase que el importe del seguro obligatorio de un conductor
de un coche depende del modelo del coche, del color y de la edad
del conductor. Sean dos modelos de coche A y B y los precios del
seguro segn el color:









Si el conductor tiene menos de 26 aos, el precio se incrementa un
25 %; si tiene entre 26 y 30 aos se incrementa un 10 %; si tiene
entre 31 y 65 aos el precio no se modifica; si tiene ms de 65
aos el precio se incrementara un 10 %. Adems, en cualquier
caso, hay que considerar que si el conductor tiene menos de 2
aos el permiso de conducir, el precio se incrementara un 25 %
adicional.
Disear un algoritmo que calcule el precio del seguro para un
determinado modelo y un determinado conductor.
12. Disear un algoritmo que dado un nmero, indique si es par o
impar
13. Desarrolle un algoritmo que permita leer dos valores distintos,
determinar cul de los valores es el mayor y escribirlo.
14. Elabore el algoritmo que permita ingresar un valor numrico
entero, que debe evaluar o decir que es mayor que 100 caso
contrario se tiene que indicar que es menor
15. Del ejercicio 14 se debe evaluar la posibilidad cuando el valor
numrico sea igual a 100.
16. Elabore el algoritmo que permita ingresar dos valores numricos
enteros positivos cualquiera, luego de evaluar se debe imprimir sus
valores intercambiados.
17. Desarrolle un algoritmo que permita leer tres valores y
almacenarlos en las variables A, B y C respectivamente. El
algoritmo debe imprimir cual es el mayor y cul es el menor.
Recuerde constatar que los tres valores introducidos por el teclado
sean valores distintos. Presente un mensaje de alerta en caso de
que se detecte el ingreso de valores iguales
18. Elaborar el algoritmo que permita ingresar cuatro valores enteros
distintos luego de evaluar se debe decir cul de ellos es el mayor
19. Similar al ejercicio anterior, luego de evaluar se debe decir cul de
ellos es el mayor y el menor
20. Elaborar un algoritmo que imprima el valor medio de tres
nmeros, ingresados por teclado ( no es el promedio)
21. Determinar la cantidad de dinero que recibir un trabajador por
concepto de las horas extras trabajadas en una empresa, sabiendo
que cuando las horas de trabajo exceden de 40, el resto se
consideran horas extras y que stas se pagan al doble de una hora
normal cuando no exceden de 8; si las horas extras exceden de 8
se pagan las primeras 8 al doble de lo que se paga por una hora
normal y el resto al triple.
22. Se desea agregar una letra para representar la calificacin de los
alumnos, las calificaciones son notas entre 1 y 10; use los
siguientes parmetros: A para calificaciones mayores o iguales a 9,
B para calificaciones mayores o iguales a 8, C para calificaciones
mayores o iguales a 7, D para calificaciones mayores o iguales a 6,
F para todas las dems calificaciones.
23. La empresa Milagrito S.A. tiene la siguiente tabla de parmetros
para pagar las comisiones de sus ejecutivos de ventas:



Escriba un programa que al introducir la cantidad vendida por el
ejecutivo de ventas, calcule de cunto ser su comisin.
24. En base al valor de dos nmeros enteros, determine si estos son:
A. Iguales.
B. No iguales.
C. El primero es mayor que el segundo.
D. El segundo es mayor que el primero.
25. Un restaurante, desea dar a conocer a sus clientes el plato que se
ha preparado para cada uno de los tiempos de comida desayuno,
almuerzo y cena. El restaurante prepara un plato nico para cada
uno de los tiempos. Cuando el cliente seleccione entre los tiempos
de comida (desayuno, almuerzo o cena) se debe desplegar el
detalle de este.
Ejemplo:
Seleccione su tiempo de Comida: desayuno
Detalle
Pltanos, Frijoles, Queso, Crema, Pan y Caf
26. Elabore un programa que pida dos nmeros y que permita mostrar
un men con las cuatro operaciones bsicas, donde el usuario
pueda seleccionar la operacin que desea realizar (basta con que
seleccione el nmero).
27. Leer un nmero real x, calcular y escribir r = |x|
3

28. Calcular el coste de una llamada telefnica que ha durado t
minutos sabiendo que si t<1, el coste es de 0.4 euros mientras que
para duraciones superiores el coste es 0.4 + (t+1)/4 euros.
29. Leer un nmero real del teclado. Calcular el valor de p sabiendo
que si x est en el intervalo (2,8], el resultado p toma el valor uno,
en caso contrario toma el valor cero. Escribir posteriormente el
valor de p.
30. Leer un valor x del teclado. Calcular y escribir el valor y = f(x),
siendo f una funcin definida a trozos del siguiente modo:

x F(x)
x *-1,3) 10-x
x>50 1
resto 0

31. Leer las componentes de un vector de R
2
(x e y). Calcule el valor de
r que se define como r= NC(x, y), si x0, y0 y x=0 o si y =0
32. Dado un numero entero x mayor que uno se ha de escribir un uno
si el nmero es par y un cero en caso contrario.
33. Dados dos nmeros enteros positivos p y q, p > q, se ha de escribir
un uno si son divisibles y cero si no lo son
34. Dada una cantidad N > 1 calcular la raz cuadrada entera
aproximada r. se ha de cumplir que r*r N < (r+1)(r+1). Por
ejemplo, si N=24 se tiene que r=4 pues 4*4 =1624<25=5*5.
35. Se ha de escribir un uno en el caso de que exista un trio (x, y, z) de
nmeros enteros positivos tales que x
2
+ y
2
= z
2
. Limite a x (0,
100+, y (0, 100+. En caso de que no se encuentre solucin se ha de
escribir un cero.
36. Determinar el mayor y menor valor de 5 nmeros ingresados
desde el teclado.
37. Ordenar de menor a mayor 5 nmeros ingresados por teclado
38. Un restaurant ofrece un descuento del 20% para un consumo
mayor a S/. 30.00 y aplica un impuesto de 15% para todo
consumo. Determinar el importe a pagar por lo consumido,
mostrando todos los importes.
39. Un profesor desea implementar un algoritmo que le permita
bonificar equitativamente a todos sus alumnos de acuerdo a la
nota conseguida en un examen, de la siguiente forma: si la nota
fuera menor que 5 se bonifica con 3 puntos; si la nota fuera mayor
o igual que 5 pero menor que 10 se bonifica con 2 puntos y si la
nota fuera mayor o igual que 10 pero menor que 15 se bonifica
con 1 punto; y si la nota fuera mayor o igual que 15 pero menor o
igual que 20 se le descuenta el residuo de la nota entre 5,
determinar la nota bonificada para cualquier alumno.
40. Dos personas desean intercambiar sus identidades (nombre,
direccin, telfono, edad) siempre y cuando la edad del primero
fuese mayor que la edad de segundo en no ms de 4 aos. Ingresar
los datos de cada persona y mostrar sus nuevas identidades o un
mensaje mostrando la diferencia de edades que impidiera el
intercambio.
41. Un trabajador del estado percibe un sueldo bsico mensual de 750
nuevos soles; adems recibe incrementos de sueldo de acuerdo a
los siguientes conceptos


instruccin Porcentaje
Hasta 5to secundaria 5%
tcnico 10%
profesional 20%






Tambin por ley est sujeto a un descuento de 10% si su sueldo
excede de S/. 800. determinar el sueldo neto que recibe un
trabajador
42. En una olimpiada de tiro al blanco se llega a un acuerdo entre los
participantes para que el puntaje obtenido sea calculado en base
al puntaje original (0 al 10) alcanzado en el tiro, multiplicado por
un factor:






Para un tiro realizado determinar su puntaje correspondiente.
43. Una tienda de ropa ha establecido los porcentajes de descuento,
que se indican a continuacin, de acuerdo a ciertas caractersticas
del comprador: nacionalidad (1,2) y del producto que compra: sexo
(H, M), talla (Nio, Joven, Adulto). Se sabe que una persona puede
comprar varios productos por lo que se desea mostrar como
Condicin Social porcentaje
casado 3%
Por cada hijo 2%
Sin vivienda 5%
Puntaje original Factor
0 0
1..5 6
6..8 9
9..10 10
resultados los siguiente: nombre del comprador, cantidad de
productos comprados, importe comprado, importe descontado, el
importe a pagar; para lo cual se deben ingresar los datos que sean
necesarios. El proceso para la compra de una persona termina
cuando al ingresar el nombre del comprador se presiona ENTER

Nacionalidad
nio joven adulto
sexo sexo sexo
H M H M H M
1 5 4 7 9 10 12
2 4 5 9 7 12 10


44. Leer cuatro valores reales a, b, c, y d. realizar lo siguiente:
Calcular la siguiente expresin? (suponga que se ingresa valor
cero a c)


45. Leer cuatro valores reales y calcular la siguiente expresin
suponga que se ingresa valor cero a c)





46. Escribir un algoritmo cree un men de conversin para:
Pulgadas a centmetros (1 pulgada = 2.54 cm)?
Pies a metros (1 pie = 0.3048 metros = 12 pulgadas)?
Millas por hora a kilmetros por hora (60 millas\hora = 80
Km\hora)?
Grados a radianes (360 grados = 2pi radianes, pi=3.141592)?
?

47. Desarrolle un algoritmo para la siguiente funcin

2
2
4
2 5 4
a b cd a
Valor cd
a
c
c
a b
+
= +
+
+ +
2
2
2
4
2 5 4
a b cd a
Valor cd
c
a
c
a b
+
= +
+
+ +
0 0
0
0 16.67
16.67 0
( )
33.34
16.67 33.34
33.34 16.67
0 33.34
TINS
si x
x
si x
x
x
si x
si x

< s

=

< <

>



48. El gobierno del Per desea reforestar un bosque que mide
determinado nmero de hectreas. Si la superficie del terreno
excede a 1 milln de metros cuadrados, entonces decidir sembrar
de la siguiente manera.
Porcentaje de la superficie del bosque. Tipo de rbol 70% pino,
20% oyamel, 10% cedro.
Si la superficie del terreno es menor o igual a un milln de metros
cuadrados, entonces decidir sembrar de la siguiente manera.
Porcentaje de la superficie del bosque tipo de rbol.
50% pino
30% oyamel
20% cedro.
El gobierno desea saber el nmero de pinos, oyameles y cedros,
que tendr que sembrar en el bosque. Si se sabe que en 10 metros
cuadrados caben 8 pinos, en 15 metros cuadrados caben 15
oyameles y en 18 metros cuadrados caben 10 cedros. Tambin se
sabe que una hectrea equivale a 10 mil metros cuadrados.
49. Una fbrica ha sido sometida a un programa de control de
contaminacin para lo cual se efecta una revisin de los puntos
IMECA generados por la fbrica. el programa de control de
contaminacin consiste en medir los puntos IMECA que emite la
fbrica en cinco das de una semana y si el promedio es superior a
los 170 puntos entonces tendr la sancin de parar su produccin
por una semana y una multa del 50% de las ganancias diarias
cuando no se detiene la produccin. Si el promedio obtenido de
puntos IMECA es de 170 o menor entonces no tendr ni sancin ni
multa. El dueo de la fbrica desea saber cunto dinero perder
despus de ser sometido a la revisin.
50. Una persona se encuentra con un problema de comprar un
automvil o un terreno, los cuales cuestan exactamente lo mismo.
Sabe que mientras el automvil se devala, con el terreno sucede
lo contrario. Esta persona comprara el automvil si al cabo de tres
aos la devaluacin de este no es mayor que la mitad del
incremento del valor del terreno. Aydale a esta persona a
determinar si debe o no comprar el automvil.
51. Permita ingresar el mes y da de nacimiento, despus de evaluar se
debe imprimir el signo zodiacal correspondiente.
52. Imprima el valor medio de tres nmeros ingresados por el teclado.
53. Luego de ingresar una fecha del da con el formato Da Mes Ao.
Se imprime la fecha del da siguiente
54. Permitir ingresar una hora determinada con el formato H M S (H=
Hora, M= Minuto, S= Segundo). Se pide imprimir la hora que ser
despus de un segundo
55. Leer un nmero real x y otro entero z. calcular y escribir y = x
z
,
suponiendo que z 0
56. Queremos conocer los datos estadsticos de una asignatura, por lo
tanto, necesitamos un algoritmo que lea el nmero de reprobados,
aprobados, notables y sobresalientes de una asignatura, y nos
devuelva:
El tanto por ciento de alumnos que han superado la asignatura?
El tanto por ciento de reprobados, aprobados, notables y
sobresalientes de la asignatura?
57. Ingresar un numero en forma de ARABICO (entero) y mostrar su
equivalente en ROMANO asumiendo que el nmero ingresado es
correcto y no debe ser mayor a 3999
Ejemplo si se ingresa el numero 123 debe aparecer como resultado
CXXIII
58. Dado un nmero, se debe contestar si es mltiplo de 3, 6 y 9 a la
vez. Condicionar el algoritmo para cualquier nmero.
59. Disear el algoritmo que dado un nmero, indique si es par o es
impar
60. La temperatura de un horno puede variar desde 0 hasta 100
grados centgrados y se clasifica de acuerdo a lo siguiente:
MUY ALTA: si su valor esta entre 90
o
C y 100
o
C
ALTA: si su valor esta entre 80
o
C y 89
o
C
NORMAL: si su valor esta entre 40
o
C y 79
o
C
BAJA: si su valor esta entre 0
o
C y 39
o
C
61. Ingresar un mes (numero) y un ao e imprima cuantos das tiene
.tener en cuenta el caso de ao bisiestos.
62. Escribir un programa que lea una nota de un examen por teclado y
devuelva la calificacin que tiene. La calificacin podr ser:
Suspenso (0-4.99), Aprobado (5-6.99), Notable (7-8.99),
Sobresaliente (9-9.99) o Matrcula de Honor (10).
Realice este ejercicio utilizando la sentencia de case.
63. Escribir un algoritmo que lea tres nmeros enteros por teclado y
emita un mensaje indicando si estn o no en ordenados en orden
creciente.
64. Escribir un algoritmo que permita introducir por teclado tres
nmeros enteros y responda si los nmeros son iguales.

65. Escribir un algoritmo que permita introducir por teclado tres letras
y responda si existen al menos dos letras iguales.

66. Elabore un algoritmo que permita averiguar si una persona debe
sacar su CUIL, sabiendo su ao de nacimiento. El cdigo de
identificacin laboral es el nmero que se otorga a todo
trabajador al inicio de su actividad laboral en relacin de
dependencia (mayores de 18 aos).

67. Elabore un algortimo que solicite la edad de 2 hermanos y muestre
un mensaje indicando la edad del mayor y cuantos aos de
diferencia tiene con el menor.

68. Se tiene registrado la produccin (unidades) logradas por un
operario a lo largo de la semana (lunes a sbados). Elabore un
algoritmo que nos muestre o nos diga si el operario recibir
incentivos sabiendo que le promedio de produccin mnima es
de 100 unidades.

69. Elabore un algoritmo que permita ingresar el monto de venta
alcanzado por un vendedor durante un mes, luego de calcular la
bonificacin que le corresponde

Monto Bonificacin (%)
0 - 1000 0
1000 5000 3
5000 - 20000 5
20000 a mas 8


70. Elabore un algoritmo que solicite un nmero entero y muestre un
mensaje indicando la vocal correspondiente, considerando que la
vocal A =1.
71. Se desea leer un nmero entero de 2 cifras y que se muestre el
nmero de unidades, decenas que lo componen.
72. Elabore un algoritmo, dado un nmero cuyo valor es ledo desde
teclado, imprima por pantalla si el nmero es o no mayor a cero y
si el nmero es par o impar.
73. Elabora un algoritmo que tras leer un carcter desde teclado,
imprima por pantalla si la letra es mayscula o minscula. Ampli
el algoritmo, indicando si el carcter es un digito numrico (Nota:
digito numrico 48 57, maysculas 65 90 y minsculas 97 - 122)
74. Elabore el algoritmo, que dada la calificacin obtenida indique si
corresponde al suspenso, aprobado, notable o sobresaliente.
75. Elabore un algoritmo que calcule el valor absoluto de un nmero
(tanto positivo como negativo).
76. Permita ingresar las coordenadas (x, y) de un punto y el radio R, de
un circulo con centro en el origen. Luego de evaluar se debe decir
si el punto esta fuera, dentro o sobre el circulo

77. Elaborar un algoritmo para calcular el impuesto anual de 4ta
categora de acuerdo al siguiente procedimiento
Si un recibo por honorario es mayor de S/. 1500 se le hace la
retencin del 10% caso contrario no tiene retencin en un mes.
Si se tiene un grupo de recibos por honorarios emitidos en el
mismo mes (estos no sobre pasan de S/. 1500) la suma de
estos no deben pasar de S/. 2625 no se le hace retencin. Caso
contrario se le hace la retencin de la suma total del 10%.
Cuando la proyeccin de sus ingresos anuales por Rentas de
Cuarta Categora no supere el monto afecto al impuesto (para
el ejercicio 2014: S/. 33,250), podr solicitar la Suspensin de
Retenciones y/o Pagos a Cuenta. Deber incluir tambin en la
cantidad referencial, los ingresos obtenidos por rentas de
Quinta Categora en caso las tenga. Referencia: Resolucin de
Superintendencia N 373-2013/SUNAT
La renta de cuarta categora de acuerdo a los procedimientos
de la Sunat que han sobres pasado el monto afecto al
impuesto se deduce con el 20% de los ingresos brutos.
Para Calcular el impuesto anual, De haberse obtenido, luego de
la deduccin un monto positivo, a ste se procede aplicar la
tasa respectiva










Hasta 27 UIT 15%
Por el exceso
de
27 UIT 21%
Y hasta 54 UIT
Por el exceso
de
54 UIT 30%
IMPUESTO
ANUAL
= REMUNERACIN
NETA ANUAL
x TASA

Nota UIT = 3600



78. Elaborar un algoritmo para calcular el impuesto anual de 5ta
categora de acuerdo al siguiente procedimiento.















Estas son generadas por los trabajadores dependientes cuyo
monto proyectado de remuneraciones incluidas gratificaciones,
participaciones, gratificaciones extraordinarias y otros ingresos
que percibirn durante el periodo de un ao superen el monto
equivalente a 7 UIT (S/.25200 para el 2010).

La retencin mensual de este impuesto se realiza de la
siguiente manera:



Determinar la remuneracin bruta anual:





Clculo del impuesto anual
De haberse obtenido, luego de la deduccin un monto
positivo, a ste se procede aplicar la tasa respectiva.
REMUNERACION
BRUTA ANUAL
= Remuneracin
mensual
x N de
meses
que falta
para
culminar
el ao
+ -Gratificaciones
de Navidad y
Fiestas Patrias
-Otros ingresos
percibidos en el
mes
-Remuneraciones
y Otros ingresos
percibidos en
meses anteriores
REMUNERACION
NETA ANUAL
= Renta Anual
Proyectada
- 7 UIT
Hasta 27 UIT 15%











Determinacin del impuesto a retener
Se sigue el siguiente procedimiento por cada uno de los meses
sealados a continuacin: IAN = Impuesto Neto Anual


RETENCION
ENERO, FEBRERO, MARZO
IAN
12
RETENCION
ABRIL
IAN - Retenciones de Enero a
Marzo
9
RETENCION
MAYO, JUNIO, JULIO
IAN - Retenciones de Enero a
Abril
8
RETENCION
AGOSTO
IAN - Retenciones de Enero a
Julio
5
RETENCION
SETIEMBRE, OCTUBRE,
NOVIEMBRE
IAN - Retenciones de Enero a
Agosto
4
RETENCION
DICIEMBRE
IAN - Retenciones de Enero a
Noviembre



79. Elaborar un algoritmo de 4ta y 5ta categora. Segn los clculos de
las siguientes tablas.

Por el exceso de 27 UIT 21%
Y hasta 54 UIT
Por el exceso de 54 UIT 30%
IMPUESTO
ANUAL
= REMUNERACIN
NETA ANUAL
x TASA
Renta Total
Renta Bruta Cuarta Categora (lo que recibi como
independiente)
S/.58,400
-Deduccin de 20% de renta bruta de cuarta
S/.11,680
(20% de







S
upongamos que no se percibi ms ingresos que lo mencionados
y no se efectu donaciones ni report prdidas en aos
anteriores. En consecuencia, se le debe aplicar una tasa de
impuesto a la renta de 15% (para rentas gravadas de hasta 27 UIT,
S/.97,200).
De este modo, el impuesto a pagar es S/.10,578 (15% de
S/.70,520), pero como se ya efectu pagos adelantados en todo el
2014 por S/.9,840, solo debera regularizar S/.738 ante la Sunat
por este tributo de 2014. Tal como se muestra en la tabla







80. La velocidad con que se desintegra una sustancia radiativa, es
proporcional a la masa de la muestra. Elabore un algoritmo para
hallar el tiempo transcurrido de un objeto radiactivo, dado por la
siguiente formula:





Dnde:
M
o
=masa inicial
M=masa final
T (1/2)=tiempo de vida media (Ejm. C-14 es 5568 aos)
Nota: tenga en cuenta todas las condiciones de ingreso de datos.

81. Los gases reales se explican satisfactoriamente por muchas
ecuaciones una de ellas es la ecuacin de Van Der Walls.




Dnde:
S/.58,400)
Renta Neta de Cuarta Categora S/.46,720
+ Ingresos de Quinta Categora (lo que recibi como
dependiente)
S/.49,000
Total ingresos de Cuarta y Quinta Categora S/.95,720
-Deduccin 7 UIT
S/.25,200
(7 x S/.3,600)
Renta neta a la que se le aplica el impuesto S/.70,520
Renta neta cuarta y quinta categora S/.70,520
Impuesto 15% de renta neta S/.10,578
- Pagos adelantados en 2011 S/.9,840
Pago por regularizar en Sunat S/.738
0
0.693
( )
(1/ 2)
m t
Ln
m t
=
2
2
( )( )
n a
P v nb nRT
v
+ =
P=presin
N=nmero de moles
V=volumen
T=Temperatura
A y B = son los parmetros moleculares del gas real que
caracterizan la estructura y propiedades de sus molculas por
Ejemplo O
2
tienen valores para a = 1.36 Atm(1/mol)
2
y b= 0.0319
(1/mol)
Elabore un algoritmo para hallar la temperatura de un gas real.
Nota: tenga en cuenta todas las condiciones de ingreso de datos.

82. Elabore un algoritmo para calcular la perdida por friccin en una
contraccin brusca, es proporcional a la carga de velocidad en la
conduccin estrecha y puede calcularse mediante la ecuacin.




Siendo K
c
un factor de proporcionalidad, que recibe el nombre de
coeficiente de perdida por contraccin y V
b
2
la velocidad media
de aguas abajo en la seccin estrecha. Se encuentra experimental
que para el flujo laminar, es K
c
< 0.1 y la perdida por contraccin
h
fc
es despreciable. Para el flujo turbulento el valor de K
c
est
dado por la ecuacin emprica.





Siendo S
a
y S
b
, las reas de las secciones transversales de las
conducciones aguas arriba y abajo, respectiva.
Nota: el factor de proporcionalidad (g
c
) de la ley de newton 32.174
pies-lb/lbf-s
2
y tenga en cuenta todas las condiciones de ingreso de
datos.

83. Elabore un algoritmo para calcular el dimetro en el efecto de la
regin de entrada sobre el coeficiente de transferencia de calor.
Est representado por las siguientes relaciones para un flujo
turbulento dentro de una tubera, cuando la entrada es una
reduccin abrupta







2
2
b
fc c
c
V
h K
g
=
0.4(1 )
b
c
a
S
K
S
=
0.7
0
1 2 20
L
h D L
h L D
= + < <
0
1 6 20 60
L
h D L
h L D
= + < <


Dnde:
L: es la longitud de entrada.
H: es el valor promedio para un tubo de longitud infinita L
H
L: es
el valor para un tubo muy largo
Nota: tenga en cuenta todas las condiciones de ingreso de datos

84. Elaborar un algoritmo para calcular la pendiente del terreno segn
la frmula de manning.





Donde.
V= velocidad en m/s
R=radio hidrulico en m
S=pendiente logitudinal
N=coeficiente de rugosidad
Nota: tenga en cuenta todas las condiciones de ingreso de datos

85. Elaborar un algoritmo para la magnitud de las deflexiones
verticales, para tener un estimativo de dichas deflexiones en
funcin de las condiciones de la zanja y del material de relleno,
podemos aplicar la ecuacin de Spangler y es recomendada por la
norma ASTM.





Dnde:
Y =Deflexin del dimetro del tubo cm
Df=factor de deformacin a largo plazo. Splager recomienda un
valor de 1.5.
K=Constante de lecho de apoyo. Este valor depende del Angulo de
contacto entre el tubo y el lecho de apoyo. (Ver Tabla)
E= Mdulo de elasticidad del material de la tubera
E
PVC
= segn la norma COVENIN el mdulo de elasticidad del PVC
para sistemas de alcantarillado es de 2757.88 Mpa y como un
Mpa es igual a 10.2 Kg/Cm
2
nos queda que:



RDE= Relacin dimetro / espesor
DE=Dimetro Externo en cm
2 1
3 2
1
( * ) V R S
n
=
3
* ( )
2
0.061 '
3( 1)
m v
Df K W W
Y
E
E
RDE
+
A =
+

4 2
2.81*10 /
PVC
E Kg cm =
E= espesor de la tubera en cm
E=Modulo de reaccin del suelo en Kg/Cm
2
(Ver Tabla)

Angulo de
Contacto
0 30 45 60 90 120 180
K 0.110 0.108 0.105 0.102 0.096 0.090 0.083

Grado de Compactacin Buena Mediana Mala Ninguna
E (Kg/cm
2
) 50 35 20 15

Nota: tome en cuenta las tablas para realizar la seleccin de
entrada de datos para calcular la deflexin

86. Elabore un algoritmo para ayudar a un Oceangrafo, Bilogo
Pesquero y un ingeniero ambiental, que han recolectado datos de
velocidad de viento, desean determinar las condiciones
ambientales del mar para ello desean calcular la escala de
Beaufort, con esos resultados determinar la escala de Douglas, con
eso determinar el tipo de ola, su altura mnima y mxima de la ola,
para ello tienen la siguiente tabla relacional.


Velocidad
del viento
Tipo de viento Escala de
Beaufort
Escala de
Douglas
Tipo de Ola Altura
Mn.
Altura
Mx.
V<1 Calma 0 0 Calma
0
0
1V3 Ventolina 1
1 Rizado 0.2
4V6 Flojito 2
7V10 Flojo 3 2 Marejadilla 0.2 0.5
11V16 Bonancible 4 3 Marejada 0.5 1.25
17V21 Fresquito 5 4 Fuerte Marejada 1.25 2.5
22V27 Fresco 6 5 Gruesa 2.5 4
28V33 Frescachn 7 6 Muy Gruesa 4 6
34V40 Temporal 8
7 Arboleda 6 9
41V47 Temporal Fuerte 9
48V55 Temporal Duro 10
8 Montaosa 9 14
56V63 Temporal Muy Duro 11
64V71 Temporal Huracanado 12 9 Enorme 14 100
Fuera de
Rango
Sin escala Sin
escala
Sin
escala
Sin escala
Sin
escala
Sin
escala



87. Se desea realizar el algoritmo que resuelva el siguiente problema,
clculo de los salarios mensuales de los empleados de una
empresa, sabiendo que estos se calculan en base a las horas
semanales trabajadas y de acuerdo a un precio especificado por
cada hora. Si se pasan de 40 semanales, las horas extraordinarias
se pagaran a razn de 1.5 veces la hora ordinaria.
88. Se desea obtener la nmina semanal, salario neto de los
empleados de una empresa cuyo trabajo se paga por horas y del
siguiente modo:

Las horas inferiores a 35 horas (normales), se paga a una
tarifa determinada que se debe introducir por teclado al
igual que el nmero de horas y el nombre del trabajador
Las horas iguales o superiores a 35 se pagaran como extras
a un precio de 1.5 horas normales.
Los impuestos a decidir a los trabajadores varan en funcin
de sus sueldo mensual.
o Sueldo <= S/. 20000 libre de impuestos.
o Los siguientes S/15000 al 20 %
o El resto al 30 %.
89. La resolucin de una ecuacin de 1er grado. Si la ecuacin es
aX+b=0:

A<>0; X=-b/a
A=0; b<>0 entonces solucin imposible.
A=0; b=0 entonces solucin indeterminada.
90. Dado 3 nmeros determinar si la suma de cualquier par de ellos es
igual al otro nmero (tercer nmero). Si se cumple esta condicin
escribir iguales y en caso contrario escribir distintos.



14.3. Estructuras Repetitivas
Son las estructuras que repiten una secuencia de instrucciones un
determinado nmero de veces a esto se le denomina bucle y se denomina
iteracin al hecho de repetir la ejecucin de una secuencia de acciones
Antes de explicar los tipos de estructuras repetitivas definamos que es un
Contador, acumulador o sumador
Un contador es una variable destinada a contener diferentes valores, que
se va incrementando o decrementando cada vez que el ordenador realice
una instruccin que lo contiene. El incremento o decremento si es
negativo, llamado tambin paso del contador, es siempre constante
ejemplo i 1, j 0, etc.
Acumulador o sumador: es una variable que nos va a permitir guardar un
valor que se incrementa o decrementa de forma no constante durante el
proceso. En un instante determinado tendr un valor y al siguiente tendr
otro valor igual o distinto. Ejemplo S S + i , a a*i , etc

14.3.1. Estructura repetitiva mientras (While o Do while):
La estructura repetitiva mientras, es aquella en que al cuerpo del bucle se
repite mientras se cumple una determinada condicin. La representacin
en Pseudocdigo y Diagrama de Flujo ser:

Mientras condicin hacer
Accin 1
Accin 2
.
.
.
Fin mientras













14.3.2. Estructura repetitiva para (For):
En muchas ocasiones se conoce de antemano el nmero de veces que se
desea ejecutar las acciones de un bucle. En este caso en el que el nmero
de iteraciones es fija se debe usar la estructura desde o para
La representacin en pseudocdigo y diagrama de flujo es

Desde variable (V) = vi hasta vf hacer
Accin 1
Accin 2
.
.
.
Fin desde
V: variable ndice
Vi, vf : valor inicial y final de la variable




Condici
n
Acciones
Falsa
Verdadera






























14.3.3. Estructura repetitiva repetir:
Existen muchas situaciones en la que se desea que un bucle se ejecute al
menos una vez antes de comprobar la condicin de repeticin. La
estructura repetir se ejecuta hasta que se cumpla una condicin
determinada que se comprueba al final del bucle. El bucle repetir hasta
que se repite mientras el valor dela expresin booleana de la condicin
sea falsa, justo lo opuesto de la sentencia mientras.
La representacin en Pseudocdigo y Diagrama de Flujo es



Para o desde i = 1 hasta n hacer
Acciones
Calcular valor inicial y final
Fijar la variable ndice al valor inicial
Variable ndice >
valor final
Acciones
Incrementar variable ndice
Cuerpo del bucle
Falso
Verdadero

Repetir
Accion1
Accin 2
.
.
.
Hasta _que Condicin







14.3.4. Ejemplos
Ejemplo 1
Hallar el factorial de un nmero N utilizando la estructura desde
Inicio
Leer N
Fact 1
Desde i 1 hasta N hacer
Factfact*i
Fin_desde
Escribir el factorial de, N, es, fact
Fin
Ejemplo 2
Realizar el algoritmo para obtener la suma de los nmeros pares
hasta 1000.
Inicio
Suma 2
Numero 4
Mientras nmero <= 1000 hacer
Suma suma + numero
Numero nmero +2
Fin _ mientras
Fin
Ejemplo 3
Dado dos nmeros enteros, realizar el algoritmo que calcule el
cociente y el resto

Inicio
Leer M, N
Resto M
Condici
n
Acciones
Falsa
Verdadera
Cociente 0
Repetir
Resto resto N
Cociente cociente + 1
Hasta_ que resto < N
Escribir dividiendo, M, divisor, N, Cociente, cociente, Resto
Fin

Ejemplo 9
Determine el mximo comn divisor de dos nmeros
Inicio
Leer a, b
Para i 1 hasta a hacer
R1resto(a/i)
Para j1 hasta b hacer
R2resto (b/j)
Si (i=j) y (r1=0) y (r2=0) entonces
Mcd=i
Fin si
Fin para j
Fin para i
Escribir mcd
Fin
Ejemplo 10
Encuentre e imprima los nmeros primos entre 1 y 100
Inicio
n2
s0
escribir 1
Para i2 hasta 100 hacer
Mientras n i hacer
Si resto (i/n) =0 entonces
ss + n
Fin si
nn+1
Fin mientras
ps+1
qi+1
Si p=q entonces
Escribir i
Fin si
n2
s0
fin para

Fin

Ejemplo 11
Desarrolle un algoritmo para aproximar la siguiente funcin por
serie de Taylor




Primera forma
Inicio
(x = exponente de la funcin y n = N de trminos de la serie de
Taylor)
Leer x, n
I 1
s0
Mientras i n hacer
Potenciax ^ i
Factorial1
mi
J1
Repetir
Factorialfactorial*j
jj+1
Hasta que j > m
ss + potencia/factorial
ii+1
Fin mientras
e 1 +s
Escribir e
Fin

Segunda forma

Inicio
(x = exponente de la funcin y n = N de trminos de la serie de
Taylor)
Leer x, n
I 0
s0
Mientras i n hacer
Potenciax ^ i
Si i = 0 entonces
Factorial1
Sino
Factorial1
mi
J1
Repetir
Factorialfactorial*j
jj+1
Hasta que j > m
Fin si
ss + potencia/factorial
ii+1
Fin mientras
Escribir s
Fin
Ejemplo 12
Realizar un algoritmo que escriba los n primeros nmeros de la
serie de Fibonacci, se sabe que la serie se origina a partir de dos
nmeros que sirve patrn o base y el tercer nmero es la suma de
los dos anteriores
1, 2, 3, 5, 8, 13, 21,.

Primera forma
Inicio
Leer n
Fibo11
Fibo22
i3
Escribir fibo1, fibo2
Repetir
Fibofibo1 + fibo2
Escribir fibo
Fibo1fibo2
Fibo2fibo
ii+1
Hasta que i >n
Fin

Segunda forma seria ms general

Inicio
Leer n
Fibo11
Fibo22
i2
Escribir fibo1, fibo2
Repetir
ii+1
Fibofibo1 + fibo2
Fibo1fibo2
Fibo2fibo
Escribir fibo
Hasta que i >n
Fin

Una forma ms general seria

Inicio
Leer n, a, b
Fibo1a
Fibo2b
i2
Escribir fibo1, fibo2
Repetir
ii+1
Fibofibo1 + fibo2
Fibo1fibo2
Fibo2fibo
Escribir fibo
Hasta que i >n
Fin
Ejemplo 13
Mostrar los N primeros trminos de la siguiente serie, donde N
debe estar entre 5 y 30
5, 7, 10, 14, 19,..
Inicio
Leer n
Si (n5) y (n30) entonces
i1
s5
Escribir s
Mientras i<n hacer
ii +1
ss + i
Escribir s
Fin mientras
Sino
Escribir nmero fuera de rango
Fin si
Fin
Ejemplo 14
Calcular el valor mximo de una serie de 10 nmeros, leidos por
teclado
Inicio
Leer num
i1
maxnum
Repetir
ii +1
Leer num
Si max < num entonces
maxnum
fin si
hasta que I > 10
Escribir max
Fin
Ejemplo 14
Determinar simultneamente los valores mximo y mnimo de una
lista de 100 nmeros ledos por teclado
Inicio
Leer num
maxnum
minnum
desde i 2 hasta 100 hacer
Leer num
Si max num entonces
maxnum
sino
Si num min entonces
minnum
fin si
fin si
fin desde
Escribir max, min
Fin
Ejemplo 15
Calcular el Mximo Comn Divisor de dos nmeros A y B de
acuerdo con el algoritmo de Euclides.
Inicio
Leer A, B
Si A < B entonces
auxB
BA
Aaux
Mientras B 0 hacer
Rresto(A/B)
AB
BR
Fin mientras
Escribir A
Sino
Mientras B 0 hacer
Rresto(A/B)
AB
BR
Fin mientras
Escribir A
Fin

Ejercicio 21
Inicio
Leer a,b,e
Fa sen(a)+cos(1+a^2)-1
Fb sen(b)+cos(1+b^2)-1
Si fa*fb <0 entonces
Repetir
c(b+a)/2
Fc sen(c)+cos(1+c^2)-1
Si fb*fc 0 entonces
ac
Fa sen(a)+cos(1+a^2)-1
sino
bc
Fb sen(b)+cos(1+b^2)-1
fin si
Escribir a, b, c, fa, fb, fc
ii+1
Hasta que (b-c e)
Fin

Ejercicio 26
Inicio
Leer n, x
S 0
Si (x > -1) y (x 1) entonces
Para i1 hasta n hacer
potx^i
Si resto (i/2)=0 entonces
S s-pot/i
Sino
S s + pot/i
Fin si
Fin para
Fin si
Escribir s
Fin


14.3.5. Ejercicios
1. Hallar el factorial de un nmero N utilizando la estructura para,
mientras y repetir
2. Imprimir los 30 primeras potencias de 4, es decir 4 elevado a 1, 4
elevador a 2 con las tres estructuras.
3. Calcular la suma de los n primeros enteros con las tres estructuras
4. Disear un algoritmo para imprimir la suma de los nmeros
impares menores o iguales que n. Utilice las tres estructuras.
5. Calcular el nmero mximo de una serie de 100 nmeros. utilice
as tres estructuras.
6. Realizar un algoritmo que escriba los N primeros nmeros de la
serie de Fibonacci 1,2,3,5,8,13,21, Utilice las tres estructuras
7. Determinar la media de una lista indefinida de nmeros positivos
ledos por teclado y estos son terminados con un nmero negativo
o cero. Utilice las tres estructuras
8. Calcular los factoriales de n ledo por teclado. Utilice las tres
estructuras.
9. Calcular el factorial de los n nmeros ledos por teclado. Utilice las
tres estructuras.
10. Se quiere hallar el producto de varios nmeros positivos
introducidos por teclado, de manera que el proceso termina
cuando se introduce un nmero negativo. Utilice las tres
estructuras
11. Escriba un algoritmo que encuentre el primer divisor entero de un
nmero, que previamente se ha introducido por teclado. Utilice
las tres estructuras.
12. Escriba un algoritmo que calcule el mximo de los nmeros
positivos introducidos por teclado. Sabiendo que se introducen
nmeros desde teclado hasta teclear uno negativo. El negativo no
cuenta.
13. Escriba un algoritmo que determine cules son los mltiplos de 5
comprendidos entre 1 y N.
14. Escriba un algoritmo que encuentre al alumno de primer grado
con mejor nota media. Se sabe que este ao entraron 150
alumnos y que en primero todos tienen 5 asignaturas. Dar el
nombre y la nota media.
15. Escriba un algoritmo que calcule la suma de los divisores de cada
nmero introducido por teclado. Se termina cuando el nmero es
negativo o 0.
16. Dado un capital c, a un inters i, durante m aos, escriba un
algoritmo que calcule en cuanto se habr convertido ese capital en
m ao, sabiendo que es acumulativo.
17. Dada la siguiente formula:



1
1
2
(( ) 3)
(2 *( 1))
n
i
i
n
i
a b n
x
a i
=

=
+
=
+

[



Realice un algoritmo que calcule el valor de x pidiendo al usuario
los valores de n, a, b.
18. La exponencial se puede aproximar mediante la serie

, Para N > 0
- Para un N dado
- Para que N sea tal que

< e (por ejemplo e = 10


- 4
)
- Escribir un algoritmos que calcule la exponencial de a
segn dicha frmula, utilizando n=10 y luego n=20.
Utilice las tres estructuras
19. Dadas 3 listas de 5 nmeros de telfono, donde la primera lista
contiene el nmero de pasos consumidos en llamadas locales
asociado a cada telfono, la segunda contiene informacin sobre
llamadas nacionales y la tercera contiene informacin sobre
llamadas internacionales, calcular los subtotales del coste dcada
una de las categoras considerando los costes siguientes: llamada
local, 5 pesetas por paso, llamada nacional 10 pesetas por paso y
llamada internacional 50 pesetas por paso. Construir un programa
que lee los datos de entrada desde el teclado e imprima los
resultados finales por pantalla.
20. Disear un algoritmo que determine los nmeros primos entre dos
nmeros dados.
21. Los empleados de una fbrica trabajan en dos turnos, diurno y
nocturno. Se desea calcular el jornal diario y semanal de acuerdo
con los siguientes puntos:
Las tarifas de las horas diurnas es de 50 nuevos soles
La tarifa de las horas nocturnas es de 80 nuevos soles
Caso de ser domingo la tarifa se incrementa en un 100%
tanto en el turno diurno y nocturno
22. Disear el algoritmo que dado una lista nmeros ledos por
teclado, indique si es par o es impar e imprima el total de nmeros
ledos, adems el total de los pares e impares.
23. Dado un nmero N, calcular la suma 5 +10 +15 + 20+ . . . +5* n
24. Disear el algoritmo que encuentre (muestre) los nmeros pares
que hay entre 100 y 1000.
25. Disear el algoritmo que calcule la suma de los pares que hay
entre dos nmeros dados.
2 3 n
x
x x x
e =1+x+ + +...+
2! 3! n!
26. http://datateca.unad.edu.co/contenidos/2150510/Ejemplos_de_
algoritmos.pdf
27. Calcular los pagos mensuales de una hipoteca y el total a pagar.
El programa debe solicitar el capital, el inters anual y el nmero
de aos y debe escribir la cuota a pagar mensualmente. Para
calcular la cuota se utiliza la siguiente frmula: Sea C el capital del
prstamo, R la tasa de inters mensual y N el nmero de pagos. La
cuota mensual viene dada por:





Y el inters mensual ser: inters anual / 100 /12
28. Cifrado de datos: dado un nmero de cuatro dgitos se
reemplazar cada dgito por (dgito +7) mdulo 10. A continuacin
se intercambiar el primer dgito por el tercero y el segundo por el
cuarto, y ese ser el nmero cifrado. Nota: obtener el cociente
mediante diferencias sucesivas.
29. Desarrolle el algoritmo de la biseccin para el clculo de la
siguiente ecuacin no lineal.













Se debe ingresar los valores de a, b, iteracin mxima y un error
mnimo
Para calcular el error relativo porcentual y comparar con el error
mnimo, se calcula con la siguiente formula.



30. Del algoritmo del ejercicio 20
remplazar el paso 1 por la siguiente formular




2
( ) ( ) cos(1 ) 1 f x sen x x = +
( )( )
( ) ( )
f b a b
c b
f a f b

1
1
100
i i
rp
i
x x
e x
x
+
+

=
A este algoritmo se le llama falsa posicin
31. Desarrolle el algoritmo del trapecio que consiste en la siguiente
formula.

1
1
( ) 2 ( ) ( )
( )
2
n
a i b
i
f x f x f x
I b a
n

=
+ +
=



Donde los valores de a y b es el intervalo de la integral definida y n
es el nmero de segmentos. Utilizar la siguiente funcin, para
verificar los resultados.
F(X) = 0.2 + 25 X - 200 X
2
+ 675 X
3
- 900 X
4
+ 400 X
5


32. Elabore el algoritmo de integracin numrica de Simpson 1/3 que
consiste de la siguiente formula






Donde los valores de a y b es el intervalo de la integral definida y n
es el nmero de segmentos pares.

33. Elabore el algoritmo de integracin numrica de Simpson 3/8 que
consiste de la siguiente formula

1
1
( ) 3 ( ) ( )
( )
8
n
a i b
i
f x f x f x
I b a
n

=
+ +
=


Donde los valores de a y b es el intervalo de la integral definida y n
es el nmero de segmentos impares.

34. Desarrollar un algoritmo para Aproximar la siguiente funcin y =
seno(x)





35. Desarrollar un algoritmo para Aproximar la siguiente funcin y =
coseno(x)



1 2
1,3,5 2,4,6
( ) 4 ( ) 2 ( ) ( )
( )
3
n n
a i j b
i j
f x f x f x f x
I b a
n

= =
+ + +
=



36. Desarrollar un algoritmo para Aproximar la siguiente funcin y = e
x





37. Desarrollar un algoritmo para Aproximar la siguiente funcin y =
ln(1+x)




38. Dado n>0 hallar la suma
1
1
n
k
s
k
=
=


39. Se desea calcular la suma
1
1
n
k
k
s
a
=
=

siendo los valores a


k
los
elementos de la sucesin dada por a
k
= a
k-1
+ a
k-2
, para k > 2, con
a
1
=1 y a
2
=1. El limite n ha de leerse del teclado y se supone mayor
que dos.
40. Se desea calcular la suma
1
1
n
m
k
s
k
=
=

, siendo m y n dos nmeros


enteros positivos que se suponen dados.
41. Escriba los n primeros trminos de la sucesin dada por
1
(1 )
n
n
a
n
= + , siendo n un numero entero positivo dado.
42. Escribir un programa que encuentre el logaritmo en cualquier base
de un numero positivo x. la base y el nmero, lo ingresara el
usuario y el programa debe continuar hasta que se ingrese un
valor 0
10
log ( )
log ( )
log ( )
a
a
x
x
b
=

43. Dado un numero entero x mayor que uno se ha de escribir un uno
si es primo y un cero en caso contrario. Para ello ha de comprobar
si x es divisible por algn entero en el intervalo (1, x).
44. Dado un numero entero mayor que uno se ha de escribir la lista de
sus divisores comprendidos en el intervalo (1, x).
45. Dado dos nmeros enteros positivos p y q escriba un algoritmo
que permita hallar el mximo comn divisor de los mismos
46. Calcule e imprima los nmeros primos entre 1 y 100
47. Mostrar los N primeros trminos de la siguiente serie, donde N
debe estar entre 5 y 30
5, 7, 10, 14, 19
48. Mostrar los N primeros trminos de la siguiente serie, indicando
adems la suma de los mismos.
7, 9, 12, 16, 21
49. Determinar la cantidad de trminos que son mltiplos de 3 en los
200 primeros trminos de la siguiente serie
6, 8, 10, 12, 14
50. Contar y sumar los nmeros enteros positivos ledos por teclado.
Se termina cuando se ingresa un nmero negativo.
51. Sume los nmeros del 1 al 200 menos los mltiplos de 5.
52. Calcule la suma y el producto de los nmeros impares
comprendidos entre 11 y 111. Resolver con tres estructuras
distintas.
53. Calcule el MCD (Mximo Comn Divisor) de dos nmeros A y B de
acuerdo con el algoritmo de Euclides.
54. Imprima las tablas de multiplicar desde P hasta Q, siendo P y Q dos
valores ingresados por el teclado, tal que P<=0 cada tabla debe
tener el multiplicador desde 1 hasta 12.
55. Imprima los nmeros de Fibonacci menores que 1500. Los
nmeros de Fibonacci se calcula como la suma de los 2 anteriores:
0, 1, 1, 2, 3, 5, 8, 13,
56. Imprima los 50 primeros nmeros mltiplos de 3 anteriores al 500
y la suma total de estos 50 primeros nmeros.
57. Calcule e imprima el nmero de trminos necesarios para que el
valor de la siguiente. Sumatoria se aproxime lo ms cercanamente
a 1000 sin que lo exceda.
2
1
1
n
k
k
k
=
+



58. Calcule el nmero mximo de trminos de la serie de Fibonacci
cuya suma no exceda de 10000. Ingrese por teclado dos nmeros
como inicio de la serie.
59. Calcule e imprima los factores primos de 1 y 50
60. Calcule e imprima los factores primos de un numero
61. Permita ingresar el nombre del bien, la cantidad a depreciar y el
nmero de aos de depreciacin, la salida debe mostrar cada ao
y su depreciacin. De acuerdo con el mtodo de la suma de los
dgitos empleado en el anlisis financiero para calcular la
depreciacin. Por ejemplo suponga que un automvil de $20000
ser depreciado durante un periodo de 5 aos, la suma de los
dgitos del ao: 1+2+3+4+5=15. De acuerdo con el mtodo el
primer ao el bien se deprecia 5/15, el segundo 4/15 y as
sucesivamente.
62. La esquina de un rectngulo debe estar sobre la curva elabore el
algoritmo que determine las coordenadas de la esquina del mayor
rectngulo posible (imprima las coordenadas (x, y) y el rea
mxima).

2
2 18 y x = +
63. Disee un algoritmo que permita descubrir si dos enteros
positivos son primos entre s, es decir si su mximo comn divisor
es uno.
64. Dada una hoja de cartn de ancho (A) y largo (L). si se recortan
cuadrados de las esquinas, la porcin restante puede doblarse
para formar una caja. Determnese el tamao de los recortes de
los cuadrados para producir una caja de volumen mximo
(imprimase el volumen mximo).
65. Permita ingresar cuatro valores reales, los primeros tres son
longitud, ancho y altura (en centmetros) de un prisma
rectangular. El cuarto valor real es el peso ( en gramos) del prisma.
Escriba un programa para calcular e imprimir la densidad de este
objeto.
66. Desarrollar el algoritmo de Runge Kutta 4to orden para dar una
solucin aproximada de una ecuacin diferencial de 1er orden con
los siguientes pasos
1 Definiendo un problema de valor inicial como:

2 calculando los K





3 calculando el valor de la iteracin i+1



Ingrese como dato el error mnimo y comprelo con error relativo
porcentual.
67. Escribir un algoritmo que permita ingresar un entero n y que
imprima si se trata o no de un nmero capica
68. Escriba un algoritmo que lea un nmero entero por teclado y
escriba la tabla de multiplicar de ese nmero
69. Calcular la suma de las siguientes series:







Donde n es un nmero entero introducido por teclado.
70. Realice un algoritmo que calcule y visualice el ms grande, el ms
pequeo y la media de n nmeros (n>0). El valor de n se solicitar
al principio del programa y los nmeros sern introducidos por el
usuario.
71. Realice un programa que determine si un nmero ledo del
teclado es primo o no
72. Un nmero perfecto es un entero positivo, que es igual a la suma
de todos los enteros positivos (excluido l mismo) que son
divisores del nmero. El primer nmero perfecto es 6, ya que los
divisores de 6 son 1, 2, 3 y 1 + 2 + 3 = 6. Escriba un programa que
lea un nmero entero positivo n y muestre por pantalla si ese
nmero es o no perfecto.

73. Realizar un programa que simule un juego de adivinar un
nmero. El programa pedir al usuario dos nmeros que
representan el rango de valores entre los que se encuentra el
nmero a adivinar, as como el nmero de intentos para adivinar
el nmero. A continuacin el programa generar un nmero
aleatorio entre esos dos nmeros y el usuario deber adivinarlo en
el nmero mximo de intentos antes indicado. Cada vez que el
jugador introduce un nmero el programa le dice si es mayor o
menor y le indica cuantos intentos le quedan.
(Pista: (x + rand( ) % y) genera un numero aleatorio en el rango [x ,
y1+x]).

74. . Realice un programa que pregunte aleatoriamente la tabla de
multiplicar. El programa debe indicar si la respuesta ha sido
correcta o no (en caso que la respuesta sea incorrecta el
programa debe indicar cul es la correcta). Una vez preguntado
por una multiplicacin el programa debe preguntar si desea
realizar otra. En caso afirmativo preguntar aleatoriamente otra
multiplicacin. En caso negativo el programa finalizar.

75. Modificar el ejercicio anterior de modo que el programa
pregunta aleatoriamente un total de n multiplicaciones siendo n
un nmero dado por teclado. En cada multiplicacin el programa
debe indicar si se ha acertado o no. Al final del programa, ste
deber mostrar un resumen indicando el nmero de respuestas
correctas y errneas, as como el porcentaje de aciertos y de fallos
76. Escribir un algoritmo que calcule la suma de los nmeros enteros
de n a m (m>n).
77. Implementar un algoritmo que calcule el producto de dos
nmeros enteros (n*m) haciendo slo sumas.
78. Disear una funcin que calcule el cociente y resto de la divisin
entera de dos nmeros mediante restas y sumas.


79. Escribir una funcin que calcule el cuadrado de un nmero
haciendo slo sumas. Ayuda: el cuadrado de un nmero n es la
suma de la n primeros nmeros impares. Ejemplo: 32=1+3+5=9
80. Escribir un algoritmo que convierta un nmero entero en otro
nmero entero que ser el primero pero con las cifras que lo
forman escritas al revs
81. Escriba un algoritmo permita ingresar 2 enteros positivos e
imprima sus divisores comunes
82. Suponga que se piden X Nuevos Soles prestados a un banco, con
el acuerdo de devolver Y bolvares cada mes hasta devolver el
prstamo completo. Parte del pago mensual sern intereses,
calculados como el i por ciento del capital por devolver en ese
momento. El resto del pago mensual se aplica a reducir el capital a
devolver. El programa debe determinar:
a.- La cantidad de intereses pagada cada mes.
b.- La cantidad de dinero aplicada cada mes al capital por
devolver
c.- La cantidad acumulada de intereses pagados al final de cada
mes.
d.- La cantidad del prstamo an pendiente al final de cada mes.
e.- El nmero necesario de pagos mensuales para devolver el
prstamo completo.
f.- La cantidad del ltimo pago (probablemente menor que Y)
Compruebe el programa usando los siguientes datos: X =
7.200.000, Y = 360.000, i= 1%
83. Un nmero primo es una cantidad entera positiva nicamente
divisible por uno o por s mismo. Calcular y tabular los n primeros
nmeros primos.
84. Por un canal trapezoidal fluye agua a una tasa de Q=20 m
3
/s. la
profundidad crtica y, para dicho canal satisface la ecuacin



Donde g = 9.81 m
2
/s, A
c
=rea de la seccin transversal (m
2
) y B
ancho del canal en la superficie (m). Para este caso, el ancho y el
rea de la seccin transversal se relacionan con la profundidad y
por medio de

2
3
0 1
c
Q
B
gA
=
3 B y = +
Y


Resuelva para la profundidad crtica con el uso del algoritmo de
la secante, haga elecciones iniciales de a = 0.5 y b = 2.5 y ejecute
iteraciones hasta que el error aproximado caiga por debajo del 1%
o el nmero de iteraciones supere a 10.

El mtodo de la secante consiste en la siguiente formula



Donde X
i-1
, y X
i
son valores iniciales de una ecuacin.
85. Se est diseando un tanque esfrico para almacenar agua para
un poblado pequeo en un pas en desarrollo. El volumen de
lquido que puede conocer se calcula con





Donde V= volumen (m
3
), h = profundidad del agua en el tanque
(m) y R =radio del tanque (m)
Si R = 3m a qu profundidad debe llenarse el tanque de modo
que contenga 30 m
3
? Haga tres iteraciones con el mtodo de
newton Raphson a fin de obtener la respuesta. Determine el error
despus de cada iteracin.
Este mtodo de Newton Raphson consiste de la siguiente formula.





Donde X
i
es el valor inicial de la ecuacin.
86. Evalu e
-5
, con el uso de dos mtodos.
2
3
2
c
y
A y = +
3
(3 )
3
R h
V h t

=
1
( )
'( )
i
i i
i
f x
x x
f x
+
=
1
1
1
( )( )
( ) ( )
i i i
i i
i i
f x x x
x x
f x f x






Y





Comprelo con el valor verdadero de 6.737947x 10
-3
. Utilice 20
trminos para evaluar cada serie y calcule los errores relativos por
cada mtodo






87. Desarrolle el algoritmo para hallar el valor de un polinomio por la
serie de Taylor



Tomando como tamao de paso h


Quedando la funcin de truncamiento




Trunque la serie hasta la tercera derivada
88. Elaborar un algoritmo para calcular el impuesto anual de 4ta
categora de acuerdo al siguiente procedimiento
2 3
1 ...
2! 3!
x
x x
e x

= + +
2 3
1 1
1 ...
2! 3!
x
x
e
e x x
x

= =
+ + + +
_ _
100
_
rp
valor verdadero valor metodo
e x
valor verdadero

=
2 3
1 1 1 1
( ) ( )
( ) ( ) ( )( ) ( ) ( ) ...
2! 3!
i i
i i i i i i i i i
f x f x
f x f x f x x x x x x x
+ + + +
= + + + +
1 i i
h x x
+
=
2 3
1
( ) ( )
( ) ( ) ( ) ...
2! 3!
i i
i i i
f x f x
f x f x hf x h h
+
= + + + +
Si un recibo por honorario es mayor de S/. 1500 se le hace la
retencin del 10% caso contrario no tiene retencin en un mes.
Si se tiene un grupo de recibos por honorarios emitidos en el
mismo mes (estos no sobre pasan de S/. 1500) la suma de
estos no deben pasar de S/. 2625 no se le hace retencin. Caso
contrario se le hace la retencin de la suma total del 10%.
Cuando la proyeccin de sus ingresos anuales por Rentas de
Cuarta Categora no supere el monto afecto al impuesto (para
el ejercicio 2014: S/. 33,250), podr solicitar la Suspensin de
Retenciones y/o Pagos a Cuenta. Deber incluir tambin en la
cantidad referencial, los ingresos obtenidos por rentas de
Quinta Categora en caso las tenga. Referencia: Resolucin de
Superintendencia N 373-2013/SUNAT
La renta de cuarta categora de acuerdo a los procedimientos
de la Sunat que han sobres pasado el monto afecto al
impuesto se deduce con el 20% de los ingresos brutos.
Para Calcular el impuesto anual, De haberse obtenido, luego de
la deduccin un monto positivo, a ste se procede aplicar la
tasa respectiva










Nota UIT = 3600
89. Elaborar un algoritmo para calcular el coeficiente de correlacin,
segn la frmula:




Hasta 27 UIT 15%
Por el exceso de 27 UIT 21%
Y hasta 54 UIT
Por el exceso de 54 UIT 30%
IMPUESTO
ANUAL
= REMUNERACIN
NETA ANUAL
x TASA
1 1 1
2 2 2 2
1 1 1 1
( ( ) )( ( ) )
n n n
i i i
n n n n
i i i i
n xy x y
r
n x x n y y
= = =
= = = =

=



90. Desarrollar un algoritmo para Aproximar la siguiente funcin y =
e
x
, tal que la suma de sus trminos se aproximen a un error
relativo porcentual, ingresado por teclado (e =1% en decimales
0.01)



91. de


15. Subprogramas
La resolucin de problemas complejos se facilita considerablemente si se dividen
en problemas ms pequeos llamados subproblemas (Subprogramas). Las
herramientas usadas en la programacin son las funciones y procedimientos
(subrutinas)

15.1. Procedimientos(Subprograma):
Llamados tambin subrutina, un procedimiento es un subprograma que
ejecuta un proceso especfico, cuando se invoca el procedimiento, los pasos
que lo definen se ejecutan y a continuacin se devuelve el control al programa
que le llamo
Declaracin de un procedimiento






Donde
Nombre: Es el nombre del procedimiento a invocar
Parmetros formales: Tiene el mismo significado que en las funciones
Parmetros variables: En algunos lenguajes de programacin est permitido
este tipo de declaracin, para designar que ellos obtendrn resultados del
procedimiento en lugar de los valores actuales asociados a ellos.
Invocacin a una funcin
(Llamar_a) nombre (lista de parmetros actuales)
Por ejemplo
Procedimiento divisin (dividendo, divisor, cociente, resto)
Inicio
Cociente dividendo/ divisor
Resto dividendo - cociente*divisor
Procedimiento nombre (parmetros formales, parmetros variables)
Inicio
Acciones

Fin
Retorno
Fin

Algoritmo aritmtica
Inicio
Leer M, N
Llamar_a divisin (M, N, P, Q)
Escribir p, Q
Fin
15.2. Funciones
Matemticamente una funcin es una operacin que tiene uno o ms valores
llamados argumentos y produce un valor denominado resultado o valor de la
funcin para los argumentos dados (Aguilar, 1988)
Declaracin de una funcin





Dnde:
Par1, par2, Lista de parmetros o argumentos
Nombre_ funcin Nombre asociado con la funcin, que ser un nombre de
identificacin valido
Acciones instrucciones que constituyen la definicin de la funcin y que debe
contener una accin solo de asignacin que asigne un valor al nombre de la
funcin, es decir, nombre_ funcin expresin
Por ejemplo la funcin



Funcin fun(x)
Inicio
Funx/(1 + x^2)
Fin
Invocacin de una funcin
Una funcin puede ser llamada solo mediante referencia de la forma
siguiente:
Variable de asignacin nombre _ funcin (par1, par2,)
Por ejemplo
F_x fun(x)

Funcin nombre _ funcin (par1, par2, par3,)
Inicio
Acciones

Fin
Procedimiento vs funcin
i. Un procedimiento es llamado desde el algoritmo o programa principal
mediante su nombre y una lista de parmetros actuales o bien con la
instruccin llamar. Al llamar el procedimiento se detiene
momentneamente el programa que se estuviera realizando y el
control pasa al procedimiento llamado. Despus que las acciones del
procedimiento se ejecutan, se regresa a la accin inmediatamente
siguiente a la que se llam.
ii. Las funciones devuelven un valor, las subrutinas pueden devolver 0,1 o
ms valores y en forma de la lista de parmetros
iii. El procedimiento se declara igual que la funcin, pero su nombre no
est asociado a ninguno de los resultados que obtiene

15.3. Algoritmos Recursivos
Es un algoritmo que se define en trminos de s mismo. Son implementados
en forma de subrutinas (Funciones,, Procedimientos, subprogramas, etc.) De
tal manera que dentro de una subrutina recursiva hay una o ms llamadas a
s misma.
Es una herramienta muy potente en algunas aplicaciones sobre todo de
clculo. La recursin puede ser utilizada como una alternativa a la repeticin
o estructuras repetitivas. El uso de la recursin es particularmente idneo
para la solucin de aquellos problemas que pueden definirse de modo
natural en trminos recursivos (Aguilar, 1988)
Recursividad directa: cuando en una subrutina hay llamadas a ella misma
Recursividad indirecta: cuando se tienen varias subrutinas y estas se llaman
unas a otras formado ciclos.
La recursividad es un elemento muy importante en la solucin de algunos
problemas
Ventajas
Algunos problemas son esencialmente recursivos, por lo cual su
implementacin se facilita mediante un algoritmo de naturaleza recursiva,
sin tener que cambiarlo a un mtodo iterativo.
Desventajas
Puede llegar a utilizar grandes cantidades de memoria en un instante, pues
implementa una pila cuyo tamao crece linealmente, con el nmero de
recursiones necesarias en el algoritmo
Ejemplo
Calcular factorial de un nmero n
Funcin factorial (n)
Inicio
Si n = 0 entonces
Factorial 1
Sino
Factorial n* factorial(n-1)
Fin si
Fin
Inicio
Leer n
Fact factorial(n)
Escribir el factorial de n es, fact
Fin

Ejercicios
1. Disear un algoritmo que calcule el mximo comn divisor de dos
nmeros mediante el algoritmo de Euclides con el siguiente
procedimiento
a. Dividir el nmero mayor (A) por el menor (B). Si el resto de la divisin
es cero el nmero B es el mximo comn divisor.
b. Si la divisin no es exacta, se divide el nmero menor (B) por el resto de
la divisin anterior.
c. Se siguen los pasos anteriores hasta obtener un resto cero. El ltimo
divisor es el mcd buscado.
2. Para calcular el mximo comn divisor (mcd) de dos nmeros, se recurre a
una funcin especfica definida con un programa con un subprograma. Se
desea calcular la salida del programa principal con dos nmeros A y B,
cuyos valores son 15 y 10, es decir, el mcd (A, B) y comprobar el mtodo
de paso de parmetros por valor
3. Realizar un algoritmo que permita ordenar tres nmeros mediante un
procedimiento de intercambios de dos variables
4. Disear una funcin que calcule la media de tres nmeros ledos del
teclado y poner un ejemplo de su aplicacin
5. Realizar un procedimiento que realice la conversin de coordenadas
polares (r, u) a coordenadas cartesianas (x, y)
X = rcos(u)
Y = rseno(u)
6. Funcin que calcule x
y
, con x R, y suponiendo que y es un valor entero y
> 0
7. Funcin que calcule x
y
, con x R, y suponiendo que y es un valor entero
que puede ser positivo, negativo o cero
8. Funcin que calcule
m
n
| |
|
\ .
, siendo m y n dos enteros positivos. Puede hacer
uso de las funciones que haya realizado con anterioridad para calcular el
factorial.
9. Funcin que calcule la suma de las componentes de un vector.
10. Funcin para calcular la suma
1
n
h
n
h
a
s
h
=
=

, siendo a un vector dado como


argumento, a R
n
y siendo n > 0, entero otro argumento.
11. Funcin para calcular el producto escalar de dos vectores v R
n
y w R
n
,
suponiendo n > 0 entero.
12. Funcin Evapol(), que evalu el polinomio A(x) =a
1
x
n
+ + a
n
x
1
+ a
n+1
x
0
,
dado el grado del polinomio n 0 entero, el vector de coeficientes a =( a
1
,
, a
n+1
) y el valor x. Puede hacer uso de las funciones que haya realizado
con anterioridad para calcular las potencias.
13. Funcin que calcule el vector de coeficientes de un polinomio C suma de
otros dos (A y B). La funcin ha de recibir los grados na, nb y los vectores
de coeficientes vA = (a
1
,, a
na+1
) y vB = b
1
,,b
nb+1
, de cada uno de los dos
polinomios sumados. La funcin devolver el grado y el vector de
coeficientes del polinomio suma C = A+B.
14. Elaborar el algoritmo que permita leer un nmero y que utilice un
procedimiento recursivo que invierta los dgitos del nmero.
15. Elaborar el algoritmo que calcule en forma recursiva los factores primos
de un nmero.
16. Elaborar el algoritmo que describa los movimientos que deben realizarse
para trasladar a la torre C todos los discos de diferentes tamaos
colocados en forma ordenada en una torre A.
Para efectuar esta tarea se dan las siguientes reglas:
a) Se puede emplear una torre auxiliar B
b) Se debe mover un disco cada vez
c) No se puede mover un disco de tamao menor sobre un disco de
tamao mayor.
17. de

16. Estructuras de Datos

Una estructura de datos es una coleccin de datos que pueden ser caracterizados
por su organizacin y las operaciones que se definen en ella. La estructuras d
datos son muy importantes en los sistemas de computadoras. Los tipos de datos
ms frecuentes utilizados en los diferentes lenguajes de programacin
son(Aguilar, 1988)





















16.1. Arreglos unidimensionales (array)

Es un conjunto finito y ordenado de elementos homogneos. La propiedad
ordenada significa que el elemento primero, segundo, tercero de un Arreglo
puede ser identificado. Los elementos de un arreglo son homogneos, es
decir del mismo tipo de datos (Aguilar, 1988)
El tipo ms simple de arreglo es el arreglo unidimensional o vector (matriz de
una dimensin) a continuacin la representacin de un vector

i A(i)
1 14.0
2 12.0
3 8.0
4 7.0
5 8.40
6 8.20
7 8.15
8 7.25

El subndice o ndice de un elemento(1, 2, ..,n) designa su posicin en la
ordenacin del vector
Declaracin de un arreglo
Nombre arreglo = arreglo [liminf . . . limsup] de tipo de dato

Datos simples
Datos estructurados
Estndar
Definido por el programador
(No estndar)
Simples o Estticos
Compuestos o dinmicos
Entero
Real
Carcter
Lgico
Sub rango
Enumerativo
Array (vectores / matrices)
Registros
Ficheros
Conjuntos
Cadenas (String)
Listas (pilas / colas)
Listas enlazadas
Arboles
Grafos
Subndice o ndice
Donde
Nombre arreglo: nombre valido del arreglo
Liminf . . . limsup :lmite inferior y superior del rango del arreglo
Tipo de dato: es el tipo d datos de los elementos del arreglo, puede ser
entero, carcter, real,
Asignacin a un arreglo
A (1) 10 se asigna el valor 10 a la posicin 1 del vector A
A (5) 20 se asigna el valor 20 a la posicin 5 del vector A
Lectura y escritura de datos
La lectura y escritura de un arreglo u operaciones de entrada y salida
normalmente se realizan con estructuras repetitivas.
Final = arreglo [1.. 20] de real
// Lectura
Desde i = 1 hasta 20 hacer
Leer final (i)
Fin desde
// Escritura
Desde i = 1 hasta 20 hacer
Escribir final (i)
Fin desde
16.1.1. Ejemplos

Ejemplo 1
Escribir un algoritmo que permita calcular el cuadrado de los 100
primeros nmeros enteros y a continuacin escribir una tabla que
contenga dichos 100 nmeros cuadrados.
Algoritmo
Inicio
Desde N 1 hasta 100 hacer
C N*N
Escribir N, C
Fin desde
{Escritura de la tabla}
Desde N 1 hasta 100 hacer
A(N) N*N
Escribir A(N)
Fin desde
Fin
Ejemplo 2

Se tiene N temperaturas. Se desea calcular su media y determinar entre
todas ellas cuales son superiores o iguales a esa media
Algoritmo
Inicio
Suma 0
C 0
Leer N
Desde i 1 hasta N hacer
Leer temp[i]
Suma suma/N
Fin desde
Desde i 1 hasta N hacer
Si temp[i] >= media entonces
C C +1
Escribir temp[i]
Fin si
Fin desde i
Escribir la media es:, media
Escribir el total de temperaturas mayores iguales a la medio es : , C
Fin

16.1.2. Ejercicios

1. Leer las componentes de un vector de nmeros reales de dimensin 10.
Escribirlo luego en la pantalla.
2. Escriba un algoritmo que devuelva el valor de la componente mxima
de un vector.
3. Escriba un algoritmo que muestre por pantalla el contenido de un
vector. Los valores de las componentes del vector se introducen por
teclado (hasta que se introduzca un cero).
4. Considere una encriptacin de mensajes muy antigua inventada por
Julio Cesar, la cual se basa en que cada letra de un mensaje se le asocia
a un nmero (el orden en el abecedario), luego se suma al nmero de
cada letra otro nmero (la clave) y el resultado es una nueva letra, mira
el abecedario. Por ejemplo, el m2ensaje cruzad el rubicon , se
transformara en dsvabeUfmUsvcjdpo si le sumo el nmero clave 1 a
cada letra (ya que la primera letra del mensaje cifrado, la d es la que va
tras la c, etc). Note que la ch, ll, no existen y que despus de la z va la
a. Adems los espacios en blanco se convierten en letras U si la clave es
1 en V si es 2, etc.
Para ello, elabore un pseudocdigo que a partir de un texto (Cadena de
caracteres leda por teclado) imprima texto cifrado con la clave entera,
tambin leda desde teclado.
Pista: dentro del bucle que debe recorrer todas las letras del texto, use
la siguiente frmula para encriptar.
Texto_encriptado[i] =(texto_original[i]-a + clave) % 26+a (26 es el
nmero de letras del alfabeto ASCII).
5. Leer un entero n supuesto n >0 y un vector v R
n x 1
, calcular y escribir el
producto escalar m = v
t
v, m R, donde v
t
simboliza el vector transpuesto
de v.
6. Leer n (suponiendo que es entero y > 0). Leer a continuacin la n
componentes de un vector de nmeros reales dimensin n. Calcular y
escribir luego la media aritmtica de sus componentes.
7. Leer n (suponiendo que es entero y >0) y un vector de dimensin n.
Calcular y escribir la componente de mayor valor y su ndice dentro del
vector.
8. Leer n (suponiendo que es entero y mayor que dos). Construir un vector
v R
n x 1
tal que v
k
= v
k-1
/ 3 + 0.5, para k = 2,, n y siendo v
1
= 1.
9. Leer n (suponiendo que es entero y mayor de dos). Construir un vector v
R
n x 1
, tal que sus componentes sean los trminos de ls sucesin de
Fibonacci.
10. Se han medido las longitudes de tornillos procedentes de un mismo lote
de fabricacin. Se han dispuesto en un vector v de dimensin n>2. Se
dispone de v y n. Disee un algoritmo para calcular la media y varianza
de las longitudes. La varianza se calcular como
2
1
1
var ( )
n
k
k
v
n

=
=


Siendo la media aritmtica de las componentes de v.
11. Se quiere construir y escribir un vector v de dimensin n cuyas
componentes siguen la ley v
k
= 3*v
k-1
k, para k 2. Tanto n como v
1

son cantidades que han de leerse del teclado.
12. Determinar los valores de i, j, despus de la ejecucin de las
instrucciones siguientes.
Inicio
I 1
J 2
A[i] j
A[i] i
A[j + 1] j + 1
I A[j] + A [i]
A[3] 5
J A[j] + A [i]
Fin
13. Dados los vectores A = 3 5 6 8 4 7 8 5 3 1 y B = 3 4 6 8 9 1 2 3 0 9,
realice un algoritmo para calcular las siguientes operaciones



14. Crear un vector de 70 elementos donde cada elemento del vector sea
igual a su posicin
15. Un avin dispone de 180 plazas de las cuales 60 son de no fumador y
numeradas del 1 al 60 y 120 plazas numeradas de 61 al 120. Disear un
algoritmo que permita hacer la reserva de plazas de avin y se detenga
media antes de la salida, cuyo momento se abrir la lista de espera.
16. Dada en una lista no ordenada de nmeros y un nmero ledo por
teclado:
a. Disear una solucin que busque en la lista el nmero ledo. Si lo
encuentra, debe informar de su posicin en la lista, sino debe devolver
la posicin cero.
b. Modificar el anterior para que devuelva el nmero de veces que
aparece.
c. Disear una solucin que busque el nmero mayor y devuelva
cuantas veces aparece.
d. Disear una solucin que devuelva Verdadero si el nmero ledo,
aparece ms veces que el mayor.
e. Disear una solucin que calcule la media de todos los nmeros.
f. Disear una solucin que calcule la media entre el mayor y el menor.
g. Disear una solucin que cree una lista inversa a la dada. Es decir,
que genere una nueva lista tal que su primer elemento sea el ltimo de
la lista inicial, su segundo elemento sea el penltimo de la lista inicial,
etc., etc., etc.
17. Dadas 3 listas de 10 nmeros de telfono, donde la primera lista
contiene el nmero de pasos consumidos en llamadas locales asociado a
cada telfono, la segunda contiene informacin sobre llamadas
nacionales y la tercera contiene informacin sobre llamadas
internacionales, calcular los subtotales del coste de cada una de las
categoras considerando los costes siguientes: llamada local, 5pesetas
por paso, llamada nacional 10 pesetas por paso y llamada
internacional50 pesetas por paso. Construir un programa que lee los
datos de entrada desde el teclado e imprima los resultados finales por
pantalla.
18. Escriba un algoritmo que busque el valor mximo de los elementos de
un vector de N nmeros reales, donde N es una constante a la que le
daremos un valor cualquiera. El algoritmo debe escribir por pantalla el
valor mximo.
19. Dado un vector v de dimensin n cuyas componentes son todas
positivas o cero se desea reordenar sus componentes de mayor a menor
por ejemplo, si
V = [2 3 8 5 4]
El resultado ha de ser un nuevo vector
w= [8 5 4 3 2]
20. Repetir el ejercicio anterior pero sin usar un vector auxiliar como w. el
resultado que se pretende conseguir es que el propio vector v tenga sus
componentes ordenadas( emplear todos los mtodos de ordenacin)
21. Igual que el anterior pero suponiendo que v contiene cantidades
positivas y negativas, por ejemplo
V=[-7 3 8 -9 5 4 0 -1]
Ha de dar como resultado el propio vector reordenado as:
V= [8 5 4 3 2 -1 -7 -9]
22. Un fabricante de automviles dispone de un modelo de vehculo en
cinco colores. Para saber la aceptacin de cada color realiza una
encuesta usando un programa en su ordenador. El programa ha de
ayudarle a contar los votos de los encuestados. El encuestador tecleara
el nmero del color elegido (de uno a cinco) cada vez que pregunte a
una persona nueva. Cuando no quiera preguntar a nadie ms
introducir el valor -1. En ese momento el programa le indicara el
nmero de votos que cada color ha obtenido. Posteriormente se han de
ordenar los colores segn los resultados de la votacin.
23. Se desea calcular la mediana de los valores contenidos en un vector T
R
n
. si n es impar la mediana es el valor central del vector ordenado, en
caso contrario la mediana es la media de los dos elementos que estn
ms al centro. En ambos casos el paso previo para calcular la mediana es
ordenar el vector. Un ejemplo con n par es T = [10 23 11 15]. La
ordenacin produce T = [23 15 11 10] y la mediana es (15 + 11)/2 = 13.
Un ejemplo con n impar es T = [11.8 12 28 11.5 14], en este caso la
ordenacin produce un nuevo vector T = [11.5 11.8 12 14 28], de
donde se obtiene la mediana que es el valor central 12.
Puede comprobar con lo ejemplos anteriores que la mediana no
coincide con la media aritmtica.
24. La cantidad de un cierto isotopo radioactivo presente en una mezcla
varia con el tiempo pues el isotopo se descompone emitiendo radiacin.
Se denota mediante y(k) la cantidad en gramos de isotopo en el instante
de tiempo t = k medido en aos unos cientficos han descubierto que se
cumple que y(k) = 0.99*y(k-1). Si un barril de desechos radioactivos
contiene 1000 gramos de isotopo Cul ser la cantidad de isotopo
presente al cabo de 500 aos?
25. La velocidad de un paracaidista en su descenso al suelo una vez que
ha abierto el paracadas se denota mediante v(k) (m/s), siendo k el
tiempo que lleva cayendo medido en segundos, k > 1. Se ha especulado
con la idea de que dicha velocidad sigue la ley: v(k) = v(k-1) + 10 -
0.4*(v(k-1))
2
. Sabiendo que una cada tpica puede durar 5 minutos y
que el paracadas se suele abrir con una velocidad de 100 Km/h con
que velocidad llega al suelo?
26. Se sabe que la cantidad de bacterias de cierta especie en un cultivo es
x(k) = 1.1*x(k-1), siendo k el tiempo medido en horas, k >1. Si al cabo de
la primera hora x(1) se contabilizaron 100 unidades Cuntas habr al
cabo de un da?
27. Suponiendo que A es un conjunto [1, 3, 5, 7], B es [2, 4, 6] y C es [1, 2,
3] evalu las siguientes expresiones.
A+(B*C), A+(B+C), A+B+C, A+(B+C), C+(A+C), C-(A-B), (C-A)-B
28. La empresa ACME S.A. ha asignado un cdigo a cada uno de sus
obreros. El cdigo est formado por 5 caracteres y tienen la siguiente
estructura:
XX-Y-ZZ
Donde
XX= especialidad
Y=categora
ZZ=numero (0 - 90)
Especialidad
CO=Construccin
CA=Carpintera
IS=Instalaciones
LI=Limpieza
Categoras:
F=oficial
O=operario
P=Pen

Escribir un algoritmo que permita ingresar el cdigo de cada obrero y
mostrar en pantalla la especialidad y la categora. Se debe considerar
que el cdigo ingresado por el operador tenga 5 caracteres, si el cdigo
no corresponde a una especialidad o categora, el programa deber
mostrar el mensaje cdigo no valido.
29. Construir un algoritmo que imprima el calendario correspondiente a
un mes y ao determinado. Por ejemplo considera aos bisiestos entre
1980 y 2020. Los das domingos deben aparecer resaltados.
30. Escribir un programa que imprima las n primeras lneas de pascal (n se
ingresa por teclado)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

31. Dadas 3 listas de 5 nmeros de telfono, donde la primera lista
contiene el nmero de pasos consumidos en llamadas locales asociado
a cada telfono, la segunda contiene informacin sobre llamadas
nacionales y la tercera contiene informacin sobre llamadas
internacionales, calcular los subtotales del coste dcada una de las
categoras considerando los costes siguientes: llamada local, 5 pesetas
por paso, llamada nacional 10 pesetas por paso y llamada
internacional 50 pesetas por paso. Construir un programa que lee los
datos de entrada desde el teclado e imprima los resultados finales por
pantalla.
32. Elaborar un algoritmo para calcular el coeficiente de correlacin, segn
la frmula:








33. Elaborar un algoritmo para calcular el impuesto anual de 4ta categora
de acuerdo al siguiente procedimiento
Si un recibo por honorario es mayor de S/. 1500 se le hace la
retencin del 10% caso contrario no tiene retencin en un mes.
Si se tiene un grupo de recibos por honorarios emitidos en el
mismo mes (estos no sobre pasan de S/. 1500) la suma de
estos no deben pasar de S/. 2625 no se le hace retencin. Caso
contrario se le hace la retencin de la suma total del 10%.
Cuando la proyeccin de sus ingresos anuales por Rentas de
Cuarta Categora no supere el monto afecto al impuesto (para
el ejercicio 2014: S/. 33,250), podr solicitar la Suspensin de
Retenciones y/o Pagos a Cuenta. Deber incluir tambin en la
cantidad referencial, los ingresos obtenidos por rentas de
Quinta Categora en caso las tenga. Referencia: Resolucin de
Superintendencia N 373-2013/SUNAT
La renta de cuarta categora de acuerdo a los procedimientos
de la Sunat que han sobres pasado el monto afecto al
impuesto se deduce con el 20% de los ingresos brutos.
1 1 1
2 2 2 2
1 1 1 1
( ( ) )( ( ) )
n n n
i i i
n n n n
i i i i
n xy x y
r
n x x n y y
= = =
= = = =

=



Para Calcular el impuesto anual, De haberse obtenido, luego de
la deduccin un monto positivo, a ste se procede aplicar la
tasa respectiva










Nota UIT = 3600

34. Crea un array o arreglo unidimensional donde t le indiques el tamao
por teclado y crear una funcin que rellene el array o arreglo con los
mltiplos de un nmero pedido por teclado. Por ejemplo, si defino un
array de tamao 5 y elijo un 3 en la funcin, el array contendr 3, 6, 9,
12, 15. Mustralos por pantalla usando otra funcin distinta.
35. Crea dos arrays o arreglos unidimensionales que tengan el mismo
tamao (lo pedir por teclado), en uno de ellos almacenaras nombres
de personas como cadenas, en el otro array o arreglo ira almacenando
la longitud de los nombres, para ello puedes usar la
funcin LONGITUD(cadena) . Muestra por pantalla el nombre y la
longitud que tiene. Puedes usar funciones si lo deseas.
36. Crea una aplicacin que pida un numero por teclado y despus
comprobaremos si el numero introducido es capica, es decir, que se
lee igual sin importar la direccin. Por ejemplo, si introducimos 30303
es capica, si introducimos 30430 no es capica. Piensa como puedes
dar la vuelta al nmero.
37. De



38. ded
16.2. Ordenacin, Bsqueda y Intercalacin
16.2.1. Ordenacin
16.2.2. http://datateca.unad.edu.co/contenidos/2150510/Ejemplos_de_algorit
mos.pdf
Hasta 27 UIT 15%
Por el exceso de 27 UIT 21%
Y hasta 54 UIT
Por el exceso de 54 UIT 30%
IMPUESTO
ANUAL
= REMUNERACIN
NETA ANUAL
x TASA
Llamado tambin clasificacin, es el proceso de organizar datos en algn
orden o secuencia especfica tal como creciente o decreciente para
datos numricos o alfanumricos para datos de caracteres. Los
mtodos de ordenacin se dividen en dos categoras:
Ordenacin de vectores, tablas (arrays)
Ordenacin de archivos
Los mtodos de clasificacin se explicaran aplicados a vectores (arrays
unidimensionales) pero se pueden extender a matrices o tablas (arrays
bidimensionales) considerando la ordenacin respecto a una fila o
columna los mtodos directos son los que se realizan en el espacio
ocupado por el array. Los ms populares son:
Mtodo de intercambio o burbuja
Mtodo de Seleccin
Mtodo de Insercin


Mtodo de intercambio o de Burbuja
Se basa en el principio de comparar pares de elementos adyacentes e
intercambiarlos entre s, de una lista o vector hasta que estn todos
ordenados.
50 15 56 14 35 1 12 9
A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8)
Los pasos a dar son:
Comparar A (1) y A (2), si estn en orden, se mantienen como estn,
en caso contrario se intercambian entre s.
A continuacin se comparan los elementos 2 y 3; de nuevo se
intercambian si es necesario.
El proceso continua hasta que cada elemento del vector ha sido
comparado con sus elementos adyacentes y se han realizado los
intercambios necesarios
Algoritmo:
Desde i 1 hasta n-1 hacer {este representa el numero pasadas}
Desde j 1 hasta n-1 hacer {este representa nmero de
comparaciones}
Si A[ j ] > A [j+1] entonces
AuxA[j]
A[j] A [j+1]
A [j+1] Aux
Fin si
Fin desde j
Fin desde i

Mtodo de Seleccin
El algoritmo de ordenacin por seleccin de una lista o vector de n
elementos tiene los siguientes pasos.
Encontrar el elemento mayor de la lista
Intercambiar el elemento mayor con el elemento de subndice n (o
bien el elemento menor en el subndice 1)
A continuacin se busca el elemento mayor en la sablista de
subndices 1.. n-1 y se intercambia con el elemento de subndice n-
1, por consiguiente se sita el segundo elemento mayor en la
posicin n-1.
A continuacin se busca el elemento mayor en la sablista 1..n-2 y
as sucesivamente

Algoritmo
Funcin Posmayor (j,tabla)
Inicio
ndice_max 1
Desde ndice 2 hasta j hacer
Si tabla [ndice]> tabla [ndice_max] entonces
Indice_maxindice
Fin si
Posmayorindice_max
Fin desde i
Fin
Inicio {programa principal}
Desde j lmite hasta 2 hacer
Mayor Posmayor(j, tabla)
Aux Tabla [mayor]
Tabla [mayor] Tabla[j]
Tabla[j] Aux
Fin desde j
Fin

Mtodo se Insercin
El mtodo se basa en considerar una parte de la lista ya ordenando y situar
cada uno de los elementos restantes insertndolo en el lugar que le
corresponde por su valor
Algoritmo
Procedimiento desplazar (tabla, aux, k, nuevopos)
Inicio
Encontrado false
Mientras (k > 1) y (no encontrado) hacer
Si tabla [k-1] >aux entonces
Tabla [k] tabla [k - 1]
K k 1
Sino
Encontrado true
Fin si
Nuevapos k
Fin mientras
Fin
Inicio {programa principal}
Desde K 2 hasta N hacer
Aux tabla[k]
Desplazar (tabla, k, aux, nuevapos)
Tabla [nuevapos] aux
Fin desde k
Fin

Mtodo de Shell
Este mtodo es una mejora del mtodo de insercin directa que se utiliza
cuando el nmero de elementos a ordenar es grande se suele denominar
tambin ordenacin por disminucin de incrementos.
Pasos

Se divide la lista original (16 elementos como ejemplo) en este caso
en 8 grupos de dos(considerando un incremento o intervalo de
16/2 =8)
Se clasifica cada grupo por separado (se comparan las parejas de
elementos y si no estn ordenados) se intercambian entre s de
posiciones)
Se divide ahora la lista en cuatro grupos d de cuatro (intervalo de
salto 8/4 = 4) y nuevamente se clasifica cada grupo por separado.
Un tercer paso clasifica dos grupos de ocho registros y luego un
cuarto paso completa el trabajo clasificando todos los 16 registros
Algoritmo
Inicio
Intervalo n div 2
Mientras (intervalo > 0) hacer
Desde i (intervalo - 1) hasta n hacer
j i intervalo
Mientras (j > 0) hacer
K i + intervalo
Si A[j] <= A[k] entonces
j 0
Sino {intercalar A[j], A[k]}
AuxA[j]
A[j] A[k]
A[k] aux
Fin si
j = j - intervalo
Fin mientras
Fin desde i
Intervalo intervalo div 2
Fin mientras
Fin
Mtodo de ordenacin rpida (ojo trabajo)

16.2.3. Bsqueda
La bsqueda de informacin est relacionada con las tablas para consulta.
Estas tablas contienen una cantidad de informacin que se almacena en
forma de listas de parejas de datos
Mtodo de bsqueda secuencial
Supongamos una lista de elementos almacenados en un vector (array
unidimensional). El mtodo ms sencillo de buscar un elemento en un
vector es explorar secuencialmente el vector o dicho en otras palabras,
recorrer el vector desde el primer elemento hasta el ltimo. Si se
encuentra el elemento buscado visualizar un mensaje similar fin de la
bsqueda o elemento encontrado, en casi contrario visualizar un
mensaje similar a elemento no encontrado (Aguilar, 1988).
Algoritmo 1
Inicio
Leer t
(Recorrido del vector)
Desde i 1 1 hasta n hacer
Si A[i] = t entonces
Escribir elemento encontrado
Fin si
Fin desde
Fin
Algoritmo 2
Inicio
Leer t
I 1
Mientras (A[i] <> t) y (i <= n) hacer
I i+1 (este bucle se detiene bien con A[i]= t o bien con i >n)
Fin mientras
Si A[i] = t entonces (condicin de parada)
Escribir el elemento se ha encontrado en la psicion, i
Sino
Escribir el nmero no se encuentra en el vector
Fin si
Fin
Mtodo de bsqueda binaria
La bsqueda secuencial es se comienza con el primer elemento del vector
y se busca en el hasta que se encuentra el elemento o se alcanza el final
del vector, aunque este mtodo puede ser un mtodo adecuado para
pocos datos, se necita una tcnica ms eficaz para conjuntos grandes de
datos.
El mtodo de bsqueda binaria se basa en la divisin sucesiva del espacio
ocupado por el vector en sucesivas mitades hasta encontrar el elemento
buscado, este vector debe estar ordenado. La bsqueda binaria utiliza el
mtodo de divide y vencers para localizar el valor buscado. Con este
mtodo se examina primero el elemento central de la lista, si este es el
elemento buscado, entonces la bsqueda ha terminado. En caso contrario
se determina si el elemento buscado est en la primera o la segunda
mitad de la lista y a continuacin se repite este proceso, utilizando el
elemento central de esta sablista (Aguilar, 1988)
Algoritmo
Inicio
Leer k (inicializar variables)
Bajo 1
Alto N
Central ent((bajo + alto)/2)
Mientras (bajo <= alto) y (A[central] <>K ) hacer
Si K < A[central] entonces
Alto central - 1
Sino
Bajo central + 1
Fin si
Central ent((bajo + alto)/2)
Fin mientras
Si k = A[central] entonces
Escribir valor encontrado en, central
Sino
Escribir valor no encontrado
Fin si
Fin
Mtodo de busca por claves
La bsqueda binaria proporciona un medio para reducir el tiempo
requerido para buscar en una lista. Este mtodo, sin embargo, exige que
los datos estn ordenados. Por lo que surge este mtodo para mejorar la
velocidad de bsqueda sin estar ordenados. El mtodo de transformacin
de claves o hashing consiste en convertir la clave dada (numrica o
alfanumrica) en una direccin (ndice) dentro del arreglo. La
correspondencia entre claves y la direccin en el medio de
almacenamiento o en el arreglo se establece por una funcin de
conversin (funcin o hash). (Aguilar, 1988)


OJO Trabajo

16.2.4. Mezcla o intercalacin

La intercalacin es el proceso de mezclar (intercalar) dos vectores
ordenados y producir uno nuevo vector ordenado
Algoritmo

Inicio
Leer A, B (A, B vectores de M y N elementos9
I 1
J 1
K 1
Mientras i <= M y j <= N hacer
(seleccionar siguiente elemento de A o B y aadirlo en C)
K k + 1
Si A[i] < B[j] entonces
C[k] A[i]
i= i + 1
sino
C[k] B[j]
J j + 1
Fin si
Fin mientras
Si i <= M entonces
Desde r i hasta M hacer
K k +1
C[k] A[r]
Fin desde
sino
Desde r j hasta N hacer
K k +1
C[k] B[r]
Fin desde
Fin si
Escribir C (vector clasificado)
Fin
16.2.5. Ejercicios
1. Ordenar los siguientes datos por el mtodo de la burbuja, desarrolle
la prueba de escritorio

34 5 45 6 1 6 23 90 4 10

2. Ordenar por el mtodo de insercin, desarrolle la prueba de
escritorio

30 50 4 3 10 2 20 9 14 15

3. Ordenar por el mtodo Shell, desarrolle la prueba de escritorio

12 0 54 30 100 21 2 9 1 5

4. Desarrolle la prueba de escritorio del mtodo de bsqueda de
secuencial para encontrar el nmero 2 de la siguiente tabla.

12 0 54 30 100 21 2 8 11 15


5. Desarrolle la prueba de escritorio del mtodo de bsqueda de binaria
para encontrar el nmero 9 de la siguiente tabla.

11 10 54 30 101 20 2 9 1 5

6. Mezclar los siguientes vectores, realice la prueba de escritorio y muestre
la tabla mezclada y ordenada


34 11 15 6 1 16 23 90 4 10


30 5 14 13 10 12 20 9 14 15


16.3. Arreglos bidimensionales:

Se puede considerar como un vector de vectores. Es por consiguiente un
conjunto de elementos, todos del mismo tipo en el cual el orden de los
componentes es significativo y en el que se necesitan especificar dos
subndices para poder identificar a cada elemento del arreglo. (Aguilar, 1988).













Asignacin en una arreglo de dos dimensiones
A (1,2) 10 se asigna el valor 10 en la posicin i = 1 y j = 2 de arreglo
bidimensional A
A (5,6) 20 se asigna el valor 20 a la posicin i = 5 y j = 6 del arreglo
bidimensional A
Lectura y escritura de datos
La lectura y escritura de un arreglo u operaciones de entrada y salida
normalmente se realizan con estructuras repetitivas.
Final = arreglo [1.. 20; 1..10] de real
// Lectura
Desde i 1 hasta 20 hacer
Desde j 1 hasta 10 hacer
Leer final [i, j]
Fin desde j
Fin desde i
// Escritura
Desde i 1 hasta 20 hacer
Desde j 1 hasta 10 hacer
Escribir final [i, j]
Fin desde j
Fin desde i

Ejemplo 1

Inicializar una matriz de dos dimensiones con un valor constante K
Fila 1
Columna 1
Fila 2
Fila 3
Fila 4
Fila 5
Columna 2
Columna 3
Columna 4
Columna 5
Algoritmo
Inicio
Desde i 1 hasta M hacer
Desde j 1 hasta N hacer
Q[i,j] K
Fin desde j
Fin desde i
fin

Ejemplo 2

Realiza la suma de dos matrices
Algoritmo
Inicio
Desde i 1 hasta m hacer
Desde j 1 hasta n hacer
S[i,j] Q[i,j] + B[i,j]
Fin desde j
Fin desde i
fin
16.3.1. Ejercicios
1. Lectura / escritura de una matriz m x n. Se han de leer del teclado
las dimensiones m y n (suponga que son nmeros enteros positivos).
A continuacin se han de leer los elementos a
kj
de una matriz A de m
filas y n columnas. Finalmente se presentar en la pantalla la matriz
leda
2. Construir una matriz A R
m x n
cuyo elemento genrico a
kj
viene
dado por a
kj
= k
2
j .
3. Dada una matriz (se supone ya leda) A de dimensiones m x n, se
quiere anular (poner a cero) los elementos de su diagonal principal y
escribir la matriz resultante.
4. Traza de una matriz. Dada una matriz cuadrada A R
n x n
, dada
siendo n > 0 un entero tambin dado se ha de disear un algoritmo
que permita obtener la traza de A (suma de los elementos de la
diagonal).
5. Suma de matrices. Dadas (suponga que ya han sido ledas) dos
matrices A R
n x n
y B R
n x n
, se quiere calcular y escribir la matriz C
obtenida como suma de las anteriores c = A +B.
6. Matriz traspuesta. Dada una matriz A R
n x n
, calcular su traspuesta
B= A
t
.
7. Submatriz triangular. Dada una matriz A R
n x n
, se desea calcular
otra matriz B R
n x n
cuyos elementos son ceros excepto los de la
submatriz triangular inferior que son iguales a los elementos de igual
posicin de A. Es decir, los elementos que estn por debajo de la
diagonal principal de A se copian en B, el resto de elementos de B
valen cero. Se supone que tanto m como n son nmeros enteros
mayores que uno ya ledos.
8. Mximo de una matriz. Dada una matriz A R
n x n
, calcular el
elemento mayor.
9. Mximo de cada matriz. Dada una matriz A R
n x n
, con m > 1 y n >
1 dados se desea calcular un vector v R
n x n
cuya componente
genrica v
k
, es el mayor valor de la fila k-esima de A.
10. Dada una matriz A de M*N elementos, actualice la matriz de
manera que la matriz resultante tenga divididos a los elementos de
la diagonal principal por la suma de los elementos que no forman
parte de ella.
11. Escribir el algoritmo que permita determinar el nmero de
elementos positivos de una tabla
12. Leer una matriz de 3 por 3 elementos y calcular la suma de cada una
de sus filas y columnas, dejando dichos resultados en dos vectores,
uno de la suma de las finas y otro de las columnas
13. Realizar los algoritmos: de producto de matrices, multiplicacin de
una matriz por un escalar, matriz identidad y matriz triangular.
14. Se dispone de las notas de 40 alumnos, cada uno de ellos puede
tener uno o varias notas. Escribir un algoritmo que permita obtener
la media de cada alumno y la media de la clase a partir de la entrada
de las notas desde un terminal.
15. Juego del Rojo-amarillo-verde. El programa genera tres dgitos
aleatorios distintos entre 0 y 9. A estos dgitos se les asignan las
posiciones 1, 2 y 3. El objetivo del juego es adivinar los dgitos as
como sus posiciones correctas en el menor nmero de intentos
posibles. Para cada intento, el jugador proporciona tres dgitos para
las posiciones 1, 2, y 3. El programa responde con una pista que
consta de rojo, amarillo y verde. Si un dgito adivinado est en la
posicin correcta la respuesta es verde. Si el digito adivinado est en
posicin incorrecta, la respuesta es amarillo. Si el dgito para una
posicin dada no coincide con ninguno de los tres dgitos, la
respuesta es rojo. Ejemplo: dgitos 6,5,8 en las posiciones 1,2,3.








16. Jhon Prez ha heredado $1.000. l ha decidido invertir su dinero por
un ao. Un inversionista le ha sugerido cinco inversiones posibles:
oro, bonos, negocio en desarrollo, certificado de depsito, acciones.
Jhon debe decidir cunto invertir en cada opcin. La siguiente tabla
representa las ganancias que obtendra para cada escenario posible
de comportamiento del mercado





Utilizar el Criterio de Hurwicz: Es un criterio intermedio entre
maximin y el maximax: Supone la combinacin de ponderaciones de
optimismo y pesimismo. Sugiere la definicin del llamado coeficiente
de optimismo (), y propone que se utilice como criterio de decisin
una media ponderada entre el mximo resultado asociado a cada
alternativa, y el mnimo resultado asociado a la misma.
Para el optimista
{ }
max max ( , ) (1 ) min ( , )
j i j
i j i j
a
v a v a
u u
o u o u +


Para el pesimista


{ }
min min ( , ) (1 ) max ( , )
i j j
i j i j
a
v a v a
u u
o u o u +



Para hallar la solucin ptima se marca el mximo y el mnimo de
cada alternativa. Segn el coeficiente de optimismo del decidor (),
se multiplica el mximo por ste y el mnimo se multiplica por (1-).
Luego se suman los dos. Luego elegimos el mximo entre todas las
alternativas. En nuestro ejemplo, si suponemos que el empresario es
neutral =0,5.
17. Lea una matriz de N x M (variables) e indique luego ,
Cuantos elementos positivos contiene la matriz
Cuantos elementos pares y positivos contiene
Cul es el mayor elemento que contiene la matriz y cuantas veces
figura.
18. Crear una matriz de dimensiones variables y llenarlas de unos e
imprimirla.
19. Crear a una matriz N x N , cuya diagonal principal (i = j) est
formada por unos y el resto por ceros.
20. Crear una matriz de 5 x 5 donde cada elemento de esta
corresponda a la suma de los ndices de la fila con la columna (i +
j).
21. Su ponga que ya ha sido leda una matriz de 9 x 5, se le pide que
encuentre el nmero de elementos pares que contiene la matriz.
Luego imprima la matriz completa.
22. Lea una matriz de dimensiones 5 x 5 y luego entregue:
El promedio de los elementos de la segunda fila de la matriz
La suma de elementos de la cuarta columna de la matriz
23. Multiplicacin de matrices. Suponga ya leidas A R
m x n
y B R
n x p
,
calcule C=A*B.
24. Matriz al cubo. Disee un algoritmo que permita obtener B = A
3
,
siendo A R
n x n
una matriz cuadrada que se supone ya leda.
25. Exponenciacin de matrices. Disee un algoritmo que permita
obtener B = A
p
, siendo A R
n x n
, una matriz dada y p >0 un entero
tambin dado.
26. Dados dos enteros positivos m y n se desea construir la matriz S R
m x n
, cuyo elemento genrico viene dado por
1
1
n
kj j
k
s
h
=
=


27. Dados los arrays lineales ABC(-5:15); EJM(1935:1994);PQR(45)
Se pide calcular el nmero de elementos de cada array.
28. Dados los array multidimensionales:
X(-5:5;3:33) y Y(3:10;1:15;10:20)
Se pide calcular la longitud de cada dimensin y el nmero de
elementos de X e Y.
29. Un arreglo estrictamente triangular inferior A es un arreglo de n x n,
en el cual a[i, j+ 0, si i<=j,
Cul es el mximo nmero de elementos no iguales a cero en tal
arreglo?
Cmo pueden almacenarse secuencialmente estos elementos en la
memoria?
Desarrolle un algoritmos para acceder A[i, j] donde i>=j?.
30. Dadas 3 listas de 5 nmeros de telfono, donde la primera lista
contiene el nmero de pasos consumidos en llamadas locales
asociado a cada telfono, la segunda contiene informacin sobre
llamadas nacionales y la tercera contiene informacin sobre
llamadas internacionales, calcular los subtotales del coste dcada
una de las categoras considerando los costes siguientes: llamada
local, 5 pesetas por paso, llamada nacional 10 pesetas por paso y
llamada internacional 50 pesetas por paso. Construir un programa
que lee los datos de entrada desde el teclado e imprima los
resultados finales por pantalla.
31. Elabore un algoritmo para hallar la matriz inversa mediante el
mtodo de gauss.
32. Elabore un algoritmo para hallar la matriz inversa mediante la
siguiente formula.




33. Crea un arreglo o array multidimanesional que contenga 3 columnas
y las filas que tu quieras, las dos primeras columnas tendrn
nmeros y en la 3 columna sera el resultado de sumar el nmero de
la primera y segunda columna. Muestra el array o arreglo de la
siguiente forma:

34. Crea un array o arreglo multidimensional que contenga la tabla de
multiplicar del 1 al 9 (10 filas y 10 columnas). La primera fila y la
columna debe contener estos nmeros. El resto de nmeros
deberemos calcularlo, usando los nmeros que disponemos, es
decir, en la primera fila de 0, calculara 1*1, 1*2, 1*3, etc. usando las
posiciones del array o arreglo. As debe quedar al final:


35. de
1
1
( )
t
A adj A
A