Tải bản đầy đủ (.ppt) (71 trang)

slide bài giảng nhập môn lập trình cấu trúc vòng lặp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (430.97 KB, 71 trang )

www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Nhập Môn Lập Trình
Cấu trúc Vòng Lặp
For, While, Do … While
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Road Map

Lưu đồ: cấu trúc vòng lâp

Biểu thức và các phép toán trong ngôn ngữ lập trinh C

Biểu thức, toán hạng và toán tử

Phép toán: số học, quan hệ, luận lý, trên bít, tăng giảm

Phép toán điều kiện

Cấu trúc vòng lặp trong ngôn ngữ lập trinh C

for

while

do …. while

break, continue


Các ví dụ về vòng lặp
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Road Map

Cấu trúc chương trình trong ngôn ngữ C

Cấu trúc chương trình

Tầm vực biến

Khối lệnh
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Lưu đồ: vòng lặp

Cấu trúc vòng lặp

Một chương trình máy tính là một tập các câu lệnh sẽ được thực
hiện tuần tự.

Nó có thể lặp lại một số bước với số lần lặp xác định theo yêu cầu
của bài toán hoặc đến khi một số điều kiện nhất định được thỏa
BEGIN
DISPLAY “Scooby”
DISPLAY “Scooby”
DISPLAY “Scooby”
DISPLAY “Scooby”

END
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Lưu đồ: vòng lặp

Nếu để hiển thị tên ta 1000 lần:

viết DISPLAY “Scooby” 1000 lần thì rất tốn công sức.

Có thể tinh giản vấn đề bằng cách viết câu lệnh DISPLAY
chỉ một lần, sau đó đặt nó trong cấu trúc vòng lặp, và chỉ thị
máy tính thực hiện lặp 1000 lần cho câu lệnh trên
Do loop 1000 times
DISPLAY “Scooby”
End loop
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Lưu đồ: vòng lặp

Ví dụ sau là cách viết khác nhưng cũng dùng cấu trúc vòng lặp.
BEGIN
cnt=0
WHILE (cnt < 1000)
DO
DISPLAY “Scooby”
cnt=cnt+1
END DO
END

www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Lưu đồ: vòng lặp
S TART
cnt=0
cnt < 1000
DIS PLA Y " Sc ooby "
cnt=c nt+1
S TOP
Yes
No
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Bài tập nhóm
1. Viết một đoạn mã giả để nhập 20 số và tính tổng của các số dương.
BEGIN
cnt=0, sum = 0
WHILE (cnt < 20)
DO
INPUT num
IF num > 0
sum = sum + num
END IF
cnt=cnt+1
END DO
DISPLAY “Sum of positive number”, sum
END
www.hoasen.edu.vn

Cng Đi hc Hoa Sen xây dng tương lai

Bài tập nhóm
2. Viết một đoạn mã giả để nhập N bất kỳ số và tính trung bình các số âm.
BEGIN
cnt=0, sum = 0, cntNegNum = 0
INPUT N
WHILE (cnt < N)
DO
INPUT num
IF num < 0
sum += num
cntNegNum += 1;
END IF
cnt=cnt+1
END DO
sum = sum/cntNegNum /* something wrong here */
DISPLAY “Average of negative number”, sum
END
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Road Map

Lưu đồ: cấu trúc vòng lâp

Biểu thức và các phép toán trong ngôn ngữ lập trinh C

Biểu thức, toán hạng và toán tử


Phép toán: số học, quan hệ, luận lý, trên bít, tăng giảm

Phép toán điều kiện

Cấu trúc vòng lặp trong ngôn ngữ lập trinh C

for

while

do …. while

break, continue

Các ví dụ về vòng lặp
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

11
Biểu thức là sự kết hợp hợp lệ giữa các toán hạng và các
toán tử và giá trị của nó sẽ được gán cho một biến bên
trái.
Z = (A + B) * 2.5;
A, B, 2.5 : là các toán hạng
+ , * : là các toán tử
Biểu Thức
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

12

Các phép toán số học
Phép toán Ý nghĩa Ví dụ
+ Cộng 5+2=7
- Trừ 5–2=3
* Nhân 5*2=10
/ Chia 5/2=2.5
% Lấy phần dư 5%2=1
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

13
Các phép toán quan hệ (so sánh)
Phép toán Ý nghĩa Ví dụ
> Lớn hơn a > b
>= Lớn hơn hoặc bằng a >= b
< Nhỏ hơn a < b
<= Nhỏ hơn hoặc bằng a <= b
== Bằng a == b
!= Không bằng a!= b
Trong C nếu kết quả là đúng (nhận giá trị 1), nếu sai (nhận giá trị 0).
Ví dụ : 3 > 5 – 1  0 (sai)
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

