[KTLT C/C++] Chữa bài Test - Kỹ thuật lập trình 280916
Câu 1: Viết chương trình thực hiện
+ Nhập vào từ bàn phím n,m,x (sao cho: n,m là số nguyên thỏa mãn, 2<=n<=m<=10 ; x là số thực thỏa mãn, 1<=x<=5)
+ Tính:
S1= m!/((m-n)!*n!)
S2= x^1 / 1! + x^2 / 2! + ... + x^n /n!
--------
Code TC3.0
-----------------------------------
Câu 2: Viết các hàm thực hiện
+ Nhập từ bàn phím dãy số nguyên có n phần tử ( 3<=n<=100)
+ In dãy vừa nhập
+ Tìm số chẵn đầu tiên trong dãy
+ Đếm tất cả các số là bội của 3 và 5 trong dãy
+ Sắp xếp dãy tăng dần, in dãy đã sắp xếp
+ Loại bỏ các số trùng nhau trong dãy và in ra màn hình
Code TC3.0
+ Nhập vào từ bàn phím n,m,x (sao cho: n,m là số nguyên thỏa mãn, 2<=n<=m<=10 ; x là số thực thỏa mãn, 1<=x<=5)
+ Tính:
S1= m!/((m-n)!*n!)
S2= x^1 / 1! + x^2 / 2! + ... + x^n /n!
--------
Code TC3.0
// Cau 1.
#include<iostream.h>
#include<conio.h>
#include<math.h>
// khai bao bien toan cuc
int m,n;
float x;
// Nhap m,n,x
void Nhap(){
// nhap n
cout<<"\n Nhap n:\n";
do{
cout<<"\n n= "; cin>>n;
if(n<2||n>10) cout<<"\n Nhap lai n!";
} while (n<2||n>10);
// nhap m
cout<<"\n Nhap m:\n";
do{
cout<<"\n m= "; cin>>m;
if(m<n||m>10) cout<<"\n Nhap lai m!";
} while (m<n||m>10);
// nhap x
cout<<"\n Nhap x:\n";
do{
cout<<"\n x= "; cin>>x;
if(x<1||x>5) cout<<"\n Nhap lai x!";
} while (x<1||x>5);
}
// Tinh giai thua
long GiaiThua(int a){
long gt=1;
for(int i=1;i<=a;i++)
gt=gt*i;
return gt;
}
// Tinh S1
long Tinh_S1(int m, int n){
return GiaiThua(m)/(GiaiThua(n)*GiaiThua(m-n));
}
// Tinh S2
float Tinh_S2(int n, float x){
float s=0;
for(int i=1;i<=n;i++)
s=s+(float)pow(x,i)/GiaiThua(i);
return s;
}
// In Ket qua
void InKQ(){
cout<<"\n S1= "<<Tinh_S1(m,n);
cout<<"\n S2= "<<Tinh_S2(n,x);
}
// Ham main
void main(){
clrscr();
Nhap();
InKQ();
getch();
}
-----------------------------------
Câu 2: Viết các hàm thực hiện
+ Nhập từ bàn phím dãy số nguyên có n phần tử ( 3<=n<=100)
+ In dãy vừa nhập
+ Tìm số chẵn đầu tiên trong dãy
+ Đếm tất cả các số là bội của 3 và 5 trong dãy
+ Sắp xếp dãy tăng dần, in dãy đã sắp xếp
+ Loại bỏ các số trùng nhau trong dãy và in ra màn hình
Code TC3.0
// Cau 2.
#include<iostream.h>
#include<conio.h>
// khai bao bien toan cuc
int n,a[100];
// Nhap day so
void Nhap(){
// nhap n
cout<<"\n Nhap n:\n";
do{
cout<<"\n n= "; cin>>n;
if(n<3||n>100) cout<<"\n Nhap lai n!";
} while (n<3||n>100);
// nhap mang
cout<<"\n Nhap mang:\n";
for(int i=0;i<n;i++)
{
cout<<"\n a["<<i<<"]="; cin>>a[i];
}
}
// In day
void InDay(){
cout<<"\n In day: \n";
for(int i=0;i<n;i++)
cout<<a[i]<<", ";
}
// Tim so chan dau tien trong day
void TimSoChan(){
for(int i=0;i<n;i++)
if(a[i]%2==0) break;
if(i<n) cout<<"\n So chan dau tien la: "<<a[i];
else
cout<<"\n Day khong ton tai so chan.";
}
// Dem boi cua 3,5
void DemBoi(){
int dem=0;
for(int i=0;i<n;i++)
if(a[i]%3==0 &&a[i]%5==0)
dem++;
cout<<"\n So cac so la boi cua 3 va 5: "<<dem;
}
// Sap xep day tang dan
void SapXep(){
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j])
{
int t=a[i]; a[i]=a[j];a[j]=t;
} // in day
InDay();
}
// Loai bo phan tu trung nhau
void LoaiPhanTuTrung(){
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(a[i]==a[j])
{
for(int g=j;g<n-1;g++)
a[g]=a[g+1];
n--;
}
// In day
InDay();
}
// Ham main
void main(){
clrscr();
Nhap();
InDay();
TimSoChan();
DemBoi();
SapXep();
LoaiPhanTuTrung();
getch();
}
Một số tài liệu và khoá học bổ ích dành cho bạn:
# Giáo Trình: Kỹ Thuật Lập Trình C/C++ Căn Bản Và Nâng Cao [Click để xem]
# Khoá học online: Học lập trình C/C++ TỪ A - Z [Click để xem]