[ 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').fadeOut(); 
   } 
  }); 
  $('#bttop').click(function(){
$('body,html').animate({scrollTop:0},800); 
}); 
}); 
</script>

Chú ý: Ở giữa 2 thẻ <style type='text/css'> và </style> là đoạn css định hình dạng cho nút Back to Top, các bạn tùy chỉnh thoải mái. Dòng code màu lam là thư viện Jquery, nếu có rồi thì các bạn nên xóa nó đi. BACK TO TOP các bạn thay bằng gì cũng được (GO TOP chẳng hạn).
Bạn có thể download file min.js [tại đây - click bỏ qua quảng cáo để download] sau đó bạn có thể upload lên google code để lưu trữ lâu dài.

2. Không cho click phải chuột
<SCRIPT language=JavaScript1.1>
function right(e) {
if (navigator.appName == 'Netscape' &&
(e.which == 3 || e.which == 2))
return false;
else if (navigator.appName == 'Microsoft Internet Explorer' &&
(event.button == 2 || event.button == 3)) {
alert('Chuc Mot Ngay Vui ve - Gui Wedsite Cho Ban Be Cua Minh Nha !');
return false;
}
return true;
}
document.onmousedown=right;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
window.onmousedown=right;
</SCRIPT>
3.   Làm Thanh Tiêu Đề Web Chạy Trên Task Manager Khi Đóng Mở Web
<script language=javascript >
title_tmp1=document.title
if (title_tmp1.indexOf(">>")!=-1){
title_tmp2=title_tmp1.split(">>");
title_last="*~*"+title_tmp2[1];
title_last=title_last + "*~*" + title_tmp2[2];
}else{
if (title_tmp1.indexOf("*~*")!=-1){
title_tmp2=title_tmp1.split("*~*");
title_last="*~*"+title_tmp2[1];
if (title_last=="*~*"){title_last="*~*"};
if (title_last=="*~*"){title_last="*~*"};
}
else { title_last=" wWw.KyNiemB2.Top1.Vn "}
}

title_new=""+title_last+""
step=0
function flash_title()
{
step++
if (step==8) {step=1}
if (step==1) {document.title='[----*'+title_new+'*----]'}
if (step==2) {document.title='[---*-'+title_new+'-*---]'}
if (step==3) {document.title='[--*--'+title_new+'--*--]'}
if (step==4) {document.title='[-*---'+title_new+'---*-]'}
if (step==5) {document.title='[--*--'+title_new+'--*--]'}
if (step==6) {document.title='[---*-'+title_new+'-*---]'}
if (step==7) {document.title='[----*'+title_new+'*----]'}
setTimeout("flash_title()",180);
}
flash_title()
</script>
4.  Chống Click Chuột Phải ... Và Làm "Giật Giật Web Nêu Người Xem Cứ Cố ý Click Right ...

<SCRIPT language=JavaScript>
document.onmousedown=click
var times=0
var times2=10
function click() {
if ((event.button==2) || (event.button==3)) {
if (times>=1) { earthquake() }
alert("Ban Ko Dc Click Chuot Phai");
times++ } }
function earthquake() {
alert("Ban Ko Dc Click Chuot Phai");
window.moveTo(0, 0)
window.moveTo(1, 1)
window.moveTo(2, 2)
window.moveTo(3, 3)
window.moveTo(4, 4)
window.moveTo(5, 5)
window.moveTo(6, 6)
window.moveTo(7, 7)
window.moveTo(8, 8)
window.moveTo(9, 9)
window.moveTo(10, 10)
window.moveTo(9, 9)
window.moveTo(8, 8)
window.moveTo(7, 7)
window.moveTo(6, 6)
window.moveTo(5, 5)
window.moveTo(4, 4)
window.moveTo(3, 3)
window.moveTo(2, 2)
window.moveTo(1, 1)
alert("Giat Nhu Fiml Nha??!")
tremmors()
}
function tremmors() {
window.moveTo(0, 0)
window.moveTo(1, 1)
window.moveTo(2, 2)
window.moveTo(3, 3)
window.moveTo(4, 4)
window.moveTo(5, 5)
window.moveTo(6, 6)
window.moveTo(7, 7)
window.moveTo(8, 8)
window.moveTo(9, 9)
window.moveTo(10, 10)
window.moveTo(11, 11)
window.moveTo(12, 12)
window.moveTo(9, 9)
window.moveTo(8, 8)
window.moveTo(7, 7)
window.moveTo(6, 6)
window.moveTo(5, 5)
window.moveTo(4, 4)
window.moveTo(3, 3)
window.moveTo(2, 2)
window.moveTo(1, 1)
tremmors()
}
</SCRIPT>
5.  Làm Con Chuột Có Mấy Cái Vòng Chạy Chạy Xung Quanh ...

