1. Trang chủ
  2. » Công Nghệ Thông Tin

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

71 1,2K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 1,68 MB

Nội dung

bài giảng này cung cấp cho các bạn kiến thức cơ bản đến chuyên sau của cấu trúc vòng lập trong lập trình sẽ là tài liệu cực hay cho các bạn tring việc học tập và nghiên cứu,là bài viết tham khảo cho các bạn khi làm bài báo cáo thuyết trình.hi vọng bài viết sẽ cung cấp được lượng kiến thức cần thiết nhất cho các bạn

Trang 1

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

Trang 2

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

Trang 3

Cùng Đại học Hoa Sen xây dựng tương lai



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

 Tầm vực biến

 Khối lệnh

Trang 4

Cùng Đại học Hoa Sen xây dựng tương lai

 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

Trang 5

Cùng Đại học Hoa Sen xây dựng tương lai



 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

Trang 6

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 7

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 8

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 9

Cùng Đại học Hoa Sen xây dựng tương lai

END IF cnt=cnt+1

END DO

sum = sum/cntNegNum /* something wrong here */

DISPLAY “Average of negative number”, sum

END

Trang 10

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

Trang 11

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 12

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 13

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 14

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 15

Cùng Đại học Hoa Sen xây dựng tương lai



15

& 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

Trang 16

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 17

Cùng Đại học Hoa Sen xây dựng tương lai



17

++ 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

Trang 18

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

Trang 19

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 20

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

Trang 21

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

Trang 22

Cùng Đại học Hoa Sen xây dựng tương lai



22

Toán Tử Trong Ngôn Ngữ C

tính

++ (postfix) (postfix) () (function call) [ ] { } L-R

++ (prefix) (prefix) - + ~ ! sizeof *() &()

Trang 23

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 24

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 25

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 26

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

Trang 27

Cùng Đại học Hoa Sen xây dựng tương lai

Khởi tạo biến

Thay đổi g.trị của biến

Trang 28

Cùng Đại học Hoa Sen xây dựng tương lai

- Thân của vòng for : có thể là một lệnh, một khối lệnh.

* Lưu ý các vòng lặp có thể lồng vào nhau

Vòng lặp: for

Trang 29

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 30

Cùng Đại học Hoa Sen xây dựng tương lai

z = z+I

DISPLAY z END

Mã giả

(Pseudocode)

Trang 31

Cùng Đại học Hoa Sen xây dựng tương lai



#include “conio.h”

void main() {

Trang 32

Cùng Đại học Hoa Sen xây dựng tương lai

Lưu đồ:

Nếu thỏa đk thì thực hiện lệnh, sai

thì thoát

Vòng lặp: while

Cú pháp:

Trang 33

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 34

Cùng Đại học Hoa Sen xây dựng tương lai

N=N-1;

Xuất N Kết thúc

Mã giả

(Pseudocode)

Trang 35

Cùng Đại học Hoa Sen xây dựng tương lai



#include “conio.h”

void main() {

int N;

printf("Nhap N:");

scanf("%d",&N);

while (N%5!=0) {

N=N-1;

} printf(“So can tim:%d",N);

getch();

}

Mã nguồn

(Code)

Trang 36

Cùng Đại học Hoa Sen xây dựng tương lai

đk

Lệnh;

sai đúng

Vòng lặp do…while

Trang 37

Cùng Đại học Hoa Sen xây dựng tương lai

z  

Trang 38

Cùng Đại học Hoa Sen xây dựng tương lai

Nhập x

Trang 39

Cùng Đại học Hoa Sen xây dựng tương lai



Bắt đầu

Nhập x do

Nhập n

while (n=0)

Tính z = (2*x*x + 3*n)/(n*n)

In z ra màn hình Kết thúc

Mã giả

(Pseudocode)

Trang 40

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 41

Cùng Đại học Hoa Sen xây dựng tương lai



Lệnh break cho phép thoát khỏi vòng lặp của các lệnh for,

while, do while và cấu trúc switch…case

Trong thân các vòng lặp for, while và do…while khi gặp lệnh continue, máy tính sẽ bỏ qua các lệnh còn lại để trở về đầu vòng lặp.

Lệnh continue

Trang 42

Cùng Đại học Hoa Sen xây dựng tương lai

printf(“i = %d \n”,i);

} getch();

}

