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

Chuong 3 vào ra dữ liệu và các cấu trúc điều khiển chương trình c

70 62 0

Đ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

Tiêu đề Chương 3: Vào/Ra Dữ Liệu Và Các Cấu Trúc Điều Khiển Chương Trình
Trường học Trường Đại Học
Chuyên ngành Kỹ Thuật Lập Trình
Thể loại Bài Giảng
Định dạng
Số trang 70
Dung lượng 1,12 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

chương 3 cung cấp các khái niệm về vào ra dữ liệu và các cấu trúc điều khiển chương trình c Khai báo thư viện chương trình Lệnh đưa dữ liệu ra màn hình Lệnh nhập dữ liệu vào từ bàn phím Cú pháp: printf(xâu_định_dạng, danh_sách_tham_số); Trong đó: xâu_định_dạng: đặt trong cặp dấu , quy định cách thức hiển thị dữ liệu ra màn hình máy tính, bao gồm 3 loại ký tự: + Ký tự văn bản thông thường + Ký tự điều khiển + Đặc tả

Trang 1

CHƯƠNG 3: VÀO/RA DỮ LIỆU VÀ CÁC CẤU TRÚC ĐIỀU KHIỂN CHƯƠNG TRÌNH

BÀI GIẢNG HỌC PHẦN

KỸ THUẬT LẬP TRÌNH

Trang 2

Nội dung

3.1 Vào/ra dữ liệu

3.2 Các cấu trúc điều khiển chương trình

Trang 3

3.1 Vào/ra dữ liệu

• Khai báo thư viện chương trình

• Lệnh đưa dữ liệu ra màn hình

• Lệnh nhập dữ liệu vào từ bàn phím

Trang 4

Khai báo thư viện chương trình

• Để có thể sử dụng các lệnh vào/ra dữ liệu, cần khai

báo tệp tiêu đề stdio.h (standard input/output)

#include <stdio.h>

hoặc #include "stdio.h"

Trang 5

+ Ký tự văn bản thông thường

+ Ký tự điều khiển

+ Đặc tả

- danh_sách_tham_số: danh sách các giá trị được hiển thị theo quy định trong xâu định dạng, được viết ngăn cách nhau bởi dấu phẩy, gồm: tên biến, tên hằng, biểu

Trang 7

 Kết quả hiển thị trên màn hình: a+b

• Một số ký tự đặc biệt cần đặt liền sau ký hiệu \

\"  in ra ký tự "

\\  in ra ký tự \

Trang 9

xâu_định_dạng (3)

• Đặc tả: Xác định kiểu dữ liệu của giá trị muốn xuất

%i, %d Số nguyên hệ 10 có dấu int, char

%u Số nguyên hệ 10 không dấu unsigned int/

char

%o Số hệ 8 không dấu (không có số 0 đứng trước) int, char

%x, %X

