INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del...

82
CARRERA DE INGENIERÍA DE LA INFORMACION HERRAMIENTAS INFORMATICAS PARA INGENIEROS Algoritmos Introducción HERRAMIENTAS INFORMATICAS PARA INGENIEROS Semana 1

Transcript of INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del...

Page 1: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

AlgoritmosIntroducción

HERRAMIENTAS

INFORMATICAS PARA INGENIEROS

Semana 1

Page 2: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Objetivos:

• Comprender la estructura de un computador

• Diferenciar entre un Algoritmo un código fuente

• Conocer la estructura de un algoritmo

• Especificar un Algoritmo

Page 3: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Page 4: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Page 5: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Estructura de una computadora

Una computadora consta de Unidad Central de Proceso (UCP/CPU), memoria y

almacenamiento, dispositivos perifericos (incluyendo algun tipo de conexion de red). Una

computadora ejecuta cuatro operaciones que se realizan en un ciclo conocido por EPSA

(o IPSO, input, processing, output, storage):

1 2 3

4

Page 6: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Estructura de una computadora

Page 7: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Unidades de medida de almacenamiento.

Bit: un dígito binario 0 o 1.Byte: una secuencia de ocho bits.

Page 8: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Software de aplicaciones

El software de aplicacion tiene como funcion principal asistir y ayudar a un

usuario de una computadora para ejecutar tareas especificas. Los programas

de aplicacion se pueden desarrollar con diferentes lenguajes y herramientas de

software.

Page 9: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Proceso de transformación …

Page 10: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Algoritmos

¿Que es un algoritmo?

– “Una secuencia de instrucciones donde se

especifica un conjunto de operaciones necesarias

para resolver cualquier problema de un tipo dado”.

– Ejemplo sumar dos números

Page 11: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Algoritmos

• Sirven para resolver un tipo de problema

especifico.

• Son secuencias de pasos concretos.

• Requiere la definición de la entrada y la salida.

• Adecuados para ser ejecutados por un

computador

Page 12: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Page 13: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Muchos programadores cuando empezamos a

programar, utilizamos la típica frase de :

“lo importante es que funcione”

claro que es importante que el programa

funcione. Pero si hay n programas que cumplen

con el objetivo, seguramente los n no afronten el

problema de la misma manera.

Page 14: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Algoritmos1. 5+1=6

2. Anotar 6

3. 2+9=11

4. Anotar 1 y guardar 1

5. 4+0=4

6. 4+1=5

7. Anotar 5

8. El resultado es 516

491+ 25

516

Page 15: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Algoritmos

Tipos de datos : Números: enteros, reales, complejos

Texto: letras, palabras, frases…

Page 16: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Algoritmos

¿Qué tiene que ver con la programación?

– La programación consiste en crear programas de

computador que resuelvan problemas específicos.

– Un programa de computador es la implementación

de un algoritmo.

Page 17: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Características de los algoritmos

Son independientes tanto del lenguaje de programación en el

que se expresan como del hardware en que se ejecutan los

programas

Algoritmo

Código en C

Código en

Phyton

Código en

Java

Computadora con

los

compiladores/interp

retes de C y PHyton

Computadora con

el compilador de

Fortran

Expresado en Ejecutado en

Page 18: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

El rol del algoritmo en la resolución de problemas

La resolución de un problema en computadora requiere como

paso previo el diseño de un algoritmo que especifique el

procedimiento para resolver el problema. Es decir, antes de

codificar un programa se requiere diseñar el algoritmo.

Page 19: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Análisis del ProblemaDiseño del Algoritmo

Problema

Page 20: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Diseño de algoritmos

Diseño descendente

. . .

Problema

Subproblema Subproblema Subproblema Subproblema

Subproblema Subproblema Subproblema Subproblema SubproblemaSubproblema

Subproblema Subproblema

Page 21: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Diseño de algoritmos

Diseño descendente

Ejemplo: el problema del cajero automático

Cajero

automático

Lectura y

validación

del PIN

Selección de

tipo de

cuenta

Selección de

tipo de

operación

Finalizar

Consulta de

saldo

Traspaso

entre cuentas

propias

Retiro de

efectivoPago de

