SLIDE1

Saturday, June 20, 2015

[oop c++] phạm vi truy xuất trong kế thừa

Truy xuất theo chiều dọc: Hàm thành phần của lớp con có quyền truy xuất các thành phần của lớp cha hay không? Truy xuất theo chiều ngang: Các thành phần của lớp cha, sau khi kế thừa xuống lớp con, thì thế giới bên ngoài có quyền truy xuất thông qua đối tượng của lớp con hay không...

[oop c++] Kế thừa - định nghĩa, cú pháp, sử dụng

Kế thừa  là một đặc điểm của ngôn ngữ dùng để biểu diễn mối quan hệ đặc biệt hóa – tổng quát hóa giữa các lớp. Các lớp được trừu tượng hóa và được tổ chức thành một sơ đồ phân cấp lớp. Sự kế thừa là một mức cao hơn của trừu tượng hóa, cung cấp một cơ chế gom chung các lớp có liên quan với nhau thành một mức khái quát hóa đặc trưng cho toàn bộ các lớp nói trên...

[oop c++] Quan hệ giữa các lớp đối tượng

Giữa các lớp đối tượng có những loại quan hệ sau: Quan hệ một một (1-1) Quan hệ một nhiều (1-n) Quan hệ nhiều nhiều (n-n) Quan hệ đặc biệt hóa, tổng quát hó...

Thursday, June 18, 2015

[oop c++] Các nguyên tắc xây dựng lớp

Hình thành lớp: Khi ta nghĩ đến “nó” như một khái niệm riêng lẻ ->Xây dựng lớp biểu diễn khái niệm đó. Lớp là biểu diễn cụ thể của một khái niệm vì vậy tên lớp luôn là danh từ. Các thuộc tính của lớp là các thành phần dữ liệu nên chúng luôn là danh từ. Các hàm thành phần (các hành vi) là các thao tác chỉ rõ hoạt động của lớp nên các hàm là động từ. Các thuộc tính có thể suy diễn từ những thuộc tính khác thì dùng hàm thành phần để thực hiện tính toán. Ví dụ chu vi, diện tích của một tam giác Tuy nhiên, nếu các thuộc tính suy diễn dòi hỏi nhiều...

[oop c++] Thành viên tĩnh – static member

Trong C, static xuất hiện trước dữ liệu được khai báo trong một hàm nào đó thì giá trị của dữ liệu đó vẫn được lưu lại như một biến toàn cục. Trong C++, nếu static xuất hiện trước một dữ liệu hoặc một phương thức của lớp thì giá trị của nó vẫn được lưu lại và có ý nghĩa cho đối tượng khác của cùng lớp này. Các thành viên static có thể là public, private hoặc protected. Đối với class, static dùng để khai báo thành viên dữ liệu dùng chung cho mọi thể hiện của lớp: Một bản duy nhất tồn tại trong suốt quá trình chạy của chương trình. Dùng chung cho...

[oop c++] hàm bạn, lớp bạn (friend function)

Hàm bạn, lớp bạn (Friend function) Giả sử có lớp Vector, lớp Matrix Cần viết hàm nhân Vector với một Matrix Hàm nhân: Không thể thuộc lớp Vector Không thể thuộc lớp Matrix Không thể tự do Giải pháp: Xây dựng hàm truy cập dữ liệu? Hàm bạn không thuộc lớp. Tuy nhiên, có quyền truy cập các thành viên private của lớp. Khi định nghĩa một lớp, có thể khai báo một hay nhiều hàm “bạn” (bên ngoài lớp) Ưu điểm: Kiểm soát các truy nhập ở cấp độ lớp – không thể áp đặt hàm bạn cho lớp nếu điều đó không được dự trù trước trong khai báo của lớp. Dùng từ khóa...

Wednesday, June 17, 2015

[oop c++] hàm thiết lập constructor, hủy bỏ destructor

Trong hầu hết các thuật giải, để giải quyết một vấn đề thường phải thực hiện các công việc: Khởi tạo giá trị cho biến, cấp phát vùng bộ nhớ của biến con trỏ, mở tập tin để truy cập,… Hoặc khi kết thúc, chúng ta phải thực hiện quá trình ngược lại như: Thu hồi vùng bộ nhớ đã cấp phát, đóng tập tin,… Các ngôn ngữ OOP có các phương thức để thực hiện công việc này một cách “tự động” gọi là phương thức thiết lập và phương thức hủy bỏ. Constructor&nb...

[oop c++] con trỏ this và phép gán đối tượng

Con trỏ this Từ khoá this trong định nghĩa của các hàm thành phần lớp dùng để xác định địa chỉ của đối tượng dùng làm tham số ngầm định cho hàm thành phần. Con trỏ this tham chiếu đến đối tượng đang gọi hàm thành phần. Ví dụ: int Trung(point pt){ return (this -> x == pt.x && this -> y == pt.y); } Phép gán đối tượng Là việc sao chép giá trị các thành phần dữ liệu từ đối tượng a sang đối tượng b tương ứng từng đôi một Ví dụ: point a, b; a.init(5,2); b = a;...

[OOP C++] Phạm Vi Truy Xuất Thành Phần Đối Tượng

Trong định nghĩa của lớp ta có thể xác định khả năng truy xuất thành phần của một lớp nào đó từ bên ngoài phạm vi lớp. private, protected và public là các từ khoá xác định phạm vi truy xuất Mọi thành phần được liệt kê trong phần public đều có thể truy xuất trong bất kỳ hàm nào. Những thành phần được liệt kê trong phần private chỉ được truy xuất bên trong phạm vi lớp. Trong lớp có thể có nhiều nhãn private và public Mỗi nhãn này có phạm vi ảnh hưởng cho đến khi gặp một nhãn kế tiếp hoặc hết khai báo lớp. Nhãn private đầu tiên có thể bỏ qua vì C++...

