libro de transparencias fundamentos de informática 1º …jaar/datos/fi/librotransparencias.pdf ·...

104
Libro de transparencias Fundamentos de Informática 1º Ingeniería Industrial Autores: M. López Martínez José Ángel Acosta Rodríguez Ismael Alcalá Torrego © 2006

Upload: hamien

Post on 15-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

Libro de transparencias

Fundamentos de

Informática 1º Ingeniería Industrial

Autores: M. López Martínez José Ángel Acosta Rodríguez Ismael Alcalá Torrego © 2006

Page 2: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/10�� � � � �� 1/10

Introducción a la Informática

Fundamentos de Informática - [Tema 1]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 3: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/10�� � � � �� 2/10

Índice1.1.Informática y Computadoras 3

1.1.1.Programas e Instrucciones . . . . . . . . . . . . . . . . . . . . 4

1.1.2.Lógica Cableada y Programada . . . . . . . . . . . . . . . . . . 5

1.1.3.Computadoras Analógicas y Digitales . . . . . . . . . . . . . . 6

1.1.3.Computadoras Analógicas y Digitales (cont) . . . . . . . . . . . 7

1.2.Representación de la Información 81.2.1.Soportes de la Información . . . . . . . . . . . . . . . . . . . . 8

1.3.Estructura de Von Neumann 9

1.4.Manejo de la Computadora Digital 101.4.1.Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.4.2.Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Page 4: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 3/10�� � � � �� 3/10

1.1. Informática y ComputadorasInformática:Trata de la adquisición, representación, tratamiento y transmisión

de la información.

Informática = Información + Automática

• Información: números, texto, sonido, imágenes, ...

• Automática: procedimiento realizado con poca intervención humana.

Computadoras-Ordenadores:Máquinas que permiten realizar automáticamente todas estas operaciones.

La información ha de ser suministrada de forma adecuada.

Page 5: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 4/10�� � � � �� 4/10

1.1.1. Programas e Instrucciones

Programa: Conjunto ordenado de instrucciones que se suministran a la

computadora de forma que se obtengan unos resultados a partir de unos

datos.

Instrucción: Conjunto de símbolos que representan una orden de op-

eración o de tratamiento de datos.

Acciones con una computadora

•Programarla (Para usarla muchas veces)

•Hacer uso del programa

Page 6: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 5/10�� � � � �� 5/10

1.1.2. Lógica Cableada y Programada

Lógica Cableada:

• Los algoritmos están predefinidos y no se pueden cambiar.

• Incorporados a la circuitería.

Lógica Programada:

• Se permite el cambio de operaciones elementales.

• Redefinición de algoritmos.

Page 7: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 6/10�� � � � �� 6/10

1.1.3. Computadoras Analógicas y Digitales

Magnitudes•Digital: Toman valores discretos y varían a saltos.

•Analógica: Toman valores que pueden variar de forma

continua en un intervalo

ComputadoraDigital

•Trabajan con 2 valores de tensión· nivel alto (1)

· nivel bajo (0)

•Representan la información usando células que sólo ad-

miten dos estados· 1· 0

•bit(binary digit): Unidad de información que sólo

puede tomar dos valores (1,0)

•Asociación de células permite representación de infor-

mación más compleja.

•Facilidad de programación.

Page 8: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 7/10�� � � � �� 7/10

1.1.3. Computadoras Analógicas y Digitales (cont)

ComputadoraAnalógica

•Trabajan con valores de tensión que varían de forma

continua dentro de un rango.

• ∃ relación entre tensión y valores de las variables.

•Rango de valores limitado

•Programación tediosa.

Page 9: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 8/10�� � � � �� 8/10

1.2. Representación de la InformaciónInformación: texto, gráficos, música.

Código derepresentación

•Números enteros⇒ Complemento a 2

•Texto⇒ ASCII

•Gráficos⇒ Bitmap, vectorial, metafile

1.2.1. Soportes de la Información

Es el medio que permite· almacenamiento

· transmisiónde la información.

Soportes

•Niveles de tensión⇒ dispositivos s/c

•Campo Magnético⇒ Disco duro, disquete

•Óptica⇒ CD, DVD

•Frecuencia⇒ Transmisión de información en canales.

Page 10: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 9/10�� � � � �� 9/10

1.3. Estructura de Von NeumannEstructura funcional de la computadora digital.

•Memoria Principal: Conjunto de células asociadas para almacenar información.

•Unidad Aritmético Lógica: Conjunto de circuitos capaz de realizar operaciones Aritméti-

cas y Lógicas

•Unidad de Control: Envía señales de control a la UAL, la memoria y los periféricos, para

realizar operaciones con datos (memoria) según instrucciones de programa (memoria).

UnidadAritmético

Lógica

Tema 5 del Libro

Unidadde Control

Tema 6 del Libro

MemoriaPrincipal

Tema 4 del Libro

Unid

ad

de

En

tr ad

a/S

al id

aPeriférico 1

señales de control

información

Page 11: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 10/10�� � � � �� 10/10

1.4. Manejo de la Computadora DigitalEjecutar un programa: Hacer uso de un programa.

Los programas se pueden almacenar en la memoria principal o en periféricos.

Para ejecutar un programa hay que cargarlo previamente en memoria.

El sistema Operativo se encarga de cargar los programas.

1.4.1. Sistema Operativo

Programa básico que se introduce en memoria automáticamente al poner en

marcha el ordenador.

Funciones•Gestiona y pone a disposición del usuario los recursos

de la máquina

•Permite al usuario ejecutar otros programas.

1.4.2. Aplicaciones

Programa que resuelve un problema

concreto.

Page 12: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/9�� � � � �� 1/9

Álgebra de Boole y circuitos

con puertas lógicas

Fundamentos de Informática - [Tema 2]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 13: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/9�� � � � �� 2/9

Índice2.1.Álgebra de Boole 3

2.1.1.Elementos básicos . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.3.Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.4.Funciones Booleanas . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.5.Obtención de las funciones boolenas a partir de tablas de verdad 7

2.2.Puertas lógicas 8

2.3.Ejemplos de circuitos lógicos 92.3.1.Paridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.2.Comparador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.3.Mayoría . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Page 14: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 3/9�� � � � �� 3/9

2.1. Álgebra de BooleAntecedentes históricos:

Teoría matemática presentada en 1854 por George Boole: ”Investigaciónsobre las leyes del pensamiento”

→ Las variables toman dos valoresFalso→ 0

Verdadero→ 1

Aplicación en � áreas. . . . Shannon lo aplica a circuitos eléctricos con in-terruptores.

Variables lógicas

(2 valores)

1 bit

⇒Ej: 0 1

interruptor abierto cerrado

lámpara apagada encendida

Las computadoras digitales utilizan codificación binaria

⇒ * Estudio con el álgebra de Boole

* Construcción con técnicas de Shannon

Page 15: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 4/9�� � � � �� 4/9

2.1.1. Elementos básicos

Los elementos básicos son las variables lógicas y las operaciones lógicas (que

son las encargadas de relacionar las variables entre sí).

Operaciones

lógicas (2.1.2)

*Suma lógica

Operación lógica ”O” (OR)

0 10 0 11 1 1

0 10 0 11 1 1

ab a

b f =a+bf =a+b

*Producto lógico

Operación lógica ”Y” (AND)

0 10 0 01 0 1

0 10 0 01 0 1

ab

a bf =a·bf =a·b

