Tổng hợp các bài tập C-C++ cơ bản - Kiều Tuấn Dũng

doc 106 trang phuongnguyen 7611
Bạn đang xem 20 trang mẫu của tài liệu "Tổng hợp các bài tập C-C++ cơ bản - Kiều Tuấn Dũng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • doctong_hop_cac_bai_tap_c_c_co_ban_kieu_tuan_dung.doc

Nội dung text: Tổng hợp các bài tập C-C++ cơ bản - Kiều Tuấn Dũng

  1. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 TỔNG HỢP CÁC BÀI TẬP C-C++ CƠ BẢN Các hàm nhập xuất trong các ví dụ dưới sử dụng hai hàm nhập xuất printf() và scanf() trong C chuẩn. Trong C++, các bạn có thể hiểu nó thay thế cho hai hàm cout và cin. PHẦN 1 1. MÃ HÓA THÔNG ĐIỆP 2. GIẢI PHƯƠNG TRÌNH BẬC NHẤT 3. TÍNH CĂN BẬC HAI THEO PHƯƠNG PHÁP LẶP NEWTON 4. CẤU TRÚC VÀ CÁC HÀM THAO TÁC TRÊN SỐ PHỨC 5. DÃY TĂNG DẦN 6. DÃY TĂNG CÓ TỔNG DÀI NHẤT 7. QUẢN LÝ SINH VIÊN 8. GIẢI PHƯƠNG TRÌNH BẬC HAI 9. MA PHƯƠNG 10.FILE VÀ HỆ THỐNG PHẦN 2 1. Sắp xếp mảng 2. Một ví dụ về Đa hình 3. Tiếp một ví dụ về Đa hình 4. Tổng hai ma trận 5. Một ví dụ về sử dụng template và quá tải toán tử Nhập xuất 6. Ví dụ về quá tải toán tử 7. Đếm số lần xuất hiện của các ký tự trong chuỗi 8. Bài toán Ancarokhi 9. Chứng minh đẳng thức An Casi 10.Hiện bảng mã ASCII 11.In ra năm âm lịch tương ứng với năm nhập vào. 12.In ra bảng cửu chương 13.Nhập chuỗi và in chuỗi 14.Giải hệ phương trình bậc nhất. 15.Tính thứ của ngày
  2. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 PHẦN 3 1. Chuyển số La Mã sang số Ả rập 2. Chuyển năm sang số La Mã 3. Thuật toán sắp xếp bẳng Radix sort 4. Danh sách liên kết đơn (Thuật toán vừa chèn vừa sắp xếp) 5. Quá tải toàn tử nhập xuất và sử dụng template 6. Chương trình đếm số ký tự trong một chuỗi ASCII 7. Biểu diễn số dưới dạng bit 8. Đảo chuỗi 9. Chương trình xem tập tin 10.Giải bài toán trâu ăn cỏ 11.Loại bỏ khoảng trống thừa trong chuỗi 12.Tìm tất cả các ước của một số N 13.Bội số chung và ước số chung 14.Trộn 2 dãy giảm thành một dãy tăng 15.Tính tích 2 ma trận: 16.In danh sách các số hoàn hảo nhỏ hơn số N nhập từ user PHẦN 4 1. Bài in ra lịch của một năm bất kỳ lớn hơn 1700 2. Bài tập kiểm tra dấu ngoặc đúng. 3. Bài toán Tám Hoàng Hậu 4. In ra số Hex tương ứng với một số nguyên dương 5. Liệt kê các hoán vị của N phần tử 6. In chuỗi theo các từ mỗi từ một dòng 7. In ra chữ số hàng trăm hàng chục hàng đơn vị 8. Tìm phần tử lớn nhất nhỏ nhất trong mảng một chiều 9. Tính tổ hợp chập K của N phần tử 10.Chương trình đọc số có 1,2 hoặc 3 chữ số. 11.Tính số ngày trong một tháng trong một năm bất kỳ 12.Bài kiểm tra số nguyên tố 13.Tìm max min của 4 số 14.Tìm n số Fibonaci đầu tiên Trang 5
  3. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 1. Tìm số tiền nhận trong n tháng khi biết lãi xuất 2. In ra dãy số ngược so với dãy số nhập vào 3. Trò chơi 8 hòn bi 4. Kiểm tra số đối xứng 5. Điền giá trị cho một mảng vuông theo chiều kim đồng hồ 6. In hình tam giác 7. Trộn hai mảng tăng dần thành một mảng tăng dần 8. Tìm vị trí đầu và vị trí cuối của một số trong một dãy số 9. Tính x^1/1! + x^2/2! + x^3/3! + + x^n/n! 10.Trình bày các bước chuyển n đĩa từ cọc A sang cọc C trong bài toán Tháp Hà Nội dùng 3 đĩa 11.Trình bày các bước chuyển n đĩa từ cọc A sang cọc C trong bài toán Tháp Hà Nội dùng 4 đĩa CODE MÃ HÓA THÔNG ĐIỆP #include #include #include char *crypt(char *tdiep, int column) { char tam[255], *result; int i = 0, k = 0, n, j=0; while(tdiep[i] != 0) { if (isalnum(tdiep[i])) tam[k++] = tdiep[i]; i++; } tam[k] = 0; result = (char *)malloc(k+1); for (i=0; i<column; i++) { n = 0; while(n+i < k) { result[j++] = tolower(tam[n+i]); n += column; } }
  4. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 result[k] = 0; return result; } void main() { char thongdiep[255], *mahoa; int col; printf("\nNhap thong diep can ma hoa : "); gets(thongdiep); printf("\nCho biet so cot : "); scanf("%d", &col); mahoa = crypt(thongdiep, col); printf("\nThong diep da duoc ma hoa thanh : %s", mahoa); getch(); } GIẢI PHƯƠNG TRÌNH BẬC NHẤT #include void main() { float a, b; printf("\nGiai phuong trinh bac nhat AX + B = 0"); printf("\nCho biet ba he so A B : "); scanf("%f%f", &a, &b); if (a==0) if (b!=0) printf("Phuong trinh vo nghiem"); else printf("Phuong trinh co nghiem khong xac dinh"); else printf("Dap so cua phuong trinh tren = %f", -b/a); getch(); } TÍNH CĂN BẬC 2 THEO PHƯƠNG PHÁP LẶP NEWTON
  5. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 #include #include void main() { double a, xn, ketqua; printf("\nNhap vao so muon tinh can bac hai : "); scanf("%lf", &a); xn = (a+1)/2; do { ketqua = xn; xn = 0.5 * (xn + a/xn); } while (fabs(xn-ketqua) > 0.0001); printf("\nKet qua = %lf", xn); getch(); } CẤU TRÚC VÀ CÁC HÀM TRÊN SỐ PHỨC #include typedef struct tagcomplex { float thuc, ao; } complex; complex tong(complex a, complex { complex c; c.thuc = a.thuc + b.thuc; c.ao = a.ao + b.ao; return c; } complex hieu(complex a, complex { complex c; c.thuc = a.thuc - b.thuc; c.ao = a.ao - b.ao; return c; } complex tich(complex a, complex {
  6. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 complex c; c.thuc = a.thuc*b.thuc - a.ao*b.ao; c.ao = a.thuc*b.ao + a.ao*b.thuc; return c; } complex thuong(complex a, complex { complex c; float tongbp; tongbp = b.thuc*b.thuc + b.ao*b.ao; c.thuc = (a.thuc*a.ao + b.thuc*b.ao)/tongbp; c.ao = (a.ao*b.thuc - a.thuc*b.ao)/tongbp; return c; } float argument(complex a) { return acos(a.thuc/sqrt(a.thuc*a.thuc + a.ao*a.ao)); } float modul(complex a) { return sqrt(a.thuc*a.thuc + a.ao*a.ao); } void print_complex(complex a) { printf("%.2f + %.2fi", a.thuc, a.ao); } void main() { complex a, b, c; printf("\nNhap he so thuc va phuc cua A : "); scanf("%f%f", &a.thuc, &a.ao); printf("\nNhap he so thuc va phuc cua B : "); scanf("%f%f", &b.thuc, &b.ao); printf("\nSo phuc A = "); print_complex(a); printf("\nSo phuc B = "); print_complex( ; printf("\nTong cua chung = "); c = tong(a, ; print_complex©; printf("\nHieu cua chung = "); c = hieu(a, ;
  7. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 print_complex©; printf("\nTich cua chung = "); c = tich(a, ; print_complex©; printf("\nThuong cua chung = "); c = thuong(a, ; print_complex©; printf("\nArgument cua a = %f", argument(a)); printf("\nModul cua a = %f", modul(a)); getch(); } DÃY TĂNG DẦN #include void main() { int a[10], i, maxstart, maxend, maxlen, tmpstart, tmpend, tmplen; printf("\nNhap vao 10 phan tu nguyen cua day :"); for (i=0; i<10; i++) scanf("%d", &a[i]); printf("Day da cho :\n"); for (i=0; i<10; i++) printf("%6d", a[i]); maxstart = maxend = tmpstart = tmpend = 0; maxlen = tmplen = 1; for (i=1; i< 10; i++) { if (a[i] < a[tmpend]) { if (maxlen < tmplen) { maxstart = tmpstart; maxend = tmpend; maxlen = tmplen; } tmpstart = tmpend = i; tmplen = 1; } else
  8. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 { tmplen++; tmpend++; } } if (maxlen void main() { int a[10], i, maxstart, maxend, maxtotal, tmpstart, tmpend, tmptotal; printf("\nNhap vao 10 phan tu nguyen cua day :"); for (i=0; i<10; i++) scanf("%d", &a[i]); printf("Day da cho :\n"); for (i=0; i<10; i++) printf("%6d", a[i]); maxstart = maxend = tmpstart = tmpend = 0; maxtotal = tmptotal = a[0]; for (i=1; i< 10; i++) { if (a[i] < a[tmpend]) { if (maxtotal < tmptotal) { maxstart = tmpstart; maxend = tmpend; maxtotal = tmptotal; }
  9. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 tmpstart = tmpend = i; tmptotal = a[i]; } else { tmptotal += a[i]; tmpend++; } } if (maxtotal #include #include #include #define MAX 100 #define TOAN 0 #define LY 1 #define HOA 2 struct sinhvien { char mslop[5]; char hoten[35]; float diem[3]; } danhsach[MAX]; int n = 0; void nhapmoi() { char mslop[5], tmp[3]; int i; float diem[3];
  10. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 do { printf("\nCho biet ma so lop : "); gets(mslop); if (strlen(mslop)) { strcpy(danhsach[n].mslop, mslop); printf("\nCho biet ho ten : "); gets(danhsach[n].hoten); printf("\nCho biet diem so : "); for (i=0; i<3; i++) { scanf("%f", &diem[i]); danhsach[n].diem[i] = diem[i]; } gets(tmp); n++; } } while (strlen(mslop)); } void timkiem() { char mslop[5]; int i = 0, found = 0; printf("\nCho biet ma so lop : "); gets(mslop); if (strlen(mslop)) while (i<n) if (stricmp(danhsach[i].mslop, mslop) == 0) { printf("\nMa so lop : %s", danhsach[i].mslop); printf("\nHo va ten : %s", danhsach[i].hoten); printf("\nDiem Toan : %f", danhsach[i].diem[TOAN]); printf("\nDiem Ly : %f", danhsach[i].diem[LY]); printf("\nDiem Hoa : %f", danhsach[i].diem[HOA]); found = 1; break; } else i++; if (!found) printf("\nKhong tim thay!!!"); } void xoa() { char mslop[5], traloi;
  11. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 int i = 0, j; printf("\nCho biet ma so lop : "); gets(mslop); if (strlen(mslop)) while (i<n) if (stricmp(danhsach[i].mslop, mslop) == 0) { printf("\nMa so lop : %s", danhsach[i].mslop); printf("\nHo va ten : %s", danhsach[i].hoten); printf("\nDiem Toan : %f", danhsach[i].diem[TOAN]); printf("\nDiem Ly : %f", danhsach[i].diem[LY]); printf("\nDiem Hoa : %f", danhsach[i].diem[HOA]); printf("\nCo muon xoa khong (C/K)? "); do { traloi = toupper(getch()); } while (traloi != 'C' && traloi != 'K'); putc(traloi, stdout); if (traloi == 'C') { n ; memcpy(&danhsach[i], &danhsach[i+1], sizeof(struct sinhvien) * (n-i)); break; } } else i++; } void menu() { printf("\n "); printf("\n* 1. Them *"); printf("\n* 2. Xoa *"); printf("\n* 3. Tim kiem *"); printf("\n* 0. Thoat *"); printf("\n "); printf("\nChon lua ? "); } void main() { char traloi; do { menu(); do { traloi = getch();
  12. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } while (traloi '3'); putc(traloi, stdout); switch (traloi) { case '1' : nhapmoi(); break; case '2' : xoa(); break; case '3' : timkiem(); break; } } while (traloi != '0'); } GIẢI PHƯƠNG TRÌNH BẬC 2 #include #include void main() { float a, b, c, delta; printf("\nGiai phuong trinh bac hai AXý + BX + C = 0"); printf("\nCho biet ba he so A B C : "); scanf("%f%f%f", &a, &b, &c); delta = b * b - 4 * a * c; if (delta<0) printf("Phuong trinh vo nghiem"); else if (delta == 0) printf("Phuong trinh co nghiem kep x1 = x2 = %f", -b/(2*a)); else { printf("Phuong trinh co hai nghiem phan biet\nx1 = %f", (-b + sqrt(delta))/(2*a)); printf("\nx2 = %f", (-b - sqrt(delta))/(2*a)); } getch(); }
  13. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 MA PHƯƠNG #include #include // func declaration void matrix( int n ); // main() int main(void) { int n; // input until it's valid. do { printf("\n Plz input size of matrix [ odd size & n 20 ) { n = 19 ; // in case of n is greater than 20 printf("\n %d is greater than 20 & set to be default as 19 .",n ); } // end if // call matrix() matrix(n); // stop to watch getch(); return 0; } // function matrix(int n) void matrix( int n ) { int a[20][20]; int i, j, row, col, count = 1; int old_row, old_col, sum = 0; // set starting value of array for ( i = 0 ; i < n ; i++ ) for ( j = 0 ; j < n ; j++ ) a[i][j] = 0;
  14. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 // set the 1st value to start row = 0; col = (n-1) / 2; while ( count int main() { remove("d:/urls1.dat");
  15. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 return 0; } XÓA 1 FILE DÙNG UNLINK #include int main() { remove("C:/pete.txt"); return 0; } CHO BIẾT THÔNG TIN FAT #include #include void main(void) { struct fatinfo fat; getfatd(&fat); printf("Sectors per cluster %d\n", fat.fi_sclus); printf("Clusters per disk %u\n", fat.fi_nclus); printf("Bytes per cluster %d\n", fat.fi_bysec); printf("Disk type %x\n", fat.fi_fatid & 0xFF); } ĐẾM TẦN SUẤT 1 KÍ TỰ TRONG FILE # include # include main() {
  16. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 FILE *fp; char in[100]; long int freq[257]; int i; printf("\nFile frequency table generator\n\n"); printf("\nInput file:"); scanf("%s",in); fp=fopen(in,"rb"); if(fp==NULL) { printf("\nCould not open input file.Aborting\n"); return 1; } for(i=0;i<257;i++) freq[i]=0; while(i=fgetc(fp),i!=EOF) { freq[i]++; } fcloseall(); fp=fopen("count.txt","w"); fprintf(fp,"\nCharacter frequency table of %s\n",in); fprintf(fp,"\nCharacter ASCII frequency\n\n"); for(i=0;i<256;i++) { if(i==26) { fprintf(fp,"\t 26\t %ld\n",freq[26]); } else if(i==9) { fprintf(fp,"\t 9\t %ld",freq[9]); } else if(i<10) { fprintf(fp,"%c\t %d\t %ld\n",i,i,freq[i]); } else if(i<100) { fprintf(fp,"%c\t %d\t %ld\n",i,i,freq[i]); } else { fprintf(fp,"%c\t %d\t %ld\n",i,i,freq[i]); }
  17. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } fcloseall(); printf("\nFrequency table copied to count.txt\n"); } ĐỌC NỘI DUNG 1 FILE #include void main(void) { FILE *fp; char ch; fp = fopen("websites.txt","r"); ch = getc(fp); while(ch!=EOF) { putchar(ch); ch = getc(fp); } printf("\n\n"); } CHỌN Ổ ĐĨA TRONG DOS #include #include void main(void) { int drives; drives = setdisk(3); printf("The number of available drives is %d\n", drives); }
  18. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 CHỌN Ổ ĐĨA TRONG WINS #include #include #include void main(void) { char szBuffer[MAX_PATH+100]; UINT nDrive, AvailDrive = 0; int dwLogicalDrives = GetLogicalDrives(); DWORD Success; printf("Number of logical drives: %d\n", dwLogicalDrives); for (nDrive = 0; nDrive #include #include #include int main() { int fp;
  19. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 long file_size; if ((fp = open("f:/cprojects/urls.txt", O_RDONLY)) == -1) printf("Error opening the file \n"); else { file_size = filelength(file_handle); printf("The file size in bytes is %ld\n", file_size); close(fp); } return 0; } SẮP XẾP MẢNG #include #include #include //=== void taolap(int *A,int n) { int i; printf("\n Tao lap day so:\n"); for(i=0;i A[j]) { temp=A[i]; A[i]=A[j]; A[j]=temp; }
  20. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } } printf("\n Ket qua thu duoc la:"); dayso(A,n); } void luachon() { clrscr(); int *A,n; printf("\n \t SAP XEP KIEU LUA CHON\n"); printf("\n Nhap so phan tu n="); scanf("%d",&n); A=(int*)malloc(n*sizeof(int)); taolap(A,n); select(A,n); free(A); getch(); } //=== void in2(int *A,int n) { int i; for(i=0;i =0&&temp<A[j];j ) A[j+1]=A[j]; A[j+1]=temp; printf("\n\nKet qua lan thu %d:",i); in2(A,i+1); } free(A); getch(); } //=== void tlap(int *A,int n) {
  21. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 int i; printf("\n"); printf("\n Tao lap day so:\n"); for(i=0;i =i;j ) { if(A[j-1]>A[j]) { temp=A[j-1]; A[j-1]=A[j]; A[j]=temp; } } printf("\n\n Ket qua lan %d:",i); in1(A,n); } } void suibot() { clrscr(); int *A,n; printf("\n SAP XEP KIEU SUI BOT\n"); printf("\n Nhap so phan tu n="); scanf("%d",&n); A=(int*)malloc(n*sizeof(int)); tlap(A,n); bubble(A,n) ; free(A); getch(); } //=== void qs(int *A,int left,int right) { int i,j,x,y; i=left; j=right; x=A[(left+right)/2]; do
  22. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 { while(A[i] x&&j>left)j ; if(i<=j) { y=A[i]; A[i]=A[j]; A[j]=y; i++; j ; } }while(i<=j); if(left<j)qs(A,left,j); if(i<right)qs(A,i,right); } void quick(int *A,int n) { qs(A,0,n-1); } void in3(int *A,int n) { int i; for(i=0;i<n;i++) printf("%5d ",A[i]); } void nhanh() { clrscr(); int *A,n; printf("\n SAP XAP NHANH\n"); printf("\n So phan tu n="); scanf("%d",&n); A=(int*)malloc(n*sizeof(int)); printf("\n\n Tao lap day so:\n"); for(int i=0;i<n;i++) { printf("\n A[%d]=",i); scanf("%d",&A[i]); } quick(A,n); printf("\n\n"); printf("Ket qua thu duoc la:\n\n"); in3(A,n); getch(); free(A); } //=== void in4(int *A,int n) { for(int i=0;i<n;i++) printf("%5d",A[i]); } void merge(int *A,int n) { int i,k,j,low1,up1,low2,up2,size;
  23. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 int *ds; size=1; ds=(int*)malloc(n*sizeof(int)); while(size<n) { low1=0; k=0 ; while(low1+size<n) { low2=low1+size; up1=low2-1; if(low2+size-1<n) up2=low2+size-1; else up2=n-1; for(i=low1,j=low2;i<=up1 && j<=up2;k++) { if(A[i]<=A[j]) ds[k]=A[i++]; else ds[k]=A[j++]; } for(;i<up1;k++) ds[k]=A[i++]; for(;j<up2;k++) ds[k]=A[j++]; low1=up2+1; } for(i=low1;k<n;i++) ds[k++]=A[i]; for(i=0;i<n;i++) A[i]=ds[i]; size*=2; } printf("\n \n Ket qua thu duoc la:\n\n"); in4(A,n); free(ds); } void hoanhap() { clrscr(); int *A,n,i; printf("\n \t SAP XEP KIEU HOA NHAP\n"); printf("\n So phan tu n="); scanf("%d",&n); A=(int*)malloc(n*sizeof(int)); printf("\n Tao lap day so:\n"); for(i=0;i<n;i++) { printf("\nA[%2d]=",i); scanf("%d",&A[i]); } merge(A,n); printf("\n"); getch(); free(A);
  24. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } //=== void in5(int *A,int n) { for(int i=0;i 0;i ) { if(A[i-1]>A[i]) { temp=A[i-1]; A[i-1]=A[i]; A[i]=temp; tdoi=1; } } for(j=1;j A[j]) { temp=A[j-1]; A[j-1]=A[j]; A[j]=temp; tdoi=1; } } }while(tdoi); printf("\n\n Ket qua la :",tdoi); in5(A,n); } void shaker() { clrscr(); int *A,n,i; printf("\n \tSHAKER_SORT\n"); printf("\n So phan tu n="); scanf("%d",&n); A=(int*)malloc(n*sizeof(int)); printf("\n \n Tao lap day so:\n"); for(i=0;i<n;i++) { printf("\n A[%2d]=",i); scanf("%d",&A[i]); } shaker(A,n); getch(); free(A);
  25. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } //=== void main() { while(1) { clrscr(); int key; printf("\n\tSAP XEP VA TIM KIEM\n"); printf("\n 1.Selection_sort\n");; printf("\n 2.Bubble_sort\n"); printf("\n 3.Insertion_sort\n"); printf("\n 4.Quick_sort\n"); printf("\n 5.Merge_sort\n"); printf("\n 6.Shaker_sort\n"); printf("\n 0.Tro ve"); printf("\nBam mot phim de chon chuc nang:"); scanf("%d",&key); if(key==0) break; switch(key) { case 1: clrscr(); luachon(); printf("\n\n\tAn phim bat ky de tro lai menu chinh"); getch(); clrscr(); break; case 2: clrscr(); suibot(); printf("\n\n\tAn phim bat ky de tro lai menu chinh"); getch(); clrscr(); break; case 3: clrscr(); tructiep(); printf("\n"); printf("\nAn phim bat ky de tro lai menu chinh"); getch(); clrscr(); break; case 4: clrscr(); nhanh(); printf("\n"); printf("\nAn phim bat ky de tro lai menu chinh"); getch(); clrscr(); break; case 5: clrscr(); hoanhap();
  26. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 printf("\n"); printf("\nAn phim bat ky de tro lai menu chinh"); getch(); clrscr(); break; case 6: clrscr(); shaker(); printf("\n"); printf("\nAn phim bat ky de tro lai menu chinh"); getch(); clrscr(); break; } } // getch(); } ĐA HÌNH TRONG C++ #include #include #include class hinhve { public: virtual float dientich() = 0; virtual char *ten() = 0; virtual void in()=0; }; class haichieu : public hinhve { public: virtual float chuvi() = 0; void in() { cout<<"ten cua hinh: "<<ten() <<" ,dien tich la: "<<dientich() <<" ,chu vi la: "<<chuvi()<<endl; } }; class bachieu : public hinhve { public:
  27. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 virtual float thetich() = 0; void in() { cout<<"ten cua hinh: "<<ten() <<" ,dien tich la: "<<dientich() <<" ,the tich la: "<<thetich()<<endl; } }; class hinhtron : public haichieu { private: float r; public: hinhtron() { r = 0;} hinhtron(float bk) {r = bk;} float chuvi() { return 2*3.14*r; } float dientich() { return 3.14*r*r; } char *ten() { return "Hinh Tron"; } }; class hinhvuong : public haichieu { private: float a; public: hinhvuong(float x) { a = x; } float chuvi() { return a*4; } float dientich() { return a*a;
  28. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } char *ten() { return "Hinh Vuong"; } }; class tgdeu : public haichieu { private: float a; public: tgdeu(float x) : a(x){} float chuvi() { return 3*a; } float dientich() { return a*a*sqrt(3)/2; } char *ten() { return "Hinh tam giac deu"; } }; class cau: public bachieu { private: float r; public: cau(float bk): r(bk){} float thetich() { return r*r*r*3.14;} float dientich() { return 4*3.14*r*r; } char *ten() { return "Hinh Cau"; } }; class lapphuong : public bachieu { private: float a; public: lapphuong(float x) : a(x) {} float thetich() { return a*a*a; } float dientich() { return 6*a*a; } char * ten() { return "Hinh Lap Phuong"; }
  29. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 }; void main() { hinhve *p; p = new hinhtron(3); p->in(); delete p; p = new lapphuong(3); p -> in(); delete p; p = new cau(3); p -> in(); delete p; p = new tgdeu(5); p -> in(); delete p; p = new hinhvuong(6); p -> in(); getch(); } #include #include #include class Point { private: int x; int y; public: Point() { x = 0; y = 0; } Point(int a,int b) { x = a; y = b; } virtual void set(int a,int b) { x = a; y = b; } float gettung() { return y; }
  30. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 float gethoanh() { return x; } float kc(Point t) { return ((x - t.x)*(x - t.x) + (y - t.y)*(y - t.y)); } virtual void in() { cout in(); delete p; p = new Point(5,2); p->in(); getch(); }
  31. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 TÍNH TỔNG HAI MA TRẬN #include #include #include void congmt(float a[][10],float b[][10],float c[][10],int hang,int cot); void nhapmt(float a[][10],int hang,int cot); void inmt(float a[][10],int hang,int cot); void main() { system("color 3e"); float a[10][10],b[10][10],c[10][10]; int hang1,cot1; cout >hang1; cout >cot1; nhapmt(a,hang1,cot1); inmt(a,hang1,cot1); int hang2,cot2; cout >hang2; }while(hang2 != hang1); do { cout >cot2; }while(cot2 != cot1); nhapmt(b,hang2,cot2); inmt(b,hang2,cot2); cout<<"\nVay tong cua hai ma tran a,b la: \n"; congmt(a,b,c,hang1,cot1); inmt(c,hang1,cot1); getch(); } void congmt(float a[][10],float b[][10],float c[][10],int hang,int cot) { for (int i=0; i<hang; i++) for (int j=0; j<cot; j++)
  32. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 c[i][j] = a[i][j] + b[i][j]; } void nhapmt(float a[][10],int hang,int cot) { for(int i = 0;i >a[i][j]; } } } void inmt(float a[][10],int hang,int cot) { for(int i = 0; i #include #include class sv { private : char ten[100]; float Diem; public: sv() { Diem=0; } sv(char a[],float D) { strcpy(ten,a); Diem=D; }
  33. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 sv(sv&a) { Diem = a.Diem; strcpy(ten,a.ten); } void set_sv(char a[],float D) { strcpy(ten,a); Diem=D; } float get_diem()const { return Diem; } char* get_ten() { return ten; } friend ostream&operator >(istream&in,sv&); operator float() { return float(Diem); } }; ostream&operator >(istream&in,sv&a) { cout >a.Diem; } int ucln(int a,int b) { int r; while(b) { r = a%b; a = b; b=r;
  34. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } return a; } class phanso { private: float tu,mau; public: phanso(float a=1,float b=1) { if(b) { tu = a; mau = b; } else { tu =1; mau=1; } } void set_phanso(float a,float b) { tu =a; mau = b; } void nhap() { cout >tu; cout >mau; toigian(); } void toigian() { int t=ucln(tu,mau); tu = tu/t; mau = mau/t; } operator float() { return float(tu/mau); } friend ostream&operator >(istream&in,phanso&a);
  35. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 }; ostream&operator "; } istream&operator >>(istream&in,phanso&a) { cout >a.tu; cout >a.mau; } template class set { private: T data[n]; int spt; public: set() { spt=0; } set(const set&a) { for(int i=0;i &a); friend set operator +(set&a,set&b); friend set operator *(set&a,set&b); friend set operator -(set&a,set&b); set operator =(const set&b) { for(int i=0;i void set ::them(T&a) { if(spt<n) data[spt++]=a;
  36. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 else cout bool set ::search(T&a) { for(int i=0;i ostream&operator &a) { if(a.spt==0) out "; } } template set operator +(set &a,set &b) { set r(a); for(int i=0;i set operator -(set &a,set &b) { set r; for(int i=0;i set operator *(set &a,set &b) { set r;
  37. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 for(int i=0;i a; set c; set d; set e; set f; set g; set b; int n,m,l; float r; sv A; phanso s; cout >n; for(int i=0;i >r; a.them(r); }clrscr(); cout >m; for(int i=0;i >s; b.them(s); c.them(s);clrscr(); } clrscr(); cout >l; for(int i=0;i >A; g.them(A); clrscr(); }
  38. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 clrscr(); textcolor(YELLOW+RED); cprintf("%s","\t\t\tchuong trinh da gan cac so 1 cach tu dong ta duoc "); cout #include #include class PS { public: long tu,mau; PS() { tu=0; mau=0; } ~PS(){}; int uscln(long a,long b); void rutgon(); void nhap(); void xuat(); PS operator+(PS &a); PS operator-(PS &a); PS operator*(PS &a); PS operator/(PS &a); };
  39. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 int PS::uscln(long a,long b) { if(a!=0 && b!=0) { a=abs(a); b=abs(b); while(a!=b) { if(a>b) a=a-b; else b=b-a; } return a; } else return 1; } void PS::rutgon() { int u; u=uscln(tu,mau); tu=tu/u; mau=mau/u; } void PS::nhap() { Nhap: cout >tu; cout >mau; if(mau==0) { cout<<"Mau phai khac 0"<<endl; goto Nhap; } } void PS::xuat() { rutgon(); if(mau<0) {mau=-mau; tu=-tu;} if(tu==0) cout<<"0"<<endl; else
  40. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 if(mau==1) cout #include void main() { char chuoi[80]; int i = 0, count = 0; printf("\nNhap vao mot chuoi bat ky : "); gets(chuoi); while (chuoi[i] != 0) { if (isalpha(chuoi[i++])) count++; }
  41. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 printf("So ky tu trong chuoi = %d", count); getch(); } BÀI TOÁN ANCAROKHI #include void main() { int dai, rong; printf("\nBai toan Ancarokhi : Tim dien tich hinh chu nhat co chieu dai gap hai"); printf("\nchieu rong va dien tich = chu vi"); for (dai = 1; dai unsigned long vetrai(unsigned long n) { unsigned long tmp=0, i; for (i=1; i<=n; i++) tmp += i*i*i*i; return tmp; } unsigned long vephai(unsigned long n) { unsigned long tmp; tmp = (long)6*n*n*n*n*n + (long)15*n*n*n*n + (long)10*n*n*n - n; tmp = tmp / (long)30 ; return tmp; }
  42. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 void main() { unsigned long tong1, tong2, n; for (n=1; n #include void main() { int i, j; clrscr(); printf(" "); for (j=0; j<16; j++) printf("%3d", j); for (i=2; i<16; i++) for (j=0; j<16; j++) { if (j == 0) printf("\n%2d ", i); printf(" %c", i*16+j); } getch(); }
  43. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 IN RA NĂM ÂM LỊCH TƯƠNG ỨNG VỚI NĂM NHẬP VÀO #include #include void main() { unsigned nam; char can[][5] = {"Giap", "At", "Binh", "Dinh", "Mau", "Ky", "Canh", "Tan", "Nham", "Quy"}; char chi[][5] = {"Ty", "Suu", "Dan", "Meo", "Thin", "Ty", "Ngo", "Mao", "Than", "Dau", "Tuat", "Hoi"}; printf("\nNhap nam can biet : "); scanf("%d", &nam); printf("Nam am lich cua %d la %s %s", nam, can[(nam+6)%10], chi[(nam+8)%12]); getch(); } IN RA BẢNG CỬU CHƯƠNG #include #include #include void main() { int i, j; char chuoi[] = "B A N G C U U C H U O N G"; char ten[10][5] = {"","","Hai", "Ba", "Bon", "Nam", "Sau", "Bay", "Tam", "Chin"}; clrscr(); textcolor(YELLOW); gotoxy((80 - strlen(chuoi)) / 2, 1); cprintf("%s\n\n", chuoi); for (i=2; i<=9; i++) { gotoxy(10*(i-2) + (10 - strlen(ten[i]))/2, 4); textcolor(i); cprintf("%s", ten[i]); } for (j=1; j<=10; j++) for (i=2; i<=9; i++) { gotoxy(10*(i-2) + 1, j+4); textcolor(i); cprintf("%dx%2d = %2d", i, j, i*j); }
  44. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 getch(); } NHẬP VÀ IN CHUỖI #include #include void main() { char name[80]; printf("\nXin cho biet ten cua ban : "); gets(name); printf("Chao %s\n", name); getch(); } GIẢI HỆ PHƯƠNG TRÌNH BẬC NHẤT #include #include void main() { int a, b, c, d, e, f, dthuc; float x, y; printf("\nNhap vao cac he so a,b,c,d,e,f : "); scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f); dthuc = b*d - e*a; if (dthuc != 0) { y = (float)(c*d-a*f)/dthuc; x = (float)(b*f-c*e)/dthuc; printf("Nghiem x = %f, y = %f", x, y); } else printf("\nHe phuong trinh vo ngiem."); getch(); }
  45. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 TÍNH THỨ CỦA NGÀY #include #include struct date { int month; int day; int year; } date_1; long int funct1 (int y,int m) { long int result; if ( m <= 2 ) y -= 1; result = y; return (result); } long int funct2 (int m) { long int result; if ( m <= 2 ) result = m + 13; else result = m + 1; return(result); } long int day_count (int m, int d, int y) { long int number; number = 1461 * funct1(y,m) / 4 + 153 * funct2(m) / 5 + d; return (number); } void main () { long int number_of_days1; int day_of_week; printf ("Nhap vao mot ngay (dd mm yyyy), vd 12 03 1999 \n"); scanf ("%d %d %d", &date_1.day, &date_1.month, &date_1.year); number_of_days1 = day_count (date_1.month, date_1.day, date_1.year); printf ("\nNgay la : " ); day_of_week = (number_of_days1 - 621049) % 7;
  46. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 switch (day_of_week) { case 0 : printf ("Chu Nhat,"); break; case 1 : printf ("Thu Hai,"); break; case 2 : printf ("Thu Ba,"); break; case 3 : printf ("Thu Tu,"); break; case 4 : printf ("Thu Nam,"); break; case 5 : printf ("Thu Sau,"); break; case 6 : printf ("Thu Bay,"); break; } getch(); } CHUYỂN SỐ LA MÃ SANG SỐ Ả RẬP #include #include #include int doigt(char chuoi[],int i); void loi(); void main() { char chuoi[20]; cout<<"Nhap chuoi:"; cin.get(chuoi,20); int nam=0; for(int i=0;i<strlen(chuoi);i++) nam+=doigt(chuoi,i); cout<<nam<<endl; getch(); } int doigt(char chuoi[],int i) { if(!(chuoi[i]=='I'||chuoi[i]=='V'||chuoi[i]=='X'||chuoi[i]=='L'||chuoi [i]=='C'||chuoi[i]=='D'||chuoi[i]=='M'))
  47. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 loi(); if(chuoi[i]==chuoi[i+1]&&chuoi[i]==chuoi[i+2]&&chuoi[i]==chuoi[i+3]) loi(); if(chuoi[i]=='I') if(chuoi[i+1]=='V'||chuoi[i+1]=='X') { if(chuoi[i+2]=='V'||chuoi[i+2]=='X') loi(); else return -1; } else return 1; if(chuoi[i]=='V') return 5; if(chuoi[i]=='X') if(chuoi[i+1]=='L'||chuoi[i+1]=='C') { if(chuoi[i+2]=='L'||chuoi[i+2]=='C') loi(); else return -10; } else return 10; if(chuoi[i]=='L') return 50; if(chuoi[i]=='C') if(chuoi[i+1]=='D'||chuoi[i+1]=='M') { if(chuoi[i+2]=='D'||chuoi[i+2]=='M') loi(); else return -100; } else return 100; if(chuoi[i]=='D') return 500; if(chuoi[i]=='M') return 1000; } void loi() { cout
  48. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 #include void viet(char a,char b,char c,int so); void kytu(char &a,char &b,char &c,int so); void main() { char x,y,z; int nam; do { cout >nam; } while(nam>=4000||nam<0); cout<<"Nam "<<nam<<" viet trong he La Ma la: "; int tam=nam; int i=3; while(tam!=0) { tam=tam/pow(10.0,i); kytu(x,y,z,i); viet(x,y,z,tam); tam=fmod(nam,pow(10.0,i)); i ; } cout<<endl; } void kytu(char &a,char &b,char &c,int i) { if(i==0) { a='I';b='V';c='X'; } else if(i==1) { a='X';b='L';c='C'; } else if(i==2) { a='C';b='D';c='M'; } else if(i==3) a='M'; } void viet(char a,char b,char c,int so) { if(so==1||so==2||so==3) for(int i=1;i<=so;i++) cout<<a; if(so==4) cout<<a<<b; if(so==5) cout<<b; if(so==6||so==7||so==8) { cout<<b; for(int i=1;i<=so-5;i++) cout<<a;
  49. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } if(so==9) cout #include #include #include ////Radix sort int getMax(int a[],int n) { int max=a[0]; for(int i=1;i<n;i++) if(max<a[i]) max=a[i]; return max; } int countDigit(int n) { int count=0; while(n) { count++; n/=10; } return count; } int getDigit(int n,int t) { int tt=1; for(int i=0;i<t;i++)tt*=10; return ((n/tt)%10); } void send2Box(int a[],int n,int *b[10],int num[10],int t) { for(int i=0;i<n;i++) { int tt=getDigit(a[i],t); b[tt][num[tt]++]=a[i]; } } void getValue(int a[],int *b[10],int nn[10]) { int j=0; for(int i=0;i<10;i++) { if(nn[i]!=0)
  50. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 { for(int k=0; k 0 va n 100); for (i=0;i<n;i++) { printf("Nhap A[%d]=",i); scanf("%d",&A[i]); } printf("\n\tMang moi nhap vao:\n"); xuat(A,n);
  51. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 printf("\n\n\tMang da sap xep :\n"); radixsort(A,n); xuat(A,n); getch(); } DANH SÁCH LIÊN KẾT ĐƠN (vừa chèn vừa sắp xếp) #include #include class Node { private: float data; Node *next; public: Node() { data = 0; next = NULL; } Node(float x) { data = x; next = NULL; } void setnext(Node *p) { next = p; } Node * getnext() { return next; } void setdata(float x) { data = x; } float getdata() { return data; } };
  52. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 class List { private: Node *head; public: List() {head = NULL;} List(Node *x) {head = x;} void chensapxep(float x) Node *p,*q; p = new Node(x); q = head; if(head == NULL) head = p; else { if(p->getdata() getdata()) { p->setnext(head); head = p; } else { while ( q->getnext()!= NULL) { if ((q->getdata() getdata() && q->getnext()- >getdata() >p->getdata()) || (q->getdata()==p->getdata() && q->getnext()- >getdata() >=p->getdata())) { p->setnext(q->getnext()); q->setnext(p); break; } else q = q->getnext(); } if (q->getnext()==NULL) q->setnext(p); } } } void show() {
  53. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 Node *p = head; p = p->getnext(); if( head != NULL) { while(p != NULL) { cout getdata() getnext(); } } } }; void main() { float so; List p; do { cout >so; p.chensapxep(so); }while(so != 0); p.show(); getch(); } ĐẾM KÍ TỰ TRONG MỘT CHUỖI ASCII #include #include #include void main() { char chuoi[80]; int i = 0, count = 0; printf("\nNhap vao mot chuoi bat ky : "); gets(chuoi); while (chuoi[i] != 0) { if (isalpha(chuoi[i++])) count++; } printf("So ky tu trong chuoi = %d", count); getch(); }
  54. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 BIỂU DIỄN SỐ DƯỚI DẠNG BIT #include #include void main() { unsigned int mang[24], i; int bit[16], k, index; printf("\nNhap vao 23 gia tri nguyen : "); for (i=0; i<23; i++) scanf("%d",&mang[i]); printf(" FEDCBA9876543210"); for (i=0; i<23; i++) { k = mang[i]; for (index = 0; index < 16; index++) bit[index] = 0; index = 15; while (k) { bit[index ] = k%2; k /= 2; } printf("\n%5d ",mang[i]); for (index=0; index<16; index++) if (bit[index] == 1) printf("*"); else printf("-"); } getch() ĐẢO NGƯỢC CHUỖI char *dnchuoi(char *s) { char *tmp, i; i = 0; tmp = (char *)malloc(strlen(s)+1); while (i<strlen(s)) *(tmp+i) = *(s + strlen(s) - i++ - 1); *(tmp+i) = 0; return tmp; }
  55. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 void main() { char hello[] = "Hello World"; char *s; printf("\nChuoi ban dau = %s", hello); s = dnchuoi(hello); printf("\nChuoi dao nguoc = %s", s); getch(); } CHƯƠNG TRÌNH XEM TỆP TIN #include #include void main() { FILE *fp; char filename[50], s[255], *hang[1000], c; int nline = 0, line = 0, i; printf("\nNhap ten tap tin muon xem : "); gets(filename); if ((fp = fopen(filename,"r")) == NULL) printf("\nKhong the mo tap tin %s", filename); else { while (!feof(fp)) { fgets(s, 255, fp); hang[nline] = (char *)malloc(strlen(s)); strcpy(hang[nline], s+1); nline++; } do { clrscr(); i = line; while (i 0) line ; break;
  56. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 case 80 : if (line+25 #include void main() { int tdung, tnam, tgia, phuongan=0; for (tdung = 1; tdung #include #include
  57. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 #pragma warn -pia char *trim(char *chuoi) { char *p; while (p = strstr(chuoi, " ")) memmove(p, p+1, strlen(chuoi) - (p - chuoi)); if (chuoi[0] == ' ') memmove(chuoi, chuoi+1, strlen(chuoi) - 1); if (chuoi[strlen(chuoi)-1] == ' ') chuoi[strlen(chuoi)-1] = 0; return chuoi; } void main() { char chuoi[125]; printf("\nNhap chuoi mau : "); textattr(0x1e); gets(chuoi); trim(chuoi); printf("\nChuoi sau khi da trim : "); textattr(0x1e); cputs(chuoi); getch(); } TÌM TẤT CẢ CÁC ƯỚC CỦA MỘT SỐ N #include #include void main() { int n, i; printf("Cho gia tri N = "); scanf("%d", &n); printf("Cac uoc so cua %d la :\n", n); for (i=1; i<n; i++) if ((n % i) == 0) printf("%5d", i); getch();
  58. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } BỘI SỐ CHUNG VÀ ƯỚC SỐ CHUNG #include #include unsigned USCLN (unsigned n, unsigned m) { while (n != 0 && m != 0) if (n>m) n -= m; else m -= n; if (n == 0) return m; else return n; } unsigned BSCNN (unsigned n, unsigned m) { return n * m / USCLN(n, m); } void main() { unsigned n, m; printf("\nNhap hai vao so nguyen duong : "); scanf("%u%u", &n, &m); printf("\nUSCLN cua %u va %u = %u", n, m, USCLN(n,m)); printf("\nBSCNN cua %u va %u = %u", n, m, BSCNN(n,m)); getch(); } TRỘN HAI DÃY GIẢM THÀNH MỘT DÃY TĂNG #include #include #define MAX 10 void main() { int a[MAX], b[MAX], c[2*MAX], n1, n2, i, i1, i2;
  59. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 printf("\nCho biet so phan tu cua mang thu nhat : "); scanf("%d", &n1); printf("Nhap vao cac phan tu (giam dan) cua mang thu nhat : "); for (i=0; i = 0) while (i1 >= 0) c[i++] = a[i1 ]; if (i2 >= 0) while (i2 >= 0) c[i++] = b[i2 ]; printf("\nCac phan tu cua mang tron : "); for (i=0; i #include #include void main() { int *a,*b,*c;
  60. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 int m,n; int i,j; clrscr(); //Nhap so hang so cot printf("Nhap vao m:");scanf("%d",&m); printf("Nhap vao n:");scanf("%d",&n); //Cap phat bo nho a=(int*)calloc(m*n,sizeof(int)); b=(int*)calloc(m*n,sizeof(int)); c=(int*)calloc(m*n,sizeof(int)); // Nhap so lieu va tinh toan for(i=1;i<=m;i++) for(j=1;j<=n;j++) { printf("Nhap vao a[%d,%d]=",i,j);scanf("%d",&a[(i-1+j)+((i-1)*(n-1))]); } for(i=1;i<=m;i++) for(j=1;j<=n;j++) { printf("Nhap vao b[%d,%d]=",i,j);scanf("%d",&b[(i-1+j)+((i-1)*(n-1))]); c[(i-1+j)+((i-1)*(n-1))]=a[(i-1+j)+((i-1)*(n-1))]+b[(i-1+j)+((i-1)*(n- 1))]; } // xuat cac mang a,b,c ra man hinh for(i=1;i<=m;i++) for(j=1;j<=n;j++) { printf("\t%d",a[(i-1+j)+((i-1)*(n-1))]); if(j==n)printf("\n"); } printf("\n===\n"); for(i=1;i<=m;i++) for(j=1;j<=n;j++) { printf("\t%d",b[(i-1+j)+((i-1)*(n-1))]); if(j==n)printf("\n"); } printf("\n===\n"); for(i=1;i<=m;i++) for(j=1;j<=n;j++) { printf("\t%d",c[(i-1+j)+((i-1)*(n-1))]); if(j==n)printf("\n"); } getch(); }
  61. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 IN RA CÁC SỐ HOÀN HẢO TỪ MỘT SỐ N NHẬP VÀO #include int main(void) { int i , j , n , tong ; printf("\n Nhập vào N = "); scanf("%d",&n); for ( i = 2 ; i 1700 #include #include #include int songay(int,int); bool namnhuan(int nam); void InLich(int,int); int ThuDauTien(int,int); void main() { int nam; char chon; do { do { cout 1700): "; cin>>nam; }while(nam < 1700); for(int i = 1;i <= 12;i++) { cout<<"Thang "<<i<<endl; InLich(i,nam); cout<<endl; }
  62. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 cout >chon; system("cls"); }while(chon == 'y'); cout<<"Thanh Nam cam on ban da su dung chuong trinh {an Enter de thoat)"; getch(); } int songay(int thang,int nam) { switch(thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 2: if(namnhuan(nam)) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; } return 0; } bool namnhuan(int nam) { return ((nam % 4 == 0 && nam % 100 != 0)||(nam % 400 == 0)); } void InLich(int thang,int nam) { int ngayd = ThuDauTien(thang,nam); if(ngayd == 0) ngayd = 7; int i; int sn = songay(thang,nam); cout<<"\nMon\tTUE\tWED\tTHU\tFRI\tSAT\tSun\n"; for(i = 1;i <= ngayd - 1;i++) cout<<"\t"; for(i = 1;i <= sn;i++) { cout<<i<<"\t";
  63. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 if((i + ngayd - 1) % 7 == 0) cout #include #include
  64. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 #include #define max 100 int stack[max],Top=-1; void push(int stack[],int &Top,int X) { if (Top==max-1) { puts("Stack day"); exit(3); } else { Top++; stack[Top]=X; } } int pop(int stack[],int &Top) { int tam; if (Top==-1) return Top; else { tam=stack[Top]; Top ; return tam; } } void DauNgoac(char s[],int n) { int i; for(i=0;i<n;i++) { if (s[i]=='(') push(stack,Top,1); if (s[i]==')'&&pop(stack,Top)==-1) { Top=-2; break; } } if (Top==-1) printf("\nDung"); else printf("\nSai"); } void main() { clrscr(); char s[max]; int n= printf("Nhap chuoi:"); gets(s); n=strlen(s); DauNgoac(s,n); getch(); }
  65. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 BÀI TOÁN 8 HOÀNG HẬU #include #include int dong[8], cot[8], cheoxuoi[15], cheonguoc[15]; void print () { int i; printf("\n"); for (i=0; i<8; i++) printf("%3d", dong[i]); } void thu(int i) { int j; for (j=0; j<8; j++) { if (cot[j] == 1 && cheoxuoi[i+j] ==1 && cheonguoc[i-j+7] == 1) { dong[i] = j; cot[j] = 0; cheoxuoi[i+j] = 0; cheonguoc[i-j+7] = 0; if (i<7) thu(i+1); else print(); cot[j] = 1; cheoxuoi[i+j] = 1; cheonguoc[i-j+7] = 1; } } } void tim() { int i, q; for (i=0; i<8; i++) { cot[i] = 1; dong[i] = -1; } for (i=0; i<15; i++) { cheoxuoi[i] = 1; cheonguoc[i] = 1; }
  66. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 thu(0); } void main() { tim(); getch(); } IN RA MỘT SỐ HEX TƯƠNG ỨNG VỚI MỘT SỐ NGUYÊN DƯƠNG #include #include void main() { unsigned number; char hex[] = "0123456789ABCDEF"; printf("\nNhap vao mot gia tri nguyen duong 16 bit : "); scanf("%u", &number); printf("Gia tri Hex tuong ung = %c%c%c%c", hex[number/0x1000], hex[(number/0x100)%0x10], hex[(number/0x10)%0x10], hex[number%0x10]); getch(); } LIỆT KÊ RA CÁC HOÁN VỊ CỦA N PHẦN TỬ #include #include #define MAX 10 int mang[MAX], n; void swap (int *x, int *y) { int tmp; tmp = *x; *x = *y; *y = tmp; } void hoanvi(int k) { int j;
  67. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 if (k==1) { printf("\n"); for (j=0; j =0; j ) { swap(&mang[k-1], &mang[j]); hoanvi(k-1); swap(&mang[j], &mang[k-1]); } } void main() { int i; printf("\nCho biet so phan tu (N #include #include void main() { char s[50]; int i, len; printf("\nNhap vao mot chuoi : "); gets(s); len = strlen(s); i = 0; while (i<len) { while (s[i] == ' ' && i<len) i++; while (s[i] != ' ' && i<len) putc(s[i++], stdout); putc('\n', stdout); } getch();
  68. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } IN RA CÁC CHỮ SỐ HÀNG TRĂM - HÀNG CHỤC - ĐƠN VỊ #include #include void main() { int n, tram, chuc, donvi; clrscr(); printf("\nNhap vao mot so tu 100 - 999 : "); scanf("%d", &n); tram = n; donvi = tram % 10; tram /= 10; chuc = tram % 10; tram /= 10; printf("\nSo hang tram = %d", tram); printf("\nSo hang chuc = %d", chuc); printf("\nSo hang don vi = %d", donvi); getch(); } TÌM PHẦN TỬ LỚN NHẤT VÀ NHỎ NHẤT TRONG MẢNG MỘT CHIỀU #include #include void main() { int mang[20]; int i, minval, maxval; /* Khoi tao mang ngau nhien */ randomize(); for (i=0; i<20; i++) mang[i] = random(100); /* Tim gia tri lon nhat va nho nhat */ minval = maxval = mang[0];
  69. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 for (i=1; i mang[i]) minval = mang[i]; } /* In mang */ clrscr(); for (i=0; i #include unsigned long giaithua(int n) { unsigned long ketqua = 1; int i; for (i=2; i<=n; i++) ketqua *= i; return ketqua; } unsigned long to_hop_chap(int k, int n) { return giaithua(n) / (giaithua(k) * giaithua(n-k)); } void main() { int n, k; printf("\nNhap vao gia tri N va K : "); scanf("%d%d", &n, &k); printf("Top hop chap %d cua %d = %lu", k, n, to_hop_chap(k, n));
  70. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 getch(); } CHƯƠNG TRÌNH ĐỌC SỐ CÓ 3 CHỮ SỐ /* Day la chuong trinh doc so co 3 chu so hay mot so co 2 cu so tham chi so co 1 chu so Duoc viet boi Vu Thanh Nam */ #include #include void main() { int a; cout >a; int hangtram=a/100; int hangchuc=((a/10)%10); int hangdonvi=a%10; switch(hangtram) { case 1 :cout<<"Mot tram ";break; case 2 :cout<<"Hai tram ";break; case 3 :cout<<"Ba tram ";break; case 4 :cout<<"Bon tram ";break; case 5 :cout<<"Nam tram ";break; case 6 :cout<<"Sau tram ";break; case 7 :cout<<"Bay tram ";break; case 8 :cout<<"Tam tram ";break; case 9 :cout<<"Chin tram ";break; } switch(hangchuc) { case 0: if(hangdonvi==0) cout<<""; else {if(hangchuc==0&&hangtram==0) cout<<""; else cout<<"ninh";} break; case 1:cout<<"muoi";break; case 2:cout<<"hai muoi";break; case 3:cout<<"ba muoi";break; case 4:cout<<"bon muoi";break; case 5:cout<<"nam muoi";break; case 6:cout<<"sau muoi";break; case 7:cout<<"bay muoi";break; case 8:cout<<"tam muoi";break; case 9:cout<<"chin muoi";break;
  71. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } switch(hangdonvi) { case 0:cout #include #include void main() { long int thang, nam; cout >thang>>nam; if ((thang>12||thang<1)||(nam<0)) cout<<"Nhap thang hoac nam sai";
  72. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 else { bool namnhuan=((nam%4==0&&nam%100!=0)||(nam%400==0&&nam%100==0)); int songay; if(thang==4||thang==6||thang==9||thang==11) songay = 30; else { if(thang==2) songay = namnhuan?29:28; else songay=31; } cout #include #include bool LaNguyenTo(int n); void main() { int n; cout >n; if(LaNguyenTo(n)) cout<<"La so nguyen to"; else { cout<<"Khong la so nguyen to vi no chia het cho "; for(int j=2;j<n;j++) { if(n%j==0) cout<<j<<" va "; } cout<<"The thoi"; } getch(); } bool LaNguyenTo(int n) { bool co=true; if(n<2) {cout<<"Du lieu nhap sai va so do "; return !co;}
  73. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 else { for(int i=2;i #include #include float max(int a, int b); float min(int a, int b); void main() { int a,b,c,d; cout >a; cout >b; cout >c; cout >d; cout b) return a; else return b; } float min(int a, int b) { if(a>b) return b; else return a; }
  74. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 TÌM N SỐ FIBONACI ĐẦU TIÊN #include #include #include long Fibonaci(long n); void main() { long n; cout >n; cout #include #include void main() { double sotiengui,tienlai,laixuat; int sothang; cout >sotiengui; cout >laixuat; cout >sothang; for(int i=1;i<=sothang;i++) { tienlai=laixuat*sotiengui; sotiengui=sotiengui+tienlai; } cout<<"Vay so tien nguoi do gui trong "<<sothang<<" thang la:
  75. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 " #include void main() { long a; do { cout >a; }while(a 0) { while (a > 0) { cout #include #include void main() { char chon; do { cout<<"\nCHUONG TRINH DOAN HON BI KHAC KHOI LUONG TRONG 8 HON BI\n"; cout<<"\n\t-Co 8 hon bi danh so tu 1 den 8\n"; cout<<"\t 1 2 3 4 5 6 7 8\n"; cout<<"\t-Co duy nhat 1 hon bi khac khoi luong khong biet nhe hay nang hon
  76. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 so bi con lai\n"; cout >kq1; if(kq1==0) { cout >kq2; if(kq2==0) { cout >kq3; if(kq3==1||kq3==-1) cout >kq2; if(kq2==0) { cout<<"3.CAN LAN 3:\n";
  77. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 cout >kq3; if (kq3==1||kq3==-1) { if(kq1==1) cout >kq3; if(kq3==0) cout >chon; system("cls");
  78. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 }while(chon == 'c'); } KIỂM TRA SỐ ĐỐI XỨNG #include #include #include long songuoc(long a); void main() { long n; do { cout >n; }while(n 0) { while (a > 0) { tg= a%10; a = a / 10; } } return tg; } ĐIỀN GIÁ TRỊ CHO MỘT MẢNG VUÔNG THEO CHIỀU KIM ĐỒNG HỒ #include #include void main() { int n, w, hang, cot, chanhangtang, chanhanggiam, chancottang, chancotgiam; int matran[12][12], tang, giam;
  79. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 printf("\n\nChuong trinh in ma tran dac biet."); do { printf("\nNhap kich thuoc cua ma tran (3 =3 && n tang cot tang = 1 -> tang hang tang = 2 -> giam cot tang = 3 -> giam cot */ tang = 0; for (w=0; w chancotgiam) cot ; else { tang++; // Chuyen sang giam hang chanhangtang ; hang ; } break; case 3 : if (hang > chanhanggiam) hang ; else { tang=0; // Chuyen sang tang cot chancotgiam++; cot++;
  80. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 } break; } } for (hang=0; hang #include void main() { int n, i, j; printf("\nNhap chieu cao cua hinh tam giac : "); scanf("%d", &n); for (i=0; i i; j ) printf(" "); for (j=0; j #define MAX 10 void main()
  81. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 { int a[MAX], b[MAX], c[2*MAX], n1, n2, i, i1, i2; printf("\nCho biet so phan tu cua mang thu nhat : "); scanf("%d", &n1); printf("Nhap vao cac phan tu (tang dan) cua mang thu nhat : "); for (i=0; i = n1 || i2 >= n2) break; if (a[i1] #include #include void main() { int a,n,m,vtdau=0,vtcuoi=0; cout<<"Nhap vao so luong so: ";
  82. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 cin>>n; cout >m; do { cout >a; }while(a >a; }while(a #include #include void main() { float x,tong=0.0,n,tg,mu=1.0,gt=1.0; cout >x; cout >n; for(int i=1;i<=n;i++) { mu=mu*x; gt=gt*i; tg=mu/gt; tong=tong+tg; } cout<<"Vay "; for(int j=2;j<=n;j++) { cout<<x<<"^"<<j<<"/"<<j<<"!"<<" + "; }
  83. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 cout #include #include #include #define A 0 #define B 1 #define C 2 void hanoi(int from, int to, int dia) { int trunggian; if (dia == 1) printf("\nChuyen 1 dia tu coc %c sang coc %c", 'A'+from, 'A'+to); else { if ((from == A && to == C) || (from == C && to == A)) trunggian = B; else if ((from == A && to == B) || (from == B && to == A)) trunggian = C; else if ((from == C && to == B) || (from == B && to == C)) trunggian = A; hanoi(from, trunggian, dia-1); hanoi(from, to, 1); hanoi(trunggian, to, dia-1); } } void main() { int n; printf("\nCho biet so dia ( 3 -> 6 ): "); do { scanf("%d", &n); } while (n 6); hanoi(A, C, n); getch(); }
  84. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 THÁP HÀ NỘI 4 ĐĨA #include #include #include #include #define A 0 #define B 1 #define C 2 #define D 3 void hanoi(int from, int to, int dia) { int tg1, tg2, dia2; if (dia <= 1) printf("\nChuyen 1 dia tu coc %c sang coc %c", 'A'+from, 'A'+to); else { if ((from == A && to == D) || (from == D && to == A)) { tg1 = B; tg2 = C; } else if ((from == A && to == B) || (from == B && to == A)) { tg1 = C; tg2 = D; } else if ((from == A && to == C) || (from == C && to == A)) { tg1 = B; tg2 = D; } else if ((from == B && to == C) || (from == C && to == B)) { tg1 = A; tg2 = D; } else if ((from == B && to == D) || (from == D && to == B)) { tg1 = A; tg2 = C; } else if ((from == C && to == D) || (from == D && to == C)) { tg1 = A; tg2 = B; } dia2 = dia / 2; if (dia % 2 == 1) { hanoi(from, tg1, dia2); hanoi(from, tg2, dia2); hanoi(from, to, 1); hanoi(tg2, to, dia2);
  85. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 hanoi(tg1, to, dia2); } else { hanoi(from, tg1, dia2); if (dia2 > 1) { hanoi(from, tg2, dia2-1); hanoi(from, to, 1); hanoi(tg2, to, dia2-1); } else hanoi(from, to, 1); hanoi(tg1, to, dia2); } } } void main() { int n; printf("\nCho biet so dia ( 3 -> 6 ): "); do { scanf("%d", &n); } while (n 6); hanoi(A, D, n); getch(); } TÌM CÁC ƯỚC SỐ CỦA N #include #include void LK_Uoc(int n)//liet ke cac uoc cua n { for(int i=1;i<=n;i++) if(n%i==0) printf("%4d",i); } void main() { int n; printf("\nMoi ban nhap so n bat ky n ="); scanf("%d",&n); printf("\nCac uoc so cua n la : \n ");
  86. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 LK_Uoc(n); getch(); } KIỂM TRA MA TRẬN B CÓ LÀ MA TRẬN CON CỦA MA TRẬN A #include #include #define N 2 #define M 5 void search(int b[N][N],int a[M][M]) { int i,j,k,l,m,x,y,dem,demx,demy; int timthay=1; for(k=0;k<=M-N;++k) { for(l=0;l<=M-N;++l) { dem=demx=demy=0; x=l;y=k; for(i=0;i<N;++i) { for(j=0;j<N;++j) { if(b[i][j]==a[y][x])dem++; ++x;++demx; if(demx==N){demx=0;x=l;} } ++y;++demy; if(demy==N){demy=0;y=k;} } if(dem==N*N)break; } if(dem==N*N)break; } if(dem!=N*N)timthay=0; if(timthay==0)printf("\nKo tim thay"); else printf("\nTim thay"); } void main()
  87. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 { clrscr(); int a[M][M]={ 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25}; int b[N][N]={4, 5, 9,10}; search(b,a); getch(); } TAM GIÁC CÂN 1212 #include #include void main() { clrscr(); short d[]={1,2}; printf("Nhap chieu cao tam giac: "); int i,num,space; scanf("%d",&i); num=2*i+1; for(int n=0;n 0) printf(" "); int index; for(int j=0;j<2*n+1;++j) { index=(j%2)?1:0; printf("%d",d[index]); } printf("\n"); } getch(); }
  88. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 #include #include //by sakervista main() { int i,j,k,h; printf("Nhap Chieu cao h : "); scanf("%d",&h); for(i=1;i #include #include #include
  89. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 void doi(char *q); void loc(char q[100]); void dtp(char q[]); main() {char s[90],ti[90]="",tr[90]="",ng[90]="",tam[90],kq[90],*endptr,*q,c; int i=0; clrscr(); printf("Nhap chuoi can doi:"); gets(s); printf("\n"); loc(s); strcpy(tam,strtok(s," ")); strcat(tam," "); while((q=strtok('\0'," "))!='\0') if(strspn(q,"tyi")==2) { strcpy(ti,tam); strcpy(tam,"\0");} else if(strspn(q,"trieu")==5) { strcpy(tr,tam); strcpy(tam,"\0");}
  90. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 else if(strspn(q,"nghin")>=2) {strcpy(ng,tam); strcpy(tam,"\0");} else {strcat(tam,q); strcat(tam," ");} dtp(ti); dtp(tr); dtp(ng); dtp(tam); strcpy(kq,ti); strcat(kq,tr); strcat(kq,ng); strcat(kq,tam); printf("so do la:%lu",strtoul(kq,&endptr,10)); getch(); } void doi(char*q) { if(strspn(q,"linhe")>=2||strspn(q,"khong")==5) strcpy(q,"0"); if(strspn(q,"mot")==3) strcpy(q,"1");
  91. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 if(strspn(q,"hai")==3) strcpy(q,"2"); if(strspn(q,"bay")==3) strcpy(q,"7"); if(strspn(q,"ba")==2) strcpy(q,"3"); if(strspn(q,"botu")==2) strcpy(q,"4"); if(strspn(q,"lnam")==3) strcpy(q,"5"); if(strspn(q,"sau")==3) strcpy(q,"6"); if(strspn(q,"tam")==3) strcpy(q,"8"); if(strspn(q,"chin")==4) strcpy(q,"9"); } void loc(char q[100]) {char a[100],*k; k=strtok(q," "); strcpy(a,k); while((k=strtok('\0'," "))!='\0')
  92. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 {strcat(a," "); strcat(a,k); } strcpy(q,a); } void dtp(char *q) {int t=1,n=0,dem=0; char q1[90],*k,*k1,h[90]; k=strtok(q," "); if(strspn(k,"muoi")==4) {strcpy(q1,"1");t=2;} else {doi(k); strcpy(q1,k); t=0;} while((k1=strtok('\0'," "))!='\0') { if(strspn(k1,"tram")==4) {t=1; dem++;} else if(strspn(k1,"muoi")==4) if(t) strcat(q1,"1");
  93. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 else t=2; else {doi(k1); strcat(q1,k1); t=0;} } if(t==2) strcat(q1,"0"); n=strcspn(q1," "); if(n==0) strcpy(q1,"000"); else if(n==2) {strcpy(h,"0"); strcat(h,q1); strcpy(q1,h);} else if(n==1) if (t==2) strcat(q1,"0"); else if(dem) strcat(q1,"00"); else {strcpy(h,"00"); strcat(h,q1);
  94. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 strcpy(q1,h);} strcpy(q,q1); } SỐ THÀNH CHỮ #include #include #include #include void tach(int n); void doi(int n,char q[]); void so(int n,char tam[],int i); void sodau(int n,char q[]); int tram,chuc,dvi; char tam[90]; main() {char ti[90],tr[90],ng[90],dv[90],kq[90]="\0"; unsigned long n; int t1,t2,t3,t4,i=0; printf("nhap so can doi:"); scanf("%lu",&n); t1=(n/1000000)/1000;
  95. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 t2=(n/1000000)%1000; t3=(n/1000)%1000; t4=n%1000; if(i==0&&t1!=0) { i=1; sodau(t1,ti); strcpy(kq,ti); strcat(kq,"ti "); } if(i==0&&t2!=0) {i=1; sodau(t2,tr); strcpy(kq,tr); strcat(kq,"trieu "); } else if(t2!=0&&i==1) {doi(t2,tr); strcat(tr,"trieu "); strcat(kq,tr); } if(i==0&&t3!=0)
  96. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 {i=1; sodau(t3,ng); strcpy(kq,ng); strcat(kq,"ngan "); } else if(t3!=0&&i==1) {doi(t3,ng); strcat(ng,"ngan "); strcat(kq,ng); } if(i==0&&t4!=0) {i=1; sodau(t4,dv); strcpy(kq,dv); strcat(kq," "); } else if(t4!=0&&i==1) { doi(t4,dv); strcat(kq,dv); } printf("So do doc bang chu la:%s",kq);
  97. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 getch(); } void sodau(int n,char q[]) {int i; tach(n); if(tram) {so(tram,tam,i=1); strcpy(q,tam); strcat(q," "); strcat(q,"tram "); } if(chuc>1) {so(chuc,tam,i); if(tram==0) strcpy(q,tam); else strcat(q,tam); strcat(q," "); strcat(q,"muoi "); } if(chuc==0) if(tram!=0&&dvi!=0)
  98. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 strcat(q,"linh "); if(chuc==1) if(tram) strcat(q,"muoi "); else strcpy(q,"muoi "); if(dvi!=0) if(chuc==0) if(tram==0) {so(dvi,tam,i=2); strcpy(q,tam); strcat(q," ");} else {so(dvi,tam,i=2); strcat(q,tam); strcat(q," ");} else if(chuc!=0) {so(dvi,tam,i=3); strcat(q,tam); strcat(q," ");} } void tach(int n)
  99. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 { tram=n/100; chuc=(n/10)%10; dvi=n%10; } void so(int n,char tam[],int i) {switch(n) { case 1: strcpy(tam,"mot"); break; case 2: strcpy(tam,"hai"); break; case 3: strcpy(tam,"ba"); break; case 4: strcpy(tam,"bon"); break; case 5: if(i==3) strcpy(tam,"lam");
  100. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 else strcpy(tam,"nam"); break; case 6: strcpy(tam,"sau"); break; case 7: strcpy(tam,"bay"); break; case 8: strcpy(tam,"tam"); break; case 9: strcpy(tam,"chin"); break; default: strcpy(tam,"khong"); } } void doi(int n,char q[]) {int i;
  101. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 tach(n); so(tram,tam,i=1); strcpy(q,tam); strcat(q," tram "); if(chuc!=0) {so(chuc,tam,i=1); if(chuc!=1) {strcat(tam," muoi "); strcat(q,tam);} else strcat(q,"muoi "); } if(dvi!=0) if(chuc==0) {so(dvi,tam,i); strcat(q,"linh "); strcat(q,tam); strcat(q," "); } else {so(dvi,tam,i=3); strcat(q,tam);
  102. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 strcat(q," "); } } #include "iostream.h" typedef struct { int heso,somu; }DonThuc; typedef struct { DonThuc a[100]; int n; }DaThuc; void nhapDonThuc(DonThuc &a); void xuatDonThuc(DonThuc a); int tim(DaThuc &A,int mu,int &vt); void nhap(DaThuc &A); void xuat(DaThuc A); void sapxep(DaThuc &A); void gan(DonThuc &a,DonThuc &b); void xoa(DaThuc &A,int vt); void rutgon(DaThuc &A); DaThuc Doi(DaThuc A); DaThuc Tong(DaThuc A,DaThuc B); DaThuc Hieu(DaThuc A,DaThuc B); DaThuc Tich(DaThuc dt1,DaThuc dt2); DaThuc Thuong(DaThuc bichia,DaThuc chia); main() { DaThuc A,B,C,D,E,F; cout<<"Da thuc A co "; nhap(A); xuat(A); cout<<"\nDa thuc B co "; nhap(B); xuat(B); cout<<"\nTong cua hai da thuc: "; C=Tong(A,B); xuat(C); cout<<"\nHieu cua hai da thuc: "; E=Hieu(A,B); xuat(E); cout<<"\nTich cua hai da thuc: "; D=Tich(A,B); xuat(D); cout<<"\nThuong cua hai da thuc: "; F=Thuong(A,B);
  103. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 xuat(F); cout >a.heso; cout >a.somu; } void xuatDonThuc(DonThuc a) { if(a.somu==0) cout >n; for(i=0;i<n;i++) { if(i==0) { nhapDonThuc(A.a[A.n]); A.n++; } else { nhapDonThuc(A.a[A.n]); if(tim(A,A.a[A.n].somu,vt)==1) A.a[vt].heso=A.a[A.n].heso+A.a[vt].heso; else A.n++; } } } void xuat(DaThuc A) { sapxep(A); int i; for(i=0;i<A.n;i++) {
  104. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 if(i==A.n-1) { xuatDonThuc(A.a[i]); } else { xuatDonThuc(A.a[i]); if(A.a[A.n-1].heso==0 || A.a[i+1].heso<0); else cout<<" +"; } } } void sapxep(DaThuc &A) { DonThuc tam; int i,j; for(i=0;i<A.n-1;i++) for(j=i+1;j<A.n;j++) if(A.a[i].somu<A.a[j].somu) { gan(tam,A.a[i]); gan(A.a[i],A.a[j]); gan(A.a[j],tam); } } void gan(DonThuc &a,DonThuc &b) { a.heso=b.heso; a.somu=b.somu; } void xoa(DaThuc &A,int vt) { for(int i=vt;i<A.n;i++) { A.a[i]=A.a[i+1]; } A.n ; } void rutgon(DaThuc &A) { DonThuc tam; int vt, i = 0; sapxep(A); do { if ((tim(A,A.a[i].somu,vt) == 1) && (vt != i)) { tam.heso=A.a[i].heso+A.a[vt].heso; tam.somu=A.a[i].somu; gan(A.a[i],tam); xoa(A,vt); i = 0; } else i++; }while(i<A.n); }
  105. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 DaThuc Doi(DaThuc A) { for(int i=0;i =chia.a[0].somu) { tam.n=1; tam.a[0].heso=bichia.a[0].heso/chia.a[0].heso; tam.a[0].somu=bac-chia.a[0].somu; A=Tong(A,tam);A.n++; bichia=Hieu(bichia,Tich(tam,chia)); bac=bichia.a[0].somu; if(bichia.n==1&&bichia.a[0].heso==0) break; } sapxep(A);
  106. KHOA CNTT KIỀU TUẤN DŨNG 0903400513 return A; }