transparencias tema 1 metodología de la programación

Download Transparencias Tema 1 Metodología de la Programación

If you can't read please download the document

Upload: antoniobecerrateron

Post on 13-Jun-2015

227 views

Category:

Documents


2 download

DESCRIPTION

Transparencias Tema 1 Metodología de la Programación de ITIG

TRANSCRIPT

Esquema del tema METODOLOGA DE LA PROGRAMACINTema 1: INTRODUCCIN1. Metodologa de la programacin Desarrollo de programas Diseo modular. Documentacin. Programacin estructurada.

2. Representacin de algoritmos PseudocdigoObjetivos: Repaso rpido a la asignatura de Introduccin a la Programacin Fijar notaciones y terminologa

3. Estructuras de datos Clasificacin Combinacin Eleccin

4. Ejemplo: clculo de la depreciacin de un archivoDepartamento de Lenguajes y Computacin Universidad de Almera

1

Departamento de Lenguajes y Computacin Universidad de Almera

2

1.1. DESARROLLO DE PROGRAMAS

1. Metodologa de la Programacin1.1. DESARROLLO DE PROGRAMAS

Contexto informtico Ingeniera de Sistemas: para la resolucin de problemas utilizando sistemas informticos

Concepto de Ingeniera, para qu se utiliza? Conjunto de conocimientos y tcnicas que permiten aplicar el saber cientfico a la resolucin de problemas

Subdisciplinas: * Ingeniera del software * Ingeniera del hardware

Aspectos involucrados en RP:

Ingeniera del software: Def.: aplicacin prctica del conocimiento cientfico en la construccin o desarrollo de programas de computadora y la documentacin asociada requerida para desarrollar, operar y mantener estos programas.

Departamento de Lenguajes y Computacin Universidad de Almera

3

Departamento de Lenguajes y Computacin Universidad de Almera

4

1.1. DESARROLLO DE PROGRAMAS

1.1. DESARROLLO DE PROGRAMAS

I.S. compuesta de pasos que abarcan mtodos, tcnicas y herramientas necesarias para la RP relacionados con sistemas software. Pasos = paradigmas de la I.S. Paradigma clsico ciclo de vida del software (modelo en cascada)

Actividades en el ciclo de vida clsico: ANLISIS: se centra en el qu (qu debemos hacer). Definicin del problema Identificacin de los requerimientos o tareas (informacin o funciones) Especificacin de las entradas y salidas. Delimitacin de los casos a tratar Establecimiento de los criterios de validacin (sistema correcto) estudio de viabilidad Datos de entrada? datos vlidos y no vlidos? quin utilizar el sistema: especialistas, usuarios cualesquiera? qu interfaces se utilizarn? cules son los mensajes de error y de deteccin de errores deseables? Cmo debe actuar el sistema cuando el usuario cometa un error en la entrada? qu hiptesis son posibles? existen casos especiales? cul es el formato de salida? qu documentacin es necesaria? qu mejoras se introducirn en un futuro programa? cmo debe ser de rpido el sistema? cada cunto tiempo ha de cambiarse el sistema que se haya entregado?6

Departamento de Lenguajes y Computacin Universidad de Almera

5

Preguntas que debemos plantearnos en esta fase

Departamento de Lenguajes y Computacin Universidad de Almera

1.1. DESARROLLO DE PROGRAMAS

1.1. DESARROLLO DE PROGRAMAS

DESARROLLO: se centra en el cmo (cmo debe desarrollarse el software lo que el sistema debe hacer- cmo disear las estructuras de datos, la arquitectura del software, etc.). Diseo: desarrollo de un algoritmo para resolver el problemaInvolucra fundamentalmente dos pasos: Diseo preliminar (arquitectnico): se realiza un anlisis de la informacin y de los requisitos y como resultado se generan: Estructuras de datos abstractas Estructura del programa proponer una estructura modular del programa y representar las relaciones existentes entre los mdulos

