Phương Pháp Lập Trình

Môn học PPLT

Thầy Lãm

Lịch thi lại đã có sang thứ 4 ngày 5/12 phòng h4.1 các em nhớ đóng tiền thi lại trước mới có trong danh sách thi lai

Các sinh viên nhập học trể phải đi thêm nhóm 4 các thầy cô sẽ dạy lại từ đầu cho các em. Rất mong các em đi học đông đủ để không mất bài.

Code mãu bài Struct và file

Bài CHUONG9_File

Bài Giảng NMLT_C10_CauTruc

Bài giảng cNMLT_C11_ConTroCoBan và NMLT_C13_ConTroNangCao

slide bài giảng C07_Mang1ChieuC07_Mang2Chieu

Danh sách đã chia nhóm lớpTCTH40A_26_9các bạn căn cứ vào đây để áp dụng nhóm cho các môn khác.

Danh sách sinh viên được dự thi cuối kỳ lớp BangDiemNCTH5APPLT lớp BangDiemNCTH5DPPLT có gì thắc mắc các bạn liện lạc với thầy chậm nhất 12AM thứ 6 ngầy/04/2012

File Text các em tham khảo.

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

//prototype
int GiaTriLonNhat(int a[],int n);
int DemChan(int a[],int n);
int DemLe(int a[],int n);
void XapXep(int a[],int n);
void Tao_File_INPUT_N_Dong(int n);
int Doc_File_INPUT_Vao_Mang(int &n2,int *mang_ngaunhien);
void Tao_File_OUTPUT(int n2,int *mang_ngaunhien);

void main()
{
srand(time(NULL));

//Nhap so nguyen duong n:
int n=0;
do
{
cout<<“Nhap so nguyen duong n:”;
cin>>n;
}
while(n<=0);

Tao_File_INPUT_N_Dong(n);

//So nguyen n doc tu file len
int n2=0;

//Mang ngau nhien doc tu file len
int *mang_ngaunhien;

Doc_File_INPUT_Vao_Mang(n2,mang_ngaunhien);

cout<<“\nMang chua duoc xap xep:\n”;
for(int i=0;i<10*n2;i++)
{
if(i%10==0)
cout<<“\n”;
cout<<mang_ngaunhien[i]<<“\t”;
}

cout<<“\n”;

Tao_File_OUTPUT(n2,mang_ngaunhien);

cout<<“\nMang sau khi xap xep:\n”;
for(int i=0;i<10*n2;i++)
{
if(i%10==0)
cout<<“\n”;
cout<<mang_ngaunhien[i]<<“\t”;
}

getche();
}

///////////////////////////////////////////////////////////
int GiaTriLonNhat(int a[],int n)
{
int max=a[0];
for(int i=0;i<n;i++)
if(max<a[i])
max=a[i];
return max;
}

int DemChan(int a[],int n)
{
int chan=0;
for(int i=0;i<n;i++)
if(a[i]%2==0)
chan++;
return chan;
}

int DemLe(int a[],int n)
{
int le=0;
for(int i=0;i<n;i++)
if(a[i]%2!=0)
le++;
return le;
}

void XapXep(int a[],int n)
{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j])
{
int tam=a[i];
a[i]=a[j];
a[j]=tam;
}
}

void Tao_File_INPUT_N_Dong(int n)
{
//Tao file voi ten INPUT.TXT
FILE *fp;

fp=fopen(“INPUT.TXT”,”w”);
if(fp==NULL)
{
cout<<“Khong the tao file \n”;
exit(1);
}
//chuyen so nguyen n -> chuoi de ghi xuong file text
//cach dung ham itoa: itoa(int n,*char,co so[10,16,2])
char *chuoi_n;

itoa(n,chuoi_n,10);

//ghi chuoi n xuong file text
fputs(chuoi_n,fp);
fputc(‘\n’,fp);

//ghi n so nguyen ngau nhien tu 0-100 xuong file text
//moi dong 10 so
for(int i=0;i<n;i++)
{
for(int j=0;j<10;j++)
{
//tao so ngau nhien tu 0-100
int ngaunhien=rand()%100+1;

//chuyen thanh chuoi de ghi xuong file text
char chuoi_ngaunhien[3];
itoa(ngaunhien,chuoi_ngaunhien,10);

//ghi chuoi ngau nhien xuong file text
fputs(chuoi_ngaunhien,fp);
fputc(‘ ‘,fp);
}
//du 10 so thi xuong hang
fputc(‘\n’,fp);
}
fflush(fp);
fclose(fp);
}