<script language="JavaScript">
<!-- Mouse Attack by Kurt Grigg - http://www.btinternet.com/~kurt.grigg/javascript
var num=10;//Number of dots!
var vel=20;//Speed!
var col=new Array('#0080ff','#ffffff','#0000ff','#44ccff');//Dot colours, min 2!
var stopafter=60; //Stop and clear after x secondS!
//Nothing needs altering past here....................
var MAy=0;
var MAx=0;
var py=0;
var px=0;
var angle=0;
var distance=0;
var rep;
var ry=0;
var rx=0;
var tmr=null;
var n4=(document.layers);
var n6=(document.getElementById&&!document.all);
var ie=(document.all);
var o6=(navigator.appName.indexOf("Opera") != -1)?true:false;
var _d=(n4||ie)?'document.':'document.getElementById(" ';
var _a=(n4||n6)?'':'all.';
var _r=(n6)?'")':'';
var _s=(n4)?'':'.style';
var v=(n4)?"show":"visible";
var put=false;
stopafter*=1000;
if (n4||n6){
window.captureEvents(Event.MOUSEMOVE);
function mouse1(e){
if (put) return false;
MAy = e.pageY-window.pageYOffset;
MAx = e.pageX;
}
if (n4) window.onMouseMove=mouse1;
else document.onmousemove=mouse1;
}
if (ie||o6){
function mouse2(){
if (put) return false;
MAy = (ie)?event.clientY:event.clientY-window.pageYOffset;
MAx = event.clientX;
}
document.onmousemove=mouse2;
}
if (n4){
for (inc=0; inc < num; inc++)
document.write('<layer name=dots'+inc+' top=0 left=0 width='+inc/3+' height='+inc/3+' bgcolor=#ffffff></layer>');
}
else{
if (ie&&!o6){
document.write("<div id='outer' style='position:absolute;top:0px;left:0px'>");
document.write("<div style='position:relative'>");
}
for (inc=0; inc < num; inc++)
document.write('<div id="dots'+inc+'" style="position:absolute;top:0px;left:0px;width:'+ inc/3+';height:'+inc/3+';background:#ffffff;font-size:1">.</div>');
if (ie&&!o6) document.write("</div></div>");
}
function pos(){
h=(ie)?document.body.clientHeight:window.innerHeig ht-20;
w=(ie)?document.body.clientWidth:window.innerWidth-20;
ry=Math.round(Math.random()*h);
rx=Math.round(Math.random()*w);
rep=Math.round(Math.random()*3);
if (rep == 3)ry=0;
if (rep == 2)ry=h;
if (rep == 1)rx=0;
if (rep == 0)rx=w;
py=ry;
px=rx;
}
pos();
function followleader(){
sy=(!ie)?window.pageYOffset:0;
sx=(!ie)?window.pageXOffset:0;
if (ie) outer.style.top=document.body.scrollTop;
for (inc=0; inc < num; inc++){
randomcol=col[Math.floor(Math.random()*col.length)];
temp1=eval(_d+_a+"dots"+inc+_r+_s);
temp1.visibility=v;
if (inc < num-1){
temp2=eval(_d+_a+"dots"+(inc+1)+_r+_s);
temp1.top=temp2.top;
temp1.left=temp2.left
}
else{
temp1.top=py+sy;
temp1.left=px;
}
if (n4)temp1.bgColor=randomcol;
else temp1.background=randomcol;
}
}
function bomb(){
ay=MAy-py;
ax=MAx-px;
angle=Math.round(Math.atan2(ay,ax)*180/Math.PI);
if (angle < 0) angle += 360;
MAdy=py-MAy;
MAdx=px-MAx;
distance=Math.floor(Math.sqrt(MAdx*MAdx+MAdy*MAdy) );
go_y = Math.round(vel*Math.sin(angle*Math.PI/180));
go_x = Math.round(vel*Math.cos(angle*Math.PI/180));
py+=go_y;
px+=go_x;
if (distance < vel) pos();
followleader();
tmr=setTimeout("bomb()",20);
}
bomb();
function dsbl(){
v=(n4)?"hide":"hidden";
put=true;
MAx=0;
MAy=0;
setTimeout('clearTimeout(tmr)',stopafter+100);
}
setTimeout('dsbl()',stopafter);
//-->
</script>
6. TITLE Chạy .....

 <script language=JavaScript>
