Archive

Posts Tagged ‘Cpp’

C++ Program to find Sum of Series (When n is Odd/Even) – Q2

January 2, 2010 Leave a comment

Q2. Program to find Sum of Series:
i) x-x^3/3!-x^5/5!+x^7/7!-….. x^n/n! (When n is odd)
ii) x^2/2!-x^4/4!+x^6/6!-….. x^n/n! (When n is even)

… from College notes (BCA/MCA assignments):
 

#include <iostream.h>
#include <math.h>
#include <conio.h>

long Fact(long);
float Odd_Series(int, int);
float Even_Series(int , int);

int main(){
	int x, n;
	float sum;
	clrscr();

	cout<<"\n Enter the Value of x: ";
	cin>>x;
	cout<<"\n Enter the Value of n: ";
	cin>>n;

	sum = Odd_Series(x, n);
	cout<<"\n Sum of Odd Series: "<<sum;

	sum = Even_Series(x, n);
	cout<<"\n Sum of Even Series: "<<sum;

	getch();
	return 0;
	}

long Fact(long f){
	if(f<=0)
		return 1;
	else
		return (f * Fact(f-1));
}

float Odd_Series(int x, int n){
	int i, f;
	float sum = 0;
	for(i=1, f=0; i<=n; i=i+2, f++)
		sum += pow(-1, f) * pow(x, i) / Fact(i);
	return sum;
}

float Even_Series(int x, int n){
	int i, f;
	float sum = 0;

	for(i=2, f=0; i<=n; i=i+2, f++)
		sum += pow(-1, f) * pow(x, i) / Fact(i);

	return sum;
}

 

Output:

Enter the Value of x: 4

Enter the Value of n: 5

Sum of Odd Series: 1.866667
Sum of Even Series: -2.666667


Categories: Cpp Tags: ,

C++ Program to find Roots (Real & Complex) of a Quadratic Equation – Q1

January 1, 2010 Leave a comment

Q1. Program to find Roots (Real & Complex) of a Quadratic Equation:

… from College notes (BCA/MCA assignments):
 

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <complex.h>

void main(){
	int aint, bint, cint, b2, dsq;
	float rt1 , rt2, d;
	clrscr();

	cout<<"\n Quadratic Equation is:- \n";
	cout<<"\n\t a*x^2 + b*x + c";

	cout<<"\n Enter the Value of a: ";
	cin>>aint;

	cout<<"\n Enter the Value of b: ";
	cin>>bint;

	cout<<"\n Enter the Value of c: ";
	cin>>cint;

	b2 = pow(bint, 2);
	d = b2 - 4 *  aint * cint;

	if(d > 0){
		dsq = sqrt(d);
		rt1 = (-bint + dsq) / (2 * aint);
		rt2 = (-bint - dsq) / (2 * aint);
		cout<<"\n Roots are Real and distinct";
		}
	else if(d == 0){
		rt1 = -bint/2 * aint;
		rt2 = rt1;
		cout<<"\n Roots are Real and same";
		}
	else {
		rt1 = -bint/2 * aint;
		rt2 = sqrt(-bint)/2 * aint;
		cout<<"\n Roots are Complex and distinct";
		}

	cout<<"\n rt1 : "<<rt1;
	cout<<"\n rt2 : "<<rt2;

	getch();
}

 

Output:

Equation is:-

a*x^2 + b*x + c

Enter the Value of a: 3

Enter the Value of b: 4

Enter the Value of c: 5

Roots are:-
rt1 : 9.476982e-41
rt2 : 219.999786


C++ Graphics – 21 – Analog Clock code/program showing current time

December 21, 2009 Leave a comment

Analog Clock program by using Trigonometry (SIN & COS) functions:

Cpp 21 Clock

#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <dos.h>

#define PI 3.14

void getTime(int *h, int *m, int *s ){
	struct time t;
	gettime(&t);

	gotoxy(36,18);
	printf("%2d:%02d:%02d.%02d\n",
		 t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);

	*h = t.ti_hour;
	*m = t.ti_min;
	*s = t.ti_sec;
	}

