Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Si …entonces…
Mientras …
Para …
AUTORA :
2010
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
INDICE
Agradecimiento
Introducción
Capítulo I : Fundamentos de programación 7
1.1. Generalidades sobre Algoritmos 7
1.1.1. Algoritmo 7
1.2.1. Narrada 9
1.2.2. Grafica 9
1.2.3. Pseudocódigo 12
______________________________________________________________________
2
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
5.1. Arreglo 53
5.7. Ordenación 60
5.8. Búsquedas 66
______________________________________________________________________
3
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
6.1. Módulo 79
6.4. Procedimientos 80
6.5. Funciones 80
6.11.Ejercicios de Funciones 85
Bibliografía 90
______________________________________________________________________
4
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Agradecimiento:
______________________________________________________________________
5
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Introducción
Este libro nace de la idea de servir como texto a los primeros ciclos de toda
Fundamentos de programación, nos muestra los conceptos básicos que debe tener un
nos explica la forma más simple de expresar un algoritmo; el capítulo III: Estructuras
controladores que van a manejar los bucles o ciclos; el capítulo IV: Arreglos o Vectores,
plasmado mi experiencia de docencia en este tema, de tal forma que permitirá aprender
______________________________________________________________________
6
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
7
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
1.1.1. Algoritmo.-
resolver problemas.
tener ambigüedad.
______________________________________________________________________
8
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
A. Algoritmo eficiente
B. Algoritmo Valido
C. Algoritmo Optimo
programador.
______________________________________________________________________
9
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
10
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
1.2.1. Narrada :
- Ir al cine
- Comprar la entrada
- Ver la película
- Regresar a casa
1.2.2. Grafica:
A. Fórmulas :
expresar en formulas.
Ejemplo :
X2= -b - b2 – 4 ac) / 2a
______________________________________________________________________
11
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
- Leer L
- Calcular A = L*L
- Escribir A
C. Diagrama de Flujo
símbolos.
Símbolos:
a) Entrada/Salida
b) Operaciones
c) Flujo de datos
d) Condicional
e) Otros
______________________________________________________________________
12
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
DIAGRAMA DESCRIPCIÓN
Multidocumento.
Datos almacenados
Disco magnético.
Pantalla
las operaciones.
Conector dentro de página. Representa la continuidad del diagrama
en otra página.
Ejemplo: Elabore un DF para calcular la suma de los N primeros números
naturales
INICIO
Lea N
Suma = N * (N+1)/2
______________________________________________________________________
Escriba Suma
13
FIN
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
1.2.3. Pseudocódigo
1.- Inicio
2.- Leer L
4.- Escribir A
5.- Fin
denominan datos.
______________________________________________________________________
14
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Todos los datos tienen un tipo asociados con ellos que nos servirá para poder
la edad de una persona está tiene que estar con números enteros, etc..
A. Tipos Numéricos
Dentro de estos tipos se puede hacer mención de los tipos enteros, reales o de
B. Tipos Carácter
ejemplo: a A & * , etc.. El otro grupo de caracteres son los strings o cadenas
C. Tipos Lógicos
Los tipos lógicos solamente pueden tomar los valores verdadero o falso.
______________________________________________________________________
15
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Ejemplo :
A= 30
B= 40
PI = 3.1416
Ejemplo :
A = 30
B = 20
C= 40
B= A+ C = 70
Ejemplo :
A = 80
B = 20
C= 40
D= 2
______________________________________________________________________
16
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
A + B – C * D = 20
1.5.Operaciones Combinadas
constantes.
C. Operadores Aritméticos.-
DESCRIPCION OPERADOR
SUMA +
RESTA -
MULTIPLICACIÓN *
DIVISIÓN /
EXPONENCIACION
DIVISIÓN ENTERA DIV
MODULO MOD
REGLAS DE PRIORIDAD.-
Se resuelve :
______________________________________________________________________
17
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
18
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
2.1.Estructura Secuencial
D.F. N.S.
Acciones Acción
Acción
Acciones
…
Pseudocódigo en Inglés
Pseudocódigo en Castellano <Acción S1>
<Acción S1> <Acción S2>
<Acción S2> ...
... <Acción Sn>
<Acción Sn>
______________________________________________________________________
19
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
20
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Area=(b*h)/2
Escriba "El área del triángulo es: ", Area
FIN
______________________________________________________________________
21
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
22
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
23
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
D.F. N.S.
¿Condición?
Verdad Falsa
Falsa
Condici
ón
Verdadera
Acción
Acciones
Pseudocódigo en Inglés
Pseudocódigo en Castellano If <Condición> Then
Si <Condición> entonces <Acción S1>
<Acción S1> <Acción S2>
<Acción S2> ...
... <Acción Sn>
<Acción Sn>
EndIf
Fin _ Si
______________________________________________________________________
24
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
D.F. N.S.
Si No
¿Condición?
Verdad
Falsa
Condici
ón
Acción S1 Acción S2
Acción S1 Acción S2
______________________________________________________________________
25
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
26
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
D.F.
No Si
Condici
ón
Condici Condici
ón ón
Acción S1 Acción S2
Pseudocódigo
Si <Condición> entonces
Si <Condición> entonces
<Acción S1>
Si_no
<Acción S2>
Fin _ Si
Si_no
Si <Condición> entonces
<Acción S1>
Si_no
<Acción S2>
Fin _ Si
Fin _ Si
…
______________________________________________________________________
27
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
D.F.
Condició
n
N-S
Condición
n=1 2 3 n otros
S1 S2 S3 Sn SX
Forma General
Casos Variable
Op1: Acción(es)
acción S1
Op2: Acción(es)
acción S2
…
OpN: acción
______________________________________________________________________
28
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
acción SN
Fin-casos
3. Hacer un algoritmo para que calcule el pago que hacen un grupo de personas
para ver una película teniendo en cuenta que si el grupo es menor de 8 personas
______________________________________________________________________
29
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
el pago es de 1.5 soles por persona y para grupos de 8 personas o más el pago es
0.5 soles por persona.
INICIO
Var : Num: Entero
Pago: Real
Lea Num
Si (Num>=8) entonces
Pago=0.5*Num
Sino
Pago=1.5*Num
Fin si
Escriba pago
FIN
5. Hacer un algoritmo que permita Lea la edad de una persona y determinar a qué
etapa de vida pertenece.
INICIO
______________________________________________________________________
30
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
31
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Lea ht, ph
Si (ht >40) entonces
he = ht - 40
Si (he > 8) entonces
Het =he - 8
phe =ph * 2 * 8 + ph * 3 * het
Sino
Phe = ph * 2 * he
Fin_si
Pt =ph * 40 + phe
Sino
Pt = ph * ht
Fin_si
Escriba pt
FIN
______________________________________________________________________
32
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
33
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
34
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
10. Que calcule el monto total de una llamada, si se sabe que una llamada a
celular cuesta 1.0 por los tres primeros minutos o menos, cada minuto
adicional le cuesta 0.5 más.
11. Que calcule la nota final del curso de Algoritmos , si se sabe :
- 3 PC (pc1, pc2, pc3) 35 %
- 4 T (t1, t2, t3, t4) 15 %
- 1 EP 25%
- 1 EF 25%
Al final diga si el alumno esta “Aprobado” o rendirá “Examen de
aplazados”
12. Que calcule el monto total de las compras, sabiendo que :
Producto Precio Cantidad comprada
Res 10.00 X
Pollo 7.00 Y
Pescado 5.00 Z
Si la compra total es mayor o igual a 50 entonces tendrá un descuento del
10%, en caso contrario que muestre un mensaje “Gracias por su compra”.
13. Que calcule el sueldo final de un trabajador si se sabe que su sueldo se
calcula en base a las horas trabajadas y el pago por hora. Todos los
trabajadores reciben un aumento del 10% de su sueldo.
14. Que encuentre el mayor de 3 números
15. Que permita resolver una ecuación de segundo grado A x2 + Bx + C = 0
16. Que ordene de mayor a menor 3 números
17. Que determine si un número (X) es positivo, cero o negativo
18. Que dadas 3 longitudes, compruebe si pueden formar un triangulo y luego
clasifique el triángulo según sus lados.
19. Que calcule el total de la compra de un producto (T), que se encuentra en
función de la cantidad total a comprar ( C ) y el precio del producto ( P), si
se sabe que compramos al por mayor 1000 a más productos nos descuentan
el 50 %, si compramos 500 a más productos nos descuentan el 30 %, si
compramos 250 a más productos nos descuentan el 10 % de la compra y
para el resto no hay descuento.
______________________________________________________________________
35
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Y= 3x+36 si x <= 11
2
Y=x - 10 si 11 < x <= 33
Y=f(x)=
Y=x+6 si 33 < x <= 64
Y=0 para los demás valores de x
Y=f(x)=
23. Tal que dado un número de tipo entero (N) y operador (X), obtenga los
resultados de la siguiente expresión :
N sen 30 si X=1
Y= N cos 30 si X=2
N tang 30 si X=3
______________________________________________________________________
36
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
37
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
38
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
le agrega 5 por cada kilómetro por hora excedido de 60, en caso contrario
imprimir el mensaje “Velocidad Permitida”.
41. Que lea un número entero y mostrar si es o no múltiplo de 9.
42. Que lea un número y mostrar si es divisor de 3.
43. Que lea un número y determinar si el número es inferior a 5, o es como
mínimo 5 pero inferior a 15 o es superior a 15.
44. Que lea un número y determinar si es par y positivo a la vez.
45. Que lea un carácter y determinar si el carácter leído es un operador
aritmético.
46. Que lea una letra y determinar si es una vocal.
47. Que lea 2 notas de un alumno y publicar la peor nota.
48. Que lea dos temperaturas, imprimir “Hace Frio” si la temperatura es inferior
a 15º, en caso contrario imprimir “Hace Calor”.
49. Que dado el sexo de una persona (representado por “M” masculino o “F”
femenino. Imprimir “Sexo Masculino” en caso de ser varón o “Sexo
Femenino” en caso de ser mujer.
50. Que dado un sueldo de un trabajador, calcular un incremento del 55%, si el
sueldo es inferior a 450, en caso contrario incrementar en 25%. Debe
mostrar el incremento y el nuevo sueldo.
51. Un conductor de un vehículo se desplaza a N k/h, si sobrepasa el límite que
es de 60 k/h entonces se le aplica una multa que es de N soles más 2.5 por
cada kilómetro excedido en caso contrario se le dará un mensaje de
felicitación por respetar las reglas de tránsito.
52. Que dadas tres longitudes, comprobar si forman un triangulo o no (cada
lado tiene que ser menor que de las otras dos) calcular su área, en caso
contrario indicar que no es triángulo.
53. Que dada las horas trabajadas de 1 persona, calcular el monto a cobrar si las
horas son como máximo 20 se le cancela a 5.5 cada hora en caso contrario
por cada hora excedida se le incrementa 50% del precio normal?
54. Que dado el monto de una compra calcular el descuento considerando lo
siguiente :
-Descuento es 10% si el monto es mayor a 100 soles
______________________________________________________________________
39
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
40
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
41
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
42
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Mientras)
evalúa la condición. Esta es una estructura que repetirá un proceso durante “N”
veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de
una condición que es la que debe cumplirse para que se siga ejecutando. Cuando
Pseudocódigo en inglés
O bien
______________________________________________________________________
43
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
constante.
Existen muchas situaciones en las que se desea que un bucle se ejecute al menos
______________________________________________________________________
44
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
D.F.
Pseudocódigo en castellano
Acciones Repetir
<Acciones>
.
.
No
Hasta_que <condición>
Condición
Pseudocódigo en inglés
Si repeat
<acciones>
.
N.S. .
Until <condición>
Este tipo de estructura ejecuta las acciones del cuerpo del bucle un número
______________________________________________________________________
45
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
D.F. N.S.
Fin_desde
Proceso
Pseudocódigo en castellano
Variables
b locales y globales
c)
Las variables utilizadas en los programas principales y subprogramas se
______________________________________________________________________
46
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
47
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Fin_Mientras
calcular p= suma/c
Escriba p
FIN
4. Que lea el nombre y sus 3 calificaciones para cada alumno. Debe calcular el
promedio para cada uno y después determinar si el alumno es aprobado o no; se
requiere un promedio de al menos 12 para aprobar. La primera parte de la salida
en el papel debe ser el nombre del alumno, 3 calificaciones, promedio y un
mensaje (aprobado ó desaprobado). La segunda parte de salida en el papel debe
dar el número de alumnos que aprobaron y el número de los que obtuvieron al
menos 18 de nota.
INICIO
Var : N1, N2, N3, I, Promedio: Real
Naa, Na18: Entero
Nombre: String
Lea i, N1, N2, N3, Nombre
Naa=0
Na18=0
Desde i=1 hasta i<=40 hacer
Lea nombre, N1, N2, N3
______________________________________________________________________
48
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Promedio:(N1+N2+N3)/3
Si (Promedio>=12) Entonces
Escriba “Aprobado”, Nombre, N1, N2, N3, promedio
Naa=Naa+1
Sino
Escriba “Desaprobado”, Nombre, N1, N2, N3, Promedio
Si (Promedio>18) Entonces
Na18<=Na18+1
Fin_Si
Fin_Si
Fin Desde
Escriba Naa, Na18
FIN
______________________________________________________________________
49
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Si (Mod(I)=0) entonces
sum_p=sum_p+1
Escriba “Positivo” ,I
Sino
sum_n=Sum_n+1
Fin_Si
Escriba “Negativo” ,I
Fin_Desde
Escriba “Los Positivos son”,sum_p
Escriba “Los Negativos son”,sum_n
FIN
______________________________________________________________________
50
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
51
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
52
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
53
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
34. Se quiere calcular la deuda actual de 30 alumnos, para ello debe solicitar los
datos del alumno, el monto adeudado. A esa deuda se le cargará un
porcentaje de mora o recargo dependiendo de la facultad a la que pertenece.
Sistemas 15%
Contabilidad 12.4
%
Derecho 16%
Administració 14.5
n %
Civil 19%
Deberá mostrar el código del alumno, nombres y apellidos, su especialidad,
semestre, deuda y monto a pagar (deuda + recargo).
35. Se tiene una caja de ahorros, el programa deberá solicitar los datos del
cliente y el monto a depositar. Se desea saber si hay más hombres o mujeres
ahorrando, el monto mayor de ahorro con nombre y procedencia, la suma
mayor total de ahorros de hombres o mujeres, edad menor y el promedio de
ahorro total.
______________________________________________________________________
54
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
55
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
almacena bajo el mismo nombre (variable) a una colección de datos del mismo
tipo.
5.3.Arreglo Unidimensional
puede estar compuesto de todos sus elementos de tipo cadena, entero, etc.
del vector se usa el nombre del mismo, seguido del índice (entre corchetes), el
Vec[x]
Donde:
______________________________________________________________________
56
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Vec[1] 7
8
Vec[2] 9
Vec[3] 10
El subíndice o índice de Vec[4]
un elemento [1,2,...i,n] designa su posición en la
un problema son:
Asignación
Lectura/escritura
Ordenación
Búsqueda.
______________________________________________________________________
57
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
según)
Leer (A[i])
A[1]5
A[2]4
A[3]3
A[4]6
A[5]10
For i=1 to 5 do
A[i]2
End for
______________________________________________________________________
58
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Ejemplo
del vector R
INICIO
leer (R[j])
fin_desde
FIN
o también
j1
leer (R[j])
______________________________________________________________________
59
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
jj+1
fin_mientras
o también
j1
repetir
leer (R[j])
jj+1
hasta_que j>30
Actualización de un vector :
elementales:
Añadir elementos
Insertar elementos
Borrar elementos
a) Añadir datos:
Para que esto se pueda hacer es necesario que si actualmente el arreglo tiene
<nom_array>[K+1] valor
______________________________________________________________________
60
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
b) Inserción de datos:
necesario desplazar todos los elementos situados a la derecha del que vamos
entre ellos.
C E F J M O
A[I+1] A[I]
Fin desde
A[K] valor
c) Borrar datos:
final del array, no hay ningún problema, simplemente si el tamaño del array
era N, ahora hay que considerar que el tamaño del array es N-1.
______________________________________________________________________
61
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
desplazar todos los elementos situados a la derecha del que quiero borrar una
C E F J M O
Borrar J.
A[I] A[I+1]
Fin desde
como N N-1.
5.5.Arreglo Bidimensional
Constituyen
bidimensional
______________________________________________________________________
62
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
5.6.Arrays Multidimensionales
concreto del arreglo utilizaremos N índices, cada uno de los cuales referenciará a
Nom_array [I1,I2,I3,IN]
5.7.Ordenación
criterio.
______________________________________________________________________
63
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Método de la burbuja.-
últimas posiciones.
Con esta primera pasada lograremos que quede ordenado el último elemento
del array.
está ordenado.
Ordenado: booleano
Var I, J: entero
Aux: <tipo>
Inicio
Ordenado=falso
I[1]
Ordenado=verdadero
______________________________________________________________________
64
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
J[I]
Desde j = 1 hasta n - 1
Ordenado= falso
Fin_Si
Fin_Desde
I =I + 1
Fin_Mientras
Fin
Método de inserción.-
Se supone que se tiene un segmento inicial del arreglo ordenado, y hay que ir
arreglo.
segmento ordenado.
hasta que se encuentre uno menor o igual al elemento que queremos colocar
posición.
______________________________________________________________________
65
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Para arrancar este método se parte de que el segmento ordenado inicial este
es la primera posición.
Var I, J: entero
Aux: <tipo>
Inicio
Desde i = 2 hasta N
Aux=datos [i]
J= i – 1
Datos[j + 1]=datos[j]
J =j – 1
Fin mientras
Datos [j + 1]=aux
Fin desde
Fin
Método de la selección.-
______________________________________________________________________
66
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Aux: <tipo>
Inicio
Aux= datos[i]
Pos= i
pos =j
Aux =datos[j]
Fin si
Fin desde
Datos[pos] =datos[i]
Datos[i]= aux
Fin desde
______________________________________________________________________
67
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Fin
separado recursivamente.
Para ello, se elige un elemento de la lista al que llamamos pivote, tal que
<tipo>)
Inicio
sublistas (ini,fin,pivote,datos)
Quickshort (ini,pivote-1,datos)
Quickshort (pivote+1,fin,datos)
Fin si
Fin
Datos:array[1..N]de <tipo>)
Inicio
Pivote ini
Aux datos[ini]
______________________________________________________________________
68
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Aux2 =datos[i]
Datos[i] =datos[pivote]
Datos[pivote] =aux2
Fin si
Fin desde
Datos[ini] =datos[pivote]
Datos[pivote]= aux
Fin
5.8.Búsquedas
Dado un determinado valor, se trata de ver si existe un elemento con ese valor en
Búsqueda secuencial:
Var : I: entero
Inicio
______________________________________________________________________
69
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
I =1
I =I + 1
Fin mientras
Fin si
Fin
hacemos es añadir al final del array el elemento que quiero buscar por lo que
siempre lo encontrare.
<tipo>)
Var I: entero
Inicio
Datos[n+1] elem
I= 1
______________________________________________________________________
70
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
I =i+1
Fin mientras
Si (i <> n+1)
Sino
Fin si
Fin
coincide con él, sino coincide averiguamos donde debería estar el elemento
ini:entero;
Fin: entero)
Inicio
______________________________________________________________________
71
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Fin si
Fin mientras
Fin si
Fin
fichero.
direccionamiento:
relativa si es un fichero).
______________________________________________________________________
72
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
igual al número de cifras del tamaño del array, luego sumarlas y coger las
cifras centrales.
más.
que de cada posición del array salga un puntero a una lista enlazada
______________________________________________________________________
73
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
5.9.Ejercicios de Arreglos
INICIO
Tipo
Array[1..30] de entero
desde j1 hasta 30 hacer
lea (R[j])
fin_desde
Desde j1 hasta 30 hacer
Escriba (R[j])
Fin_desde
FIN
INICIO
Arreglos:
Calificaciones: real de [5] renglones [4] columnas
Variables:
num_alum, parcial : entero = 0
acum_cal : real = 0
acum_cal = 0
______________________________________________________________________
74
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Fin para
calificaciones[num_alum][parcial] = acum_cal / 3
num_alum = num_alum + 1
Fin para
FIN
INICIO
NOTAS[100] como Entero
SUMA=A=MAYOR=0, MENOR=9999
Ingreso de Datos
Lea N
Para i=1 hasta N
Lea NOTAS[i]
Si NOTAS[i]<MENOR
entonces MENOR=NOTAS[i]
Si NOTAS[i]>MAYOR
entonces MAYOR=NOTAS[i]
SUMA=SUMA+ NOTAS[i]
Si NOTAS[i]>=10.5
______________________________________________________________________
75
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
entonces A=A+1
Fin Para
D=N-A
PROM=SUMA/N
Impresión de resultados
Escriba MAYOR, MENOR, D, A, PROM
FIN
INICIO
NOTAS[100] como Entero
ALUMNOS[100], DESAP[100] como Cadena
SUMA=MAYOR=0, MENOR=9999, j=1
Ingreso de Datos
Lea N
Para i=1 hasta N
Lea ALUMNOS[i], NOTAS[i]
Escriba ALUMNOS[i], NOTAS[i]
Si NOTAS[i]<MENOR
entonces
Inicio
MENOR=NOTAS[i]
MEN_ALUM=ALUMNOS[i]
Final
Si NOTAS[i]>MAYOR
______________________________________________________________________
76
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
entonces
Inicio
MAYOR=NOTAS[i]
MAY_ALUM=ALUMNOS[i]
Final
SUMA=SUMA+ NOTAS[i]
Si NOTAS[i]<10.5
entonces
Inicio
DESAP[j]=ALUMNOS[i]
j=j+1
Final
Fin Para
D=j-1
A=N-D
PROM=SUMA/N
Impresión de resultados
Escriba MAYOR, MAY_ALUM, MENOR, MEN_ALUM
Para i=1 hasta D
Escriba DESAP[i]
Fin Para
FIN
INICIO
nb, p, i : Entero
r : Cadena
n [7] : Entero
Lea n [O] , n [1] , n [2] , n [3] , n [4] , n [ 5] , n [ 6] , nb
r = "NO EXISTE" P = -1
______________________________________________________________________
77
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
INICIO
tmp, i, j, LI, LS : Entero
n[4] : Entero
Lea n [O] , n [1] , n [2] , n [3]
LI = O
LS = 3
Para i=LI Hasta LS-l i =i+1
Para j=LI Hasta LS-l j=j+1
Si n[j]>n[j+l] Entonces
tmp = n[j]
n[j] =n[j+1]
n[j+l] = tmp
Fin Si
Fin Para
Fin Para
Escriba n[O],n[1],n[2],n[3]
FIN
______________________________________________________________________
78
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
79
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
9. Llenar dos vectores a y b de 45 elementos cada uno, sumar el elemento uno del
vector a con el elemento uno del vector b y así sucesivamente hasta 45,
almacenar el resultado en un vector c, e imprimir el vector resultante.
10. Calcular el promedio de n valores almacenados en un vector. determinar
además cuantos son menor que el promedio, imprimir el promedio, el número
de datos menores que el promedio y una lista de valores menores que el
promedio.
11. Hacer un algoritmo que lea un número cualquiera y lo busque en el vector x, el
cual tiene almacenados 80 elementos. escribir la posición donde se encuentra
almacenado el número en el vector o el mensaje “no” si no lo encuentra.
búsqueda secuencial.
12. Elabore un algoritmo que permita ingresar los pesos de n personas. se desea
mostrar el peso mayor, el número total de pesos iguales al promedio de los
pesos ingresados y mostrar el arreglo ordenado.
13. Elabore un algoritmo que permita ingresar las edades a una matriz y muestre el
menor valor de las edades, su ubicación y que cuente cuantos valores son
iguales al promedio de las edades.
14. Hacer un algoritmo que llene una matriz de m * n y que imprima cuantos de los
números almacenados son ceros, cuántos son positivos y cuántos son negativos.
15. Se tiene almacenada la matriz m x n la cuál contiene la información sobre los
promedios finales del curso de introducción a los algoritmos. Imprima:
-Cantidad de alumnos que aprobaron el curso.
-Cantidad de alumnos que darán sustitutorio
-El número de los alumnos que hayan obtenido la máxima calificación
final.
______________________________________________________________________
80
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
81
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
6.1.Módulo
algoritmo con el fin de ejecutar una tarea específica y puede ser llamada o
efectuar con mayor facilidad, ya que cada módulo se puede crear aisladamente y
módulo sin afectar a los demás Las tareas, subalgoritmos, sólo se escriban una
______________________________________________________________________
82
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
6.4. Procedimientos
llaman variables locales. La casilla de memoria para estas variables se crea cada
vez que el procedimiento es llamado y se borran al salir del mismo. Así, las
6.5. Funciones
radica en que la función se usa para devolver un solo valor de un tipo de dato
nombre en una expresión, como si fuera una variable ordinaria de tipo simple.
usan cuando se trata de hacer algún cálculo que será requerido en varias
______________________________________________________________________
83
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
parámetros reales debe ser el mismo que el número de los parámetros formales
y los tipos de los parámetros reales deben coincidir con los tipos de los
parámetro real de tipo entero con un parámetro formal por valor de tipo real.
expresión.
debe asociar un tipo. Por tanto, la cabecera de una función debe incluir un
ningún tipo.
______________________________________________________________________
84
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
de salida.
definición de la función.
Sintaxis:
Inicio
<acciones>
retorno <valor>
fin <nombre_funcion>
______________________________________________________________________
85
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
- En las variables locales se declaran las variables que se pueden usar dentro
de la función.
- Entre las acciones tendrá que existir entre ellas una del tipo retorno <valor>.
tipo de datos que devuelve a la función, este valor por tanto tiene que ser del
mismo tipo que el tipo de datos que devuelve la función, que es el que
otro subprograma.
______________________________________________________________________
86
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
derecha.
pudiera ir colocado cualquier valor del tipo de datos que devuelve la función,
esto se debe a que el valor que devuelve una función está asociado a su
nombre.
______________________________________________________________________
87
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Algoritmo serie_fibonacci
I, n: entero
Escribir “Introduce un número”
Lea n
Desde i=1 hasta n
Escriba “La serie de fibonacci de “i” es “fibonacci (i)
Fin desde
Fin
Algoritmo combinatorio
M,n: entero
Inicio
______________________________________________________________________
88
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Repetir
Escriba “Introduce el valor de M y N”
Lea m,n
Hasta m >n
Escribir “El combinatorio es “factorial (m) div (factorial(n)*factorial(m-n))
Fin
______________________________________________________________________
89
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
4. Elabore un programa que utilice una función que muestre el menor de dos
números:
5. Elabore un programa que utilice una función que muestre el máximo de tres
números
______________________________________________________________________
90
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
91
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
______________________________________________________________________
92
Universidad Nacional de Piura Elaborado por:
Facultad de Ingeniería Industrial Ing. Carmen Infante Saavedra
______________________________________________________________________
Bibliografía
Baltistutti,O. 1995 “Metodología de la Programación” Alfa Omega Grupo
Editor.
Hall, Mexico.
objetos”
proyecto de Aplicación”.
Madrid.
Linusa. México.
______________________________________________________________________
93