var txt=" ..:: WelCome To Website | wWw.KyNiemB2.Top1.Vn | Mang Giai Tri Online -> 12B2 THPT EaH'Leo - Daklak - Design : HoangVu Entertainment© -";
var expert=200;
// speed of roll
var refresh=null;
function marquee_title(){
document.title=txt;
txt=txt.substring(1,txt.lenghth)+txt.charAt(0);
refresh=setTimeout("marquee_title()",expert);
}
marquee_title();
</script>
7. Dòng Chữ Chạy Dưới web ...

<SCRIPT language=JavaScript>
puchtit=")«-»(..:: Welcome To WwW.NhoOi.Kiss.To ::..)«-»(";
letrero2="·.¸¸.·´´¯`··._.·";
letrero1="·.¸¸.·´´¯`··._.·";ultimo1=letr ero1.length-1;
ultimo2=letrero2.length-1;
tiempo=setTimeout("scroll()",.100);
function scroll()
{
aux1=letrero1.charAt(ultimo1-1);
letrero1=aux1+letrero1.substring(0,ultimo1-1);
aux2=letrero2.charAt(0);
letrero2=letrero2.substring(1,ultimo2+1)+aux2;
window.status="(" + letrero1 + ")(" + letrero2 + puchtit + letrero1 + ")(" + letrero2 + ")";
tiempo=setTimeout("scroll()",.100);
return true;
}
// -->
</script>
8. Tạo 1 Button Giờ Trên Website
 <SCRIPT language=JavaScript>