int Doc_File_INPUT_Vao_Mang(int &n2,int *mang_ngaunhien)
{
//Doc noi dung  file INPUT.TXT, ghi vao mang 1 chieu
FILE *fp2;

fp2=fopen(“INPUT.TXT”,”r”);
if(fp2==NULL)
{
cout<<“Khong the mo file \n”;
exit(1);
}

//doc chuoi n tu file:
char chuoi_n2[100];
fgets(chuoi_n2,100,fp2);

//chuyen chuoi n tro lai thanh bien int
n2=atoi(chuoi_n2);

//doc cac gia tri ngau nhien tu file va dua vao mang:

for(int i=0;i<n2;i++)
{
char chuoi_ngaunhien[1000];
fgets(chuoi_ngaunhien,1000,fp2);
//cout<<chuoi_ngaunhien<<“\n”;
//cat chuoi de lay tung gia tri ngau nhien
char *kitucat=” “;
char *ketqua=NULL;

int dem=i*10;
ketqua=strtok(chuoi_ngaunhien,kitucat);
while(ketqua!=NULL && dem<=n2*10)
{
//chuyen lai thanh integer, dua vao mang
mang_ngaunhien[dem]=atoi(ketqua);

ketqua=strtok(NULL,kitucat);
dem++;
}
}
fclose(fp2);
return 0;
}

void Tao_File_OUTPUT(int n2,int *mang_ngaunhien)
{
//Tao file voi ten OUTPUT.TXT

FILE *fp3;

fp3=fopen(“OUTPUT.TXT”,”w”);
if(fp3==NULL)
{
cout<<“Khong the tao file \n”;
exit(1);
}
//chuyen so max -> chuoi de ghi xuong file text
//cach dung ham itoa: itoa(int n,*char,co so[10,16,2])
char chuoi_max[3];
itoa(GiaTriLonNhat(mang_ngaunhien,n2*10),chuoi_max,10);

//ghi phan tu max xuong file text
fputs(“Cau a: “,fp3);
fputs(chuoi_max,fp3);
fputc(‘\n’,fp3);

//chuyen so pt chan,le -> chuoi de ghi xuong file text
//cach dung ham itoa: itoa(int n,*char,co so[10,16,2])
char chuoi_soptchan[3];
itoa(DemChan(mang_ngaunhien,n2*10),chuoi_soptchan,10);
char chuoi_soptle[3];
itoa(DemLe(mang_ngaunhien,n2*10),chuoi_soptle,10);

//ghi tong so pt chan,le xuong file text
fputs(“Cau b: “,fp3);
fputs(chuoi_soptchan,fp3);
fputs(” “,fp3);
fputs(chuoi_soptle,fp3);
fputc(‘\n’,fp3);

//ghi mang da xap xep xuong file text
//moi dong 10 so
fputs(“Cau c: “,fp3);
fputc(‘\n’,fp3);
XapXep(mang_ngaunhien,n2*10);
for(int i=0;i<n2;i++)
{
for(int j=0;j<10;j++)
{
//chuyen thanh chuoi de ghi xuong file text
char chuoi_ngaunhien[3];
itoa(mang_ngaunhien[(i*10)+j],chuoi_ngaunhien,10);

//ghi chuoi ngau nhien xuong file text
fputs(chuoi_ngaunhien,fp3);
fputc(‘ ‘,fp3);
}
//du 10 so thi xuong hang
fputc(‘\n’,fp3);
}
fflush(fp3);
fclose(fp3);
}

Bài giảng về hàm các bạn download tại đậy Chuong6Ham.

