8
Algoritmos y Estructura de Datos - Sesión 01 UNPRG – EPIS 2008-I METODOLOGIA PARA LA RESOLUCIÓN DE PROBLEMAS DE PROCESAMIENTO DE DATOS Al resolver un problema utilizando un computador se deben tener presente las siguientes fases o actividades: Para los propósitos del análisis, el problema debe estar bien definido en términos de una descripción detallada de las entradas y salidas. CONCEPTO DE ALGORITMO Por lo tanto, un algoritmo debe contener la descripción exacta de la secuencia de pasos para resolver un problema. Los pasos descritos en un algoritmo, los cuales representan la solución de un problema, se denominan sentencias o instrucciones. La acción de programar consiste básicamente en tomar las sentencias contenidas en el algoritmo, y expresarlas en un lenguaje de programación particular. Así entonces, un algoritmo debe exhibir las siguientes características: Finito Legibilidad Modificabilidad Eficiencia Modularidad Estructuración (incluye todas las características anteriores) Las ventajas de la estructuración permite alcanzar programas que son más fáciles de: leer modificar I.S. Guzmán Valle, César – Guzmán Valle, María de los Angeles Pág. 1 Algoritmo Forma de expresión de la solución de un problema en un número finito de pasos Resolució n de un problema Análisis del problema Diseño y desarrollo del algoritmo Resolución del problema en el computador Análisis del problema Definición del problema Especificaci ón de la(s) entrada(s) Especificac ión de la(s) salida(s)

SeparataAlgoritmos

Embed Size (px)

Citation preview

Page 1: SeparataAlgoritmos

Algoritmos y Estructura de Datos - Sesión 01 UNPRG – EPIS 2008-I

METODOLOGIA PARA LA RESOLUCIÓN

DE PROBLEMAS DE PROCESAMIENTO

DE DATOS

Al resolver un problema utilizando un

computador se deben tener presente las

siguientes fases o actividades:

Para los propósitos del análisis, el

problema debe estar bien definido en

términos de una descripción detallada de

las entradas y salidas.

CONCEPTO DE ALGORITMO

Por lo tanto, un algoritmo debe contener la

descripción exacta de la secuencia de

pasos para resolver un problema.

Los pasos descritos en un algoritmo, los

cuales representan la solución de un

problema, se denominan sentencias o

instrucciones.

La acción de programar consiste

básicamente en tomar las sentencias

contenidas en el algoritmo, y expresarlas en

un lenguaje de programación particular.

Así entonces, un algoritmo debe exhibir las

siguientes características:

Finito

Legibilidad

Modificabilidad

Eficiencia

Modularidad

Estructuración (incluye todas las

características anteriores)

Las ventajas de la estructuración permite

alcanzar programas que son más fáciles

de:

leer

modificar

eliminar las partes repetitivas

FORMAS DE REPRESENTACIÓN

ALGORITMICAS

Diagramas de flujo (D-F): Hacen uso de

símbolos gráficos unidos mediante flechas

que expresan el flujo del procesamiento

(secuencia de acciones). Presentan los

siguientes inconveniente:

los cambios obligan a una reorganización

usa una técnica lineal la cual esta obsoleta

el recorrido del diagrama es complejo,

pudiéndose producir omisiones

Diagramas de Nassi-Shneiderman (D-

NS): Son D-F sin flechas de conexión y

hace uso de un sólo símbolo gráfico.

Seudocódigo: Describe un algoritmo

utilizando una mezcla de frases en lenguaje

I.S. Guzmán Valle, César – Guzmán Valle, María de los Angeles Pág. 1

AlgoritmoAlgoritmo Forma de expresión de la

solución de un problema en un número finito de pasos

Forma de expresión de la solución de un problema en un número finito de pasos

Resolución de

un problema

Resolución de

un problema

Análisis delproblema

Análisis delproblema Diseño y

desarrollo del algoritmo

Diseño y desarrollo del

algoritmo

Resolución del problema en el

computador

Resolución del problema en el

computador

Análisis delproblemaAnálisis del

problema

Definición delproblema

Definición delproblema Especificación

de la(s) entrada(s)

Especificación de

la(s) entrada(s)

Especificación de

la(s) salida(s)

Especificación de

la(s) salida(s)

Page 2: SeparataAlgoritmos

Algoritmos y Estructura de Datos - Sesión 01 UNPRG – EPIS 2008-I

común, instrucciones de lenguaje de

programación y palabras claves que

definen las estructuras básicas. Son en la

práctica los que se utilizan ya que evitan

los problemas que presentan las

representaciones anteriores.

UN EJEMPLO:

Leer el radio de un círculo, determinar y

mostrar su superficie y su perímetro.

Análisis:

Entrada: Radio del círculo (RADIO)

Salida: Superficie del círculo (AREA),

perímetro del círculo (PERIMETRO)

Diseño del algoritmo:

Lo esencial en el diseño del algoritmo es

