Lab L nh R Nhánh
N i Dung Chính
Lab 02: L nh r nhánh 2
0 M c tiêu 2
1 Yêu c u tr c khi vào bu i th c hành này 2
2 L u ý quan tr ng 2
3 Ch ng trình 2
Bài 01: Nh p vào 1 s nguyên Và ki m tra s đó có ch n không? 2
Bài 02: Nh p vào 2 s nguyên a, b Ki m tra xem a có chia h t cho b không 3
Bài 03: Nh p vào 2 s nguyên a, b Tìm s l n nh t, nh nh t 3
Bài 04: Nh p vào 3 s nguyên a, b, c Tìm s l n nh t, nh nh t 4
Bài 05: Nh p 3 s a, b, c in ra theo th t t ng d n 4
Bài 06: i m trung bình và x p h ng 4
Bài 06: T o âm thanh BEEP theo s nh p t bàn phím 4
Bài 07: Vi t l i ch ng trình bài 06 s d ng l nh switch 5
Bài 08: In s ng c 5
Bài 09: Tính c c taxi 5
Bài 10: Ch ng trình máy tính đ n gi n 5
Bài 11: Gi i và bi n lu n ph ng trình b c nh t: ax+b=0 6
Bài 12: Gi i và bi n lu n ph ng trình b c 2: ax2 + bx + c = 0 6
Bài 13 Tính ti n thuê phòng D a vào s ngày thuê và l ai phòng 6
Bài 14 Nh p vào ngày, tháng c a n m hi n t i Vi t ch ng trình: 6
Bài 15 i ch hoa – th ng 7
Bài 16: Ki m tra ch hoa, ch th ng 7
Trang 2Lab 02: L nh r nhánh
0 M c tiêu
• S d ng thành th o c u trúc l nh r nhánh trong C:
o if
o if…else
o switch
1 Yêu c u tr c khi vào bu i th c hành này
• Ôn l i các tóan t quan h : ==, !=, <, <=, >, >=
• Ôn l i tóan t logic: !, &&, ||
• N m v ng c u trúc l nh if, if-else, switch
• Tóan t %, ki u int, float,…
2 L u ý quan tr ng
• Các đ an mã ngu n trong các bài sau có th có l i khi biên d ch Hãy s a l i và
thêm các file header phù h p n u c n
• Không s d ng các file header mà ANSI C 1999 không cung c p
3 Ch ng trình
Bài 01: Nh p vào 1 s nguyên Và ki m tra s đó có ch n không?
• Gi i thu t: S ch n là s chia h t cho 2
• Mô t : N u s A chia cho 2 có ph n d = 0 thì A là s ch n
• Th c hi n trong c: (c % 2)
/**********************************************************************
* Lab 02, Bai 01.c
* Tac gia: Nguyen Van An, MSSV: 123456789
* Lop: DV2, Khoa 3,
* Kiem tra chan le cua so nguyen nhap vao tu ban phim
* Created date
**********************************************************************/
#include <stdio.h>
int main()
{
int iNum, iRemain;
printf("Nhap so nguyen : ");
scanf("%d", &iNum);
iRemain = iNum % 2 ;
if (iRemain == 0 )
printf("%d La So Chan \n", iNum);
getchar();
Trang 3return 0;
}
- S a l i ch ng trình trên đ thông báo a là s l trong tr ng h p ng c l i
Bài 02: Nh p vào 2 s nguyên a, b Ki m tra xem a có chia h t cho b không
• Gi i thu t: Nh p 2 s nguyên a, b
• Ki m tra: if (a % b) ==0 å printf ( S a chia h t cho s b)
Bài 03: Nh p vào 2 s nguyên a, b Tìm s l n nh t, nh nh t
G i ý: Khai báo bi n max và min đ ch a giá tr l n nh t và nh nh t t ng ng
Tìm s l n nh t:
max = b
N u (a>b) then max =b
Tìm s nh nh t:
min = a
N u (a>b) then min =b
Ch ng trình nh sau:
/**********************************************************************
* Lab 02, Bai 03.c
* Tac gia: Nguyen Van An, MSSV: 123456789
* Lop: DV2, Khoa 3,
* Nhap 2 so nguyên, In ra gia tri lon nhat, nho nhat
* Created date:
**********************************************************************/
#include <stdio.h>
int main()
{
int iNum1, iNum2, max, min;
printf("Nhap so thu nhat : ");
scanf("%d", &iNum1);
printf("Nhap so thu hai : ");
scanf("%d", &iNum2);
max = iNum1 ;
if ( iNum2 > max )
max = iNum2 ;
min = iNum1 ;
if ( min > iNum2 )
min = iNum2 ;
printf("So lon nhat la %d", max,”\n”);
printf("So nho nhat la %d", min,”\n”);
getch();
return 0;
}
Trang 4Bài 04: Nh p vào 3 s nguyên a, b, c Tìm s l n nh t, nh nh t
Gi i thu t:
S l n nh t S nh nh t
Gi s Max = a
IF ( B > Max) Then Max = B
IF (C > Max) Then Max = C
Gi s Min = a
IF ( Min > B) Then Min = B
IF (Min > C Then Min = C
Bài 05: Nh p 3 s a, b, c in ra theo th t t ng d n
a Xem bài trên đ tìm đ c s l n nh t, nh nh t
b G i iMiddle là s đ ng gi a thì iMiddle = (a+b+c) – (max+min)
c In ra: Min, Middle, Max
Bài 06: i m trung bình và x p h ng
Nh p vào đi m trung bình c a sinh viên (Thang đi m 100) và Hi n th x p lo i theo tiêu chí
sau:
90 <= A
80 <= B < 90
70 <= C < 80
60 <= D < 70
E < 60
G i ý: Bi n average ch a đi m trung bình c a SV Mã ngu n nh sau:
if (average >= 90)
grade = 'A';
else if (average >= 80)
grade = 'B';
else if (average >= 70)
grade = 'C';
else if (average >= 60)
grade = 'D';
else
grade = 'E';
Bài 06: T o âm thanh BEEP theo s nh p t bàn phím
/**********************************************************************
* Lab 02, Bai 06.c
* Tac gia: Nguyen Van An, MSSV: 123456789
* Lop: DV2, Khoa 3,
* In Ra tu tuong ung voi so
* Created date:
**********************************************************************/
#include <stdio.h>
int main()
{
Trang 5printf("Nhap so bat ky : ");
scanf("%d", &iNum);
if ( a == 1 )
printf(“Mot”;
else if ( a == 2 )
printf(“Hai”;
else if ( a == 3 )
printf(“Ba”;
else if ( a == 4 )
printf(“Bon”;
else if ( a == 5 )
printf(“Nam”;
else
printf(“Mot so khac”;
getchar;
return 0;
}
Bài 07: Vi t l i ch ng trình bài 06 s d ng l nh switch
Bài 08: In s ng c
Vi t ch ng trình nh p s nguyên có 3 ch s và hi n th các ch s theo th t ng c l i
VD: N u s nh p là a = 356 thì hi n th là 653
G i ý:
Gi s s nh p là n có ba ch s
S hàng đ n v = n % 10
S hàng ch c = ( n / 10 ) % 10
S hàng đ n v = n / 100
tram = n;
donvi = tram % 10;
tram = tram / 10;
chuc = tram % 10;
tram = tram /10;
Bài 09: Tính c c taxi
Vi t ch ng trình tính giá c c taxi theo công th c sau:
• 2 Km đ u tiên giá là 12000
• M i km ti p theo, giá 5500
• T Km th 31 giá là 5000/km
Ch ng trình cho phép ng i s d ng nh p vào s km (bao g m s l VD: 2.5km) và in ra s
ti n ph i tr
Chú ý: N u s km là 2.01 thì s ti n là 12000 + 5500 = 17500
Bài 10: Ch ng trình máy tính đ n gi n
Nh p vào 2 s a, b và m t phép toán p, th c hi n tính k t qu tr v d a vào d li u nh p
vào Ví d a = 5, p = '+', b = 6, K t qu hi n th là 5 + 6 = 11
Trang 6G i ý:
• Phép tóan p: +, -, *, /
• Tr ng h p phép chia: nh ki m tra (≠0)
Bài 11: Gi i và bi n lu n ph ng trình b c nh t: ax+b=0
Bài 12: Gi i và bi n lu n ph ng trình b c 2: ax 2 + bx + c = 0
G i ý:
• s d ng th vi n tóan math: # include <math.h>
• tính delta s d ng hàm: double sqrt(double x); C n b c 2 c a x, tr v giá tr double
Bài 13 Tính ti n thuê phòng D a vào s ngày thuê và l ai phòng
X L ai A: 250 /ngày
X L ai B: 200 /ngày
X L ai C: 150 /ngày
X N u s ngày thuê nhi u h n 10 ngày thì gi m giá % trên t ng s ti n nh sau: A: 10%,
B,C: 5%
Bài 14 Nh p vào ngày, tháng c a n m hi n t i Vi t ch ng trình:
X Ki m tra tính h p l ngày, tháng nh p
X Cho bi t tháng nh p có bao nhiêu ngày
X Cho bi t ngày hôm sau c a ngày đã nh p là ngày nào
X Cho bi t ngày hôm tr c c a ngày đã nh p là ngày nào
VD: N u ngày nh p là 1/12/2009 thì ngày tr c đó là 30/11/2009
G i ý:
• Tháng 1, 3, 5, 7, 8, 10, 12: 31 ngày
• Tháng: 3, 4, 6, 9, 11: 30 ngày
• Tháng 2: Nhu n/Không nhu n: 29/28 ngày
• N m nhu n là (nh ng n m chia h t cho 400) ho c (chia h t cho 4 và không chia h t cho 100) Ví
d 2000 là n m nhu n nh ng 2100 không ph i là n m nhu n Code C nh sau:
if(year%400 ==0 || (year%100 != 0 && year%4 == 0))
Trang 7Bài 15 i ch hoa – th ng
Nh p m t ch cái, n u là ch th ng thì đ i thành ch hoa, ng c l i, n u là ch hoa thì đ i
thành ch th ng Ví d : nh p A in ra a, nh p b thì in ra B
Bài 16: Ki m tra ch hoa, ch th ng
Nh p m t ký t b t k , cho bi t ký t đó thu c lo i nào: là ch hoa, là ch th ng, là ch s
hay các ký t khác