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

Báo Cáo Bài Tập Lớn:Ngôn Ngữ Lập Trình 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 (53.51 KB, 4 trang )

Bài Tập Lớn Ngôn Ngữ Lập Trình C&C++
Báo Cáo Bài Tập Lớn:Ngôn Ngữ Lập Trình C&C++

I.Lời Nói Đầu

Tron bối cảnh hiện nay Công nghệ thông tin đang phát triển nh vũ bão với những ứng dụng phong
phú và hiệu quả.Điều đó đợc thể hiện rất rõ trong các lĩnh vực của đời sống nh kinh tế ,văn hoá, trong
khoa học kĩ thuật .Để bắt kịp với xu thế của thời đại ngời kĩ s phải trang bị cho mình một kiến thức
vững vàng về tin học .Một trong những kiến thức không thể không kể đến đó là ngôn ngữ lập
trình.Ngôn ngữ lập trình không những giúp chúng ta tạo ra các úng dụng cho nhu cầu về công việc của
mình mà còn giúp ta tiếp cận các ứng dụng một cách rễ ràng .Do đó việc học ngôn ngữ lập trình là
một nhu cầu rất tự nhiên của chúng ta.Một trong những ngôn ngữ lập trình tơng đối phổ biến là Ngôn
ngữ lập trình C.C là ngôn ngữ lập trình tơng đối phức tạp và nó đòi hỏi khả năng sáng tạo cao của ngời
lập trình .Vì vậy để nắm bắt đợc công cụ lập trình tơng đối mạnh nhu C thì đòi hỏi ngời học nó phải đầu
t thời gian đáng kể.Sau đây là một số bài toán áp dụng ngôn ngữ C ở mức độ đơn giản do em viết trong
quá trình học tập .Các bài toán nay chỉ viết ở mức đơn giản để áp dụng các câu lệnh và cú pháp đơn
giản.
Chơng trình gồm hai phần :
*Phần I:Các bài toán tính toán(Tính ex,tổ hợp Cn ).
*Phần II:Gồm bài toán áp dụng cấu trúc(Bài toán tuyển sinh).
Đây là bài toán tuy nhỏ nhng tơng đối phổ biến trong thực tế.Nhất là các bài ở phần I nó giúp ta tính
toán các bài toán lớn.
Dới đây là nội dung chi tiết của bài toán bao gồm cách tổ chức nội dung chơng trình và các ý tởng
của từng bài toán.

Sinh viên thực hiện:
Trần Văn Tuân .
Lớp Cơ tin 2-k44.

II.Nội Dung Báo Cáo
Báo cáo trình bày ý tởng và cơ sở toán học để xây dựng các thuật giải ,cách tổ chức chơng trình.



1.Cách tổ chức chơng trình

Chơng trình tổ chức gồm tất cả 4 bài toán trong một chơng trình chính.Các bài toán đợc xây dựng
thành các hàm .Các hàm này đợc gọi từ chơng trình chính.
Chơng trình xây dựng 4 hàm gồm
*Các hàm
float emux(float x):
Tính ex
float to_hop(int m1,int n1):
Hàm tính tổ hợp chập m của n phần tử
Cmn
float tinh_gia_fx(float x,int n1): Hàm tính giá trị của hàm f(x) tại đIểm x
void nhap(int n):
Nhập giá trị hệ số của đa thức f(x)
int giai_thua(int n):
Hàm này tính giai thừa của một số nguyên
void datafile(int n):
Hàm này tạo File dữ liệu từ tập các quan sát
void tinh_toan(void): Hàm này tính toán độ lệch chuẩn và giá trị trung bình (Lờy dữ liệu File
trên)

2.Cách sử dụng chơng trình

Chơng trình sẽ da ra các lựa chọn dới dạng số .Nếu muốn cho chạy bài tập nào bạn chỉ việc gõ số
vào .Nếu số của bạn gõ vào không trùng với một trong các số hiện ra ở màn hình chơng trình sẽ thoát.
Khi bạn chọn chơng trình nào đó bạn phải nhập dữ liệu cho bài toán,sau đó bạn sẽ đợc kết quả.

III.Thuật giải và ý tởng của bài toán
Bài1:Tính ex


S dụng công thức truy hồi ex=1+x/1! +x2/2! ++xn/n!
Ta chỉ tính với một độ chính xác nhất định .Trong chơng trình này chọn độ chính xác là 0.001
Với cách chọn nh vậy thì số lần máy làm sẽ hữu hạn .
Dùng chiến lợc so sánh tỉ số xn/n! với độ chính xác yêu cầu.Khi cha đạt độ chính xác theo yêu cầu thì
tiếp tục tính cho đến khi đạt độ chính xác theo yêu cầu thì thôi.Để vòng lặp đợc tiếp tục thì ở mỗi lần
thử ta phải tăng lên một.
2.Tính tổ hợp chập n của m phần tử.


Bài Tập Lớn Ngôn Ngữ Lập Trình C&C++
Ta sử dụng công thức toán Cmn=m!/(m-n)!.n! để tính toán đợc ta xây dựng hàm tính giai thừa của một
số nguyên.Hàm tính giai thừa xây dựng bằng giải thuật đệ quy(chơng trình xây dựng hàm thể
hiện rõ).Trong bài này ta phải kiểm tra điều kiện tồn tại tổ hợp đó là nm.Trong chơng trình có
sử dụng lệnh để kiểm tra nếu không thoả mãn điều kiện trên thì thoát .

3.Tính gía trị của đa thức bậc n

