SlideShare uma empresa Scribd logo
1 de 31
VCVC
&&
BBBB
11
Nội dung
NMLT - Câu lệnh điều kiện và rẽ nhánh
Câu lệnh điều kiện if1
Câu lệnh rẽ nhánh switch2
Một số kinh nghiệm lập trình3
Một số ví dụ minh họa4
VCVC
&&
BBBB
22
<Lệnh 1>
Câu lệnh if (thiếu)
NMLT - Câu lệnh điều kiện và rẽ nhánh
Đ
S
<BT Logic>
if (<BT Logic>)
<Lệnh 1>; Câu lệnh đơn hoặc
Câu lệnh phức (kẹp
giữa { và })
Trong ( ), cho kết quả
(sai = 0, đúng ≠ 0)
VCVC
&&
BBBB
33
Câu lệnh if (thiếu)
NMLT - Câu lệnh điều kiện và rẽ nhánh
void main()
{
if (a == 0)
printf(“a bang 0”);
if (a == 0)
{
printf(“a bang 0”);
a = 2912;
}
}
VCVC
&&
BBBB
44
<Lệnh 1>
Câu lệnh if (đủ)
NMLT - Câu lệnh điều kiện và rẽ nhánh
<Lệnh 2>
Đ
S
<BT Logic>
if (<BT Logic>)
<Lệnh 1>;
else
<Lệnh 2>;
Câu lệnh đơn hoặc
Câu lệnh phức (kẹp
giữa { và })
Trong ( ), cho kết quả
(sai = 0, đúng ≠ 0)
VCVC
&&
BBBB
55
Câu lệnh if (đủ)
NMLT - Câu lệnh điều kiện và rẽ nhánh
void main()
{
if (a == 0)
printf(“a bang 0”);
else
printf(“a khac 0”);
if (a == 0)
{
printf(“a bang 0”);
a = 2912;
}
else
printf(“a khac 0”);
}
VCVC
&&
BBBB
66
Câu lệnh if - Một số lưu ý
Câu lệnh if và câu lệnh if… else là một câu lệnh
đơn.
NMLT - Câu lệnh điều kiện và rẽ nhánh
VCVC
&&
BBBB
77
Câu lệnh if - Một số lưu ý
Câu lệnh if có thể lồng vào nhau và else sẽ
tương ứng với if gần nó nhất.
NMLT - Câu lệnh điều kiện và rẽ nhánh
if (a != 0)
if (b > 0)
printf(“a != 0 va b > 0”);
else
printf(“a != 0 va b <= 0”);
if (a !=0)
{
if (b > 0)
printf(“a != 0 va b > 0”);
else
printf(“a != 0 va b <= 0”);
}
VCVC
&&
BBBB
88
Câu lệnh if - Một số lưu ý
Nên dùng else để loại trừ trường hợp.
NMLT - Câu lệnh điều kiện và rẽ nhánh
if (delta < 0)
printf(“PT vo nghiem”);
if (delta == 0)
printf(“PT co nghiem kep”);
if (delta > 0)
printf(“PT co 2 nghiem”);
if (delta < 0)
printf(“PT vo nghiem”);
else // delta >= 0
if (delta == 0)
printf(“PT co nghiem kep”);
else
printf(“PT co 2 nghiem”);
VCVC
&&
BBBB
99
Câu lệnh if - Một số lưu ý
Không được thêm ; sau điều kiện của if.
NMLT - Câu lệnh điều kiện và rẽ nhánh
void main()
{
int a = 0;
if (a != 0)
printf(“a khac 0.”);
if (a != 0);
printf(“a khac 0.”);
if (a != 0)
{
};
printf(“a khac 0.”);
}
VCVC
&&
BBBB
1010
Câu lệnh switch (thiếu)
switch (<Biến/BT>)
{
case <GT1>:<L1>;break;
case <GT2>:<L2>;break;
…
}
<Biến/BT> là
biến/biểu thức cho giá
trị rời rạc.
<Lệnh> : đơn hoặc
khối lệnh {}.
NMLT - Câu lệnh điều kiện và rẽ nhánh
<Lệnh 1>
Đ
S
<Biến/BT>
= <GT1>
<Biến/BT>
= <GT2>
<Lệnh 2>
Đ
S
VCVC
&&
BBBB
1111
Câu lệnh switch (thiếu)
NMLT - Câu lệnh điều kiện và rẽ nhánh
void main()
{
int a;
printf(“Nhap a: ”);
scanf(“%d”, &a);
switch (a)
{
case 1 : printf(“Mot”); break;
case 2 : printf(“Hai”); break;
case 3 : printf(“Ba”); break;
}
}
VCVC
&&
BBBB
1212
Câu lệnh switch (đủ)
switch (<Biến/BT>)
{
<GT1>:<Lệnh 1>;break;
<GT2>:<Lệnh 2>;break;
…
default:
<Lệnh n>;
}
NMLT - Câu lệnh điều kiện và rẽ nhánh
<Lệnh 1>
Đ
S
<Biến/BT>
= <GT1>
<Biến/BT>
= <GT2>
<Lệnh 2>
Đ
S
<Lệnh n>
VCVC
&&
BBBB
1313
Câu lệnh switch (đủ)
NMLT - Câu lệnh điều kiện và rẽ nhánh
void main()
{
int a;
printf(“Nhap a: ”);
scanf(“%d”, &a);
switch (a)
{
case 1 : printf(“Mot”); break;
case 2 : printf(“Hai”); break;
case 3 : printf(“Ba”); break;
default : printf(“Ko biet doc”);
}
}
VCVC
&&
BBBB
1414
Câu lệnh switch - Một số lưu ý
Câu lệnh switch là một câu lệnh đơn và có thể
lồng nhau.
NMLT - Câu lệnh điều kiện và rẽ nhánh
VCVC
&&
BBBB
1515
Câu lệnh switch - Một số lưu ý
Các giá trị trong mỗi trường hợp phải khác
nhau.
NMLT - Câu lệnh điều kiện và rẽ nhánh
switch (a)
{
case 1 : printf(“Mot”); break;
case 1 : printf(“MOT”); break;
case 2 : printf(“Hai”); break;
case 3 : printf(“Ba”); break;
case 1 : printf(“1”); break;
case 1 : printf(“mot”); break;
default : printf(“Khong biet doc”);
}
VCVC
&&
BBBB
1616
Câu lệnh switch - Một số lưu ý
switch sẽ nhảy đến case tương ứng và thực
hiện đến khi nào gặp break hoặc cuối switch sẽ
kết thúc.
NMLT - Câu lệnh điều kiện và rẽ nhánh
VCVC
&&
BBBB
1717
Câu lệnh switch - Một số lưu ý
switch nhảy đến case tương ứng và thực hiện
đến khi nào gặp break hoặc cuối switch sẽ kết
thúc.
NMLT - Câu lệnh điều kiện và rẽ nhánh
VCVC
&&
BBBB
1818
Câu lệnh switch - Một số lưu ý
Tận dụng tính chất khi bỏ break;
NMLT - Câu lệnh điều kiện và rẽ nhánh
VCVC
&&
BBBB
1919
 Câu lệnh if  Câu lệnh switch