*Negación o complementación

Operación lógica ”NO” (NOT)

a a0 11 0

a a0 11 0

a f =af =a

Page 16: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 5/9�� � � � �� 5/9

2.1.3. Propiedades

Propiedades de las

operaciones lógicas

*∃ de elemento neutroa+0=a

a*1=a

* Asociatividad(a+b)+c=a+(b+c)

a*(b*c)=(a*b)*c

* Conmutatividada+b=b+a

a*b=b*a

* Distributividad(a+b)*c=a*c+b*c

(a+b)*(a+c)=a+b*c

* Leyes de Morgan(a ∗ b) = a + b(a + b) = a ∗ b

Page 17: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 6/9�� � � � �� 6/9

2.1.4. Funciones Booleanas

Composición de operaciones con Variables Booleanas expresadas de 4 formas

distintas: Por ejemplo f = c ∗ (a + b)

* Expresión analítica⇒ f = c ∗ (a + b)

*Expresión explícita o

Tabla de Verdad

a b c f0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 01 1 1 1

a b c f0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 01 1 1 1

Entradas Salidas

23

* Circuito de interruptores

a

bc

* Puertas lógicas⇒ (corresponde al apartado 2.2 que se va a ver)

Lo más complicado es pasar de la forma explícita a la analítica.

Page 18: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 7/9�� � � � �� 7/9

2.1.5. Obtención de las funciones boolenas a partir de tablas de ver-dad

1. Identificar las entradas y las salidas del problema.

2. Para cada salida:

a) Señalar las filas cuyo valor es 1

b) Para cada fila, escribir el producto de cada entrada que valga 1 y de

cada entrada negada que valga 0.

c) La función que gobierna la salida es la suma de los productos.

3. Escribir la tabla de verdad de todas las salidas que acabamos de obtener

para comprobar que está bien.

Por Ejemplo . . .

Page 19: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 8/9�� � � � �� 8/9

2.2. Puertas lógicas

Desventajas de los interruptores

* Velocidad ↓↓↓* Potencia disipada ↑* Dificultad miniaturización ↑↑↑

⇒ Uso de transistores y diodos ≡ Puertas lógicas

Tipos de

puertas lógicas

* Suma lógica ”O” (OR)a

b

c

f = a+b+c

* Producto lógico ”Y” (AND)a

b

c

f = a*b*c

*Suma exclusiva ”O exclusi-

vo” (XOR)

a

b

c

f = a+b+c

a b a+b0 0 00 1 11 0 11 1 0

a b a+b0 0 00 1 11 0 11 1 0

*Negación o complementación

”NO” (NOT)a a

a a

a a

Entrada

Salida

Page 20: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 9/9�� � � � �� 9/9

2.3. Ejemplos de circuitos lógicosLos circuitos construidos con puertas lógicas constituyen la lógica cableada

⇒ Son la base de las computadoras

- Memorias

- Unidades aritmético lógicas

- etc . . .

2.3.1. Paridad

Activa la salida en caso de que los dos bits sean iguales.

2.3.2. Comparador

Circuito que compara dos bits (a y b) activando una señal según a sea mayor,

igual o menor que b.

2.3.3. Mayoría

La salida toma el valor de la mayoría de las tres entradas.

Page 21: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/10�� � � � �� 1/10

Codificación Binaria de la

Información

Fundamentos de Informática - [Tema 3]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 22: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/10�� � � � �� 2/10

Índice3.1.Sistemas de numeración 3

3.1.1.Conversiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.2.Codificación de Números Enteros 7

3.3.Números fraccionarios 8

3.4.Codificación de caracteres 9

3.5.Formatos Gráficos 10

Page 23: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 3/10�� � � � �� 3/10

3.1. Sistemas de numeraciónNosotros utilizamos el sistema decimal que utiliza 10 dígitos (0,1,2,. . . ,9)

Octal ⇒ 8 dígitos (0,1,2,. . . ,7)

Hexadecimal ⇒ 16 dígitos (0,1,2,. . . ,9,A,B,C,D,E,F)

BINARIO ⇒ 2 dígitos (0 y 1)

Un número en una base cualquiera estará dado por una sucesión de dígitos:

N |base = gpgp−1 . . . g2g1g0.g−1g−2 . . . g−m|base

⇒ Para pasar un número de cualquier base a decimal se utiliza el Teoremafundamental de la numeración:

N |10 =∑p

i=−m gi(base)i

Page 24: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 4/10�� � � � �� 4/10

Por ejemplo:

Dec Hex Oct Bin

0 0 000 00000000

1 1 001 00000001

2 2 002 00000010

3 3 003 00000011

4 4 004 00000100

5 5 005 00000101

6 6 006 00000110

7 7 007 00000111

8 8 010 00001000

9 9 011 00001001

10 A 012 00001010

11 B 013 00001011

12 C 014 00001100

13 D 015 00001101

14 E 016 00001110

15 F 017 00001111

16 10 020 00010000

17 11 021 00010001

Page 25: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 5/10�� � � � �� 5/10

3.1.1. Conversiones

¿En qué consiste?⇒ Pasar un número de una base a otra. Por ejemplo

15|10 = 1111|2 = 17|8 = F|16

La conversión que nos va a interesar es la de Decimal a Base 2 y viceversa.

* Binario⇒ Decimal⇒ Teorema fundamental de la numeración

* Decimal⇒ Base 2 (N |2)⇒ Potencias de 2 conocidas

Si queremos pasar de otra base que no sea Decimal a Base 2 ⇒ primero lo

pasamos a Decimal y después a Base 2.

Page 26: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 6/10�� � � � �� 6/10

Conversión de decimal a base 2 por Potencias de 2 conocidas

Número binario de n bits

20

21

22

2n-1

gn-1 g2 g1 g0 2=N

1. Empezar por el bit i = n − 1:

2. Para el bit i,

Si el número decimal es mayor o igual que 2i⇒ poner gi a 1. El nuevo

número decimal a codificar es el número decimal anterior menos 2i

Si el número decimal es menor que 2i⇒ poner gi a 0.

3. Decrementar i

4. Si i no es negativo volver a la línea 2.

Page 27: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 7/10�� � � � �� 7/10

3.2. Codificación de Números EnterosSi el número entero sólo puede ser positivo: ⇒ Base 2 directamente.

Si también se consideran números negativos ⇒ Complemento a 2

n-1

bit deSigno

Si N>=0, 0Si , 1N<0

Si N>=0, N

Si , (||N|| )+1N<0

2

2

Complemento a 2:

Número binario de n bits

¿Cómo se representa el cero? Sólo como 000. . . 0

¿Qué representa el 100. . . 0? el 100. . . 0 corresponde a −2n−1

¿Cuál es el rango de números enteros que caben en n bits? [−2n−1, 2n−1 − 1]

Page 28: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 8/10�� � � � �� 8/10

3.3. Números fraccionariosEjemplo 101,11|2 = 1 ∗ 22 + 1 ∗ 20 + 1 ∗ 2−1 + 1 ∗ 2−2 = 5,75|10

* Punto Fijo: se supone que hay un punto en una posición fijada.bit deSigno

parte entera

0 0 0

parte fraccionaria

Aquí se suponeque está el punto

1 1 1 1 0

* Punto Flotante: Se construye expresando el número N en dos partes: mantisa

y exponente.

N|2 = M|22E|2

Existen∞ descomposiciones . . . Ejemplo: 5,75 = 0,575∗101 = 0,0575∗102

