
Tin học đại cương - Bài 8
lượt xem 15
download

Mảng là tập hợp các phần tử cùng kiểu, lưu trữ kế tiếp nhau trong bộ nhớ, các phần tử trong mảng có cùng tên nhưng phân biệt với nhau ở chỉ số cho biết vị trí của nó trong mảng.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Tin học đại cương - Bài 8
- Tin h c đ i cương Bài 8: M ng và xâu ký t NGUY N Th Oanh oanhnt@soict.hut.edu.vn B môn H th ng thông tin - Vi n CNTT và Truy n Thông Đ i h c Bách Khoa Hà n i 2010 - 2011
- M ng Xâu ký t N i dung M ng 1 Xâu ký t 2 2 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng M ng 1 Khái ni m m ng Khai báo và s d ng m ng Các thao tác cơ b n trên m ng Tìm ki m trên m ng S p x p trên m ng Xâu ký t 2 3 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Khái ni m m ng ! T p h p h u h n các ph n t cùng ki u, lưu tr k ti p nhau trong b nh ! Các ph n t trong m ng có cùng tên (là tên m ng) nhưng phân bi t v i nhau ch s cho bi t v trí c a nó trong m ng ! Ví d : – B ng đi m c a sinh viên – Vector – Ma tr n 4 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng M ng 1 Khái ni m m ng Khai báo và s d ng m ng Các thao tác cơ b n trên m ng Tìm ki m trên m ng S p x p trên m ng Xâu ký t 2 5 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Khai báo và s d ng m ng ! Khai báo m ng (m t chi u): ki u_d _li u tên_m ng [kých_thư c_m ng]; ! Trong đó: – ki u_d _li u: ki u d li u c a các ph n t trong m ng – tên_m ng: tên c a m ng – kých_thư c_m ng: s ph n t trong m ng ! Ví d : int mang [6]; // khai báo m ng 6 ph n t có ki u d li u int 6 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Khai báo và s d ng m ng ! C p phát b nh : – đư c c p phát các ô nh k ti p nhau trong b nh – bi n m ng lưu tr đ a ch c a ô nh đ u tiên đư c c p phát ! Ngôn ng C đánh ch s các ph n t b t đ u t 0: – ph n t th i c a m ng mang đư c xác đ nh b i: mang[i-1] mang[0] mang[1] mang[2] mang[3] mang[4] mang[5] 7 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Khai báo và s d ng m ng ! M i ph n t c a m ng cũng là m t m ng ⇒ m ng nhi u chi u ! Khai báo: kieu _du _lieu ten_mang [size1 ][size2 ]...[sizek ]; ! Ví d : int a[6][5]; /* m ng a g m 6 ph n t , m i ph n t là m t m ng s nguyên g m 5 ph n t */ int b[3][4][5]; // b là m ng 3 chi u 8 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Khai báo và s d ng m ng ! S d ng m ng – Truy c p vào ph n t thông qua tên m ng và ch s c a ph n t trong m ng: mang[ch _s _ph n_t ] – Chú ý: ch s b t đ u t 0 ! Ví d : int a[4]; int b[3][4]; – ph n t đ u tiên (th nh t) c a m ng: a[0] – ph n t cu i cùng (th tư) c a m ng: a[3] – a[i] : là ph n t th i+1 c a a – ph n t đ u tiên (th nh t) c a m ng b: b[0] – ph n t đ u tiên (th nh t) c a m ng b[0]: b[0][0] – b[i][j] : là ph n t th j+1 c a b[i], b[i] là ph n t th i + i c a b 9 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng M ng 1 Khái ni m m ng Khai báo và s d ng m ng Các thao tác cơ b n trên m ng Tìm ki m trên m ng S p x p trên m ng Xâu ký t 2 10 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Nh p d li u ! Kh i t o giá tr c a m ng ngay khi khai báo: int a[3] = {1, 2, 3}; int b[2][3] = {{1 2 3}, {4, 5, 6}}; – s lư ng giá tr kh i t o ≤ s lư ng ph n t trong m ng – n u nh hơn, các ph n t còn l i nh n giá tr 0 (NULL, ’\0’) ! Có th xác đ nh kých thư c m ng thông qua s giá tr kh i t o: int array1 [8] = {2, 4, 6, 8, 10, 12, 14, 16}; int array2 [] = {2, 4, 6, 8, 10, 12, 14, 16}; 11 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Nh p d li u ! Nh p d li u t bàn phím b ng hàm scanf : int a[10]; – Nh p d li u cho a[1]: scanf("%d", &a[1]); – Nh p d li u cho toàn b ph n t c a m ng a ⇒ s d ng vòng l p for ! Lưu ý: – Tên m ng là m t h ng (h ng con tr ) do đó không th th c hi n phép toán v i tên m ng như phép gán sau khi đã khai báo – N u s ph n t c a m ng đư c nh p t bàn phím ⇒ khai báo s ph n t t i đa 12 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Nh p d li u #i n c l u d e #i n c l u d e v o i d main ( ) { int a [100]; int n, i ; do { p r i n t f ( " \n Cho b i e t s o phan t u cua mang n ( 0 < n
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Nh p d li u ! Xu t ra màn hình: – Dùng hàm printf() – Đ hi n th t t c các ph n t : dùng vòng for ! Ví d : – Hi n th m t ph n t b t kì – Hi n th t t c các ph n t , m i ph n t trên m t dòng – Hi n th t t c các ph n t trên m t dòng, cách nhau 2 v trí – Hi n th t ng k ph n t trên m t dòng 14 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Xu t d li u #i n c l u d e < s t d i o . h> #d e f i n e MONTHS 12 v o i d main ( ) { i n t r a i n f a l l [MONTHS] , i , max ; // Nhap du l i e u f o r ( i =0; i < MONTHS; i++ ) { p r i n t f ( " Luong mua (mm) cua t h a n g %d : " , i +1) ; s c a n f ( "%d" , & r a i n f a l l [ i ] ) ; } // Xuat du l i e u p r i n t f ( " \n" ) ; f o r ( i =0; i < MONTHS; i++ ) p r i n t f ( "%2d " , r a i n f a l l [ i ] ) ; p r i n t f ( " \n" ) ; getch () ; } 15 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng M ng 1 Khái ni m m ng Khai báo và s d ng m ng Các thao tác cơ b n trên m ng Tìm ki m trên m ng S p x p trên m ng Xâu ký t 2 16 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Tìm giá tr l n nh t, nh nh t ! Tìm giá tr l n nh t: – Gi s ph n t đó là ph n t đ u tiên – L n lư t so sánh v i các ph n t còn l i – N u l n hơn ho c b ng => so sánh ti p – N u nh hơn => coi ph n t này là ph n t l n nh t và ti p t c so sánh – Cách làm? ! Tìm giá tr nh nh t: tương t 17 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Tìm giá tr l n nh t, nh nh t // Tim kiem phan t u l o n n h a t max = r a i n f a l l [ 0 ] ; f o r ( i = 1 ; i < MONTHS; i ++) i f ( max < r a i n f a l l [ i ] ) max = r a i n f a l l [ i ] ; p r i n t f ( "\n Luong mua n h i e u n h a t l a : %d\n" , max ) ; 18 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Tìm 1 giá tr trên m ng ! Bài toán: – Cho m ng d li u a và m t giá tr k – Tìm các ph n t trong m ng a có giá tr b ng (gi ng) v i k. N u có in ra v trí (ch s ) các ph n t này. Ngư c l i thông báo không tìm th y ! Cách làm: – Duy t toàn b các ph n t trong m ng ⇒ vòng l p for (while, do while) – N u a[i] b ng (gi ng) k thì lưu l i ch s i ⇒ s d ng m ng lưu ch s – S d ng m t bi n đ xác đ nh tìm th y hay không tìm th y ⇒ giá tr 0 ho c >= 1 19 / 45
- Khái ni m m ng Khai báo và s d ng m ng M ng Các thao tác cơ b n trên m ng Xâu ký t Tìm ki m trên m ng S p x p trên m ng Tìm 1 giá tr trên m ng I #i n c l u d e < s t d i o . h> #i n c l u d e v o i d main ( ) { i n t a [ 1 0 0 ] , chi_so [ 1 0 0 ] ; i n t n ; // n l a s o phan t u t r o n g mang i n t i , k , kiem_tra ; // Nhap s o phan t u va du l i e u t r o n g mang do { p r i n t f ( " \n Cho b i e t s o phan t u cua mang : " ) ; s c a n f ( "%d" ,&n ) ; } w h i l e ( n > 1 0 0 | | n

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Tin học đại cương - bài 8: các câu lệnh trên C
26 p |
91 |
11
-
Bài giảng Tin học đại cương: Bài 8 - Mảng và xâu kí tự
23 p |
137 |
10
-
Bài giảng Tin học đại cương: Bài 8 - ĐH Bách khoa Hà Nội
10 p |
117 |
8
-
Bài giảng Tin học đại cương - Chương 8: Sở hữu trí tuệ (Các vấn đề xã hội của CNTT)
24 p |
39 |
8
-
Bài giảng Tin học đại cương: Bài 8 - TS. Đỗ Bá Lâm
40 p |
52 |
6
-
Bài giảng Tin học đại cương: Chương 8 - Nguyễn Duy Hiệp
12 p |
37 |
6
-
Bài giảng Tin học đại cương: Chương 8 - ThS. Lê Văn Hùng
88 p |
91 |
5
-
Bài giảng Tin học đại cương: Bài 8 - Nguyễn Văn Đồng
28 p |
30 |
5
-
Bài giảng Tin học đại cương Phần 2: Bài 8 - Nguyễn Thành Kiên
36 p |
84 |
4
-
Bài giảng Tin học đại cương: Bài 8 - ThS. Đinh Phú Hùng
22 p |
80 |
4
-
Bài giảng Tin học đại cương: Bài 8 - Phạm Xuân Cường
17 p |
48 |
3
-
Bài giảng Tin học đại cương: Chương 8 - ThS. Trần Quang Hải Bằng
8 p |
71 |
3
-
Bài giảng Tin học đại cương: Bài 8 - TS. Trần Quang Diệu
15 p |
60 |
3
-
Bài giảng Tin học đại cương: Bài 8 - Bùi Thị Thu Cúc
14 p |
51 |
3
-
Bài giảng Tin học đại cương: Bài 8 - Nguyễn Mạnh Hiển
15 p |
59 |
2
-
Bài giảng Tin học đại cương: Bài 8 - ThS. Nguyễn Thị Phương Thảo
17 p |
28 |
2
-
Bài giảng Tin học đại cương - Bài 8: Tệp dữ liệu
60 p |
77 |
1
-
Bài giảng Tin học đại cương: Bài 8 - Bùi Trọng Tùng
31 p |
22 |
1


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
