25
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ------ BÁO CÁO NGÔN NGỮ LẬP TRÌNH Giảng viên hướng dẫn: Vũ Song Tùng Nhóm sinh viên thực hiện: Nguyễn Văn Sơn Mssv:20122357 Lớp: ĐTTT 03-k57 Nguyễn Thị Lệ Quyên Mssv:20124983 Lớp: ĐTTT 07-k57 Nguyễn Xuân Cương Mssv:20121354 Lớp: ĐTTT 05-k57 0

Bia 20

Embed Size (px)

DESCRIPTION

bia

Citation preview

Page 1: Bia 20

TRƯỜNG ĐẠI HỌC BÁCH KHOAHÀ NỘI------

BÁO CÁO NGÔN NGỮ LẬP TRÌNH

Giảng viên hướng dẫn: Vũ Song Tùng

Nhóm sinh viên thực hiện:

Nguyễn Văn Sơn Mssv:20122357 Lớp: ĐTTT 03-k57

Nguyễn Thị Lệ Quyên Mssv:20124983 Lớp: ĐTTT 07-k57

Nguyễn Xuân Cương Mssv:20121354 Lớp: ĐTTT 05-k57

- Hà Nội, 04/2014 -

0

Page 2: Bia 20

Bai 1.

// Giai Phuong Trinh Bac Hai !!!

#include<iostream>

#include<math.h>

using namespace std;

int main()

{

double a, b, c;

while(1)

{

cout<<"\n\n\nNhap a,b,c: (a=0thoat)\n";

cin>>a>>b>>c;

if(a==0) return 0;

double d,x1,x2;

d=b*b-4*a*c;

if(d<0)

{

cout<<"\nVo nghiem";

continue;

}

d=sqrt(d);

if(d==0)

{

cout<<"\nx1=x2="<<-b/(2*a);

continue;

}

cout<<"\nx1="<<(-b+d)/(2*a)<<" ,x2="<<(-b-d)/(2*a);

}

system("pause");1

Page 3: Bia 20

}

Bai 2:

// Kiem tra tam giac !

#include<iostream>

using namespace std;

main()

{

int a,b,c;

cout<<"Nhap a,b,c:";

cin>>a>>b>>c;

while((a+b)<=c||(a+c)<=b||(b+c)<=a||a<=0||b<=0||c<=0)

{

cout<<"Do dai ba canh khong phai cua 1 tam giac, hay nhap lai!\

n"<<"a,b,c= ";

cin>>a>>b>>c;

}

int canh=(b==c)|((a==c)<<1)|((a==b)<<2);

a*=a; b*=b; c*=c;

int goc=(a==b+c)|((b==a+c)<<1)|((c==a+b)<<2);

cout<<"Tam giac la tam giac ";

switch((goc<<4)|canh) {

case(0): cout<<"thuong"; break;

case(7): cout<<"deu"; break;

default:

if(goc!=0) cout<<"vuong ";

if(canh!=0) cout<<"can ";

cout<<"tai "<<(char)(((canh|goc)>>1)+65);

}

cout<<endl;

system("pause");

2

Page 4: Bia 20

}

Bai 3:

// In mot ma tran voi cac phan tu nhap vao tu ban phim, su dung mang 1

chieu!

#include<iostream>

using namespace std;

int main()

{

int a[30];

int m,n,k;

cout<<"\nNhap kich thuoc ma tran voi m hang, n cot: \n";

cin>>m>>n;

k=m*n;

cout<<"\nNhap cac phan tu cua ma tran:\n";

for(int i=0;i<k;i++)

{

cout<<"Nhap phan tu thu: "<<i+1<<": ";

cin>>a[i];

}

cout<<"\nMa tran ban vua nhap la: \n";

for (int i=0; i<k; i++)

{

if((i+1)%n==0) cout<<a[i]<<endl;

else cout<<a[i]<<'\t';

}

system("pause");

}

Bai 4:

// kiem tra so bit bang 0 trong so a nhap vao tu ban phim!

3

Page 5: Bia 20

#include<iostream>

using namespace std;

int main()

{

int a,s;

while(1)

{

cout<<"\nNhap so (a>0) can kiem tra,(a=0 de thoat) a= ";

cin>>a;

if(a==0) break;

for(s=0; a>0;a>>=1)

if((a&1)==0) s++;

cout<<"So bit bang 0 trong a la : "<<s<<endl;

system("pause");

}

}

Bai 5:

//tim vi tri cuoi cung cua gia tri x trong mang a[] !

#include<iostream>

using namespace std;

int main()

{

int x,j=-1,a[5];

cout<<"\nNhap phan tu can tim x= ";

cin>>x;

cout<<"\nNhap cac phan tu cua mang a[]: ";

for(int i=0;i<5;i++)

{

cin>>a[i];

if(a[i]==x) j=i;

4

Page 6: Bia 20

}

cout<<"Phan tu co gia tri = "<<x<<" cuoi cung trong mang o vi tri:

"<<j<<endl;

system("pause");

}