DESARROLLO (cont.): Codificacin: implementacin del programa (instrucciones en un lenguaje que resuelven un problema) para resolver el problema Traduccin del diseo a un lenguaje de programacin de alto nivel lenguaje mquina

Prueba: validacin del programa con un conjunto de datos de prueba. En la prueba, se debe asegurar: Correccin: asegurar que las entradas definidas producen los resultados requeridos Robustez: sensibilidad a entradas no definidas Amigabilidad EficienciaDepartamento de Lenguajes y Computacin Universidad de Almera

Diseo detallado (procedimental): refinamiento de la representacin arquitectnica que genera como resultado: Estructuras de datos detallados Representacin algortmica de la solucinDepartamento de Lenguajes y Computacin Universidad de Almera

7

8

1.1. DESARROLLO DE PROGRAMAS

1.1. DESARROLLO DE PROGRAMAS

MANTENIMIENTO: Mantenimiento: se encarga de gestionar todos los aspectos relacionados con los cambios en el programa. Correccin de errores Adaptacin a nuevos entornos (S.O. perifricos) Ampliaciones funcionales

Qu entendemos por Programacin? Coleccin de actividades que rodean a la descripcin, desarrollo, e implementacin efectiva de soluciones algortmicas a problemas bien especificados. Esto NO se debe interpretar como: Codificar en un lenguaje de programacin particular o para una mquina particular.

Aspecto muy importante: desarrollo de la documentacin en cada una de las etapas se utiliza como documento vlido del trabajo desarrollado durante todo el ciclo de vida del software.

No obstante, si se requiere: Dominio de tcnicas altamente estilizadas en un lenguaje de programacin particular.

Diseo en el desarrollo de programas calidad!!! Sin diseo riesgo de sistema inestable (sistema que falla cuando se realizan pequeos cambios)9Departamento de Lenguajes y Computacin Universidad de Almera

Departamento de Lenguajes y Computacin Universidad de Almera

10

1.1. DESARROLLO DE PROGRAMAS

1.2. Diseo modular y documentacin El diseo es la forma mediante la cual podemos traducir con precisin los requerimientos del cliente a un producto acabado.SISTEMA ESTABLE SISTEMA INESTABLE

Diseo modular Tras ubicar el proceso del diseo del software surge problemtica Cmo llevar a cabo todas las actividades involucradas en el diseo dependiendo del problema? Problema sencillo: resuelto por un programa sencillo. Problema complejo (diversas tareas a realizar con posibilidad de independencia entre ellas): resuelto por un programa grande y costoso (p. ej. S.O. de OS/360) Se complica el diseo ESTRATEGIA: 1) descomponer el problema complejo en subproblemas 2) Resolver cada problema por separado 3) Combinar todas las soluciones parciales (objetivo final)

Departamento de Lenguajes y Computacin Universidad de Almera

11

Departamento de Lenguajes y Computacin Universidad de Almera

12

1.2. DISEO MODULAR Y DOCUMENTACIN

1.2. DISEO MODULAR Y DOCUMENTACIN

Problema

Surge, de esta forma, el concepto de mdulo Unidad en la que tiene que descomponerse toda tarea de programacin con mnima importancia Componente o parte del programa completo con un propsito nico e identificable

Subproblema 1

Subproblema 2

Subproblema 3

Subproblema 4

Supproblema 5

Conectados convenientemente los mdulos, se genera una estructura global que resuelve el problema planteado similitud:descomposicin del problema vs. arquitectura modular del programa

Diseo modular: Metodologa de resolucin de problemas basada en la descomposicin de stos en unidades independientes y la resolucin separada de los problemas que surgen (enfoque aceptado en todas las disciplinas de la Ingeniera).Departamento de Lenguajes y Computacin Universidad de Almera

Departamento de Lenguajes y Computacin Universidad de Almera

13

14

1.2. DISEO MODULAR Y DOCUMENTACIN

1.2. DISEO MODULAR Y DOCUMENTACIN