servicios. . .

. . .

Page 22: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Diseño de algoritmos

Especificación del algoritmo: pseudocódigo

Las acciones y las estructuras de control se representan en el

pseudocódigo con palabras reservadas del inglés, similares a las

utilizadas en los lenguajes de programación estructurada. Entre estas

palabras reservadas, las más usadas son:

Comúnmente, la

escritura del

pseudocódigo

requiere el uso de la

indentación de las

diferentes líneas

Begin

read N

NE ← 0

SE ← 0

SP ← 0

while NE < N

read E, P

SE ← SE + E

SP ← SP + P

NE ← NE + 1

end while

Page 23: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROSDiseño de algoritmos Representación gráfica del algoritmo: diagramas de flujo

Un diagrama de flujo es una técnica de representación gráfica de la

lógica o pasos de un algoritmo. El diagrama de flujo consiste de :

• un conjunto de símbolos

• flechas que conectan estos símbolos

Los símbolos representan las diferentes acciones que se pueden

ejecutar en un algoritmo mientras que las flechas muestran la

progresión paso a paso a través del algoritmo.

Page 24: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Diseño de algoritmos

Símbolo Representación Significado

Flechas o líneas de flujo Indica el sentido de

ejecución de las acciones

Rectángulo Proceso o acción a realizar

(por ejemplo, asignación)

Paralelogramo Representa una entrada o

salida

Rombo Representa el constructor de

selección (decisión lógica)

Rectángulo redondeado Representa el inicio y fin del

diagrama

Círculo Se usa como conector entre

dos partes del diagrama

Representación gráfica del algoritmo:

diagramas de flujo

Page 25: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROSDiseño de algoritmos Representación gráfica del algoritmo:

diagramas de flujo

1. Inicio

2. Leer cantidad de estudiantes (N)

3. NE 0, SE 0, SP 0

4. MIENTRAS NE < N

4.1 Leer edad y peso del estudiante (E, P)

4.2 SE SE + E

4.3 SP SP + P

4.4 Incrementar el contador: NE NE + 1

FIN-MIENTRAS

5. Calcular la media de la edad: ME SE/N

6. Calcular la media del peso: MP SP/N

7. Escribir “La edad promedio es: ”, ME

8. Escribir “El peso promedio es: ”, MP

9. Fin

Inicio

Leer N

NE 0

SE 0

SP 0

1

Page 26: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Diseño de algoritmos

Continuación …

1. Inicio

2. Leer cantidad de estudiantes (N)

3. NE 0, SE 0, SP 0

4. MIENTRAS NE < N

4.1 Leer edad y peso del estudiante (E, P)

4.2 SE SE + E

4.3 SP SP + P

4.4 Incrementar el contador: NE NE + 1

FIN-MIENTRAS

5. Calcular la media de la edad: ME SE/N

6. Calcular la media del peso: MP SP/N

7. Escribir “La edad promedio es: ”, ME

8. Escribir “El peso promedio es: ”, MP

9. Fin Fin

Leer E, P

SE SE+E

SP SP+P

NE NE+1

1

NE <NSi

No

ME SE/N

MP SP/N

Escribir

ME, MP

Page 27: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROSDiseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

El diagrama de Nassi-Schneiderman (N-S) es una técnica de

representación gráfica de algoritmos que combina la especificación en

pseudocódigo con la representación gráfica del diagrama de flujo.

Cuando se usa el diagrama N-S un algoritmo es representado con un

rectángulo dividido en franjas o bandas horizontales, donde cada banda

representa una acción a realizar.

La especificación de los pasos del algoritmo se hace utilizando las

palabras reservadas ya vistas en el pseudocódigo, mientras que los

símbolos utilizados en el diagrama corresponden a cada tipo de

estructura de control: secuencia, selección, iteración.

Page 28: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Begin

End

<acción 1>

<acción 2>

<acción 3>

. . .

Begin

read

write

If-then-else

while-end

repeat-until

end

Representación gráfica N-S de un algoritmo Palabras reservadas

comúnmente usadas en la

especificación de las acciones

(pueden ser también usadas

en español)

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 29: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Representación de la estructura de control secuencial

Declaración de variables

