TAD

Run Settings
LanguageC
Language Version
Run Command
#include <stdlib.h> #include <stdio.h> #include <math.h> #include "tad_r2.h" struct ponto { float x; float y; }; Ponto* cria (float x, float y) { Ponto* p = (Ponto*) malloc(sizeof(Ponto)); if ( p == NULL) { printf ("Memoria insuficiente\n"); exit (1); } p->x = x; p->y = y; return p; } void libera (Ponto* p) { free (p); } void acessa (Ponto* p, float* x, float* y) { *x = p->x; *y = p->y; } void atribui (Ponto* p, float x, float y) { p->x = x; p->y = y; } float distancia (Ponto* p1, Ponto* p2) { float dx = p2->x - p1->x; float dy = p2->y - p1->y; return sqrt (dx*dx + dy*dy); } float soma (Ponto* p1, Ponto* p2) { float dx = p2->x + p1->x; return dx; } float sub (Ponto* p1, Ponto* p2) { float dx = p2->y - p1->y; return dx; } float L1 (Ponto* p1, Ponto* p2) { float dx = p2->x - p1->x; float dy = p2->y - p1->y; return (dx + dy); }
typedef struct ponto Ponto; Ponto* cria (float x, float y); void libera (Ponto* p); void acessa (Ponto* p, float* x, float* y); void atribui (Ponto* p, float x, float y); float distancia (Ponto* p1, Ponto* p2); float soma (Ponto* p1, Ponto* p2); float sub (Ponto* p1, Ponto* p2); float L1 (Ponto* p1, Ponto* p2);
#include <stdio.h> #include "tad_r2.h" int main () { float x, y; Ponto *a = cria (1.0,1.0); Ponto *b = cria (4.0,4.0); acessa (a, &x, &y); printf ("Ponto a (%.2f,%.2f)\n",x,y); acessa (b,&x,&y); printf("Ponto b (%.2f,%.2f)\n",x,y); float c = distancia (a,b); printf("Distancia entre ponto: %f\n",c); float d = soma (a,b); printf ("Soma de dois pontos: %f\n",d); float e = sub (a,b); printf ("Subtraçao de dois pontos: %f\n",e); float f = L1 (a,b); printf ("Distancia L1 entre os pontos: %f\n",f); libera(a); libera(b); return (0); }
Editor Settings
Theme
Key bindings
Full width
Lines