El programa se divide en mdulos (partes independientes), cada una de las cuales ejecuta una nica actividad o tarea y se codifican independientemente de otros mdulos. Cada uno de estos mdulos se analizan, codifican y ponen a punto por separado.

Ventajas del diseo modular: Reduce la complejidad Menor tiempo de desarrollo mdulos independientes (reparto de tareas entre programadores) Mayor facilidad de mantenimiento legibilidad Reusabilidad: Mismo programa Otros programas bibliotecas

Mdulo principal: programa principal controla todo lo que sucede Submdulos (subprogramas) que ejecutan sus funciones, que devuelve el control al mdulo principal El proceso sucesivo de subdivisin de mdulos contina hasta que cada mdulo tenga solamente una tarea especfica que ejecutar: Entrada, salida, manipulacin de datos, control de otros mdulos, alguna combinacin de stos.

Los mdulos son independientes:

Departamento de Lenguajes y Computacin Universidad de Almera

ningn mdulo puede tener acceso directo a cualquier otro mdulo excepto el mdulo al que llama y sus propios submdulos. Sin embargo, los resultados producidos por un mdulo pueden ser utilizados por cualquier otro mdulo cuando se transfiera el control a ellos.

Cuando se considera una solucin modular a un problema, pueden establecerse muchos niveles de abstraccin concepto de abstraccin Mecanismo para la estructuracin de programas y datos, que se aplica a problemas de modelizacin, experimentacin y mtodo cientficoDepartamento de Lenguajes y Computacin Universidad de Almera

15

16

1.2. DISEO MODULAR Y DOCUMENTACIN

1.2. DISEO MODULAR Y DOCUMENTACIN

Niveles de abstraccin permiten solucionar un problema en pasos sucesivos Cada paso de un proceso de I.S., constituye un refinamiento del nivel de abstraccin de la solucin software.

Ej.: desarrollo de un software que ejecute todas las funciones asociadas a un CAD. Nivel superior El software incorporar una interfaz grfica que facilite la comunicacin con el diseador. Todo el dibujo de lneas y curvas, as como los clculos geomtricos sern realizados por el sistema CAD. Los dibujos se guardarn en archivos de dibujo.

Segn Dijkstra: Descomponer un programa en trminos de recursos abstractos consiste en descomponer una determinada accin compleja en trminos de un n de acciones ms simples capaces de ejecutarlas o que constituyan instrucciones de computadoras disponibles 3 niveles de abstraccin: Nivel Superior La solucin se establece en trminos generales, usando un lenguaje del dominio del problema Nivel Intermedio: Orientacin ms procedimental. La terminologa orientada al problema se acompaa de una terminologa orientada a la implementacin. Nivel Inferior implementacinDepartamento de Lenguajes y Computacin Universidad de Almera

Nivel intermedio Tareas de software CAD: Tareas de interaccin con el usuario Tareas de creacin de dibujos 2D Tareas de visualizacin de grficos Tareas de gestin de archivos de dibujo

Nivel inferiorProcedimiento: creacin de dibujos 2D Repetir hasta que Hacer mientras que Determinar tipo dibujo; Lnea: tarea dibujo de lnea Circulo: tarea dibujo de circulo

17

Departamento de Lenguajes y Computacin Universidad de Almera

18

1.2. DISEO MODULAR Y DOCUMENTACIN

1.2. DISEO MODULAR Y DOCUMENTACIN

Qu aportan los diferentes niveles de abstraccin al diseo modular? Ocultacin de la informacin Tenemos mdulo y sabemos qu hace (nivel superior de abstraccin) mediante un proceso de elaboracin del mdulo, refinamiento sucesivo, bajamos a niveles inferiores de abstraccin, hasta saber cmo hace lo que hace (nivel inferior de abstraccin) Ciertos detalles dentro de un mdulo se hacen inaccesibles para otros mdulos.

A partir de la abstraccin de datos definimos los TAD Estructura para el almacenamiento de informacin que lleva asociado los valores que puede tomar y las operaciones para manipular dicha estructura.