tipo : nombre_variable

Ejemplos:

entero: edad

real: edadPromedio,

pesoPromedio

caracter: sexo

cadena: deporte

Asignación

Variable = expresion

Ejemplos:

edadPromedio = sumaEdad/N

pesoPromedio = sumaPeso/N

sexo = ‘M’

Deporte = “atletismo”

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 30: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Representación de la estructura de control secuencial

Instrucción leer

leer <lista de identificadores de variables>

Ejemplos:

leer edad, peso

leer deporte

Instrucción escribir

escribir <lista de variables y constantes>

Ejemplos:

escribir edadPromedio, pesoPromedio

escribir deporte

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 31: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

1. Inicio

2. Leer base y altura (b, a)

3. ar ← b*a

4. pe ← 2*(b + a)

5. Escribir “Área: ”, ar

6. Escribir “Perímetro: ”, pe

7. Fin

Inicio

Escribir “área: ”, ar

real: b, a, ar, pe

Leer b, a

ar = b*a

pe = 2(b + a)

Escribir “perímetro: ”, pe

Fin

Diagrama N-SAlgoritmo para calcular el área y

perímetro de un rectángulo

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 32: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Representación de la estructura de control condicional

condición

Sí No

<acciones> <acciones>

Algoritmo Diagrama N-S

si <condición> entonces

<acción 1>

si_no

<acción 2>

selector

otro 1 2 3 . . . n Estructura

de control

condicional

CASE

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 33: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Representación de la estructura de control condicional

S = ‘M’

Sí No

CM = CM + 1 CF = CF + 1

Leer sexo de la persona (S)

SI S =‘M’, entonces CM ← CM + 1

SI S = ‘F’, entonces CF ← CF + 1

Incrementar el contador: TP ← TP + 1

AlgoritmoDiagrama N-S

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 34: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Representación de la estructura de control de iteración

Representación en el diagrama N-S

de la estructura MIENTRAS

Representación en el diagrama N-S

de la estructura REPITE-HASTA

Mientras (condición)

<acciones que se repiten>

HASTA (condición)

<acciones que se repiten>

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 35: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Representación de la estructura de control de iteración

Representación en el diagrama N-S

de la estructura PARA

Para Contador ← valor_inicial hasta valor_final

hacer

<acciones que se repiten>

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 36: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

start

read N

NE ← 0

SE ← 0

SP ← 0

while NE < N

read E, P

SE ← SE + E

SP ← SP + P

NE ← NE + 1

end while

Inicio

real: SE, SP

entero: NE

Mientras NE <N

leer E, P

SE = SE + E

SP = SP + P

NE = NE + 1

NE = 0

SE = 0

SP = 0

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 37: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

ME = SE/N

MP = SP/N

Escribir “Edad promedio”, ME

Escribir “Peso promedio”, MP

ME <- SE/N

MP <- SP/N

write “Edad promedio: ”, ME

write “Peso promedio: ”, MP

endFin

Lo que hemos hecho en estas últimas dos transparencias

ha sido la especificación en un diagrama N-S del

algoritmo para el cálculo de la edad promedio y peso

promedio de un grupo de N personas

Diseño de algoritmos Representación gráfica del algoritmo:

diagramas de Nassi-Schneiderman (N-S)

Page 38: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Ejemplo:

Tenemos 8 bolas de metal. Las 8 bolas tienen la misma apariencia y forma, pero una de ellas pesa mas que las otras.

Con una balanza de dos brazos, tenemos que conseguir en 2 pesadas averiguar cuál es la bola que pesa mas al resto.

Page 39: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Ejemplo:

Tenemos 12 bolas de metal. Las 12 bolas tienen la misma apariencia y forma, pero una de ellas pesa mas que las otras 11 .

Con una balanza de dos brazos, tenemos que conseguir en tres pesadas averiguar cuál es la bola que pesa mas al resto.

Page 40: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Ejemplo:

Tenemos 12 bolas de metal. Las 12 bolas tienen la misma apariencia y forma, pero una de ellas pesa distinto que las otras 11 (mas o menos).

Con una balanza de dos brazos, tenemos que conseguir en tres pesadas averiguar cuál es la bola que pesa distinto al resto. Y si pesa más o menos que el resto.