<!-- Begin
day = new Date();
miVisit = day.getTime();
function clock() {
dayTwo = new Date();
hrNow = dayTwo.getHours();
mnNow = dayTwo.getMinutes();
scNow = dayTwo.getSeconds();
miNow = dayTwo.getTime();
if (hrNow == 0) {
hour = 12;
ap = " AM";
} else if(hrNow <= 11) {
ap = " AM";
hour = hrNow;
} else if(hrNow == 12) {
ap = " PM";
hour = 12;
} else if (hrNow >= 13) {
hour = (hrNow - 12);
ap = " PM";
}
if (hrNow >= 13) {
hour = hrNow - 12;
}
if (mnNow <= 9) {
min = "0" + mnNow;
}
else (min = mnNow)
if (scNow <= 9) {
secs = "0" + scNow;
} else {
secs = scNow;
}
time = hour + ":" + min + ":" + secs + ap;
document.form.button.value = time;
self.status = time;
setTimeout('clock()', 1000);
}
function timeInfo() {
milliSince = miNow;
milliNow = miNow - miVisit;
secsVisit = Math.round(milliNow / 1000);
minsVisit = Math.round((milliNow / 1000) / 60);
alert("There have been " + milliSince + " milliseconds since midnight, January 1, 1970. "
+ "You have spent " + milliNow + " of those milliseconds on this page. "
+ ".... About " + minsVisit + " minutes, and "
+ secsVisit + " seconds.");
}
document.write("<center><form name=\"form\">"
+ "<input type=button value=\"Click for info!\""
+ " name=button onClick=\"timeInfo()\"></form></center>");
onError = null;
clock();
// End -->
</SCRIPT> 
9. Bộ Đếm 10 , 9 ....0
 <!---------------------------------------- NOJ DUNG --------------------->
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<!------------------------------- Thanh Trượt ---->
<STYLE>BODY A:link {
COLOR: #253d59; TEXT-DECORATION: none
}
A:visited {
COLOR: #253d59; TEXT-DECORATION: none
}
A:hover {
padding:0px; BACKGROUND: #ffffff; MARGIN: 0px; COLOR: #253d59; tahoma:
}
A:active {
padding:0px; BACKGROUND: #ffffff; MARGIN: 0px; COLOR: #253d59; tahoma:
}
HTML {
SCROLLBAR-FACE-COLOR: #ffffff; SCROLLBAR-HIGHLIGHT-COLOR: #ffffff; SCROLLBAR-SHADOW-COLOR: #ffffff; SCROLLBAR-3DLIGHT-COLOR: #ffffff; SCROLLBAR-ARROW-COLOR: #8b8b8b; SCROLLBAR-TRACK-COLOR: #ffffff; SCROLLBAR-DARKSHADOW-COLOR: #7a7a7a
}
BODY {
SCROLLBAR-FACE-COLOR: #ffffff; SCROLLBAR-HIGHLIGHT-COLOR: #ffffff; SCROLLBAR-SHADOW-COLOR: #ffffff; SCROLLBAR-3DLIGHT-COLOR: #ffffff; SCROLLBAR-ARROW-COLOR: #8b8b8b; SCROLLBAR-TRACK-COLOR: #ffffff; SCROLLBAR-DARKSHADOW-COLOR: #7a7a7a
}
</STYLE>
<!------------------------- Kieu Chu ----------------->
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY>
<CENTER><B><FONT style="FONT-SIZE: 40pt" face="Comic Sans MS"
color=#ffff00>[</FONT><FONT style="FONT-SIZE: 40pt" face="Comic Sans MS"
color=#ff3333> <A href="http://www.kyniemb2.top1.vn/">w</A></FONT><A
href="http://www.kyniemb2.top1.vn/"><FONT style="FONT-SIZE: 40pt"
face="Comic Sans MS" color=#cc00ff>W</FONT><FONT style="FONT-SIZE: 40pt"
face="Comic Sans MS" color=#ff3333>w.</FONT><FONT style="FONT-SIZE: 40pt"
face="Comic Sans MS">K<FONT color=#00ff00>y</FONT><FONT
color=#ff0000>Ni</FONT>e<FONT color=#ffff00>m</FONT><FONT
color=#cc00ff>B2</FONT>.T<FONT color=#00ff00>o</FONT>p<FONT
color=#ff3399>1</FONT>.V<FONT color=#ff0000>n</FONT></FONT></A><FONT
style="FONT-SIZE: 40pt" face="Comic Sans MS" color=#ff3333> </FONT><FONT
style="FONT-SIZE: 40pt" face="Comic Sans MS" color=#ffff00>]<BR></FONT><FONT
face="Comic Sans MS" color=#ff3399 size=6>Thay Đôi? Tên Miê`n Chính Thú*c
</FONT></B>
<DIV id=txt align=center></DIV><!--------------------- Doạn CODE ---------------->
<SCRIPT type=text/javascript>
var c=10;
var t;
var theDate = new Date();
s=theDate.getSeconds();
function ChangeUrl(site){
document.getElementById("txt").innerHTML='<br><br> <br><h3><a href="http://www.NHOOI.KISS.TO" target=Index><font face="Comic Sans MS" color=3366CC></a><br><a href="'+site+'" target=Index><font color=FF00FF><big>Click vào đây đê? vào Trang Chu? </big></font></font></a></h3><br><br><br><p align="center"><FONT face="Tahoma">Trình duyệt sẽ tự động chuyển sang <b><font color=blue>'+site+'</font></b> trong vòng <b><font color=red>'+c+'</font></b> gi&acirc;y nữa.<br></Font>';
document.getElementById("txt").innerHTML+='<strong ><a href="'+site+'" target="_top" onClick="this.style.behavior=\'url(#default#homepa ge)\';this.setHomePage(\'http://nhooi.kiss.to\');"><Font Face="Tahoma">Click vào đ&acirc;y nếu bạn chờ qu&aacute; l&acirc;u [ Click ] Vao Day Cung Duoc !^^.</a></strong><br></span></p></Font>';
c-=1;
url=site;
t=setTimeout("ChangeUrl(url)",1000);
stopCount(c,url);
}
function stopCount(c,link){
if(c==-1)
{clearTimeout(t);
location.href=link;}
}
</SCRIPT>
<SCRIPT>
ChangeUrl('Http://KyNiemB2.Top1.Vn');
</SCRIPT>
<!---------------- Chu 2 -------------------->
<FONT face="Comic Sans MS" size=6><B><FONT
color=#ff0000>Design</FONT></B><B><FONT color=#00ff00> </FONT><FONT
color=#cc00ff>:</FONT><FONT color=#00ff00> </FONT><FONT
color=#ffff00>Hô`</FONT><FONT color=#00ff00> Ho</FONT>àng<FONT color=#00ff00>
</FONT><FONT color=#0000ff>Vũ</FONT><FONT color=#00ff00> </FONT><FONT
color=#cc00ff>®</FONT><FONT color=#00ff00><BR></FONT></B><FONT
color=#ffff00>Website</FONT><FONT color=#00ff00>
:wWw.KyNiemB2.Top1.Vn</FONT></FONT><FONT color=#00ff00
size=6><BR></FONT></CENTER>
</TEXTAREA></P></BODY></HTML> 

