How do we test a program? Be systematic “pecking at the keyboard” is okay for very small programs and for very initial tests, but is insufficient for real systems Think of testing and correctness from the very start When possible, test parts of a program in isolation E.g., when you write a complicated function write a little program that simpl...
34 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1282 | Lượt tải: 0
InetAddress không có constructor public static InetAddress InetAddress.getByName(String hostname) Kết nối đến 1 máy chủ, tham số là 1 chuỗi ký tự (tên máy, địa chỉ IP, địa chỉ 1 trang web, ) public static InetAddress[ ] InetAddress.getAllByName(String hostname) Kết quả trả về là 1 mảng đối tượng thuộc kiểu InetAddress public static Inet...
11 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1416 | Lượt tải: 0
Computation What is computable? How best to compute it? Abstractions, algorithms, heuristics, data structures Language constructs and ideas Sequential order of execution Expressions and Statements Selection Iteration Functions Vectors
31 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1364 | Lượt tải: 0
Hàm fflush() dùng để xuất tất cả nội dung còn lại trong buffer của stream. • Cú pháp: int fflush(FILE *fp); • Hàm ghi nội dung còn trong buffer đến file fp. Nếu gọi hàm fflush() không có đối số thì tất cả file đang mở. • Hàm trả về 0 nếu thành công, ngược lại trả về EOF
9 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1415 | Lượt tải: 0
Mảng cấu trúc Khi cần lưu trữ thông tin của nhiều đối tượng, thì biến cấu trúc là một công cụ rất thuận lợi. Ví dụ: Cần lưu trữ thông tin họ tên, điểm môn toán, điểm môn hóa, điểm môn lý của các thí sinh trong một kỳ thi. Để làm công việc trên, thay vì phải sử dụng 3 mảng một chiều để lưu trữ ta có thể dùng một mảng một chiều kiểu cấu...
8 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1482 | Lượt tải: 0
Mảng con trỏ đến các Chuỗi Ngoài cách dùng mảng ký tự hai chiều để lưu trữ mảng các Chuỗi, ta có thể dùng mảng của các con trỏ. Mỗi con trỏ sẽ chứa địa chỉ của Chuỗi Ví dụ: char *str[20];
5 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1319 | Lượt tải: 0
Mảng con trỏ Mỗi biến con trỏ là một biến đơn. Ta có thể tạo mảng của các con trỏ với mỗi phần tử của mảng là một con trỏ. Cú pháp: type *pointerArray[elements]; − type: kiểu dữ liệu mà các con trỏ phần tử trỏ đến. − pointerArray: tên mảng con trỏ. − elements: số phần tử của mảng con trỏ.
10 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1437 | Lượt tải: 0
Sắp xếp trên mảng một chiều: Viết hàm sort(a[ ],n) sắp xếp một mảng n phần tử theo thứ tự tăng. Sắp xếp trên mảng một chiều: Nguyên tắc sắp xếp mảng hai chiều là đưa toàn bộ giá trị của mảng hai chiều ra một mảng một chiều, tiếp theo sắp xếp trên mảng một chiều này và cuối cùng là đưa các giá trị từ mảng một chiều vào mảng hai chiều. Viết ...
9 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1545 | Lượt tải: 0
Hàm đệ quy phải có 2 phần: • Phần dừng hoặc phải có trường hợp nguyên tố. Trong các ví dụ trên thì trường hợp n=0 là trường hợp nguyên tố. • Phần đệ quy: là phần có gọi lại hàm đang được định nghĩa. Trong ví dụ trên thì phần đệ quy là n>0 thì n! = n * (n-1)!
18 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1465 | Lượt tải: 0
Lệnh return Lệnh return cho phép một hàm trả về một giá trị cho thành phần gọi nó. Cú pháp: ◦ Trong đó biểu thức chỉ rõ giá trị được trả về bởi hàm. ◦ Kiểu của giá trị này phải hợp với kiểu của hàm. ◦ Trường hợp kiểu trả về của hàm là void, biểu thức sau lệnh return rỗng: return;
9 trang | Chia sẻ: nguyenlam99 | Ngày: 04/01/2019 | Lượt xem: 1522 | Lượt tải: 0