Page 41: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Como cada año, un rey espera que cada uno de

sus 30 vasallos le entregue sacos con 30

monedas de oro. Pero sabe que uno de ellos ha

adoptado la triste costumbre de darle monedas

de 9 gr. y no de 10 como él ordena.

Ejemplo:

¿Cómo se podrá averiguar cuál es el saco de las monedas

falsas haciendo una sola pesada?”

Page 42: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Page 43: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Page 44: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Construcción de un algoritmo

1. Definir el problema a resolver

2. Identificar las entradas del algoritmo

3. Identificar la salida del algoritmo

4. Definir los pasos a seguir para convertir las entradas en la salida

5. Seguir los pasos y comprobar que el algoritmo sea correcto analizando la salida.

6. Revisar los pasos y hacer las correcciones.

7. Resolver el problema.

Page 45: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Construcción de un programa

1. Definir el problema a resolver

2. Definir el algoritmo que lo resuelve

3. Escribir el programa

● Escribir cada uno de los pasos del algoritmo en el lenguaje de programación

4. Ejecutar el programa en el computador

5. Verificar que las salidas sean correctas

6. Hacer correcciones al programa

7. Resolver el problema

Page 46: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Construcción de un algoritmo

Operaciones básicas

– Entrada de datos

– Salida de datos

– Utilización de variables

– Utilización de constantes

– Aplicación de operadores

– Asignación de valores

Combinación de operaciones básicas

– Secuencial

– Selectiva

– Repetitiva

Page 47: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Utilización de variables

Durante la ejecución del algoritmo, es importante

recordar los resultados parciales de cada paso.

Estos resultados se etiquetan con un nombre.

Al invocar con posterioridad ese nombre,

recuperamos el resultados parcial.

Page 48: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Utilización de variables

G=K/1000

Esta variable se denomina G y se utiliza para recordar el valor de un gramo de manzana.

K es un dato de entrada, y tambiénSe considera una variable

Page 49: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Utilización de variables

La principal característica de una variable es que su valor puede cambiar en el tiempo.

Usualmente se compara con una caja donde se puede almacenar una sola “cosa”.

Por lo general, las variables se definen con un tipo de dato.

El tipo de dato restringe que tipo de “cosas” se pueden guardar en las “cajas”.

Page 50: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Utilización de constantes

Además de las variables, un algoritmo requiere

de constantes.

A diferencia de las variables, su valor no puede

cambiar en el tiempo.

Las constantes también pueden recibir nombres

para mayor claridad.

– Ej.: PI = 3.1415

Page 51: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Utilización de constantes

G=K/1000

La constante “1000” sirva para transformar el valor Por kilo a un valor por gramo

Page 52: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Aplicación de operadores

Para obtener resultados, generalmente es necesario “transformar” las entradas en la salida.

Para esto se aplican operadores de distinta índole

– Aritméticos ( + , - , * , / )

– Lógicos (igual que, mayor que, menor que, y, o, no)

– Etc.

Los operadores requieren de operandos y entregan un resultado.

Por lo general, los operadores son unarios o binarios.

Page 53: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Aplicación de operadores

M=G * P

operandos

operador

Page 54: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Asignación de valores

El resultado de un operador se puede almacenar

en una variable.

Para esto se utiliza un tipo especial de operador.

Este es el operador de asignación.

Solo se pueden asignar valores a variables, no a

constantes

Page 55: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Asignación de valores

M=G * P

Operador de asignación

El resultado de GxP se asigna a la variable M

Page 56: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

ANEXO

Page 57: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROSElementos, estructura y funcionamiento de un

sistema de cómputo

CPU

Unidad Central de Proceso

CU

Unidad de control

ALU

Unidad

lógico-aritmética

RAM

Memoria

Dispositivos

de entrada

Dispositivos

de salida

Memoria externa

(almacenamiento

permanente)

Organización física de una computadora

La CPU es el “cerebro” de la computadora

CU controla, secuencia de

operaciones a realizar, y sincroniza

todo el proceso que tiene lugar en la

computadora. ALU es la encargada de realizar

operaciones artiméticas y lógicas