[Tải Code Chương trình tại đây (Lưu ý: Sau 5s, click Bỏ qua quảng cáo - Skin Ad)]

[ C++ ] Chữa bài thi thử môn Lập trình hướng đối tượng với 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ương tháng cho người lao động (trừu tượng).
- InThongTin để in thông tin người lao động gồm:
*Mã NV
*Họ tên: …
*Loại hợp đồng: …
*Lương tháng: …
2. Xây dựng hai lớp LDThoiVu và CNChinhThuc kế thừa từ lớp TOTO (bổ sung thêm các thuộct tính cần thiết cho từng lớp)
- Khởi tạo giá trị ban đầu về thông tin cho từng loại công nhân (mỗi loại đối tượng).
- Cài đặt phương thức TinhLuong cho từng loại lao động.
- Nhập giá trị cho các thuộc tính mới được bổ sung.
3. Trong phương thức main thực hiên:
- Khởi tạo các đối tượng (mỗi loại lao động một đối tượng)
- Nhập thông tin cho đối tượng
- In thông tin đối tượng
Biết rằng: lương cơ bản = 1,050,000 (VNĐ).

---------------------------------
// Code Turbo C++ 3.0 / 4.5 //
--------------------------------

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


// class TOTO

class TOTO{
// khai bao cac thuoc tinh
public:
char manv[10],ht[30],lhd[30];
public:
// khai bao cac phuong thuc
TOTO(char *manv,char *ht,char *lhd) //phuong thuc khoi tao
{
strcpy(this->manv,manv);
strcpy(this->ht,ht);
strcpy(this->lhd,lhd);
}
virtual void NhapTT() // phuong thuc ao
{
 fflush(stdin);
 cout<<"\n Nhap thong tin nguoi lao dong:\n";
 cout<<"\n Ma nhan vien: "; gets(manv);
 cout<<"\n Ho ten: "; gets(ht);
 cout<<"\n Loai hop dong: "; gets(lhd);
}
virtual double TinhLuong()=0; // phuong thuc thuan ao
virtual void InTT()
{
 cout<<"\n Ma nhan vien: "<<manv;
 cout<<"\n Ho ten: "<<ht;
 cout<<"\n Loai hop dong: "<<lhd;
 cout<<"\n Luong thang: "<<TinhLuong();
}
};

// class LDThoiVu

class LDThoiVu: public TOTO{
// bo sung them cac thuoc tinh
public:
int soNgayCong;
float donGia;
// Phuong thuc
public:
 // phuong thuc khoi tao
LDThoiVu(char manv[],char ht[],char lhd[], int soNgayCong, float donGia):TOTO(manv,ht,lhd)
{
 this->soNgayCong=soNgayCong;
 this->donGia=donGia;
}
void NhapTT(){
 TOTO::NhapTT(); // goi phuong thuc nhap cua lop cha
 cout<<"\n So ngay cong: "; cin>>soNgayCong;
 cout<<"\n Don gia: "; cin>>donGia;
}
double TinhLuong(){
 double thuong;
 if (soNgayCong>25) thuong=2500000.0;
 else if(soNgayCong>10) thuong=2000000.0;
 else thuong=0.0;

 return (donGia*soNgayCong+thuong);
}

};


// class CNChinhThuc

