VAA. TVTHK
Tin H c
Lab
iC
ng
Lab02
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
ng trình bài 06 s d ng l nh switch .................................................... 5
Bài 07: Vi t l i ch
Bài 08: In s ng
Bài 09: Tính c
Bài 10: Ch
c............................................................................................................. 5
c taxi ......................................................................................................... 5
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
Bài 15
i ch hoa – th
ng .............................................................................................. 7
Bài 16: Ki m tra ch hoa, ch th
Lab
if if else switch
ng trình: .................................... 6
ng................................................................................ 7
Trang
VAA. TVTHK
Tin H c
iC
ng
Lab02
Lab 02: L nh r nhánh
0. M c tiêu
•
S d
o
o
o
ng thành th o c u trúc l nh r nhánh trong C:
if
if…else
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
•
•
3. Ch
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
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();
Lab
if if else switch
Trang
VAA. TVTHK
Tin H c
iC
ng
Lab02
return 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
cl 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
Tìm s l n nh t:
max = b
N u (a>b) then max =b
Ch
ng ng.
Tìm s nh nh t:
min = a
N u (a>b) then min =b
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;
}
Lab
if if else switch
Trang
VAA. TVTHK
Tin H c
iC
ng
Lab02
Bà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
Gi s Max = a
IF ( B > Max) Then Max = B
IF (C > Max) Then Max = C
Bài 05: Nh p 3 s a, b, c in ra theo th t
S nh nh t
Gi s Min = a
IF ( Min > B) Then Min = B
IF (Min > C Then Min = C
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()
{
int iNum;
Lab
if if else switch
Trang
VAA. TVTHK
Tin H c
iC
ng
Lab02
printf("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
Bài 08: In s ng
ng trình bài 06 s
d ng l nh switch
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
VD: N u s nh p là a = 356 thì hi n th là 653.
c l i.
G i ý:
Gi
Gi
S
S
S
i thu t
s s nh p là n có ba ch s .
hàng đ n v = n % 10
hàng ch c = ( n / 10 ) % 10
hàng đ n v = n / 100
Bài 09: Tính c
Vi t ch
•
•
•
Mã ngu n C
tram = n;
donvi = tram % 10;
tram = tram / 10;
chuc = tram % 10;
tram = tram /10;
c taxi
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
ti n ph i tr .
i s d ng nh p vào s km (bao g m s l VD: 2.5km) và in ra s
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.
Lab
if if else switch
Trang
VAA. TVTHK
Tin H c
iC
ng
Lab02
G 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: ax2 + 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
X
X
X
L ai A: 250 /ngày
L ai B: 200 /ngày
L ai C: 150 /ngày
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
X
X
X
X
ng trình:
Ki m tra tính h p l ngày, tháng nh p.
Cho bi t tháng nh p có bao nhiêu ngày.
Cho bi t ngày hôm sau c a ngày đã nh p là ngày nào.
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 ý:
•
•
•
•
Lab
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))
if if else switch
Trang
VAA. TVTHK
Bài 15
i ch
Tin H c
hoa – th
iC
ng
Lab02
ng
Nh p m t ch cái, n u là ch th ng thì đ i thành ch hoa, ng
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
c l i, n u là ch hoa thì đ i
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
hay các ký t khác
Lab
if if else switch
ng, là ch s
Trang