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

Bài giảng Kỹ thuật lập trình: Hàm và việc tổ chức chương trình - GV. Hà Đại Dương

Chia sẻ: Hetiheti Hetiheti | Ngày: | Loại File: PDF | Số trang:18

81
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương trình lớn có hàng nghìn, triệu... dòng lệnh, có nhiều đoạn tương tự nhau. Vậy làm sao để quản lý được logic chương trình để không phải viết những đoạn code lặp lại? Mời các bạn cùng tham khảo bài giảng để tìm hiểu về cách giải quyết vấn đề này như thế nào.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Hàm và việc tổ chức chương trình - GV. Hà Đại Dương

10/25/2016<br /> <br /> Kỹ thuật lập trình<br /> <br /> Tuần 9 - Hàm và việc tổ chức<br /> chương trình<br /> Giáo viên: Hà Đại Dương<br /> duonghd@mta.edu.vn<br /> <br /> 10/25/2016<br /> <br /> 1<br /> <br /> Vấn đề<br /> • Các chương trình đã viết (từ đầu môn học):<br /> – Ngắn gọn<br /> – Dễ hiểu (??)<br /> – Dễ quản lý về logic (??)<br /> <br /> • Chương trình lớn: hàng nghìn, triệu .. dòng<br /> lệnh, có nhiều đoạn tương tự nhau.<br /> Làm sao để quản lý được logic<br /> chương trình? Không phải viết những<br /> đoạn code lặp lại<br /> 10/25/2016<br /> <br /> 2<br /> <br /> Modul hoá chương trình<br /> • Chia chương trình thành những modul (đoạn)<br /> chuyên biệt nhằm thực hiện một công việc<br /> nào đó.<br /> • Logic trong mỗi modul có thể được kiểm soát<br /> dễ dàng hơn<br /> • Logic của cả chương trình thông qua việc sử<br /> dụng các modul cũng trở nên dễ dàng, tường<br /> minh hơn.<br /> 10/25/2016<br /> <br /> 3<br /> <br /> 1<br /> <br /> 10/25/2016<br /> <br /> Ví dụ<br /> • Viết chương trình nhập vào 2 ma trận A, B<br /> tính và in ra ma trận tổng C = A+B.<br /> • Có thể chia bài toán trên (chương trình của<br /> bài toán đó) thành các modul:<br /> – Nhập ma trận A<br /> – Nhập ma trận B<br /> – Tính ma trận tổng<br /> – In ma trận kết quả.<br /> 10/25/2016<br /> <br /> 4<br /> <br /> Modul hoá …<br /> • Ở ví dụ trên có 2 công việc:<br /> – Nhập ma trận A<br /> – Nhập ma trận B<br /> <br /> • Có thể nhận thấy chúng tương đối giống nhau.<br /> • Làm sao để không phải viết lại?<br /> • Modul hoá giúp có thể khái quát hoá vấn đề<br /> nào đó (ví dụ là nhập ma trận) thành một vấn<br /> đề chung và có thể sử dụng nhiều lần.<br /> 10/25/2016<br /> <br /> 5<br /> <br /> Ví dụ<br /> • Bài toán xét xem điểm M nằm trong hay ngoài<br /> tam giác ABC.<br /> • Một phương pháp khả<br /> thi là:<br /> – Tính sABC, sMAB,<br /> sMBC, và sMAC<br /> – So sánh<br /> Nếu sABC > sMAB+sMBC+sMAC: M ngoài ABC<br /> và ngược lại.<br /> 10/25/2016<br /> <br /> 6<br /> <br /> 2<br /> <br /> 10/25/2016<br /> <br /> Modul hoá …<br /> • Như vậy có thể khái quát việc tính diện tích<br /> tam giác thành một hàm để tính các diện tích<br /> sABC, sMAB, sMBC, và sMAC.<br /> <br /> 10/25/2016<br /> <br /> 7<br /> <br /> Nội dung bài học<br /> •<br /> •<br /> •<br /> •<br /> <br /> Hàm (function) là gì?<br /> Khai báo (viết hàm)<br /> Gọi (sử dụng) hàm<br /> Một số vấn đề khác:<br /> – Hàm không trả về giá trị<br /> – Các dạng tham số của hàm<br /> – Hàm trùng tên<br /> – Hàm với đối mặc định<br /> – Khai báo nguyên hàm<br /> <br /> 10/25/2016<br /> <br /> 8<br /> <br /> Hàm (function)<br /> <br /> 10/25/2016<br /> <br /> 9<br /> <br /> 3<br /> <br /> 10/25/2016<br /> <br /> Hàm (function)<br /> • Trong C mỗi modul được hiểu là 1 hàm<br /> • Hàm:<br /> – Là một modul (đoạn) nhằm thực hiện một công<br /> việc nào đó.<br /> – Truyền vào một số tham số<br /> – Trả về một giá trị (qua tên hàm)<br /> <br /> • Khi nào viết hàm:<br /> – Cầm tách biệt 1 chức năng nào đó<br /> – Khái quát hoá 1 công việc để tránh viết lại<br /> 10/25/2016<br /> <br /> 10<br /> <br /> Khai báo hàm<br /> <br /> 10/25/2016<br /> <br /> 11<br /> <br /> Khai báo hàm<br /> • Cú pháp:<br /> Kiểu Tên_Hàm(Danh sách tham số đầu vào)<br /> {<br /> Các lệnh của C<br /> …<br /> return Biểu_Thức;<br /> }<br /> 10/25/2016<br /> <br /> 12<br /> <br /> 4<br /> <br /> 10/25/2016<br /> <br /> Trong đó<br /> • Kiểu: Là kiểu dữ liệu trả về thông qua tên<br /> hàm<br /> – Là void nếu không trả về kiểu dữ liệu cụ thể (xét<br /> sau)<br /> <br /> • Tên_Hàm: Tên theo qui tắc đặt tên trong C<br /> – Tuy nhiên C cho phép đặt tên hàm trùng nhau<br /> nhưng phải có sự khác nhau về: số các tham số<br /> hoặc/và kiểu dữ liệu của các tham số đó.<br /> <br /> • return: Lệnh (từ khoá) của C.<br /> 10/25/2016<br /> <br /> 13<br /> <br /> Trong đó …<br /> • Danh sách các tham số đầu vào<br /> – Tên,<br /> – kiểu và<br /> – số lượng các tham số<br /> <br /> • Biểu_Thức: Giá trị của biểu thức này được trả<br /> về qua tên hàm, và có kiểu cùng với Kiểu của<br /> hàm.<br /> <br /> 10/25/2016<br /> <br /> 14<br /> <br /> Ví dụ 1<br /> • Hàm tính khoảng cách khi biết toạ độ 2 điểm<br /> (a, b) trong không gian:<br /> – Toạ độ của a: (ax, ay)<br /> – Toạ độ của b: (bx, by)<br /> – Khoảng cách (eclide) từ a đến b là<br /> kc = Căn bậc 2 của (ax-bx)2+(ay-by)2<br /> – Trong C hàm lấy căn bậc 2 là sqrt() trong thư viện<br /> math.h<br /> 10/25/2016<br /> <br /> 15<br /> <br /> 5<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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