Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacion Apuntes
Programacion Apuntes
INDICE GENERAL
2. Concepto de algoritmo..............................................................................................3
4. Representación de un algoritmo..............................................................................4
4.2. Pseudocódigo.....................................................................................................5
5.1.1. Enteros:.......................................................................................................5
5.1.2. Reales:.........................................................................................................5
6. Constantes y Variables:.............................................................................................6
7. Operadores................................................................................................................6
7.3. Alfanuméricos:...................................................................................................7
8. Expresiones................................................................................................................7
9. Regla de Prioridad.....................................................................................................8
11. Ejercicios.................................................................................................................8
13.1. Instrucción....................................................................................................10
14.2.4. Ejemplos....................................................................................................17
14.2.5. Ejercicios....................................................................................................18
14.3.4. Ejemplos....................................................................................................24
14.3.5. Ejercicios....................................................................................................24
15. Subprogramas......................................................................................................27
16.1.1. Ordenación................................................................................................32
16.1.2. Búsqueda...................................................................................................35
17.1. Pilas...............................................................................................................42
17.2. Colas..............................................................................................................42
18.1. Arboles..........................................................................................................42
18.2. Grafos............................................................................................................42
1. Sistema de procesamiento de información
2. Algoritmo
Definición: Es el conjunto de instrucciones que especifican la secuencia de
operaciones a realizar en orden para resolver un sistema específico o clase de
problema. Los algoritmos son independientes tanto del lenguaje de programación
en que se expresa como de la computadora que los ejecuta. El diseño de la
mayoría de los algoritmos requiere creatividad y conocimientos profundos de la
técnica de la programación. En esencia. Todo problema se puede describir por
medio de un algoritmo[ CITATION Lui88 \l 3082 ]
4. Representación de un algoritmo
Para representar los algoritmos debemos utilizar métodos gráficos o numéricos,
que sea independiente de un lenguaje de programación, de tal manera que nos
permita visualizar el algoritmo que queramos representar, existen varios métodos,
los más usados a nivel internacional son el diagrama de flujo y el pseudocódigo.
Símbolo Función
Terminal: representa el comienzo, inicio,
final y fin de un programa. Puede
representar también una parada o
interrupción programada
Entrada / Salida: cualquier tipo de
introducción de datos en la memoria
desde los periféricos o registro dela
información procesada en un periférico
Proceso: Cualquier tipo de información
que pueda originar cambio de valor,
formato, posición de la información
almacenada en memoria, operaciones
aritméticas, de transferencia, etc.
Decisión: indican operaciones lógicas o
de comparación entre datos,
Si normalmente dos y en función del
resultado de la misma determina cuál de
No
los distintos caminos alternativos del
programa se debe seguir normalmente
tiene dos salidas respuesta sí o no, pero
puede tener tres o más según los casos
Indicador de Dirección o Línea de Flujo:
indica el sentido de ejecución de las
operaciones
4.2. Pseudocódigo
Es un lenguaje especificado de algoritmos. El uso de tal lenguaje hace el paso
de codificación final relativamente fácil. La ventaja de un pseudocódigo es que
en su uso la planificación de un programa, el programador se puede concentrar
en la lógica y en las estructuras de control y preocuparse de las reglas de un
lenguaje de programación. Es también fácil modificar el pseudocódigo si se
descubren errores o anomalías en la lógica del programa[ CITATION Lui88 \l
3082 ]
El pseudocódigo es un lenguaje algorítmico, de alto lenguaje utilizado para
escribir con mucha más abstracción instrucciones de un lenguaje de
programación.
5.1.1. Enteros:
Es un subconjunto finito de los números enteros. Los enteros son números
completos, no tienen componentes fraccionarios o decimales y pueden ser
negativos o positivos[ CITATION Lui88 \l 3082 ] , En java se representan con
int, long, short
Por ejemplo
Int X
5.1.2. Reales:
El tipo real consiste en un subconjunto de los números reales, Los
números reales siempre tienen su punto decimal y pueden ser positivos o
negativos
En java se representan con float, doublé
6. Constantes y Variables:
El programa de computadora contiene ciertos valores que no deben cambiar
durante la ejecución del programa tales valores se llaman constantes de igual forma
existen otros valores que cambiaran durante la ejecución del programa a estos
valores se les llama variables.
7. Operadores
Todos los símbolos que representan enlaces entre cada uno de los argumentos que
intervienen en una operación se llaman operadores y se utilizan para construir
expresiones.[ CITATION Rod91 \l 3082 ] 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[ CITATION Rod91 \l 3082 ]
7.2. Aritméticos:
Para tratar los números se utilizan los operadores aritméticos, que junto con
las variables numéricas forman expresiones aritméticas[ CITATION Rod91 \l
3082 ]
Fuente: Libro de metodología
de la programación de Rodríguez Almeida
7.3. Alfanuméricos:
Se utiliza para unir datos alfanuméricos [ CITATION Rod91 \l 3082 ]
7.5. Paréntesis:
Los paréntesis se utilizan para anidar expresiones,
7.6. ded
8. Expresiones
Las expresiones son combinaciones de constantes, variables, símbolos de
operación, paréntesis, y nombres de funciones especiales. Las mismas ideas son
utilizadas en notación matemática tradicional
Cada expresión toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecución de las operaciones indicadas
Una expresión consta de operando y operadores según el tipo de objetos que se
manipulan, se clasifican las operaciones en:
Aritméticas
Relacionales
Lógicas
Carácter
9. Regla de Prioridad
Según Rodríguez[ CITATION Rod91 \l 3082 ], la prioridad a la hora de evaluar los
operadores en cualquier expresión es
Paréntesis
Potencias
Productos y divisiones
Sumas y restas
Concatenación
Relacionales
Lógicos
Según Joyanes[ CITATION Lui88 \l 3082 ]Las expresiones que tienen dos o más
operadores requieren usar reglas matemáticas que permitan determinar el orden
de las operaciones, se denominan reglas de prioridad o precedencia y son:
a) Las operaciones que están encerradas entre paréntesis se evalúan primero.
Si existen diferentes paréntesis anidados (interiores unos a otros), las
expresiones más internas se evalúan primero.
b) Las expresiones aritméticas dentro de una expresión suelen seguir el
siguiente orden de prioridad:
Operador exponencial (^)
Operadores de multiplicación y división
Operadores de suma y resta
Operadores lógicos or y and
11. Ejercicios
Encontrar el valor de la variable valor después de la ejecución de las
siguientes operaciones
a. Valor 4.0*5
b. X 3.0
Y 2.0
Valor X^Y – Y
c. Valor 5
X3
Valor valor* X
Deducir el resultado que se puede producir con las siguientes instrucciones
Variables x, y = enteros
X1
Y5
Escribir x, y
Deducir el valor de las expresiones siguientes
X A +B +C
XA+B*C
XA+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
Escribir las siguientes expresiones en forma de expresiones algorítmicas
M
i. +P
N
N
ii. M+
( P−Q)
( M + N)
iii.
(P−Q)
n
(M + )
p
iv.
r
(q− )
s
( seno ( x )+ coseno( x))
v.
tan ( x)
−b ± √ b2−4 ac
vi.
2a
Como se intercambian los valores de las A, B y Aux
Aux A
AB
B Aux
Entrada: Son los datos que se ingresan por medio de una variable.
Programa o proceso: Son todas las instrucciones que representa un algoritmo
(Diagrama de Flujo de Datos o Pseudocódigo) de un problema abstracto, que
es codificado en un lenguaje de programación (Matlab, Python, VBA de Excel,
Perl, Java, etc) o interprete (Netbeans) que este respeta una sintaxis de
codificacion.
Salida: Son los datos resultantes del programa
th=23;
Instrucciones de lectura
Esta instrucción lee datos de un dispositivo de entrada ejemplo leer edad,
tiempo.
Ejemplo de lectura en matlab:
Instrucciones de escritura
Esta instrucción escribe en un dispositivo de salida ejemplo escribir A, B, C
Ejemplos
En matlab :
disp('la suma de dos números es :');
disp(s);
Instrucciones de bifurcación
El desarrollo lineal de un programa se interrumpe cuando se ejecuta una
bifurcación. Las bifurcaciones pueden ser según el punto del programa a
donde se bifurca hacia adelante o hacia atrás.
o Bifurcación incondicional: se realiza siempre que el flujo del
programa pase por la instrucción sin necesidad del cumplimiento
de ninguna condición
Acción 1
Acción 2
Acción 3
o Bifurcación Condicional: depende del cumplimiento de una
determinada condición. Si se cumple la condición, el flujo sigue
ejecutando la acción F2 si no cumple se ejecuta la acción F1
¿?
Acción F1 Acción F2
Ejemplo en Perl
if($num <=1){
return $factor=1;}
else {
return $factor= $num*&factorial($num-1);
}
}
Ejemplo 2
Escriba un
algoritmo que pregunte por dos números y muestre como resultado la suma
de estos. Use Pseudocódigo y diagrama de flujos.
Ejemplo 3
A
V0 = k3[ ES ]
Ginecología 40%
Traumatología 30%
Pediatría 30%
Obtener la cantidad de dinero que recibirá cada área, para cualquier
monto presupuestal.
16. El coste de un automóvil nuevo para un comprador es la suma total del
coste del vehículo, 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 diseñar un algoritmo para leer el coste total del
automóvil e imprimir el coste para el consumidor.
17. Un alumno desea saber cuál será su promedio general en las tres
materias más difíciles que cursa y cuál será el promedio que obtendrá en
cada una de ellas. Estas materias se evalúan como se muestra a
continuación:
La calificación de Matemáticas se obtiene de la sig. Manera:
Examen 90%
Promedio de tareas 10%
En esta materia se pidió un total de tres tareas.
La calificación de Física se obtiene de la siguiente manera:
Examen 80%
Promedio de tareas 20%
En esta materia se pidió un total de dos tareas.
La calificación de Química 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 votación 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 la suma de los dos el doble del tercero
Promedio de todos los valores.
a+b cd - 2a
Valor = - + 4cd
c 2
a
c+
2a + 5b + 4
a+b cd - 2a
Valor = - + 4cd
c 2
a
c+
2a + 5b + 4
PV = nRT
Dónde:
є = Coeficiente de extinción molar
c = Concentración
l = Paso de luz de la cubeta. Las proteínas y los ácidos nucleicos
absorben la luz en el intervalo ultravioleta, a longitudes de onda
comprendidas entre los 210 y los 300 nm
Elaborar un algoritmo para calcular la absorbancia
32. Un vendedor recibe un sueldo base más un 10% extra por comisión de
sus ventas, el vendedor desea saber cuánto 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.
33. Elaborar un programa en el cual se ingrese la distancia que existe entre
dos vehículos y sus respectivas velocidades ¿hallar el tiempo de alcance
y el tiempo de encuentro?
34. Elabore un programa en la que me devuelva la altura y la velocidad final
de un cuerpo si se deja caer, ingresando únicamente el tiempo.
35. Convierta un ángulo sexagesimal g, m, s a grados, minutos y segundos
centesimales.
36. Elaborar un programa en el que se ingrese la masa atómica y la cantidad
de neutrones para que nos devuelva el número atómico, la cantidad de
neutrones y protones.
37. Elaborar un programa en el que ingrese el tiempo en el que se demora
en llegar el sonido de una detonación a cierto lugar. ¿calcular la distancia
donde se realizó la detonación?
38. Elaborar un algoritmo que solicite el número 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.
39. Elaborar un algoritmo que permita ingresar el número de partidos
ganados, perdidos y empatados, por algún equipo en el torneo apertura,
se debe demostrar su puntaje total, teniendo en cuenta que por cada
partido ganador obtendrá 3 puntos, empatado 1 punto y perdido 0
puntos.
40. Elabore el algoritmo que permita ingresar dos valores numéricos enteros
cualquiera, luego de evaluar se debe imprimir sus valores
intercambiados.
41. Cifrado de datos: dado un número de cuatro dígitos se reemplazará cada
dígito por (dígito +7) módulo 10. A continuación se intercambiará el
primer dígito por el tercero y el segundo por el cuarto, y ese será el
número cifrado.
42. Fibonacci fue un matemático italiano que se planteó el siguiente
problema: Dada una pareja de conejos jóvenes, y suponiendo que los
conejos tardan un año en madurar a partir del año siguiente cada pareja
madura de conejos da a luz a una pareja de conejos jóvenes ¿Cuántas
parejas de conejos habrá una vez transcurridos n años?
La respuesta es:
1 1+ 5 n 1- 5 n
Fn = (( ) -( ) )
5 2 2
Queremos tener un
algoritmo que nos permita saber cuántas parejas de conejos tendremos,
luego de un número determinado de años
43. Pepe quiere invertir el dinero que le regalaron para su cumpleaños
plantando sandias en un terreno que tiene en Paine.
Sin embargo, se está seguro de si le alcanza el dinero pues es la primera
vez que realiza este tipo de negocio, pero si sabe que cuesta S/. 25.00
por metro cuadrado plantar sandias.
Además, ni siquiera está segura de cuantos metros cuadrados tiene su
terreno. Lo único que sabe es que el terreno es triangular, y conoce la
longitud de los lados.
¿Cómo puede hacer Pepe para saber la cantidad de dinero que necesita?
Ayuda:
Para calcular el área de un triángulo conociendo la longitud de sus lados
podemos utilizar la fórmula:
area = s ( s - L1 )( s - L2 )( s - L3 )
Dónde:
( L1 + L2 + L3 )
s=
2
44. Pepe quiere viajar a Londres la próxima semana y para
saber cómo está el tiempo allá estuvo mirando el programa del tiempo
que transmiten en un canal de televisión inglés.
Cuando el anunciador del tiempo dio las temperaturas de la próxima
semana Pepe se llevó una gran sorpresa pues no las entrego en grados
Celsius, sino en grados Fahrenheit ¿Puede proponer una solución
algorítmica para que Pepe pueda determinar qué tan frio esta Londres
en este tiempo?
Ayuda
Para calcular la temperatura en grados Celsius podemos utilizar la
fórmula: 5
C ) = (T (�
T (� F ) - 32)
9
45. Elaborar un algoritmo para calcular la temperatura
de fusión (Tf): Es importante no olvidar que son dos los cebadores que se
añaden a una PCR en relación con un sitio o diana. Los dos cebadores
oligonucleótidos deben diseñarse de forma que tengan temperaturas de
fusión similares. Si los cebadores no se ajustan bien en cuanto a su T f, la
amplificación será menos eficaz o incluso podrá no darse en absoluto, ya
que el cebador con la Tf más elevada funcionará mal a temperaturas más
bajas y es posible que el cebador con la T f más baja no trabaje a
temperaturas más elevadas. La forma más precisa de calcular las
temperaturas de fusión de los oligonucleótidos es utilizar cálculos
termodinámicos del vecino más próximo con la fórmula:
C + 16.6log10 [ K + ]
T fcebador = DH ( DS + R ln(c / 4)) - 273.15�
Dónde:
H= entalpia
S=entropía de la formación de la hélice
R= constante molar de los gases
C= concentración de los cebadores
46. Permita ingresar cuatro valores reales, los primeros tres son longitud,
ancho y altura (en centímetros) 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.
47. Elaborar un algoritmo para calcular el pronóstico por el método de
suavización exponencial simple, según la formula.
Fi +1 = a Ai + (1 - a ) Fi
Donde
Fi+1: Pronostico en el periodo i+1
Fi: Pronostico realizado en el periodo i
Ai: las ventas o demanda real en el periodo i
α: Factor de ponderación o constante de ajuste exponencial
48. Elaborar un algoritmo para calcular el error en los pronósticos
Error = et = At - Ft
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 condición o restricción
14.2.1.Selectivas simples:
Ejecuta una determinada acción cuando se cumple una determinada
condición. A continuación, se muestra su sintaxis
Pseudocódigo
Si condición Entonces
Instrucción
Fin si
En Diagrama de flujo se muestra en la figura.
Condición
Instrucción
14.2.2.Selectivas Dobles:
La estructura anterior es muy limitada y normalmente se necesitará una
estructura que permita elegir dos opciones o alternativas posibles en
función del cumplimiento o no de una determinada condición. A
continuación, se muestra su sintaxis
Si condición entonces
Instrucción 2
Sino Condición
Instrucción 1
Fin si
Instrucción 1 Instrucción 2
a+b cd - 2a
Valor = - + 4cd
c2 a2
c+
2a + 5b + 4
19. Leer un número real x y otro entero z. calcular y escribir y = x z,
suponiendo que z ≥ 0
20. Dado un número, se debe contestar si es múltiplo de 3, 6 y 9 a la vez.
Condicionar el algoritmo para cualquier número.
21. Diseñar el algoritmo que, dado un número, indique si es par o es impar
Condición 1
Condición 2
Instrucción 3
Instrucción 4
pseudocódigo
Si condición 1 entonces
Si condición 2 entonces
Instrucción 2
Sino
Instrucción 1
Fin si
Sino
Instrucción 3
Si condición 3 entonces
Instrucción 4
Fin si
Fin si
Diagrama de Flujo
Case 1:
Case 2:
.
.
.
Case n:
Fin según
14.2.5.Ejemplos
Ejemplo 1:
Resolución de una ecuación de primer grado
Si la ecuación 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 “solución imposible”
a= 0 b =0 entonces “solución indeterminada”
pseudocódigo
Inicio
Leer a, b
Si (a <> 0) entonces
x - b/a
Sino
Si (b<>0) entonces
Escribir “solución imposible”
Sino
Escribir “solución indeterminada”
Fin- si
Fin – si
Fin
Ejemplo 2
Resolución de la ecuación de segundo grado teniendo en cuenta los
tres posibles valores de discriminación
La ecuación de segundo grado es:
ax^2 + bx +c = 0
El discriminante D vale
D = b^2 - 4ac
Y las raíces son
−b ± √ b2−4 ac −b ± √ D
X1, x2 = =
2a 2a
Si el discriminante es menor que cero, las raíces son imaginarias
Algoritmo Pseudocódigo
Inicio
Leer a, b, c
D b^2 -4*a*c
Según sea D hacer
D < 0: escribir “raíces complejas”
D = 0: x - b/2*a
D > 0: rc raíz cuadrada(D)
X1 (-b + rc)/2*a
X2 (-b -rc)/2*a
Escribir x1, x2
Fin _ según
fin
Ejemplo 3
Se desea diseñar un algoritmo que escriba los nombres de los días de
la semana en función del valor de una variable DIA introducida por
teclado
Inicio
Leer Día
Según_ sea DIA hacer
1: escribir “lunes”
2: escribir “martes”
3: escribir “miércoles”
4: escribir “jueves”
5: escribir “viernes”
6: escribir “sábado”
7: escribir “domingo”
Otros: escribir “Error”
Fin_ según
Fin
Ejemplo 4
El ejercicio 1 de los propuestos en Código de Matlab
m1=input ('ingrese la 1ra media: ');
m2=input ('ingrese la 2da media: ');
m3=input ('ingrese la 3ra media: ');
m4=input ('ingrese la 4ta media: ');
media=(m1+m2+m3+m4) /4;
if (media <= 4)
disp('el ruido no es nocivo');
disp('la media es ');disp(media);
else
disp('el ruido es nocivo');
disp('la media es ');disp(media);
end
Ejemplo 7
El ejercicio 2 de los propuestos en Código de Matlab
sueldo = input ('ingrese el sueldo del cliente');
nh=input ('ingrese el número de hijos: ');
est=input ('ingrese el estado civil: '); % 0 = casado y 1 =soltero
if (sueldo > 1200)
disp('se le concede el prestamo');
else if ((sueldo <=1200) && (sueldo > 1000) && (nh==0) &&(est==1))
disp('se le concede el prestamo');
else if ((sueldo <=1200) &&(sueldo > 1000)&& (nh==0) &&(est==0))
disp('se le concede el prestamo');
else
disp(' no se le concede el prestamo');
end
end
end
Si el conductor tiene
menos de 26 años, el
precio se incrementa un 25 %; si tiene entre 26 y 30 años se
incrementa un 10 %; si tiene entre 31 y 65 años el precio no se
modifica; si tiene más de 65 años el precio se incrementará un 10
%. Además, en cualquier caso, hay que considerar que, si el
conductor tiene menos de 2 años el permiso de conducir, el precio
se incrementara un 25 % adicional.
Diseñar un algoritmo que calcule el precio del seguro para un
determinado modelo y un determinado conductor.
10. 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 cuál 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
11. Elaborar el algoritmo que permita ingresar cuatro valores enteros
distintos luego de evaluar se debe decir cuál de ellos es el mayor
12. Similar al ejercicio anterior, luego de evaluar se debe decir cuál de
ellos es el mayor y el menor
13. Elaborar un algoritmo que imprima el valor medio de tres
números, ingresados por teclado (no es el promedio)
14. 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.
15. Se desea agregar una letra para representar la calificación de los
alumnos, las calificaciones son notas entre 1 y 10; use los
siguientes parámetros: 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 demás calificaciones.
16. La empresa Milagrito S.A. tiene la siguiente tabla de parámetros
para pagar las comisiones de sus ejecutivos de ventas:
x F(x)
X є [-1,3) 10-x
X > 50 1
resto 0
21. Determinar el mayor y menor valor de 5 números ingresados desde
el teclado.
22. Ordenar de menor a mayor 5 números ingresados por teclado
23. 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.
24. Un trabajador del estado percibe un sueldo básico mensual de 750
nuevos soles; además recibe incrementos de sueldo de acuerdo a
los siguientes conceptos
instrucción Porcentaje
Hasta 5to secundaria 5%
técnico 10%
profesional 20%
� 0 si x �0
� x-0
� si 0 < x �16.67
mTINS ( x) = � 16.67 - 0
�
� 33.34 - x si 16.67 < x < 33.34
�33.34 - 16.67
� 0 si x �33.34
�
29. El gobierno del Perú desea reforestar un bosque que mide
determinado número de hectáreas. Si la superficie del terreno
excede a 1 millón 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 millón 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 número 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. También se
sabe que una hectárea equivale a 10 mil metros cuadrados.
30. Una fábrica ha sido sometida a un programa de control de
contaminación para lo cual se efectúa una revisión de los puntos
IMECA generados por la fábrica. el programa de control de
contaminación consiste en medir los puntos IMECA que emite la
fábrica en cinco días de una semana y si el promedio es superior a
los 170 puntos entonces tendrá la sanción de parar su producción
por una semana y una multa del 50% de las ganancias diarias
cuando no se detiene la producción. Si el promedio obtenido de
puntos IMECA es de 170 o menor entonces no tendrá ni sanción ni
multa. El dueño de la fábrica desea saber cuánto dinero perderá
después de ser sometido a la revisión.
31. Una persona se encuentra con un problema de comprar un
automóvil o un terreno, los cuales cuestan exactamente lo mismo.
Sabe que mientras el automóvil se devalúa, con el terreno sucede
lo contrario. Esta persona comprara el automóvil si al cabo de tres
años la devaluación de este no es mayor que la mitad del
incremento del valor del terreno. Ayúdale a esta persona a
determinar si debe o no comprar el automóvil.
32. Permita ingresar el mes y día de nacimiento, después de evaluar se
debe imprimir el signo zodiacal correspondiente.
33. Imprima el valor medio de cinco números ingresados por el teclado
34. Luego de ingresar una fecha del día con el formato Día Mes Año. Se
imprime la fecha del día siguiente
35. Permitir ingresar una hora determinada con el formato H M S (H=
Hora, M= Minuto, S= Segundo). Se pide imprimir la hora que será
después de un segundo
36. Queremos conocer los datos estadísticos de una asignatura, por lo
tanto, necesitamos un algoritmo que lea el número 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?
37. La temperatura de un horno puede variar desde 0 hasta 100 grados
centígrados y se clasifica de acuerdo a lo siguiente:
Monto Bonificación
(%)
0 - 1000 0
1000 – 5000 3
5000 - 20000 5
20000 a 8
mas
Misceláneos
RETENCION IAN
12
ENERO, FEBRERO, MARZO
RETENCION IAN - Retenciones de Enero a
ABRIL Marzo
9
RETENCION IAN - Retenciones de Enero a Abril
8
MAYO, JUNIO, JULIO
RETENCION IAN - Retenciones de Enero a Julio
5
AGOSTO
RETENCION IAN - Retenciones de Enero a
SETIEMBRE, OCTUBRE, Agosto
4
NOVIEMBRE
RETENCION IAN - Retenciones de Enero a
DICIEMBRE Noviembre
Renta Total
Renta Bruta Cuarta Categoría (lo que recibió como
S/.58,400
independiente)
S/.11,680
-Deducción de 20% de renta bruta de cuarta (20% de
S/.58,400)
Renta Neta de Cuarta Categoría S/.46,720
+ Ingresos de Quinta Categoría (lo que recibió como
S/.49,000
dependiente)
Total ingresos de Cuarta y Quinta Categoría S/.95,720
S/.25,200
-Deducción 7 UIT
(7 x S/.3,600)
Renta neta a la que se le aplica el impuesto S/.70,520
Falsa
Condición
Acciones
Calcular valor inicial y final
Falso
Variable índice > valor final
Verdadero
Repetir
Accion1
Acción 2
.
.
.
Hasta _que Condición
Falsa
Verdadera
Condición
14.3.4.Ejemplos
Ejemplo 1
Inicio
Leer M, N
Resto M
Cociente 0
Repetir
Resto resto – N
Cociente cociente + 1
Hasta_ que resto < N
Escribir “dividiendo”, M, “divisor”, N, “Cociente”, cociente, Resto
Fin
Ejemplo 4
Fin
Ejemplo 11
Desarrolle un algoritmo para aproximar la siguiente función por
serie de Taylor
Primera forma
Inicio
(x = exponente de la función y n = N° de términos 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 función y n = N° de términos 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 números de la
serie de Fibonacci, se sabe que la serie se origina a partir de dos
números que sirve patrón o base y el tercer número 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
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 términos de la siguiente serie, donde N
debe estar entre 5 y 30
5, 7, 10, 14, 19,…..
Inicio
Leer n
Si (n≥5) y (n≤30) entonces
i1
s5
Escribir s
Mientras i<n hacer
ii +1
ss + i
Escribir s
Fin mientras
Sino
Escribir número fuera de rango
Fin si
Fin
Ejemplo 14
Calcular el valor máximo de una serie de 10 números, 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 simultáneamente los valores máximo y mínimo de una
lista de 100 números leídos 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 Máximo Común Divisor de dos números 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
, Para N > 0 x x 2 x3 xn
e =1+x+ + +...+
Para un 2! 3! n! N dado
Para que N sea tal
xn
que < e (por ejemplo e = 10 - 4)
n!
Escribir un algoritmos que calcule la exponencial de a
según dicha fórmula, utilizando n=10 y luego n=20.
12. Diseñar un algoritmo que determine los números primos entre dos
números dados.
13. Los empleados de una fábrica trabajan en dos turnos, diurno y
nocturno. Se desea calcular el jornal diario en una semana de
acuerdo con los siguientes puntos:
Las tarifas de las horas 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
14. Diseñar el algoritmo que dado una lista números leídos por
teclado, indique si es par o es impar e imprima el total de números
leídos, además el total de los pares e impares.
15. Dado un número N, calcular la suma 5 +10 +15 + 20+ . . . +5* n
16. Diseñar el algoritmo que encuentre (muestre) los números pares
que hay entre 100 y 1000.
17. Diseñar el algoritmo que calcule la suma de los pares que hay
entre dos números dados.
18. ¿Calcular los pagos mensuales de una hipoteca y el total a pagar. El
programa debe solicitar el capital, el interés anual y el número de
años y debe escribir la cuota a pagar mensualmente. Para calcular
la cuota se utiliza la siguiente fórmula: Sea C el capital del
préstamo, R la tasa de interés mensual y N el número de pagos. La
cuota mensual viene dada por:
f ( x) = sen( x ) + cos(1 - x 2 ) - 1
xi +1 - xi
erp = x100
xi+1
21. Desarrolle el algoritmo del trapecio: para calcular por medio del
método del trapecio la integral de la siguiente función.
F(X) = 0.2 + 25 X - 200 X2 + 675 X3 - 900 X4 + 400 X5
El proceso consiste de la siguiente manera
Leer el intervalo a, b y el número de sub intervalos
Dividir el intervalo en n sub intervalo
Evaluar la función en los extremos de los sub intervalos
Aplicar la formular
Salida integral aproximada
h( f ( x0 ) + 2 f ( x1 ) + 2 f ( x2 ) + ... + 2 f ( xn -1 ) + f ( xn ))
It =
2
b-a
h=
n
a = f (xo)
b = f (xn)
22. Desarrolle el algoritmo del trapecio que consiste en la siguiente
formula.
n -1
f ( xa ) + 2�f ( xi ) + f ( xb )
I = (b - a ) i =1
2n
Donde los valores de a y b es el intervalo de la integral definida y n
es el número de segmentos. Utilizar la siguiente función, para
verificar los resultados.
F(X) = 0.2 + 25 X - 200 X2 + 675 X3 - 900 X4 + 400 X5
23. Elabore el algoritmo de integración numérica de Simpson 1/3 que
consiste de la siguiente formula
n-1 n- 2
f ( xa ) + 4 � f ( xi ) + 2 � f (x ) + f (x )
j b
i =1,3,5 j =2,4,6
I = (b - a )
3n
e a ( x - a ) e a ( x - a ) 2 e a ( x - a )3 ea ( x - a)n
31. Desarrollar e x = ea + + + + ... +
1! 2! 3! n!
un algoritmo para Aproximar la siguiente función y = Ln(a + x)
( x - b) ( x - b) 2 ( x - b)3 ( -1) n ( x - b) n
ln(a + x) = ln(a + b) + - + - ... +
(a + b) 2(a + b) 2 3(a + b)3 n( a + b ) n
x x2 x3 (-1) n x n
L n(a + x) = L n(a) + - + - ... +
a 2(a ) 2 3(a )3 n( a ) n
33. Desarrollar un algoritmo para Aproximar la siguiente función y
1+ x x3 x5 x 2 n-1
y = L n( ) = 2( x + + + ... + )
1- x 3 5 2n - 1
34. Dado n>0 hallar la suma
n
1
s=�
k =1 k
n
1
s=�
k =1 ak
35. Se desea calcular la suma siendo los valores ak los
elementos de la sucesión dada por a k= ak-1+ ak-2, para k > 2, con
a1=1 y a2=1. El limite n ha de leerse del teclado y se supone mayor
que dos.
n
1
s=� m
36. Se desea calcular la suma k =1 k , siendo m y n dos números
enteros positivos que se suponen dados.
37. Escriba los n primeros términos de la sucesión dada por
1
an = (1 + )n
n , siendo n un numero entero positivo dado.
38. Escribir un programa que imprima las n primeras líneas de pascal
(n se ingresa por teclado, además utilice las combinaciones para
calcular cada coeficiente)
1
11
121
1331
14641
39. Escribir un programa que halle los logaritmos de una base a otra
base, se conoce el número positivo X. la base a y la otra base b,
estos deben ser mayores que uno y diferente de uno. El programa
debe terminar hasta que se ingrese un valor X igual que 0
log a ( x)
log b ( x) =
log a (b)
Ft = w1 At -1 + w2 At -2 + ... + wn At -n
Donde
W1: Ponderación dada en la ocurrencia real para el periodo t-1
W2: Ponderación dada en la ocurrencia real para el periodo t-2
Wn: Ponderación dada en la ocurrencia real para el periodo t-n
n : Número total de periodos en el pronostico
Se debe cumplir que la suma total de las ponderaciones debe ser
igual a uno
n
A - Ftn
MAD = � t
i =1 n
Dónde:
N: La cantidad de periodos considerados
84. Elaborar un algoritmo para medir el error en los pronósticos,
( At - Ft )
2
n
RMSE = �
t =1 n
85. Elaborar un algoritmo para
calcular los errores de pronóstico en porcentajes, por el método
error porcentual absoluto (MAPE)
1 n At - Ft
MAPE = �
n t =1 At
86. Elaborar un algoritmo para calcular
la probabilidad según la distribución binomial
Px = ( nx ) p x q n- x
��
m
��
87. Elabore un algoritmo para calcular la combinación de un número ��
n
,
siendo m y n dos enteros positivos.
Miscelaneus
15. Subprogramas
La resolución de problemas complejos se facilita considerablemente si se dividen
en problemas más pequeños llamados subproblemas (Subprogramas). Las
herramientas usadas en la programación son las funciones y procedimientos
(subrutinas)
15.1. Procedimientos(Subprograma):
Llamados también subrutina, un procedimiento es un subprograma que
ejecuta un proceso específico, cuando se invoca el procedimiento, los pasos
que lo definen se ejecutan y a continuación se devuelve el control al programa
que le llamo
Declaración de un procedimiento
Fin
Donde
Nombre: Es el nombre del procedimiento a invocar
Parámetros formales: Tiene el mismo significado que en las funciones
Parámetros variables: En algunos lenguajes de programación está permitido
este tipo de declaración, para designar que ellos obtendrán resultados del
procedimiento en lugar de los valores actuales asociados a ellos.
Invocación a una función
(Llamar_a) nombre (lista de parámetros actuales)
Por ejemplo
Procedimiento división (dividendo, divisor, cociente, resto)
Inicio
Cociente dividendo/ divisor
Resto dividendo - cociente*divisor
Retorno
Fin
Algoritmo aritmética
Inicio
Leer M, N
Llamar_a división (M, N, P, Q)
Escribir p, Q
Fin
15.2. Funciones
Matemáticamente una función es una operación que tiene uno o más valores
llamados argumentos y produce un valor denominado resultado o valor de la
función para los argumentos dados[ CITATION Lui88 \l 3082 ]
Declaración de una función
x
f ( x )= 2
1+ x
Función fun(x)
Inicio
Funx/(1 + x^2)
Fin
Invocación de una función
Una función puede ser llamada solo mediante referencia de la forma
siguiente:
Variable de asignación nombre _ función (par1, par2,…)
Por ejemplo
F_x fun(x)
Procedimiento vs función
i. Un procedimiento es llamado desde el algoritmo o programa principal
mediante su nombre y una lista de parámetros actuales o bien con la
instrucción llamar. Al llamar el procedimiento se detiene
momentáneamente el programa que se estuviera realizando y el
control pasa al procedimiento llamado. Después que las acciones del
procedimiento se ejecutan, se regresa a la acción inmediatamente
siguiente a la que se llamó.
ii. Las funciones devuelven un valor, las subrutinas pueden devolver 0,1 o
más valores y en forma de la lista de parámetros
iii. El procedimiento se declara igual que la función, pero su nombre no
está asociado a ninguno de los resultados que obtiene
Inicio
Leer n
Fact factorial(n)
Escribir “el factorial de n es”, fact
Fin
Ejercicios
1. Diseñar un algoritmo que calcule el máximo común divisor de dos
números mediante el algoritmo de Euclides con el siguiente
procedimiento
a. Dividir el número mayor (A) por el menor (B). Si el resto de la
división es cero el numero B es el máximo común divisor
b. Si la división no es exacta, se divide el número menor (B) por el
resto de la división anterior
c. Se siguen los pasos anteriores hasta obtener un resto cero. El
último divisor es el mcd buscado
2. Para calcular el máximo común divisor (mcd) de dos números, se
recurre a una función específica definida con un programa con un
subprograma. Se desea calcular la salida del programa principal
con dos números A y B, cuyos valores son 15 y 10, es decir, el mcd
(A, B) y comprobar el método de paso de parámetros por valor
3. Realizar un algoritmo que permita ordenar tres números mediante
un procedimiento de intercambios de dos variables
4. Diseñar una función que calcule la media de tres números leídos del
teclado y poner un ejemplo de su aplicación
5. Realizar un procedimiento que realice la conversión de coordenadas
polares (r, ) a coordenadas cartesianas (x, y)
X = rcos()
Y = rseno()
6. Función que calcule xy, con x є R, y suponiendo que y es un valor
entero y > 0
7. Función que calcule xy, con x є R, y suponiendo que y es un valor
entero que puede ser positivo, negativo o cero
��
m
��
Función que calcule ��, siendo m y n dos enteros positivos. Puede
n
8.
hacer uso de las funciones que haya realizado con anterioridad para
calcular el factorial.
9. Función que calcule la suma de las componentes de un vector.
n
a
s = � hn
10. Función para calcular la suma h =1 h , siendo a un vector dado
Entero
Real
Estándar Carácter
Lógico
Datos simples
i A(i)
1 14.
0
2 12.
0
3 8.0
Subíndice o 4 7.0
5 8.4
0
6 8.2
0
7 8.1
5
8 7.2
5
Inicio
Suma 0
C0
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.1. Ejemplos resueltos
Del 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
S0
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
16.1.2.Ejercicios
1 n
var = �
n k =1
(vk - m ) 2
n-c ScError
CMerror =
C2 n-c
Error SCerror = �x 2 - � i
ki
n
X e
= �x
i =1
2
i
i =1
33. Elabore un algoritmo para hallar
la norma P=2 de un vector, para cuantificar el tamaño de un vector
n
�x
2
X P =2
= i
i =1
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 están en orden, se mantienen como están,
en caso contrario se intercambian entre sí.
A continuación 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:
Algoritmo
Función 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 límite hasta 2 hacer
Mayor Posmayor(j, tabla)
Aux Tabla [mayor]
Tabla [mayor] Tabla[j]
Tabla[j] Aux
Fin desde j
Fin
Método se Inserción
El método se basa en considerar una parte de la lista ya ordenando y situar
cada uno de los elementos restantes insertándolo 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
Método de Shell
Este método es una mejora del método de inserción directa que se utiliza
cuando el número de elementos a ordenar es grande se suele denominar
también ordenación por disminución de incrementos.
Pasos
Inicio
Leer A, B (A, B vectores de M y N elementos9
I1
J1
K1
Mientras i <= M y j <= N hacer
(seleccionar siguiente elemento de A o B y añadirlo en C)
Kk+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
Ejercicios Propuestos
34 5 45 6 1 6 23 90 4 10
30 50 4 3 10 2 20 9 14 15
12 0 54 30 100 21 2 9 1 5
12 0 54 30 100 21 2 8 11 15
11 10 54 30 101 20 2 9 1 5
30 5 14 13 10 12 20 9 14 15
Fila 1
Fila 2
Fila 3
Fila 4
Fila 5
Columna 1 Columna 5
Columna 2 Columna 4
Asignación en una arreglo de dos dimensiones
Columna 3
A (1,2) 10 se asigna el valor 10 en la posición i = 1 y j = 2 de arreglo
bidimensional A
A (5,6) 20 se asigna el valor 20 a la posición 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.
Ejemplo 1
Ejemplo 2
Para el optimista
ai { j j }
max a max v(ai , j ) + (1 - a ) min v(ai , j )
ai {
min a min v( ai , j ) + (1 - a ) max v( ai , j )
j j }
Para el pesimista
n
1
skj = � j
mxn
, cuyo elemento genérico viene dado por k =1 h
ki
Total SCfactor + Scerror n-1
m n 2
34. Elaborar un A2= ��aij
i =1 j =1
algoritmo para
desarrollar la norma columna suma
n
A = max �aij
1��
j n
i =1
35. Elaborar un algoritmo para
desarrollar la norma renglón suma
n
A = max �aij
1��
i n
j =1
36. Elaborar un algoritmo para determinar la
norma 2 o norma espectral para matrices
1
Donde A 2 = ( m max ) 2
t
A A
µmax=es el mayor eigenvalor
Misceláneos