Bai 6:

// Bai toan in lich cac nam!!!

#include<iostream>

using namespace std;

int main()

{

int nam=2016;

int d=nam-2000;

int j=(d+((d-1)>>2))%7;

cout<<"\n\n\t\t\tNam "<<nam;

for(int thang=1;thang<=12;thang++)

{

int ngay=31;

switch(thang){

case 2: ngay=nam&3?28:29; break;

case 4: case 6: case 9: case 11: ngay= 30;

break;

}

cout<<"\n\n\nThang "<<thang<<endl;

cout<<"CN\tT2\tT3\tT4\tT5\tT6\tT7\n";

for(int t=0;t<j;t++)

cout<<'\t';

for(d=1;d<=ngay;d++)

{

cout<<d;

5

Page 7: Bia 20

if(j==6) {

cout<<'\n'; j=0;

}

else{

cout<<'\t'; j++;

}

}

}

system("pause");

}

Bai 7:

// Bai tap tao 1 mang co gia tri bat ki nam trong khoang!!!

#include<iostream>

using namespace std;

int main() {

int s[100];

int i, d2=0, d8=0;

for(i=0;i<100;i++)

s[i]=rand()%100+1;

for(i=0;i<100;i++)

{

if((s[i]&1)==0) {

d2++;

if((s[i]&7)==0)

d8++;

}

}

cout<<"So luong so chan la "<<d2<<endl;

cout<<"So luong so le la "<<(100-d2)<<'\n';

cout<<"So luong cac so chia het cho 8 la "<<d8<<'\n';

6

Page 8: Bia 20

system("pause");

}

Bai 8:

// Tinh do dai cua 1 xau ki tu nhap vao tu ban phim!

#include<iostream>

using namespace std;

int main()

{

int len=0;

char s[100]="123456";

while(s[len]) len++;

cout<<len;

system("pause");

}

Bai 9:

// Chuan hoa 1 xau ki tu nhap vao tu ban phim !

#include<iostream>

using namespace std;

int main()

{

cout<<"Nhap 0 de thoat.\n";

while (1)

{

char a[100];

char c, last=32;

int i=0, j=0;

fflush(stdin);

cin.getline(a,100);

if (a[0]==0)

break;

7

Page 9: Bia 20

while((c=a[i++])!='\0')

{

if(last==32)

{

if(c==32) continue;

if(c>='a'&&c<='z') c-=32;

}

else

{

if(c>='A'&&c<='Z') c+=32;

}

a[j]=last=c; j++;

}

if((last==32)&&(j>0)) j--;

a[j]='\0';

cout<<a<<endl<<endl;

}

system("pause");

}

Bai 10:

// InsertSort!!

#include<iostream>

using namespace std;

int InsertSort(int A[],int N)

{

for(int i=1;i<N;i++)

{

int e=A[i];

int j=i-1;

8

Page 10: Bia 20

while((j>=0)&&(A[j]>e))

A[j+1]=A[j--];

A[j+1]=e;

}

return 0;

}

int main()

{

int s[]={ 22, 33, 55, 77, 11, 44, 66};

InsertSort(s,7);

for(int i=0; i<7;i++)

cout<<s[i]<<'\t';

cout<<endl;

system("pause");

}

Bai 11:

//sap xep lua chon!!

#include<iostream>

using namespace std;

int selectionsort(int a[],int n)

{

for(int i=0; i<n-1;i++)

{

int m=i, j=0;

for(j=i+1;j<n;j++)

if(a[j]<a[m]) m=j;

if(m!=j) swap(a[j], a[m]);

}

return 0;

9

Page 11: Bia 20

}

int main()

{

int b[]={22, 44, 66, 33, 55, 11, 77};

selectionsort(b, 7);

for(int i=0; i<7; i++)

cout<<b[i]<<endl;

system("pause");

}

Bai 12:

// thuat toan noi bot!!!

#include<iostream>

using namespace std;

int bubblesort(int a[],int n)

{

for(int i=0;i<n-1;i++)

{

int c=0;

for(int j=n-1;j>i;j--)

if(a[j-1]>a[j])

{

swap(a[j-1], a[j]);

c=1;

}

if(c==0) break;

}

return 0;

}

10

Page 12: Bia 20

int main()

{

int b[]={22, 44, 66, 33, 55, 11, 77};

bubblesort(b, 7);

for(int i=0; i<7; i++)

cout<<b[i]<<endl;

system("pause");

}

Bai 13:

// Sap xep nhanh!!

#include<iostream>

using namespace std;

int Swap(int &a, int&b)

{

int t=a;

a=b;

b=t;

return 0;

}

int Part( int a[], int l, int n)

{

int i=l+1;

11

Page 13: Bia 20

int j=n;

while (i<=j)

{

while ((i<=j)&&(a[i]<a[l]))

i++;

while ((i<=j)&&(a[j]>a[l]))

j--;

if (i<j)

Swap(a[i],a[j]);

}

Swap(a[l],a[j]);

return j;

}