Bài giản câu lệnh rẽ nhán và các loại vòng lặp Chuong3CauLenhReNhanh_VongLap.

Sofware Cfree cac em down ve install

Bài giảng chuong1MoDau, Chuong2BieuThuc

Bài mẫu tham khảo làm đề tài

Các em download bài file và chuỗi đầy đủ

Các em in bài file trước khi đi học lý thuyết (bắt buộc in)

Chuỗi tổng hợp các em cần in ra học cho thật kỹ chuoitonghop

Mảng structcác em downloadmangcautruccoban2

Con trỏ, mảng và struct các em download tham khảo contromang4

Chuỗi cắt khoảng trắng dư thừa

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
char * cktrang(char * st);// khi co 2 khoang trang lien tiep
char * cktrangdau(char * st);
char * cktrangcuoi(char * st);

void main()
{

char *st1, *str;
st1= new char[100];
fflush(stdin);//lam sach vung dem
cout<<“ban hay nhap vao chuoi “;
gets(st1);
cout<< “\ncat kt dau\n”;
st1 = cktrangdau(st1);
puts(st1);
cout<<“\n cat kt cuoi\n”;
st1 =cktrangcuoi(st1);
cout<<st1;
cout<< “\ncat kt giua\n”;
st1=cktrang(st1);
cout<< st1 ;
getch();
}

char * cktrang(char * st)
{
char * p;
p=new char[100];

while (p=strstr(st,”  “))
strcpy(st+(strlen(st)-(strlen(p))),p+1);

return st;

}
char * cktrangdau(char * st)
{

while (st[0]==’ ‘)
strcpy(st, st+1);
return st;

}
char * cktrangcuoi(char * st)
{

int l;
l=strlen(st);

while (st[l-1]==’ ‘)
{

st[l-1]=”;
l=strlen(st);
}
return st;
}

Các em download baitapchuoicoban bài chuỗi cơ bản (hàm cơ bản, cắt khoảng trắng)

các e download bài manghaichieucoban mảng hai chiều phần cơ bản, in ra xem trước

Các em download viettheocachdequy bài viết theo cách gọi đệ quy

Các em download  mangtongquat_sapxep_xoa1bài mảng đầy đủ (Xóa, thay thế, tìm kiếm, max …)

download  nhapxuatsortmangthongthuongnhập xuất và sort array thông thường

download nhapxuatmangngaunhien nhập xuất mảng (array) qua hàm rand() ngẫu nhiên

// kiểm tra số n có toàn số chẵn, lẻ bài tập 78 ,79

#include<iostream.h>
bool KTLe(int  n);
void KTChanLe(int  n);
bool KTChan(int  n);
void main()
{
int n;
cout<<“Nhap vao n”;
cin>>n;
KTChanLe(n);
}
void KTChanLe(int  n)
{

if (KTChan( n)==true)
cout<<n <<“Toan chan\n”;
else if(KTLe(n)==true)
cout<<n <<“Toan le \n”;
else// co ca so cahn va so le
cout<<n <<“chua ca chan va le\n”;
}
bool KTChan(int  n)
{
int so, tam;
tam=n;

while (n>0)
{
so=n%10;
if (so%2!=0 )

return false;
n=n/10;
}

return true; // toan chan

}
bool KTLe(int  n)
{
int so, tam;
tam=n;

while (n>0)
{
so=n%10;
if (so%2==0 )

return false;
n=n/10;
}

return true ;// toan chan

}

download bai-tapcongcacsonguyento-64 tổng các số nguyên tố (bài 64) có sử dụng thừa kế bài 62

download xuatcacsonguyentobai-62 xuất các số nguyên tố từ 2->n

//Giai thua co su dung de quy va khong de quy

#include<iostream.h>
#include<math.h>
long GiaiThua( int n);// de quy
long GiaiThuaKhongDeQuy( int n);
int main()
{
int n;
cout<<“Nhap n”;
cin>>n;
cout <<“ham giai thua khong de quy \n”;
for (int i=1; i<=n;i++)
cout<<i<<“!=”<<GiaiThuaKhongDeQuy(i)<<“\n”;
cout <<“\n ham giai thua de quy \n”;
for (int i=1; i<=n;i++)
cout<<i<<“!=”<<GiaiThua(i)<<“\n”;

}

