Các lệnh chuyển điều khiển

Một phần của tài liệu Giáo trình lập trình căn bản (nghề kỹ thuật sửa chữa, lắp ráp máy tính) (Trang 45 - 50)

4.1. Câu lnh break

Câu lệnh break cho phép ra khỏi các chu trình với các toán tử for, while và switch. Khi có nhiều chu trình lồng nhau, câu lệnh break sẽ đưa máy ra khỏi chu trình bên trong nhất chứa nó không cần điều kiện gì. Mọi câu lệnh break có thể thay bằng câu lệnh goto với nhãn thích hợp.

Ví dụ: Biết số nguyên dương n sẽ là số nguyên tố nếu nó không chia hết cho các số nguyên trong khoảng từ 2 đến căn bậc hai của n. Viết đoạn chương trình đọc vào số nguyên dương n, xem n có là số nguyên tố.

#include <stdio.h> #include <math.h> unsigned int n; void main(){ int i,nt=1; printf("\n cho n="); scanf("%d",&n); for (i=2;i<=sqrt(n);++i) if ((n % i)==0){ nt=0; break; } if (nt)

printf("\n %d la so nguyen to",n); else

printf("\n %d khong la so nguyen to",n); }

4.2.Câu lnh continue

Trái với câu lệnh break, lệnh continue dùng để bắt đầu một vòng mới của chu trình chứa nó. Trong while và do while, lệnh continue chuyển điều khiển về thực hiện ngay phần kiểm tra, còn trong for điều khiển được chuyển về bước khởi đầu lại (tức là bước: tính biểu thức 3, sau đó quay lại bước 2 để bắt đầu một vòng mới của chu trình).

Chú ý:

Lệnh continue chỉ áp dụng cho chu trình chứ không áp dụng cho switch.

Ví dụ: In ra màn hình giá trị từ10 đến 20 trừđi số 13 và số 17. #include <stdio.h>

void main(){

for (int i=10 ; i<=20; i++){ if (i==13||i==17) continue; printf(“%d , ”,i); } printf(“Ket thuc”); } 4.3.Câu lnh Goto

Lệnh goto cho phép nhảy vô điều kiện tới bất kỳđiểm nào trong chương trình.

Ví dụ: #include <stdio.h> void main (){ int n=10; loop: ; printf(“%d ,”,n); n--; if (n>0) goto loop; printf(“Kết thúc!”); getch(); } 4.4. Hàm Exit

Hàm exit() trong C được sử dụng để thoát khỏi chương trình. Hàm này, khi được triệu gọi sẽ ngay lập tức kết thúc chương trình và chuyển quyền điều khiển cho hệ điều hành.

mã_trả_về thường là số 0. Số 0 sẽ xác định việc kết thúc chương trình một cách bình thường. Tuy nhiên có một vài trường hợp mã_trả_về là những số khác 0 để xác định một vài loại lỗi.

5. Kết hợp các cấu trúc điều khiển trong chương trình

Ví dụ 1: Viết chương trình tìm ước số chung của 2 số. #include<stdio.h>

#include<conio.h> void main(){

unsigned int a,b;

printf("\nNhap hai so a,b: "); scanf("%u%u",&a,&b);

while (a%b==0 || b%a ==0){ if (a>b & ((a%b)==0))

printf("\nUoc chung la= %d",a/b); else if (b>a & ((b%a)==0))

printf("\Uoc chung la= %d",b/a); }

printf("\nKhong co uoc so!!!"); getch();

}

Ví dụ 2: Nhập 3 số nguyên a, b và n với a, b < n. Tính tổng các số nguyên dương nhỏ hơn n chia hết cho a nhưng không chia hết cho b.

#include <stdio.h> #include <conio.h> void main(){ int a, b, n, i, s; do{ printf(“Nhap a, b, n: ”); scanf(“%d%d%d”, &a, &b, &n); } while (a >= n || b >= n);

s = 0;

for (i = 1; i <= n – 1; i++)

if (i % a == 0 && i % b != 0) s = s + i;

printf(“Tong cac thoa yeu cau la %d”, s); }

