mảng con trỏ trong C

27 302 0
mảng con trỏ trong C

Đ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

TIN HỌC ĐẠI CƯƠNG Ngôn ngữ lập trình: C Lý thuyết: buổi Thực hành: buổi NỘI DUNG CÁC BUỔI HỌC Tổng quan C (chương 1,2) Các cấu trúc điều khiển C (chương 3) Hàm cấu trúc chương trình (chương 4) Mảng, chuỗi trỏ (chương 5) Kiểu cấu trúc, đệ qui, tập tin (chương 6,7,8) Ôn tập CHƯƠNG 5: MẢNG, CHUỔI VÀ CON TRỎ Khái niệm mảng Các toán liên quan đến mảng Chuỗi ký tự Con trỏ nhớ Mối liên hệ mảng,chuỗi,con trỏ hàm KHÁI NIỆM VỀ MẢNG * Xét ví dụ: viết CT quản lí điểm trung bình 100 sinh viên Nhận xét: #include “stdio.h” #include “conio.h”  Khai báo biến nhiều void main() => khó quản lí { float dtb1;  Khó truy xuất thao float dtb2; tác float dtb100; … } KHÁI NIỆM VỀ MẢNG a/ Khái niệm mảng: tập hợp nhiều biến có kiểu liệu tên, phần tử mảng truy xuất thông qua số b/ Cú pháp khai báo mảng: * Ví dụ: int a[10], b[3][2]; => Dòng lệnh khai báo hai mảng: - Mảng a mảng chiều có 10 phần tử số nguyên - Mảng b mảng chiều (3 dòng, cột) có phần tử số nguyên (mảng chiều gọi ma trận) * Ví dụ: vừa khai báo vừa khởi tạo mảng: (xem trang 116) int a[3]={2,5,7}; KHÁI NIỆM VỀ MẢNG c/ Chỉ số mảng: phải giá trị kiểu int không vượt kích thước mảng * Ví dụ: int a[5] => Dòng lệnh cho biết:  Mảng a gồm phần tử có kiểu số nguyên  Chỉ số phần tử đánh số từ (a[0] , a[1] , a[2] , a[3] , a[4]) => Như vậy, để truy xuất phần tử mảng ta dùng cú pháp: Tên_mảng[chỉ_số_của_mảng] * Ví dụ: int so,a[5]; a[0] = 5; // gán giá trị cho phần tử thứ mảng a[3] = 8; // gán giá trị cho phần tử thứ mảng so = a[3]; // lấy giá trị phần tử thứ gán cho biến so CÁC BÀI TOÁN LIÊN QUAN ĐẾN MẢNG a/ Nhập / xuất mảng b/ Tìm kiếm giá trị mảng c/ Sắp xếp mảng tăng dần / giảm dần d/ Sửa giá trị cho phần tử thứ i mảng e/ Xóa phần tử thứ i mảng CÁC VẤN ĐỀ LIÊN QUAN ĐẾN MẢNG a/ Nhập / xuất mảng: (mảng chiều) // Nhập mảng … void main() { int a[5]; // Nhap gia tri cho cac ptu for (int i=0;i[...]... chiều dài trong chuỗi , kq: 8 ký tự strcat(s1, “ cac ban”); // nối thêm cho s1 chuỗi “ cac ban” if (strcmp(s1,s2)==0) // so sánh s1,s2: (0: s1=s2, -1: s1s2) printf(“s1 bang s2”); s1[4]= C ; // thay thế ký tự c trong chuỗi thành C } 4 CON TRỎ VÀ BỘ NHỚ a/ Khái niệm con trỏ b/ C c phép toán trên con trỏ c/ Con trỏ và c p phát vùng nhớ 4 CON TRỎ VÀ BỘ NHỚ a/ Khái niệm con trỏ: • Con trỏ là một... (2,3,7,6,5) Bư c 1: x c định chỉ số k c a phần tử c giá trị = 7 Bư c 2: di chuyển c c phần tử bên phải c a chỉ số k về một chỉ số Bư c 3: c p nhật lại kích thư c của mảng n=n-1 i n=4 n=5 Chỉ số mảng 0 1 2 3 4 2 3 7 6 5 x=7 3 CHUỖI KÝ TỰ a/ Khái niệm: • Chuỗi ký tự là một trường hợp riêng c a mảng một chiều mà mỗi phần tử trong mảng là một ký tự Tuy nhiên, kh c với mảng ký tự, chuỗi ký tự đư c kết th c bằng... ĐẾN MẢNG c/ Sửa giá trị cho phần tử thứ i trong mảng:  C c bư c th c hiện: • B1: x c định chỉ số c a phần tử c n sửa giá trị trong mảng • B2: th c hiện c p nhật lại giá trị mới Ví dụ: thay thế phần tử c giá trị 3 trong mảng (2,3,7,6,5) bằng giá trị 5 i Chỉ số mảng 0 1 2 3 4 2 53 7 6 5 x=3 2 C C VẤN ĐỀ LIÊN QUAN ĐẾN MẢNG c/ Xóa phần tử thứ i trong mảng:  Xét ví dụ: xóa phần tử c giá trị 7 trong mảng. .. Con trỏ là một kiểu biến đ c biệt dùng để lưu địa chỉ vùng nhớ • C pháp khai báo: *Tên _con_ trỏ; • Ví dụ: int a=3,*p; p=&a; // con trỏ p trỏ tới địa chỉ c a đối tượng là biến a *p=5 // con trỏ p c p nhật lại giá trị c a đối tượng là biến a = 5 4 CON TRỎ VÀ BỘ NHỚ b/ C c phép toán trên con trỏ: • C c phép toán 1 ngôi (xem trang 128)  Toán tử &: lấy địa chỉ c a đối tượng  Toán tử *:... đối tượng • C c phép toán kh c trên con trỏ (xem trang 130)  Phép gán =: ta c thể th c hiện phép gán cho 2 con trỏ c c ng kiểu (nếu kh c kiểu thì phải ép kiểu)  Phép truy nhập bộ nhớ  Phép so sánh 4 CON TRỎ VÀ BỘ NHỚ c/ Con trỏ và c p phát vùng nhớ: (xem trang 155) * Xét ví dụ: viết CT quản lí điểm c a 1000 sinh viên void main() { float dtb[1000]; … }  Nhận xét: Khi chương trình th c thi thì... th c hiện vi c sắp xếp 2 C C VẤN ĐỀ LIÊN QUAN ĐẾN MẢNG c/ Sắp xếp mảng tăng dần: Đổi chỗ tr c tiếp - Interchange Sort Thuật toán: • B1: i = 0 // bắt đầu từ đầu mảng • B2: j=i+1; // tìm c c phần tử a[j]i; • B3: Trong j lãng phí bộ nhớ  Khi CT c n gia tăng số lượng h c viên lên 5000 sinh viên thì người lập trình phải chỉnh sửa lại code 4 CON TRỎ VÀ BỘ NHỚ c/ Con trỏ và c p phát vùng nhớ: (xem trang 155) => Để giải quyết bài toán này ta dùng c p phát vùng nhớ động khi th c hiện chương trình void main() { float *dtb; int n; printf(“Cho biet... printf(“Tim thay %d trong mang”,so); else printf(“Khong tim thay %d trong mang”,so); } 2 C C VẤN ĐỀ LIÊN QUAN ĐẾN MẢNG c/ Sắp xếp mảng tăng dần / giảm dần: C rất nhiều thuật toán dùng để sắp xếp:  Đổi chỗ tr c tiếp (Interchange Sort)  Nổi bọt (Bubble Sort)  Chọn tr c tiếp (Selection Sort)  Chèn tr c tiếp (Insert Sort) … => xem từ trang 162 – 167 (ho c giáo trình môn C u tr c dữ liệu 1) 2 C C VẤN ĐỀ LIÊN ... s1[4]= C ; // thay ký tự c chuỗi thành C } CON TRỎ VÀ BỘ NHỚ a/ Khái niệm trỏ b/ C c phép toán trỏ c/ Con trỏ c p phát vùng nhớ CON TRỎ VÀ BỘ NHỚ a/ Khái niệm trỏ: • Con trỏ kiểu biến đ c biệt...NỘI DUNG C C BUỔI H C Tổng quan C (chương 1,2) C c cấu tr c điều khiển C (chương 3) Hàm c u tr c chương trình (chương 4) Mảng, chuỗi trỏ (chương 5) Kiểu c u tr c, đệ qui, tập tin (chương 6,7,8)... 6,7,8) Ôn tập CHƯƠNG 5: MẢNG, CHUỔI VÀ CON TRỎ Khái niệm mảng C c toán liên quan đến mảng Chuỗi ký tự Con trỏ nhớ Mối liên hệ mảng, chuỗi ,con trỏ hàm 1 KHÁI NIỆM VỀ MẢNG * Xét ví dụ: viết CT quản lí

Ngày đăng: 30/10/2015, 15:32

Tài liệu cùng người dùng

Tài liệu liên quan