NMLT - Câu lệnh điều kiện và rẽ nhánh
Kinh nghiệm lập trình
if (a == 1)
printf(“Mot”);
if (a == 2)
printf(“Hai”);
if (a == 3)
printf(“Ba”);
if (a == 4)
printf(“Bon”);
if (a == 5)
printf(“Nam”);
switch (a)
{
case 1: printf(“Mot”);
break;
case 2: printf(“Hai”);
break;
case 3: printf(“Ba”);
break;
case 4: printf(“Bon”);
break;
case 5: printf(“Nam”);
}
VCVC
&&
BBBB
2020
 Câu lệnh switch  Câu lệnh if
NMLT - Câu lệnh điều kiện và rẽ nhánh
Kinh nghiệm lập trình
if (a == 3.14)
printf(“OK”);
if (a < 10)
printf(“OK”);
if (a == 1)
printf(“OK”);
if (a == 2 || a == 3)
printf(“OK”);
VCVC
&&
BBBB
2121
Bài tập thực hành
1. Nhập một số bất kỳ. Hãy đọc giá trị của số
nguyên đó nếu nó có giá trị từ 1 đến 9, ngược
lại thông báo không đọc được.
2. Nhập một chữ cái. Nếu là chữ thường thì đổi
sang chữ hoa, ngược lại đổi sang chữ thường.
3. Giải phương trình bậc nhất ax + b = 0.
4. Giải phương trình bậc hai ax2
+ bx + c = 0.
NMLT - Câu lệnh điều kiện và rẽ nhánh
VCVC
&&
BBBB
2222
Bài tập thực hành
5. Nhập 4 số nguyên a, b, c và d. Tìm số có giá trị
nhỏ nhất (min).
6. Nhập 4 số nguyên a, b, c và d. Hãy sắp xếp giá
trị của 4 số nguyên này theo thứ tự tăng dần.
7. Tính tiền đi taxi từ số km nhập vào. Biết:
a. 1 km đầu giá 15000đ
b. Từ km thứ 2 đến km thứ 5 giá 13500đ
c. Từ km thứ 6 trở đi giá 11000đ
d. Nếu trên 120km được giảm 10% tổng tiền.
NMLT - Câu lệnh điều kiện và rẽ nhánh
VCVC
&&
BBBB
2323
Bài tập thực hành
8. Nhập vào tháng và năm. Cho biết tháng đó có
bao nhiêu ngày.
9. Nhập độ dài 3 cạnh 1 tam giác. Kiểm tra đó có
phải là tam giác không và là tam giác gì?
NMLT - Câu lệnh điều kiện và rẽ nhánh
VCVC
&&
BBBB
2424
Bài tập 1 (if)
NMLT - Câu lệnh điều kiện và rẽ nhánh
#include <stdio.h>
void main()
{
int n;
printf(“Nhap mot so nguyen: ”);
scanf(“%d”, &n);
if (n == 1)
printf(“Mot”);
else
if (n == 2)
printf(“Hai”);
…
else
printf(“Khong biet doc”);
}
VCVC
&&
BBBB
2525
Bài tập 1 (switch)
NMLT - Câu lệnh điều kiện và rẽ nhánh
#include <stdio.h>
void main()
{
int n;
printf(“Nhap mot so nguyen: ”);
scanf(“%d”, &n);
switch (n)
{
case 1: printf(“Mot”); break;
case 2: printf(“Hai”); break;
case 3: printf(“Ba”); break;
…
default: printf(“Ko biet doc”);
}
}
VCVC
&&
BBBB
2626
Bài tập 2
NMLT - Câu lệnh điều kiện và rẽ nhánh
#include <stdio.h>
void main()
{
char ch;
printf(“Nhap mot ky tu: ”);
scanf(“%c”, &ch);
if (ch >= ‘a’ && ch <= ‘z’)
ch = ch – 32;
else
if (ch >= ‘A’ && ch <= ‘Z’)
ch = ch + 32;
printf(“Ky tu sau khi doi: %c”, ch);
}
VCVC
&&
BBBB
2727
Bài tập 3
NMLT - Câu lệnh điều kiện và rẽ nhánh
#include <stdio.h>
#include <conio.h>
void main()
{
int a, b;
printf(“Nhap a, b: ”);
scanf(“%d%d”, &a, &b);
if (a == 0)
if (b == 0)
printf(“Phuong trinh VSN”);
else
printf(“Phuong trinh VN”);
else
printf(“Nghiem = %f”, float(-b)/a);
}
VCVC
&&
BBBB
2828
Bài tập 4
NMLT - Câu lệnh điều kiện và rẽ nhánh
#include <stdio.h>
void main()
{
int a, b, c;
printf(“Nhap a, b, c: ”);
scanf(“%d%d%d”, &a, &b, &c);
if (a == 0)
{
// Giai PT Bac 1 o day
}
else
{
// Giai PT Bac 2 o day
}
}
VCVC
&&
BBBB
2929
Bài tập 5
NMLT - Câu lệnh điều kiện và rẽ nhánh
#include <stdio.h>
void main()
{
int a, b, c, d, min;
printf(“Nhap a, b, c, d: ”);
scanf(“%d%d%d%d”, &a, &b, &c, &d);
min = a;
if (b < min) min = b;
if (c < min) min = c;
if (d < min) min = d;
printf(“So nho nhat la %d”, min);
}
VCVC
&&
BBBB
3030
Bài tập 6
NMLT - Câu lệnh điều kiện và rẽ nhánh
#include <stdio.h>
void main()
{
int a, b, c, d, tam;
printf(“Nhap a, b, c, d: ”);
scanf(“%d%d%d%d”, &a, &b, &b, &d);
if (a > b)
{ tam = a; a = b; b = tam; }
…
printf(“Cac so theo thu tu tang dan: ”);
printf(“%d %d %d %d”, a, b, c, d);
}
VCVC
&&
BBBB
3131
Bài tập 7
Nên khai báo hằng số lưu giá tiền và km
 #define G1 15000
 #define G2 13500
 #define G3 11000