Page 58: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Funcionamiento de una computadora

La unidad central de proceso (del inglés, CPU) es el “cerebro” de la

computadora. La CPU dirige y controla el proceso de información efectuado

por la computadora, es la unidad donde se ejecutan las instrucciones de los

programas y donde se controla el funcionamiento de los distintos

componentes de la computadora. La CPU procesa información almacenada

en la memoria, puede recuperar información desde la memoria (datos o

programas) y almacenar nueva información o información procesada en la

memoria. La CPU está compuesta por dos componentes: la unidad de

control (CU) y la unidad lógico-aritmética (ALU)

La unidad central de proceso (del inglés, CPU)

Page 59: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Como su nombre lo indica, la unidad lógico-aritmética es la encargada de

realizar operaciones artiméticas y lógicas (suma, resta, multiplicación,

división y comparaciones) sobre datos que provienen de la memoria

principal (RAM).

La unidad lógico-aritmética (ALU)

La unidad de control (CU) dirige y coordina las actividades de la

computadora, determina la secuencia de operaciones a realizar, interpreta

instrucciones codificadas, controla las funciones de decodificación,

ejecución y almacenamiento. Esta unidad controla y sincroniza todo el

proceso que tiene lugar en la computadora.

La unidad de control (CU)

Funcionamiento de una computadora

Page 60: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

El papel de la memoria central (memoria RAM, Random Access Memory) es

el almacenamiento de información: datos y programas. Para que un

programa se pueda ejecutar, debe ser almacenado en la memoria central

(carga o load del programa). También los datos que serán usados por el

programa durante su ejecución deben ser situados en la memoria. Es decir,

la memoria RAM se usa para mantener los programas mientras se están

ejecutando y los datos mientras se están procesando.

La memoria central (RAM)

Memoria

central

Memoria

cachéProcesador

Funcionamiento de una computadora

Page 61: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Los dispositivos de entrada/salida establecen la comunicación entre la

computadora y el usuario. Los dispositivos de entrada (teclado, mouse,

unidad CD-ROM, unidad DVD, escaner, cámara, etc.) permiten la

introducción de datos y programas en la computadora para su

procesamiento. Una vez que los datos son leídos de los dispositivos de

entrada, éstos son almacenados en la memoria central para su

procesamiento. Los dispositivos de salida (pantalla, impresora, etc.)

permiten representar/visualizar el resultado de la ejecución de los

programas.

Dispositivos de entrada/salida

Funcionamiento de una computadora

Page 62: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

El disco duro

Disquetes magnéticos

Unidad CD-ROM

Unidad DVD

Memoria USB

La memoria externa es un medio de almacenamiento permanente tanto para

programas como para datos. Entre los dispositivos de almacenamiento (o

memorias auxiliares) más comúnmente utilizados se encuentran:

La memoria externa

Funcionamiento de una computadora

Page 63: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

El microprocesador

El microprocesador es un chip, un circuito integrado electrónico que es

utilizado como unidad central de proceso en una computadora. Las

funciones del microprocesador son el cálculo y control computacional.

Memoria centralUnidad de

control

Unidad lógico-

aritmética

Microprocesador

Funcionamiento de una computadora

Page 64: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROSNiveles de lenguajes programación

Lenguajes de máquina

Lenguajes

ensambladores

Lenguajes de alto nivel

Lenguajes declarativos

Page 65: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Fue el primer lenguaje utilizado en la programación de computadoras.

Constituye la capa más interna en los niveles de lenguaje en la

computación. Se podría decir que el lenguaje de máquina es el único que

entiende directamente la computadora. Este lenguaje se expresa a través

del alfabeto binario, el cual consta solo de los símbolos 0 y 1. El lenguaje de

máquina es dependiente de la computadora.

Lenguajes de máquina

El lenguaje ensamblador es una representación simbólica del lenguaje de

máquina asociado. Es decir, cada computadora tiene un lenguaje

ensamblador propio. El lenguaje ensamblador usa palabras nemotécnicas

para representar cada instrucción (cadenas de bits) del lenguaje de

máquina asociado.

Lenguajes ensambladores

Niveles de lenguajes programación