Pero se toma por convenio justo el valor del exponente a partir del cual

0,5 ≤ M < 1bit deSignoMantisa

Mantisaen base 2

0 1 0

Exponenteen base 2

0 1 0 0 1

bit deSignoExponente

Page 29: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 9/10�� � � � �� 9/10

3.4. Codificación de caracteres

Se utiliza para codificar

texto del tipo:

* Letras mayúsculas y minúsculas del alfabeto

* Dígitos. ”1”,”2”,. . .

* Signos. ¿ ? [ ] ( ) . . .

* Códigos sin representación gráfica que realizan fun-

ciones de control. retorno de carro, . . . .

Código ASCII extendido American Standard Code for Information Inter-

change. A cada signo le corresponde un número de 8 bits ⇒ 256 signos.

Por ejemplo (A-Z) del alfabeto inglés (sin ñ)⇒ 65 al 90, y (a-z)⇒ 97 al 123.

UNICODE 65000 caracteres. Permite gran cantidad de caracteres en diversos

idiomas.

Page 30: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 10/10�� � � � �� 10/10

3.5. Formatos Gráficos•Matriz de Puntos (BitMap):

• Imagen Binaria 1 bit

1 pixel toma valores 0 ó 1)⇒

• Imagen Escala de grises 8 bits

1 pixel toma valores (0, 28 − 1)⇒

• Imagen Color 24 bits

(3 mapas de 8 bits)

1 pixel toma para cada mapa valores (0, 28 − 1)⇒

• Gráficos Vectoriales:

Imagen Vectorial PostScript⇒

Page 31: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/10�� � � � �� 1/10

La Unidad de Memoria

Fundamentos de Informática - [Tema 4]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 32: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/10�� � � � �� 2/10

Índice4.1.Conceptos y definiciones 3

4.2.Clases de Memoria 6

4.3.Organización matricial de la memoria 84.3.1.Direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4.4.La unidad de memoria central 10

Page 33: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 3/10�� � � � �� 3/10

4.1. Conceptos y definiciones

Memoria ≡ Dispositivo de almacenamiento

de información binaria

•Datos

•Programa en código máquina

Características

•Tiempo de acceso: El que transcurre entre el instante en que se

ordena la lectura/escritura de información y se realiza la tarea.

•Modo de acceso:- Secuencial Para llegar a un dato hay que ir

buscando desde el principio

- Directo o Aleatorio Directamente al dato

•Volatilidad: Si se pierde la info al quitar la energía.

•Capacidad: Cantidad de información que puede almacenar.

Page 34: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 4/10�� � � � �� 4/10

Soporte Capacidadde la informacion en bits en Bytes o caracteres Abreviatura

celda elemental 1 - b

octeto 8 1 B

registro 8,16,32,64 1,2,4,8 palabra≡W

memoria de 1 KiloByte 8 ∗ 210 210 1KB

memoria de 1 MegaByte 8 ∗ 220 220 1MB

memoria de 1 GigaByte 8 ∗ 230 230 1GB

memoria de 1 TeraByte 8 ∗ 240 240 1TB

Page 35: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 5/10�� � � � �� 5/10

UnidadAritmético

Lógica

Unidadde Control

MemoriaPrincipal

Uni d

ad

de

En

tr ad

a/S

al id

a

Periférico 1

MemoriaAuxiliar

Disco DuroCD-ROMDisco Flexible, etc

Órdenes de la UC a la

memoria

•Direccionamiento: Seleccionar la info que está en

una determinada posición de la memoria.

•Leer: Obtener una copia de la info seleccionada

•Escribir: Introducir info en la posición selecciona-

da (machaca los datos antiguos en esa posición).

Page 36: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 6/10�� � � � �� 6/10

4.2. Clases de Memoria

Clasificación según

estructura de

Von Neumann

•MemoriaPrincipal

Contiene el programa

en el momento de la

ejecución

•Tacceso ↓↓•Acceso Aleatorio

•Volátil

•MemoriaAuxiliar

Memorias que se

conectan como

periféricos

•Tacceso ↑•No Volátil

•Capacidad ↑↑↑

Page 37: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 7/10�� � � � �� 7/10

Clasificación según

características

•RAMMemorias de acceso aleato-

rio. Utilizadas como memo-

ria principal

•Tacceso ↓↓•Acceso aleatorio

•Volátil

•Admite l/e

•ROM Memorias sólo para

lectura

•Sólo admite lectura•No Volátil

•Necesita programador

•EPROMMemorias repro-

gramables sólo para

lectura

•Sólo admite lectura•No Volátil

•Necesita progra-

mador

•Se borra con UV

•Utilizada en las

BIOS

Page 38: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 8/10�� � � � �� 8/10

4.3. Organización matricial de la memoriaUn registro por fila.

(N≡ no de registros o filas)

⇒ las columnas son las células

elementales del registro.

Hilos deSelección

N registros( 2 )Un número del tipo

m

n células

Hilos delectura/escritura

Page 39: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 9/10�� � � � �� 9/10

4.3.1. Direcciones

Cada registro tiene asignado un número llamado dirección que van desde 0

hasta N − 1.

⇒ para referirnos a un registro hay que escribir la dirección del registro enbase 2 y se activa el registro correspondiente.

A esta operación se le llama direccionamiento y ya sólo faltaría leer o escribir.

N = 2m

n células0

1

N-1

mbits

Registro de selección de

direcciones = S

Decodificador de direcciones

Page 40: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 10/10�� � � � �� 10/10

4.4. La unidad de memoria central

Formadapor:

•Matriz de celdas elementales

o fila de registros.

•Decodificador de direcciones.

•Pequeña lógica de control.

S

.

.

.

.

LECM

ESCM

T

Bus de

Direcciones

(tamaño m)

Bus de

Datos

(tamaño n)

Lectura:1) Direccionamiento⇒ dirección en el registro S2) Ordenar la lectura activando LECM= 1

3) Copiar la información en el registro T

Escritura:1) Direccionamiento⇒ dirección en el registro S2) Disponer de información en el registro T3) Ordenar la escritura activando ESCM= 1

Page 41: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/9�� � � � �� 1/9

La unidad aritmético lógica

Fundamentos de Informática - [Tema 5]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 42: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/9�� � � � �� 2/9

Índice5.1.Biestables y Registros 3

5.1.1.Registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

5.2.Circuitos operadores con enteros 45.2.1.Semisumador . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

5.2.2.Sumador completo (o con acarreo) . . . . . . . . . . . . . . . . 6

5.5.La unidad artimético lógica 7

Page 43: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 3/9�� � � � �� 3/9

5.1. Biestables y Registros

Célula de memoria

o

Celda de memoria

⇒biestable ≡ Dispositivo electrónico con

dos estados estables (y = 0 y y = 1).

Tiene memoria

S

yR

Biestable

Funcionamiento

•Nunca puede activarse a la vez R y S•Si S=1⇒ el estado y vale 1

•Si R=1⇒ el estado y vale 0

•Si S=0 y R=0⇒ el estado y ”recuerda”

su valor

5.1.1. Registro

Conjunto de células de memoria que almacenan información binaria.

S

Qn

R

S

R

S

R

Q1 Q0

Señal de Sincronismo

Page 44: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 4/9�� � � � �� 4/9

5.2. Circuitos operadores con enteros

Objetivo⇒ Construir circuitos lógicos para hacer operaciones

