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

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

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 (238.99 KB, 70 trang )

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

KỸ THUẬT LẬP TRÌNH

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


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

2


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

3


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"

4




Lệnh đưa dữ liệu ra màn hình (1)
• 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ả
- 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
thức, hàm, các giá trị cụ thể
5


Lệnh đưa dữ liệu ra màn hình (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
và thứ tự

6


xâu_định_dạng (1)
• Ký tự văn bản thơng thường: Được đưa ra màn hình

ngun vẹn như trong xâu_định_dạng
Ví dụ:
- printf("Xin chao!");
 Kết quả hiển thị trên màn hình: Xin chao!
- printf("a+b");
 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ự \

7


xâu_định_dạng (2)
• Ký tự điều khiển: tạo các hiệu ứng hiển thị đặc biệt
\n xuống dòng
\t tab
\b backspace
\r carriage return – đưa con trỏ màn hình về đầu
dịng
\f line feed – sang trang

Ví dụ:
printf("\n");
printf("\t");
printf("\n\t");
8


xâu_định_dạng (3)

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

Ý nghĩa

Kiểu dữ liệu

%c
%i, %d

Kiểu ký tự đơn
Số nguyên hệ 10 có dấu

char
int, char

%u

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

%o

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

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

0x đứng trước)
9


xâu_định_dạng (4)
• Đặc tả: (tiếp)
Đặc tả

Ý nghĩa

Kiểu dữ liệu

%li,%ld Số ngun hệ 10 có dấu
long
%lu
Số ngun hệ 10 khơng dấu unsigned long
%lo

Số hệ 8 khơng dấu (khơng
long
có số 0 đứng trước)

%lx,
%lX

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

10



xâu_định_dạng (5)
• Đặc tả: (tiếp)
Đặc tả
%s

Ý nghĩa

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

%f
Số thực dấu phẩy tĩnh
%e, %E Số thực dấu phẩy động
%g

Kiểu dữ liệu

float, double
float, double

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

11



xâu_định_dạng (6)
• Ví dụ:
int a,b;
float x;
a=5;
b=10;
x=12.75;
printf("\n%d",a);  in ra 5
printf("\n%d",b);  in ra 10
printf("\n%d, %d",a,b);  in ra 5, 10
printf("\n%f",x);
 in ra 12.750000
printf("\n%f",10.0/3);
 in ra 3.333333
12


Độ rộng hiển thị - đối với số nguyên
• Định dạng:
%nd trong đó n là số ngun khơng âm, cho biết số
chỗ dùng để viết số ngun
• Ví dụ:
int a,b;
a=123;
b=45;
printf("\n%4d",a);
printf ("\n%5d",b);
Kết quả hiển thị trên màn hình:
˽123
(˽ là ký hiệu dấu cách)

˽˽˽45
13


Độ rộng hiển thị - đối với số thực (1)
• Định dạng:
%n.mf
Trong đó n, m là 2 số ngun khơng âm:
n - số chỗ dùng để viết số thực
m - số chỗ trong n dùng để viết phần thập phân

14


Độ rộng hiển thị - đối với số thực (2)
• Ví dụ:
float x;
x=9.125;
printf("\n%f",x);
printf("\n%.2f",x);
printf("\n%6.2f",x);
Kết quả hiển thị trên màn hình:
9.125000
9.13
˽˽9.13

15


Độ 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ố ngun
• 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

16


Độ 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ự
• Ví dụ: a=1024; x=10.875;
printf("\n%1d",a);
printf("\n%3.2f",x);
printf("\n%0c",'A');
printf("\n%1s","ABC");
Kết quả: 1024
10.88
A
ABC
17


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

18


Lệnh nhập dữ liệu vào từ bàn phím (1)
• Cú pháp:
scanf(xâu_định_dạng, danh_sách_tham_số);
Trong đó:
- xâu_định_dạng: chỉ bao gồm các đặc tả quy định
cho từng loại dữ liệu được nhập vào
- danh_sách_tham_số: bao gồm các địa chỉ của các
biến được viết ngăn cách nhau bởi dấu phẩy
(&tên_biến_1, &tên_biến_2, …)

19


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ự


20


xâu_định_dạng (1)
• Đặc tả:
Đặc tả
%c
%d
%u
%o
%x
%ld
%lo
%lx

Ý nghĩa
Kiểu ký tự đơn
Số nguyên kiểu int
Số nguyên không dấu
Số hệ 8
Số hệ 16
Số nguyên kiểu long
Số kiểu long hệ 8
Số kiểu long hệ 16

Kiểu dữ liệu
char
int
unsigned int

int
int
long
long
long
21


xâu_định_dạng (2)
• Đặc tả: (tiếp)
Đặc tả
Ý nghĩa
%s
Xâu ký tự kết thúc bởi '\0'
%f
Số thực dấu phẩy tĩnh
%lf
Số thực dấu phẩy tĩnh

Kiểu dữ liệu
char[]
float
double

22


Ví dụ (1)
• Chương trình nhập các dữ liệu ngun, thực, ký tự
từ bàn phím rồi hiển thị lại các kết quả đã nhập:

#include <stdio.h>
int main(void)
{
int a;
float x;
char c;
printf("Nhap so nguyen a: ");
scanf("%d",&a);

23


Ví dụ (2)
• Chương trình (tiếp):
printf("Nhap so thuc x: ");
scanf("%f",&x);
printf("Nhap ky tu c: ");
fflush(stdin);
scanf("%c",&c);
printf("Cac du lieu da nhap la: a = %d, x = %f, c
= '%c'",a,x,c);
return 0;
}
24


Ví dụ (3)
• Chạy thử chương trình:

25



×