Upload
rexcord23
View
57
Download
0
Embed Size (px)
Citation preview
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)
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
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
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
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
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
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