TAD vs. Estructura de Datos = nivel conceptual vs. implementacin

Documentacin

Clases de abstracciones:

Aportada por el diseo preliminar o arquitectnico: Estructuras de datos Estructuras del programa En forma de diagrama de mdulos donde se describe la dependencia entre ellos pero no el control sobre los mismos Cmo se comunican los mdulos, qu informacin se pasan. Para ello se proporciona una descripcin de la informacin transferida de unos a otros y una lista de parmetros formales (especifican nombre del parmetro o dato que se pasa y de qu tipo es)

Abstraccin procedimental

Se aplica al procedimiento (secuencia de pasos que tienen una finalidad especfica). La modularidad y abstraccin procedimental son complementarios. Ej: carcular-area-circulo, calcular-nominaempleado

Interfaz entre los mdulos

La modularidad romper solucin en mdulos La abstraccin procedimental especificacin de cda mdulo antes de su implementacin

Abstraccin de datos

Se aplica a los datos (coleccin de datos que describe a un objeto).

Aportada por el diseo procedimental:

Se centra en las operaciones que se ejecutan sobre los datos en vez de cmo se implementarn las operaciones.Departamento de Lenguajes y Computacin Universidad de Almera

Ej: cheque-nomina que contiene diferentes trozos de informacin nombre-beneficiario, cantidad-bruta, impuestos, IRPF

Especificacin de los detalles algortmicos de cada mdulo. Implementacin de los TAD.

19

Departamento de Lenguajes y Computacin Universidad de Almera

20

1.3. PROGRAMACIN ESTRUCTURADA

1.3. Programacin Estructurada Estructura diferentes partes para constituir un todo. Estructura del programa estructura correspondiente a las distintas acciones individuales o clculos parciales Se refiere a un conjunto de tcnicas que han ido evolucionando desde los primeros trabajos de Edgar Dijkstra: Propone un conjunto de construcciones lgicas con las que se puede construir cualquier programa Cada construccin o estructura de control tiene una estructura lgica un principio (entrada) y un final (salida)

Construcciones lgicas (estructuras de control) Secuencia Una accin sigue a otra en secuencia, de modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el final del proceso. Ej.: clculo de la suma y producto de dos nmeros

Ventajas: Minimizan la complejidad de los programas y Facilitan la legibilidad lectura, escritura, la prueba y el mantenimiento de los programas.Departamento de Lenguajes y Computacin Universidad de Almera Departamento de Lenguajes y Computacin Universidad de Almera

21

22

1.3. PROGRAMACIN ESTRUCTURADA

1.3. PROGRAMACIN ESTRUCTURADA

Construcciones lgicas (estructuras de control) Condicin Se selecciona entre dos alternativas de procesamiento segn se evale una condicin dada. Ej.: Estudiar cuando la ecuacin de 2 grado (ax2+bx+c) tiene solucin.

Repeticin El procesamiento se repite mientras se cumple una determinada condicin

V

Condicin

F

El procesamiento se repite hasta que se cumpla una determinada condicin.

While Se repite mientras la condicin sea verdaderaDepartamento de Lenguajes y Computacin Universidad de Almera

Repeat-until Se repite mientras la condicin sea falsa

23

Puede que no se Se ejecuta el ejecute el procesamiento al Departamento de Lenguajes y Computacin procesamiento menos una vez Universidad de Almera

24

1.3. PROGRAMACIN ESTRUCTURADA

Por qu no aparece el bucle desde en las construcciones lgicas de Dijkstra? Porque es equivalente a:Desde (expresin 1; expresin 2; expresin 3) Expresin 1

En resumen:

MIENTRAS

Una Metodologa puede seguir uno o varios modelos de Ciclo de Vida Un Ciclo de Vida indica qu obtener, pero no cmo Ciclo de vida clsico (en cascada): ANLISIS (anlisis), DESARROLLO (diseo, codificacin, pruebas) y MANTENIMIENTO (mantenimiento).

Expresin 2 F

V

Instruccin Expresin 3