Số hệ 16 không dấu chữ thường/chữ hoa (không có int, char

Trang 10

xâu_định_dạng (4)

• Đặc tả: (tiếp)

%li,%ld Số nguyên hệ 10 có dấu long

%lu Số nguyên hệ 10 không dấu unsigned long

%lo Số hệ 8 không dấu (không

có số 0 đứng trước) long

%lx,

%lX

Số hệ 16 không dấu chữ thường/chữ hoa (không có 0x đứng trước)

long

Trang 11

xâu_định_dạng (5)

• Đặc tả: (tiếp)

%s Hiển thị xâu ký tự kết thúc bởi '\0' char[]

%f Số thực dấu phẩy tĩnh float, double

%e, %E Số thực dấu phẩy động float, double

%g Dùng %f hoặc %e tùy thuộc loại nào ngắn hơn float, double

Trang 13

Độ rộng hiển thị - đối với số nguyên

Trang 14

Độ rộng hiển thị - đối với số thực (1)

Trang 15

Độ rộng hiển thị - đối với số thực (2)

Trang 16

Độ rộng hiển thị - Lưu ý (1)

• Đối với các ký tự và xâu ký tự, định dạng độ rộng hiển thị tương tự như đối với số nguyên

• Ví dụ:

printf("\n%3d%15s%3c",1,"Tran Ngoc Anh",'A');

printf("\n%3d%15s%3c",2,"Nguyen Sao Mai",'B');

Kết quả hiển thị trên màn hình:

˽˽1˽˽Tran Ngoc Anh˽˽A

˽˽2˽Nguyen Sao Mai˽˽B

Trang 17

Độ rộng hiển thị - Lưu ý (2)

• Khi số chỗ cần thiết để hiển thị nội dung dữ liệu lớn hơn trong định dạng  hệ thống tự cung cấp thêm chỗ để hiển thị dữ liệu trong các trường hợp: số nguyên, phần nguyên của số thực, ký tự, xâu ký tự

Trang 18

Căn lề trái/phải

• Khi có định dạng độ rộng hiển thị dữ liệu, ngôn ngữ

C mặc định căn lề phải; để căn lề trái cần thêm dấu - ngay sau ký hiệu %

• Ví dụ:

printf("\n%-3d%-15s%-3c",1,"Tran Ngoc Anh",'A'); printf("\n%-3d%-15s%-3c",2,"Nguyen Sao Mai",'B');

Kết quả hiển thị trên màn hình:

1˽˽Tran Ngoc Anh˽˽A˽˽

2˽˽Nguyen Sao Mai˽B˽˽

Trang 20

Lệnh nhập dữ liệu vào từ bàn phím (2)

• Lưu ý:

danh_sách_tham_số phải phù hợp với các đặc tả trong xâu_định_dạng cả về số lượng, kiểu dữ liệu, thứ tự

Trang 21

xâu_định_dạng (1)

• Đặc tả:

Trang 22

xâu_định_dạng (2)

• Đặc tả: (tiếp)

%s Xâu ký tự kết thúc bởi '\0' char[]

Trang 23

Ví dụ (1)

• Chương trình nhập các dữ liệu nguyên, thực, ký tự

từ bàn phím rồi hiển thị lại các kết quả đã nhập:

Trang 25

Ví dụ (3)

• Chạy thử chương trình:

Trang 26

- Hàm scanf coi mọi ký tự có trong bộ đệm của thiết

bị vào chuẩn đều là hợp lệ, kể cả các ký tự Enter, Tab, hay Spacebar

Trang 31

3.2 Các cấu trúc điều khiển chương trình

• Cấu trúc rẽ nhánh

• Cấu trúc lặp

Trang 32

Cấu trúc rẽ nhánh

• Cấu trúc if

• Cấu trúc switch

Trang 34

- if (diem>=4)

printf("Do!");

else printf("Truot!");

- if (b>0)

printf("b la so duong");

Trang 35

printf("%6.2f la so am, khong co can bac hai",a); return 0;

}

Trang 36

Ví dụ về cấu trúc if (3)

Bài tập:

1 Viết chương trình cho phép người dùng nhập vào 3

số thực a,b,c từ bàn phím Kiểm tra xem a,b,c có thỏa mãn điều kiện độ dài 3 cạnh của 1 tam giác hay không, nếu có, tính diện tích và chu vi của tam giác rồi thông báo kết quả ra màn hình

2 Viết chương trình cho phép người dùng nhập vào một số nguyên dương n từ bàn phím, kiểm tra xem

n có phải là số chính phương hay không, thông báo kết quả ra màn hình

Trang 37

if (a<0) printf("a la so am"); else

printf("a la so 0");

• Các cấu trúc if có thể viết lồng nhau, khi đó else đi với if gần nhất trước nó

Trang 38

• Ví dụ 2:

if (a!=0) {

if (a>0) printf("a la so duong"); else

printf("a la so am");

Trang 39

else

câu_lệnh_n+1;

Trang 41

case hằng_1:

các_câu_lệnh;break;

case hằng_2:

các_câu_lệnh;break;

…case hằng_n:

các_câu_lệnh;break;

default:

các_câu_lệnh;

Trang 42

Cấu trúc switch (2)

• Hoạt động:

- Máy tính xác định giá trị của biểu_thức, giả sử bằng hằng_i (i=1 n), khi đó nó sẽ nhảy đến câu lệnh có nhãn case hằng_i và thực hiện tất cả các câu lệnh sau đó cho đến khi nào gặp break hoặc dấu } kết thúc switch

- Khi giá trị biểu_thức khác với mọi hằng_i, máy sẽ nhảy đến câu lệnh có nhãn default (dạng 2) hoặc ra khỏi switch (dạng 1)