Cách tính tiền dựa trên số km n
 n = 1  T = G1
 2 ≤ n ≤ 5  T = G1 + (n – 1)*G2;
 n > 5  T = G1 + 4*G2 + (n – 1 – 4)*G3;
n > 120  T = T*0.9;
NMLT - Câu lệnh điều kiện và rẽ nhánh

Mais conteúdo relacionado

Mais procurados

Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Shellmates
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
Esun Kim
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
Regis Magalhães
 

Mais procurados (20)

Résumé javascript
Résumé javascriptRésumé javascript
Résumé javascript
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Abusing the Train Communication Network or What could have derailed the North...
Abusing the Train Communication Network or What could have derailed the North...Abusing the Train Communication Network or What could have derailed the North...
Abusing the Train Communication Network or What could have derailed the North...
 
Bab 8 rekursif
Bab 8 rekursifBab 8 rekursif
Bab 8 rekursif
 
Arbre et algorithme de recherche
Arbre et algorithme de rechercheArbre et algorithme de recherche
Arbre et algorithme de recherche
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
8 Data Record
8 Data Record8 Data Record
8 Data Record
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018
 
8 bit single cycle processor
8 bit single cycle processor8 bit single cycle processor
8 bit single cycle processor
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
Pemrograman Logika Induktif (Inductive Logic Programming)
Pemrograman Logika Induktif (Inductive Logic Programming)Pemrograman Logika Induktif (Inductive Logic Programming)
Pemrograman Logika Induktif (Inductive Logic Programming)
 