Bài toán này xây dựng hai phần :Một phần nhập dữ liệu là mảng một chiều chứa các hệ số của đa thức
f(x),một phần hàm tính giá trị của đa thức .Khi gọi tới hàm tính giá trị của đa thức thì hàm nhập dữ
liệu sẽ đợc gọi tới,và ngời sử dụng nhập các hệ số cho đa thức ,nhập bậc của đa thức cần tính. Chơng
trình này sử dụng vòng lặp for để đọc các hệ số của đa thức sau đó cho các hệ số nhân với bậc tơng ứng
của đa thức rồi cộng tổng tích luỹ của chúng lại ta đợc kết quả.

4.Tính giá trị trung bình và độ lệch chuẩn của một tâp số liệu quan sát

Tổ chức bài toán gồm hai hàm đó là hàm datafile để tạo file dữ liệu của tập các quan sát,hàm tính
toán có nhiệm vụ tính toán giá trị trung bình s và độ lệch chuẩn d.Bài toán đợc tổ chức sao cho ngời
chạy có thể tạo file dữ liệu mới hoặc có thể sử dụng ngay file dữ liêụ đã có ,số liệu của file sẽ đợc in
kèm theo phần kết quả.


5.Mã chơng trình

#include<stdio.h> //Bai Tap Lon Phan Thu Nhat//
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<stdlib.h>
int n,mu,chon,m;
float x,a[100];
float emux(float x);
float to_hop(int m1,int n1);
float tinh_gia_fx(float x,int n1);
void nhap(int n);
int giai_thua(int n);
FILE *pt;
void datafile(int n);
void tinh_toan(void);
main()
{
clrscr;
printf("Hay Nhap Chon:\n0-Thoat.\n1-Tinh giai thua.\n2-Tinh e mu x.\n3-Tinh to hop.\n4-Tinh fx.\n");
printf("5-Tao file du lieu.\n6-Tinh do lech chuan va gia tri trung binh 4.\n");
scanf("%d",&chon);
if((chon>7)||(chon<0)) exit(0);
switch(chon)
{
case 0:break;
case 1:{ printf("\a\n Day La Chuong Trinh Tinh Giai Thua:");
printf("\nNhap so can tinh giai thua n=");scanf("%d",&n);

if(n<0)printf("KHONG CO GIAI THUA");else
printf("Gia Tri Giai Thua cua %d la=%d",n,giai_thua(n));
break;
}
case 2:{ printf("\a\n Day La Chuong Trinh Tinh e Mu x:");
printf("\nNhap so can tinh mu:");scanf("%f",&x);
printf(" Gia tri cua e mu %4.2f la=%4.2f",x,emux(x));
break;
}
case 3:{ printf("\a\nDay La Chuong Trinh Tinh To Hop:");
printf("\nNhap cac thong so de tinh to hop:");
printf("\nNhap n=");scanf("%d",&n);
printf("Nhap m=");scanf("%d",&m);
2


Bµi TËp Lín Ng«n Ng÷ LËp Tr×nh C&C++
if(n>m) printf("KHONG TON TAI TO HOP"); else
printf("To hop chap %d cua %d phan tu la:%4.2f",n,m,to_hop(m,n));
break;
}
case 4:{printf("\a\n Tinh Gia Tri Cua Da Thuc:");
printf("\nNhap gia tri bac cua da thuc can tinh n=");scanf("%d",&n);
printf("\nNhap gia tri tai diem can tinh gia tri x=");scanf("%f",&x);
nhap(n);
printf("Gia tri cua ham tai diem %4.3f la=%4.3f:",x,tinh_gia_fx(x,n));
break;
}
case 5:{printf("\n Nhap tong so quan sat duoc:");scanf("%d",&n);
datafile(n);

break;
}
case 6:{printf("\nDAY LA BAI TAP SO 4");
tinh_toan();
break;
}
}
while(!kbhit());
}
int giai_thua(int a)
{
if(a==0)return 1;
else
{
a=a*giai_thua(a-1);
return(a);
}
}
float emux(float x)
{
float tg;
int n;
tg=1;
n=1;
while(fabs((pow(x,n))/(giai_thua(n)))>0.001)
{
n=n+1;
tg=tg+(pow(x,n))/(giai_thua(n));
}
return (tg);

}
float to_hop(int m1,int n1)
{
float tg=0;
if (m1else
{
tg=tg+float(giai_thua(m1)/(giai_thua(n1)*giai_thua(m1-n1)));
}
return(tg);
}
float tinh_gia_fx(float x,int n1)
3


Bµi TËp Lín Ng«n Ng÷ LËp Tr×nh C&C++
{
int i;
float tg=0;
for (i=0;i<=n1;i++)
{
tg=tg+a[i]*pow(x,i);
}
return(tg);
}
void nhap(int n1)
{
int i;
for (i=0;i<=n1;i++)
{

printf("Nhap he so thu a[%d] cua da thuc: ",i);scanf("%f",&a[i]);
while(getchar()!='\n');
}
}
void datafile(int n) //Ham tao file du lieu quan sat duoc//
{
int i;
pt=fopen("quansat.dat","wb");
for(i=1;i<=n;i++)
{
printf("\nNhap so quan sat duoc thu %d:",i);scanf("%f",&a[i]);
fwrite(&a[i],sizeof(float),1,pt);
}
fclose(pt);
}
void tinh_toan(void)
{
float s=0,d=0,so=0,a[100];
int i=0;
pt=fopen("quansat.dat","rb");
while(fread(&a[i],sizeof(float),1,pt),!feof(pt))
{
so=so+1;
s=s+(a[i++]);
}
printf("\nso lieu cua cac quan sat:");
for(i=0;i<=so;i++)
{
printf("\n%-4.2f",a[i]);
}

for(i=0;i<=so;i++)
{
d=d+pow(a[i]-s/so,2);
}
printf("\nGia tri cua trung s=%4.1f",s/so);
printf("\nDo lech chuan d=%4.1f",sqrt(d/so));
fclose(pt);
}

4



×