YOMEDIA
ADSENSE
Tin học đại cương - Bài 8
98
lượt xem 15
download
lượt xem 15
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
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.
AMBIENT/
Chủ đề:
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
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
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