Verilog 모듈 연결하기
Verilog 모듈 연결하기Verilog 모듈 연결하기
Verilog 모듈 연결하기
 
코딩테스트 합격자 되기 3주차 스터디 - 재귀
코딩테스트 합격자 되기 3주차 스터디 - 재귀코딩테스트 합격자 되기 3주차 스터디 - 재귀
코딩테스트 합격자 되기 3주차 스터디 - 재귀
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 
Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Estrutura de Dados - Registros
Estrutura de Dados - RegistrosEstrutura de Dados - Registros
Estrutura de Dados - Registros
 

Destaque

10 звонков - 10 продаж
10 звонков - 10 продаж10 звонков - 10 продаж
10 звонков - 10 продаж
grandunion24
 
Bab v diagnosis hama tanaman
Bab v  diagnosis hama tanamanBab v  diagnosis hama tanaman
Bab v diagnosis hama tanaman
Kustam Ktm
 
Los Cabos Specialist Program - View Certificate
Los Cabos Specialist Program - View CertificateLos Cabos Specialist Program - View Certificate
Los Cabos Specialist Program - View Certificate
Tinoka McPherson
 
fisicoquimica forcas intermoleculares e propriedades
 fisicoquimica forcas intermoleculares e propriedades fisicoquimica forcas intermoleculares e propriedades
fisicoquimica forcas intermoleculares e propriedades
Julyanne Rodrigues
 
Trabalho entrevista fatores operacionais
Trabalho entrevista   fatores operacionaisTrabalho entrevista   fatores operacionais
Trabalho entrevista fatores operacionais
Sandro Grohs
 
Livemocha - parte 2
Livemocha - parte 2Livemocha - parte 2
Livemocha - parte 2
aiadufmg
 
Aula 09 11 - camila vergueiro
Aula 09 11 - camila vergueiroAula 09 11 - camila vergueiro
Aula 09 11 - camila vergueiro
Fernanda Moreira
 
05.manual de legislação de convenios
05.manual de legislação de convenios05.manual de legislação de convenios
05.manual de legislação de convenios
gvirtual
 

Destaque (20)

Silabus SIMDIG C2
Silabus SIMDIG C2Silabus SIMDIG C2
Silabus SIMDIG C2
 
10 звонков - 10 продаж
10 звонков - 10 продаж10 звонков - 10 продаж
10 звонков - 10 продаж
 
Bab v diagnosis hama tanaman
Bab v  diagnosis hama tanamanBab v  diagnosis hama tanaman
Bab v diagnosis hama tanaman
 
Educação e trabalho Segnini
Educação e trabalho SegniniEducação e trabalho Segnini
Educação e trabalho Segnini
 
QuÉDate E
QuÉDate EQuÉDate E
QuÉDate E
 
CóMoolvid[2]
CóMoolvid[2]CóMoolvid[2]
CóMoolvid[2]
 
Los Cabos Specialist Program - View Certificate
Los Cabos Specialist Program - View CertificateLos Cabos Specialist Program - View Certificate
Los Cabos Specialist Program - View Certificate
 
fisicoquimica forcas intermoleculares e propriedades
 fisicoquimica forcas intermoleculares e propriedades fisicoquimica forcas intermoleculares e propriedades
fisicoquimica forcas intermoleculares e propriedades
 
Mídia Kit Dia do Frete Grátis 2014
Mídia Kit Dia do Frete Grátis 2014Mídia Kit Dia do Frete Grátis 2014
Mídia Kit Dia do Frete Grátis 2014
 
Trabalho entrevista fatores operacionais
Trabalho entrevista   fatores operacionaisTrabalho entrevista   fatores operacionais
Trabalho entrevista fatores operacionais
 
Móbile e Novas Tendências - Breno Koscki
Móbile e Novas Tendências - Breno KosckiMóbile e Novas Tendências - Breno Koscki
Móbile e Novas Tendências - Breno Koscki
 
Livemocha - parte 2
Livemocha - parte 2Livemocha - parte 2
Livemocha - parte 2
 
Cada mañana te doy gracias
Cada mañana te doy graciasCada mañana te doy gracias
Cada mañana te doy gracias
 
La puesta en escena
La puesta en escenaLa puesta en escena
La puesta en escena
 
bingokortti etu
bingokortti etubingokortti etu
bingokortti etu
 
Aula 09 11 - camila vergueiro
Aula 09 11 - camila vergueiroAula 09 11 - camila vergueiro
Aula 09 11 - camila vergueiro
 
Hoy se trata de comunicar y ser comprendido
Hoy se trata de comunicar y ser comprendidoHoy se trata de comunicar y ser comprendido
Hoy se trata de comunicar y ser comprendido
 
Direitos Reais. aquisição posse
Direitos Reais. aquisição posseDireitos Reais. aquisição posse
Direitos Reais. aquisição posse
 
05.manual de legislação de convenios
05.manual de legislação de convenios05.manual de legislação de convenios
05.manual de legislação de convenios
 