Aritméticas con números enteros en binario.

Vamos a ver dos ejemplos:

5.2.1) Semisumador: Suma aritmética de dos números de 1 bit cada uno.

5.2.2) Sumador Completo o con acarreo: Suma aritmética de dos números de

1 bit cada uno y un acarreo

Acarreo ≡ ”Lo que me llevo” de una operación anterior.

Page 45: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 5/9�� � � � �� 5/9

5.2.1. Semisumador

Suma aritmética de dos números de 1 bit cada uno. b

sa

cSS

Semisumador

a b c s

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

b

s=a+b

a

c=a×b

SS

s=a+b

c=a×b

c ≡ Acarreo⇒ ”Lo que me llevo” de la operación anterior.

Page 46: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 6/9�� � � � �� 6/9

5.2.2. Sumador completo (o con acarreo)

Suma aritmética de dos números de 1 bit cada uno y el

acarreo anterior. b

sa

c2

SCc1

Sumador completo

a b c1 c2 s

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

⇒⎧⎪⎪⎨⎪⎪⎩

s = a ⊕ b ⊕ cc = c1(a ⊕ b) + a · b

SSb

s

ac2

c1

SS

SC

Page 47: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 7/9�� � � � �� 7/9

5.5. La unidad artimético lógica (UAL o ALU)Unidad que realiza las operaciones aritméticas y lógicas requeridas por la UC

(sumar, multiplicar, restar, . . . )

Está construida con semisumadores, sumadores completos, etc.

La UC activa una señal de control para indicarle la operación a realizar.

Necesita dos operandos que almacena en dos registros de n bits.

1. Acumulador: Primer operando, y almacena el resultado2. Operando: Almacena el segundo operando.

Dispone de un registro de estado que indica:

• Si el resultado ha sido positivo, negativo o cero.

• Si hubo desbordamiento en la operación anterior.

Page 48: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 8/9�� � � � �� 8/9

SUMA

MULT

Estado

A = Acumulador

Primer operando

Señales de controlde la UC

Registro delprimer operando

Operaciones que realiza la ALU:

Cargar un dato de la memoria al A

Almacenar en memoria el A

Operaciones Artiméticas.

Operaciones Lógicas.

Incrementos/Decrementos, desplazamientos, rotaciones, . . .

Page 49: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 9/9�� � � � �� 9/9

Ejemplo: Suma de 2 + 3 + 1

Estado inicial de la ALU

? ? ? ? ? ? (?)

(2)

Carga el primer dato en A

0 0 0 0 1 1 (2)

(2)

CARGAR

Suma del número 3

0 0 0 1 0 1 (5)

(3)

SUMAR

Suma del número 1

0 0 0 1 1 0 (6)

(1)

SUMAR

Page 50: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/13�� � � � �� 1/13

Modelo Simple de

Computadora Digital

Fundamentos de Informática - [Temas 6 y 7]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 51: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/13�� � � � �� 2/13

Índice7.1. Modelo Simple de Computadora Digital 3

7.2.Microórdenes 4

7.3.Descripción de Cesius 5⇒ 7.6 Modos de Direccionamiento . . . . . . . . . . . . . . . . . . . 7

7.4.El programa traductor 11

7.5.Transferencias entre Registros 13

Page 52: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 3/13�� � � � �� 3/13

7.1. Modelo Simple de Computadora Digital

P

I

S

CO MD D

SUMA

MULT

.

.

EA

A

EOSA

EPSP

SD ES

S

M

.

.

.

.

LECM

ESCM

ETSTEI

T

EESE

Teclado Pantalla

E

ESCPLEET

Page 53: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 4/13�� � � � �� 4/13

7.2. MicroórdenesMicroórdenes ≡ Órdenes dadas por la UC para ejecutar una instrucción

* Órdenes a la UAL (SUMA,RESTA,. . . ).

* Órdenes a la Memoria (LECM y ESCM).

* Órdenes a la unidad de entrada/salida (LEET y ESCP)

* Señales de gobierno a los enlaces (SP, ET, ST, EA,. . . ).

* Incremento del contador del programa INCP.

Page 54: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 5/13�� � � � �� 5/13

7.3. Descripción de Cesius¿Qué es?⇒Máquina ficticia con estructura de Von Neumann.

Tiene un enlace o Bus de datos (M) de 16 bits, y un enlace o Bus de direcciones

(S) de 11 bits.

⇒ 211 direcciones de memoria⇒ [0, 2047]

Características

- Unidad Aritmético Lógica⇒ A=16 bits

- Unidad de Control⇒ I=16 bits y P=11 bits

- Unidad de memoria principal.

* S= 11 bits

* T= 16 bits

* Registros de MemoriaM(S)= 16 bits

- Unidad de Entrada/Salida⇒ E=16 bits

Page 55: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 6/13�� � � � �� 6/13

Almacenamiento

en memoria

* Datos

- Nos enteros⇒ Complemento a 2- Nos flotantes⇒ NO SE MANEJAN- Caracteres⇒ Código ASCII

* Instrucciones en código máquina

4 bits 1 bit 11 bits

CO MD D

24instrucciones. (7.1.1) Juego de instrucciones

2 7.6posibilidades. ( ) Modos de direccionamiento

Page 56: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 7/13�� � � � �� 7/13

7.6 Modos de DireccionamientoModos de localizar una posición en memoria.

Modo Directo (absoluto o normal). CO 0 D

D indica directamente la posición de memoria⇒ el dato está en M(D)

Modo Indirecto

D indica la posición de

memoria donde está guardada

la dirección del dato. ⇒ el

dato está en M(M(D))CO 1 16

8

9

15

16

3

8

NOTA: Toda lainformación de losregistros está en binario

NOTA: Existe otro modo de direccionamiento (Inmediato).

Page 57: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 8/13�� � � � �� 8/13

7.1.1 Juego de Instrucciones de Cesius

Parar 0000 termina la ejecución del programa

Almacenar 0001 Guarda una copia de A en la memoria

Cargar 0010 Carga un dato de la memoria en AEscribir 0011 Escribe un dato de la memoria en la pantalla

Leer 0100 Leer un dato del teclado y guardarlo en la memoria

Sumar 0101 Suma a A un dato de la memoria

Restar 0110 Resta a A un dato de la memoria

Multiplicar 0111 Multiplica a A un dato de la memoria

Dividir 1000 Divide A entre un dato de la memoria

y se queda con la parte entera

Módulo 1001 Halla el resto de dividir A entre un dato de la memoria

Salto incondicional 1010 Introduce en P un dato de la memoria

Salto si A negativo 1011 Idem si A es negativo

Salto si A nulo 1100 Idem si A es cero

Salto si A positivo 1101 Idem si A es positivo

Escribir Caracter 1110 Escribe un dato de la memoria como caracter

ASCII en la pantalla

Leer Caracter 1111 Leer un caracter ASCII del teclado y guardarlo

en la memoria

Page 58: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 9/13�� � � � �� 9/13

7.1.2 Ejemplo de programa en código máquina

Escribir la suma de dos números introducidos por el

usuario.

Número A ≡ Dirección 10⇒M(10)

Número B ≡ Dirección 11⇒M(11)

Número C ≡ Dirección 12⇒M(12)

inicio programa

final programa

Leer A y B

Escribir C

C A+B

MEMORIA

Dirección CO MD D

20 0100 0 00000001010

21 0100 0 00000001011