Una Metodologa es un concepto ms amplio que Mtodo

Teorema de la programacin estructurada Establece que cualquier programa puede implementarse utilizando las tres nicas construcciones lgicas anteriores (secuencia, seleccin, repeticin) Sin embargo, hay que ser prudentes a la hora llevar a la prctica el teorema, porque puede generar dificultades prcticas en el desarrollo de la implementacin P. ej.: hacer uso del bucle for a partir de las construcciones anteriores.Departamento de Lenguajes y Computacin Universidad de Almera

Se puede considerar como un conjunto de mtodos. Una metodologa puede englobar un conjunto de mtodos (de anlisis, diseo, programacin, etc.) para abarcar el ciclo de vida completo

Se entiende por Programacin la coleccin de actividades que rodean a la descripcin, desarrollo, e implementacin efectiva de soluciones algortmicas a problemas bien especificados

25

Departamento de Lenguajes y Computacin Universidad de Almera

26

2. Representacin de algoritmos PSEUDOCDIGO Las notaciones que se utilizan en el diseo procedimental para representar algoritmos son: Representaciones grficas: diagramas de flujo. Lenguajes de Diseo de Algoritmos (LDA) o pseudocdigo.

Terminal (representa el comienzo, , y el final, de un programa. Puede representar tambin una parada o interrupcin programada que sea necesario realizar en un programa Entrada/Salida (cualquier tipo de introduccin de datos en la memoria desde los perifricos, , o registro de la informacin procesada en un perifrico, . Proceso (cualquier tipo de operacin que pueda originar cambio de valor, formato o posicin de la informacin almacenada en memoria, operaciones aritmticas, de transferencia, etc.). Decisin (indica operaciones lgicas o de comparacin entre datos normalmente dos- y en funcin del resultado de la NO misma determina cul de los distintos caminos alternativos del programa se debe seguir; normalmente tiene dos salidas respuestas SI o NO- pero puede ms, segn los casos). Decisin mltiple (en funcin del resultado de la comparacin se seguir uno de los diferentes caminos de acuerdo con dicho resultado).

Notacin de descripcinSI

Departamento de Lenguajes y Computacin Universidad de Almera

27

Departamento de Lenguajes y Computacin Universidad de Almera

28

Conector (sirve para enlazar dos partes cualesquiera de un ordinograma a travs de un conector en la salida y otro conector en la entrada. Se refiere a la conexin en la misma pgina del diagrama) Indicador de direccin o lnea de flujo (indica el sentido de ejecucin de las operaciones) Lnea conectora (sirve de unin entre dos smbolos) Conector (conexin entre dos puntos del organigrama situado en diferentes pginas) Llamada subrutina o a un proceso determinado (una subrutina es un mdulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza una tarea determinada y regresa, al terminar, al programa principal). Pantalla (se utiliza en ocasiones en lugar del smbolo de E/S). Impresora (se utiliza en ocasiones en lugar del smbolo de E/S) Teclado (se utiliza en ocasiones en lugar del smbolo de E/S). Comentarios (se utiliza para aadir comentarios clasificadores a otros smbolos del diagrama de flujo. Se pueden dibujar a cualquier lado del smbolo).Departamento de Lenguajes y Computacin Universidad de Almera

Ej.: calcular la media aritmtica de una serie de nmeros positivos

MIENTRAS

29

Departamento de Lenguajes y Computacin Universidad de Almera

30

Ej.: visualizar los dgitos del 0 al 99 (mientras).

La repeticin contina de forma indefinida hasta que se satisfaga una condicin lgica especificada

Ej.: visualizar los dgitos del 0 al 99 (repetir hasta).

MIENTRAS

No es necesario conocer de antemano el nmero de pasadas a travs del bucle!!!Departamento de Lenguajes y Computacin Universidad de Almera

31

Departamento de Lenguajes y Computacin Universidad de Almera

32

2.1. PSEUDOCDIGO

Algoritmo nombre_algoritmo {comentarios} tipo nombre_tipo: definicin_tipo_datos var lista_variables: nombre_tipo Inicio instruccin1 instruccinN Fin_algoritmoMdulo Principal

Procedimiento nombre_procedimiento(lista_parmetros _formales) {comentarios} tipo nombre_tipo: definicin_del_tipo var lista_variables: nombre_tipo Inicio instruccin1 instruccinN Fin_procedimiento

Procedimiento Funcin

Funcion nombre_funcion(lista_parmetros_formal es) {comentarios} tipo nombre_tipo: definicin_del_tipo var lista_variables: nombre_tipo Inicio nombre_funcion expresion Devolver(expresion) Fin_procedimiento

Departamento de Lenguajes y Computacin Universidad de Almera

33

Departamento de Lenguajes y Computacin Universidad de Almera

34

2.1. PSEUDOCDIGO

2.1. PSEUDOCDIGO

lista_parmetros_formales o argumentos := [nombre_parametro: nombre_tipo(tipo_parametro)] tipo_parametro := E | S | E/S

CLASES DE INSTRUCCIONES

Asignacin E/S por terminal

variable expresin leer(lista_variables) escribir(lista_variables)

nombre_procedimiento (lista_parametros_reales) nombre_funcion(lista_parmetros_reales)

Definen la interfaz de un mdulo. Cada parmetro formal representa un dato que necesita obtener o proporcionar al mdulo. Llamada a funciones y procedimientos:

ESTRUCTURAS DE CONTROL O CONSTRUCCIONES LGICAS Secuencia Instruccin 1 Instruccin 2 Instruccin N Si condicinentoncesInstruccin 1 Instruccin N

Puede aparecer como argumento de una expresin, dado que devuelve un resultado

lista_parmetros_reales Coincidencia en cantidad y tipo con los parmetros formales Diferencias entre funcin y procedimiento Las funciones devuelven un nico valor mientras que los procedimientos pueden devolver N. Los procedimientos devuelven sus valores por argumento, mientras que la funcin devuelve su valor en el mismo nombre de la funcin En la llamada a una funcin se debe realizar siempre una operacin asignacin (devuelve un valor) mientras que un procedimiento devuelve sus valores por argumentoDepartamento de Lenguajes y Computacin Universidad de Almera

Seleccin simple

si noInstruccin N+1 Instruccin M

Fin_siDepartamento de Lenguajes y Computacin Universidad de Almera

35

36

2.1. PSEUDOCDIGO

2.1. PSEUDOCDIGO

CLASES DE INSTRUCCIONES

CLASES DE INSTRUCCIONES

Seleccin Segn sea expresin_ordinal mltiple hacerlista_valores 1: instrucciones 1 lista_valores 2: instrucciones 2 lista_valores N: instrucciones N

REPETICIN Desde hasta Desde cont valor_inicial hasta valor_final hacerInstruccin 1 Instruccin N

[sino Instrucciones N+1] Fin_segn_sea REPETICIN Mientras Mientas condicin hacerInstruccin 1 Instruccin N

Fin_desde

Fin_mientras Repetir hasta RepetirInstruccin 1 Instruccin N

Hasta que condicinDepartamento de Lenguajes y Computacin Universidad de Almera

37

Departamento de Lenguajes y Computacin Universidad de Almera

38

3.1. CLASIFICACIN DE LAS ESTRUCTURAS DE DATOS

3. Estructuras de Datos (diseo de datos) CLASIFICACIN DE LAS ESTRUCTURAS DE DATOS Def.: Una estructura de datos es un conjunto de datos que se caracteriza por: Su organizacin, es decir, su representacin interna (implementacin) y en su rango de valores (dominio) Las operaciones permitidas DATOS SIMPLES (PRIMITIVOS) Sin estructuras Estndar (predefinidos) No necesitan definicin porque su dominio y operaciones son de sobra conocidas entero real carcter lgico o booleano Definidos (no estndar) Se definen en base a datos estndar Subrango subconjunto de valores de un tipo estndar Enumerado definir un dominio por enumeracin de un conjunto de valores de un tipo estndar

Ejemplo: {V1, V2, , Vn} Rango de valores que pueden tomar Representacin interna: 01001 Operaciones permitidas {+,-,*,/,0) y la vida til>0)} InicioRepetirEscribir(Introduzca el valor original del objeto) Leer(valor)

