Académique Documents
Professionnel Documents
Culture Documents
1
JOYANES Aguilar, Luis, Problemas de la metodologa de la Programacin. Pp. 1
2
BECERRA Santamara, Cesar, Algoritmos: Conceptos Bsicos. Pp. 5
Ejemplo 1. Algoritmo no Computacional
Entradas
Procesos
Salidas
Las entradas son todos los insumos o informacin de entrada; en los algoritmos
computacionales las entradas son los datos suministrado al algoritmo mediante los
dispositivos de entrada (Ej. teclado, mouse, lector ptico, etc.), en los no
computacionales como el de la torta seran los ingredientes de est.
Las salidas son los resultados obtenidos por esa transformacin y entregados al
usuario a travs de los dispositivos de salida (Ej. Monitor, impresora), en los
algoritmos no computacionales equivaldra a la torta horneada.
Teniendo en cuenta lo anterior los elementos en mencin son los cimientos y las
bases para aprender la lgica de programacin, adems de ser necesarios para
convertirse en un programador experto. Es entonces casi obligatorio dominar muy
bien dichos elementos y el papel que juegan en la construccin de algoritmos, a
continuacin se observa de forma grfica la importancia de los elementos
fundamentales de los algoritmos:
Elementos Fundamentales de
los algoritmos
Pseudo Lenguajes
Datos Variable
s Diagramas de
Flujo
Pseudo-Cdigo
Diagramas NS
Expresiones Primitivas
1.4 Literales
Los literales pertenecen a un tipo de dato en especial, por ejemplo los literales
enteros tienen su dominio en los nmeros enteros.
- Numricos
Simples - Alfanumricos
(Sin estructura)
- Lgicos
Los datos simples o sin estructura son utilizados por todos los lenguajes de
programacin, inicialmente en los albores de la computacin eran los nicos que
existan, pero a medida que los problemas se fueron haciendo mas complejos
aparecieron otros tipos de datos.
Los datos simples numricos pueden ser enteros o reales tomando literales
enteros o reales respectivamente, los datos alfanumricos por su parte toman
literales carcter o de tipo cadena y los lgicos tambin conocidos como bolanos
toman literales lgicos que viene a ser un estado (verdadero o falso) ms no un
valor.
Por ltimo los datos definidos por el usuario son todos aquellos datos nuevos que
no existen como por ejemplo el tipo color (Amarillo,Verde,Azul,Rojo), a partir
de su definicin podr usarse para determinar datos de tipo color.
1.6 Variables
Variables x:entero
quiere decir que estamos declarando una variable x de tipo entero
Identificadores
Los identificadores son las palabra con que nombramos variable, funciones,
procedimientos, mdulos y programas entre otros. En el ejemplo 3 x corresponde
al identificador.
3
Casting: Es un recurso que manejan ciertos lenguajes de programacin, cuando una variable se
asigna otra de un tipo distinto la primera transforma al tipo de la ltima.
3) No deben contener caracteres extraos o especiales por ejemplo +,-
,*,#,%,@, etc, excepto el subrayado _
4) No deben ser palabras reservadas (ver tem 1.7)
5) Preferiblemente, el nombre debe ser nemotcnico, es decir; el nombre que
se escoja para declarar una variable debe ser coherente con el significado
de dicha variable.
Hasta el momento definiremos las siguientes palabras que sern utilizadas como
reservadas de aqu en adelante:
PALABRA SIGNIFICADO
Entero Servir para declarar datos de tipo
entero
Real Se usar para declarar datos de tipo
real
Carcter Ser utilizada para declarar datos de
tipo carcter
Cadena Ser usada para declarar datos de tipo
cadena
Lgico Se utilizar para declarar datos de tipo
lgico
Variables Se emplear para la declaracin de
variables
Tabla 3. Palabras reservadas
1.8 Expresiones
5*6+4
10 3
1 3
3 + 4 <= 50 div 3
Como se puede observar del lado izquierdo del operador hay una expresin
aritmtica al igual que del lado derecho y la respuesta es la siguiente: 7 <= 16
verdadero.
8+6-3>7
En este ejemplo se compara una expresin aritmtica del lado izquierdo con un
literal numrico del lado derecho y la respuesta es 11 > 7 y la respuesta es falso.
3 * 2 <= 6 Or 4 + (6 * 8) Mod 3
Examinemos este ejemplo calculando la expresin de la izquierda del operador Or
6 <= 6, la respuesta es verdadero, si nos remitimos a la tabla de la verdad para
cualquier estado de la expresin a la derecha el resultado final de la expresin
completa es verdadero.
8 * 8 + 3 < 5 + 2 Or 3 + 6 * 5 = 33
Expresin Resultado
Verdadero Falso
Falso Verdadero
Tabla 8. Tabla operador Not
El operador Not, cambia el estado de la expresin que est afectando de falso a
verdadero y viceversa
Las expresiones de asignacin sirven para modificar el valor a una variable, lo que
indica que del lado izquierdo de la expresin estar una variable, mientras que del
lado derecho podr estar un literal, una expresin de cualquier tipo u otra variable.
a) X 10
b) X UNICORDOBA
c) X5*6+4
d) X (2 + 5 > 3)
e) XY
(3 + 5) + 1 = ((3+5)/2) + (1/4))
2 4
Anlisis:
Pseudo-cdigo:
Variables
Entero Base, Altura, Area
Inicio
Leer (Base, Altura)
Area Base * Altura / 2
Escribir (Area)
Fin
Podemos notar que en el ejemplo se utilizan dos palabras reservadas Leer y
Escribir que sern estudiadas en el prximo captulo, solo se pretende mostrar
como se escribe un algoritmo en pseudo-cdigo, como tambin como el anlisis
es transformado en pseudo cdigo.
1.11 Comentarios
Anlisis:
Pseudo-cdigo:
Variables
Entero Base, Altura, Area // declaracin de variables
Inicio
Leer (Base, Altura) // entradas del algoritmo
Area Base * Altura / 2 // procesos
Escribir (Area) // salidas del algoritmo
Fin
En este ejemplo se observan los comentarios por bloque /* */ y por lneas //, el
algoritmo es el mismo pero ahora esta descrito y ser mas claro y entendible.
Problemas Resueltos
Problema 1.1 Diga cual de los siguientes nombres pueden usarse como nombre
de variables o identificadores vlidos:
a) Unicor b) Licenciatura en Informtica
c) 40Grados d) Ao_escolar
e) Suma+Total f) calle#1
q) 10+5* 2-40 / 5
10+10 8
20 8
12
r) 5+10*15 35/2
5+150 17.5
155 17.5
137.5
Problema 1.2 Cual es el estado de las siguientes expresiones relacionales
2. 3*5 18>27/3+1
15-18> 9+1
-3>10= (Falso)
12. X* Y Z+4=
7*3> 8+4
21> 12 (Verdadero)
V F
V V
F F
V
5. NOT (7*9 < 14/7) AND (73 37 > = 18 + 10 *2 20)
NOT (63 < 2) AND 36 > = 18 + 20 20
NOT (63 < 20) AND 36 > = 18
F F
V V
F
V
8. (16 > 12 AND 3 < > 7) OR NOT (20 DIV 2 = < 17)
(16 > 12 AND 3 < > 7) OR NOT (10 = < 17)
V V V
V F
9. NOT (39 = < 4*9) AND (56 + 3*9 DIV 6 < > 17 12 DIV 4)
NOT (39 = < 36) AND (56 + 27 DIV 6 < > 5 DIV 4)
NOT (39 = < 36) AND (83 DIV 6 < > 5 DIV 4)
NOT (39 = < 36) AND (13 < > 1)
F V
V
V
10. NOT ((25 < (4 + 12) OR (15 4 > 3) AND (5*2 DIV 4 < > 25-15)
NOT ((25 < 16) OR (11 > 3) AND (10 DIV 4 < > 10)
NOT ((25 < 26) OR (11 > 3)) AND (2 < > 10)
V V V
F
V
V
11. NOT (8* 4 < 11* 2 DIV 4) AND (44 + 8*4 DIV 2 > = 28 + 3 DIV 3)
NOT (32 < 6 + 22 DIV 4) AND (44 + 32 DIV 2 > = 31 DIV 3)
NOT (32 < 28 DIV 4) AND (76 DIV 2 > = 31 DIV 3)
NOT (32 < 7) AND (38 > = 1)
F V
V
V
12. NOT (12 > 3*1) AND (26 < > (5*4)/2)
NOT (12 > 3) AND (26 < > 10)
V V
F
F
13. NOT (12 > = 6*3) AND (22 4*2 MOD 4 > 3* 3 DIV 2)
NOT (12 > = 18) AND (14 MOD 4 > 9 DIV 2)
NOT (12 > = 18) AND (2 > 4)
F F
V
F
14. NOT (22 > = 9+2) AND (3*5-7 DIV 6 < 2*9)
NOT (22 > = 11) AND (8 DIV 6 < > 18)
NOT (22 > = 11) AND (1 < > 18)
V V
F
F
15. NOT (20 > = 5*3) AND (25 3*4 DIV 2 < > 5*2)
NOT (22 > 15) AND (13 DIV 2 < >10)
NOT (20 > = 15) AND (6 < >10)
V V
F
F
V V
V
18. NOT (13 > = 8*2) AND (24 6*3 DIV 5 < > 3*4 DIV 3)
NOT (13 > = 16) AND (6 DIV 5 < > 12 DIV 3)
NOT (13 > = 16) AND (1 < > 4)
F V
V
V
1. 15 & 24 = 8
& 01111 (15)
11000 (24)
1000 (8)
& 010100100
101000101
! 000000100
111111011 (507)
3. ! (32||22) & 10 = 8
6. 70 & 90 = 66
&1000110
1011010
1000010
7. 50 & 20 = 2
& 110010
001010
000010
8. 22 & 14 = 4
& 10110
01100
00100
9. (! 5 || (3 & 4&)) = 2
10. !1311 20 = 22
12. 15 & 11 = 11
14. 8 & 6 = 0
& 001000
000110
000000 (0)
15. 20 & 19 = 16
& 010100
010011
010000 (16)
16. 18 & 14 = 2
17. 10 & 20 = 0
11 1101110 (110)
0011000 (24)
1111110 (126)
20. 14 & 5 = 4
001110
000101
000100 (4)
Problema 1.5 Cual ser el valor resultante de las variables despus de ejecutadas
las siguientes expresiones de asignacin:
1. a xx 15 R=a=5
b xx a+b b=5
c xx a + b c = 20
a xx c a
b xx a
2. C xx 15 R = A = 27
A xx 7 C = 22
F xx C F = 35
A xx F
C xx A
F xx 20
3. R xx 8 R=R=6
S xx 2 T=2
T xx 6 S=8
S xx R
T xx S
R xx T
4. X 5 R = X = 10
Y 4 Y =5
Z 10 Z=4
X Z
Y X
Z Y
5. H 5 R=N= 5
L 3 H =3
N H J = 5
4 5
J N
N 5
6. Z 5 R=2=1
4 1 9=8
3 8 3=8
2 4
9 3
3 Z
7. 15 F R = 15 = 9
12 9 12 = H
9 K 9 = F
15 12
12 9
9 15
8. A 16 R=A=4
F 4 F = 16
P 4 P = 16
A F
F P
P 16
9. D 4 R=D=6
I 9 I = 26
N 14 N=9
A 1 A=3
D 54 li
I 16 Div D
N 3+6
A 6-3
10. X 3 R = X = 21
Y 18 Y = 39
Z Y Z = 24
X Z
Y X
Z 6
11. J B R=J= S
A ? AA = 6
G i G = i
J A
AA G
J S
12. Y 50
ULT Y DIV 3
Y Y MAS 4
MES Y DIV 4
Y Y MOD 4
PRIM Y DIV 4
13. a 15 R=d=0
b 2 b = 15
c b c=2
b a
a b DIV 10
14. X 3 R = X = 10
b 10 b = 3
z 5 z = 5
b x
x b
15. a 25 R = a = 50
b 2 b = 25
c 50 c = 50
a c
b a
16. a 5 R=a=3
b 3 b=1
c 1 c=2
a b
b c
c 2
17. J 20 R = J = 15
K 15 = K = 20
L J = L = 20
J K
K L
L 20
18. a 8 R = a=9
b a = b=4
c b = c=5
a c
b a
c 5
19. a 5 R = a = 15
b 10 R = b = 15
c 15 R = c = 15
a c
b a
c b
20. B 1 R= A=1
A 4*5*3 B=2
A 4*1 C =12
A A+B
C A+B
C C+A+B
A A*0
A 1
B 1+1
Problema 1.6 Transformar a expresiones algortmicas las siguientes expresiones
algebraicas
1. c+2 = (c + 2) / (x 5x)
x-5x
6. x + y*z = (x*z + x) / h t)
ht
7. CA + B* D = ((B*D) + CA) / (R + Z)
R+Z
11. d i + m + r *c + h k =
n*a e L *v
15. 7 + P
x = ((7 / x) + p / 4)
4
16. 4 + b c = (4 + b c) / (a + e)
d+e
18. * c - d = (a / b) * ((c d) / (d + ))
b d+
Ejercicios Suplementarios
Ejercicio 1.1 Cual de los siguientes nombres es valido para identificar una
variable:
a) Total
b) Impuestos e) Salario Bruto
c) Valor_En$ f) Ingresos-Egresos
d) Resultado_ventas g) 100Nombres
a) 1+6
b) * 7 - 18/2 f) 35+6-7 MOD (8+2) / 1+3+5
c) 7+5 * 8-36 DIV 2+3 g) 8*5 4+16/7
d) 9+7*8 36/5 h) 14*8 MOD 10/2
e) 7+8 * 3+4*6 i) 12*5 / (10 DIV 2) +4
j) 10 / 20 + 30-2 DIV 3* 3+1 o) 3*9+12* (5/2 + 8) DIV 2
k) 7*8*2 (27 MOD 4) DIV 3*2-5 p) 5-2+9* 17/8
l) 8-3*2* (90 MOD 4-2) / 10 q) 18+5*5*6/3
m) 8+20/2*4+ (3-6) r) 10+8*3-49/3
n) 6*3 (140 MOD 2*2) DIV 3*10- s) 5+2 * 6- 19
15
a) 22. NOT (12 > = 3*3) AND (50 20*2 DIV 3 < > 20)
b) 23. NOT (5 > = 6*3) AND (25 + 8*2 DIV 3 < > 7*3 DIV 4)
c) 24. (12 + 6 > 15-6) OR (12 DIV 4*6 < 3)
d) 25. ((2 + 5 ) < (12*6 DIV 2)) AND (5/3 = 20)
e) 26. (4 + 5 > = 10 2) OR (12 MOD 3*2 = 10)
f) 27. (12 < 8+2*4) AND ((5+7 MOD 3) > 5)
g) 28. NOT (20 > = 8*9) AND (32 15*4 DIV 7 < > 4*48 DIV 12)
h) 29. (18 < 32) AND NOT (10 DIV 2) < 10
i) 30. NOT (3 = < 6*2) AND (30 + 7*1 DIV 2 < > 2*4 DIV 5)
a) 40 & 2
b) ! (8 & 4)
c) ! (15 || 12)
d) ! (7 || 12)
e) (25 & ! 10) || 5
f) 11 17) & (20 & 19)
g) || 15
h) ! (22 & 10) || 15
i) (! 12 & (24 || 30))
j) 8 & 16 & 20
Ejercicio 1.6 Cual es valor resultante despus de ejecutarse las siguientes
expresiones de asignacin.
a) E ?
M 5
T @
T E
E M
M T
b) a a
b i
c 5
c b
a c
b a
c) A B
b 5
c b MOD 4
A b
C 5 MOD 4
d) b 30
x 8
z b
b x
x z
z 30
e) y 9
e 14
y 5
e y
J 1
J e
f) S 18
P 19
D 5
P D
S P
g) Y Z
X 2*1*3
X 2*1
X X+Y
Z X+Y
Z Z+X+Y
X X*1
X 2
Y 1+1
h) L 3
M 4
N L
L M
M N
N 6
a) X + F + T*B
B a-B
b) Y + P*C
a-m
c) S + P
a+b
c
d) a * b * d F
c
e) a + b *c d
e+z
f) x+yKb
a*b
g) A*C + J
X+Z
h) t + h*c
Z+b
i) R+L*h
ma