int QuickSort(int a[], int l, int n)

{

if(l<n)

{

int j=Part(a,l,n);

QuickSort(a,l,j-1);

QuickSort(a,j+1,n);

}

return 0;

}

int main()

{

int a[] = { 33, 44, 11, 66, 55, 22};

QuickSort(a, 0, 5);

for (int i=0; i<6; i++)

cout<<a[i]<<'\t';

cout<<endl;

12

Page 14: Bia 20

system("pause");

return 0;

}

Bai 14:

// So sanh cac thuat toan!!

#include<iostream>

using namespace std;

int n;

int swap(int &a, int &b) //doi cho 2 phan tu!!!

{

a=a^b;

b=a^b;

a=a^b;

return 0;

}

int comparecount; //dem so lan so sanh trong thuat toan!!!

template <class _T>

int compare( _T a, _T b)

{

comparecount++;

if(a<b) return -1;

return a>b;

}

int *org= '\0';

int *a= '\0';

int N;

void createorg(int n) //nhap mang org voi cac gia tri ngau nhien!!!

{

13

Page 15: Bia 20

N=n;

if(org!='\0')

{delete []org;delete []a;}

org=new int[n];

a=new int [n];

for(int i=0; i<N; i++)

org[i]=rand();

}

void reset() //dua gia tri compare ve 0, gan gia tri cho mang A tu mang

org!!!

{

comparecount=0;

for(int i=0;i<N;i++)

a[i]=org[i];

}

int InsertionSort(int a[],int n) // sap xep chen!!!

{

for( int i=1; i<n; i++)

{

int s=a[i];

int j=i-1;

while(j>=0)

{

if (compare(a[j],s)>0)

a[j+1]= a[j--];

}

a[j+1]=s;

}

return 0;

}

14

Page 16: Bia 20

int Part( int a[], int l, int n)//phan doan!!

{

int i=l+1, j=n, d1=0, d2=0;

while (i<=j)

{

while ((i<=j)&&(compare(a[i],a[l])<0))

i++; d1++;

while ((i<=j)&&(compare(a[j],a[l])>0))

j--; d2++;

if (i<j)

swap(a[i],a[j]);

}

swap(a[l],a[j]);

return j;

}

void QuickSort(int a[], int l, int n) //sap xep nhanh!

{

if(l<n)

{

int j=Part(a,l,n);

QuickSort(a,l,j-1);

QuickSort(a,j+1,n);

}

}

int BubbleSort(int a[],int n) //sap xep noi bot!!!

{

for(int i=0;i<n-1;i++)

{

int c=0;

for(int j=n-1;j>i;j--)

15

Page 17: Bia 20

if(compare(a[j-1],a[j])>0)

{

swap (a[j-1], a[j]);

c=1;

}

if(c=0) break;

}

return 0;

}

int SelectionSort(int a[],int n) //sap xep lua chon!!

{

for(int i=0; i<n-1;i++)

{

int m=i, j=0;

for(j=i+1;j<n;j++)

if(compare(a[j],a[m])<0) m=j;

if(m!=j) swap(a[j], a[m]);

}

return 0;

}

void heaprify(int *A, int i, int n)

{

int l = 2*i +1;

int r = 2*i + 2;

int largest;

if(l < n && (compare(A[l] , A[i])>0))

largest = l;

else

largest = i;

if(r < n && compare(A[r], A[largest])>0)

16

Page 18: Bia 20

largest = r;

if(largest !=i)

{

swap(A[i], A[largest]);

heaprify(A, largest, n);

}

}

void buildheap(int *a, int n) //vun dong !

{

int i;

for(i=n/2; i>=0; i--)

heaprify(a, i, n);

}

void HeapSort(int *A, int n)// sap xep vun dong!

{

int i;

buildheap(A, n);

for(i=n-1;i>0;i--)

{

swap(A[0], A[i]);

heaprify(A, 0, i-1);

}

}

void Dosort(char *method)

{

reset();

switch (method[0])

{

case 'S': SelectionSort(a,n); break;

17

Page 19: Bia 20

case 'I': InsertionSort(a,n); break;

case 'B': BubbleSort(a,n); break;

case 'Q': QuickSort(a,0,n); break;

case 'H': HeapSort(a,n); break;

}

cout<<method<<"sort: \t"<<comparecount<<endl;

}

void sortcompare (int n)

{

cout<<".....compare N= "<<n<<".....\n";

createorg(n);

Dosort ("Selection");

Dosort ("Insertion");

Dosort ("Buble");

Dosort ("Quick");

Dosort ("Heap");

cout<<endl<<endl;

}

int main()

{

int length[]={100, 1000, 10000, 100000};

for(int i=0;i<4;i++)

{

cout<<"\n";

sortcompare (length[i]);

}

delete []org;

delete []a;

system("pause");

}

18

Page 20: Bia 20

19