long GiaiThuaKhongDeQuy( int n)
{
long gt=1;
for(int i=1; i<=n;i++)
gt=gt*i;
return gt;
}

long GiaiThua( int n)
{
if(n==1)//buoc 1
return 1;
else
return GiaiThua(n-1) *n;// buoc 2
}
//Kiểm tra số chính phương viết dạng hàm

#include<iostream.h>
#include<math.h>
bool KiemTraSoChinhPhuong(int a);
int main()
{
int a;
cout<<“Nhap vao mot so”;
cin>>a;

if(KiemTraSoChinhPhuong(a)==true)
{
cout<<“La so chinh phuong:”;
}
else
cout<<“khong La so chinh phuong:”;
return 0;
}
bool KiemTraSoChinhPhuong(int a)
{
if (a==1)
return true;
else
for(int i=2; i<=int(sqrt(a));i++)
if (i*i==a)
return true;
return false;
}

// nhập 3 canh a, b,c  kiểm tra có tạo thành tam giác không

// đây chỉ là gợi ý hàm main các bạn tự định nghĩa các hàm con

#include<iostream.h>
#include<math.h>
bool KiemTraTamGiac(int a, int b, int c);
float DienTich(int a, int b, int c);
int ChuVi(int a, int b, int c);
int main()
{
int a,b,c;
cout<<“Nhap vao 3 canh tam giac”;
cout<<“\n nhap canh a “;cin>>a;
cout<<“\n nhap canh b “;cin>>b;
cout<<“\n nhap canh c “;cin>>c;
if(KiemTraTamGiac(a,b,c)==true)
{
cout<<“chu vi la:”<<ChuVi(a,b,c)<<“\n”;
cout<<“Dien Tich la:”<<DienTich(a,b,c)<<“\n”;
}
else
cout<<“khong tao thanh tam giac”;
return 0;
}
bool KiemTraTamGiac(int a, int b, int c)
{
if (a+b>c && b+c>a &&c+a>b)
return true ;
else
return false;
}
int ChuVi(int a, int b, int c)
{
return a+b+c;
}
float DienTich(int a, int b, int c)
{
int cv;
float p, dt;
cv=ChuVi(a,b,c);
p=(float)cv/2;
dt=sqrt(p*(p-a)*(p-b)*(p-c));
return dt;
}
// Kiểm tra số chính phương dạng hàm

#include<iostream.h>
#include<math.h>
bool KiemTraSoChinhPhuong(int a);
int main()
{
int a;
cout<<“Nhap vao mot so”;
cin>>a;

if(KiemTraSoChinhPhuong(a)==true)
{
cout<<“La so chinh phuong:”;
}
else
cout<<“khong La so chinh phuong:”;
return 0;
}
bool KiemTraSoChinhPhuong(int a)
{
if (a==1)
return true;
else
for(int i=2; i<=int(sqrt(a));i++)
if (i*i==a)
return true;
return false;
}

// xuất các số nguyên tố trong khoảng 2->n

#include<math.h>
#include<iostream.h>
#include <stdio.h>

bool KTraSoNTo(int );//bool true/false

void main()
{
int i, n;
cout<<“Nhap n”; cin>>n;
i=2;
while(i<=n)
{
if (KTraSoNTo(i)==true)
cout<<i<<“\t”;
i++;
}
}
bool KTraSoNTo(int n)
{
int i, dem=0;
i=1;
while(i<=n)
{
if (n %i==0)
dem=dem+1;
if (dem>2)
break;
i++;
}
if(dem==2)
return true;
else
return false;

}
/*
Bài 89
Goi x la so trau dung’ -> 1<=x<=20″);
Goi y la so trau nam` -> 1<=y<=33″);
Goi z la so trau gia` -> 3<=z<=99 va` z la boi so cua 3″);
nVay ta co the giai bai toan nhu sau:\n\n”);/* Tram trau tram co.
Trau dung an 5.
Trau nam an 3.
Trau gia 3 con an 1.
*/
#include <iostream.h>