Lệnh if(! i) tương tự if( i==0), tức là mỗi lần kiểm tra i==0 thì giảm

đi 1 trước.

Trang 43

Cùng Đại học Hoa Sen xây dựng tương lai

{ for (int i=0; i<5; i++)

{ printf("Faculty of Science & Technology!\n");

if (i<4) continue;

printf("Hoa Sen University!\n");

} getch();

}

Trang 44

Cùng Đại học Hoa Sen xây dựng tương lai

 Nếu muốn lặp vô tận ta sử dụng các dạng lặp sau đây:

Trang 45

Cùng Đại học Hoa Sen xây dựng tương lai



45

• a == b : so sánh bằng (a test for equality)

• a = b : gán giá trị (assignment expression) Giá trị LUÔN đúng

Trang 46

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 47

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 48

Cùng Đại học Hoa Sen xây dựng tương lai

• Lý do: biểu thức so sánh thực hiện từ trái sang phải

2 < k < 7 tương đương với (2 < k ) < 7

Vì 2 < k là đúng nên giá trị của nó là 1 Do đó:

2 < k < 7 tương đương với 1 < 7 if( 2 < k && k < 7) /* ĐÚNG */

/* true luôn được in */

Trang 49

Cùng Đại học Hoa Sen xây dựng tương lai

}

• Lý do: x == 9.9 vượt quá độ chính xác của máy Do đó x != 9.9

LUÔN ĐÚNG Chương trình sẽ vào vòng lặp vô tận

• Cách viết chính xác: x <= 9.9;

Trang 50

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 51

Cùng Đại học Hoa Sen xây dựng tương lai

#include

int A, B, C;

const max=100;

int tong2so(int a, int b);

void hoanvi(int a, int b);

void main()

{ int x, y, z;

……

z = tong2so(x,y)

Xây dựng các hàm

Trang 52

Cùng Đại học Hoa Sen xây dựng tương lai

Tầm vực biến là phạm vi hoạt động của biến

Có 2 loại biến:

•Biến toàn cục: có tầm vực trong toàn bộ chương trình

•Biến cục bộ: có tầm vực trong nội bộ 1 hàm

Tầm vực biến (variable scope)

Trang 53

Cùng Đại học Hoa Sen xây dựng tương lai

Biến nội bộ

Trang 54

Cùng Đại học Hoa Sen xây dựng tương lai

- Các khối lệnh có thể lồng nhau: Bên trong một khối lệnh có thể

có một khối lệnh khác Sự lồng nhau như thế là không hạn chế.

- Thân hàm cũng là một khối lệnh

Khối lệnh (block)

Trang 55

Cùng Đại học Hoa Sen xây dựng tương lai

Khối lệnh

Khối lệnh con Khối lệnh con

Trang 56

Cùng Đại học Hoa Sen xây dựng tương lai



56

BÀI TẬP THỰC HÀNH

Trang 57

Cùng Đại học Hoa Sen xây dựng tương lai



a) Diện tích hình tròn (cho bán kính)

b) Diện tích hình tam giác (cho đáy và chiều cao)

2 Viết một đoạn mã giả và vẽ một lưu đồ để nhập điểm của 20 sinh viên

cho các môn : Vật lý, Hóa học, và Sinh học Sau đó hiển thị điểm trung bình và tổng của những điểm này Đồng thời in ra danh sách tất cả sinh viên có điểm trung bình trên 9.0

3 Given that value is an int, what output would the following loop

Trang 58

Cùng Đại học Hoa Sen xây dựng tương lai



Bài tập điểm cộng về nhà

4 Write pseudo code and make flowcharts for the following:

a Accept year from the user Display if the year is leap.

b Accept the month number e.g 1,2 And display the month name

5 Write the pseudo code to display the following output using for loop:

*

* *

* * *

6 Write pseudo code to :

