Học tập‎ > ‎C++‎ > ‎

Tổng hợp bài tập C/C++

MÃ HÓA THÔNG ĐIỆP

#include <stdio.h>
#include <ctype.h>
#include <alloc.h>
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;
}
}
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();
}

TÍNH CĂN BẬC HAI THEO PHƯƠNG PHÁP LẶP NEWTON
#include <stdio.h>
#include <math.h>

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 THAO TÁC TRÊN SỐ PHỨC

#include <math.h>

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
{
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, ;
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 <stdio.h>

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
{
tmplen++;
tmpend++;
}
}
if (maxlen < tmplen)
{
maxstart = tmpstart;
maxend = tmpend;
}
printf("\nDay tang co so phan tu nhieu nhat la : \n");
for (i=maxstart; i<=maxend; i++)
printf("%6d", a[i]);
getch();
}
DÃY TĂNG CÓ TỔNG LỚN  NHẤT
 
#include <stdio.h>

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;
}
tmpstart = tmpend = i;
tmptotal = a[i];
}
else
{
tmptotal += a[i];
tmpend++;
}
}
if (maxtotal < tmptotal)
{
maxstart = tmpstart;
maxend = tmpend;
}
printf("\nDay tang co tong nhieu nhat la : \n");
for (i=maxstart; i<=maxend; i++)
printf("%6d", a[i]);
getch();
}
QUẢN LÝ SINH VIÊN

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];
  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;
  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();
    } while (traloi < '0' || 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 HAI
#include <stdio.h>
#include <math.h>
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();
}
MA TRẬN
#include <stdio.h>
#include <conio.h>

// 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 = ");
    scanf("%d",&n);
    if ( n % 2 == 0 ) printf("\n Invalid input value .. Plz re-input ... \n");
    }
    while ( n % 2 == 0 );
   
    if ( 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;
     
     // set the 1st value to start
     row = 0; col = (n-1) / 2;
     
     while ( count < n*n + 1 )
     {
           a[row][col] = count++ ; // set value for elements
           old_row = row ; old_col = col; // save the last addresses
           // define whether going out of array
           row -= 1; if ( row == -1 ) row = n - 1;
           col += 1; if ( col == n ) col = 0;
           // in case of already having number
           if ( a[row][col] != 0 )
           {
                row = old_row + 1;
                col = old_col;
           } // end if
     } // end while
     // print result
     printf("\n");
     for ( i = 0 ; i < n ; i++ )
     {
     for ( j = 0 ; j < n ; j++ )
         printf("%4d",a[i][j]);
     printf("\n");
     } // end for
     
     // calculate sum
     for ( j = 0 ; j < n ; j++ )
         sum += a[0][j];
     printf("\n Sum of each row - column - diagonal line is : %d " , sum);
     
     return;
}
FILE VÀ HỆ THỐNG

1. Xóa 1 file dùng Remove
#include <stdio.h>

int main()
{
remove("d:/urls1.dat");

return 0;
}
2. Xóa 1 File dùng Unlink
#include <stdio.h>

int main()
{
remove("C:/pete.txt");

return 0;
}
Cho biết thông tin FAT
#include <stdio.h>
#include <dos.h>

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);
}
4. Đếm tần suất 1 kí tự trong 1 file
# include <stdio.h>
# include <string.h>
main()
{
 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]);
  }
 }
 
 fcloseall();
 printf("\nFrequency table copied to count.txt\n");
}
5. Đọc nội dung 1 file
#include <stdio.h>

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");
}
6. Chọn ổ đĩa trong DOS
#include <stdio.h>
#include <dir.h>

void main(void)
{
int drives;

drives = setdisk(3);
printf("The number of available drives is %d\n", drives);
}
7.Chọn ổ đĩa trong WINS
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

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 < 32; nDrive++)
       {
        if (dwLogicalDrives & (1 << nDrive))
          { // Is drive available?
            AvailDrive++;
            // Get disk information.
            wsprintf(szBuffer, "%c:\\", nDrive+'A', '\0');
            // Print out information.
             if(SetCurrentDirectory(szBuffer))
              printf("%s Is Now Current\n", szBuffer);
             else
              printf("Could not set %s as the current drive\n", szBuffer);
          }
       }
      printf("Number of drives available: %d\n", AvailDrive);

 }
