HCM Rat mong duoc don tiep!... ten; printf"nhap ma so sinh vien :"; getsa.. ten; printf"nhap ma so sinh vien :"; getsa... void xuatdssvsv a[ ], int n.
Trang 1TBiên
www.hutech.edu.vn
Trang 2
*1.2020.cmp3017*
tailieuhoctap@hutech.edu.vn
Trang 3I III
BÀI 1: LÀM QUEN V 1
1.1 TÓM LÝ 1
1
1.1.2 2
1.1.3 à phép toán 2
1.1.4 3
1.1.5 3
1.2 HÀNH 3
1.3 HÀNH NÂNG CAO 7
BÀI 2: C U KHI N C U TRÚC IF VÀ SWITCH 8
2.1 TÓM LÝ 8
8
8
9
2.2 HÀNH 10
2.3 HÀNH NÂNG CAO 13
BÀI 3: C U KHI N - C U TRÚC L P 14
3.1 TÓM LÝ 14
14
15
15
3.2 HÀNH 16
3.3 HÀNH NÂNG CAO 21
22
4.1 TÓM LÝ 22
22
23
24
24
4.2 HÀNH 25
4.3 HÀNH NÂNG CAO 28
BÀI 5: M NG 29
5.1 TÓM LÝ 29
5.2 HÀNH 30
5.3 HÀNH NÂNG CAO 34
Trang 4BÀI 6: KI U D LI U CÓ C U TRÚC 35
6.1 TÓM LÝ 35
6.2 HÀNH 36
6.3 HÀNH NÂNG CAO 39
6.4 TRA HÀNH 45
TÀI THAM 46
Trang 5Môn Th c hành K thu t L p trình cung c p cho sinh viên nh ng k c
n v ngôn ng l p trình C Môn h c này là n n t ti p thu h u h t các
- X lý các bài toán trên m ng m t chi u
- Bi t xây d ng và x lý các bài toán trên d li u có c u trúc do ng i dùn nh
Trang 6CÁCH TI P NH N N I DUNG MÔN H C
Th c hành K thu t l p trình là môn h u tiên giúp sinh viên làm quen v i
l p trình trên máy tính, giúp sinh viên có khái ni m c n v cách ti p
c n và gi i quy t các bài toán tin h c, giúp sinh viên có kh p c n v
duy c i l p trình, và là ti ti p c n v i các h c ph n quan tr ng còn l i
c a ngành Công ngh Thông tin Vì v y, yêu c i h c ph i d h c các
bu i th c hành t i l p, th c hành l i các bài t p nhà, nghiên c u tài li c khi
th c hành các bài t n nâng ca ý xem k ng d n trong m i bài
th c hành và làm theo K t thúc m i bài h c, h c viên c n làm l i các bài th c hành nhà và luy n t p thêm
m 2 ph n
1 m quá trình (chuyên c m bài th c hành hàng tu n)
2 m cu i k (bài thi th c hành trên máy)
Trang 8!
&&
||
NOT AND
OR ++
c r i tính bi u th c
Trang 9Xu t 1 thông báo ra màn hình
- Công vi c c n th c hi n có th g m 1 hay nhi u l nh N u g m nhi u l nh con thì
các l nh con ph c gom vào trong c p d u {} g i là kh i l nh
1.2
M C-free/Dev-C, vào File/New/Source file
Trang 10Toi du le sinh nhat cua minh
Vao luc 19h ngay 20/10/2016
Tai: 05/42 Vinh Vien TP HCM
Rat mong duoc don tiep!
Trang 11printf("Moi nhap hai so nguyen de cong: ");
scanf("%d%d", &x, &y);
z = x + y;
printf("Tong hai so la %d\n", z);
//ho c printf("Tong hai so la %d\n", x+y);
v i phép hi u, u d li u k t qu c a phép chia */
return 0;
}
Câu 4: Vi p vào bán kính r c a m t hình tròn Tính chu vi và di n
tích c a hình tròn In các k t qu lên màn hình
Trang 12hình tròn
Ki u_ d _ li u Tên_bi n; VD: float r;
Cách 1: #define Tên_h ng Giá_tr VD: #define MAX 100
Cách 2: const Ki u_d _li u Tên_h ng=Giá tr ;
VD: const int MAX=100;
Di n tích hình tròn: PI*r*r
Chu vi hình tròn: 2*PI*r
a Nh p vào hai s nguyên Xu t ra màn hình giá tr l n nh t
b Nh p vào ba s nguyên Xu t ra màn hình giá tr l n nh t
ng d n:
Nh p vào hai s nguyên Xu t ra màn hình giá tr l n nh t
- Khai báo hai bi n a, b nguyên
- i dùng nh p 2 s nguyên a và b (dùng printf, scanf)
- S d ng m t bi n max l n nh t trong hai s , khai báo max
- So sánh hai s a và b, n u s nào l
- Xu t ra màn hình giá tr l n nh c: xu t giá tr bi n max
Nh p vào ba s nguyên Xu t ra màn hình giá tr l n nh t
- , khai báo 3 bi n a, b, c và max l n nh t
Trang 15Ph thu c vào giá tr c a bi u th c vi t sau switch, n u:
- Giá tr này = gia_tri_i thì th c hi n câu l nh sau case gia_tri_i
- Khi giá tr bi u th c không th a t t c các gia_tri_i thì th c hi n câu l nh sau
default n u có, ho c thoát kh i câu l nh switch
- c hi n xong câu l nh c a case gia_tri_i
th c hi n luôn các l nh thu i nó mà không xét l u ki n (do các
sau khi th c hi n xong m ng h p, ta dùng l nh break
Trang 17Câu 3: Nh p vào 3 s a, b, c Ki m tra xem 3 s p thành tam
ng d n:
- a, b, c là s a, b, c ki u unsigned int Chu nh d ng
c a ki u này là %u
Trang 18- Tam giác vuông a 2 =b 2 +c 2 ho c b 2 =a 2 +c 2 ho c c 2 =a 2 +b 2
Câu 4: Vi p s nguyên có hai ch s , hi n th c s
Trang 20- c l i thoát kh i l p
Trang 223.2
a Xu t ra màn hình 10 dòng: "XIN CHAO CAC BAN"
b Xu t ra màn hình n dòng: ""XIN CHAO CAC BAN", v i n nh p t bàn phím
Trang 23a Xu t ra màn hình các s trong ph m vi t n n
Trang 27- Câu a: S d ng 2 vòng for l ng nhau, vòng for th nh l p xét t ng dòng (l p
n l n), vòng for th l p xu t ra d u * theo s ng yêu c u (l p k l n)
- Câu b: S d ng 2 vòng for l ng nhau, vòng for th nh l p xét t ng dòng (l p
n l n), vòng for th l p xu t ra d u * theo s ng yêu c u (l p i l n)
b Li t kê các s nguyên t trong ph m vi t n n
for ( int i=2 ; i<=n ; i++ )
Trang 28BÀI 4: TRÌNH CON
Sau khi th c hành xong bài này, sinh viên có th n c:
- Khái ni m v hàm (function) trong C
Trang 29BÀI 4: 23
các bi n toàn c c và khai báo các ki u d li u t
(các nguyên m u hàm)
- Nguyên m u hàm:
<Ki u d li u c a hàm> Tên hàm ([danh sách các tham s ]);
- Nguyên m u hàm th c ch u c a hàm thêm d u ch m ph y (;) vào
cu i, tuy nhiên tham s trong nguyên m u hàm có th b ph n tên
- Hàm chính (main()): Ch a các bi n, các l nh và các l i g i hàm c n thi t trong
Khi có m t công vi c gi ng nhau c n th c hi n nhi u v trí
c trong sáng, d hi u trong vi c x lý, qu n lý vi c tính toán và gi i quy t v
Trang 30nh d a vào d li u vào c a bài toán (Input) G m 2 lo i :
- Tham tr : Giá tr c a bi n tham s i sau khi hàm th c hi n
Ví d : int KiemTraNguyenTo(int n);
- Tham bi n: Có s i giá tr c a tham s trong quá trình th c hi n và c n l y
l i giá tr i hàm ng d ng c a tham s lo i này có th là d li u
u ra (k t qu ) ho v a là d li u vào v a là d li u ra
Ví d :
Hàm nh p s nguyên: void NhapSoNguyen(int &n);
Hàm hoán v giá tr hai s : void HoanVi(int &a, int &b);
4.1.4
M t hàm ch c th c thi khi ta có m t l i g
Cú pháp g i hàm:
Trang 31b Ki m tra n có ph i là s nguyên t không?
c Li t kê các s nguyên t trong ph m vi t n n
Trang 32e Tính t ng các s nguyên t trong ph m vi t n n
f Tính trung bình c ng các s nguyên t trong ph m vi t n n
- V i m i hàm, ta test th trong hàm main(), sau khi ch y ra k t qu i làm ti p nh ng hàm khác
- Cách g i th c hi n hàm con trong main(): ch g i tên_hàm (các tham s th c
ng)
b Ki m tra m t s nguyên có là s hoàn thi n không?
c Li t kê các s hoàn thi n trong ph m vi t i dùng nh p)
d c chung l n nh t c a hai s nguyên a, b nh p t bàn phím
Trang 33BÀI 4: 27
\
\}
break;
case 2:
//khai báo và nh p s nguyên //g i hàm Ki m tra x có ph i s hoàn thi n không
Trang 35Khai báo:
Ví d :
int a[100]; // Khai báo m ng s nguyên a g m 100 ph n t
float b[50]; // Khai báo m ng s th c b g m 50 ph n t
Trang 37a Xu t các ph n t chia h t cho 3 có trong m ng
for ( int i=0; i<n ; i++)
- Ki m tra t ng ph n t c a m ng xem có chia h t cho 3 không
Trang 39// Hàm nh p giá tr cho t ng ph n t trong m ng
void NhapMang (float a[], int n)
{
for (int i = 0; i < n; i ++)
{
f }
Trang 40a Nh p vào m ng a g m n ph n t , trong quá trình nh p ki m tra các ph n t nh p
c trùng, n u trùng thông báo và yêu c u nh p l i
Trang 42//Khai báo các nguyên m u hàm -
void Nhap1ps(PS &x); void Xuat1ps(PS x);
int UCLN(int a, int b); //tr v giá tr ucln c a hai s a, b
void RutGon(PS &x); PS Cong(PS x, PS y);
//hàm tr v phân s k t qu sau khi c ng
int SoSanh(PS x, PS y);
/* tr v 0 n u phân s x = phân s y tr v s >0 n u phân s x > phân s y tr
v <0 n u phân s x < phân s y */
Trang 43void Nhap1ps (PS &x)
{
//nh p m u s ph i khác 0, nh p sai b t nh p l i
do
{
Trang 44//thông báo và nh p cho t c a phân s x
{
//xu t ra theo d ng tu/mau, ví d : 3/5
}
c chung l n nh t - int UCLN(int a, int b)
{
Trang 45BÀI 6: 39
if (x.tu==0) return; //n u phân s có t = 0 thì không c n rút g n
//l y giá tr ucln c a t và m u c a phân s x b ng cách g i hàm UCN(?, ?)
Trang 46Câu 3:
3.1 Vi t hàm nh p d li u cho m t sinh viên, thông tin v m t sinh viên g m có:
a Mã s sinh viên (chu i 10 ký t )
Trang 47BÀI 6: 41
printf("nhap ten sinh vien :"); gets (a ten);
printf("nhap ma so sinh vien :"); gets(a mssv);
flushall();
gioitinh ); printf("nhap diem toan:"); scanf("%f ", &a.toan) ;
printf("nhap diem ly:"); scanf("%f ", &a.ly ) ; printf("nhap diem tin:"); scanf("%f ", &a.tin );
a.DTB= ( a.toan +a.ly +a.tin ) /3 ; }
Cách 2
void nhap1sv( sv &a)
{ flushall();
printf("nhap ten sinh vien :"); gets (a ten);
printf("nhap ma so sinh vien :"); gets(a mssv);
( Nam y/nu x ) :"); a gioitinh= getche();
float t;
printf("nhap diem toan:"); scanf("%f ", &t) ; a.toan= t ; printf("nhap diem ly:"); scanf("%f ", &t); a.ly = t ; printf("nhap diem tin:"); scanf("%f ", &t); a.tin = t;
a.DTB= ( a.toan +a.ly +a.tin ) /3 ; }
Trang 483.2 Vi t hàm xu t d li u m t sinh viên v i thông tin v a nh p trên
Trang 49BÀI 6: 43
3.4 Vi t hàm xu t danh sách sinh viên
void xuatdssv(sv a[ ], int n)
Trang 51for ( int i = 0 ; i<n-1 ; i++ )
for ( int j =i+1; j < n ; j++ ) if( a[ i ].DTB> a[ j ].DTB )
Trang 521 Ph t, K thu t L p trình C- n và nâng cao, NXB KH & KT - 2003
2 Nguy n T n Tr n Minh Khang, Bài gi ngK Thu t L p trình, Khoa Công Ngh