Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 1/31
Ví dụ 01:
#include <stdio.h>
#include <conio.h>
void main()
{
int x,y;
x=5;
y=~x;
printf("Dao bit: %d",y);
getch();
}
Ví dụ 02:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
void main()
{
int x,y;
x=5;
y=x&6;
printf("and bit: %d",y);
system("PAUSE");
}
Ví dụ 03:
#include <stdio.h>
#include <conio.h>
void main()
{
int x;
x=printf("Ma dinh dang \\\" in ra ky tu \" .\n");
printf("so ky tu in ra: %d",x);
getch();
}
Ví dụ 04:
#include <stdio.h>
#include <conio.h>
int max(int a,int b,int c);
void main()
{
int kq;
kq=max(4,6,9);
printf("max(%d,%d,%d)=%d",4,6,9,kq);
getch();
}
int max(int a,int b,int c)
{
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 2/31
int kq;
kq=a;
if(b>kq)
kq=b;
if(c>kq)
kq=c;
return kq;
}
Ví dụ 05:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void PTBI(char kq[],float a,float b);
void PTB2(char kq[],float a,float b,float c);
void GhiFile(char fileName[],char str[]);
void main()
{
printf("Day la chuong trinh giai phuong trinh ax^2+bx+c=0\n");
float a,b,c;
printf("Nhap a: ");scanf("%f",&a);
printf("Nhap b: ");scanf("%f",&b);
printf("Nhap c: ");scanf("%f",&c);
char kq[100];
PTB2(kq,a,b,c);
GhiFile("xuat.txt",kq);
getch();
}
void PTB2(char kq[],float a,float b,float c)
{
if(a==0)
PTBI(kq,b,c);
else
{
float delta=b*b-4*a*c;
if(delta<0)
sprintf(kq,"Phuong trinh vo nghiem!");
else
{
if(delta==0)
sprintf(kq,"Nghiem kep: x1 = x2 = %.2f",-b/(2*a));
else
{
float x1,x2;
x1=(-b-(float)sqrt(delta))/(2*a);
x2=(-b+(float)sqrt(delta))/(2*a);
sprintf(kq,"PT co 2 nghiem phan biet: x1 =%.2f, x2=%.2f",x1,x2);
}
}
}
}
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 3/31
void GhiFile(char fileName[],char str[])
{
FILE *f;
f=fopen(fileName,"wt");
fprintf(f,"%s",str);
fclose(f);
}
void PTBI(char kq[],float a,float b)
{
if(a!=0)
sprintf(kq,"Nghiem cua phuong trinh la: x = %.2f",-b/a);
else
{
if(b==0)
sprintf(kq,"Phuong trinh vo dinh!");
else
sprintf(kq,"Phuong trinh vo nghiem!");
}
}
Hướng dẫn tạo menu:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define ESC 27
char menu();
void main()
{
char ch='1';
do{
ch=menu();
if (ch=='1')
{
//Cac cau lenh cho menu 1
printf("Dang thuc hien tac vu 1.");
}
if (ch=='2')
{
//Cac cau lenh cho menu 2
printf("Dang thuc hien tac vu 2.");
}
if (ch=='3')
{
//Cac cau lenh cho menu 3
printf("Dang thuc hien tac vu 3.");
}
printf("\nESC to exit!\n");
}while(getch()!=ESC);
}
char menu()
{
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 4/31
char ch;
system("cls");
printf("1. Tac vu 01!\n");
printf("2. Tac vu 02!\n");
printf("3. Tac vu 03!\n");
ch=getch();
return ch;
}
Ví dụ 06:
#include <stdio.h>
#include <conio.h>
void HPT(char kq[],float a1,float b1,float c1,float a2,float b2,float c2);
void GhiFile(char fileName[],char str[]);
void main()
{
printf("Chuong trinh giai HPT bac nhat:\n");
printf("a1x+b1y=c1\na2x+b2y=c2\n");
float a1,b1,c1,a2,b2,c2;
printf("Nhap a1,b1,c1:");
scanf("%f%f%f",&a1,&b1,&c1);
printf("Nhap a2,b2,c2:");
scanf("%f%f%f",&a2,&b2,&c2);
char ketqua[100];
HPT(ketqua,a1,b1,c1,a2,b2,c2);
printf("%s",ketqua);
GhiFile("hpt.txt",ketqua);
printf("\nKet qua da ghi vao file \"hpt.txt\"\n");
getch();
}
void GhiFile(char fileName[],char str[])
{
FILE *f;
f=fopen(fileName,"wt");
fprintf(f,"%s",str);
fclose(f);
}
void HPT(char kq[],float a1,float b1,float c1,float a2,float b2,float c2)
{
float d,dx,dy;
d=a1*b2-a2*b1;
dx=c1*b2-c2*b1;
dy=a1*c2-a2*c1;
if(d!=0)
sprintf(kq,"He co nghiem: (x,y)=(%.2f,%.2f)",dx/d,dy/d);
else
{
if(dx!=0 || dy!=0)
sprintf(kq,"He vo nghiem!");
else
sprintf(kq,"He vo dinh!");
}
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 5/31
return;
}
Ví dụ 07:
#include <stdio.h>
#include <conio.h>
void XepLoai(char ketqua[], float);
void main()
{
float dtb;
printf("Chuong trinh xep loai hoc tap!");
printf("Nhap dtb:");
scanf("%f",&dtb);
char kq[100];
XepLoai(kq,dtb);
printf("Dtb: %.2f xep loai: %s",dtb,kq);
getch();
}
void XepLoai(char kq[],float dtb)
{
if(dtb>=9)
sprintf(kq,"Xuat sac");
else
if(dtb>=8)
sprintf(kq,"Gioi");
else
if(dtb>=7)
sprintf(kq,"Kha");
else
if(dtb>=5)
sprintf(kq,"Trung binh");
else
if(dtb>=3)
sprintf(kq,"Yeu");
else
sprintf(kq,"Kem!");
return;
}
Ví dụ 08:
#include <stdio.h>
#include <conio.h>
int TienDien(int);
void main()
{
long sokw,tienphaitra;
printf("Nhap vao sokw: ");
scanf("%ld",&sokw);
tienphaitra=TienDien(sokw);
printf("So tien phai tra: %ld",tienphaitra);
getch();
}
int TienDien(int sokw)
{
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 6/31
int sotien=0;
if(sokw<0)
return 0;
if(sokw<=50)
sotien=sokw*500;
else
if(sokw<=100)
sotien=50*500+(sokw-50)*750;
else
if(sokw<=150)
sotien=50*500+50*750+(sokw-100)*1000;
else
if(sokw<=200)
sotien=50*500+50*750+50*1000+(sokw-150)*1500;
else
sotien=50*500+50*750+50*1000+50*1500+(sokw-200)*2000;
return sotien;
}
Ví dụ 09:
#include <stdio.h>
#include <conio.h>
bool TamGiac(float,float,float);
bool TamGiacDeu(float,float,float);
bool TamGiacCan(float,float,float);
bool TamGiacVuong(float,float,float);
void DangTamGiac(char kq[],float,float,float);
void main()
{
char ketqua[100];
DangTamGiac(ketqua,5,6,7);
printf("%s",ketqua);
getch();
}
void DangTamGiac(char kq[],float a,float b,float c)
{
if(TamGiac(a,b,c)==false)
sprintf(kq,"a,b,c khong phai la 3 canh cua tam giac!");
else
{
if(TamGiacDeu(a,b,c)==true)
sprintf(kq,"Day la tam giac deu!");
else
{
if(TamGiacCan(a,b,c)==true)
{
if(TamGiacVuong(a,b,c)==true)
sprintf(kq,"Tam giac vuong can!");
else
sprintf(kq,"Tam giac Can!");
}
else
{
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 7/31
if(TamGiacVuong(a,b,c)==true)
sprintf(kq,"Tam Giac Vuong!");
else
sprintf(kq,"Tam Giac Thuong!");
}
}
}
}
bool TamGiacVuong(float a,float b,float c)
{
bool kq=false;
if(a*a+b*b==c*c || b*b+c*c==a*a || c*c+a*a==b*b)
kq=true;
return kq;
}
bool TamGiacCan(float a,float b,float c)
{
bool kq=false;
if(a==b || b==c || c==a)
kq=true;
return kq;
}
bool TamGiacDeu(float a,float b,float c)
{
bool kq=false;
if(a==b && b==c)
kq=true;
return kq;
}
bool TamGiac(float a,float b,float c)
{
bool kq=false;
if(a<0 || b<0 || c<0)
return false;
if(a+b>c && b+c>a && c+a>b)
kq=true;
return kq;
}
Ví dụ 10:
#include <stdio.h>
#include <conio.h>
int quy(int thang);
int quy1(int thang);
int quy2(int thang);
void main()
{
int iThang;
printf("Nhap vao 1 thang: ");
scanf("%d",&iThang);
printf("Thang %d thuoc quy: %d.",iThang,quy(iThang));
getch();
}
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 8/31
int quy1(int thang)
{
if(thang>12 || thang<1)
return 0;
else
return ((thang-1)/3+1);
}
int quy2(int thang)
{
switch(thang)
{
case 1:case 2:case 3: return 1;
case 4:case 5:case 6: return 2;
case 7:case 8:case 9: return 3;
case 10:case 11:case 12: return 4;
default: return 0;
}
}
int quy(int thang)
{
int kq;
if(thang >12 || thang<1)
return 0;
if(thang >=10)
kq=4;
else
if(thang>=7)
kq=3;
else
if(thang>=4)
kq=2;
else
kq=1;
return kq;
}
Ví dụ 11:
#include <stdio.h>
#include <conio.h>
void In(char ch,int n);
void InHCN(char ch,int m,int n);
void InHCNRong(char ch,int m,int n);
void InTamGiac(char ch,int h);
void InTamGiacRong(char ch,int h);
void main()
{
InTamGiacRong('*',40);
}
void InTamGiacRong(char ch,int h)
{
for(int i=1;i<=h;i++)
{
In(' ',h-i);
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 9/31
if(i==1 || i==h)
In(ch,2*i-1);
else
{
In(ch,1);In(' ',2*i-3);In(ch,1);
}
printf("\n");
}
}
void InTamGiac(char ch,int h)
{
for(int i=1;i<=h;i++)
{
In(' ',h-i);
In(ch,2*i-1);
printf("\n");
}
}
void In(char ch,int n)
{
for(int i=1;i<=n;i++)
printf("%c",ch);
}
void InHCNRong(char ch,int m,int n)
{
for(int i=1;i<=m;i++)
{
if(i==1 || i==m)
{
In(ch,n);
}
else
{
In(ch,1);In(' ',n-2);In(ch,1);
}
printf("\n");
}
}
void InHCN(char ch,int m,int n)
{
for(int i=1;i<=m;i++)
{
In(ch,n);
printf("\n");
}
}
Ví dụ 12:
#include <stdio.h>
#include <conio.h>
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 10/31
int TongN(int n);
int Tong2N(int n);
int TongN2(int n);
int TongLH(int n);
float TongPS(int n);
int TongNso(int n);
int MaxNso(int n);
void main()
{
}
int MaxNso(int n)
{
int max;
int x;
printf("Nhap x: ");
scanf("%d",&x);
max=x;
for(int i=2;i<=n;i++)
{
printf("Nhap x: ");
scanf("%d",&x);
if(x>max)
max=x;
}
return max;
}
int TongNso(int n)
{
int s=0;
int x;
for(int i=1;i<=n;i++)
{
printf("Nhap x: ");
scanf("%d",&x);
s+=x;
}
return s;
}
int TongN(int n)
{
int s=0;
for(int i=1;i<=n;i++)
s+=i;
return s;
}
int Tong2N(int n)
{
int s=0;
for(int i=1;i<=n;i++)
s+=2*i;
return s;
}
int TongN2(int n)
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 11/31
{
int s=0;
for(int i=1;i<=n;i++)
s+=i*i;
return s;
}
int TongLH(int n)
{
int s=0;
for(int i=1;i<=n;i++)
s+=i*(i+1);
return s;
}
float TongPS(int n)
{
float s=0;
for(int i=1;i<=n;i++)
s+=(float)i/(i+1);
return s;
}
Ví dụ 13:
#include <stdio.h>
#include <conio.h>
int fibo(int n);
int f(int n);
void main()
{
int n=5;
printf("f(%d)=%d",n,f(n));
}
int f(int n)
{
if(n==0 || n==1)
return 1;
else
return f(n-1)+f(n-2);
}
int fibo(int n)
{
int f0,f1,f;
f0=f1=f=1;
for(int i=2;i<=n;i++)
{
f=f0+f1;
f0=f1;
f1=f;
}
return f;
}
Ví dụ 14:
#include <stdio.h>
#include <conio.h>
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 12/31
#include <math.h>
typedef struct PS
{
int tu,mau;
}PS;
int ucln(int a,int b);
void GhiFile(char fileName[],char str[]);
PS Nhap();
void Xuat(PS a);
PS Rutgon(PS ps);
PS operator + (PS a, PS b);
void main()
{
PS a,b,c;
printf("Phan so a ");
a=Nhap();
printf("Phan so b ");
b=Nhap();
c=a+b;
printf("Tong: ");
Xuat(c);
getch();
}
PS operator +(PS a,PS b)
{
PS kq;
kq.tu=a.tu*b.mau+a.mau*b.tu;
kq.mau=a.mau*b.mau;
kq=Rutgon(kq);
return kq;
}
PS Rutgon(PS a)
{
int uc;
uc=ucln(a.tu,a.mau);
a.tu/=uc;
a.mau/=uc;
return a;
}
void Xuat(PS a)
{
printf("%d/%d",a.tu,a.mau);
}
PS Nhap()
{
PS a;
printf("tu/mau:");
scanf("%d/%d",&a.tu,&a.mau);
return a;
}
void GhiFile(char fileName[],char str[])
{
FILE *f;
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 13/31
f=fopen(fileName,"wt");
fprintf(f,"%s",str);
fclose(f);
}
int ucln(int a,int b)
{
a=abs(a);
b=abs(b);
int r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
Ví dụ 15:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define ESC 27
bool ngto(int n);
int TongNT(int n);
void main()
{
int n;
do{
system("CLS");
printf("Day la chuong trinh kiem tra so nguyen to!\n");
printf("Nhap vao n: ");
scanf("%d",&n);
if(ngto(n)==true)
printf("%d la so nguyen to!",n);
else
printf("%d khong phai la so nguyen to!",n);
int s;
s=TongNT(n);
printf("\nTong cac so nguyen to <=%d: %d",n,s);
printf("\nPress ESC to exit!\n");
}while(getch()!=ESC);
}
int TongNT(int n)
{
int s=0;
for(int i=2;i<=n;i++)
if(ngto(i)==true)
s+=i;
return s;
}
bool ngto(int n)
{
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 14/31
for(int i=2;i<=n-1;i++)
if(n%i==0)
return false;
return true;
}
Ví dụ 16:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define ESC 27
void TSNT(int n);
void main()
{
int n;
do{
system("CLS");
printf("Phan tich thua so nguyen to!\n");
printf("Nhap n: ");
scanf("%d",&n);
TSNT(n);
printf("\nPress ESC to exit!\n");
}while(getch()!=ESC);
}
void TSNT(int n)
{
int i=2;
while(n>1)
{
while(n%i==0)
{
printf("%d*",i);
n=n/i;
}
i++;
}
}
Ví dụ 17:
#include <stdio.h>
#include <conio.h>
void HoanVi(int &a,int &b);
void HoanVi(int *a,int *b);
void main()
{
int x,y;
x=7; y=5;
HoanVi(x,y);
printf("x=%d, y=%d\n",x,y);
HoanVi(&x,&y);
printf("x=%d, y=%d\n",x,y);
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 15/31
getch();
}
void HoanVi(int &a,int &b)
{
int tam=a;a=b;b=tam;
}
void HoanVi(int *a,int *b)
{
int tam=*a;*a=*b;*b=tam;
}
Ví dụ 18:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
void vidu01();
void vidu02();
void main()
{
vidu01();
vidu02();
}
void vidu02()
{
int *x;
x=new int;
*x=5;
cout<<"Gia tri cua x: "<<x<<endl;
cout<<"Gia tri cua vung nho tai dia chi x: "<<*x;
//printf("Gia tri tai vung nho co dia chi x: %d\n",*x);
delete x;
}
void vidu01()
{
int a=7,b=9;
int *x;
x=&a;
*x=15;
printf("a=%d\n",a);
x=&b;
*x+=5;
printf("b=%d\n",b);
}
Ví dụ 19:
#include <stdio.h>
#include <conio.h>
void Nhap(int a[],int n);
void Xuat(int a[],int n);
void HoanVi(int &a,int &b);
void SapXep(int a[],int n);
void main()
{
int a[100];
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 16/31
int n=5;
Nhap(a,n);
printf("Mang vua nhap: \n");
Xuat(a,n);
SapXep(a,n);
printf("\nMang sau khi sap xep: \n");
Xuat(a,n);
getch();
}
void HoanVi(int &a,int &b)
{
int tam=a;a=b;b=tam;
}
//Interchange
void SapXep(int a[],int n)
{
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j])
HoanVi(a[i],a[j]);
}
void Xuat(int a[],int n)
{
for(int i=0;i<n;i++)
printf("%d\t",a[i]);
}
void Nhap(int a[],int n)
{
for(int i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
Ví dụ 20:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
void vidu01();
void vidu02();
void main()
{
vidu02();
}
void vidu02()
{
int a[100];
int *x;
x=a;
x[0]=1;
cout<<"Gia tri cua a[0]: "<<a[0]<<endl;
*x=4;
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 17/31
cout<<"Gia tri cua a[0]: "<<a[0]<<endl;
*(a+1)=32;
cout<<"Gia tri cua a[1]: "<<a[1]<<endl;
}
void vidu01()
{
int a[100];
cout<<"Gia tri cua a: "<<a<<endl;
cout<<"Dia chi cua a[0]: "<<&a[0]<<endl;
cout<<"Dia chi cua a[1]: "<<&a[1]<<endl;
cout<<"Dia chi cua a[99]: "<<&a[99]<<endl;
getch();
}
Ví dụ 21:
#include <stdio.h>
#include <conio.h>
void LoiChao();
void Nhap(int a[],int n);
void Xuat(int a[],int n);
bool Ngto(int n);
void HoanVi(int &a,int &b);
int TongNgTo(int a[],int n);
void SapXep(int a[],int n);
void DaoNguoc(int a[],int n);
void main()
{
LoiChao();
int n;
int a[100];
printf("Nhap vao n: ");
scanf("%d",&n);
Nhap(a,n);
printf("Mang vua nhap la: \n");
Xuat(a,n);
int tong;
tong=TongNgTo(a,n);
printf("\nTong cac so nguyen to trong mang: %d",tong);
SapXep(a,n);
printf("\nMang sau khi sap xep la: \n");
Xuat(a,n);
DaoNguoc(a,n);
printf("\nMang sau khi dao nguoc: \n");
Xuat(a,n);
}
void DaoNguoc(int a[],int n)
{
for(int i=0;i<n/2;i++)
HoanVi(a[i],a[n-1-i]);
}
bool Ngto(int n)
{
if(n<2)
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 18/31
return false;
for(int i=2;i<=n-1;i++)
if(n%i==0)
return false;
return true;
}
int TongNgTo(int a[],int n)
{
int s=0;
for(int i=0;i<n;i++)
if(Ngto(a[i]))
s+=a[i];
return s;
}
void LoiChao()
{
printf("*******************************\n");
printf("* Truong Dai Hoc Sp. Tp. HCM *\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("*******************************\n");
}
void HoanVi(int &a,int &b)
{
int tam=a;a=b;b=tam;
}
//Interchange
void SapXep(int a[],int n)
{
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j])
HoanVi(a[i],a[j]);
}
void Xuat(int a[],int n)
{
for(int i=0;i<n;i++)
printf("%d\t",a[i]);
}
void Nhap(int a[],int n)
{
for(int i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
Ví dụ 22:
typedef struct PHANSO
{
int tu, mau;
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 19/31
}PHANSO;
#include <stdio.h>
void main()
{
PHANSO *a;
a=new PHANSO;
a->tu=5;//(*a).tu=5;
a->mau=7;//(*a).mau=7;
printf("Phan so: %d/%d",a->tu,a->mau);
delete a;
}
Ví dụ 23:
#include <stdio.h>
#include <conio.h>
typedef struct PT
{
float a,b,c;
}PT;
PT Nhap(char ghichu[]);
void HPT(char kq[],PT pt1,PT pt2);
void HPT(char kq[],float a1, float b1, float c1, float a2, float b2, float c2);
void GhiFile(char fileName[],char str[]);
void main()
{
//float a1,b1,c1,a2,b2,c2;
char kq[100];
//printf("Day la chuong trinh giai hpt bac 1. \n");
//printf("Nhap a1,b1,c1: ");
//scanf("%f%f%f",&a1,&b1,&c1);
//printf("Nhap a2,b2,c2: ");
//scanf("%f%f%f",&a2,&b2,&c2);
//HPT(kq,a1,b1,c1,a2,b2,c2);
//PT pt1,pt2;
//printf("Nhap he so cua pt1: ");
//scanf("%f%f%f",&pt1.a,&pt1.b,&pt1.c);
//printf("Nhap he so cua pt2: ");
//scanf("%f%f%f",&pt2.a,&pt2.b,&pt2.c);
//HPT(kq,pt1,pt2);
PT pt1,pt2;
pt1=Nhap("Nhap pt1: ");
pt2=Nhap("Nhap pt2: ");
HPT(kq,pt1,pt2);
printf("%s",kq);
getch();
}
PT Nhap(char ghichu[])
{
PT kq;
printf("%s",ghichu);
scanf("%f%f%f",&kq.a,&kq.b,&kq.c);
return kq;
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 20/31
}
void HPT(char kq[],PT pt1,PT pt2)
{
if(pt1.a*pt1.a+pt1.b*pt1.b==0 || pt2.a*pt2.a+pt2.b*pt2.b==0)
{
sprintf(kq,"Du lieu vao khong hop le!");
return;
}
float d,dx,dy;
d=pt1.a*pt2.b-pt2.a*pt1.b;
dx=pt1.c*pt2.b-pt2.c*pt1.b;
dy=pt1.a*pt2.c-pt2.a*pt1.c;
if(d!=0)
sprintf(kq,"Nghiem:(x,y)=(%.2f,%.2f)",dx/d,dy/d);
else
{
if(dx!=0 || dy!=0)
sprintf(kq,"He phuong trinh vo nghiem!");
else
sprintf(kq,"He phuong trinh vo dinh!");
}
}
void HPT(char kq[],float a1, float b1, float c1, float a2, float b2, float c2)
{
if(a1*a1+b1*b1==0 || a2*a2+b2*b2==0)
{
sprintf(kq,"Du lieu vao khong hop le!");
return;
}
float d,dx,dy;
d=a1*b2-a2*b1;
dx=c1*b2-c2*b1;
dy=a1*c2-a2*c1;
if(d!=0)
sprintf(kq,"Nghiem:(x,y)=(%.2f,%.2f)",dx/d,dy/d);
else
{
if(dx!=0 || dy!=0)
sprintf(kq,"He phuong trinh vo nghiem!");
else
sprintf(kq,"He phuong trinh vo dinh!");
}
}
void GhiFile(char fileName[],char str[])
{
FILE *f;
f=fopen(fileName,"at");
fprintf(f,"%s",str);
fclose(f);
}
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 21/31
Ôn tập
Bài 01:
#include <stdio.h>
#include <conio.h>
#include <math.h>
typedef struct PS
{
int tu,mau;
}PS;
PS Nhap();
void Xuat(PS a);
int ucln(int a, int b);
PS Rutgon(PS a);
PS operator +(PS a, PS b);
bool operator <(PS a, PS b);
PS operator +(PS a, int b);
PS operator +(int a, PS b);
PS operator +=(PS &a,PS b);
PS operator +=(PS &a, int b);
void Nhap(PS a[],int n);
void Xuat(PS a[],int n);
PS Tong(PS a[],int n);
void Tang(PS a[],int n,int d=1);
void SapXep(PS a[],int n);
void HoanVi(PS &a, PS &b);
void main()
{
PS a[100];
int n;
printf("Nhap n: ");scanf("%d",&n);
Nhap(a,n); Xuat(a,n); printf("\n");
printf("Mang sau khi sap xep: ");
SapXep(a,n); Xuat(a,n); printf("\n");
PS kq=Tong(a,n);printf("Tong cac ps: ");Xuat(kq);printf("\n");
Tang(a,n);printf("Mang sau khi tang: ");Xuat(a,n);
getch();
}
void Tang(PS a[],int n, int d)
{
for(int i=0;i<n;i++)
a[i]+=d;
}
PS Tong(PS a[],int n)
{
PS kq;kq.tu=0;kq.mau=1;
for(int i=0;i<n;i++)
kq+=a[i];
return kq;
}
void Xuat(PS a[], int n)
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 22/31
{
for(int i=0;i<n;i++)
{
printf("\t");
Xuat(a[i]);
}
}
void Nhap(PS a[],int n)
{
for(int i=0;i<n;i++)
{
printf("Nhap ps thu %d: ",i);
a[i]=Nhap();
}
}
PS operator +=(PS &a, int b)
{
a=a+b;
return a;
}
PS operator +=(PS &a, PS b)
{
a=a+b;
return a;
}
PS operator +(int a, PS b)
{
return (b+a);
}
PS operator +(PS a, int b)
{
PS kq;
kq.tu=a.tu+b*a.mau;
kq.mau=a.mau;
return kq;
}
PS operator +(PS a, PS b)
{
PS kq;
kq.tu=a.tu*b.mau+b.tu*a.mau;
kq.mau=a.mau*b.mau;
kq=Rutgon(kq);
return kq;
}
PS Rutgon(PS a)
{
int uc=ucln(a.tu,a.mau);
a.tu/=uc;
a.mau/=uc;
return a;
}
int ucln(int a,int b)
{
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 23/31
a=abs(a);b=abs(b);
if(b==0)
return a;
else
return ucln(b,a%b);
}
void Xuat(PS a)
{
printf("%d/%d",a.tu,a.mau);
}
PS Nhap()
{
PS a;
do{
printf("tu/mau:");
scanf("%d/%d",&a.tu,&a.mau);
}while(a.mau==0);
return a;
}
void SapXep(PS a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[j]<a[i])
HoanVi(a[i],a[j]);
}
bool operator <(PS a, PS b)
{
float x1,x2;
x1=(float)a.tu/a.mau;
x2=(float)b.tu/b.mau;
if(x1<x2)
return true;
return false;
}
void HoanVi(PS &a, PS &b)
{
PS tam=a;a=b;b=tam;
}
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 24/31
Bài 02:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
typedef struct HS
{
char HoTen[50];
float DTB;
char MAHS[30];
}HS;
void SapXep(HS a[],int n);
void HoanVi(HS &a,HS &b);
void Xuat(HS a[],int n);
void Nhap(HS a[],int n);
void Xuat(HS a);
HS Nhap();
void main()
{
HS a[100];
int n=3;
Nhap(a,n);
SapXep(a,n);
Xuat(a,n);
getch();
}
void SapXep(HS a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(a[j].HoTen,a[i].HoTen)<0)
HoanVi(a[i],a[j]);
}
void HoanVi(HS &a,HS &b)
{
HS tam=a;a=b;b=tam;
}
void Xuat(HS a[],int n)
{
for(int i=0;i<n;i++)
Xuat(a[i]);
}
void Nhap(HS a[],int n)
{
for (int i=0;i<n;i++)
{
printf("Nhap hoc sinh thu %d:\n",i);
a[i]=Nhap();
}
Các ví dụ trong môn lập trình với C, C++
Trần Phước Tuấn 25/31
}
void Xuat(HS a)
{
printf("%-10s%-20s%-15.2f\n",a.MAHS,a.HoTen,a.DTB);
}
HS Nhap()
{
HS a;
printf("\tMa: "); fflush(stdin); gets(a.MAHS);
printf("\tHo va ten: "); fflush(stdin); gets(a.HoTen);
printf("\tDTB: "); scanf("%f",&a.DTB);
return a;
}
Bài tập phát triển thêm: (Bài tập bắt buộc – Nhóm tối đa 2 sinh viên)
Th
ực hiện bài tập quản lý sinh viên với các tính năng:
1. Thêm vào Danh sách học sinh
2. Xóa trong danh sách học sinh
a. Xóa 1 học sinh
b. Xóa tất cả các học sinh
3. Sửa Danh sách học sinh
4. Lưu danh sách học sinh (Lưu xuống file gõ tên tập tin để lưu)
5. Xem danh sách học sinh
a. Xem toàn bộ theo thứ tự trong tập tin
b. Sắp xếp theo họ tên, mã
c. Xem h
ọc sinh theo điểm trung bình, giới tính, …
6. Mở danh sách có sẳn trên máy (gõ vào tên tập tin)
Các kiến thức liên quan cần tìm hiểu để giải quyết bài này:
1. M
ảng
2. Vòng lặp
3. Cấu trúc
4. Đọc ghi file (văn bản)
5. Các hàm xử lý chuổi
Tiêu chí đánh giá:
1. Tính ti
ện lợi cho người sử dụng (5đ)
2. T
ổ chức chương trình tối, khai báo cấu trúc dữ liệu hợp lý, … (3đ).
3. Tính thẩm mỹ của giao diện (2đ)