Page 66: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Constituyen los lenguajes de programación más utilizados. Son lenguajes

independientes de la computadora. Un programa escrito en lenguaje de alto

nivel puede ser ejecutado en cualquier computadora, siempre que ésta

disponga del traductor o compilador del lenguaje en cuestión. Los

programas pueden ser escritos y comprendidos de una forma más sencilla,

dada la aproximación de estos lenguajes con el lenguaje natural. Se

caracterizan por proporcionar librerías de uso frecuente (entrada/salida,

funciones matemáticas, manejo de cadenas, etc.). Ejemplos de estos

lenguajes son: Pascal, Fortran, C, C++, Java, Ada, Python,Lisp y Prolog.

Lenguajes de alto nivel

Son aquellos lenguajes en los que se indica a la computadora qué es lo que

debe hacer, qué es lo que se desea obtener o qué es lo que se está

buscando. Son comúnmente lenguajes de órdenes, donde se expresa lo

que hay que hacer en lugar de cómo hacerlo. Ejemplos de lenguajes

declarativos son SQL y Prolog.

Lenguajes declarativos

Niveles de lenguajes programación

Page 67: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Lenguajes de programación

= Léxico + Sintaxis + SemánticaLenguaje de programación

Page 68: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROSAspectos a considerar en el diseño e

implementación de los lenguajes de programación

• Léxico

• Sintaxis

• Semántica

• Gestión de memoria

• Manejo de excepciones

• Implementación

• Pragmática

Page 69: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Léxico

Es el conjunto de categorías gramaticales que definen el vocabulario del

lenguaje de programación. Comúnmente, el léxico de un lenguaje de

programación posee las siguientes categorías gramaticales:

• Identifier (nombre de variables, nombre de constantes, nombre de funciones, etc.)

• Literal (números enteros y decimales)

• Operator (+, -, *, /. etc.)

• Separator (; . , etc.)

• Keyword (while, read, write, if, for, case, int, real, etc.)

Aspectos a considerar en el diseño e

implementación de los lenguajes de programación

Page 70: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

La sintaxis de un lenguaje de programación es la definición gramatical de

lo que constituye un programa en dicho lenguaje. La sintaxis se especifica

en términos de un conjunto de reglas que rigen la construcción de los

programas. La definición de la sintaxis de un lenguaje de programación

debe ser clara, concisa y formal. La sintaxis del lenguaje de programación

se describe a partir de otros lenguajes, llamados metalenguajes. Uno de

los metalenguajes más difundidos es el formalismo BNF (Backus-Naur

Form), una gramática libre de contexto.

Sintaxis

Aspectos a considerar en el diseño e

implementación de los lenguajes de programación

Page 71: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Se refiere al significado de los programas. Es el conjunto de reglas que

permiten determinar el significado de cualquier construcción del lenguaje.

La semántica asocia un significado a cada posible construcción gramatical

del lenguaje.

Semántica

La gestión de memoria se refiere al proceso de asignar valores a la

memoria, considerando tanto las características estáticas como dinámicas

de dichos valores. Los valores pueden ser asignados a una de tres

categorías de memoria: memoria estática, la pila en tiempo de ejecución y

el montículo.

Gestión de memoria

Aspectos a considerar en el diseño e

implementación de los lenguajes de programación

Page 72: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Una excepción es una condición detectada por una operación la cual no se

puede resolver en el contexto de la operación. Dos procesos básicos se

asocian al manejo de excepciones: (1) lanzamiento de la excepción y (2)

captura de la excepción. El lanzamiento de una excepción es señalar que

se ha producido una excepción, mientras que la captura de la excepción

consiste en proporcionar una forma de manipular dicha excepción,

transfiriéndose el control del programa al manipulador de la excepción.

Manejo de excepciones

Aspectos a considerar en el diseño e

implementación de los lenguajes de programación

Page 73: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Cómo se ejecutan los programas.

Implementación

Se refiere a los aspectos prácticos del uso de los programas.

Pragmática

Aspectos a considerar en el diseño e

implementación de los lenguajes de programación

Page 74: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Contexto en el

que se ubican

los lenguajes de

programación

Lenguaje natural

Aplicación

