Tải bản đầy đủ (.pdf) (31 trang)

Ví dụ lập t rình C++

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (153.53 KB, 31 trang )

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đ)

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×