BIOGRAFIA DO MESTRE BAL
BIOGRAFIA DO MESTRE BALBIOGRAFIA DO MESTRE BAL
BIOGRAFIA DO MESTRE BAL
 

Semelhante a Nmlt c04 cau_lenhdieukienvarenhanh

Nmlt c04 cau_lenhdieukienvarenhanh_in
Nmlt c04 cau_lenhdieukienvarenhanh_inNmlt c04 cau_lenhdieukienvarenhanh_in
Nmlt c04 cau_lenhdieukienvarenhanh_in
Huy Nguyễn
 
Nmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Nmlt C04 Cau Lenh Dieu Kien Va Re NhanhNmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Nmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Cuong
 
Nmlt c05 cau_lenhlap_in
Nmlt c05 cau_lenhlap_inNmlt c05 cau_lenhlap_in
Nmlt c05 cau_lenhlap_in
Huy Nguyễn
 
Phần 4: Lệnh điều khiển và rẽ nhánh
Phần 4: Lệnh điều khiển và rẽ nhánhPhần 4: Lệnh điều khiển và rẽ nhánh
Phần 4: Lệnh điều khiển và rẽ nhánh
Huy Rùa
 
Nmlt c11 con_trocoban_in
Nmlt c11 con_trocoban_inNmlt c11 con_trocoban_in
Nmlt c11 con_trocoban_in
Huy Nguyễn
 
Trust me broTrust me broTrust me broTrust me bro
Trust me broTrust me broTrust me broTrust me broTrust me broTrust me broTrust me broTrust me bro
Trust me broTrust me broTrust me broTrust me bro
LcThnh18
 
Nmlt c03 cac_kieudulieucoso_in
Nmlt c03 cac_kieudulieucoso_inNmlt c03 cac_kieudulieucoso_in
Nmlt c03 cac_kieudulieucoso_in
Huy Nguyễn
 
Nmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_inNmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_in
Huy Nguyễn
 
Nmlt c07 mang1_chieu_in
Nmlt c07 mang1_chieu_inNmlt c07 mang1_chieu_in
Nmlt c07 mang1_chieu_in
Huy Nguyễn
 
Nmlt c08 mang2_chieu_in
Nmlt c08 mang2_chieu_inNmlt c08 mang2_chieu_in
Nmlt c08 mang2_chieu_in
Huy Nguyễn
 
2 Cau Truc Dieu Khien
2 Cau Truc Dieu Khien2 Cau Truc Dieu Khien
2 Cau Truc Dieu Khien
Cuong
 

Semelhante a Nmlt c04 cau_lenhdieukienvarenhanh (20)

Nmlt c04 cau_lenhdieukienvarenhanh_in
Nmlt c04 cau_lenhdieukienvarenhanh_inNmlt c04 cau_lenhdieukienvarenhanh_in
Nmlt c04 cau_lenhdieukienvarenhanh_in
 
Nmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Nmlt C04 Cau Lenh Dieu Kien Va Re NhanhNmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Nmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
 
Nmlt c05 cau_lenhlap_in
Nmlt c05 cau_lenhlap_inNmlt c05 cau_lenhlap_in
Nmlt c05 cau_lenhlap_in
 
Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucoso
 
Phần 4: Lệnh điều khiển và rẽ nhánh
Phần 4: Lệnh điều khiển và rẽ nhánhPhần 4: Lệnh điều khiển và rẽ nhánh
Phần 4: Lệnh điều khiển và rẽ nhánh
 
Nmlt c11 con_trocoban
Nmlt c11 con_trocobanNmlt c11 con_trocoban
Nmlt c11 con_trocoban
 
Nmlt c11 con_trocoban_in
Nmlt c11 con_trocoban_inNmlt c11 con_trocoban_in
Nmlt c11 con_trocoban_in
 
Nmlt c16 ky_thuatlaptrinhdequy
Nmlt c16 ky_thuatlaptrinhdequyNmlt c16 ky_thuatlaptrinhdequy
Nmlt c16 ky_thuatlaptrinhdequy
 
Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-
 
Trust me broTrust me broTrust me broTrust me bro
Trust me broTrust me broTrust me broTrust me broTrust me broTrust me broTrust me broTrust me bro
Trust me broTrust me broTrust me broTrust me bro
 
Nmlt c03 cac_kieudulieucoso_in
Nmlt c03 cac_kieudulieucoso_inNmlt c03 cac_kieudulieucoso_in
Nmlt c03 cac_kieudulieucoso_in
 
Nmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_inNmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_in
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
Nmlt c08 mang2_chieu
Nmlt c08 mang2_chieuNmlt c08 mang2_chieu
Nmlt c08 mang2_chieu
 
Nmlt c07 mang1_chieu_in
Nmlt c07 mang1_chieu_inNmlt c07 mang1_chieu_in
Nmlt c07 mang1_chieu_in
 
Nmlt c07 mang1_chieu
Nmlt c07 mang1_chieuNmlt c07 mang1_chieu
Nmlt c07 mang1_chieu
 