22 0010 0 00000001010

23 0101 0 00000001011

24 0001 0 00000001100

25 0011 0 00000001100

26 0000 0 00000000000

Page 59: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 10/13�� � � � �� 10/13

Inconvenientes

* Hay que saberse de memoria los CO

* Hay que codificar los datos en binario

* Hay que reservar manualmente el espacio para Variables y

constantes.

⇒ Solución: Escribir el programa en un lenguaje legible utilizando una apli-

cación para traducirlo a código máquina.

⇒ el programa traductor

Page 60: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 11/13�� � � � �� 11/13

7.4. El programa traductorPermite traducir el programa en lenguaje legible a código máquina.

Elementos

del

lenguaje

simbólico

*Sentencias

deInstrucción

- Operación=código mnemotécnico de tres letras

-Modo de

Direccionamiento

MD≡ 0⇒ NadaMD≡ 1⇒ I

- Operando⇒ Decimal

*Directivas o

Pseudoinstrucciones

- Organización del programa en memoria

- Reserva de memoria

- Indicar al traductor el final del programa

* Comentarios. Permiten aclarar el programa (el traductor los

ignora)⇒ Por Ejemplo: CAR 11 ’cargar el número B

Tipos de lenguajes

simbólicos en Cesius

* 7.3 Lenguaje simbólico de 1 paso (LS1)

* 7.4 Lenguaje simbólico de 2 pasos (LS2)

Page 61: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 12/13�� � � � �� 12/13

Sentencias de Instrucción y las transferencias que representan

Page 62: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 13/13�� � � � �� 13/13

7.5. Transferencias entre Registros

Page 63: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/3�� � � � �� 1/3

Algoritmos

y

Diagramas de flujo

Fundamentos de Informática - [Temas 8]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 64: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/3�� � � � �� 2/3

Índice8.1. Algoritmos y pseudocódigo 3

8.2. Objetos y operaciones 3

8.3. Fases del proceso de resolución de problemas 3

8.4. Diagramas de flujo 3

Page 65: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

8 Algoritmos y diagramas de flujo

8.1) Algoritmos y pseudocódigo

Información deun problema

Para procesar Algoritmo

Conjunto ordenado yfinito de operaciones

para resolver unproblema concreto

De cómoprocesar

Programa

programación

Lista deTareas

Expresiónen un

lenguajenatural

Expresióngráfica

Pseudocódigo

1. Hallar el cociente c de a/b2.Tomar la parte entera del conciente d=[c]3. Obtener el resto como a - bd4. Fin

1. Si x es positivo, el resultado es x2. Si no, el resultado es -x3. Fin

1. Iniciar suma parcial sp a cero2. Iniciar índice i a uno3. Hacer:

3.1 Dar a sp el valor sp + vi2

3.2 Incrementar i3.3 Si i < 10 ir al punto 3

4. El resultado es la raíz de sp5. Fin

E j e

m p

l o s

AlgoritmoSecuencial

Algoritmocon

bifurcación

Algoritmocon bucle

Diagrama deflujo

Page 66: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

8.2) Objetos y operaciones

Objeto nombre valor tipoíndice i variable nº entero

letra Li variable carácter

sumando a variable nº entero

sumando b variable nº entero

media m variable nº realdos 2 constante nº entero

1. Iniciar índice i a 12. Tomar L

iletra i-ésima de la palabra

3. Reemplazar por Li+1, siguiente en el alfabeto

4.Si Lies la última letra de la palabra, entonces ir a a 6

5. Sumar uno a i e ir a 26. Fin

Objetos Elementos del lenguaje algorítmico que contienen datos

Tienen atributos

nombre

clase de valor

tipoEjemplos de objetos en dos algoritmos

1. Preguntar el valor de a2. Preguntar el valor de b

3. La media es m = (a+b)/2

4. Fin

En principio todas las que se pueden realizar conuna calculadora muy simple: suma, resta, ..

La operación "=" indica una asignación dela parte de la izquierda al objeto de la

derecha

Operaciones

Page 67: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

Análisis del problema: Conocer los datos de entrada y los resultados quedeseamos obtener.

Intentar identificar las partes que se sospecha se pueden resolver. Espreciso asegurarse de que al resolver los trozos, se resuelve el problema.

Resolución de los subproblemas y prueba de validez de los mismos.

Construcción del algoritmo: Se puede expresar mediante gráficos (diagramasde flujo) o mediante lenguaje común (pseudocódigo).

1)

2)

3)

4)

8.3) Fases del proceso de resolución de problemas

8.4) Diagrama de flujo u organigrama

Es un tipo de descripción gráfica de un algoritmo que utiliza el siguiente conjuntode símbolos

Inicio de bloque Proceso Bifurcación Entrada o Salida

Fin de bloque Subprograma Módulo Actualización

Page 68: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

8.6 Ejemplos de diagramas de flujo

Diagrama de Flujo

1.

2.

3.

4.

Leer primer sumando a

Leer segundo sumando b

Hallar la suma de lossumandos c=a+b

Escribir c

Pseudocódigo

Leer dos números del teclado yescribir la media aritmética

EJ 1.1) Media de dos valores

Leer un número del teclado yescribir su valor absoluto

EJ 1.2) Valor absoluto

Diagrama de flujo

R

8.6.1 Programa Lineal

8.6.2 Programa con bifurcación

Page 69: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

Diagrama de Flujo

1.

2.

3.

4.

Dadas las componentes de un vector de R2, escribir el número del cuadrante en elque se haya

EJ 1.3) Cuadrante

8.6.2 Programa con bifurcación

Page 70: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/10�� � � � �� 1/10

Introducción al Lenguaje C

Fundamentos de Informática - [Tema 10]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 71: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/10�� � � � �� 2/10

Índice10.1. Introducción 3

10.2. Visión General 4

10.3. Componentes del Lenguaje C 510.3.1. Palabras Reservadas . . . . . . . . . . . . . . . . . . . . . . 6

10.4. Ejemplos 710.4.1. Ejemplo main y printf . . . . . . . . . . . . . . . . . . . . . 8

10.4.1. Ejemplo main y printf(cont) . . . . . . . . . . . . . . . . . . 9

10.4.2. Ejemplo scanf . . . . . . . . . . . . . . . . . . . . . . . . . 10

Page 72: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 3/10�� � � � �� 3/10

10.1. Introducción

CaracterísticasLenguaje C

⇓ANSI C

•Lenguaje de propósito general⇒ Lenguaje alto nivel

•Conciso, sencillo, operadores potentes

•Portable⇒ Otros ordenadores

•Modular⇒ funciones⇒ bibliotecas

•Flexible

• alto nivel ⇒ permite definir tipos de datos

complejos

• bajo nivel⇒ permite acceso a direcciones de

memoria

Page 73: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 4/10�� � � � �� 4/10

10.2. Visión General

1.- Escritura

2.- Compilación

3.- Montaje

4.- Ejecución

COMPILADOR

fichero fuente con

código en C, (.c)

MONTADOR

DE ENLACES

fichero de código

objeto (.o)

Funciones de

biblioteca (.lib,.dll)

EDITOR DE TEXTO

fichero ejecutable,

(.exe)

Page 74: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 5/10�� � � � �� 5/10

10.3. Componentes del Lenguaje CSentencias terminadas en ;

/* inicio comentarios y fin de comentarios */

Variables, constantes, operadores, expresiones, funciones.

