Ví dụ sử dụng thuật toán tìm kiếm tuần tự: Viết các hàm thực hiện
1. Nhập dãy số nguyên có n số (1<n<100).
2. In dãy vừa nhập
3. Tìm giá trị x trong dãy số (x nhập từ bàn phím)
4. Đếm số lần xuất hiện của y (y nhập từ bàn phím)
5. Tính giá trị phần trăm các số >=5.
6. In ra vị trí xuất hiện các số nguyên tố có trong dãy.
[Code Turbo C++]
/*
http://lap-trinh-may-tinh.blogspot.com/
*/
#include<iostream.h>#include<conio.h>
#include<stdio.h>
// khai bao
int a[100],n;
// Nhap mang
void Nhap(){
cout<<"\n + NHAP MANG : ";
cout<<"\n - Nhap so phan tu: ";
do{
cout<<"\n n= "; cin>>n;
if(n<1||n>100)
cout<<"\n Nhap lai n!";
} while (n<1||n>100);
// Nhap mang
cout<<"\n - Nhap mang : ";
for (int i=0;i<n;i++)
{
cout<<"\n a["<<i<<"]= ";
cin>>a[i];
}
}
// In day
void InDay(int a[],int n){
cout<<"\n + IN DAY \n";
for(int i=0;i<n;i++)
cout<<a[i]<<"; ";
}
// Tim x trong day
void Tim_x(int x, int a[], int n){
cout<<"\n + TIM KIEM "<< x <<" TRONG DAY:";
int t=0;
for(int i=0;i<n;i++)
if(x==a[i])
t=1;
if(t==1)
cout<<"\n Tim thay "<<x<<" trong day ";
else
cout<<"\n Khong tim thay "<<x<<" trong day ";
}
// Dem so lan xuat hien cua y trong day
int Dem_y(int y, int a[], int n){
int dem=0;
for(int i=0;i<n;i++)
if(y==a[i]) dem++;
return dem;
}
// Tinh ty le % cac so lon hon 5
void PhanTram(int a[],int n){
float pt;
int count=0;
for(int i=0;i<n;i++)
if(a[i]>=5) count++;
pt=((float)count/n)*100;
cout<<"\n + TY LE % CAC SO >= 5 :"<<pt<<"%";
}
// Dem so lan xuat hien cua so nguyen to trong day
void DemSNT(int a[],int n){
cout<<"\n + IN RA VI TRI SO NGUYEN TO: ";
for(int i=0;i<n;i++)
{
int test=0;
for(int t=2;t<a[i];t++)
if(a[i]%t==0) test=1;
if (test==0) cout<<i<<" ; ";
}
}
//////////////////////
void main(){
// Nhap day
Nhap();
int a[100],n;
// Nhap mang
void Nhap(){
cout<<"\n + NHAP MANG : ";
cout<<"\n - Nhap so phan tu: ";
do{
cout<<"\n n= "; cin>>n;
if(n<1||n>100)
cout<<"\n Nhap lai n!";
} while (n<1||n>100);
// Nhap mang
cout<<"\n - Nhap mang : ";
for (int i=0;i<n;i++)
{
cout<<"\n a["<<i<<"]= ";
cin>>a[i];
}
}
// In day
void InDay(int a[],int n){
cout<<"\n + IN DAY \n";
for(int i=0;i<n;i++)
cout<<a[i]<<"; ";
}
// Tim x trong day
void Tim_x(int x, int a[], int n){
cout<<"\n + TIM KIEM "<< x <<" TRONG DAY:";
int t=0;
for(int i=0;i<n;i++)
if(x==a[i])
t=1;
if(t==1)
cout<<"\n Tim thay "<<x<<" trong day ";
else
cout<<"\n Khong tim thay "<<x<<" trong day ";
}
// Dem so lan xuat hien cua y trong day
int Dem_y(int y, int a[], int n){
int dem=0;
for(int i=0;i<n;i++)
if(y==a[i]) dem++;
return dem;
}
// Tinh ty le % cac so lon hon 5
void PhanTram(int a[],int n){
float pt;
int count=0;
for(int i=0;i<n;i++)
if(a[i]>=5) count++;
pt=((float)count/n)*100;
cout<<"\n + TY LE % CAC SO >= 5 :"<<pt<<"%";
}
// Dem so lan xuat hien cua so nguyen to trong day
void DemSNT(int a[],int n){
cout<<"\n + IN RA VI TRI SO NGUYEN TO: ";
for(int i=0;i<n;i++)
{
int test=0;
for(int t=2;t<a[i];t++)
if(a[i]%t==0) test=1;
if (test==0) cout<<i<<" ; ";
}
}
//////////////////////
void main(){
// Nhap day
Nhap();
// In day
InDay(a,n);
// tim x
int x;
cout<<"\n Nhap gia tri can tim x= ";
cin>>x;
Tim_x(x,a,n);
InDay(a,n);
// tim x
int x;
cout<<"\n Nhap gia tri can tim x= ";
cin>>x;
Tim_x(x,a,n);
// Dem y trong day
int y;
cout<<"\n Nhap gia tri can dem y= ";
cin>>y;
cout<<"\n + SO LAN XUAT HIEN SO "<<y<<" LA: "<<Dem_y(y,a,n);
int y;
cout<<"\n Nhap gia tri can dem y= ";
cin>>y;
cout<<"\n + SO LAN XUAT HIEN SO "<<y<<" LA: "<<Dem_y(y,a,n);
// Tinh ty le phan tram cac so >=5
PhanTram(a,n);
// Dem so nguyen to trong day
DemSNT(a,n);
getch();
}
PhanTram(a,n);
// Dem so nguyen to trong day
DemSNT(a,n);
getch();
}
[Tải code chương trình về máy tại đây]
--------------------------------------------
Xem thêm các thuật toán khác:
1. Thuật toán tìm kiếm tuần tự
2. Thuật toán tìm kiếm nhị phân
3. Thuật toán sắp xếp đổi trực tiếp - Select sort
4. Thuật toán sắp xếp nổi bọt - Bubble sort
5. Thuật toán sắp xếp chèn trực tiếp - Insert sort
6. Thuật toán sắp xếp nhanh - Quick sort
7. Thuật toán sắp xếp hòa trộn - Merge sort
8. Thuật toán sắp xếp vun đống - Heap sort
9. Thuật toán sắp xếp shell - shell sort
0 nhận xét:
Đăng nhận xét