14
Các phép toán luận lý (Logic)
Phép
toán

Ý nghĩa Ví dụ
! Not (phủ định) !a
&& And (phép giao) a && b
|| Or (phép hoặc) a || b
Kết quả là đúng (nhận giá trị 1), nếu sai (nhận giá trị 0).
Ví dụ : !(3 > 5 – 1)  1 (đúng)
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

15
Phép toán trên bit (bitwise)
Phép toán Ý nghĩa
~ Not bit
& And bit (giao từng cặp bit)
| Or bit (hoặc từng cặp bit)
^ Xor bit (exclusive)-cặp bit khác nhau trả
về 1
<< Dịch trái
>> Dịch phải
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

16
BẢNG VÍ VỤ :
Bit A Bit B
Kết quả
~A A & B A | B A ^ B
0 0 1 0 0 0

0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 1 0
Lưu ý : Các phép toán này chỉ thực hiện trên các toán
hạng có kiểu dữ liệu là số nguyên.
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

17
Phép toán tăng giảm
Phép toán Ý nghĩa
++x Tăng x lên 1 trước khi dùng
x++ Tăng x lên 1 sau khi dùng
x Giảm x xuống 1 trước khi dùng
x Giảm x xuống 1 sau khi dùng
Ví dụ : n = 3;
A = ++n;  A sẽ được gán giá trị là 4
A = n++;  A sẽ được gán giá trị là 3
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai


Prefix: changed before its value is used

q = 2 * ++ a; /* first, increment a by 1;
/* then, multiply a by 2 and assign to q */

Postfix: changed after its value is used


q = 2 * a++; /* first, multiply a by 2 and assign to q;
/* then, increment a by 1 */
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Don’t Be Too Clever
You can fooled if you try to do too much at once with the
increment operators
Ví dụ: In bảng bình phương
While (n < 21)
{
printf(“%10d %10d\n”, num, num*num++);
}
Tùy thuộc vào hệ thống, bảng cửu chương có thể bị in sai. Ví dụ:
Thay vì: 5 25
Có thể: 6 25
hay 6 30
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

Don’t Be Too Clever
Trong ngôn ngữ lập trình C, chương trình biên dịch (complier)
có thể chọn arguments trong hàm để xử lý trước nhằm nâng
hiệu quả của chúng. Tuy nhiên, điều này có thể gây vấn đề nếu
chúng ta dùng toán tử increment
Các ví dụ khác:
Ans = num/2 + 5*(1 + num++);

n = 3;
y = n++ + n++;
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

21
Phép toán điều kiện (biểu thức điều kiện)
<Điều Kiện> ? <biểu thức 1> : <biểu thức 2>;
ĐK đúng
ĐK sai
Ví dụ : kq = (5>3+1) ? 10 : 20;  kq =10
Các Phép Toán
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

22
Toán Tử Trong Ngôn Ngữ C
Toán Tử (thứ tự ưu ên từ trên xuống) Cách
nh
++ (posix) (posix) () (funcon call) [ ] { } L-R
++ (prex) (prex) - + ~ ! sizeof *() &()
(all unary)
R-L
(type name) R-L
* / % L-R
+ - (binary) L-R
<< >> L-R
== != L-R
www.hoasen.edu.vn

Cng Đi hc Hoa Sen xây dng tương lai

23
Toán Tử Trong Ngôn Ngữ C
Toán Tử (thứ tự ưu ên từ trên xuống) Cách
nh
& L-R
^ L-R
| L-R
&& L-R
|| L-R
? : R-L
= *= /= %= += -= <<= >>= &= |= ^= R-L
, (comma) L-R
www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

24
1/ Nhập vào một số hệ 10, đổi ra hệ số 8 và hệ 16
CÁC VÍ DỤ
#include <stdio.h>
#include <conio.h>
void main()
{ int n;
printf(“Nhap mot so he 10: ”);
scanf(“%d”,&n);
printf(“Chuyen sang he 8 la : %o”,n);
printf(“Chuyen sang he 16 la : %x”,n);
getch();
}

www.hoasen.edu.vn
Cng Đi hc Hoa Sen xây dng tương lai

www.hoasen.edu.vn
25
3/ Cho 2 số int a=2, b=4; Hãy đoán trị của các số a, b và n trong
các phép toán tăng giảm sau:
Biểu thức n=? a=? b=?
n=a+b
n=++a+b
n=a++ +b
n= a+b
n=a +b
6 2 46 2 46 2
47 3
6 3 4
5 1 4
6 1 4
CÁC VÍ DỤ

×