Hasta que (valor>0) RepetirEscribir (Introduzca vida del objeto:) Leer (vida)

Hasta que (vida>0)

Fin_procedimientoDepartamento de Lenguajes y Computacin Universidad de Almera

Departamento de Lenguajes y Computacin Universidad de Almera

57

er ab con l ah tro dr tado con o n e p e S e l e m a s d tr a s n r p im uctu mie r po t e s ti 58

Leer_mtodoProcedimiento leer_mtodo(mtodo:carcter(S)) {lee por teclado el mtodo: 1 (lnea recta), 2 (balance doblemente declinante), 3 (suma de los dgitos de los aos)} Inicio Repetir Escribir(Mtodo de clculo:) Escribir(=================) Escribir (1.-Mtodo de la lnea recta) Escribir(2.-Mtodo del balance doblemente declinado) Escribir (3.- Mtodo de la suma de los dgitos aos) Escribir (Introduzca opcin: ) Leer (mtodo) Hasta que (mtodo1)y (mtodo3) Fin_procedimiento

Calcular_tabla_depreciacinProcedimiento calcular_tabla_depreciacin (valor: real(E), vida: entero(E), mtodo: carcter(E)) {calcula la tabla de depreciacin segn el mtodo elegido} Inicio

Segn_sea mtodo1: llamar a mtodo_LR(valor,vida) 2: llamar a mtodo_BDD (valor,vida) 3: llamar a mtodo_SDA(valor,vida)

