1. Trang chủ
  2. » Giáo án - Bài giảng

Chuong1 ontapc DLCoCauTruc

25 258 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

Định dạng
Số trang 25
Dung lượng 488,5 KB

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

Nội dung

Các kiểu dữ liệu có cấu trúc2  Kiểu liệt kê: enum  Kiểu bản ghi: struct  Kiểu hợp: union  Kiểu bản ghi có trường ở mức bit: bit field struct... Kiểu enum – Định nghĩa4  Cách định ng

Trang 1

Trường Đại Học Bách Khoa Hà Nội

Viện: Điện Tử - Viễn Thông

Bộ Môn: Điện tử - Kỹ thuật máy tính

Ngôn ngữ lập trình C/C++

Chương 1: Ôn tập ngôn ngữ C

Các kiểu dữ liệu có cấu trúc

Trang 2

Các kiểu dữ liệu có cấu trúc

2

Kiểu liệt kê: enum

Kiểu bản ghi: struct

Kiểu hợp: union

Kiểu bản ghi có trường ở mức bit: bit field struct

Trang 4

Kiểu enum – Định nghĩa

4

Cách định nghĩa: Kiểu liệt kê được định nghĩa với

từ khóa enum, và có hai cách có thể được dùng để định nghĩa:

Cách 1: không cần dùng từ khóa typedef và

Cách 2: có sử dụng từ khóa typedef này

Trang 5

Kiểu enum – Định nghĩa

Cách 1: không dùng từ khóa typedef.

Trang 6

Kiểu enum – Định nghĩa

6

Cách 2: sử dụng từ khóa typedef.

typedef enum { phần_tử_1, phần_tử_2, …, phần_tử_N } tên_kiểu ;

VD:

typedef enum {True, False} boolean;

Trang 7

Kiểu enum – Khai báo

Khai báo biến kiểu enum tương tự như cách khai báo các biến thông thường:

Cú pháp:

tên_kiểu v;

tên_kiểu v1,v2;

VD:

ngayTrongTuan d1, d2; //Khai báo 2 biến

enum gioitinh gt = Nam; //Khai báo và khởi tạo giá trị

Trang 8

Kiểu enum – Khai báo

8

Trang 9

Kiểu enum – Gán giá trị

Bản chất giá trị liệt kê của kiểu enum là các hằng số nguyên, với phần tử liệt kê đầu tiên có giá trị là 0, phần tử thứ hai có giá trị là 1, v.v

Các giá trị này có thể được đặt tường minh khi định nghĩa hay khai báo.

VD:

typedef enum {True=1, False=0} boolean;

enum Colors {BLUE=1,RED=3,GREEN=2} c;

Trang 10

Ví dụ

10

Viết một chương trình nhập một giá trị nguyên biểu một trong các ngày trong một tuần Chương trình sẽ kiểm tra giá trị đó để in ra ngày tương ứng Việc làm trên sẽ lặp lại cho đến khi giá trị nhập vào là -1 thì kết thúc chương trình.

Trang 11

Ví dụ

#include <stdio.h>

#include <conio.h>

main(){

enum day {monday, tuesday, wednesday,

thursday, friday, saturday, sunday};

Trang 12

Khai báo biến

Truy nhập vào các trường

Gán giá trị

Trang 13

Kiểu struct – Định nghĩa

Có hai cách để định nghĩa kiểu struct:

Cách 1: không sử dụng từ khóa typedef

Cách 2: sử dụng từ khóa typedef

Trang 14

Kiểu struct – Định nghĩa

Trang 15

Kiểu struct – Định nghĩa

Trang 16

Kiểu struct – Khai báo

16

Tương tự kiểu enum, việc khai báo biến kiểu struct cũng có thể theo 1 trong 2 cách:

Cách 1: khai báo sau khi định nghĩa kiểu struct

Cách 2: kết hợp khai báo và định nghĩa kiểu

Trang 17

Kiểu struct – Khai báo

int thang;

int nam;

Trang 18

Truy nhập vào các trường

int soluong;

} lophoc ; lophoc lh;

lophoc * p = & lh;

scanf(“%s”, lh.sohieu);

scanf(“%c”, &p->chuyennganh); scanf(“%d”, &p->soluong);

Trang 19

Kiểu struct - Gán giá trị

Hai biến cùng một kiểu struct có thể được gán cho

nhau Việc gán này sẽ cho thay cho việc gán lần lượt tất cả các trường của hai biến này cho nhau

VD:

lh1.sohieu = lh2.sohieu;

lh1.chuyennganh= lh2.chuyennganh; lh1.soluong = lh2.soluong;

lophoc lh1, lh2;

lh1=lh2;

Trang 20

Ví dụ

20

Viết chương trình quản lý một danh sách

nhân viên với các chức năng:

Nhập vào một danh sách N nhân viên (N là hằng số cho trước)

In ra nội dung danh sách đó

Trang 21

char sex; //'M' for male

//and 'F' for female

} //end for

//In danh sách ra màn hình printf("Ho ten Tuoi Gioi tinh\n");

for (i=0;i<N;i++){

printf("%s%d",pList[i].name, pList[i].age);

if (pList[i].sex=='M')

Trang 22

Các cấu trúc tiết kiệm kích thước

lưu trữ

22

Cấu trúc union: về ý nghĩa sử dụng thì tương tự như cấu trúc struct Tuy nhiên, ở mỗi thời điểm trong

chương trình thì chỉ dùng đến một trường trong số tất

cả các trường, vì kích thước lưu trữ chỉ đủ để lưu trữ cho một trường

Cấu trúc bit field: chính là cấu trúc struct, nhưng các trường có thể khai báo kích thước lưu trữ đến mức bit (1 hoặc nhiều bit).

Trang 24

Bài tập

24

Bài 1: Viết chương trình giải một phương trình bậc

2, với các thông số của phương trình (gồm các hệ

số, số nghiệm và giá trị mỗi nghiệm) được đưa vào trong cấu trúc struct Yêu cầu chương trình:

Nhập ba hệ số a,b,c từ bàn phím (với a ≠ 0)

In ra màn hình số nghiệm và giá trị mỗi nghiệm

Bài 2: Mở rộng bài 1 thêm khả năng kiểm tra sự

hợp lệ của dữ liệu nhập vào (với a phải ≠ 0), và cho phép giải nhiều PTB 2.

Trang 25

Bài tập

Bài 3: Viết chương trình xây dựng kiểu số phức

dùng cấu trúc struct, và cho phép thực hiện các

thao tác cơ bản +,-,*,/ hai số phức Yêu cầu chương trình:

Nhập 2 số phức a và b từ bàn phím

In ra nội dung của a và b, đồng thời a+b,a-b,a*b và a/b.

Bài 4: Viết chương trình tính tổng một dãy N số

phức có giá trị được nhập từ bàn phím.

Ngày đăng: 20/06/2016, 14:56

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

TÀI LIỆU LIÊN QUAN

w