void     TramTrauTramCo();

void main()
{
TramTrauTramCo();

}
void     TramTrauTramCo()
{
int x,y,z,count=0;
for(x=1;x<=20;x++)
for(y=1;y<=33;y++)
for(z=3;z<=99;z+=3)
if((5*x+3*y+z/3==100)&&(x+y+z==100))
{
count+=1;
cout<<“\nPhuong an”<<count;
cout<<“\nSo trau dung la “<<x;
cout<<“\nSo trau nam la “<<y;
cout<<“\nSo trau gia la “<<z;
}

}

/*
Bài Tập 88 chương 3 Gà và chó
Vu+`a gà vu+`a chó
Bó la.i cho tròn
Ba mu+o+i sáu con
Mo^.t tra(m chân cha(~n.
*/

#include <iostream.h>

void GaChoTramChan();
void main()
{
//goi i la so cho
GaChoTramChan();
}

void GaChoTramChan()
{
int i,count=0;
for (i=1;i<=25;i++)
if((i*4+(36-i)*2)==100)
{
count+=1;
cout<<“\nPhuong an”<<count;
cout<<“\nSo ga “<<36-i;
cout<<“\nSo cho “<<i;
}

}

/* Bài tập 75,76,77 chương 3 viết dươi dạng hàm*/

#include<iostream.h>
#include<math.h>
int TongUocSo(int n);
bool  KTraSoHThien(int n);
bool  KTraSoThinhVuong(int n);
long GiaiThua(int n);
int main()
{
int n,CN;
do{
cout<<” Ban chon chuc nang\n”;
cout<<” chon 1 Hoan Thien \n”;
cout<<” 2 chon 2 Thinh Vuong\n”;
cout<<” 3 Giai thua \n”;
cout<<” 0 Thoat chuong trinh \n”;
cout<<” Nhap chuc nang\n”;
cin>>CN;
if (CN!=0)
{
cout<<” Nhap so n”;
cin >>n;

switch(CN)
{
case 1:
if (KTraSoHThien(n)==true)
cout<<n<<” la so hoan thien”;
else
cout<<n<<” khong la so hoan thien”;
break;
case 3:
cout<<n<<” giai thua la”<<GiaiThua(n);
break;
case 2:
if (KTraSoThinhVuong(n)==true)
cout<<n<<” la so thinh vuong”;
else
cout<<n<<” khong la so thinh vuong”;
break;

}
}

}while(CN!=0);

return 0;
}

bool  KTraSoThinhVuong(int n)
{
int t;
t=TongUocSo(n);
if (t>n)
return true;
else
return false;

}
bool  KTraSoHThien(int n)
{
int t;
t=TongUocSo(n);
if (n==t)
return true;
else
return false;

}
int TongUocSo(int n)
{
int t=0;
for(int i =1; i<n; i++)
if(n%i==0)
t=t+i;
return t;

}
long GiaiThua(int n)
{
long gt=1;
int i;
for (i=1; i<=n; i++)
gt=gt*i;
return gt;
}

/************************************************/

Bài giảng chương 4 PPLT down tai đây chuong4mang

Bài giảng chương 6 PPLT down tai đây chuong6ham1

Bài giảng chương 3 PPLT down tai đây chuong3_if_lap

Bài giảng chương 2 PPLT down tai đây chuong2

Bài giảng chương 1 PPLT down tai đây chuong1

Đề tài đạt điểm cao các em tham khảo nhưng cấp không được copy thuần túy

Yêu cầu tất cả sinh viên đi hoc thực hành và lý thuyết đều có sách tham khảo (sách mua tiệm photo Dũng đối diện kí túc xá nữ của trường ĐHCN).

