intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tin học đại cương - Bài 8

Chia sẻ: July Man | Ngày: | Loại File: PDF | Số trang:45

96
lượt xem
13
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.

Chủ đề:
Lưu

Nội dung Text: Tin học đại cương - Bài 8

  1. 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
  2. M ng Xâu ký t N i dung M ng 1 Xâu ký t 2 2 / 45
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2