Tải bản đầy đủ (.doc) (9 trang)

BÁO CÁO BÀI TẬP LỚN CC++

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (72.11 KB, 9 trang )

Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

Báo cáo bàI tập lớn c/c++
i . lời nói đầu:

Có thể nói rằng ngôn ngữ c,c++ thật là không thể thiếu với những nhà lập
trình chuyên nghiệp nó đã cung cấp bổ sung cho ta về lập trình tính toán,và lập
trình hệ thống,lập trình hớng đối tợng
Không những tinh toán chính xác hơn các ngôn ngữ khác giúp cho ngời lập trình
khi giải
quyết bài toán đòi hỏi mức độ chính xác cao (để điều khiển rô bốt
chẳng hạn) là công cụ thật hữu ích cho tính toán.
Nó còn cho ta lập trình hệ thống một cách đầy tính chuyên nghiệp,mang lại hiệu
quả cao trong công việc các nhà lập trình sẽ từ đó kiểm tra tất cả tính tối u,bẫy lỗi
chính xácdẫn tới thành công cho nhà lập trình.
Hơn nữa nó có tính kế thừa ,có thể sửa đổi bổ sung
Qua đó với sự hớng dẫn nhiệt tình của thầy ĐINH VĂN PHONG đã giúp tôi hoàn
thành bài tập lớn này.

Sinh viên:Ngô Thanh Bình
Lớp:Cơ Tin2-k44

ii . Các giảI thuật của bài toán PHầN I

void tinh_e_mu_x();
float tinh_sinx();
float ham_da_thuc();


Phong

BAI TAP LON PHAN I
//tinh e mu x theo cong thuc gan dung
//tinh sin(x) theo cong thuc gan dung
//tinh y=f(x) da thuc bac n

Ngời Hớng Dẫn: Thầy Đinh Văn


Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

void tinhTB_DL();
//tinh gia tri tb & phuong sai cua mot
day diem
float f(float x,int n);//tinh y=x mu n
long f(int n);
//tinh n!
long C(int m,int n);
// tinh to hop chap m cua n
long p(int n);
//tinh de quy p(n)=1 mu 3 + 2 mu 3 +.....
long s(int n2);
//tinh s(n2)=(2n)!
int atoi();
//chuyen xau ki tu thanh so nguyen
//float sothuc();

void tinh_e_mu_x()
//1.tinh e mu x theo cong thuc gan dung
}
x=atof(s);
exp=atof(s);
dung ham doulble atof(*s) trong thu vien <ctype.h>
(chuyen xau ki tu thanh so thuc)
while(fabs(z)>=exp)
{
i=i+1;
z=z*x/i;
y=z+y;
}
}
float tinh_sinx()
//2.tinh sin(x) theo cong thuc gan dung
{
x=atof(s);
exp=atof(s);
y=x;
x2=x*x;
z=x;
while(fabs(z)>=exp)
{ z=-z*x2/((i+1)*(i+2));
y=y+z;
i=i+2;
}
return(y);
}
float ham_da_thuc()

//3.tinh y=f(x) da thuc bac n
{
z=a[n]*x+a[n-1];
z=z*x+a[i-1];
return(z);
}
void tinhTB_DL()
//4.tinh gia tri tb & phuong sai cua mot day
diem

Phong

Ngời Hớng Dẫn: Thầy Đinh Văn


Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