Fin_segn_seaFin_procedimiento

Departamento de Lenguajes y Computacin Universidad de Almera

59

Departamento de Lenguajes y Computacin Universidad de Almera

60

Por ejemplo:

Mtodo_LR (lnea recta) Recordatorio: Depreciacin: Disminucin del valor o precio de algo, ya con relacin al que antes tena, ya comparndolo con otras cosas de su clase.1 2 10

Valor original: 600 Vida til: 10 aos Se deprecia constantemente 600/10aos = 60 Fin ao n Valor depreciado 60 60 60 Remanente 540 480 0

La depreciacin en el mtodo de la lnea recta consiste en considerar que el objeto se deprecia una cantidad constante cada aoVALOR ACTUAL Valor inicial N de aos VIDA DEL OBJETO

La depreciacin es la misma cada ao

Ao nmero 1: Valor remanente valor original factor de depreciacin Escribir_lnea_salida(1,depreciacin,valor_remanente)

E: valor, vida S: ninguna

Ao nmero 2: Valor remanente valor remanente factor de depreciacin Escribir_lnea_salida(2,depreciacin,valor_remanente)

Factor de depreciacin =

valor original (valor a depreciar) vida objeto (vida til estimada)

Ao nmero N: Valor remanente valor remanente factor de depreciacin Escribir_lnea_salida(n,depreciacin,valor_remanente)Departamento de Lenguajes y Computacin Universidad de Almera

Departamento de Lenguajes y Computacin Universidad de Almera

61

62

Procedimiento mtodo_LR (valor: real(E),vida: entero(E)) {Calcula la tabla de depreciacin segn el mtodo de la lnea recta} Var i: entero {contador del bucle} Depreciacin: real {valor depreciado cada ao} Remanente: real {valor remanente al finalizar el ao} Inicio Depreciacin valor/vida Remanente valor Escribir(Tabla de depreciacin) Escribir(Mtodo: lnea recta) Escribir(Valor original:,valor) Desde i 1 hasta vida hacerRemanente Remanente depreciacin Llamar escribir_lnea_salida (i, Depreciacin, Remanente)