Bloques (bifurcaciones, bucles y funciones) entre llaves {}.

NombresVariables

•Distinción Mayúsculas/minúsculas.

•No usar tildes ni la letra ñ.

• Declaración de variables al principio de la función

(Reserva de Memoria)

Page 75: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 6/10�� � � � �� 6/10

10.3.1. Palabras Reservadas

auto default float register struct volatile

break do for return switch while

char double goto short typedef

case else int signed union

const enum if sizeof unsigned

continue extern long static void

Page 76: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 7/10�� � � � �� 7/10

10.4. EjemplosFunción main: Imprescindible para realizar un fichero ejecutable (.exe).

Funciones de

Entrada/Salida

•Función printf: Escritura en pantalla

•Función scanf: Lectura de teclado

•Especificadores

de formato

%c: carácter

%d: número entero

%f: número real

Page 77: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 8/10�� � � � �� 8/10

10.4.1. Ejemplo main y printf

#include <stdio.h>

void main(void)

{

int x; /* declaración variable x de tipo entero */

char y; /* declaración variable y de tipo carácter */

x = -50; /* asignación de valores a variables */

y=72;

printf(“ x es %d, y es %c \n”, x,y); /* salida por pantalla */

x=90;

y=77;

printf(“ ahora x = %d, e y= %c”, x,y);/* salida por pantalla */

}

Al declarar una variable se reserva espacio en memoria para ella.

El espacio en memoria para las variables declaradas se libera al finalizar la

función main

Page 78: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 9/10�� � � � �� 9/10

10.4.1. Ejemplo main y printf(cont)

main()

{

int x; /* declaración variable x de tipo entero */

char y; /* declaración variable y de tipo carácter */

x = -50; /* asignación de valores a variables */

y=72;

printf(“x es %d, y es %c \n”, x,y); /* salida por pantalla */

x=90;

y=77;

printf(“ahora x = %d, e y= %c”, x,y);/* salida por pantalla */

}

00001000010111011

01001111010100010

: :

: :

00001000011111011

00001000010111011

01001111010100010

: :

: :

00001000011111011

00001000010111011

01001111010100010

01001111010100010

01001111010100010

: :

: :

00001000011111011

01 ... ... 10

01 ... ... 10

: :

01 ... ... 10

?

?

01 ... ... 10

01 ... ... 10

: :

01 ... ... 10

72

90x

y

01 ... ... 10

01 ... ... 10

: :

01 ... ... 10

?

-50x

y

01 ... ... 10

01 ... ... 10

: :

01 ... ... 10

?

?

x es -50, y es H

ahora x= 90, e y= M

fuen

te

ob

jeto

ejec

uta

ble

1

2

3

4

1 2

3 4

Page 79: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 10/10�� � � � �� 10/10

10.4.2. Ejemplo scanf

#include <stdio.h>

void main(void)

{

int x; /* declaración variable x de tipo entero, primer sumando */

int y; /* declaración variable y de tipo entero, segundo sumando */

int z; /* declaración variable z de tipo entero, para el resultado */

scanf(“ %d ”, &x); /* Para leer del teclado un entero */

scanf(“ %d ”, &y); /* ídem */

z = x+y; /* suma */

printf(“ La suma vale %d”, z); /* salida por pantalla */

}

Page 80: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/3�� � � � �� 1/3

Sentencias de control en C

Fundamentos de Informática - [Tema 12]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 81: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/3�� � � � �� 2/3

Índice12.1. Operaciones en secuencia 3

12.2. Operaciones condicionales 3

12.3. Procesos iterativos 3

12.4. Ejemplos 3

Page 82: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

B

A

{ sentencia_1 ; sentencia_2 ; . . }

sentencia_1 ;

El lenguaje C dispone de sentencias de control adaptadasa los diagramas de flujo estructurados

Estructuras básicasde un diagrama de flujo

OPERACIONESEN SECUENCIA

OPERACIONESCONDICIONALES

OPERACIONESITERATIVAS

TEMA 12: SENTENCIAS DE CONTROL DE LOS PROGRAMAS

12.2. Operaciones en Secuencia

Consiste en realizar una operación trasotra sin bifurcaciones ni saltos.

Page 83: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

I F

if (condición) /* No lleva ";" */{.........; /* Bloque de

sentencias A */}

Cond ?

A

SI

NO

1º) Se evalúa una condición.

2º) Dependiendo del resultado, el flujo de ejecución seguirá una de las dos bifurcaciones.

I F - ELSE

if (condición) /* No lleva ";" */{.........; /* Bloque de

sentencias A */}

else{.........; /* Bloque de

sentencias B */}

B

Cond ?

A

NO

SI

12.3. OPERACIONES CONDICIONALES

Page 84: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

EJEMPLOS:Operaciones

Condicionales"ANIDADAS"

NO

NO

SI

B

Cond2 ?

A

SI

Cond1 ?

NO

NO

SI

Cond2 ?

A

SI

Cond1 ?

B

EJEMPLOOperaciones

Condicionalesen

"ESCALERA"

NO

NOSI Cond2 ?

SI

B

Cond3 ?

CA

Cond1 ?

SI

NO

12.3. OPERACIONES CONDICIONALES (CONT)

Page 85: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

• Caso de decisión con bifurcación múltiple (Ej. Menús)• FUNCIONAMIENTO: Se compara una variable con una lista deconstantes enteras o carácter, y cuando sea igual a alguno de los elementosde la lista, se ejecuta una sentencia (o bloque) y todas las siguientes.

BREAKLa sentencia break indica que termina la ejecución del bloque switch. Si noapareciera se ejecutaríatodo lo que viene después, hasta la llave final del switch.

SWITCHSWITCH

switch (variable) {case const_1: sentencia_1;case const_2: sentencia_2;:case const_n: sentencia_n;default: sentencia; /* se ejecuta si no se encuentran igualdades */}

switch (variable) {case 1:case 2:case 3: sentencia1; break;case 4: sentencia2;}

Page 86: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

PROCESOSITERATIVOS

Para realizar un conjuntode sentencias repetidas

veces.

¿Se conoce a priori el nº de iteraciones ?

SI

NO

SENTENCIA for

SENTENCIAS:- while- do..while

FOR

for( Valores iniciales; Condición; Actualización ){ Bloque de sentencias; }

SINTAXIS

VALORES INICIALES: Es la parte quese usa normalmente para dar un valorinicial a la variable decontrol del bucle. Admite cualquiersentencia, y sólo se ejecuta una vez.

CONDICIÓN : Expresión relacional quedetermina cuando se sale del bucle. Seejecuta el bucle siempre que la condiciónse cumpla.

ACTUALIZACIÓN: Define cómo cambiala variable de control cada vez.

ValoresIniciales

Actualización

Bloque desentencias

Condición

SI

NO

12.4. PROCESOS ITERATIVOS: FOR, WHILE, DO WHILE

Page 87: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

WHILE

while ( condición ) { bloque de sentencias; }

SINTAXIS

La condición ha de ser cierta para pasar aejecutar el cuerpo del bucle.

...¿Y SI SE DESCONOCE EL NUMERO DE ITERACIONES?

LA REPETICIÓN TERMINA CUANDO SE CUMPLE CIERTA CONDICIÓN

DO ...WHILE

do { bloque de sentencias; }while ( condición );

SINTAXIS

Es un bucle con comprobación de lacondición a la salida, por tanto, el bloquede sentencias se ejecuta al menos una vez.