Control structure in C
Control structure in CControl structure in C
Control structure in C
 
Nmlt c08 mang2_chieu_in
Nmlt c08 mang2_chieu_inNmlt c08 mang2_chieu_in
Nmlt c08 mang2_chieu_in
 
2 Cau Truc Dieu Khien
2 Cau Truc Dieu Khien2 Cau Truc Dieu Khien
2 Cau Truc Dieu Khien
 
Nmlt c06 ham_in
Nmlt c06 ham_inNmlt c06 ham_in
Nmlt c06 ham_in
 

Mais de Minh Ngoc Tran (12)

Nmlt c12 quan_lybonho
Nmlt c12 quan_lybonhoNmlt c12 quan_lybonho
Nmlt c12 quan_lybonho
 
Nmlt c10 cau_truc
Nmlt c10 cau_trucNmlt c10 cau_truc
Nmlt c10 cau_truc
 
Nmlt c09 chuoi_kytu
Nmlt c09 chuoi_kytuNmlt c09 chuoi_kytu
Nmlt c09 chuoi_kytu
 
Nmlt c02 gioi_thieunnltc
Nmlt c02 gioi_thieunnltcNmlt c02 gioi_thieunnltc
Nmlt c02 gioi_thieunnltc
 
Nmlt c01 cac_khainiemcobanvelaptrinh
Nmlt c01 cac_khainiemcobanvelaptrinhNmlt c01 cac_khainiemcobanvelaptrinh
Nmlt c01 cac_khainiemcobanvelaptrinh
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 
Bai tapktlt phan3
Bai tapktlt phan3Bai tapktlt phan3
Bai tapktlt phan3
 
Bai tapktlt phan2
Bai tapktlt phan2Bai tapktlt phan2
Bai tapktlt phan2
 
Bai tapktlt phan1
Bai tapktlt phan1Bai tapktlt phan1
Bai tapktlt phan1
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1
 
Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3
 

