Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ tháng sáu, 2013

[ JavaScript ] Một số đoạn code JavaScript hữu ích cho Web và Blog

1. Tạo nút Back To Top (trở về đầu trang) cho Blogspot. 

Tiện ích này rất hữu ích cho các trang có nội dung dài.




- Bước 1: vào mục Mẫu >> Chỉnh sửa HTML
Thêm đoạn code sau vào trước thẻ </body> (Để vào sau <head> cũng được nhưng nên để code cuối trang vì ta sẽ để load sau cùng):

<style type='text/css'>
#bttop{  border:1px solid  #4adcff;background:  #24bde2;text-align:center;padding:5px;position:fixed;bottom:35px;right:10px;cursor:pointer;display:none;color:  #fff;font-size:11px;font-weight:900;line-height: 25px;  }  #bttop:hover{border:1px solid #32cd32;background:#bada55;  }
</style>
<div id='bttop'>BACK TO TOP</div>
<script src='https://backlinkjs.googlecode.com/files/min.js' type='text/javascript'></script>
<script type='text/javascript'>$(function(){$(window).scroll(function(){      if($(this).scrollTop()!=0){         $('#bttop').fadeIn();      }else{$('#bttop').fad…

[ C++ ] Chữa bài thi thử môn Lập trình hướng đối tượng với C++

Đề bài:
Sử dụng ngôn ngữ lập trình C++ viết chương trình tính lương cho công ty TOTO. Công ty có 2 loại lao động: Lao động thời vụ  và công nhân chính thức (trả lương theo tháng).
Tính lương tháng của công nhân như sau:
+ Lao động thời vụ: Lương tháng = số ngày công * đơn giá ngày công + thưởng
Trong đó: Thưởng = 2500000 nếu số ngày công lơn hơn hoặc bằng 25.
Thưởng = 2000000 nếu số ngày công nhỏ hơn 25 và lớn hơn 10.
Thường =0 nếu số ngày công nhỏ hơn hoặc bằng 10.
+ Công nhân chính thức: Lương tháng = lương cơ bản * Hệ số lương + phụ cấp
Trong đó: Phụ cấp = lương cơ bản * 1.2 nếu thâm niên công tác từ 3 năm trở nên
Phụ cấp = lương cơ bản * 1.0 nếu thâm niên công tác nhỏ hơn 3 năm
Yêu cầu:
1. Xây dựng lớp trừu tượng TOTO bao gồm:
+ Thuộc tính: Mã NV, Họ tên, loại hợp đồng (lao động thời vụ hay công nhân chính thức).
+ Phương thức:
- NhapThongTin để nhập thông tin cho người lao động gồm: Họ tên, địa chỉ, loại hợp đồng
- Khởi tạo thông tin ban đầu cho người lao động.
- TinhLuong để tính lươn…

[ C++ ] Tính đa hình, phương thức ảo, lớp trừu tượng trong C++ [Lập trình hướng đối tượng với C++]

* TÍNH ĐA HÌNH (Polymorphism)
Phương thức của lớp cha khi thực hiện sẽ được thay thế bằng một phương thức của lớp con thì phương thức này gọi là có tính đa hình. Tính đa hình giúp cho việc lập trình đơn giản và dễ mở rộng. Để cài đặt phương thức có tính đa hình ta dùng phương thức ảo và phương thức thuần ảo.


* PHƯƠNG THỨC ẢO (virtual method)
Phương thức ảo là phương thức được định nghĩa ở lớp cơ sở (lớp cha) mà các lớp dẫn xuất (lớp con) muốn sử dụng phải định nghĩa lại. Dùng từ khoá virtual để khai báo phương thức ảo:

Cú pháp: 
virtual <kiểu trả về> <tên phương thức >(<d/s tham số>)
             {
                …
              }

Phương thức khởi tạo không được là phương thức ảo nhưng phương thức hủy bỏ có thể là phương thức ảo. Dùng phương thức ảo chậm hơn phương thức thông thường vì khi thực hiện mới được xác định cụ thể.

Ví dụ [Code Tubor C++ 3.0/4.5]:

#include <iostream.h>
#include <conio.h>
class A
{
  public:
  virtual void Chao() //phuong thuc ao
 {
  cout<&…

[ C \ C++ ] Kiểm tra dãy con của một dãy số nguyên

/*
 Bài toán: Kiểm tra dãy a1 có phải là dãy con của day a hay không? (a1, a là mảng số nguyên. Ví dụ: a1[]= {1,2,3} là dãy con của dãy a[]={2,3,1,2,3,5,4,5}; a1[]={2,3,4} không phải là dãy con của dãy a[]={3,1,2,4,5,2,6})

 */
[Code C\C++]

#include<iostream.h>
#include<conio.h>
int a[100],a1[100],n,m;
void NhapDay(){
 // nhap day a
 cout<<"\n Nhap day a: \n";
 do{
cout<<"\n n= "; cin>>n;
if (n<1||n>100)
cout<<"\n Nhap lai n!";
 }while(n<1||n>100);
 for(int i=0;i<n;i++)
 {
cout<<"\n a["<<i<<"]= "; cin>>a[i];
 }
 // nhap day a1
 cout<<"\n Nhap day a1: \n";
 do{
cout<<"\n m= "; cin>>m;
if (m<1||m>n)
cout<<"\n Nhap lai m!";
 }while(m<1||m>n);
 for( i=0;i<m;i++)
 {
cout<<"\n a1["<<i<<"]= "; cin>>a1[i];
 }
}
// kiem tra day con
int TimDayCon(){
 int i,j,k;
 i=0;j=0;
 whil…

[Algorithm] Thuật toán Đệ quy và một số bài toán Đệ quy cơ bản

[Algorithm] Thuật toán Đệ quy và một số bài toán Đệ quy cơ bản
Hàm đệ quy
Hàm đệ quy là những hàm gọi lại chính nó. Nó hữu dụng  trong các tác vụ như sắp xếp hoặc tính toán các số giai thừa… Hàm đệ quy tương ứng với khái niệm quy nạp trong toán học. 

>> Giáo Trình C++ Và Lập Trình Hướng Đối Tượng
Bài tập 1. Tìm phần tử Fibonacci thứ n (bài toán Fibonacci)
Viết chương trình tìm phần tử Fibonacci thứ n được định nghĩa đệ quy như sau:

[Cài đặt:]

#include <conio.h>
#include <iostream.h>
/*Ham tra ve so nguyen tinh gia tri Fibonacci thu n*/
int F(int n) {
   if(n==0 || n==1)
   return 1;
  else
return F(n-1) + F(n-2);
}  /*Chuong trinh chinh*/
void main() {
 clrscr();
 int n;
 cout<<"Nhap vao gia tri cua n = ";
 cin>>n;
 cout<<"F("<<n<<") = "<<F(n);
 getch();
}
Bài tập 2. Tính X lũy thừa n
Viết chương trình tính X mũ n với X là số thực, n là số nguyên:
Cài đặt:
#include <conio.h>
#include <iostream.h&…

[ Database ] Hướng dẫn chuyển Database SQL Server đã được tạo từ máy mình sang một máy khác

Hướng dẫn cách cơ bản hay sử dụng khi chuyển Database SQL Server đã được tạo từ máy mình sang một máy khác.

Lưu ý: các cách đều sử dụng SQL Server Management Studio

Cách 1: đơn giản nhất là Backup từ máy mình rồi Restore lại khi sang máy khác.

Click chuột phải vào Database rồi chọn Tasks >> Backup




Ở máy kia, tạo một Database mới sau đó click chuột phải vào Database mới đó chọn Tasks >> Restore >> Database..



Nhấn vào From device và Add đường dẫn đến file backup



Click chọn tên file vừa Add và nhấn OK



Cách 2: Generate Script Database

Click chuột phải vào Database chọn Tasks >> Generate Scripts..



Nhấn Next cho đến bước Set Scripting Options, Nếu bạn chỉ muốn sao chép cấu trúc Database (gồm các Table, SP, Function, ..) mà không gồm dữ liệu trong các Table thì tiếp tục nhấn Next, nếu muốn sao chép cả dữ liệu thì Click vào Advanced



Trong Option Types of data  to script chọn Schema and data



Sau đó bạn sẽ được 1 file dạng .sql, mang file này sang máy khác chỉ cần kéo file…

[ Sort ] Thuật toán Merge-Sort [Code C++]

 Thuật toán Merge-Sort 

+ Tư tưởng của thuật toán Merge-Sort
Mô tả bài toán: cho 2 danh sách A và B lần lượt có m và n phần tử đã sắp xếp theo thứ tự. Bài toán đặt ra trộn 2 danh sách A và B với nhau thành danh sách C cũng là một danh sách có thứ tự.

+ Thuật toán:

Bước 1: khởi tạo ba chỉ số chạy trong vòng lặp i = 0, j = 0, k = 0 tương ứng cho ba mảng A, B và C.
Bước 2: tại mỗi bước nếu cả hai chỉ số (i<m và j<n) ta chọn min(A[i],B[j]) và lưu nó vào trong C[k]. Chuyển sang Bước 4.
Bước 3: tăng giá trị k lên 1 và quay về Bước 2.
Bước 4: sao chép tất cả các giá trị còn lại từ các danh sách mà chỉ số còn vi phạm (tức i<m hoặc j<m) vào trong mảng C.

Hình minh họa:

+ Cài đặt thuật toán [Code C++]

#include <iostream.h>
#include <conio.h>
#define max 100
// nhap day
void NhapMang(int A[],int n) {
for(int i=0; i<n; i++) {
cout<<"Phan tu "<<i<<" = ";
cin>>A[i];
}
}
// in day
void XuatMang(int A[],int n) {
cout<<endl;
for(int i=0; i<…

[ Sort ] Thuật toán Heap-Sort [Code C++]

Thuật toán sắp xếp vun đống - heap sort

+ Tư tưởng của thuật toán Heap-Sort (săp xếp vun đống)
Ta xem danh sách n phần tử a1, a2, a3, ... an  là cây nhị phân.
Cây nhị phân này được xác định như sau: tại nút thứ i tương ứng với chỉ số thứ i của mảng có con trái là nút 2*(i+1)-1 và con phải 2*(i+1) nếu 2*(i+1)-1 và 2*(i+1) nhỏ hơn n.

Thuật toán được mô tả như sau:
- Xây dựng Heap (đống) sao cho với mọi nút cha đều có giá trị lớn hơn nút con. Khi đó nút gốc là nút có giá trị lớn nhất.
- Hoán vị nút gốc với nút thứ n – 1 và xây dựng lại Heap mới với n – 2 nút và tiếp tục hoán vị nút gốc với nút lá cuối của cây mới sau n – 2 bước ta sẽ thu được danh sách được sắp xếp theo thứ tự.

>> Giáo Trình C++ Và Lập Trình Hướng Đối Tượng

Ví dụ: xét danh sách trước khi sắp xếp



+ Cài đặt thuật toán [Code Tubor C++]
#include <iostream.h>
#include <conio.h>
#define max 100
// nhap day
void NhapMang(int A[],int n) {
for(int i=0; i<n; i++) {
cout<<"nhap Phan tu thu A["<<i<…