Bloque desentencias

Condición

SI

NO

Bloque desentencias

CondiciónSI

NO

12.4. PROCESOS ITERATIVOS (CONT)

Page 88: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

{int numero, divisor;printf("Introduzca el número \n");scanf("%d", &numero);divisor = 2;while (numero%divisor != 0) divisor++;if (divisor == numero) printf("%d es primo\n", numero);

else printf("%d no es primo\n", numero);}

EJEMPLOS

WHILE

void main(void){int x, y, z, var;printf(“Deme datos x e y \n”);scanf(“ %d %d”, &x, &y);printf(“Elija opcion: \n 1-sumar x + y \n 2 –restar x – y \n ");printf("3–multiplicar x * y \n”);scanf("%d", &var);switch(var) {

case 1: z = x + y ;break;case 2: z = x – y ;break;case 3: z = x * y ;break;default: printf( "No eligió bien la opción\n" );

}}

{int x, y;for( x = 0, y = 5; x + y < 7; ++x){ z = x - y; printf(“%d \t”, z);}for( x = 0, y = 10; x < y ; x++, y--) printf("\n %d \t %d \n", x, y);}

FOR

SWITCH

void main(void)

void main(void)

#include <stdio.h>

#include <stdio.h>

#include <stdio.h>

Page 89: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/6�� � � � �� 1/6

Funciones en C

Fundamentos de Informática - [Tema 13]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 90: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/6�� � � � �� 2/6

Índice13.1. Formato de una función: Prototipo, definición y llamada 3

13.2. Argumentos de las funciones:Paso de parámetros por valor y referencia 4

13.3. Recursividad 5

13.4. Ejemplos 6

Page 91: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

Tema 13: Funciones en C

FUNCIÓN

Proporciona unaforma conveniente de

encapsular tareas

Definición

Desde el punto de vista del código quellama a una función:

1.- No hace falta saber cómo hace la tarea.2.- Sólo hay que saber qué hace

Utilización

sum(x,y)=4;

No se puede asignar unvalor a una función:

El valor devuelto por una funciónpuede ignorarse en el código dellamada

Indica: - El tipo de datos que devuelve. - Los parámetros que utiliza. - Declaraciones y sentencias para la tarea que realiza.

La llamada a la función se realizainvocando su nombre e incluyendo entreparéntesis los argumentos concretos deesa llamada.

El prototipo de la función sirve para indicar alcompilador el tipo de dato devuelto y el tipo delos parámetros.No es necesario escribir el nombre de losparámetros en el prototipo o declaración.

Se realiza donde se vayaa utilizar la función

Para comprobar la consistenciadel código del programa

Declaracióno

Prototipo

13.1 Formato de una función: Prototipo, definición y llamada

Page 92: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

Recordatorio:Las variables que reciben lacopia del valor son: - Locales. - Vigencia hasta que termina

la función.

int potencia ( int base , int *exponente ){ int i, p; p=1; for ( i=1; i <= *exponente; i++ ) p=p*base ; return p; /* Devuelve el entero p */}

Ejemplo de definición de una función

cuando se encuentre un return:1.- se pasa el resultado al tipo de dato que devuelve lafunción.2.- se devuelve el resultadodonde se llamó a la función3.- se termina la ejecución dela función

Declaración de parámetros otambién llamados argumentos

Nombre dela funciónTipo de dato

devuelto(Si no devuelve nada

se declaracomo tipo void)

Existen dos formas de pasarcada argumento de una función

Si una función tiene quemodificar el contenido de

la memoria

Se pasa porreferencia

Se pasa la dirección.Luego se utilizan

punteros

Si la función sólo necesitauna copia del valor

Se utilizan variablesdel tipo correspondiente

Se pasa porvalor

13.2 Argumentos de las funciones: Paso de parámetros por valor y por referencia

Definición de una Función

Page 93: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

#define

13.3 Recursividad

En C las funciones pueden llamarse a si mismas Una función es recursiva si ensu definición tiene llamadas

a la propia función

En cada llamada se crea un nuevoconjunto de variables locales

No ahorramemoriapueden

resultarmás claras

Normalmenteson más lentas

Recursividad comparadacon operaciones iterativas

int fact (int n){ int nuevo; if (n==1) return (1); nuevo=fact(n-1)*n; return (nuevo);}

Ejemplo 1

void main (void){ int n; printf ("Introduzca un número:"); printf (" se para con 0 \n"); scanf ("%d",&n); if (n!=0)

main ();}

Ejemplo 2

#include

Permite incluir un fichero en el programa.

Normalmente es un fichero de cabecera(header) con extensión .h =

Fichero con declaracionesde funciones

Si el fichero estáen el mismodirectorio del

programa fuente

#include "fichero"

Si el fichero estáen una ruta

predefinida en elcompilador

#include <fichero>

#define ITERMAX 10

void main (void) { int i; for (i=0; i < ITERMAX ; i++)

printf ("Ejemplo\n"); }

Ejemplo

#define NOMBRE_CTE valor

Se sustituye el NOMBRE_CTE por el valor

Page 94: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 1/9�� � � � �� 1/9

Vectores, cadenas, matrices y

punteros

Fundamentos de Informática - [Tema 14]

1o Ingeniería Química

Manuel López Martínez

José Ángel Acosta RodríguezIsmael Alcalá Torrego

1º INDUSTRIALES

Page 95: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

�� � � � �� 2/9�� � � � �� 2/9

Índice14.1. Vectores 3

14.2. Cadenas de caracteres 4

14.3. Punteros 5

14.4. Reserva dinámica de memoria 6

14.5. Matrices 7

14.6. Paso de tablas como argumento a funciones 8

14.7. Ejemplos 9

Page 96: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

14.1 VECTORES

Permiten almacenar tablas

Ejemplos de declaración con inicialización

14.0

15.0

16.0

Almacenamiento de vectores en memoria

char Letras[4]={'s','s','w','a'} ;

float vector[3]={14.0,15.0,16.0} ;

Declaración de vector

Numero de elementosdel vector

int nombre_vector[ 10 ] ;

vector[ 0 ] vector[ 1 ] vector[ 2 ] vector[0]

vector[1]

vector[2]

Nombre delvector

(Se puede utilizar como unaconstante con la dirección delprimer elemento del vector)

Tipo de datoalmacenadoen el vector

Page 97: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

14.1 MATRICES ALMACENADAS EN VECTORES

Una matriz puede almacenarse en forma de vector

Ejemplos de declaración con inicialización

Matriz 2x2

float vector[4]={14.0,15.0,16.0,17.0} ;

Declaración de vector

Numero de elementosde la matriz

int nombre_vector[ 10 ] ;

vector[ 0 ] vector[ 1 ]

Nombre delvector

(Se puede utilizar como unaconstante con la dirección delprimer elemento del vector)

Tipo de datoalmacenadoen el vector

vector[ 2 ] vector[ 3 ]

fila i=0

fila i=1

Columna j=0 Columna j=1

int i=0; /* índice para el número de fila */int j=0; /* índice para el número de columna */int nc=2; /* Número de columnas */ float vector[4]={14.0,15.0,16.0,17.0} ;

printf("%f",vector[i*nc+j]); /* elemento ij de la matriz */

Page 98: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

14.2 CADENA DE CARACTERES

Se almacenan en un vector de caracteres.

Ejemplos de declaración con inicialización

Almacenamiento en memoria igual que un vector