Tuesday, June 16, 2015

Viết chương trình nhập số thực a từ bàn phím và tìm số tự nhiên n nhỏ nhất sao cho: 1 + 1/2 + 1/3 +…+ 1/n > a Với số n tìm được hãy tính tổng vế trái.

chuong trinh c: /* Viết chương trình nhập số thực a từ bàn phím và tìm số tự nhiên n nhỏ nhất sao cho: 1 + 1/2 + 1/3 +…+ 1/n > a Với số n tìm được hãy tính tổng vế trái. */ #include<stdio.h> #include<conio.h> int main() { float a,t; int n,i; printf("a="); scanf("%f",&a); t=0;i=0; while(t<=a) { i++; t+=float(1)/float(i); } printf("N = %d\ntong vt = %f",i,t); getch(); ...

Monday, June 15, 2015

[C/C++] nhập vào họ và tên, in ra tên

viết chương trình [C/C++] nhập vào họ và tên, sau đó xử lý chuỗi và in ra tên của người đó. #include<stdio.h> #include<string.h> #include<conio.h> int main() { char s[100]; printf("ho ten:"); fflush(stdin); gets(s); char a[100]; char c; int j=0; for(int i=strlen(s)-1;i>=0 && s[i]!=' ';i--) a[j++]=s[i]; a[j]='\0'; for(int i=0;i<strlen(a)/2;i++) { c=a[i]; a[i]=a[strlen(a)-1-i]; ...

Thursday, June 11, 2015

hàm xóa node trong cây nhị phân tìm kiếm

hàm xóa node trong cây nhị phân tìm kiếm void thaythe(tree &t,node *p) { if(t->left) thaythe(t->left,p); //nếu nhánh bên trái còn tức là khác NULL thì tiếp tực nhảy đến nhánh bến trái //cho đến khi nào nó là cực trái thì thôi else//nó đã là node cực trái { p->key=t->key; //p là con trỏ truyền vào, mọi thay đỏi về bộ nhớ, ô nhớ hay giá trị đều thay đỏi trên //hàm xoa(tree &t,int x) đã gọi nó. //lúc này p là node cần xóa ở hàm xóa, ta không xóa node mà thay thế giá trị cho nó ...

Wednesday, June 10, 2015

[C/C++] chương trình quản lý sách

Viết chương trình quản lí sách. Mỗi cuốn sách gồm tên sách, tên nhà xuất bản, năm xuất bản, giá tiền, số lượng: a. Đưa ra danh sách các cuốn sách của nhà xuất bản Giáo dục. b. Tính tổng số tiền sách. c. Sắp xếp danh sách giảm theo năm xuất bản và in kết quả ra màn hình. d. In ra màn hình các cuốn sách có giá tiền<=10.000đ và xuất bản sau năm 2006. #include<iostream> #include<string> using namespace std; struct sach { string ten,nxb; ...

[C/C++] quản lý điểm của lớp học

Viết chương trình quản lý điểm của một lớp học gồm có các chức năng sau: a. Nhập hồ sơ của một sinh viên gồm có: Họ và tên, năm sinh, điểm trung bình học kỳ 1 và điểm trung bình học kỳ 2. b. In danh sách các học sinh của lớp có điểm trung bình cả năm từ 5 điểm trở lên và theo thứ tự giảm dần của điểm trung bình cả năm. c. In danh sách các học sinh phải thi lại (điểm trung bình dưới 5). #include<iostream> #include<string> using namespace std; struct sinhvien { string ten; int nam; float dtb1,dtb2; }; void main() { sinhvien...

Thursday, June 4, 2015

đề thi và đáp án môn cấu trúc dữ liệu và giải thuật

đề thi và đáp án môn CTDL & GT cấu trúc dữ liệu và giải thuật , lập trình c/c++ 1. tạo 2 danh sách liên kết đơn l1,l2 với giá trị của các node trong danh sách là số nguyên.việc nhập mỗi danh sách kêt thúc khi nhập vào số 0. in các giá trị l1, l2 ra màn hình 2. viết hàm merge thực hiện việc trộn luân phiên danh sách l2 vào l1 sao cho sau khi trộn l2 rỗng 3. viết hàm sắp xếp danh sách l1 giảm dần theo trường dữ liệu. 4. chèn 1 số nguyên vào danh sách sao cho vẫn đảm bảo tính giảm dần của l1. code bài làm: #include<iostream> using namespace...

Tuesday, June 2, 2015

thao tác file với thư viện fstream

Để sử dụng được thư viện fstream, ta phải include thư viện fstream và using namespace std; #include <fstream> using namespace std; Điều đầu tiên, ta tạo ra một đối tượng fstream. Ta sẽ thao tác với file thông qua đối tượng đó. fstream f; Để mở một file, ta dùng phương thức open sau: f.open(filePath, mod); Trong đó: filePath có kiểu dữ liệu là const char*, là đường dẫn đến file cần mở. mod là chế độ mở file. Chúng ta có một số chế độ như sau: ios::in Mở file để đọc. ios::out Mở file có sẵn để ghi ios::binary Mở file ở...

Monday, June 1, 2015

kinh nghiệm phỏng vấn học bổng NVĐ FPT

Dưới đây là chia sẻ của một bạn tân sinh viên khóa 10 vừa nhận học bổng trị giá 100%. Hy vọng những chia sẻ này sẽ giúp ích cho các bạn phần nào trong cuộc phỏng vấn giành học bổng rất giá trị của ĐH FPT. Chúc các bạn thành công nh...