8. Cho biết kích thước 1 file
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>

int main()
{
int fp;

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<alloc.h>
#include<stdio.h>
#include<conio.h>
//=======================================
void taolap(int *A,int n)
  {
    int i;
    printf("\n Tao lap day so:\n");
    for(i=0;i<n;i++)
      {
	printf("\n A[%d]=",i);
	scanf("%d",&A[i]);
      }
  }
void dayso(int *A,int n)
  {
    int i;
    for(i=0;i<n;i++)
      printf("%5d",A[i]);
  }

void select(int *A,int n)
  {
    int i,j,temp;
    for(i=0;i<n-1;i++)
      {
	for(j=i+1;j<n;j++)
	  {
	    if(A[i]>A[j])
	      {
		temp=A[i];
		A[i]=A[j];
		A[j]=temp;
	      }
	  }
       }
    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<n;i++)
    printf("%5d",A[i]);
  }
void tructiep()
  {
    clrscr();
    int *A,i,j,n,temp;
    printf("\n SAP XEP KIEU TRUC TIEP\n");
    printf("\n\t SAP XEP KIEU TRUC TIEP\n");
    printf("\n Nhap 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("\n A[%d]=",i);
	scanf("%d",&A[i]);
      }
    for(i=1;i<n;i++)
      {
	temp=A[i];
	for(j=i-1;j>=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)
  {

    int i;
    printf("\n");
    printf("\n Tao lap day so:\n");
    for(i=0;i<n;i++)
      {
	printf("\n A[%d]=",i);
	scanf("%d",&A[i]);
      }
  }
void in1(int *A,int n)
  {
    int i;
    for(i=0;i<n;i++)
    printf("%5d",A[i]);
  }

void bubble(int *A,int n)
  {
    int i,j,temp;
    for(i=1;i<n;i++)
      {
	for(j=n-1;j>=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
      {
	while(A[i]<x&&i<right)i++;
	while(A[j]>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;
    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);
  }

//=======================================
void in5(int *A,int n)
  {
    for(int i=0;i<n;i++)
      printf("%5d",A[i]);
  }
void shaker(int *A,int n)
  {
    int i,j,temp,tdoi;
    do
      {
	tdoi=0;
	for(i=n-1;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<n;j++)
	  {
	    if(A[j-1]>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);
  }


//=======================================
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();
	       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();
  }
Một ví dụ về Đa hình
#include <iostream.h>
#include <conio.h>
#include <math.h>
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:
      
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() { 0;}
       
hinhtron(float bk) {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)
      {
               
x;
      }
      
float chuvi()
      {
          return 
a*4;
      }
      
float dientich()
      {
              return 
a*a;
      }
      
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"; }
};

void main()
{
   
hinhve *p;
   
= new hinhtron(3);
   
p->in();
   
delete p;
   
= new lapphuong(3);
   
-> in();
   
delete p;
   
= new cau(3);
   
-> in();
   
delete p;
   
= new tgdeu(5);
   
-> in();
   
delete p;
   
= new hinhvuong(6);
   
-> in();
   
getch();

Tiếp một ví dụ về Đa hình
#include <iostream.h>
#include <conio.h>
#include <math.h>

class 
Point
{
      private:
       
int xint y
;
   public:
       
Point
()
      {
            
00
;
      }
       
Point(int a,int b
)
      {
            
ab
;
      }
      
virtual void set(int a,int b
)
      {
            
ab
;
      }
      
float gettung
()
      {
            return 
y
;
      }
      
float gethoanh
()
      {
            return 
x
;
      }
      
float kc(Point t
)
      {
             return ((
t.x)*(t.x) + (t.y)*(t.y
));
      }
      
virtual void in
()
      {
            
cout<<"\n("<<x<<";"<<y<<")"
;
      }
};
class 
Cpoint : protected 
Point
{
    private:
       
int mau
;
   public:
      
Cpoint() : Point
()
      {
             
mau 0
;
      }
       
Cpoint(int a,int b,int mau_) : Point(a,b
)
      {
             
mau mau_
;
      }
      
void set(int a,int b,int mau_
)
      {
            
Point::set(a,b
);
          
mau mau_
;
      }
      
void in
()
      {
             
Point::in
();
               
cout<<" Co mau la "<<mau
;
      }
} ;

void main
()
{
    
Point *p
;
   
= new Cpoint(3,5,6
);
   
p->in
();
   
delete p
;
   
= new Point(5,2
);
   
p->in
();
   
getch
();

Tổng hai ma trận

PHP Code:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
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<<"Moi ban nhap vao ma tran a: \n";
   
cout<<"Nhap vao so hang cua ma tran a: ";
   
cin>>hang1;
   
cout<<"Nhap vao so cot cua ma tran a: ";
   
cin>>cot1;
   
nhapmt(a,hang1,cot1);
   
inmt(a,hang1,cot1);

   
int hang2,cot2;
   
cout<<"Moi ban nhap vao ma tran b: \n";
   do
   {
       
cout<<"Nhap vao so hang cua ma tran b: ";
       
cin>>hang2;
   }while(
hang2 != hang1);
   do
   {
       
cout<<"Nhap vao so cot cua ma tran b: ";
       
cin>>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=0i<hangi++)
        for (
int j=0j<cotj++)
          
c[i][j] = a[i][j] + b[i][j];
}

void nhapmt(float a[][10],int hang,int cot)
{
     for(
int i 0;hang;i++)
   {
       for(
int j 0cotj++)
      {
           
cout<<"Nhap vao phan tu ["<<i<<";"<<j<<"]: ";
         
cin>>a[i][j];
      }
   }
}

void inmt(float a[][10],int hang,int cot)
{
     for(
int i 0hangi++)
   {
        for(
int j 0cotj++)
      {
           
cout<<a[i][j]<<"\t";
      }
      
cout<<endl;
   }

Đếm số lần xuất hiện của các ký tự trong chuỗi


#include <stdio.h>
#include <ctype.h>

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();
}
 
Hiện bảng mã ASCII

#include <stdio.h>
#include <conio.h>

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();
}
 
Nhập chuỗi và in chuỗi


#include <stdio.h>
#include <conio.h>

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 <stdio.h>
#include <conio.h>

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();
}
Chương trình đếm số ký tự trong một chuỗi ASCII

#include <stdio.h>
#include <ctype.h>
#include<conio.h>
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();
}
 
Đảo 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;
}

void main()
{
  char hello[] = "Hello World";
  char *s;

  printf("\nChuoi ban dau = %s", hello);
  s = dnchuoi(hello);
  printf("\nChuoi dao nguoc = %s", s);
  getch();
}

Loại bỏ khoảng trống thừa trong chuỗi
#include <stdio.h>
#include <string.h>
#include <conio.h>
#pragma warn -pia

char *trim(char *chuoi
)
{
   
char *p
;
   while (
strstr(chuoi"  "
))
     
memmove(pp+1strlen(chuoi) - (chuoi
));
   if (
chuoi[0] == ' '
)
     
memmove(chuoichuoi+1strlen(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
();
}  

Bội số chung và ước số chung

#include <stdio.h>
#include <conio.h>
unsigned USCLN (unsigned nunsigned m
)
{
  while (
!= && != 0
)
    if (
n>m
)
      
-= m
;
    else
      
-= n
;
  if (
== 0
)
    return 
m
;
  else
    return 
n
;
}

unsigned BSCNN (unsigned nunsigned m
)
{
  return 
USCLN(nm
);
}

void main
()
{
  
unsigned nm
;

  
printf("\nNhap hai vao so nguyen duong : "
);
  
scanf("%u%u", &n, &m
);
  
printf("\nUSCLN cua %u va %u = %u"nmUSCLN(n,m
));
  
printf("\nBSCNN cua %u va %u = %u"nmBSCNN(n,m
));
  
getch
();

Trộn 2 dãy giảm thành một dãy tăng
#include <stdio.h>
#include <conio.h>
#define MAX 10

void main
()
{
  
int a[MAX], b[MAX], c[2*MAX], n1n2ii1i2
;

  
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=0i<n1i
++)
    
scanf("%d", &a[i
]);
  
printf("\nCho biet so phan tu cua mang thu hai : "
);
  
scanf("%d", &n2
);
  
printf("Nhap vao cac phan tu (giam dan) cua mang thu hai : "
);
  for (
i=0i<n2i
++)
    
scanf("%d", &b[i
]);
  
i1 n1-1
;
  
i2 n2-1
;
  for (
i=0i<n1 n2i
++)
  {
    if (
i1 || i2 0
)
      break;
    if (
a[i1] < b[i2
])
      {
        
c[i] = a[i1
];
        
i1
--;
      }
      else
      {
        
c[i] = b[i2
];
        
i2
--;
      }
  }
  if (
i1 >= 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=0i<n1+n2i
++)
    
printf("%d "c[i
]);
  
getch
();

Tính tích 2 ma trận:
#include<conio.h>
#include<stdio.h>
#include<alloc.h>
void main
()
{
int *a,*b,*c
;
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
();

Tìm phần tử lớn nhất nhỏ nhất trong mảng một chiều

#include <conio.h>
#include <stdlib.h>

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];
   for (i=1; i<20; i++)
   {
     if (maxval < mang[i])
       maxval = mang[i];
     else if (minval > mang[i])
       minval = mang[i];
   }

   /* In mang */
   clrscr();
   for (i=0; i<20; i++)
   {
     if (mang[i] == maxval)
       textcolor(YELLOW);
     else if (mang[i] == minval)
       textcolor(RED);
     else
       textcolor(WHITE);
     cprintf("%3d", mang[i]);
   }

   getch();
}
Bài kiểm tra số nguyên tố
/*Ham tinh so nguyen to */
#include<iostream.h>
#include<conio.h>
#include<math.h>
bool LaNguyenTo(int n);
void main()
{
int n;
   cout<<"Nhap vao mot so bat ky: ";cin>>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;}
   else
      {
   for(int i=2;i<=sqrt(n)+1;i++)
   {
   if(n%i==0)
      {
    co=false;
      break;
      }
   }
   }
   return co;
}
 
Kiểm tra số đối xứng

#include<iostream.h>
#include<conio.h>
#include<math.h>
long songuoc(long a);
void main()
{
long n;
   do
   {
cout<<"Nhap vao mot so bat ky: ";
   cin>>n;
   }while(n<0);
   if(n==songuoc(n))
   cout<<"La so doi xung";
   else
   cout<<"Khong la so doi xung";
   getch();
}
long songuoc(long a)
{
int tg;
   if (a > 0)
{
while (a > 0)
{
tg= a%10;
a = a / 10;
}
}
   return tg;
}
 
Trộn hai mảng tăng dần thành một mảng tăng dần

#include <stdio.h>

#define MAX 10

void main()
{
  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; i++)
    scanf("%d", &a[i]);
  printf("\nCho biet so phan tu cua mang thu hai : ");
  scanf("%d", &n2);
  printf("Nhap vao cac phan tu (tang dan) cua mang thu hai : ");
  for (i=0; i<n2; i++)
    scanf("%d", &b[i]);
  i1 = i2 = 0;
  for (i=0; i<n1 + n2; i++)
  {
    if (i1 >= n1 || i2 >= n2)
      break;
    if (a[i1] < b[i2])
      {
        c[i] = a[i1];
        i1++;
      }
      else
      {
        c[i] = b[i2];
        i2++;
      }
  }
  if (i1 < n1)
    while (i1 < n1)
      c[i++] = a[i1++];
  if (i2 < n2)
    while (i2 < n2)
      c[i++] = b[i2++];
  printf("\nCac phan tu cua mang tron : ");
  for (i=0; i<n1+n2; i++)
    printf("%d ", c[i]);
  getch();
}
 
Tính x^1/1! + x^2/2! + x^3/3! + ... + x^n/n!

#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
float x,tong=0.0,n,tg,mu=1.0,gt=1.0;
   cout<<"Nhap vao mot so thuc x= ";cin>>x;
   cout<<"Nhap vao n= ";cin>>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<<"!"<<" + ";
   }
   cout<<x<<" = "<<(tong);
   getch();
}
 
Kiểm tra ma trận B có là ma trận con của ma trận A hay ko :
#include<stdio.h>
#include<conio.h>

#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()
{
    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();
}
Comments