Professional Documents
Culture Documents
AUTORA :
Ing. CARMEN LUCILA INFANTE SAAVEDRA
2010
INDICE
Agradecimiento
Introduccin
Captulo I : Fundamentos de programacin
1.1.1. Algoritmo
1.2.1. Narrada
1.2.2. Grafica
1.2.3. Pseudocdigo
12
13
14
15
18
18
18
20
______________________________________________________________________
2
22
22
23
24
25
26
30
39
39
40
41
43
47
53
5.1. Arreglo
53
53
53
54
59
60
5.7. Ordenacin
60
5.8. Bsquedas
66
71
76
______________________________________________________________________
3
78
6.1. Mdulo
79
79
79
6.4. Procedimientos
80
6.5. Funciones
80
80
81
81
82
82
89
89
Bibliografa
90
______________________________________________________________________
4
Agradecimiento:
Quiero manifestar mi ms
profundo agradecimiento a las
personas que me han apoyado
en la realizacin de este material.
El autor
______________________________________________________________________
5
Introduccin
Este libro nace de la idea de servir como texto a los primeros ciclos de toda carrera
profesional de Ingeniera, ya que los estudiantes requieren entender, aprender y dominar los
fundamentos de programacin para resolver problemas que permitan automatizar procesos
usando la computadora.
El presente libro est formado por los siguientes captulos:
captulo I:
Fundamentos de programacin, nos muestra los conceptos bsicos que debe tener un
alumnos para aprender a elaborar un algoritmo; el captulo II: Estructuras de secuencia, nos
explica la forma ms simple de expresar un algoritmo; el captulo III: Estructuras de
decisin, nos explica la forma como elaborar un algoritmo teniendo en cuenta condiciones
simples, dobles, anidadas y mltiples; el captulo III: Estructuras repetitivas, nos explica la
forma como elaborar un algoritmo teniendo en cuenta controladores que van a manejar los
bucles o ciclos; el captulo IV: Arreglos o Vectores, nos explica la forma como elaborar un
algoritmo manejando la informacin de manera unidimensional, bidimensional y
multidimensional; el captulo V: Procedimientos y Funciones nos explica la forma como
elaborar un algoritmo manejando la informacin de manera ms eficiente a travs de
pequeos subprogramas.
La programacin requiere especiales destrezas y para conseguir este objetivo he
plasmado mi experiencia de docencia en este tema, de tal forma que permitir aprender
conceptos bsicos de fundamentos de programacin y dominar las diferentes estructuras de
programacin resolviendo los ejercicios resueltos y propuestos.
______________________________________________________________________
6
______________________________________________________________________
7
1.1.2. Origen de la palabra Algoritmo.La palabra algoritmo proviene del nombre del matemtico, astrnomo y
gegrafo (Musulman) Persa llamado Abu Abdullah Muhammad bin Musa AlKhwarizmi que vivi entre los siglos VIII y IX .
1.1.3. Importancia de un algoritmo.Es importante el estudio y conocimiento de lo que hoy conocemos como
Algoritmos Computacionales, que desde su aparicin hasta nuestros das es, y
seguir siendo; vital para el desarrollo de aplicaciones para computadoras, y el
manejo y dominio de la lgica de programacin para resolver problemas.
1.1.4. Caractersticas de un algoritmo. Preciso: Debe indicar el orden de realizacin en cada paso y no puede tener
ambigedad.
Definido: Si se sigue dos veces, obtiene el mismo resultado cada vez
Finito: Tiene fin; un nmero determinado de pasos.
______________________________________________________________________
8
B. Algoritmo Valido
Un algoritmo es vlido cuando carece de errores.
C. Algoritmo Optimo
Un algoritmo es optimo si es el ms eficiente posible y no tiene errores. La
bsqueda de este algoritmo es el objetivo prioritario del programador.
______________________________________________________________________
9
- Ir al cine
- Comprar la entrada
- Ver la pelcula
- Regresar a casa
1.2.2. Grafica:
A. Frmulas :
-
Ejemplo :
La frmula para resolver una ecuacin de segundo grado
______________________________________________________________________
10
- Leer
- Calcular
A = L*L
- Escribir A
C. Diagrama de Flujo
-
______________________________________________________________________
11
DIAGRAMA
DESCRIPCIN
Establece el INICIO y el FIN.
Es un Terminal, puede representar el inicio o el final.
Multidocumento.
Datos almacenados
Disco magntico.
Pantalla
______________________________________________________________________
12
INICIO
Lea N
Suma = N * (N+1)/2
Escriba Suma
FIN
Fin
1.2.3. Pseudocdigo
Es un mtodo muy sencillo y comnmente utilizado para representar un
algoritmo por su sencillez y su parecido al lenguaje humano. Resulta fcil
llevarlo a cualquier lenguaje de programacin. Se puede manejar muy bien la
lgica y estructuras de control de un algoritmo.
1.-
Inicio
2.-
Leer
3.-
Calcular
4.-
Escribir A
5.-
Fin
L
A = L*L
______________________________________________________________________
13
B. Tipos Carcter
Los tipos carcter se dividen tambin en caracteres ASCII, como por ejemplo: a
A & * , etc.. El otro grupo de caracteres son los strings o cadenas de caracteres,
como por ejemplo: "Hola Mundo".
C. Tipos Lgicos
Los tipos lgicos solamente pueden tomar los valores verdadero o falso.
______________________________________________________________________
14
Ejemplo :
A= 30
B= 40
PI = 3.1416
Ejemplo :
A = 30
B = 20
C= 40
B= A+ C = 70
Ejemplo :
A = 80
B = 20
______________________________________________________________________
15
RESTA
MULTIPLICACIN
DIVISIN
EXPONENCIACION
DIVISIN ENTERA
DIV
MODULO
Ejemplo :
OPERADOR
19 DIV 6 = 3
MOD
19 MOD 6 = 1
4.- * , /
2.- el parntesis
6.-+, -
______________________________________________________________________
16
______________________________________________________________________
17
D.F.
N.S.
Accin
Acciones
Accin
Acciones
Pseudocdigo
<Accin
<Accin
...
<Accin
en Castellano
S1>
S2>
Sn>
Pseudocdigo en Ingls
<Accin S1>
<Accin S2>
...
<Accin Sn>
Producto: Real
R, rea, L: Real
pi =3.1416
Lea R
Area = pi * R ^2
L= 2 * pi * R
Escriba Area, L
FIN
4. Hacer un algoritmo para calcular el rea de un triangulo
INICIO
Var:
h, b, Area: Real
Lea h,b
Area=(b*h)/2
Escriba "El rea del tringulo es: ", Area
FIN
______________________________________________________________________
19
V = (PI * r2) * h
independientemente
13. Que lea segundos
simultneamente
14. Una institucin benfica europea ha recibido tres donaciones en soles, dlares y
marcos. La donacin ser repartida en tres rubros: 60% para la implementacin
de un centro de salud, 40% para un comedor de nios y el resto para gastos
administrativos. Disee un algoritmo que determine el monto en euros que le
______________________________________________________________________
20
______________________________________________________________________
21
______________________________________________________________________
22
D.F.
N.S.
Condicin?
Condicin
Verdadera
Falsa
Verdad
Falsa
Accin
Acciones
Pseudocdigo en Castellano
Si <Condicin> entonces
<Accin S1>
<Accin S2>
...
<Accin Sn>
Fin _ Si
Pseudocdigo en Ingls
If <Condicin> Then
<Accin S1>
<Accin S2>
...
<Accin Sn>
EndIf
______________________________________________________________________
23
D.F.
N.S.
Si
No
Verdad
Condicin?
Falsa
Condicin
Accin S1
Accin S1
Pseudocdigo en Castellano
Si <Condicin> entonces
<Accin S1>
Si_no
<Accin S2>
Fin _ Si
Accin S2
Accin S2
Pseudocdigo en Ingls
If <Condicin> Then
<Accin S1>
else
<Accin S2>
EndIf
______________________________________________________________________
24
Si
Condicin
Condicin
Accin S1
Condicin
Accin S2
Pseudocdigo
Si <Condicin> entonces
Si <Condicin> entonces
<Accin S1>
Si_no
<Accin S2>
Fin _ Si
Si_no
Si <Condicin> entonces
<Accin S1>
Si_no
<Accin S2>
Fin _ Si
Fin _ Si
______________________________________________________________________
25
D.F.
Condicin
Accin S1
Accin S2
Accin S3
.....
Accin Sn
N-S
Condicin
n=1
S1
otros
S2
S3
Sn
SX
Forma General
Casos Variable
Op1: Accin(es)
accin S1
Op2: Accin(es)
accin S2
OpN: accin
accin SN
Fin-casos
______________________________________________________________________
26
cal: Real
Lea cal
Si cal > 10.5 entonces
Escriba "aprobado"
Fin_si
FIN
2. Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su
promedio de tres calificaciones es mayor o igual a 10.5; reprueba en caso contrario.
INICIO
Var: calif1, calif2, calif3, prom : Real
Lea calif1, calif2, calif3
prom = (calif1 + calif2 + calif3)/3
Si (prom >= 10.5) entonces
Escriba alumno aprobado
si no
Escriba alumno reprobado
Fin-si
FIN
3. Hacer un algoritmo para que calcule el pago que hacen un grupo de personas para
ver una pelcula teniendo en cuenta que si el grupo es menor de 8 personas el pago
es de 1.5 soles por persona y para grupos de 8 personas o ms el pago es 0.5 soles
por persona.
INICIO
Var :
Num: Entero
Pago: Real
Lea Num
______________________________________________________________________
27
______________________________________________________________________
29
______________________________________________________________________
30
Costo por da
Neumona
S/. 25
Tuberculosis
S/. 16
ETS
S/. 20
Sida
S/. 32
______________________________________________________________________
31
35 %
15 %
- 1 EP
25%
- 1 EF
25%
Precio
Cantidad comprada
Res
10.00
Pollo
7.00
Pescado
5.00
Descuento ( D )
10%
20%
30%
Y=f(x)=
Y= 3x+36
si
x <= 11
Y=x2 - 10
si
11 < x <= 33
Y=x+6
si
33 < x <= 64
Y=0
OPERACION
R=A+B
R=A - B
R=A*C
R=A / C
Otros
23. Tal que dado un nmero de tipo entero (N) y operador (X), obtenga los
resultados de la siguiente expresin :
Y=
N sen 30
si X=1
N cos 30
si X=2
N tang 30
si X=3
x2 + 5
si OP = 1
x2 + 7x + 1
si OP = 2
x+9
si OP = 3
si OP = 4
25. Evaluar las siguientes alternativas y mostrar el descuento que le toca por
producto y categora:
______________________________________________________________________
33
Tipo de Artculo
A
E: Excelente
40
30
20
B: Bueno
30
20
10
R: Regular
20
10
M: Malo
______________________________________________________________________
35
Sindicalizado 20%
De confianza 10%
Alto Directivo 5%
______________________________________________________________________
37
Ejecutivo 0%
______________________________________________________________________
38
______________________________________________________________________
39
Pseudocdigo en castellano
D.F.
No
Condicin
Si
Acciones
N.S.
Mientras
Condicin
While condicin Do
<Acciones>
.
.
Endwhile
O bien
Acciones
doWhile condicin
<acciones>
.
.
End Do
______________________________________________________________________
40
______________________________________________________________________
41
D.F.
Pseudocdigo en castellano
Acciones
Condicin
Repetir
No
<Acciones>
.
.
Hasta_que <condicin>
Pseudocdigo en ingls
Si
repeat
<acciones>
.
.
Until <condicin>
N.S.
Acciones
Repetir condiciones
Do until condicin
<acciones>
.
.
End Do
Este tipo de estructura ejecuta las acciones del cuerpo del bucle un nmero
especificado de veces y de modo automtico controla el nmero de iteraciones o pasos
a travs del cuerpo del bucle.
______________________________________________________________________
42
D.F.
N.S.
Desde j=Vi hasta Vf (incremento/decremento <valor>)hacer
For j=Vi to Vf
Proceso
<Acciones>
Fin_desde
Pseudocdigo en castellano
Leyenda:
J= variable
Vi= valor inicial
Vf= valor final
______________________________________________________________________
43
N, C : Entero
S, P : Real
Lea N
S=0
C=1
Mientras (C<=N) hacer
S=S+C
C=C+1
Fin_Mientras
P=S/N
Escriba La suma es: S
El promedio es: P
FIN
2. Que calcule el promedio de las edades de personas, mientras la edad que se
ingresa sea diferente de 0 y cuando sucede esto sale y calcula el promedio y lo
muestra.
INICIO
Var :
c=0
suma = 0
Lea edad
Mientras (edad <> 0) hacer
c=c+1
suma = suma + edad
escriba (introduzca edad)
lea (edad)
______________________________________________________________________
44
______________________________________________________________________
47
Aumento ( %)
501 a ms
20
hasta 500
30
______________________________________________________________________
48
Regular (R)
Deficiente (D)
30
25
20
15
10
Otros
20. Una persona procesa facturas correspondientes a sus ventas ingresando cdigo
e importe, el proceso termina cuando el cdigo de la factura es 0. Se desea
mostrar la factura con mayor importe vendido, el nmero total de facturas y el
importe total de las facturas procesadas .
21. En una empresa se van a producir aumentos de sueldos a sus trabajadores en
base a la siguiente escala :
Sueldo (soles)
Aumento ( %)
1001 a ms
30
851 a 1000
20
501 a 850
10
Hasta 500
______________________________________________________________________
50
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%
Administracin
14.5%
Civil
19%
______________________________________________________________________
51
______________________________________________________________________
52
Vec[x]
Donde:
Vec Nombre del arreglo
x Nmero de datos que constituyen el arreglo
______________________________________________________________________
53
Vec[1]
Vec[2]
Vec[3]
Vec[4]
10
NOTAS[1] NOTAS[2]
.....
NOTAS[i]
.....
NOTAS[n]
Asignacin
Lectura/escritura
Ordenacin
Bsqueda.
______________________________________________________________________
54
Ahora se pide que al vector A que tiene diferentes valores se le debe asignar
un mismo valor 2.
For i=1 to 5 do
A[i]2
End for
______________________________________________________________________
55
Leer[A]
Escribir[A]
Leer(A[4])
Ejemplo
Elabore un algoritmo en pseudocdigo para que lea 30 valores enteros del
vector R
INICIO
Tipo Array[1..30] de entero
desde j1 hasta 30 hacer
leer (R[j])
fin_desde
FIN
o tambin
j1
mientras j<=30 hacer
leer (R[j])
jj+1
______________________________________________________________________
56
o tambin
j1
repetir
leer (R[j])
jj+1
hasta_que j>30
Actualizacin de un vector :
Aadir
elementos
Insertar
elementos
Borrar
elementos
a) Aadir datos:
Es un caso especial de la operacin de insercin de un elemento en un arreglo,
pero el elemento lo metemos despus de la ltima posicin que contiene
informacin vlida en el arreglo.
Para que esto se pueda hacer es necesario que si actualmente el arreglo tiene K
posiciones de informacin vlida, tenga un tamao de al menos K+1 para que
pueda aadir otro elemento a continuacin de K.
<nom_array>[K+1] valor
______________________________________________________________________
57
c) Borrar datos:
Para eliminar un elemento de un array si ese elemento est posicionado al final
del array, no hay ningn problema, simplemente si el tamao del array era N,
ahora hay que considerar que el tamao del array es N-1.
______________________________________________________________________
58
Borrar J.
Suponiendo que el nmero de elementos validos actualmente es N y que
quiero borrar el elemento de la posicin K.
Desde i=K hasta N-1
A[I] A[I+1]
Fin desde
______________________________________________________________________
59
5.7. Ordenacin
Consiste en organizar un conjunto de datos en un orden determinado segn un
criterio.
La ordenacin puede ser interna o externa:
Interna: La hacemos en memoria con arreglos. Es muy rpida.
Externa: La hacemos en dispositivos de almacenamiento externo con ficheros.
Mtodo de la burbuja.La filosofa de este mtodo es ir comparando los elementos del array de 2 en 2
y si no estn colocados correctamente intercambiarlos, as hasta que tengamos
el array ordenado.
Hay que comparar la posicin 1 y la 2 y si no estn ordenadas las intercambio.
Luego la 2 y la 3 y as sucesivamente hasta que comparo las ltimas posiciones.
Con esta primera pasada lograremos que quede ordenado el ltimo elemento
del array.
Tericamente, en cada pasada iremos colocando un elemento, y tendramos que
hacer n -1 pasadas. Si en una pasada no se hacen cambios, el array ya est
ordenado.
______________________________________________________________________
61
Mtodo de insercin.Se supone que se tiene un segmento inicial del arreglo ordenado, y hay que ir
aumentando la longitud de segmento hasta que coincide con la longitud del
arreglo.
Para ello insertaremos el siguiente elemento en el lugar adecuado dentro del
segmento ordenado.
______________________________________________________________________
62
______________________________________________________________________
63
Mtodo de ordenacin rpida o QuickShort.Consiste en dividir la lista inicial en otras dos que ordenamos por separado
recursivamente.
Para ello, se elige un elemento de la lista al que llamamos pivote, tal que a la
derecha del pivote va a quedar lo ms grande, y a la izquierda lo ms
pequeo, es decir, que el pivote quedar colocado en su posicin.
______________________________________________________________________
64
______________________________________________________________________
65
5.8. Bsquedas
Hay 2 tipos de bsquedas, internas que se hacen en memoria y externas que se
hacen en ficheros. Cuando buscamos en un fichero, normalmente lo hacemos a
travs de una clave.
Dado un determinado valor, se trata de ver si existe un elemento con ese valor en el
array de ficheros donde se busca, tal que se devuelve si est o no.
Existen 3 mtodos de bsqueda:
Bsqueda secuencial:
Se puede aplicar para bsquedas internas y externas, y hay que ir pasando
secuencialmente por todos los elementos de la estructura hasta encontrar el
elemento o acabar la lista.
entonces
______________________________________________________________________
66
______________________________________________________________________
67
ini =mit + 1
Fin si
Fin mientras
Si (ini < fin)
Entonces escriba Elemento encontrado en la posicin mit
Sino escriba Elemento no encontrado
Fin si
Fin
______________________________________________________________________
68
______________________________________________________________________
69
______________________________________________________________________
70
INICIO
Arreglos:
Calificaciones: real de [5] renglones [4] columnas
Variables:
num_alum, parcial : entero = 0
acum_cal : real = 0
Hacer para num_alum = 1 hasta num_alum > 5
acum_cal = 0
Hacer para parcial = 1 hasta parcial > 3
Escriba Calificacin del alumno ,num_alum,en parcial:,
parcial
______________________________________________________________________
71
______________________________________________________________________
72
______________________________________________________________________
75
5.10.
aumento ( %)
1001 a ms
851 a 1000
10
501 a 850
20
hasta 500
30
a = { 2, 4, 6, 8 }
b= { 1, 2, 3, 4 }
Divisin = 2, 2, 2, 2
6. Elabore un algoritmo que calcule el producto de dos arreglos y los ordene de
menor a mayor.
Ejecucin :
a = { 1, 2, 3, 4 }
b= { 5, 6, 7, 8 }
______________________________________________________________________
76
______________________________________________________________________
77
______________________________________________________________________
78
______________________________________________________________________
79
6.4. Procedimientos
Son subprogramas, es decir, mdulos que forman parte de un programa y realizan
una tarea especfica. Un procedimiento puede tener sus propias variables que se
declaran en la seccin var del propio procedimiento. Estas se 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 variables locales
para un procedimiento slo se pueden usar en el cuerpo del procedimiento y no en
el cuerpo principal del programa.
6.5. Funciones
Las funciones son estructuras autnomas similares a los mdulos. La diferencia
radica en que la funcin se usa para devolver un solo valor de un tipo de dato
simple a su punto de referencia. La funcin se relaciona especificando su nombre
en una expresin, como si fuera una variable ordinaria de tipo simple.
Son
funciones
proporcionadas
por
cualquier
lenguaje
de
______________________________________________________________________
80
______________________________________________________________________
81
Sintaxis:
Funcion <nombre_funcion> (n_parametro: tipo, n_parametro: tipo): tipo funcion
Var <variables locales funcion>
Inicio
<acciones>
retorno <valor>
fin <nombre_funcion>
6.10.
-
______________________________________________________________________
82
En las variables locales se declaran las variables que se pueden usar dentro de la
funcin.
Entre las acciones tendr que existir entre ellas una del tipo retorno <valor>.
Esta sentencia pondr fin a la ejecucin de la funcin y devolver el valor de la
funcin, es decir, como valor asociado al nombre de mismo tipo que el tipo de
datos que devuelve a la funcin, este valor por tanto tiene que ser del mismo
tipo que el tipo de datos que devuelve la funcin, que es el que habremos
indicado al declarar la funcin en la parte final de la cabecera.
______________________________________________________________________
83
______________________________________________________________________
84
i =i+1
______________________________________________________________________
86
5. Elabore un programa que utilice una funcin que muestre el mximo de tres
nmeros
funcin ( entero, entero, entero)
Var : x,y,z : Entero;
Mostrar "Ingrese X: "; leer x;
Mostrar Ingrese Y: ";leer>>y;
Mostrar Ingrese Z: ";leer>>z;
funcin (x, y, z);
Fin Funcion
funcion ( entero x, entero y, entero z)
}
Si (x>y && x>z )
mostrar "El mayor es ", x
en caso contrario
______________________________________________________________________
87
______________________________________________________________________
88
rea de un triangulo.
2. Elabore un algoritmo que permita calcular el rea de un crculo y la longitud de una
circunferencia.
3. Elabore un algoritmo que permita calcular el rea de un crculo y de un cuadrado.
4. Elabore un algoritmo que permita calcular el factorial de un numero N.
5. Elabore un algoritmo para calcular el promedio y
______________________________________________________________________
89
______________________________________________________________________
90