All pastes #763206 Raw Edit

Triangle Program

public c v1 · immutable
·published 2007-11-06 08:06 UTC
rendered paste body
/*Program to find various properties of trianglesOriginal layout by Paul Davey, 2007Debugging and restructure by Jonathan Love, 2007Notes:- C99 Compatible:	- all 'for' loops replaced with 'while' (Jonathan)	- Standard variable types - no strings or files (Paul)- Used Defines for boolean replacement. (Jonathan)- All vars and functions renamed appropriately according to their return - e.g. iCalcPerimeter returns and integer, fCalcArea returns float (Jonathan)- System independent - no system calls (Paul)- Adjusted call to fCalcArea to fix iCalcPerimeter call (Jonathan)- Algorithms implemented, except isRightAngled (Paul)- Menu System (Paul)- Functional Program (Jonathan)THIS PROGRAM WILL COMPILE WITH GCC!*/#include <stdio.h>#include <stdlib.h>#include <math.h>//Constants and Defines#define TRUE 1;#define FALSE 0;void fnClear(){		//Clear the screen - no library dependence, but puts cursor at screen bottom		int iCounter = 0;		while (iCounter < 25)	//Assume 25 is screen height		{			printf("\n");			iCounter++;		}}int iCalcPerimeter(int iSides[]){    //Calculate Perimeter	int iPerimeter = 0;	int iCounter = 0;    while (iCounter < 3)	{		iPerimeter += iSides[iCounter];		iCounter++;    }    return iPerimeter;}int isRightAngled(int iSides[]){	//Enter isRightAngled algorithm here	return FALSE;}float fCalcArea(int iSides[]){	//Calculate Area	float fS = iCalcPerimeter(iSides)/2;    return sqrt(fS*(fS - iSides[0])*(fS - iSides[1])*(fS - iSides[2]));}        int main(int argc, char *argv[]){	//Integers	int iSides[3];	int iResponse;	//Booleans - which are actually integers	int isExit		= FALSE;	int isInputDone	= FALSE;	 	//Chars and Char Pointers (Strings)	char cYesNo;	 while (!isExit)		{			//Main Menu						isInputDone = FALSE;		//Restore false status			iResponse = 0;						//Get three Sides			printf("Please enter the lengths of the three sides of a triangle:");			printf("\nSide 1: ");			scanf("%d",&iSides[0]);			printf("Side 2: ");			scanf("%d",&iSides[1]);			printf("Side 3: ");			scanf("%d",&iSides[2]);						//Do until input done = true (IE new triangle)			while (!isInputDone)			{				fnClear();				//Ask for a menu option. Usually clear screen here				printf("1: Find the perimeter of the triangle.\n");				printf("2: Find if the triangle is right angled or not.\n");				printf("3: Find the area of the triangle\n");				printf("4: Enter a new triangle\n");				printf("5: Quit Program\n\n");				printf("Please enter the number of the option you want: ");								//Get input response				scanf("%d", &iResponse);				printf("\n");				switch (iResponse)				{						case 1: 								//Find the perimeter								printf("The perimeter is:%d\n", iCalcPerimeter(iSides));								break;						case 2: 								//Find whether triangle is right-angled								isRightAngled(iSides);								printf("Not Implemented Yet\n");								break;						case 3: 								//Determine triangle area								printf("The area is:%f\n",fCalcArea(iSides));								break;						case 4:								//Get new triangle								isInputDone	= TRUE;								break;						case 5:								//Input is done and we want to exit								isInputDone = TRUE;								isExit = TRUE;								break;				         default: 								printf("Please enter a number from the menu:");								break;				}							printf("\n\n");		//Print some newlines			} 		}			return 0;}