a) Determine sum of first ten natural numbers

b) Determine the product and count of numbers accepted from the user

c) A contractor wants to calculate the salary of all his employees He knows the number of work days put in by each employee Each employee is paid a sum of $100 per day.

Trang 59

Cùng Đại học Hoa Sen xây dựng tương lai



a) Display the cube of first N natural numbers.

b) Generate the following series: 1, 3, 5, 7, 9, …

c) Generate the series: 3, 7, 15, 31, …

8 Illustrate program logic with flowcharts and pseudo codes for the following:

a) Accept a number from the user Reverse it and display it.

b) Accept two numbers find the highest common factor between the two

c) Display all numbers divisible by 5 between 10 and 30.

9 Write a pseudo code to simulate a calculator Input a number an operator and

another number and display the result on the screen

10 Three numbers are said to form a Pythagorean triplet if the sum of squares of two numbers is equal to the square of the third number Write a pseudo code to input three numbers and find if three numbers form a Pythagorean triplet.

Trang 60

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 61

Cùng Đại học Hoa Sen xây dựng tương lai



#include <stdio.h>

int main(void) {

Trang 62

Cùng Đại học Hoa Sen xây dựng tương lai

int k;

for(k = 1, printf("%d: Hi!\n", k); printf("k = %d\n",k), k*k < 26;

k+=2, printf("Now k is %d\n", k) ) printf("k is %d in the loop\n",k);

return 0;

}

Trang 63

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 64

Cùng Đại học Hoa Sen xây dựng tương lai

Trang 65

Cùng Đại học Hoa Sen xây dựng tương lai



Declarations and initializations

int a = 1, b = 2, c = 3;

Expression Equivalent expression Value

a && b && c (a && b) && c

a && b II c

a II b && c

a II !b && !!c + 4

a += !b && c == !5

Trang 66

Cùng Đại học Hoa Sen xây dựng tương lai



Bài tập điểm cộng về nhà

17 Complete the following table

Declarations and initializations

Trang 67

Cùng Đại học Hoa Sen xây dựng tương lai



used to control a for loop In the following code an attempt is being made

to sum the integers from 1 to 5 What is the effect of mixing up the expressions? First, simulate what happens manually, and then write a test program to find out if you were correct.

int i, sum = 0;

for ( i = 1; ++i; i <= 5) printf(“i = %d sum = %d\n”, i, sum += i);

Trang 68

Cùng Đại học Hoa Sen xây dựng tương lai

3/ Viết chương trình nhập vào 2 số Tìm USCLN và MSCNN của 2 số đó.

4/ Viết chương trình nhập vào 1 số nguyên Kiểm tra đó có phải là số chính

phương hay không?

5/ Viết chương trình tính n!

6/ Viết chương trình nhập số nguyên N Hỏi N có bao nhiêu chữ số.

7/ Viết chương trình nhập vào số N tìm tổng các số trong nó (vd: 1234  tổng=10) 8/ Viết chương trình in các kí tự từ ‘A’ đến ‘Z’ xuôi và ngược, chữ hoa và chữ thường 9/ Viết chương trình in bảng cửu chương n.

Trang 69

Cùng Đại học Hoa Sen xây dựng tương lai

10/ Viết chương trình in n số Fibonaci đầu tiên.

Trang 70

Cùng Đại học Hoa Sen xây dựng tương lai

2/ Viết chương trình nhập vào 1 số nguyên N In tất cả nhưng số lẽ

nhỏ hơn hoặc bằng N và không chia hết cho 3.

3/ Tính biểu thức sau (N là số nguyên, x là số thực):

n x n

n Z

Trang 71

Cùng Đại học Hoa Sen xây dựng tương lai



Lưu ý khi làm bài tập:

SV hãy vẽ lưu đồ hoặc mã giả

trước khi viết chương trình

Ngày đăng: 17/06/2014, 15:02

HÌNH ẢNH LIÊN QUAN

BẢNG VÍ VỤ : - slide bài giảng nhập môn lập trình cấu trúc vòng lặp
BẢNG VÍ VỤ : (Trang 16)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w