Trang 43

Cấu trúc switch (3)

• Lưu ý:

- biểu_thức, hằng_1, hằng_2, …, hằng_n phải cùng kiểu và là các kiểu số nguyên hoặc kiểu ký tự (không được là kiểu số thực)

- Từ khóa case là bắt buộc phải có trước một hằng Nếu các_câu_lệnh là giống nhau với một số hằng (giả sử là hằng_i, j, k) thì có thể viết gọn theo cách:

Trang 44

Cấu trúc switch (4)

• Lưu ý: (tiếp)

- hằng_1, hằng_2, …, hằng_n phải là các giá trị khác nhau

- Cần đưa break (có thể thay thế bằng goto hoặc return tùy từng trường hợp) vào cuối mỗi case, trừ trường hợp case đó là case cuối cùng trong switch (dạng 1, không có default)

- Các cấu trúc switch có thể viết lồng nhau

Trang 45

Cấu trúc switch (5)

• Ví dụ 1:

switch (thu)

{

case 1: printf("Sunday"); break;

case 2: printf("Monday"); break;

case 3: printf("Tuesday"); break;

case 4: printf("Wednesday"); break;case 5: printf("Thursday"); break;

case 6: printf("Friday"); break;

case 7: printf("Saturday");

}

Trang 46

Cấu trúc switch (6)

• Ví dụ 2:

switch (thu)

{

case 1: printf("Sunday"); break;

case 2: printf("Monday"); break;

case 3: printf("Tuesday"); break;

case 4: printf("Wednesday"); break;case 5: printf("Thursday"); break;

case 6: printf("Friday"); break;

case 7: printf("Saturday"); break;

Trang 48

printf("30 ngay"); break;

default: printf("31 ngay");

Trang 50

- biểu_thức_3: dùng để thay đổi giá trị của biến điều

Trang 51

- Bước 4: Xác định biểu_thức_3, quay lại bước 2 để bắt đầu một vòng lặp mới

Trang 52

- biểu_thức_2 vắng mặt tương đương với việc nó

Trang 53

if (i>=10) break;

printf("%d\n",i);

}

- for(i=0;i<=9;i++) {

for(j=0;j<=9;j++) printf("%5d",i+j);printf("\n");

Trang 56

- Bước 1: Xác định giá trị của biểu_thức

- Bước 2: Nếu biểu_thức nhận giá trị sai, thoát khỏi while; nếu biểu_thức nhận giá trị đúng, thực hiện câu_lệnh rồi quay lại bước 1

• Ví dụ: i=0;

while (i<10)

{

Trang 60

Cấu trúc while (5)

• Bài tập:

1 Viết chương trình cho phép người dùng nhập vào tử

số và mẫu số của phân số a/b In ra dạng tối giản của phân số đó

2 Dùng câu lệnh while làm lại các bài tập phần vòng lặp for (slide 55)

Trang 61

- Bước 1: Thực hiện các_câu_lệnh

- Bước 2: Xác định giá trị của biểu_thức Nếu biểu_thức nhận giá trị sai, thoát khỏi do while; nếu biểu_thức nhận giá trị đúng, quay lại bước 1

Trang 65

Cấu trúc do while (5)

• Bài tập:

1 Dùng câu lệnh do while làm lại các bài tập phần vòng lặp while (slide 60)

Trang 66

i ;

}while (i<10);

- …

Trang 67

- Cho phép bỏ qua các câu lệnh sau continue trong lần lặp hiện tại và:

+ Chuyển tới bước xác định biểu_thức_3 rồi quay lại vòng lặp mới đối với for

+ Chuyển tới bước xác định giá trị của biểu thức đối với

Trang 69

goto lap;

}printf("Tong s = %d",s);return 0;

}

Trang 70

Nhãn và goto (3)

• Lưu ý:

- go to và nhãn cần nằm trong một hàm; goto cho phép nhảy từ vị trí câu lệnh này tới câu lệnh khác trong thân một hàm nhưng không cho phép nhảy từ hàm này sang hàm khác

- goto không cho phép nhảy từ ngoài vào trong một khối lệnh nhưng cho phép nhảy từ trong ra ngoài khối lệnh

Ngày đăng: 11/08/2021, 21:06

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w