char cadena[5]={'c','a','s','a',0} ;

char cadena[5]="casa" ;

Declaración como vector de caracteres

Número de elementosde la cadena + el

carácter fin de cadena,cuyo código ASCII es el

0

char nombre_cadena[ 10 ] ;

Nombre de lacadena

(Se puede utilizar como unaconstante con la dirección delprimer elemento del vector)

Tipo de dato essiempre

char

Page 99: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

14.3 PUNTEROS

Variables que van a almacenar direcciones de memoria

Ejemplo de declaración con inicialización

Asignación de dirección de memoria

char * pcar=NULL ;

Declaración del puntero

int * pnombre_puntero;

Nombre delpuntero

(Representa la dirección delelemento apuntado )

Tipo de datoapuntado

Identificadorde

Puntero

char car;char * pcar=NULL ;

pcar=&car;

Modificación del contenido de la variable apuntada

*pcar='a';

printf("%c", car);

Operaciones aritméticas permitidas con punteros

� Restar dos punteros� Comparar dos punteros.� Sumar o Restar un número entero a un puntero.

Page 100: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

#include <stdio.h>float ProdEsc(float *v1,float *v2,int dim);void leevector(float *v,int dim);void main(void){float vector1[100]; /* primer vector */float vector2[100]; /* segundo vector */float result; /* resultado */int dim; /* longitud del vector */do{printf("\nLongitud del vector:\t");

scanf("%d",&dim);} while (dim < 1 || dim > 100);/* Lectura de vectores */printf("\nLectura del 1º vector\n");leevector(vector1,dim);printf("\nLectura del 2º vector\n");leevector(vector2,dim);/* Calculo del producto escalar */result=ProdEsc(vector1,vector2,dim);/* Escritura de resultado */printf("\nProducto escalar: %f\n",result);}

ASIGNACIÓN DE MEMORIA DINÁMICA

Hasta el momento todos losvectores y cadenas ocupaban un tamaño fijo en memoria

Se desea trabajar contablas de longitud variable

(O desconocida)

OPCION 1 . Declarar tablas“suficientemente grandes” parautilizar sólo una parte de ellas OPCION 2

.Reserva dinámica de memoria

void leevector(float *v,int dim){int i; /* indice */printf("\n");for (i=0;i<dim;i++){

printf("Componente %d:\t",i);scanf("%f",&v[i]);

}}

float ProdEsc(float *v1,float *v2,int dim){int i; /* indices */float sp=0.0;for (i=0;i<dim;i++){

sp=sp+ v1[i]*v2[i];}return sp;}

14.4 RESERVA DINÁMICA DE MEMORIA (I)

Page 101: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

ASIGNACIÓN DE MEMORIA DINÁMICA (II)

DECLARACIÓNvoid * malloc( int )

LA SOLUCIÓN SE ENCUENTRA

EN EL USO DE LA FUNCIÓN

MALLOC

Elprototipo se encuentra en alloc.h, por lo que se añade#include <alloc.h>

ARGUMENTO DE ENTRADAtamaño (en octetos)

que se necesita

ARGUMENTO DE SALIDAdirección del primer elemento o NULL en caso de error

EL TAMAÑO EN MEMORIA DE UN ELEMENTO DEL VECTOR SE DETERMINA CON

sizeof ( tipo )

El valor devuelto es unPuntero a void

(void * ) que se conviertecon un molde

El tamaño se especifica en

OCTETOS

La memoria reservada ha de liberarse cuando yano se necesite

Free (direccion delbloque)

14.4 RESERVA DINÁMICA DE MEMORIA (II)

Page 102: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

#include <stdio.h>#include <stdlib.h>#include <alloc.h>

float ProdEsc(float *v1,float *v2,int dim);void leevector(float *v,int dim);float *pvect1; /* puntero al primer vector */float *pvect2; /* puntero al segundo vector */float result; /* resultado */int dim; /* longitud del vector */

printf("\nLongitud del vector: \t");scanf("%d",&dim);pvect1= (float*)malloc(dim*sizeof(float));

if (pvect1==NULL) exit();pvect2= (float*)malloc(dim*sizeof(float));if (pvect2==NULL) { free(pvect1) ; exit(); }

/* Lectura de vectores */printf("\nLectura del primer vector\n");leevector(pvect1,dim);printf("\nLectura del segundo vector\n");leevector(pvect2,dim);

/* Calculo del producto escalar */result=ProdEsc(pvect1, pvect2,dim);

/* En caso de que los vectores no vayan a ser utilizados más */

free(pvect1);free(pvect2);

/* Escritura de resultado */printf("\nEl producto escalar es %f\n",result);

}

ASIGNACIÓN DE MEMORIA DINÁMICA (III)

EJEMPLO: Producto escalar modificado (funciónmain)

...(añadir definiciones defunciones)

/* o vaya a terminar la ejecución del programa */

void main(void){

...(añadir definiciones defunciones)

14.4 RESERVA DINÁMICA DE MEMORIA (III)

Page 103: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

14.5 MATRICES

Permiten almacenar tablas bidimensionales.

Ejemplos de declaración con inicialización

Matriz [ 0 ] [ 0 ] Matriz [ 0 ] [ 1 ] Matriz [ 0 ] [ 2 ]

Matriz [ 1 ] [ 0 ] Matriz [ 1 ] [ 1 ] Matriz [ 1 ] [ 2 ]

11.0

12.0

13.0

14.0

15.0

16.0

Matriz[0][0]

Matriz[0][1]

Matriz[0][2]

Matriz[1][0]

Matriz[1][1]

Matriz[1][2]

Almacenamiento de matrices en memoria

char SopaLetras [4][6]={{'s','s','w','a','e','d'}, {'a','e','f','i','d','a'},

{'n','d','o','f','o','d'}, {'a','d','l','f','d','o'}} ;

float Matriz[2][3]={ {11.0,12.0,13.0} , {14.0,15.0,16.0} } ;

Nombre dela matriz

(Se puede utilizar como unaconstante con la dirección delprimer elemento de la matriz)

Tipo de datoalmacenadoen la matriz

Numero de filasde la matriz

Numero de columnasde la matriz

int nombre_matriz [ 10 ] [ 4 ] ;

Declaración de matrices

Page 104: Libro de transparencias Fundamentos de Informática 1º …jaar/Datos/FI/LibroTransparencias.pdf · Lógica Cableada y Programada Lógica Cableada: •Los algoritmos están predefinidos

Recordatorio:Las variables que reciben lacopia del valor son: - Locales. - Vigencia hasta que termina

la función.

Ejemplo de definición de una función

Tipo de datodevuelto

(Si no devuelve nadase declara

como tipo void)

Existen dos formas de pasarcada argumento de una función

Si una función tiene quemodificar el contenido de

la memoria

Se pasa porreferencia

Se pasa la dirección.Luego se utilizan

punteros

Si la función sólo necesitauna copia del valor

Se utilizan variablesdel tipo correspondiente

Se pasa porvalor

Paso de un vector como argumento

#include <stdio.h>

void suma ( int elemento, int * pvector, int vector[ ] );

void main (void){ int vector[3]={0,1,2}; suma(vector[0], &vector[0], vector);}

void suma ( int elemento, int * pvector, int vector[ ] ){ printf("%d, %d, %d", elemento, *pvector, vector[0]);}

14.6 PASO DE TABLAS COMO ARGUMENTO A FUNCIONES