la descomposición en especial cuando los

problemas a resolver son complejos. La

descomposición aquí nos conduce a las

siguientes acciones:

Leer datos de entrada

Calcular área y perímetro

Escribir resultados

Desarrollo del algoritmo:

Seudocódigo:

inicio

leer RADIO

AREA=3.14159*RADIO^2

PERIMETRO=2*3.14159*RADIO

escribir AREA, PERIMETRO

fin

REPRESENTACIÓN INTERNA DE LA

INFORMACIÓN.

I.S. Guzmán Valle, César – Guzmán Valle, María de los Angeles Pág. 2

inicio

leer RADIO

calcularAREA=3.14159*RADIO^2

calcularPERIMETRO=2*3.14159*RADIO

escribir AREA, PERIMETRO

fin

D-NS

inicio

leer RADIO

AREA=3.14159*RADIO^2

PERÍMETRO=2*3.14159*RADIO

escribirAREA,PERIMETRO

fin

D-F

Page 3: SeparataAlgoritmos

Algoritmos y Estructura de Datos - Sesión 01 UNPRG – EPIS 2008-I

TIPOS DE DATOS.

Un dato es una expresión que describe

una determinada información con la que

trabaja una computadora. La mayoría de

las computadoras pueden tratar un amplio

conjunto de datos diferentes.

Los datos son introducidos en la

computadora (datos de entrada),

transformados por el programa y después

de una serie de etapas intermedias,

convertidos en datos de salida:

ENTRADA ==> PROCESO ==> SALIDA

Datos Entrada=>

=> Datos Salida

Para que todo este proceso se lleve a

cabo de una manera eficiente, tan

importante es el estudio y diseño del

algoritmo, como el estudio y diseño de los

datos con los que trabaja el algoritmo.

TIPOS DE DATOS.

Una estructura de datos es un conjunto

de información dotado de una

organización,. Esta organización puede

responder a criterios conceptuales (datos

personales de un individuo, etc.) o a

criterios prácticos (facilidad para utilizar la

información representada, etc.).

Generalmente los elementos que

componen una estructura de datos

reciben el nombre de nodos. Un nodo

puede ser un elemento simple o uno muy

complejo.

El concepto de estructura de datos encierra

dos aspectos:

la estructura lógica: Describe como se

relacionan los datos desde el punto de

vista conceptual.

la estructura de representación:

Describe una determinada

implementación en el ordenador.

Ejemplo: Fecha Se describe con tres

informaciones: día, mes y año. Es la

estructura lógica

En el ordenador puede representarse de

diversas formas:

“dd-mm-aa”

(dd,mm,aa)

Un registro con tres campos dd, mm

y aa

Un registro con aa y días transcurridos

desde el 1 de enero de ese año.

Cada una de estas implementaciones

describirían la estructura de

representación.

La estructura de representación influye

fuertemente en la eficiencia de los

programas que manipulan la estructura de

datos. Cuando se elige una estructura de

representación se tiene que tener en

cuenta cuales van a ser las operaciones

mas comunes que se van a realizar.

Se denomina tipo de datos a un modelo

que describe un conjunto de datos

homogéneo para el que se define un

determinado número de operaciones que

permiten manejarlos. Un tipo de datos

describe el modelo que representa una

estructura de datos.

I.S. Guzmán Valle, César – Guzmán Valle, María de los Angeles Pág. 3

COMPUTADORA

Programa

Page 4: SeparataAlgoritmos

Algoritmos y Estructura de Datos - Sesión 01 UNPRG – EPIS 2008-I

El tipo de cada dato determina su

representación y almacenamiento en

memoria.

CLASIFICACIÓN DE LOS TIPOS DE

DATOS

Simples.

Numéricos.

Enteros.

Sin signo

Con signo

Enumerados

Reales.

Simple precisión

Doble precisión

Carácter.

Lógico.

Puntero. (derivado).

Estructurados.

Internos.

Estáticos

Array

Cadena

Estructura o registro

Dinámicas

Lineales.

Lista enlazada

Pila

Cola

No lineales.

Árbol

Grafo

Externos.

Archivos.

Considerando que una estructura se

denomina:

- Interna: cuando reside en memoria

principal.

- Externa: cuando se localiza sobre

soporte externo de

almacenamiento (disco).

- Estática: El tamaño que ocupa en

memoria se define durante el

proceso de traducción del programa

(tiempo de compilación) y no puede

ser modificado.

- Dinámica: El tamaño que ocupa en

memoria se reserva durante la

ejecución del programa, a medida

que se va necesitando.

- Lineales: Cada elemento tiene un

único anterior y un único posterior.

- No lineales: Cada elemento puede

tener más de un antecesor y/o más

de un sucesor.

Los distintos datos con los que trabaja una

computadora se almacenan en memoria

principal y desde allí pueden ser utilizados.

La memoria principal está constituida por

un conjunto de celdas o posiciones de

memoria, numeradas de forma

consecutiva:

I.S. Guzmán Valle, César – Guzmán Valle, María de los Angeles Pág. 4

CPU

UALUCUE US

MEMORIA PRINCIPAL

Page 5: SeparataAlgoritmos

Algoritmos y Estructura de Datos - Sesión 01 UNPRG – EPIS 2008-I

MEMORIA PRINCIPAL

El número asignado a cada celda se

denomina dirección.

Todas las celdas son iguales y están

constituidas por un conjunto de

elementos capaces de almacenar

únicamente dos informaciones: 0 y 1

(bits).

El número de bits asociado a cada celda

se denomina tamaño de la celda y suele

ser igual a 8 bits.

Según esto, un dato ocupa un número

determinado de posiciones consecutivas

de memoria y estará constituido por una

determinada secuencia de ceros y unos.

7 6 5 4 3 2 1 0

Celda de memoria de 8 bits.

I.S. Guzmán Valle, César – Guzmán Valle, María de los Angeles Pág. 5

0 1 2 3 4 5

6 7 8 9 10 11

12 13 14 15 16 17

18 19 20 21 22 23

24 25 26 27 28 29

30 31 32 33 34 35

36 37 38 39 40 41

42 43 44 45 46 47

1 0 1 1 0 1 0 1

Page 6: SeparataAlgoritmos

Algoritmos y Estructura de Datos - Sesión 02 UNPRG – EPIS 2008-I

TIPOS DE ALGORITMOS

1. Secuenciales:

Son aquellas cuyas instrucciones se

ejecutan una después de otra.

Se tienen tres tipos de instrucciones

secuenciales: la declaración de variables,

asignación, instrucción Leer e instrucción

Escribir.

La mayoría de algoritmos actúan sobre un

conjunto de datos suministrados por el

usuario y se espera que a partir de dichos

valores y desarrollando los procesos

programados se genere información de

salida o resultados.

Ejemplo: El dado en la anterior Sesión.

Ejercicios Propuestos

1. Diseñar un algoritmo para calcular el

área y el perímetro de un rectángulo.

2. Un maestro desea saber que

porcentaje de hombres y que

porcentaje de mujeres hay en un

grupo de estudiantes.

3. Un profesor prepara tres cuestionarios

para una evaluación final: A, B y C. Se

sabe que se tarda 5 minutos en

revisar el cuestionario A, 8 en revisar

el cuestionario B y 6 en el C. La

cantidad de exámenes de cada tipo se

entran por teclado. ¿Cuántas horas y

cuántos minutos se tardará en revisar

todas las evaluaciones?

4. Calcule el área de un rombo

conociendo las coordenadas de cada

vértice.

5. Diseñar el algoritmo que permita

calcular el consumo de gasolina de un

vehículo por cada kilómetro (en

galones y en soles), conociendo el

total de kilómetros recorridos, el precio

del galón de gasolina y el dinero

gastado en gasolina en el recorrido.

6. Un vendedor recibe un sueldo base más

un 10% de comisión por sus ventas, el

vendedor desea saber cuanto dinero

obtendrá por concepto de comisiones

por las tres ventas realizadas en el mes,

el total que recibirá en el mes tomando

en cuenta su sueldo base y sus

comisiones.

2. Selectivos simples:

Una estructura selectiva simple, es aquella

cuando solo se tiene determinado los pasos

a seguir si el resultado de la condición es

verdadero, mientras que si es falso, la

ejecución del algoritmo continúa después

de la estructura condicional.

Seudocódigoacciónsi <condición>

entoncesacción1

acción2

.

.fin_siacción

I.S. Guzmán Valle, César – Guzmán Valle, María de los Angeles Pág. 6

acción

condiciónsi no

acción 1

acción 2

acción

D-NS

acción

acción 1

acción 2

condición

acción

si no

D-F

Page 7: SeparataAlgoritmos

Algoritmos y Estructura de Datos - Sesión 02 UNPRG – EPIS 2008-I

Ejemplo: Algoritmo en el que, dada una

variable cuyo valor es leído desde teclado,

imprima por pantalla si el número es mayor

que 0.

Algoritmo MayorQue0Variable Entero: nInicio Escribe “Escribe un numero” Leer n Si (n > 0) entonces

Escribe “El número es mayor que FinSi

FinEjercicios Propuestos

1. Se desea un algoritmo para obtener

el valor absoluto de un número.

2. Dados dos números ¿cuál es

mayor? y ¿cuál es menor?

3. Una empresa desea calcular los

nuevos salarios de sus empleados de

la siguiente forma: quienes ganan

hasta $ 500.000 tendrán un

incremento del 10%, quienes

devengan más de $ 500.000 y hasta

800.000 recibirán un aumento del 8%

y los demás del 5%. ¿Cuál será el

valor del aumento? ¿Cuál será el valor

del nuevo sueldo?

4.

I.S. Guzmán Valle, César – Guzmán Valle, María de los Angeles Pág. 7