void main(){
	int gd=DETECT, gm;
	initgraph(&gd, &gm, "\\tc");

	int xs, ys, xm, ym, xh, yh, h, m, s;

	while(!kbhit()){
		cleardevice();

		getTime(&h, &m, &s);

		settextstyle(1,0,0);
		setcolor(WHITE);
		outtextxy(300,15,"12");
		outtextxy(315,425,"6");
		outtextxy(105,220,"9");
		outtextxy(520,220,"3");
		settextstyle(5,0,0);

		setcolor(GREEN);
		outtextxy(275,300,"CLOCK");
		settextstyle(2 ,0,0);

		setcolor(LIGHTRED);
		outtextxy(310,295,"Manoj");

		xh = cos((h*30 + m / 2) * PI / 180 - PI / 2) * 150 + 320;
		yh = sin((h*30 + m / 2) * PI / 180 - PI / 2) * 150 + 240;
		xm = cos(m * PI / 30 - PI / 2) * 180 + 320;
		ym = sin(m * PI / 30 - PI / 2) * 180 + 240;
		xs = cos(s * PI / 30 - PI / 2) * 210 + 320;
		ys = sin(s * PI / 30 - PI / 2) * 210 + 240;

		setcolor(LIGHTBLUE);
		circle(320,240,220);

		setcolor(LIGHTRED);
		line(320,240,xh,yh);

		setcolor(LIGHTGREEN);
		line(320,240,xm,ym);

		setcolor(YELLOW);
		line(320,240,xs,ys);

		sleep(1);
		}
	}

C++ Graphics – 20 – SCALING of LINE, TRIANGLE and RECTANGLE w.r.t a Point

December 20, 2009 Leave a comment

SCALING of LINE, TRIANGLE and RECTANGLE w.r.t a Point.

#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>

const int MAX = 5;
const double PI = 3.14;

void GetCords(float mat1[][MAX], float mat2[][MAX], int n){
	int i, j;
	for(i=0; i<n; i++){
		printf("\n Enter Coordinate no %d:- \n", i+1);
		for(j=0; j<2; j++){
			scanf("%f", &mat1[j][i]);
			}
		}

	for(i=0; i<n; i++){
		mat2[0][i] = mat1[0][i];
		mat1[0][i] = 320 + mat1[0][i];
		mat2[1][i] = mat1[1][i];
		mat1[1][i] = 240 - mat1[1][i];
		}

	setcolor(GREEN);
	line(0, 240, 640, 240);
	outtextxy(630, 245, "x");
	line(320, 0, 320, 480);
	outtextxy(310, 0, "y");
	outtextxy(280, 245, "(0,0)");

	setcolor(YELLOW);
	moveto(mat1[0][0], mat1[1][0]);
	for(i=0; i<n; i++){
			lineto(mat1[0][i], mat1[1][i]);
			moveto(mat1[0][i], mat1[1][i]);
			}
	lineto(mat1[0][0], mat1[1][0]);

	}

void pointScale(float mat2[][MAX], int n){
	int i, j, k;
	float tmat[MAX][MAX], tot[MAX][MAX];
	int sx, sy;
	int px, py;

	// Get a Point.
	px = mat2[0][0];
	py = mat2[1][0];

	printf("\n Enter the Scale value of x: ");
	scanf("%d", &sx);
	printf("\n Enter the Scale value of y: ");
	scanf("%d", &sy);

	// Inv Translation to Origin.
	for(i=0; i<n; i++){
		mat2[0][i] -= px;
		mat2[1][i] -= py;
		}

	// Scaling
	tmat[0][0] = sx;
	tmat[0][1] = 0;
	tmat[1][0] = 0;
	tmat[1][1] = sy;

	for(i=0; i<2; i++){
		for(j=0; j<n; j++){
			tot[i][j] = 0;
			for(k=0; k<2; k++){
				tot[i][j] = tot[i][j] + (tmat[i][k] * mat2[k][j]);
				}
			}
		}

	// Trnaslate from the Origin.
	for(i=0; i<n; i++){
		tot[0][i] += px;
		tot[1][i] += py;
		}

	for(i=0; i<n; i++){
		tot[0][i] = 320 + tot[0][i];
		tot[1][i] = 240 - tot[1][i];
		}

	setcolor(LIGHTRED);
	moveto(tot[0][0], tot[1][0]);
	for(i=0; i<n; i++){
			lineto(tot[0][i], tot[1][i]);
			moveto(tot[0][i], tot[1][i]);
			}
	lineto(tot[0][0], tot[1][0]);
	}

void main(){
	int gd=DETECT, gm;
	initgraph(&gd, &gm,"\\tc");
	float mat1[MAX][MAX], mat2[MAX][MAX];
	int ch, n;
	while(1){
		clrscr();
		cleardevice();
		printf("\n SCALING w.r.t a point");
		printf("\n ~~~~~~~~~~~~~~~~~~~~~~\n");
		printf("\n 1 -> LINE.");
		printf("\n 2 -> TRIANGLE.");
		printf("\n 3 -> RECTANGLE");
		printf("\n 4 -> Exit.");
		printf("\n Enter your choice: ");
		scanf("%d", &ch);
		clrscr();
		cleardevice();
		switch(ch){
			case 1:		// LINE.
				n=2;
				break;
			case 2:		// TRIANGLE.
				n=3;
				break;
			case 3:		// RECTANGLE.
				n=4;
				break;
			default:
				gotoxy(10, 10);
				printf(" Dev. By: Manoj Pandey.");
				gotoxy(15, 15);
				printf("MCA 3d Sem.");
				getch();
				closegraph();
				exit(1);
			} // end of switch.
		GetCords(mat1, mat2, n);	// Input of Coordinates.
		pointScale(mat2, n);	// Scaling and Displaying.
		getch();
		} // end of while.
	} // end of main.