Nmlt c04 cau_lenhdieukienvarenhanh

  • 1. VCVC && BBBB 11 Nội dung NMLT - Câu lệnh điều kiện và rẽ nhánh Câu lệnh điều kiện if1 Câu lệnh rẽ nhánh switch2 Một số kinh nghiệm lập trình3 Một số ví dụ minh họa4
  • 2. VCVC && BBBB 22 <Lệnh 1> Câu lệnh if (thiếu) NMLT - Câu lệnh điều kiện và rẽ nhánh Đ S <BT Logic> if (<BT Logic>) <Lệnh 1>; Câu lệnh đơn hoặc Câu lệnh phức (kẹp giữa { và }) Trong ( ), cho kết quả (sai = 0, đúng ≠ 0)
  • 3. VCVC && BBBB 33 Câu lệnh if (thiếu) NMLT - Câu lệnh điều kiện và rẽ nhánh void main() { if (a == 0) printf(“a bang 0”); if (a == 0) { printf(“a bang 0”); a = 2912; } }
  • 4. VCVC && BBBB 44 <Lệnh 1> Câu lệnh if (đủ) NMLT - Câu lệnh điều kiện và rẽ nhánh <Lệnh 2> Đ S <BT Logic> if (<BT Logic>) <Lệnh 1>; else <Lệnh 2>; Câu lệnh đơn hoặc Câu lệnh phức (kẹp giữa { và }) Trong ( ), cho kết quả (sai = 0, đúng ≠ 0)
  • 5. VCVC && BBBB 55 Câu lệnh if (đủ) NMLT - Câu lệnh điều kiện và rẽ nhánh void main() { if (a == 0) printf(“a bang 0”); else printf(“a khac 0”); if (a == 0) { printf(“a bang 0”); a = 2912; } else printf(“a khac 0”); }
  • 6. VCVC && BBBB 66 Câu lệnh if - Một số lưu ý Câu lệnh if và câu lệnh if… else là một câu lệnh đơn. NMLT - Câu lệnh điều kiện và rẽ nhánh
  • 7. VCVC && BBBB 77 Câu lệnh if - Một số lưu ý Câu lệnh if có thể lồng vào nhau và else sẽ tương ứng với if gần nó nhất. NMLT - Câu lệnh điều kiện và rẽ nhánh if (a != 0) if (b > 0) printf(“a != 0 va b > 0”); else printf(“a != 0 va b <= 0”); if (a !=0) { if (b > 0) printf(“a != 0 va b > 0”); else printf(“a != 0 va b <= 0”); }
  • 8. VCVC && BBBB 88 Câu lệnh if - Một số lưu ý Nên dùng else để loại trừ trường hợp. NMLT - Câu lệnh điều kiện và rẽ nhánh if (delta < 0) printf(“PT vo nghiem”); if (delta == 0) printf(“PT co nghiem kep”); if (delta > 0) printf(“PT co 2 nghiem”); if (delta < 0) printf(“PT vo nghiem”); else // delta >= 0 if (delta == 0) printf(“PT co nghiem kep”); else printf(“PT co 2 nghiem”);
  • 9. VCVC && BBBB 99 Câu lệnh if - Một số lưu ý Không được thêm ; sau điều kiện của if. NMLT - Câu lệnh điều kiện và rẽ nhánh void main() { int a = 0; if (a != 0) printf(“a khac 0.”); if (a != 0); printf(“a khac 0.”); if (a != 0) { }; printf(“a khac 0.”); }
  • 10. VCVC && BBBB 1010 Câu lệnh switch (thiếu) switch (<Biến/BT>) { case <GT1>:<L1>;break; case <GT2>:<L2>;break; … } <Biến/BT> là biến/biểu thức cho giá trị rời rạc. <Lệnh> : đơn hoặc khối lệnh {}. NMLT - Câu lệnh điều kiện và rẽ nhánh <Lệnh 1> Đ S <Biến/BT> = <GT1> <Biến/BT> = <GT2> <Lệnh 2> Đ S
  • 11. VCVC && BBBB 1111 Câu lệnh switch (thiếu) NMLT - Câu lệnh điều kiện và rẽ nhánh void main() { int a; printf(“Nhap a: ”); scanf(“%d”, &a); switch (a) { case 1 : printf(“Mot”); break; case 2 : printf(“Hai”); break; case 3 : printf(“Ba”); break; } }
  • 12. VCVC && BBBB 1212 Câu lệnh switch (đủ) switch (<Biến/BT>) { <GT1>:<Lệnh 1>;break; <GT2>:<Lệnh 2>;break; … default: <Lệnh n>; } NMLT - Câu lệnh điều kiện và rẽ nhánh <Lệnh 1> Đ S <Biến/BT> = <GT1> <Biến/BT> = <GT2> <Lệnh 2> Đ S <Lệnh n>
  • 13. VCVC && BBBB 1313 Câu lệnh switch (đủ) NMLT - Câu lệnh điều kiện và rẽ nhánh void main() { int a; printf(“Nhap a: ”); scanf(“%d”, &a); switch (a) { case 1 : printf(“Mot”); break; case 2 : printf(“Hai”); break; case 3 : printf(“Ba”); break; default : printf(“Ko biet doc”); } }
  • 14. VCVC && BBBB 1414 Câu lệnh switch - Một số lưu ý Câu lệnh switch là một câu lệnh đơn và có thể lồng nhau. NMLT - Câu lệnh điều kiện và rẽ nhánh
  • 15. VCVC && BBBB 1515 Câu lệnh switch - Một số lưu ý Các giá trị trong mỗi trường hợp phải khác nhau. NMLT - Câu lệnh điều kiện và rẽ nhánh switch (a) { case 1 : printf(“Mot”); break; case 1 : printf(“MOT”); break; case 2 : printf(“Hai”); break; case 3 : printf(“Ba”); break; case 1 : printf(“1”); break; case 1 : printf(“mot”); break; default : printf(“Khong biet doc”); }
  • 16. VCVC && BBBB 1616 Câu lệnh switch - Một số lưu ý switch sẽ nhảy đến case tương ứng và thực hiện đến khi nào gặp break hoặc cuối switch sẽ kết thúc. NMLT - Câu lệnh điều kiện và rẽ nhánh
  • 17. VCVC && BBBB 1717 Câu lệnh switch - Một số lưu ý switch nhảy đến case tương ứng và thực hiện đến khi nào gặp break hoặc cuối switch sẽ kết thúc. NMLT - Câu lệnh điều kiện và rẽ nhánh
  • 18. VCVC && BBBB 1818 Câu lệnh switch - Một số lưu ý Tận dụng tính chất khi bỏ break; NMLT - Câu lệnh điều kiện và rẽ nhánh
  • 19. VCVC && BBBB 1919  Câu lệnh if  Câu lệnh switch NMLT - Câu lệnh điều kiện và rẽ nhánh Kinh nghiệm lập trình if (a == 1) printf(“Mot”); if (a == 2) printf(“Hai”); if (a == 3) printf(“Ba”); if (a == 4) printf(“Bon”); if (a == 5) printf(“Nam”); switch (a) { case 1: printf(“Mot”); break; case 2: printf(“Hai”); break; case 3: printf(“Ba”); break; case 4: printf(“Bon”); break; case 5: printf(“Nam”); }
  • 20. VCVC && BBBB 2020  Câu lệnh switch  Câu lệnh if NMLT - Câu lệnh điều kiện và rẽ nhánh Kinh nghiệm lập trình if (a == 3.14) printf(“OK”); if (a < 10) printf(“OK”); if (a == 1) printf(“OK”); if (a == 2 || a == 3) printf(“OK”);
  • 21. VCVC && BBBB 2121 Bài tập thực hành 1. Nhập một số bất kỳ. Hãy đọc giá trị của số nguyên đó nếu nó có giá trị từ 1 đến 9, ngược lại thông báo không đọc được. 2. Nhập một chữ cái. Nếu là chữ thường thì đổi sang chữ hoa, ngược lại đổi sang chữ thường. 3. Giải phương trình bậc nhất ax + b = 0. 4. Giải phương trình bậc hai ax2 + bx + c = 0. NMLT - Câu lệnh điều kiện và rẽ nhánh
  • 22. VCVC && BBBB 2222 Bài tập thực hành 5. Nhập 4 số nguyên a, b, c và d. Tìm số có giá trị nhỏ nhất (min). 6. Nhập 4 số nguyên a, b, c và d. Hãy sắp xếp giá trị của 4 số nguyên này theo thứ tự tăng dần. 7. Tính tiền đi taxi từ số km nhập vào. Biết: a. 1 km đầu giá 15000đ b. Từ km thứ 2 đến km thứ 5 giá 13500đ c. Từ km thứ 6 trở đi giá 11000đ d. Nếu trên 120km được giảm 10% tổng tiền. NMLT - Câu lệnh điều kiện và rẽ nhánh
  • 23. VCVC && BBBB 2323 Bài tập thực hành 8. Nhập vào tháng và năm. Cho biết tháng đó có bao nhiêu ngày. 9. Nhập độ dài 3 cạnh 1 tam giác. Kiểm tra đó có phải là tam giác không và là tam giác gì? NMLT - Câu lệnh điều kiện và rẽ nhánh
  • 24. VCVC && BBBB 2424 Bài tập 1 (if) NMLT - Câu lệnh điều kiện và rẽ nhánh #include <stdio.h> void main() { int n; printf(“Nhap mot so nguyen: ”); scanf(“%d”, &n); if (n == 1) printf(“Mot”); else if (n == 2) printf(“Hai”); … else printf(“Khong biet doc”); }
  • 25. VCVC && BBBB 2525 Bài tập 1 (switch) NMLT - Câu lệnh điều kiện và rẽ nhánh #include <stdio.h> void main() { int n; printf(“Nhap mot so nguyen: ”); scanf(“%d”, &n); switch (n) { case 1: printf(“Mot”); break; case 2: printf(“Hai”); break; case 3: printf(“Ba”); break; … default: printf(“Ko biet doc”); } }
  • 26. VCVC && BBBB 2626 Bài tập 2 NMLT - Câu lệnh điều kiện và rẽ nhánh #include <stdio.h> void main() { char ch; printf(“Nhap mot ky tu: ”); scanf(“%c”, &ch); if (ch >= ‘a’ && ch <= ‘z’) ch = ch – 32; else if (ch >= ‘A’ && ch <= ‘Z’) ch = ch + 32; printf(“Ky tu sau khi doi: %c”, ch); }
  • 27. VCVC && BBBB 2727 Bài tập 3 NMLT - Câu lệnh điều kiện và rẽ nhánh #include <stdio.h> #include <conio.h> void main() { int a, b; printf(“Nhap a, b: ”); scanf(“%d%d”, &a, &b); if (a == 0) if (b == 0) printf(“Phuong trinh VSN”); else printf(“Phuong trinh VN”); else printf(“Nghiem = %f”, float(-b)/a); }
  • 28. VCVC && BBBB 2828 Bài tập 4 NMLT - Câu lệnh điều kiện và rẽ nhánh #include <stdio.h> void main() { int a, b, c; printf(“Nhap a, b, c: ”); scanf(“%d%d%d”, &a, &b, &c); if (a == 0) { // Giai PT Bac 1 o day } else { // Giai PT Bac 2 o day } }
  • 29. VCVC && BBBB 2929 Bài tập 5 NMLT - Câu lệnh điều kiện và rẽ nhánh #include <stdio.h> void main() { int a, b, c, d, min; printf(“Nhap a, b, c, d: ”); scanf(“%d%d%d%d”, &a, &b, &c, &d); min = a; if (b < min) min = b; if (c < min) min = c; if (d < min) min = d; printf(“So nho nhat la %d”, min); }
  • 30. VCVC && BBBB 3030 Bài tập 6 NMLT - Câu lệnh điều kiện và rẽ nhánh #include <stdio.h> void main() { int a, b, c, d, tam; printf(“Nhap a, b, c, d: ”); scanf(“%d%d%d%d”, &a, &b, &b, &d); if (a > b) { tam = a; a = b; b = tam; } … printf(“Cac so theo thu tu tang dan: ”); printf(“%d %d %d %d”, a, b, c, d); }
  • 31. VCVC && BBBB 3131 Bài tập 7 Nên khai báo hằng số lưu giá tiền và km  #define G1 15000  #define G2 13500  #define G3 11000 Cách tính tiền dựa trên số km n  n = 1  T = G1  2 ≤ n ≤ 5  T = G1 + (n – 1)*G2;  n > 5  T = G1 + 4*G2 + (n – 1 – 4)*G3; n > 120  T = T*0.9; NMLT - Câu lệnh điều kiện và rẽ nhánh