class CNChinhThuc: public TOTO{
// bo sung them cac thuoc tinh
public:
float heSoLuong,LCB;
int soNamCT;
// Phuong thuc
public:
 // phuong thuc khoi tao
CNChinhThuc(char manv[],char ht[],char lhd[], float heSoLuong, int soNamCT):TOTO(manv,ht,lhd)
{
    this->LCB=1050000.0;
 this->heSoLuong=heSoLuong;
 this->soNamCT=soNamCT;
}
void NhapTT(){
 TOTO::NhapTT(); // goi phuong thuc nhap cua lop cha
 cout<<"\n He so luong: "; cin>>heSoLuong;
}
double TinhLuong(){
 double phuCap;
 if (soNamCT>3) phuCap=LCB*1.2;
 else  phuCap=LCB*1.0;


 return (LCB*heSoLuong+phuCap);
}

};

// ham main
void main(){
 clrscr();
 // khai bao doi tuong LDThoiVu
 LDThoiVu t=LDThoiVu("","","",1,1.0);
 t.NhapTT();
 t.InTT();
 // khai bao doi tuong CNChinhThuc
 CNChinhThuc t1=CNChinhThuc("","","",1.0,1);
 t1.NhapTT();
 t1.InTT();

 getch();
}

//-----------------------------
// Đề nghị các bạn chuyển code sang ngôn ngữ Java


Chúc các bạn thành công!

 



[ 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;
 while (1){
  k=i;
  j=0;
  while (j<m){
if(a[i]==a1[j]&&i<n)
{
 i++;
 j++;
}
else
{
i=k+1;
break;
}
  }
  if (j>m-1) return 1;
  if (k>n-1) break;
 }
 return 0;
}
// ham chinh
void main(){
 NhapDay();
 if (TimDayCon()==1) cout<<"\n a1 la day con cua a";
 else cout<<"\n a1 khong phai day con cua a";
 getch();
}


[ Đề nghị các bạn chuyển sang các code khác như Java, C#, VB, Pascal,...]

[Tải Code Chương trình tại đây (Lưu ý: Sau 5s, click Bỏ qua quảng cáo - Skin Ad)]

[ 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 vào SSMS và nhấn Execute để tạo Database.



Cách 3: Copy file Database .mdf rồi Attach lại ở máy khác





Trong 3 cách trên, tôi thường dùng cách 2 nhất, do nếu bạn dùng các phiên bản SQL Server không đồng nhất ở các máy thì cũng không bị lỗi, cách 1 và 3 nếu SQL Server ở máy tạo Database có phiên bản cao hơn máy khác thì khi add vào sẽ không được. Cách 1 thường được dùng nếu bạn lập trình Web do trên Hosting bạn chỉ có thể chọn Restore.

[ 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:
Thuật toán Merge-Sort

+ 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<n; i++)
cout<<A[i]<<"\t";
}
// merge sort
void MergeSort(int m, int n, int &k, int A[], int B[], int C[]) {
int i = 0, j = 0;
k = 0;
while (i < m && j < n) {
if (A[i] <= B[j]) {
C[k] = A[i];
i++;
}
else
{
C[k] = B[j];
j++;
}
k++;
}
if (i < m) {
for (int p = i; p < m; p++) {
C[k] = A[p];
k++;
}
}
else
{
for (int p = j; p < n; p++) {
C[k] = B[p];
k++;
}
}
}
// ham main
void main() {
int A[max],B[max],C[max],n,m,k;
clrscr();
cout<<"\n Nhap so phan tu cua day A: n = ";
cin>>n;
cout<<"\n Nhap so phan tu cua day B: m = ";
cin>>m;
cout<<"Nhap day A:\n";
NhapMang(A,m);
cout<<"Nhap day B:\n";
NhapMang(B,n);
cout<<"\n => Sap xep tron 2 mang A, B \n";
MergeSort(m,n,k,A,B,C);
XuatMang(C,k);
getch();
}
//==============================


--------------------------------------------
Xem thêm các thuật toán khác: 


------------------------
Tự học lập trình C++:

------------------------

Bài 1: Chương trình đầu tay
Bài 2: Các kiểu dữ liệu cơ bản chuần trong C\C++
Bài 3: Nhập, Xuất trong C/C++
Bài 4: Cấu trúc rẽ nhánh (IF)
Bài 5: Cấu trúc lặp for
Bài 6: Cấu trúc lặp while
Bài 7: Cấu trúc lặp do ... while
Bài 8: Cấu trúc lựa chọn switch... case
Bài 9: Dữ liệu kiểu mảng (array)
Bài 10: Dữ liệu kiểu cấu trúc (struct)
Bài 11: Hàm (function)
Bài 12: Dữ liệu kiểu con trỏ (pointer)
Bài 13: Xử lý tệp tin (file)
Bài 14: Lập trình hướng đối tượng (OOP) với C++


Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Giáo Trình: Kỹ Thuật Lập Trình C/C++ Căn Bản Và Nâng Cao [Click để xem]

# Khoá học online: Học lập trình C/C++ TỪ A - Z [Click để xem]



Chúc các bạn thành công!

 

[ 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<<"] =";
cin>>A[i];
}
}
// in day
void XuatMang(int A[],int n) {
cout<<endl;
for(int i=0; i<n; i++)
cout<<A[i]<<"\t";
}
// doi cho 2 so
void Swap(int &a,int &b) {
int temp = a;
a = b;
b = temp;
}
//hoan vi nut cha thu i phai lon hon nut con (vun dong)
void Heapify(int A[],int n, int i) {
int Left = 2*(i+1)-1;
int Right = 2*(i+1);
int Largest;
if(Left<n && A[Left]>A[i])
Largest = Left;
else
Largest = i;
if(Right<n && A[Right]>A[Largest])
Largest = Right;
if(i!=Largest) {
Swap(A[i],A[Largest]);
Heapify(A,n,Largest);
}
}
//xay dung Heap sao cho moi nut cha luon lon hon nut con tren cay (tao cay)
void BuildHeap(int A[], int n) {
for(int i = n/2-1; i>=0; i--)
Heapify(A,n,i);
}
// heap-sort
void HeapSort(int A[], int n) {
BuildHeap(A,n);
for(int i = n-1; i>0; i--){
Swap(A[0],A[i]);
Heapify(A,i,0);
}
}
// ham main
void main() {
int A[max], n;
clrscr();
cout<<"Nhap so phan tu:";
cin>>n;
NhapMang(A,n);
cout<<"\nMang vua nhap la:";
XuatMang(A,n);
cout<<"\nSap xep theo Heap Sort:";
HeapSort(A,n);
XuatMang(A,n);
getch();
}