BÀI TP

Lý thuyết

1. Nêu cú pháp và vẽ sơ đồ khối của câu lệnh if, switch for, lệnh while và lệnh do… while. Chỉ rõ điều kiện của các thành phần trong cú pháp.

2. Cho các ví dụ tương ứng

Thc hành

3. Nhập một số nguyên bất kỳ. Hãy đọc giá trị của số nguyên đó nếu nó có giá trị từ 0 đến 9, ngược lại thông báo không đọc được.

4. Nhập 3 số nguyên a, b và c từ bàn phím. Hãy tìm số có giá trị nhỏ nhất ( hoặc lớn nhất). 5. Tính tiền đi taxi từ số km nhập vào. Biết:

- 1 km đầu giá 15000đ

- Từ km thứ 2 đến km thứ 5 giá 13500đ - Từ km thứ 6 trở đi giá 11000đ

- Nếu đi hơn 120 km sẽđược giảm 10% trên tổng số tiền.

6. Viết chương trình nhập vào tháng, in ra tháng đó có bao nhiêu ngày.

Hướng dẫn: Nhập vào tháng

Nếu là tháng 1, 3, 5, 7,8, 10, 12 thì có 30 ngày Nếu là tháng 4, 6, 9, 11 thì có 31 ngày

Nếu là tháng 2 và là năm nhuận thì có 29 ngày ngược lại 28 ngày (Năm nhuận là năm chia chẵn cho 4)

7. Viết chương trình nhập vào 2 số x, y và 1 trong 4 toán tử +, -, *, /. Nếu là + thì in ra kết quả x + y, nếu là – thì in ra x – y, nếu là * thì in ra x * y, nếu là / thì in ra x / y (nếu y = 0 thì thông báo không chia được)

8. Nhập một số nguyên dương n. Hãy cho biết: a. Có phải là số đối xứng? Là số nghịch đảo bằng chính nó. Ví dụ: 121, … b. Có phải là sốchính phương? Là số bằng bình phương số khác. Ví dụ: 4, 9, … c. Có phải là số nguyên tố? Là số lớn hơn 1 và chỉ có 2 ước số là 1 và nó. Ví dụ: 2, 3, 5, 7, 11, 13, … d. Chữ số lớn nhất và nhỏ nhất? Ví dụ: số 1706, nhỏ nhất 0 và lớn nhất 7

e. Các chữ sốcó tăng dần hay giảm dần không?

9. Nhập số nguyên n. Tính: a. S = 1 + 2 + … + n b. S = 12 + 22 + … + n2

c. S = 1 + 1/2 + … + 1/n d. S = 1! + 2! + … + n! 10. Nhập 3 số nguyên n, a, b (a, b < n).

Tính tổng các số chia hết cho a nhưng không chia hết cho b và nhỏ hơn n. 11. Tính tổng các số nguyên tố nhỏ hơn n (0 < n < 50).

12. Nhập một số nguyên dương. Xuất ra số ngược lại.

13. Tìm và in lên màn hình tất cả các số nguyên trong phạm vi từ 10 đến 99 sao cho tích của 2 chữ số bằng 2 lần tổng của 2 chữ sốđó.

14. Tìm các ước số chung nhỏ nhất của 2 số nguyên dương 15. In n số đầu tiên trong dãy Fibonacy.

Dãy Fibonacy là dãy a0, a1, …, an-2, an-1, an với: a. a0 = a1 = 1

CHƯƠNG 4: HÀM

Mục tiêu

− Trình bày được khái niệm hàm;

− Trình bày được qui tắc xây dựng hàm, thủ tục và vận dụng khi thiết kế xây dựng

chương trình;

− Phân biệt được cách sử dụng tham số, tham biến;

− Sử dụng được các lệnh kết thúc và lấy giá trị trả về của hàm − Thực hiện các thao tác an toàn cho máy.

Nội dung

Một phần của tài liệu Giáo trình lập trình căn bản (nghề kỹ thuật sửa chữa, lắp ráp máy tính) (Trang 45 - 50)