Mtodo_BDD El valor del objeto disminuye cada ao un porcentaje constante (la cantidad depreciada vara de un ao al siguiente) E: valor, vida S: ninguna

Depreciacin anual = Por ejemplo:

2 valor anual vida objeto

Valor original: 600 Vida til: 10 aosFin ao n 1 2 10 Valor depreciado 120,00 96,00 16,11 Remanente 480,00 384,00 64,42

Fin_desde Fin_procedimientoDepartamento de Lenguajes y Computacin Universidad de Almera

2 480, 00 1063

2 600 1064

Departamento de Lenguajes y Computacin Universidad de Almera

Remanente

valor original

Ao nmero 1: Depreciacin 2*Remanente/vida_objeto Remanente Remanente Depreciacin Escribir_lnea_salida(1, Depreciacin, Remanente)

Ao nmero 2: Depreciacin 2 * Remanente / vida_objeto Remanente Remanente Depreciacin Escribir_lnea_salida(2, Depreciacin, Remanente)

Ao nmero N: Depreciacin 2 * Remanente / vida_objeto Remanente Remanente Depreciacin Escribir_lnea_salida (N, Depreciacin, Remanente)

Procedimiento mtodo_BDD (valor: real(E),vida: entero(E)) {Calcula la tabla de depreciacin segn el mtodo del balance doblemente declinado} Var i: entero {contador del bucle} Depreciacin: real {valor depreciado cada ao} Remanente: real {valor remanente al finalizar el ao} Inicio Remanente valor Escribir(Tabla de depreciacin) Escribir(Mtodo: Balance Doblemente Declinante) Escribir(Valor original:,valor) Desde i 1 hasta vida hacerDepreciacin 2*Remanente/vida Remanente Remanente depreciacin Llamar escribir_lnea_salida (i, Depreciacin, Remanente)

Fin_desde Fin_procedimiento

Departamento de Lenguajes y Computacin Universidad de Almera

65

Departamento de Lenguajes y Computacin Universidad de Almera

66

Mtodo_SDA El valor del objeto disminuye un porcentaje que es diferente cada ao E: valor, vida S: ningunaDepreciacin anual = n de aos que restan valor original 1+2+...+vida objeto

OJO!!! Depreciacin (vida ao_i + 1) * valor / (vida*(vida+1)/2) Remanente Remanente Depreciacin Escribir_lnea_salida (ao_i, Depreciacin,Remanente)Procedimiento mtodo_SDA (valor: real(E),vida: entero(E)) {Calcula la tabla de depreciacin segn el mtodo de la suma de los dgitos de los aos} Vari: entero {contador del bucle} Depreciacin: real {valor depreciado cada ao} Remanente: real {valor remanente al finalizar el ao}

Por ejemplo: Valor original: 600 Vida til: 10 aosFin ao n 1 2 10 Valor depreciado 109,09 98,18 10,91 Remanente 490,91 392,73 0,00

Inicio Remanente valor Escribir(Tabla de depreciacin) Escribir(Mtodo: Suma de los dgitos de los aos) Escribir(Valor original:,valor) Desde i 1 hasta vida hacerDepreciacin (vida-i+1) * valor / (vida*(vida+1)/2) Remanente Remanente Depreciacin Llamar escribir_lnea_salida (i, Depreciacin, Remanente)

10 600 1 + 2 + ... + 10

9 600 1 + 2 + ... + 1067

Fin_desde Fin_procedimiento

Departamento de Lenguajes y Computacin Universidad de Almera

Departamento de Lenguajes y Computacin Universidad de Almera

68

Escribir_lnea_salida E: n de ao, valor depreciado, valor remanente S: ninguno

Procedimiento escribir_linea_salida (n:entero(E), Depreciacin:real(E), Remanente: real(E)) {Imprime una lnea de salida de la tabla de depreciacin} Inicio Escribir(Fin ao,n,valor depreciado, Depreciacin, valor remanente, Remanente) Fin_procedimiento

Departamento de Lenguajes y Computacin Universidad de Almera

69