//======================================

--------------------------------------------
Xem thêm các thuật toán khác: 


------------------------
Tự học lập trình C++:

----------
 

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Giáo Trình: Kỹ Thuật Lập Trình C/C++ Căn Bản Và Nâng Cao [Click để xem]

# Khoá học online: Học lập trình C/C++ TỪ A - Z [Click để xem]



Chúc các bạn thành công!

 

[ Sort ] Thuật toán Quick - Sort [ code C++ ]

Thuật toán sắp xếp nhanh - Quick Sort 


+ Ý tưởng thuật toán

Xét dãy n phần tử a1, a2, a3, .... an.
Bước 1: chọn khóa pivot (chốt): a(Left + Righ)/ 2.
Bước 2: Phân vùng. Những phần tử nhỏ hơn khóa thì nằm bên trái của khóa, những phần tử lớn hơn khóa thì nằm bên phải của khóa và những phần tử bằng khóa có thể nằm bất cứ chỗ nào trên dãy.
Bước 3: sắp xếp cho cả hai phân vùng mới bên trái và bên phải.

+ Mô tả hoạt động của thuật toán Quick Sort:

Thuật toán Quick - Sort

+ Cài đặt thuật toán  [ Code Tubor C++  ]
#include <iostream.h>
#include <conio.h>
#define max 100
// nhap mang
void NhapMang(int A[],int n) {
for(int i=0; i<n; i++) {
cout<<"nhap Phan tu thu A["<<i<<"] =";
cin>>A[i];
}
}
// in mang
void XuatMang(int A[],int n) {
cout<<endl;
for(int i=0; i<n; i++)
cout<<A[i]<<"\t";
}
// doi cho 2 so
void Swap(int &a,int &b) {
int temp = a;
a = b;
b = temp;
}
// thuat toan quick-sort
void QuickSort(int A[], int Left, int Right) {
int i = Left, j = Right;
int pivot = A[(Left + Right) / 2];
/* partition */
while (i <= j) {
while (A[i] < pivot)
i++;
while (A[j] > pivot)
j--;
if (i <= j) {
Swap(A[i],A[j]);
i++;
j--;
}
}
/* recursion */
if (Left < j)
QuickSort(A, Left, j);
if (i < Right)
QuickSort(A, i, Right);
}
// ham main
void main() {
int A[max], n;
clrscr();
cout<<"Nhap so phan tu:";
cin>>n;
NhapMang(A,n);
cout<<"\nMang vua nhap la:";
XuatMang(A,n);
cout<<"\nSap xep theo Quick Sort:";
QuickSort(A,0,n-1);
XuatMang(A,n);
getch();
}
//======================================


