Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
0 .1
1. Representacin
p
de la informacin en las computadoras
p
Un ordenador o computador es una mquina que recibe y
procesa datos para convertirlos en informacin til.
Los datos con los que trabaja pueden ser nmeros, caracteres,
audio, video, etc. Todo se reduce a procesar nmeros que estn
codificados en forma de cadenas de ceros y unos.
0 .1
2. Sistemas de numeracin
Existen muchos sistemas de numeracin pero recordaremos los siguientes:
sistema decimal
sistema binario
sistema hexadecimal
y trabajaremos las formas de conversin de un sistema de numeracin a otro.
0 .1
2.1 Sistema decimal
653
(pesos)
102
101
100
0 .1
2.2 Sistema binario
23
22
21
20
Para calcular el valor en decimal de un nmero binario slo hay que ir sumando los
pesos en los que exista un 1:
(1101)2 = 123 + 122 + 021 + 120 = 8 + 4 + 0 + 1 = 13
5
0 .1
Ejercicio
j
Calcular el valor decimal del siguiente nmero binario: (101001)2
0 .1
Ejercicio
j
(solucin)
(
)
Calcular el valor decimal del siguiente nmero binario: (101001)2
pesos
25
24
23
22
21
20
0 .1
2.2 Sistema binario p
puro: rango
g de representacin
p
EJEMPLO:
n = 4 bits
16 combinaciones diferentes
desde el 0 al 15 = 24-1
Binario
0000
0001
0010
0011
0100
0101
0110
0111
Decimal
0
1
2
3
4
5
6
7
Binario
1000
1001
1010
1011
1100
1101
1110
1111
Decimal
8
9
10
11
12
13
14
15
8
0 .1
2.2 Sistema binario p
puro: rango
g de representacin
p
0 .1
2.3 Sistema hexadecimal
3
(pesos)
163
162
9
161
F
160
Para calcular
P
l l ell valor
l d
decimal
i ld
de un nmero
h
hexadecimal
d i l slo
l h
hay
que ir sumando los pesos multiplicados por el valor respectivo
que tengan en cada posicin:
(3A9F)16 =
3163
10162
9161
15160
= 1500710
BINARIO
HEXA
0 .1
3. Cambios de base ((HEXADECIMAL-BINARIO))
5. Cambios de base (BINARIO-HEXADECIMAL)
En el sistema HEXADECIMAL,
HEXADECIMAL cada dgito se puede representar en binario con 4 bits:
hexadecimal
binario
11
0 .1
Ejercicio
BINARIO
HEXA
12
0 .1
Ejercicio (solucin)
BINARIO
HEXA
13
0 .1
5. Cambios de base ((DECIMAL- BINARIO))
5
18(10 = ? 10010(2
(10
2+
18 = 92 + 0
9 = 42 + 1
4 = 22 + 0
2 = 12 + 0
0 .1
Ejercicio
j
43(10 = nmero en base binaria?
15
0 .1
Ejercicio (solucin)
43(10 = nmero en base binaria?
43 = 212 + 1
21 = 10
102
2+1
10 = 5 2 + 0
5= 22+1
43(10 = 101011
2= 12+0
16
0 .1
6. Suma y resta de nmeros binarios
Combinaciones al restar dos bits:
0-0=0
1-0=1
1-1=0
0 - 1 = 1 1 (se escribe 1 y hay acarreo de 1 que se
10100101 =A
1
1 1 1 1
- 1000111 =B
01011110 =C
17
0 .1
Ejercicio
j
10011011 =A
+
1010011 =B
10011001 =A
1010011 =B
18
0 .1
Ejercicio
j
(solucin)
(
)
0 0 1 0 0 1 1
10011001 =A
10011011 =A
+
1010011 =B
11101110
0 0 1 1
1010011 =B
01000110
19
0 .1
RESUMEN
S
Suma
y resta
t d
de nmeros
bi
binarios
i
20
0 .22 REPRESENTACIN DE
ALGORITMOS EN PSEUDOCDIGO
Merc Rulln
Universidad Autnoma de Barcelona
0 .2
1. Representacin de algoritmos: pseudocdigo
Algoritmo
Procedimiento no ambiguo que resuelve un problema, de forma que indique una
secuencia de operaciones a realizar para conseguir el resultado deseado.
deseado
El algoritmo es independiente del lenguaje de programacin que se utilizar para su
implementacin final.
Existen diferentes formas de representacin de los algoritmos: el lenguaje natural,
natural
pseudocdigo, diagramas de flujo y lenguajes de programacin.
22
0 .2
2. Acciones y estructuras de control (esquema)
ASIGNACIONES
OPERADORES
Comparacin
Lgicos
Aritmticos
ESTRUCTURAS DE CONTROL
Seleccin (decisin)
Simple, Doble
Mltiple (Case)
Iteracin (ciclos)
While
For
PROCEDIMIENTOS
23
0 .2
3. Asignaciones
La accin denominada asignacin <= permite almacenar un valor en una variable.
El valor puede ser una constante o el resultado de la evaluacin de una expresin.
Primero se evala la expresin de la derecha y luego se asigna el resultado a la variable de la izquierda.
<variable> <= <expresin>;
variable <= expresin;
Ejemplo
X <= 3; Y <= 2; Z <= 1;
Y <= 2X+Y+Z;
24
0 .2
4. Operadores
Nos permiten realizar operaciones de diferentes tipos:
COMPARACIN
Operador
Significado
ARITMTICOS
Operador
Significado
LGICOS
Operador
Significado
<
Menor que
Suma
or
Suma lgica
>
y q
que
Mayor
Resta
and
Producto lgico
g
Igual que
Producto
not
Negacin
(1)
Divisin
(2)
Mayor o igual
i l que
(3)
Diferente
o igual que
(2) En algunos ejemplos tambin utilizamos el smbolo >= para la comparacin mayor o igual que
(3) En algunos ejemplos tambin utilizamos el smbolo /= para la comparacin diferente
25
0 .2
Ejercicio
j
Si tenemos la siguiente descripcin en pseudocdigo:
1.
1
2.
3.
4.
5.
6.
X <=
< 2;
2
Y <= 3;
Z <= 4;
X <= X*Y;;
Z <= X+Y;
Y <= X+Y+Z;
Q valor
Qu
l ttendr
d lla variable
i bl X d
despus
lla llnea 4?
Qu valor tendr la variable Z despus la lnea 5?
Qu valor tendr la variable Y despus la lnea 6?
26
0 .2
Ejercicio
j
(solucin)
(
)
Si tenemos la siguiente descripcin en pseudocdigo:
1. X <= 2;
2 Y <=
2.
< 3;
3. Z <= 4;
4. X <= X*Y;
5. Z <= X+Y;
6. Y <= X+Y+Z;
Qu valor tendr la variable X despus la lnea 4?
La variable X valdr 6
Qu valor tendr la variable Z despus la lnea 5?
La variable Z valdr 9
Qu valor tendr la variable Y despus la lnea 6?
La variable Y valdr 18
27
0 .2
5. Estructuras de control
La acciones que podemos describir mediante pseudocdigo se organizan en bloques
de acciones que siguen unas estructuras bsicas:
ESTRUCTURAS DE SELECCIN
(decisin)
Simple
Doble
Mltiple (Case)
ESTRUCTURAS DE ITERACIN (ciclos)
( i l )
While
For
28
0 .2
5.1 Estructuras de seleccin (decisin)
Las estructuras de seleccin nos permiten tomar decisiones condicionadas a la
evaluacin de una expresin (normalmente una condicin lgica).
Simple
condicin
no
Ejemplo
si
accin;
Doble
If condicin then accin1/es;
else accin2/es;
/ ;
end if;
no
accin2;
condicin
si
accin1;
If ((X es p
par)) and ((X 8)) then accin1/es;
/ ;
else accin2/es;
end if;
29
0 .2
5.1 Estructuras de seleccin (decisin)
Mltiple
si
condicin1
accin1;
no
condicin2
accin2;
condicin3
accin3;
30
0 .2
Ejercicio
j
Si queremos realizar en pseudocdigo la operacin y = X/2 , redondeando por defecto:
Anlisis de los diferentes casos:
Cuando X es par, el resultado de la divisin ser exacto (tanto si X es positivo como negativo)
x=8
y = 8/2 = 4
x = -8
8
y = -8/2
8/2 = -4
4
Cuando X es impar, el redondeo deber ser calculado de forma diferente:
- si es negativo ser (X+1)/2
- si es positivo ser (X-1)/2
x = -7 y = (-7+1)/2= -3
x = 7 y = (7-1)/2= 3
ESCRIBID el pseudocdigo de la operacin y = X/2 , redondeando por defecto segn el anlisis de los
31
diferentes casos que hemos planteado.
0 .2
Ejercicio
j
(resuelto)
(
)
Si queremos realizar en pseudocdigo la operacin y = X/2 , redondeando por defecto:
Anlisis de los diferentes casos:
Cuando X es par, el resultado de la divisin ser exacto (tanto si X es positivo como negativo)
x=8
y = 8/2 = 4
x = -8
y = -8/2 = -4
Cuando X es impar, el redondeo deber ser calculado de forma diferente:
- si es negativo ser (X+1)/2
x = -7 y = (-7+1)/2= -3
- si es positivo ser (X-1)/2
x = 7 y = (7-1)/2= 3
32
0 .2
5.1 Estructuras de seleccin (decisin)
Case
case X is
when valor1" => accin1;
when valor2" => accin2;
when valor3" => accin3;
when valor4" => accin4;
end case;
accin1;
accin2;
accin3;
accin4;
0 .2
5.2 Estructuras de iteracin (ciclos)
Las estructuras de iteracin nos permiten repetir acciones condicionadas a la
evaluacin de una expresin.
While
While condicin loop
accin/es;
/ ;
end loop;
si
condicin
no
accin;
For
for variable in min to max loop
accion/es;
end
d loop;
l
34
0 .2
Ejercicio
j
Dados dos vectores de 8 posiciones:
a(0), a(1), a(7)
x(0), x(1), x(7)
35
0 .2
Ejercicio
j
(resuelto)
(
)
Dados dos vectores de 8 posiciones:
a(0), a(1)
a(0)
a(1), a(7)
a(7)
x(0), x(1), x(7)
ESCRIBID el pseudocdigo del clculo:
y = a(0) x(0) + a(1) x(1) + a(2) x(2) + ..+ a(7) x(7)
acc <= 0;
0
for i in 0 to 7 loop
acc <= acc+ a(i)
( ) x(i);
( );
end loop;
36
0 .2
6. Procedimientos (subrutinas)
Procedure call nombre (parmetros);
ALGORITMO
----------------call procedure
----------------call procedure
PROCEDIMIENTO
---------------------------------
0 .2
6. Procedimientos (subrutinas)
Ejemplo:
Procedure raiz_cuadrada(x,
_
( yy, n)) is
------end procedure
Algoritmo
call raiz_cuadrada(x,
( u, 16);
)
u <= a * u;
call raiz_cuadrada(y, r, 16);
r <= b * r;
z <= u + r;
calcular z = a x + b y
ALGORITMO
Inicio
call raiz_cuadrada(x,u,16);
u <= a * u;
call raiz_cuadrada(y,r,16);
r <= b * r;
z <= u + r;
end
PROCEDIMIENTO
raiz_cuadrada
(x,y,n)
----------------end procedure
38
0 .2
RESUMEN
Procedimientos
39