miércoles, 18 de enero de 2012

Otro ejemplo de TAD

En este post tenemos un ejemplo de TAD con su código fuente completo debidamente comentado para que podáis copiarlo y usarlo sin problemas y así comprender mejor su funcionamiento. Cualquier duda o cosa que queráis no dudéis en ponerla en los comentarios.

/*************************************************/
/* Interfaz del módulo */
/*************************************************/

#pragma once
/********************************
Definicion del tipo abstracto
********************************/
/*
TAD: Tipo abstracto de datos-->
Agrupacion de
  una coleccion de valores
  +
  operaciones de manipulacion */
/******************************/


typedef struct TPunto {
void Leer();
void Escribir();
float Distancia(TPunto p );
/*OCULTACION DE INFORMACION */
 private:
  float x;
  float y;

};


================================================================
================================================================
================================================================

#include <stdio.h>
#include <math.h>
#include "mod.h"

/******************************/
/* Implementacion del tipo abstracto */
/******************************/


void TPunto::Leer()
{

printf("Dame las coordenadas del punto (x,y)");
scanf(" (%g , %g)", &x, &y);
}

void TPunto::Escribir(){
printf(" (%g , %g)", x, y);
}


float  TPunto::Distancia (TPunto p){
float dis_x, dis_y;

dis_x= x-p.x;
dis_y= y-p.y;

return sqrt (dis_x*dis_x + dis_y*dis_y);
}


================================================================
================================================================
================================================================
#include <stdio.h>
#include "mod.h"

int main(){
 TPunto a, b;
 a.Leer();
 b.Leer();

 printf(" Veamos lo leido \n");
 a.Escribir();
 b.Escribir();


 printf("\n distancia = %g \n", a.Distancia(b));

No hay comentarios:

Publicar un comentario