C++ Graphics – 19 – ROTATION of LINE, TRIANGLE and RECTANGLE w.r.t a Point

December 19, 2009 Leave a comment

ROTATION of LINE, TRIANGLE and RECTANGLE w.r.t a Point.

#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>

const int MAX = 5;
const double PI = 3.14;

void GetCords(float mat1[][MAX], float mat2[][MAX], int n){
	int i, j;
	for(i=0; i<n; i++){
		printf("\n Enter Coordinate no %d:- \n", i+1);
		for(j=0; j<2; j++){
			scanf("%f", &mat1[j][i]);
			}
		}

	for(i=0; i<n; i++){
		mat2[0][i] = mat1[0][i];
		mat1[0][i] = 320 + mat1[0][i];
		mat2[1][i] = mat1[1][i];
		mat1[1][i] = 240 - mat1[1][i];
		}

	setcolor(GREEN);
	line(0, 240, 640, 240);
	outtextxy(630, 245, "x");
	line(320, 0, 320, 480);
	outtextxy(310, 0, "y");
	outtextxy(280, 245, "(0,0)");

	setcolor(YELLOW);
	moveto(mat1[0][0], mat1[1][0]);
	for(i=0; i<n; i++){
			lineto(mat1[0][i], mat1[1][i]);
			moveto(mat1[0][i], mat1[1][i]);
			}
	lineto(mat1[0][0], mat1[1][0]);

	}

void pointRotate(float mat2[][MAX], int n){
	int ang, i, j, k;
	float tmat[MAX][MAX], tot[MAX][MAX];
	float rad;
	int px, py;

	// Get a Point.
	px = mat2[0][0];
	py = mat2[1][0];

	printf("\n Enter the Angle (in Degrees):- \n");
	scanf("%d", &ang);

	// Inv Translation to Origin.
	for(i=0; i<n; i++){
		mat2[0][i] -= px;
		mat2[1][i] -= py;
		}

	// Rotation.
	rad = (ang * PI) / 180;

	tmat[0][0] = cos(rad);
	tmat[0][1] = -sin(rad);
	tmat[1][0] = sin(rad);
	tmat[1][1] = cos(rad);

	for(i=0; i<2; i++){
		for(j=0; j<n; j++){
			tot[i][j] = 0;
			for(k=0; k<2; k++){
				tot[i][j] = tot[i][j] + (tmat[i][k] * mat2[k][j]);
				}
			}
		}

	// Trnaslate from the Origin.
	for(i=0; i<n; i++){
		tot[0][i] += px;
		tot[1][i] += py;
		}

	for(i=0; i<n; i++){
		tot[0][i] = 320 + tot[0][i];
		tot[1][i] = 240 - tot[1][i];
		}

	setcolor(LIGHTRED);
	moveto(tot[0][0], tot[1][0]);
	for(i=0; i<n; i++){
			lineto(tot[0][i], tot[1][i]);
			moveto(tot[0][i], tot[1][i]);
			}
	lineto(tot[0][0], tot[1][0]);
	}

void main(){
	int gd=DETECT, gm;
	initgraph(&gd, &gm,"\\tc");
	float mat1[MAX][MAX], mat2[MAX][MAX];
	int ch, n;
	while(1){

		clrscr();
		cleardevice();
		printf("\n ROTATION w.r.t a point");
		printf("\n ~~~~~~~~~~~~~~~~~~~~~~\n");
		printf("\n 1 -> LINE.");
		printf("\n 2 -> TRIANGLE.");
		printf("\n 3 -> RECTANGLE");
		printf("\n 4 -> Exit.");
		printf("\n Enter your choice: ");
		scanf("%d", &ch);
		clrscr();
		cleardevice();
		switch(ch){
			case 1:		// LINE.
				n=2;
				break;
			case 2:		// TRIANGLE.
				n=3;
				break;
			case 3:		// RECTANGLE.
				n=4;
				break;
			default:
				gotoxy(10, 10);
				printf(" Dev. By: Manoj Pandey.");
				gotoxy(15, 15);
				printf("MCA 3d Sem.");
				getch();
				closegraph();
				exit(1);
			} // end of switch.
		GetCords(mat1, mat2, n);	// Input of Coordinates.
		pointRotate(mat2, n);	// Rotating and Displaying.
		getch();
		} // end of while.
	} // end of main.