Lenguaje de programación

Compilador/Intérprete

Máquina virtual

Sistema operativo

Lenguaje

de máquina

Lenguajes de programación: traductores de

lenguajes

Page 75: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Traductores de lenguajes

Traductores de

lenguaje

Intérpretes Compiladores

Un traductor de lenguaje es un programa que traduce a código de

máquina un programa fuente escrito en un lenguaje de alto nivel.

Page 76: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Intérpretes

Un intérprete es un traductor que recibe como entrada un programa fuente,

lo traduce y lo ejecuta. Un intérprete traduce y ejecuta una instrucción en

código fuente, a la vez. Los programas interpretados generalmente son

más lentos en ejecución que los programas compilados.

Programa fuente Intérprete

Traducción y

ejecución línea

a línea

Traductores de lenguajes

Page 77: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Compiladores

Un compilador traduce un programa fuente escrito en lenguaje de alto

nivel al lenguaje de máquina de la computadora. El programa traducido a

lenguaje de máquina es almacenado como código objeto.

Programa fuente Compilador Programa objeto

Traductores de lenguajes

Page 78: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Fases de la compilación de un programa

Programa

fuente CompiladorPrograma

objeto Linker

Programa

ejecutable

en lenguaje

de máquina

Analizador

léxico

Analizador

sintáctico

Analizador

semántico

Generador

de código

intermedio

Optimizador

de código

Generador

de código

objeto

Traductores de lenguajes

Page 79: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Paradigmas de programación

• Programación imperativa

• Programación funcional

• Programación lógica

• Programación orientada a objetos

• Programación concurrente

• Programación guiada por eventos

Page 80: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

El programa se define como una serie de acciones o pasos, cada uno de

los cuales recibe una entrada, ejecuta un cálculo, o produce como

resultado una salida. La programación imperativa se basa en la asignación

de valores, en la utilización de variables para almacenar valores y en la

realización de operaciones con estos valores almacenados. Ejemplos de

lenguajes de programación imperativa son los lenguajes de alto nivel

(Fortran, C, Pascal, etc.) y los lenguajes ensambladores.

Programación imperativa

Los programas están formados por una colección de definiciones de

funciones. Las funciones interactúan entre sí utilizando condicionales,

recursividad y composición funcional. Ejemplos de lenguajes de

programación funcional son Lisp y Scheme.

Programación funcional

Paradigmas de programación

Page 81: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

Un lenguaje de programación lógica es un tipo de lenguaje declarativo, en

el cual el programa está formado por un conjunto de declaraciones lógicas

(predicados, hechos). La ejecución de un programa consiste en aplicar

estas declaraciones para obtener todas las soluciones posibles a un

problema. El ejemplo clásico de lenguaje de programación lógica es

Prolog.

Programación lógica

El programa es una colección de objetos que interactúan entre sí a través

del paso de mensajes, los cuales comúnmente transforman el estado de

los objetos. Ejemplos de lenguajes orientados a objetos son Smalltalk,

C++, Eiffel y Java.

Programación orientada a objetos

Paradigmas de programación

Page 82: INFORMATICAS PARA INGENIEROS...Diseño de algoritmos PARA INGENIEROS Representación gráfica del algoritmo: diagramas de flujo 1. Inicio 2. Leer cantidad de estudiantes (N) 3. NE

CARRERA DE

INGENIERÍADE LA INFORMACION

HERRAMIENTAS

INFORMATICAS

PARA INGENIEROS

La programación se basa en la ejecución simultánea de procesos, ya sea

en una misma computadora con uno o varios procesadores, que en un

cluster de computadoras. El programa se define como una colección de

procesos cooperativos y asíncronos. Ejemplos de lenguajes concurrentes

son Linda y Fortran de alto rendimiento.

Programación concurrente

El programa responde a eventos externos generados en un orden no

predecible. Los eventos comúnmente se generan a partir de acciones del

usuario en la pantalla (por ejemplo, clics del mouse o pulsaciones de

teclas), pudiendo existir también otras fuentes generadoras de eventos.

Ejemplos de lenguajes de programación guida por eventos son Visual

Basic y Java.

Programación guiada por eventos

Paradigmas de programación