Chương 2
Cấu trúc lệnh trong C
Cấu trúc tuần tự
Khái niệm khối lệnh:
{
//các câu lệnh trong khối lệnh
}
• Khối lệnh tương đương với 1 câu lệnh.
• Các câu lệnh trong cùng khối lệnh thì
tương đương với nhau (cùng được hoặc
cùng không được thực hiện).
Cấu trúc tuần tự (tt)
Ví dụ:
if(a>b)
{
max=a;
min=b;
}
Khác với
if(a>b)max=a;
min=b;
Cấu trúc tuần tự (tt)
Lưu ý về trật tự các câu lệnh trong khối:
t=i=0;
while(i<10)
{
++i;
t+=i;
}
t=i=0;
while(i<10)
{
t+=i;
++i;
}
Cấu trúc lựa chọn
Câu lệnh điều kiện:
if(<bi
ể
u th
ứ
c>)<l
ệ
nh
>
if(<bi
ể
u th
ứ
c>)<l
ệ
nh1
>
else <l
ệ
nh2>
<biểu thức>
<lệnh>
!=0
==0
<biểu thức>
<lệnh1>
!=0
==0
<lệnh2>
Cấu trúc lựa chọn (tt)
Ví dụ 1: Chương trình tìm max(a,b,c) = ?
#include <stdio.h>
#include <conio.h>
void main()
{
int a,b,c,max;
printf("\nnhap a, b, c: ");
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max<b)max=b;
if(max<c)max=c;
printf("\nmax = %d",max);
}
Cấu trúc lựa chọn (tt)
Ví dụ 2: Tính tiền thuê phòng khách sạn
biết số ngày thuê n và loại phòng được
nhập từ bàn phím. Theo bảng đơn giá:
Loại phòng giá
A 250
B 200
C 150
Nếu số ngày n > 7 thì giảm 5% giá phòng.
Cấu trúc lựa chọn (tt)
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
void main()
{
int n;
char lp;
float t,gia;
printf("\nnhap loai phong = ");
lp=toupper(getchar());
printf("\nso ngay n = ");
scanf("%d",&n);
if(lp=='A')gia=250;
else
if(lp=='B')gia=200;
else gia=150;
if(n>7)gia=gia*0.95;
t=n*gia;
printf("\nso tien phai tra = %0.2f",t);
}
Cấu trúc lựa chọn (tt)
Câu lệnh rẽ nhánh:
switch(<biểu thức>)
{
case l1: <kl1>
case l2: <kl2>
case lj: <klj>
[default: <klj+1>]
}
Cấu trúc lựa chọn (tt)
Bt=l1
kl1
Bt=lj
klj
default?
klj+1
Sơ đồ thực hiện câu lệnh switch
Cấu trúc lựa chọn (tt)
Ví dụ 3: đoạn mã đọc số từ 1 đến 9
switch(thang)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12: songay=31;break;
case 4:case 6:case 9:case 11: songay=30;break;
case 2: switch(nam%4)
{
case 0: songay=29;break;
default: songay=28;
}
}
printf("\nso ngay = %d",songay);
Cấu trúc lặp
Câu lệnh for:
bt1
bt2
<kl>
bt3
!=0
==0
for(<bt1>;<bt2>;<bt3>)<kl>
Cấu trúc lặp (tt)
Câu lệnh while
bt
<kl>
!=0
==0
while(<bt>)<kl>
Cấu trúc lặp (tt)
Câu lệnh do:
do<kl>while(<bt>);
bt
<kl>
!=0
==0
Cấu trúc lặp (tt)
Ví dụ 4: Chương trình kiểm tra số n có nguyên tố hay không.
/*
version 1
author: vulong
*/
#include <stdio.h>
#include <conio.h>
void main()
{
int i,f,n;
printf("\nnhap n = ");
scanf("%d",&n);
f=1;
for(i=2;i<=n/2;++i)
if(n%i==0)
{
f=0;
break;
}
if(f==1)
printf("%d la so nguyen to",n);
else
printf("%d khong la so nguyen to",n);
}
Cấu trúc lặp (tt)
/*
version 2
author: vulong
*/
#include <stdio.h>
#include <conio.h>
void main()
{
int i,n;
printf("\nnhap n = ");
scanf("%d",&n);
i=2;
while(n%i!=0)++i;
if(i==n)
printf("%d la so nguyen to",n);
else
printf("%d khong la so nguyen to",n);
}
Cấu trúc lặp (tt)
Ví dụ 5: Đếm số các số lớn nhất trong n số nhập từ bàn phím.
#include <stdio.h>
#include <conio.h>
void main()
{
int i, n, so, max, dem;
printf("\nnhap n = ");
scanf("%d",&n);
dem=0;
for(i=1;i<=n;++i)
{
printf("\nso thu %d = ",i);
scanf("%d",&so);
if(i==1)
{
max=so;
++dem;
}
else
if(so==max)++dem;
else
if(so>max)
{
max=so;
dem=1;
}
}
printf("\nso cac so max = %d",dem);
}
Cấu trúc lặp (tt)
Ví dụ 6: Tìm số n nhỏ nhất để 1 + 2 + + n > k
#include <stdio.h>
#include <conio.h>
void main()
{
int i,k,s;
printf("\nnhap k: ");
scanf("%d",&k);
s=i=0;
while(s<=k)
{
++i;
s=s+i;
}
printf("\nso n nho nhat = %d",i);
}
Hỏi đáp