/*
* First example: shapes
* 1. Bad old way, in plain C
*
* RunStuff:: gcc THISFILE
*
* Picture looks roughly like this:
*
* ************************* *****
* * * * *
* * * * *
* * * * *
* * * * *
* * r1 * *r2 *
* * * * *
* * * * *
* * * * *
* ************************* * *
* * *
* * *
* * * * *
* * * * *
* * * * *
* * c1 * * *
* * * * *
* * * * *
* *****
*/
#include <stdio.h>
/*
* Data definitions
*/
int r1x, r1y, r1wid, r1ht; //*1 Data definitions
int r2x, r2y, r2wid, r2ht; //*1
int c1x, c1y, c1rad; //*1
/*
* Procedure definitions
*/
void draw_rect (int x, int y, int wid, int ht) { //*2 Procedure definitions
printf ("Drawing rectangle at %d, %d, %d, %d\n", x, y, wid, ht); //*2
}
void draw_circle (int x, int y, int rad) { //*2
printf ("Drawing circle at %d, %d, radius = %d\n", x, y, rad);
}
float area_rect (int x, int y, int wid, int ht) { //*2
return (float) (wid * ht);
}
float area_circle (int x, int y, int rad) { //*2
return (float) (rad * rad * 3.14159);
}
/*
* Main program
*/
int main () {
/*
* Set the locations of the 3 objects
*/
r1x = 10; r1y = 10; //*3 Set the data
r1wid = 50; r1ht = 50; //*3
r2x = 80; r2y = 10; //*3
r2wid = 10; r2ht = 100; //*3
c1x = 35; c1y = 90; //*3
c1rad = 10; //*3
/*
* Draw them
*/
draw_rect (r1x, r1y, r1wid, r1ht); //*4 Call the procedures
draw_rect (r2x, r2y, r2wid, r2ht); //*4
draw_circle (c1x, c1y, c1rad); //*4
/*
* Compute and print total area
*/
printf ("Total area = %f\n",
area_rect (r1x, r1y, r1wid, r1ht) //*4
+ area_rect (r2x, r2y, r2wid, r2ht) //*4
+ area_circle (c1x, c1y, c1rad)); //*4
return 0;
}