22 Comments »

  1. 1
    [A]l0n3r Says:

    Thanks Teacher !!!

  2. 2
    813867 Says:

    Thầy ơi có fải chỉ cần 2 cuốn sách :nhập môn tin học và PPLT cho môn tin học là đủ không ạ!! em cảm ơn

  3. 3
    nguyenbahop Says:

    thay thang chieu chu nhat thay co tren truong ko vay .ma sao em down bai giang ko duoc vay .thay ban cho em cai usb nha

  4. 4
    Minh Says:

    thay oi cho e hoi de tai nam o dau sao em tim hoai ko thay vay

  5. 5
    hungtran Says:

    thầy ơi, em tới chỗ nào để mua cái USB vậy thầy? thầy bán cho em cái 2GB nha thầy, thanks thầy nhiều !!!

  6. 6
    vietnt Says:

    ANh Thang ơi. Viet So GDDT Tay Ninh day

  7. 7
    vô zanh Says:

    thầy nói úp bài tập sao hok thấy đâu hết zậy!tính lừa em hả

  8. 8
    thang ga Says:

    thay oi!

  9. 9
    binhan Says:

    thay oi,up may cai bai dang ham tong hop dum em di thay.voi thay up them bai giai? chuong 4 nha thay

  10. 10
    binrain Says:

    thay oi vi du ve de quy dau thay

  11. Thưa thầy, thầy có thể cho em một số gợi ý về cách làm đề tài cuối khóa được không ạ? Xin thầy liên lạc qua yahoo theo địa chỉ trên. MSSV của em là 0812938. Rất mong được thầy chỉ dạy ^^!

  12. 12
    hang Says:

    thay oi bai tap ve file em ko hieu cho lam,thay co the giang lai dum em ko a,ma cho em hoi dot thi trung cap lien thong len dai hoc co phan thuc hanh lap trinh ko ah,hay trac nghiem ah thay………thay chi em zoi nha^^

  13. 13
    giau ten Says:

    binrain oi sao ngoc vay
    thay dang len mang roi con tim gi nua

  14. 14
    NGUYỄN QUỐC TUẤN tcth36d3 Says:

    Đằng ký đề tài tìm kiếm bài hát

  15. 15
    pham hoang long Says:

    Câu 293: (xem lại)
    Kết quả xuất ra màn hình của chương trình sau đây là gì?
    #include
    int compute(int &a,int &b)
    {
    int c=a*b-b%a;
    b–;
    a/=2;
    cout<<a <<" , " <<b <<" , " <<c <<endl;
    return a-b+c;
    }
    void main()
    {
    int a=4,b=5,c=6;
    b=compute(a,c);
    cout<<a <<" , " <<b <<" , " <<c <0);
    cout<<n;
    Trả lời: 5

    thay xem gium em
    dap an de cho sai het em ko biet chon dap an nao het

  16. 16
    pham hoang long Says:

    Câu 281: (xem lại)
    Cho biết kết quả của đoạn chương trình sau:
    int number,n;
    number=10;
    n=1;
    do
    {
    switch(number)
    {
    case 1: n++; break;
    case 2: n=n+3; break;
    case 3: n–; break;
    case 4: n+=2; break;
    default: break;
    }
    number–;
    }
    while(number>0);
    cout<<n;
    Trả lời: 5

  17. 17
    pham hoang long Says:

    Câu 293: (xem lại)
    Kết quả xuất ra màn hình của chương trình sau đây là gì?
    #include
    int compute(int &a,int &b)
    {
    int c=a*b-b%a;
    b–;
    a/=2;
    cout<<a <<" , " <<b <<" , " <<c <<endl;
    return a-b+c;
    }
    void main()
    {
    int a=4,b=5,c=6;
    b=compute(a,c);
    cout<<a <<" , " <<b <<" , " <<c <<endl;
    }
    Trả lời: 2 5 22
    2 19 5

  18. 18
    trung Says:

    thau oi pass la j vay sao em ko down slide dc vay ?

  19. 19
    next Says:

    co ai biet khoa hoc lap trinh chi cho toi biet voi . Pm cho toi vao mail nhe . thank” nhieu nhieu

  20. 21
    middlevietnam Says:

    Thấy ơi giải dùm em bài 53 trong sách nha thầy!

  21. 22
    quyet Says:

    em cam on thay nhieu !


RSS Feed for this entry

Leave a comment