--------------------------------------------
Xem thêm các thuật toán khác: 


------------------------
Tự học lập trình C++:

------------------------

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Giáo Trình: Kỹ Thuật Lập Trình C/C++ Căn Bản Và Nâng Cao [Click để xem]

# Khoá học online: Học lập trình C/C++ TỪ A - Z [Click để xem]


Bài 1: Chương trình đầu tay

Categories

AI (13) AI programming (1) ASP (1) Android (32) App Honeygain (4) Assembly (17) Biểu diễn thuật toán (1) Bubble-Sort (1) Bài giảng (2) Bài giảng lập trình C và Cpp (21) Bài viết hay (108) Bản đồ tư duy (1) C Plus Plus (103) C/C++ (16) CDSL phân tán (1) CSS (2) Cơ sở dữ liệu (11) Danh ngôn lập trình (1) Datamining (4) Genetic Algorithm (1) Giáo trình (2) Giải thuật tiến hóa - thuật toán di truyền (2) Google App Engine (2) Góc học tập (34) HTML (1) Hướng dẫn kiếm tiền online tại nhà (6) Hướng dẫn sử dụng Emu8086 (1) Học lập trình (131) Học lập trình C và CPP qua ví dụ (17) Java (54) Java Căn bản (6) JavaScript (5) Kỹ năng đọc hiệu quả (1) Kỹ thuật lập trình (16) Kỹ thuật đồ họa máy tính (10) Lý thuyết Cơ sở dữ liệu (2) Lý thuyết đồ thị (11) Lập trình Cơ sở dữ liệu (2) Lập trình Python (2) Lập trình căn bản (8) Lập trình hướng đối tượng với Java (7) Lập trình mobile (9) Lập trình mạng (6) Lập trình nhúng (1) Lập trình trí tuệ nhân tạo (2) ML (1) MMO (6) MS Access (1) Machine learning (2) Mạng máy tính (1) Mẹo tìm kiếm trên Google (1) Nghiên cứu khoa học (3) Ngôn ngữ lập trình (2) Những cuốn sách hay mà bạn nên đọc khi còn trẻ (1) Pascal (3) Phương pháp tính toán tối ưu (2) Phương pháp tối ưu (2) Quản lý dự án CNTT (1) SEO (1) SQL (5) Swift (9) Sách hay (4) Thiết kế Web (2) Thuật toán (51) Thuật toán Sắp Xếp -Sort (9) Thuật toán Tìm kiếm - Search (5) Thuật toán di truyền (4) Thực hành Android (2) Tin học văn phòng (5) Tiện ích máy tính (3) Toán rời rạc (13) Treo máy kiếm tiền (3) Trí tuệ nhân tạo (18) Tài liệu tham khảo (5) Tìm hiểu Blockchain (2) Tự học Android (3) Tự học Android qua ví dụ (1) Tự học JavaScript (1) Tự học lập trình (9) Tự học lập trình Android (17) Tự học lập trình C và CPP (14) Tự học lập trình java qua các ví dụ (8) XML (1) blockchain (2) bài giảng quản lý dự án CNTT (1) bài tập java (3) bài tập lập trình (4) cấu trúc dữ liệu giải thuật (15) hướng dẫn viết báo (1) học lập trình Java (11) học máy (5) hợp ngữ (8) lập trình viên (3) phưng pháp đơn hình (2) thuật toán AI (2) tài liệu CNTT miễn phí (4) tính toán tối ưu (1) tự học lập trình iOS (8) tự học lập trình python (1) ví dụ Assembly (1) Đại số gia tử và ứng dụng (1) Đồ họa (4)