{
s=0;d=0;
for (i=1;i<=n;++i)
{
s=s+x[i];
}
s=s/n;
for (i=1;i<=n;++i)
{
d=d+((x[i]-s)*(x[i]-s));

}
d=sqrt(d/n);
}
float f(float x,int n) //5.tinh
{
if (n==0) return(1);
else return(x*f(x,n-1));
}
long f(int n)
//6.tinh
{
if (n==0) return(1);
else return(n*f(n-1));
}
long C(int m,int n)
//7.tinh
{
return(f(n)/(f(n-m)*f(m)));
}
long p(int n)
//8.tinh
+.....
{
for(i=1;i<=n;++i)
t=t+f(i,3);
return(t);
}
long s(int n2)
//9.tinh
{ int n;

n=2*n2;
return(f(n));
}
int atoi()
//chuyen
{

y=x mu n

n!

to hop chap m cua n

de quy p(n)=1 mu 3 + 2 mu 3

s(n2)=(2n)!

xau ki tu thanh so nguyen

char s[100];
scanf("%s",s);
for (i=0;s[i]>='0'&& s[i]<='9';++i)
n=n*10+s[i]-'0';
return(n);

Phong

Ngời Hớng Dẫn: Thầy Đinh Văn



Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

}
void main()
{
tinh_e_mu_x();
printf("\n
printf("\n
tinhTB_DL();
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n

gia tri sin(x) la=%f",tinh_sinx());
gia tri da thuc f(x) la=%4f",ham_da_thuc());
gia
gia
gia
gia
gia

tri
tri
tri
tri

tri

da thuc x mu n la:%5.3f",f(x,n));
giai thua (n!) la:%5ld",f(n));
p(n) la:%5ld",p(n));
C(m,n) la:%5ld",C(m,n));
s=(n2=2*n)! la:%5ld",s(n));

}

IIi. Các giảI thuật của bài toán PHầN II-2

struct monhoc
{
double toan,ly,hoa,nucong,kithuat;
};
struct date
{
int ngay,thang,nam;
};
typedef struct
{
char ht[25];
struct monhoc diem; //0<=diem<=10 va sau dau '.'la
0.25,0.50,0.75
struct date ns;
//1<=ngay<=31 va 1<=thang<=12 va nam>=1900
int gioitinh;
//nam (1) or nu(0)
}person;

void vao(person *p);
//nhap ho ten,gioi tinh va diem cua n hoc sinh(luu tren dia)
void in(person p);//in so lieu ve hoc sinh nam sau do den nu
void sapxep(person *p,int n);
//sap xep theo thu tu giam dan cua tong diem cac mon hoc
chinh,mon
hoc bo sung

Phong

Ngời Hớng Dẫn: Thầy Đinh Văn


Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

void hoanvi(person *p1,person *p2); //hoan vi 2 hoc sinh
void doi(person *p,person *q); //gan 2 hoc sinh voi nhau
int atoi();
// su ly tu xau chuyen thanh so nguyen
double sulydiem();//su ly diem chuyen sau thanh diem theo khuon
kho
double sulydiem()
{
double n,m;
int a;
char s[100];
t:scanf("%s",s);

n=atof(s);
if (n<0||n>10)
{ printf("\n
ban da nhap sai diem (hay nhap lai)");
goto t;
}
a=(int)n;
m=n-(double)a;
if (m*8!=0&&m*8!=2&&m*8!=4&&m*8!=6)
{ printf("\n
ban da nhap sai diem (hay nhap lai)");
goto t;
}
return(n);
}
int atoi()
{ int i=0,n=0;
char s[100];
scanf("%s",s);
for (i=0;s[i]>='0'&& s[i]<='9';++i)
n=n*10+s[i]-'0';
return(n);
}
void vao(person *p)
{
h.ns.ngay=atoi();
h.ns.thang=atoi();
h.ns.nam=atoi();
h.gioitinh=atoi();
if (h.gioitinh==1)

{
h.diem.toan=sulydiem();
h.diem.ly=sulydiem();
h.diem.hoa=sulydiem();
h.diem.kithuat=sulydiem();
};
else

Phong

Ngời Hớng Dẫn: Thầy Đinh Văn


Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

{
h.diem.toan=sulydiem();
h.diem.ly=sulydiem();
h.diem.hoa=sulydiem();
h.diem.nucong=sulydiem();
}
*p=h;
}
void in(person p)
void hoanvi(person *p1,person *p2)
{
person h;

h=*p1;
*p1=*p2;
*p2=h;
}
void sapxep(person *p,int n)
{
if(p[i].diem.toan+p[i].diem.ly+p[i].diem.hoap[j].diem.ly+p[j].diem.hoa)
hoanvi(&p[i],&p[j]);
}
void doi(person *p,person *q)
{
*p=*q;
}
void main()
{
person *p,ds[100],dt[100],dn[100];
int i,n,m,k,j;
n=atoi();
for(i=1;i<=n;++i)
vao(&ds[i]);
m=0;k=0;
for (i=1;i<=n;++i)
{
if(ds[i].gioitinh==1)
// doan nay tach ds ra lam 2 danh sach
// danh sach dn la toan nam danh sach dt toan la nu
{
m=m+1;
doi(&dt[m],&ds[i]);

}
else

Phong

Ngời Hớng Dẫn: Thầy Đinh Văn


Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

{
k=k+1;
doi(&dn[k],&ds[i]);
}
}
for(i=1;i<=m;++i)
in(dt[i]);
//in nam truoc
for(i=1;i<=k;++i)
in(dn[i]);
//sau do in nu
sapxep(ds,n);
//in danh sach sau khi sap xep
printf("\n In Danh Sach Hoc Sinh Theo Thu Tu Giam Dan Ve
Tong Diem 3
mon (T_L_H):");
for(i=1;i<=n;++i)

in(ds[i]);
getch();
}
IIi. Các giảI thuật của bài toán PHầN IIi-1
//thiet ke va khai trien cac lop doi tuong complex
//mo ta so phuc voi it nhap 5 ham thanh phan
//thiet ke ham toan tu +,-,*,/,!,-.tinh s=(-p)*(p-(!q))/(u+v)
class SP
{
private:
double a;//phan thuc
double b;//phan ao
public:
friend ostream&operator<<(ostream&os,SP p); //ghi gia tri
ra man hinh
friend istream&operator>>(istream&is,SP &p);//nhap gia tri
SP operator+(SP u2); //cong 2 so phuc voi nhau
SP operator-(SP u2); //tru 2 so phuc voi nhau
SP operator*(SP u2); //nhan 2 so phuc voi nhau
SP operator/(SP u2); //chia 2 so phuc voi nhau
SP operator-() //doi dau so phuc
{
SP u;
u.a=-this->a;
u.b=-this->b;
return u;
}
SP operator!() // lay so phuc lien hop cua so phuc
{
SP u;


Phong

Ngời Hớng Dẫn: Thầy Đinh Văn


Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

u.a=this->a;
u.b=-this->b;
return u;
}
};
ostream&operator<<(ostream&os,SP p)
{
if (p.b>=0)
os<else os<return(os);
}
istream&operator>>(istream&is,SP &p)
{
p.a=atof(s);
p.b=atof(s);
return(is);
}
SP SP :: operator+(SP u2) //cong 2 so phuc voi nhau

{
SP u;
u.a=this->a+u2.a;
u.b=this->b+u2.b;
return u;
}
SP SP :: operator-(SP u2) //tru 2 so phuc voi nhau
{
SP u;
u.a=this->a-u2.a;
u.b=this->b-u2.b;
return u;
}
SP SP :: operator*(SP u2) //nhan 2 so phuc voi nhau
{
SP u;
u.a=this->a*u2.a-this->b*u2.b;
u.b=this->b*u2.a+this->a*u2.b;
return u;
}
SP SP :: operator/(SP u2) //chia 2 so phuc voi nhau
{
SP u;
u.a=(this->a*u2.a+this->b*u2.b)/(u2.a*u2.a+u2.b*u2.b);
u.b=(this->b*u2.a-this->a*u2.b)/(u2.a*u2.a+u2.b*u2.b);

Phong

Ngời Hớng Dẫn: Thầy Đinh Văn



Báo Cáo Bài Tập Lớn C,C++
K44

SV:Ngô Thanh Bình-Cơ Tin 2-

return u;
}
void main()
{
SP p,q,z,u,v;
SP s;
cin>>p>>q>>z>>u>>v; //nhap cac so phuc
s=(-p)*(p-(!q))/(u+v);
//tinh ham cong tru nhan chia,dao
dau,lien hop cac
cout<<"\n so phuc s="<}

Phong

Ngời Hớng Dẫn: Thầy Đinh Văn



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×