Chủ Nhật, 30 tháng 12, 2012

Về lí tưởng sống của thanh niên ngày nay

Bước vào thế kỷ XXI, đất nước ta đang trên đà hội nhập với sự phát triển của thế giới với rất nhiều cơ hội và thử thách được mở ra.Và thanh niên chúng ta, những người chủ tương lai của đất nước phải góp một phần sức cho quê hương của mình. Điều đó đòi hỏi chúng ta phải suy nghĩ và xem lại cách sống của mình, và một câu hỏi lớn được đặt ra: Lý tưởng sống của thanh niên ngày nay là gì?
Trước hết chúng ta phải hiểu được “lý tưởng sống” là gì? Lý tưởng sống là mục đích tốt đẹp mà mỗi con người muốn hướng tới,là lí do,mục đích mà mỗi con người mong mỏi đạt được. Người có lý tưởng sống cao đẹp là người luôn suy nghĩ và hành động để hoàn thiện mình hơn,giúp ích cho mình,gia đình xã hội và đất nước. Sinh ra ở đời, ai trong chúng ta cũng khao khát được sống hạnh phúc, với lòng khao khát đó thúc giục chúng ta đi kiếm tìm hạnh phúc.
Hơn thế nữa, tự đáy lòng của con người luôn ước ao có được một cuộc sống bình an, vui tươi, không lo âu buồn phiền, không đau khổ oán than, muốn an hưởng sự may lành hơn là bất hạnh, giàu sang hơn là nghèo nàn. Để đạt được khát vọng đó, người ta luôn tìm cho mình một lẽ sống cho cuộc đời, hay nói đúng hơn là một lý tưởng. Lý tưởng này sẽ hướng dẫn đời họ vượt qua mọi chông gai và can đảm chấp nhận mọi nghịch cảnh. Vì có một lý tưởng để theo đuổi, có một lẽ sống cho cuộc đời, là niềm hạnh phúc lớn lao nhất của con người.
Bạn có bao giờ tự hỏi bạn tồn tài trên cuộc đời vì lý do gì không? Một câu hỏi lẽ ra rất dễ nhưng nó làm cho bạn phải bắt đầu ngồi lại suy nghĩ về bản thân mình.Có thể bạn cũng đã có được một mục đích sống cho riêng mình,nhưng bạn vẫn nên xem lại mục đích đó có thật sự cao đẹp hay không bạn ạ.Chúng ta sống trong cộng đồng là sống vì mọi người,vì quê hương, vì đất nước.
Nhiều người từng nghe câu nói trong bài hát khá nổi tiếng của Trịnh Công Sơn: "Sống ở đời sống cần có một tấm lòng, để làm gì em biết không? Để gió cuốn đi, để gió cuốn đi...." Phải mất một thời gian dài tôi và các bạn mới có thể mới ra rằng ý nghĩa của câu này là "hãy mở rộng tấm lòng của bạn với cuộc sống này, với mọi người xung quanh bạn và đừng mong đợi bạn sẽ nhận lại được gì... Hãy san sẻ tấm lòng để cuộc sống này đẹp hơn và đừng nghĩ rằng những cái gì mình đã cho đi là lớn lao mà nó chỉ là những cái gì nhỏ nhoi nhất nhẹ nhàng... chỉ để gió cuốn đi...". Đó cũng là một phần của lý tưởng sống đẹp.
Lý tưởng của ta không cần lớn lao dù chỉ là một chiếc lá, nhưng chúng ta cũng cần có cho mình một lý tưởng bình dị như để vươn lên. Phải sống có lý tưởng! Bạn có thể ra đi từ nhiều phía, theo những con đường khác nhau, nhưng cuối cùng mỗi người phải lựa chọn cho mình mục đích của cuộc sống. Ta sống cho ta, cho những người thân, bạn bè và cho mọi người. Vì vậy, chỉ có hạnh phúc khi "mình vì mọi người và mọi người phấn đấu vì hạnh phúc của từng người". Rõ ràng lý tưởng là mục đích sống, là ý nghĩa của mỗi cuộc đời. Lý tưởng quyết định sự thành công trong cuộc sống. Lý tưởng dẫn dắt sự nghiệp, tăng thêm sức mạnh cho mọi người để đạt đến thành công trong sự nghiệp. Lý tưởng cho ta sức mạnh vượt qua khó khăn và thử thách trong cuộc sống.
Nhà văn Pháp Đi-dơ-rô từng nói: “Nếu không có mục đích, anh không làm được gì cả. Anh cũng không làm được gì vĩ đại nếu mục đích tầm thường”. Câu nói đó, lời khẳng định đó thật rõ ràng. Nó khuyên chúng ta sống thì phải có mục đích, lý tưởng phải cao đẹp thì sống mới có ý nghĩa, mới làm được những điều vĩ đại. Trong thời kì công nghiệp hóa-hiện đại hóa, kinh tế thế giới hội nhập, khoa học kĩ thuật hiện đại, con người đặt ra vấn đề về lẽ sống của cuộc đời và sống như thế nào cho xứng đáng ? Chúng ta nên hiểu sống có mục đích và lý tưởng cao đẹp là như thế nào ? Đó là phải sống để xây dựng đất nước, sống vì xã hội vì sự tiến bộ của nhân loại.
Vậy thì tại sao ta phải sống có lí tưởng cao đẹp ? Vì nếu “sống không mục đích không làm được gì cả” và nếu “ mục đích tầm thường thì không làm được điều gì vĩ đại”.Thế chúng ta phải làm gì để trở thành người có mục đích cao cả và có ích cho xã hội? Trước hết, ta cần phải xác định lý tưởng sống đúng đắn-dự tính về tương lai sẽ cống hiến cho xã hội về những mặt nào. Tiếp theo ta cần phải lên kế hoạch học tập, rèn luyện kĩ năng, sức khoẻ, tư tưởng nhằm thực hiện mục đích đó. Sau đó, ta phải tích cực tham gia các hoạt động xã hội, chính trị; điều này sẽ giúp cho bản thân hòa nhập cộng đồng.Ta cần phải phát huy những thế mạnh của bản thân, khắc phục các điểm yếu và vân dụng những điều đã học vào thực tế.
Ngày xưa, anh hùng Lý Tự trọng đã từng nói:”Con đường của thanh niên chỉ có thể là con đường cách mạng và không thể là con đ ường nào khác!” Trong thời kỳ chiến tranh bao lớp thanh niên xông pha lên đường với một mục tiêu - lý tưởng tất cả vì tiền tuyến, vì độc lập tư do của đất nước. Tư tưởng đó đã đi vào lời ca tiếng hát của bao nhiêu thế hệ người Việt Nam. "Anh lên xe trời đổ cơn mưa, Cái gạt nước xua tan nỗi nhớ; Em xuống núi nắng vàng rực rỡ; Cái nhành hoa gạt mối riêng tư" hay "Khi tạm biệt mua xuân; Anh lính về biên giới; Cô gái vào ca ba".
Bên cạnh một tình yêu nồng cháy của tuổi trẻ nhưng ho phải tạm gác lại để dành tất cả cho một mục tiêu cao cả. Trong thời kỳ ngày nay có lẽ chúng ta khó có thể tìm kiếm được một ca khúc nói vê tình yêu đep như vậy. Biết bao thế hệ thanh niên đ ã ngã xuống vì một lý tưởng duy nhất là giành lại độc lập t ự do cho đất nước. Đến hôm nay khi đất nước hoà bình và đang trên đà phát tri ển,thì lý tưởng sống cao đẹp của thanh niên,thế hệ trẻ lại càng rộng hơn,bao la hơn,”Vì một Việt Nam Phát triển”.
Thế hệ trẻ là những người chủ tương lai của đất nước, là chủ thể của thế giới, động lực giúp cho xã hội phát triển. Chính vì vậy mà các bạn thanh thiếu niên càng gần phải sống có mục đích cao đẹp. Hãy nhớ rằng: “Non sông Việt Nam có trở nên tươi đẹp hay không, dân tộc Việt Nam có sánh vai với các cường quốc năm châu được hay không đó là nhờ vào công học tập của các em” lời nhắn như thiêng liêng ấy phải được thực hiện! Bác luôn mong lớp lớp thanh niên sau này sẽ không chùn bước trước những khó khăn trước mắt,luôn vững chí bền tâm vượt qua thử thách để hướng tới tương lai tốt đẹp hơn.

“Không có việc gì khó
Chỉ sợ lòng không bền
Đào núi và lắp biển
Quyết chí ắt làm nên”
(Hồ Chí Minh)

Chúng ta chắc còn nhớ hai chiến thắng vẻ vang liên tiếp của đội tuyển robocon Việt Nam,hay những tấm huy chương vàng,huy chương bạc từ những môn Olympic Toán, Lý, Hoá, Sinh, trong những giải thể thao hàng đầu của châu lục và thế giới Đó là một tấm gương gần gũi, rõ ràng mà thanh thiếu niên cần noi theo. Tôi xin được nhắn nhủ các bạn thanh thiếu niên, học sinh: “Hãy học tập để nắm lấy tri thức vì tri thức là sức mạnh. Có tri thức, các bạn như đứng trên vai những người đi trước để cao hơn người khác. Hãy phát huy những truyền thống tốt đẹp của dân tộc. Chấp nhận và vượt qua thử thách, bởi không có người thất bại, chỉ có người không biết cố gắng mà thôi”. Và chắc hẳn ai trong chúng ta đều biết những Enstein, Môza, Đác-uyn,… Tất cả họ đều là những người sống có lý tưởng cao đẹp, tất cả đều làm nên điều vĩ đại và được lưu danh muôn thuở. Như mục đích “ra đi tìm đường cứu nước, hi sinh cuộc đời vì cách mạng, vì dân tộc “ của Bác. Đó là một minh chứng rất cao đẹp.
Nhưng hiện nay,một bộ phận lớn thanh niên lại không suy nghĩ được như thế. Họ sống hờ hững với những gì diễn ra xung quanh, sống theo quan niệm: “Được đến đâu thì hay đến đó”,"Nước đến chân mới nhảy”. Tuổi trẻ ngày nay có nhiều thời gian để dành cho tình yêu nên có lẽ họ không thể nhận ra những hạnh phúc mà họ đang có mà chỉ toàn nhìn thấy sự khổ đau trong tình yêu, phải chăng tuổi trẻ ngày nay khi đã được đáp ứng quá đầy đủ về vật chất lẫn tinh thần thì dần trở nên ích kỷ hơn. Chỉ biết nghĩ cho riêng mình.Và mục tiêu của phần lớn các bạn trẻ ngày nay là phải thật thành công trong cuộc sống, khẳng định được vị trí của mình trong xã hội; kiếm thật nhiều tiền để có thể thỏa mãn nhu cầu của cuộc sống của riêng mình.Trong khi rất nhiều người đang cố gắng đóng góp một phần công sức nhỏ bé của mình mong muốn một xã hội tốt đẹp hơn thì lại không ít người lại tỏ ra rất hờ hững với những gì đang diễn ra cho đất nước mình. Thật đáng buồn cho một tương lai đất nước!
Các bạn luôn mong muốn mình sẽ là người tài giỏi nhưng lại không có được một lý t ưởng cho riêng mình,thì cuộc đời bạn sẽ trôi về đâu ? Hãy tưởng tượng mà xem: một thanh niên sống không mục đích, không có định hướng, học tập chỉ do ba me gượng ép ; chàng ta chẳng hề ham thích những lựa chọn ấy và cũng chẳng hề thich học những môn học ấy; rồi cậu rớt đại học, thất nghiệp (chẳng ai nhận những người không có học vấn cả, dù cậu đã qua các năm trung học rồi nhưng với tinh thần thiếu ý chí thì xét lại cậu cũng chẳng đủ sức cho công việc)…không có tiền câu đâm ra vòi vĩnh bố mẹ(tuy nhiên vẫn có một số người tốt, không phạm phải những sai lầm này)…tiêu xài tiền, rồi đủ các thói hư, tật xấu. Cuối cùng chàng thanh niên ấy đã kết thúc cuộc đời trong nhà tù hoặc trên giường bệnh sau bao năm ăn chơi, nghiện ngập. Đó là ví dụ về một con người không có lý tưởng sống. Còn những người sống có mục đích nhưng lại là mục đích tầm thường như ăn no mặc ấm, hạnh phúc gia đình, kiếm được nhiều tiền, cưới vợ đẹp,…Những người này vì lợi ích của bản thân, họ dễ dàng làm bạn với cái ác và sẽ phạm tội. Chúng ta thường đọc thấy trên báo công an hay thấy trên tivi những tin liên quan đến ông này bà nọ có chức vụ, lạm dụng quyền hạn để trục lợi; hay những nhóm tội phạm, nhất là các nhóm thanh thiếu niên trẻ cướp giât, phạm tội… để kiếm tiền ăn chơi hay những thanh niên, học sinh (kể cả người lớn) ghiền chơi games đến mê mệt. Tất cả, những người sống không có mục đích và những người có mục đích tầm thường đều có kết quả không tốt.
Tóm lại,thanh niên chúng ta cần phải biết và tạo cho mình một lý tưởng sống cao đẹp,vì mọi người,vì quê hương đất nước. Bản thân mỗi chúng ta hãy tự nhìn lại cách sống của mình để hướng đến tương lai tươi sáng. Cuối cùng xin kết thúc bằng lời của chiến sĩ cách mạng, một người cộng sản trẻ tuổi, một nhà văn, một anh hùng thời vệ quốc Xô Viết vĩ đại, Paven Copsagine trong tác phẩm Thép đã tôi thế đấy (tác giả Nikolai Ostrovsky): "Cái quí nhất của con người là cuộc sống. Đời người chỉ sống có một lần, phải sống sao cho khỏi xót xa ân hận vì những năm tháng sống hoài sống phí, cho khỏi hổ thẹn vì dĩ vãng ti tiện và đớn hèn của mình, để đến khi nhắm mắt xuôi tay, mà có thể nói rằng: Tất cả đời mình ta đã cống hiến cho sự nghiệp cao đẹp nhất trên đời, sự nghiệp đấu tranh giải phóng loài người. Và ta phải sống gấp lên mới được. Vì bệnh tật vô lý hay một sự bi đát tình cờ nào đó có thể bỗng nhiên cắt đứt cuộc đời này".
Nguồn: Những bài văn hay

Chủ Nhật, 4 tháng 11, 2012

Thư gởi cho Con

Thư gởi cho Con



Nếu một mai thấy cha già mẹ yếu
Hãy thương yêu và thấu hiểu song thân.
Những lúc ăn mẹ thường hay vung vãi
Hay tự cha không mặc được áo quần.

Hãy nhẫn nại nhớ lại thời thơ ấu
Mẹ đã chăm lo tã, áo, bế,bồng.
Bón cho con từng miếng ăn, hớp sữa
Cho con nằm trong nệm ấm chăn bông.

Cũng có lúc con thường hay trách móc
Chuyện nhỏ thôi mà mẹ nói trăm lần.
Xưa kia bên nôi giờ con sắp ngủ,
Chuyện thần tiên mẹ kể mãi không ngưng..

Có lúc cha già không muốn tắm
Đừng giận cha và la mắng nặng lời.
Ngày con nhỏ,con vẫn thường sợ nước
Từng van xin “đừng bắt tắm, mẹ ơi !”

Những lúc cha không quen xài máy móc
Chỉ cho cha những hướng dẫn ban đầu.
Cha đã dạy cho con trăm nghìn thứ
Có khi nào cha trách móc con dâu?

Một ngày nọ khi mẹ cha lú lẫn
Khiến cho con mất hứng thú chuyện trò
Nếu không phải là niềm vui đối thoại
Xin đến gần và hãy lắng nghe cha.

Có những lúc mẹ không buồn cầm đũa
Đừng ép thêm già có lúc biếng ăn
Con cần biết lúc nào cha thấy đói
Lúc nào cha thấy mệt muốn đi nằm

Khi già yếu phải nương nhờ gậy chống
Xin nhờ con đỡ cha lấy một tay.
Hãy nhớ lại ngày con đi chập chững
Mẹ dìu con đi những bước đầu ngày.

Một ngày kia cha mẹ già chán sống
Thì con ơi đừng giận dữ làm gì !
Rồi mai này đến phiên,con sẽ hiểu
Ở tuổi này sống nữa để làm chi?

Dù mẹ cha cũng có khi lầm lỗi
Nhưng suốt đời đã làm tốt cho con
Muốn cho con được nên người xứng đáng
Thì giờ đây con cũng chẳng nên buồn.

Con tức giận có khi còn xấu hổ
Vì mẹ cha giờ ăn đậu ở nhờ
Xin hãy hiểu và mong con nhớ lại
Những ngày xưa khi con tuổi ấu thơ.

Hãy gíup mẹ những bước dài mệt mỏi
Để người vui đi hết chặng đường đời.
Với tình yêu và cuộc đời phẩm giá
Vẫn yêu con như biển rộng song dài.

Luôn có con,trong cuộc đời
Yêu con,Cha-Mẹ có mấy lời cho con.

 

Thứ Tư, 31 tháng 10, 2012


Recursion

Note:
(*) Means that students are required to understand essential features only (the problem explaination, definitions, the outline of algorithms…), not in details.

5.1. Recursive definition


1) A base case (anchor or the ground case) that does not contain a reference to its own type.
2) An inductive case that does contain a reference to its own type.
For example: Define the set of natural numbers

5.2. Recursive program/algorithm

A recursive program/algorithm is one that calls itself again.
There are three basic rules for developing recursive algorithms.
• Know how to take one step.
• Break each problem down into one step plus a smaller problem.
• Know how and when to stop.

public static void convertToBin(int decimalNum)
int quotient = decimalNum / 2;        // One step
     int remainder = decimalNum % 2;   // One step
     if (quotient > 0)
{convertToBin(quotient); // smaller problem
}
System.out.print(remainder); // after all recursive calls have been
// made last remainder printed first
}

5.3. Recursion application

  • Recursive definitions are used in defining functions or sequences of elements
  • Purpose of recursive definition:
    • Generating a new elements
    • Testing whether an element belongs to a set (*)
  • (*) The problem is solved by reducing it to a simpler problem
Example – factorial calculation

5.4. Method calls and recursion implementation

How does recursion actually work?
  • Each time a method is called, an activation record (AR) is allocated for it. This record usually contains the following information:
    • Parameters and local variables used in the called method.
    • A dynamic link, which is a pointer to the caller's activation record.
    • Return address to resume control by the caller, the address of the caller’s instruction immediately following the call.
    • Return value  for a method not declared as void. Because the size of the activation record may vary from one call to another, the returned value is placed right above the activation record of the caller.
  • Each new activation record is placed on the top of the run-time stack
  • When a method terminates, its activation record is removed from the top of the run-time stack
  • Thus, the first AR placed onto the stack is the last one removed

5.5. Direct recursion

5.5.1. Tail recursion

There is only one recursive call at the very end of a method implementation
class Main
{static void tail(int n)
{if(n >0)
{ System.out.print(n + "  ");          
tail(n-1);
}
}
public static void main(String [] args)
{tail(10);
System.out.println();
}
}
Output: 10  9  8  7  6  5  4  3  2  1

5.5.2. Non-Tail recursion

The recursive call is not at the very end of  a method implementation

public class Main
{public static void reverse() throws Exception
{char ch = (char) System.in.read();
if(ch != '\n')
{reverse();
System.out.print(ch);
}
}
public static void main(String [] args) throws Exception
{System.out.println("\nEnter a string to be reversed:");
reverse();
System.out.println("\n");
}
}

Running of the program:

5.6. Convert recursion implementation to iterative implementation using stack

public static void nonRecursiveReverse() throws Exception
{MyStack t = new MyStack();
char ch;
while(true)
{ch = (char) System.in.read();
if(ch == '\n') break;
t.push(ch);
}
while(!t.isEmpty())
System.out.print(t.pop());
}

5.7. Indirect recursion

  • If f() calls itself, it is direct recursive
  • If f() calls g(), and g() calls f(). It is indirect recursion. The chain of intermediate calls can be of an arbitrary length, as in:
                        f() -> f1() -> f2() -> ... -> fn() -> f()
  • Example: sin(x) calculation

5.8. Nested recursion

         

5.9. Excessive recursion


The tree of calls for fibo

5.10. More Examples

The Tower of Hanoi
  • Rules:
    • Only one disk may be moved at a time.
    • Each move consists of taking the upper disk from one of the rods and sliding it onto another rod, on top of the other disks that may already be present on that rod.
    • No disk may be placed on top of a smaller disk.
Source: http://en.wikipedia.org/wiki/Hanoi_tower


void moveDisks(int n, char fromTower, char toTower, char auxTower)
{if (n == 1) // Stopping condition
Move disk 1 from the fromTower to the toTower;
else
{moveDisks(n - 1, fromTower, auxTower, toTower);
move disk n from the fromTower to the toTower;
moveDisks(n - 1, auxTower, toTower, fromTower);
}
}

Drawing fractals

von Knoch snowflakes

  1. Divide an interval side into three even parts
  2. Move one-third of side in the direction specified by angle
    • Turn to the right 60° (i.e., turn –60°) and go forward one-third of side
    • Turn to the left 120° and proceed forward one-third of side
    • Turn right 60° and again draw a line one-third of side long


private void drawFourLines(double side, int level, Graphics g) {
if (level == 0) {
// arguments to sin() and cos() must be angles given in radians,
// thus, the angles given in degrees must be multiplied by PI/180;
pt.x = ((int)(Math.cos(angle*Math.PI/180)*side)) + currPt.x;
pt.y = ((int)(Math.sin(angle*Math.PI/180)*side)) + currPt.y;
g.drawLine(currPt.x, currPt.y, pt.x, pt.y);
currPt.x = pt.x;
currPt.y = pt.y;
}
else {                                  
drawFourLines(side/3.0,level-1,g);
left (60);
drawFourLines(side/3.0,level-1,g);
right(120);
drawFourLines(side/3.0,level-1,g);
left (60);
drawFourLines(side/3.0,level-1,g);
}
}

5.11. Recursion vs. Iteration

  • Some recursive algorithms can also be easily implemented with loops
    • When possible, it is usually better to use iteration, since we don’t have the overhead of the run-time stack (that we just saw on the previous slide)
  • Other recursive algorithms are very difficult to do any other way

5.12. Back tracking


In solving some problems, a situation arises where there are different ways leading from a given position, none of them known to lead to a solution. After trying one path unsuccessfully, we return to this crossroad and try to find a solution using another path. However, we must ensure that such a return is possible and that all paths can be tried. This technique is called backtracking. This technique is used in artificial intelligence, and one of the problems in which backtracking is very useful is the n-queens problem

Each choice leads to another set of choices. Make one choice and continue. If you reach a dead end, go back to previous choice and try next alternative.
putQueen(row)
for every position col on the same row
if position col is available
                                                place the next queen in position col;
if (row < n)
putQueen(row+1);
else success;
                                                remove the queen from position col;
source -

CF Department

Chủ Nhật, 28 tháng 10, 2012

Snowflake (Snowdrop)


Snowflake (Snowdrop)

Snowdrop là tên tiếng Anh của hoa Giọt Tuyết , lọai hoa màu trắng sữa dịu dàng này được truyền thuyết cho là đã được sinh ra trong vườn Địa Đàng . Một thiên thần , người đã an ủi Eva và sự cằn cỗi của thiên đàng vào mùa đông, đã bắt được 1 bông tuyết đang rơi, thổi nhẹ vào nó và bảo nó hãy hóa thành một bông hoa tươi tốt mãi mãi. Ngày nay, hoa Giọt tuyết luôn là bông hoa đầu tiên của mùa Xuân và báo hiệu cho chúng ta biết chẳng mấy chốc mùa Đông sẽ kết thúc. Điều này giải thích tại sao nó tương trưng cho "Niềm hi vọng -Sự an ủi"

Hoa Giọt tuyết





Hoa giọt tuyết dành tặng cô gái tháng 1

Em- nhỏ nhắn và mỏnh manh đến mức ...như những bông hoa giọt tuyết vậy ... tan chảy dần khi chạm vào .

Em- trắng muốt và thanh khiết ...Tôi sợ mình đến gần ,em sẽ biến mất trong sự trong lành đó ... Tội lỗi luôn khiến tôi cảm thấy mình và em như những bông hoa giọt tuyết đang tan dần trong sự nóng ráp thô bạo của ngọn lửa vậy ...

Hoa giọt tuyết ...một tình yêu trong lành và dễ vỡ như tuyết .

Tôi khao khát những gì không có thật ...những gì mãi mãi không thuộc về tôi ...

Tôi gặp em trong màu trắng của nắng và hoa .Em mơ hồ đến mức tôi cứ nghĩ em là thiên thần của hoa giọt tuyết-vật em tặng tôi cho lần đầu gặp gỡ .

Tôi vẽ em bằng sự khao khát và nỗi nhớ về một thứ không có thật ...Tôi như điên dại ...em là mộng hay là hư vô ? Tôi mãi mãi không hiểu .

Rồi tình cờ ,tôi được gặp lại em ...có thể đây là mơ ...giấc mơ về thiên thần hoa giọt tuyết...Nhưng tôi đâu hề biết đó là ảo ảnh cuối cùng về em ...Hoa giọt tuyết dịu dàng và mỏng manh ...Đến độ tan chảy khi chạm vào sự nóng ráp thô bạo của ngọn lửa ...

Tôi đang làm gì thế ?

Nhớ một người không tồn tại

Tôi đang làm gì thế ?

Chờ một người mãi mãi ra đi

Tôi đang làm gì thế ?

Quay nhìn dĩ vãng đau thương

Tôi đang làm gì thế ?

Xem thường cả thực tại

Một người không có dĩ vãng ,không có hiện tại ,không có cả tương lai ...Tôi... mãi mãi ôm giấc mơ không có thật...

Em không đến từ đây .Em không thuộc về nơi này .Em thuộc về tự do và cánh đồng tuyết trắng bất tận-nơi có nắng , gió , hoa giọt tuyết trong trắng và...không có tôi ....


Em không đến từ đây .Em không thuộc về nơi này .Em...không thuộc về tôi ... theo blog Dương Thái Khôi.

Thứ Năm, 27 tháng 9, 2012

TÌnh Khúc Vàng




Tình Khúc Vàng


Anh nghe mùi hương trên tóc quen nồng nàn 
Anh nghe tình em nghe tình em chứa chan 
Anh nghe bàn tay trong bàn tay nhẹ nhàng, 
với người đời hé môi cười.... 

Anh nghe niềm vui trên phố đông rộn ràng, 
Anh nghe tình yêu bên tình yêu hát vang 
Anh nghe bờ vai bên bờ vai dịu dàng, 
ngỡ ngàng cùng ánh chiều sang. 

ĐK : 

Oh, oh.....Ngồi bên em cung đàn hát lên tình khúc vàng 
Bao nhiêu âu lo đời vụt tan 
Ngày mai xa nhau rồi, phút giây còn muôn lời 
Em ơi, bao nhiêu điều chưa nói?! 
Nhớ từng hàng cây, nhớ từng con phố 
bước theo em bâng khuâng hỡi tình say. 

Nhớ về dòng sông, ấm lòng màu đông 
Nụ hôn ta chơi vơi theo con sóng.... 
Gửi tình vào mây, gửi tình vào gió 
Có xa nhau xin đừng là tàn tro 
Muốn là dòng sông, lững lờ mùa đông 
Ôm em trong giấc mơ tình khúc vàng...

Thứ Hai, 24 tháng 9, 2012

Miền Trung Yêu Dấu

http://mp3.zing.vn/bai-hat/Mien-Trung-Yeu-Dau-Dan-Truong/IWZ9BIEI.html

Lâu lắm chưa về, thăm lại miền trung miền yêu dấu xưa, tìm lại nụ hôn năm nào đánh mất trong một chiều mưa, không biết bây chừ ai có còn nhớ đến tên nhau nhớ câu thề xưa hẹn hò trong mưa, ai đã quên rồi câu chuyện thần tiên ngày thơ rất xa, bỏ lại hàng dương xanh xao rủ bóng bên bờ phù sa, mây thắp mưa về dâng nỗi sầu, nơi chốn xa xôi cuối trời chân trời đó dấu yêu thuở nào, nhớ ai...ai đứng bên cầu, những khi tan trường bóng ngả hoang hôn ngâng ngơ chờ nhau, nhớ ai.. .hoa phượng rơi đầy lối xưa bây giờ chỉ riêng mình anh phượng ơi có hay, tiếng ve xao xuyến đêm hè lấn trong sương mờ trăng về nghiêng khắp nẻo đường quê, chốn xưa sương lạnh vai mềm, bởi em xa rồi chỉ riêng mình anh , lặng yên bóng đêm
hò...ơi...đêm nay gió về se lòng,có ai còn chúc duyên nồng cho nhau
hò...ơi....đêm nay anh về qua cầu bóng dương còn đó, nhưng người xưa ở đâu.

Thứ Sáu, 14 tháng 9, 2012

Những khái niệm cơ bản của lập trình hướng đối tượng – Phần 3

Những khái niệm cơ bản của lập trình hướng đối tượng – Phần 3

Về mục đích, Lớp và Cấu trúc đều có chung một mục đích ban đầu, đó là nhóm một tập hợp các dữ liệu lại với nhau để xử lí đồng bộ và thống nhất: Cấu trúc nhóm các dữ liệu hay phải đi kèm với nhau lại thành một nhóm cho dễ xử lí. Tương tự, Lớp là tập hợp một số thuộc tính chung của đối tượng để xử lí.
2/- So sánh lớp và cấu trúc Trong phần này, chúng ta sẽ tiến hành so sánh Class (Lớp) và Structure (Cấu trúc) trên nhiều khía cạnh khác nhau:
♦ Mức khái niệm
♦ Mục đích và chức năng
♦ Về ưu và nhược điểm
So sánh ở mức khái niệm
Ở mức khái niệm, Lớp và cấu trúc hoàn toàn khác nhau:
♦ Lớp là khái niệm chỉ có trong lập trình hướng đối tượng; nó được dùng để biểu diễn một tập các đối tượng tương tự nhau.
♦ Trong khi đó, Cấu trúc là khái niệm chỉ tồn tại trong lập trình cấu trúc, không phải là một khái niệm của lập trình hướng đối tượng. Vì trong lập trình hướng đối tượng, tất cả các thực thể đều được coi là một đối tượng, nghĩa là nó phải là một thể hiện cụ thể của một lớp nào đó. Do đó, trong lập trình hướng đối tượng, không có khái niệm Cấu trúc.
So sánh về mục đích và chức năng
Về mục đích, Lớp và Cấu trúc đều có chung một mục đích ban đầu, đó là nhóm một tập hợp các dữ liệu lại với nhau để xử lí đồng bộ và thống nhất: Cấu trúc nhóm các dữ liệu hay phải đi kèm với nhau lại thành một nhóm cho dễ xử lí. Tương tự, Lớp là tập hợp một số thuộc tính chung của đối tượng để xử lí.
Tuy nhiên, Lớp và Cấu trúc cũng có một số khác biệt trên khía cạnh này:
♦ Lớp ngoài mục đích nhóm các thuộc tính dữ liệu của đối tượng, còn nhóm các hoạt động của đối tượng thành các phương thức của Lớp.
♦ Trong khi đó, mặc dù cũng có thể cung cấp các hàm trong Cấu trúc, nhưng mục đích chính của Cấu trúc chỉ là nhóm dữ liệu thành cấu trúc cho dễ xử lí.
So sánh về ưu nhược điểm
Vì có cùng mục đích là nhóm các dữ liệu lại với nhau để xử lí, cho nên Lớp cà Cấu trúc có cùng ưu điểm là làm chương trình gọn gàng, xử lí đồng bộ và thống nhất.
Tuy nhiên, Lớp còn có một số ưu điểm mà Cấu trúc không có:
♦ Lớp có khả năng bảo vệ dữ liệu tránh bị truy nhập tự do từ bên ngoài. Các chương trình bên ngoài chỉ có thể truy nhập vào dữ liệu của đối tượng thông qua các phương thức do Lớp cung cấp, không thể tự do truy nhập. Trong khi đó, Cấu trúc mặc dầu đã nhóm dữ liệu với nhau nhưng không có khả năng bảo vệ dữ liệu: Các chương trình bên ngoài vẫn có thể truy nhập tự do vào các thành phần của Cấu trúc.
♦ Lớp có khả năng đóng gói để hạn chế tối đa thay đổi khi phải sửa lại mã chương trình. Khi có sự thay đổi, chỉ cần thay đổi mã của một phương thức, các chương trình bên ngoài sử dụng phương thức đó đều không phải thay đổi. Trong khi đó, nếu thay đổi một thành phần của Cấu trúc, ta phải thay đổi mã của tất cả các chương trình sử dụng thành phần đó của Cấu trúc.
♦ Lớp có thể được kế thừa bởi một Lớp khác, điều này làm tăng khả năng sử dụng lại mã nguồn của chương trình. Trong khi đó, Cấu trúc hoàn toàn không có cơ chế kế thừa, cho nên nhiều khi phải viết lại những đoạn mã giống nhau nhiều lần. Điều này vừa tốn công sức, vừa không an toàn khi có sự thay đổi một trong những đoạn mã giống nhau đó.
3/- Thành phần Private và Public của lớp Để bảo vệ dữ liệu tránh bị truy nhập tự do từ bên ngoài, lập trình hướng đối tượng sử dụng các từ khoá quy định phạm vi truy nhập các thuộc tính và phương thức của lớp. Một cách tổng quát, lập trình hướng đối tượng chia ra hai mức truy nhập các thành phần lớp:
Private: Truy nhập trong nội bộ lớp.
Protected: Thành phần được bảo vệ, được hạn chế truy nhập như thành phần private (sẽ được trình bày sau).
Public: Truy nhập tự do từ bên ngoài.
Thành phần private
Thành phần private là khu vực dành riêng cho lớp, không chia sẻ với bất kì lớp khác từ bên ngoài. Thành phần private chỉ cho phép truy nhập trong phạm vi nội bộ lớp: Từ phương thức vào các thuộc tính hoặc giữa các phương thức của lớp với nhau. Các thành phần private không thể truy nhập từ bên ngoài lớp, cũng như từ đối tượng khác.
Trong một lớp, thông thường các thành phần sau sẽ được đặt vào khu vực private của lớp:
♦ Tất cả các thuộc tính dữ liệu của lớp. Các thuộc tính dữ liệu của lớp được đặt vào vùng private nhằm bảo vệ chúng, tránh sự truy nhập tự do từ bên ngoài.
♦ Các phương thức trung gian, được sử dụng như các bước tính toán đệm cho các phương thức khác. Các phương thức trung gian được đặt vào vùng private để thực hiện việc đóng gói trong lập trình hướng đối tượng: Các đối tượng, chương trình bên ngoài không cần, và không thể biết cách tính toán cụ thể bên trong của lớp.
Thành phần public
Thành phần public là khu vực mà Lớp có thể chia sẻ với tất cả các chương trình và đối tượng bên ngoài. Thành phần public có thể được truy nhập từ bên trong lẫn bên ngoài lớp:
Bên trong lớp: từ phương thức lớp vào các thuộc tính dữ liệu của lớp, hoặc giữa các phương thức của lớp với nhau.
Bên ngoài lớp: Từ chương trình bên ngoài hoặc các đối tượng khác vào các phương thức của lớp.
Trong một lớp, thông thường các thành phần sau sẽ được đặt vào vùng chia sẻ public của lớp:
♦ Các phương thức để nhập/xem (set/get) các thuộc tính dữ liệu của lớp. Các phương thức này sẽ cho phép các đối tượng bên ngoài truy nhập vào các thuộc tính dữ liệu của lớp một cách gián tiếp.
♦ Các phương thức cung cấp chức năng hoạt động, cách cư xử của đối tượng đối với môi trường bên ngoài. Các phương thức này thể hiện chức năng của các đối tượng lớp.
4/- Một số ngôn ngữ lập trình hướng đối tượng Nội dung phần này sẽ trình bày một số ngôn ngữ lập trình hướng đối tượng thông dụng hiện nay:
♦ Ngôn ngữ lập trình C++
♦ Ngôn ngữ lập trình ASP.NET và C#.NET
♦ Ngôn ngữ lập trình Java
4.1/- C++
C++, ra đời vào giữa những năm 1980, là một ngôn ngữ lập trình hướng đối tượng được mở rộng từ ngôn ngữ lập trình cấu trúc C. Cho nên, C++ là ngôn ngữ lập trình nửa hướng đối tượng, nửa hướng cấu trúc.
Những đặc trưng hướng đối tượng của C++
♦ Cho phép định nghĩa lớp đối tượng.
♦ Cho phép đóng gói dữ liệu vào các lớp đối tượng. Cho phép định nghĩa phạm vi truy nhập dữ liệu của lớp bằng các từ khoá phạm vi.
♦ Cho phép kế thừa lớp với các kiểu kế thừa khác nhau tuỳ vào từ khoá dẫn xuất.
♦ Cho phép lớp kế thừa sử dụng các phương thức của lớp bị kế thừa (trong phạm vi quy định).
♦ Cho phép định nghĩa chồng phương thức trong lớp kế thừa.
Những vi phạm hướng đối tượng của C++
Những vi phạm này là do kết quả kế thừa từ ngôn ngữ C, một ngôn ngữ lập trình thuần cấu trúc.
♦ Cho phép định nghĩa và sử dụng các biến dữ liệu tự do.
♦ Cho phép định nghĩa và sử dụng các hàm tự do.
♦ Ngay cả khi dữ liệu được đóng gói vào lớp, dữ liệu vẫn có thể truy nhập trực tiếp như dữ liệu tự do bởi các hàm bạn, lớp bạn (friend) trong C++.
4.2/- ASP.NET và C++.NET
Các ngôn ngữ lập trình .NET (còn được gọi là .NET Frameworks) của MicroSoft ra đời vào cuối những năm 1990 để cạnh tranh với ngôn ngữ lập trình Java. .NET là một ngôn ngữ hoàn toàn hướng đối tượng, hơn nữa, nó còn cung cấp một giao diện lập trình đồ hoạ thân thiện và đẹp mắt với truyền thống lập trình kéo thả của MicroSoft.
Một số đặc điểm của ngôn ngữ .NET:
♦ Là một ngôn ngữ hoàn toàn hướng đối tượng: Tất cả các thành phần, các thực thể trong chương trình đều được mô hình dưới dạng một lớp nhất định. Không có dữ liệu tự do và hàm tự do trong chương trình.
♦ Cung cấp giao diện lập trình đồ hoạ: lập trình viên chỉ cần kéo và thả các đối tượng đồ hoạ cho ứng dụng của mình.
♦ Cho phép lập trình viên tự tạo ra các thư viện UserControl của mình. Đây là một thư viện bao gồm các thành phần được người dùng tự thiết kế giao diện, viết mã nguồn, đóng gói và có thể sử dụng lại trong nhiều ứng dụng khác nhau, tuỳ theo chức năng của các thành phần.
4.3/- Java
Java là một ngôn ngữ lập trình được Sun Microsystems giới thiệu vào tháng 6 năm 1995. Java được xây dựng trên nền tảng của C và C++: Java sử dụng cú pháp của C và đặc trưng hướng đối tượng của C++.
Một số đặc điểm của Java:
♦ Java là một ngôn ngữ lập trình hoàn toàn hướng đối tượng: Tất cả các thực thể đều được coi là một đối tượng, là một thể hiện cụ thể của một lớp xác định. Không có dữ liệu tự do và hàm tự do trong Java, tất cả đều được đóng gói vào các lớp xác định.
♦ Java là ngôn ngữ vừa biên dịch vừa thông dịch. Đầu tiên mã nguồn được biên dịch thành dạng bytecode; sau đó được thực thi trên từng loại máy nhờ trình thông dịch. Điều này tạo ra khả năng hoạt động độc lập với nền tảng phần cứng của các ứng dụng Java.
♦ Java cho phép người dùng tự tạo các đối tượng thư viện JavaBeans của mình (tương tự như các thành phần UserControl của .NET). Các đối tượng Bean sẽ được sử dụng lại như các thành phần có sẵn trong các ứng dụng khác. Điều này mở ra khả năng to lớn để tiết kiệm công sức viết mã nguồn và khả năng xây dựng các kỹ thuật cho một nền công nghiệp lắp ráp phần mềm.
Ngôn ngữ lập trình hướng đối tượng Java sẽ được trình bày chi tiết trong toàn bộ phần 2 của giáo trình này.
Hết 
nguồn :http://www.thuvien-it.net

Những khái niệm cơ bản của lập trình hướng đối tượng – Phần 2

Những khái niệm cơ bản của lập trình hướng đối tượng – Phần 2

Trừu tượng hoá đối tượng theo dữ liệu chính là quá trình mô hình hoá các thuộc tính của lớp dựa trên các thuộc tính của các đối tượng tương ứng. Quá trình này được tiến hành như sau:
1.4/- Trừu tượng hóa đối tượng theo dữ liệu
♦ Tập hợp tất cả các thuộc tính có thể có của các đối tượng.
♦ Nhóm các đối tượng có các thuộc tính tương tự nhau, loại bỏ bớt các thuộc tính cá biệt, tạo thành một nhóm chung.
♦ Mỗi nhóm đối tượng đề xuất một lớp tương ứng.
♦ Các thuộc tính chung của nhóm đối tượng sẽ cấu thành các thuộc tính tương ứng của lớp được đề xuất.
Ví dụ, trong bài toán quản lí cửa hàng bán ô tô. Mỗi ô tô có mặt trong của hàng là một đối tượng. Mặc dù mỗi chiếc xe có một số đặc điểm khác nhau về nhãn hiệu, giá xe, màu sắc… nhưng có chung các thuộc tính của một chiếc xe ô tô là:
♦ Các xe đều có nhãn hiệu.
♦ Các xe đều có màu sắc.
♦ Các xe đều có giá bán.
♦ Các xe đều có công suất động cơ.
Ngoài ra, một số ít xe có thể có thêm các thuộc tính:
♦ Có xe có thể có dàn nghe nhạc.
♦ Có xe có thể có màn hình xem ti vi.
♦ Có xe có lắp kính chống nắng, chống đạn…
Tuy nhiên, đây là các thuộc tính cá biệt của một số đối tượng xe, nên không được đề xuất thành thuộc tính của lớp ô tô. Do đó, ta mô hình lớp ô tô với các thuộc tính chung nhất của các ô tô.

Ưu điểm của việc trừu tượng hóa
Những ưu điểm của việc trừu tượng hóa là:
♦ Tập trung vào vấn đề cần quan tâm.
♦ Xác định những đặc tính thiết yếu và những hành động cần thiết.
♦ Giảm thiểu những chi tiết không cần thiết.
Việc trừu tượng hóa dữ liệu là cần thiết, bởi vì không thể mô tả tất cả các hành động và các thuộc tính của một thực thể. Vấn đề mấu chốt là tập trung đến những hành vi cốt yếu và áp dụng chúng trong ứng dụng.
1.5/- Khái niệm kế thừa
Xét trường hợp bài toán quản lí nhân sự và sinh viên của một trường đại học. Khi đó, ta có hai lớp đối tượng chính là lớp Nhân viên và lớp Sinh viên:

Ta nhận thấy rằng hai lớp này có một số thuộc tính và phương thức chung: tên, ngày sinh, giới tính. Tuy nhiên, không thể loại bỏ các thuộc tính cá biệt để gộp chúng thành một lớp duy nhất, vì các thuộc tính lương nhân viên và lớp của sinh viên là cần thiết cho việc quản lí. Vấn đề nảy sinh như sau:
♦ Ta phải viết mã trùng nhau đến hai lần cho các phương thức: nhập/xem tên, nhập/xem ngày sinh, nhập/xem giới tính. Rõ rang điều này rất tốn công sức.
♦ Nếu khi có sự thay đổi về kiểu dữ liệu, chẳng hạn kiểu ngày sinh được quản lí trong hệ thống, ta phải sửa lại chương trình hai lần.
Để tránh rắc rối do các vấn đề nảy sinh như vậy, lập trình hướng đối tượng sử dụng kỹ thuật kế thừa nhằm nhóm các phần giống nhau của các lớp thành một lớp mới, sau đó cho các lớp ban đầu kế thừa lại lớp được tạo ra. Như vậy, mỗi lớp thừa kế (lớp dẫn xuất, lớp con) đều có các thuộc tính và phương thức của lớp bị thừa kế (lớp cơ sở, lớp cha).
Quay lại với bài toán quản lí trường đại học, các thuộc tính và phương thức chung giứa lớp Nhân viên và lớp Sinh viên là:
♦ Tên,
♦ Ngày sinh,
♦ Giới tính,
♦ Nhập/xem tên,
♦ Nhập/xem ngày sinh
♦ Nhập/xem giới tính.
Ta tách phần chung này thành một lớp ở mức trừu tượng cao hơn, lớp Người. Lớp Người sẽ làm lớp cha của lớp Nhân viên và lớp Sinh viên. Khi đó, các lớp trở thành:

Như vậy, sự kế thừa trong lập trình hướng đối tượng:
♦ Cho phép lớp dẫn xuất có thể sử dụng các thuộc tính và phương thức của lớp cơ sở tương tự như sử dụng các thuộc tính và phương thức của mình.
♦Cho phép việc chỉ cần cài đặt phương thức ở một lớp cơ sở, mà có thể sử dụng được ở tất cả các lớp dẫn xuất.
♦ Cho phép tránh sự cài đặt trùng lặp mã nguồn của chương trình.
♦ Cho phép chỉ phải thay đổi một lần khi cần phải thay đổi dữ liệu của các lớp.
1.5/- Khái niệnm đóg gói
Xét ví dụ bài toán quản lí nhân viên văn phòng với lớp Nhân viên như sau:

Khi đó, cách tính lương cho nhân viên là khác nhau đối với mỗi người:
= * *
Trong đó, tỉ lệ phần trăm là khác nhau cho mỗi phòng ban, ví dụ:
♦ Phòng kế hoạch là 105%
♦ Phòng hành chính là 100%
♦ Phòng nhân sự là 110%
Khi đó, tuỳ vào thuộc tính phòng ban khác nhau mà ta phải dùng công thức tỉ lệ khác nhau để tính lương cho mỗi nhân viên.
Tuy nhiên, cách tính cụ thể này là công việc bên trong của phương thức tính tiền lương của lớp Nhân viên. Với mỗi ứng dụng, khi tạo một đối tượng cụ thể của lớp nhân viên, ta chỉ cần truyền các tham số thuộc tính cho đối tượng, sau đó gọi phương thức tính tiền lương cho đối tượng nhân viên đó, ta sẽ biết được tiền lương của nhân viên. Cách gọi phương thức tính tiền lương là hoàn toàn giống nhau cho tất cả các đối tượng nhân viên của văn phòng.
Sự giống nhau về cách sử dụng phương thức cho các đối tượng của cùng một lớp, mặc dù bên trong phương thức có các cách tính toán khác nhau với các đối tương khác nhau, được gọi là tính đóng gói dữ liệu của lập trình hướng đối tượng. Như vậy, tính đóng gói dữ liệu của lập trình hướng đối tượng:
♦ Cho phép che dấu sự cài đặt chi tiết bên trong của phương thức. Khi sử dụng chỉ cần gọi các phương thức theo một cách thống nhất, mặc dù các phương thức có thể được cài đặt khác nhau cho các trường hợp khác nhau.
♦ Cho phép che dấu dữ liệu bên trong của đối tượng. Khi sử dụng, ta không biết được thực sự bên trong đối tượng có những gì, ta chỉ thấy được những gì đối tượng cho phép truy nhập vào.
♦ Cho phép hạn chế tối đa việc sửa lại mã chương trình. Khi phải thay đổi công thức tính toán của một phương thức, ta chỉ cần thay đổi mã bên trong của phương thức, mà không phải thay đổi các chương trình gọi đến phương thức bị thay đổi.
1.7/- Khái niệm đa hình
Trở lại với ví dụ về quản lí trường đại học, với hai lớp Nhân viên và lớp Sinh viên, đều kế thừa từ lớp Người. Khi đó, ta thêm vào mỗi lớp một phương thức show():
♦ Phương thức show của lớp Người sẽ giới thiệu tên và tuổi của người đó.
♦ Phương thức show của lớp Nhân viên sẽ giới thiệu nhân viên đó có tiền lương là bao nhiêu.
♦ Phương thức show của lớp Sinh viên sẽ giới thiệu là sinh viên đó đang học ở lớp nào.

Khi đó, nếu trong hệ thống có các đối tượng cụ thể tương ứng với ba lớp, thì:
♦ Khi ta gọi hàm show từ đối tượng của lớp Người, sẽ nhận được tên và tuổi của người đó.
♦ Khi ta gọi phương thức show từ đối tượng của lớp Nhân viên, sẽ nhận được số tiền lương của nhân viên đó.
♦ Khi ta gọi phương thức show từ đối tượng của lớp Sinh viên, ta sẽ biết được lớp học của sinh viên đó.
Việc chỉ cần gọi cùng một phương thức, nhưng từ các đối tượng khác nhau, sẽ cho kế quả khác nhau được gọi là tính đa hình trong lập trình hướng đối tượng. Như vậy, tính đa hình trong lập trình hướng đối tượng:
♦ Cho phép các lớp được định nghĩa các phương thức trùng nhau: cùng tên, cùng số lượng và kiểu tham số, cùng kiểu trả về. Việc định nghĩa phương thức trùng nhau của các lớp kế thừa nhau còn được gọi là sự nạp chồng phương thức.
♦ Khi gọi các phương thức trùng tên, dựa vào đối tượng đang gọi mà chương trình sẽ thực hiện phương thức của lớp tương ứng, và do đó, sẽ cho các kết quả khác nhau.
Hết phần 2
Nguồn : 
 http://www.thuvien-it.net

Lập trình hướng đối tượng - Phần 1

Lập trình hướng đối tượng - Phần 1

Lớp kế thừa
Tư tưởng chính của lập trình hướng đối tượng là xây dựng một chương trình dựa trên sự phối hợp hoạt động của các đối tượng. Một đối tượng bao gồm hai thành phần chính là thông tin lưu trữ và các thao tác xử lý.
Trong thế giới thực, đối tượng là thực thể tồn tại như con người, xe, máy tính, … Trong ngôn ngữ lập trình, đối tượng có thể là màn hình, điều khiển, …
Lập trình hướng đối tượng là kỹ thuật lập trình nhằm vào sự tương tác giữa các đối tượng. Mỗi đối tượng có những thuộc tính (thông tin lưu trữ), những phương thức xác định các chức năng của đối tượng. Bên cạnh đó, đối tượng cũng có khả năng phát sinh các sự kiện khi thay đổi thông tin, thực hiện một chức năng hay khi đối tượng khác tác động vào. Tất cả những thuộc tính, phương thức và sự kiện tạo nên cấu trúc của đối tượng. Có 4 ý niệm trong lập trình hướng đối tượng :
- Abstraction : tính trừu tượng.
- Encapsulation : tính đóng gói.
- Inheritance : tính kế thừa.
- Polymorphism : tính đa hình.
Mỗi ý niệm đều có vai trò quan trọng trong lập trình hình đối tượng.

1/- Tính trừu tượng

Bạn thường lẫn lộn giữa lớp (Class) và đối tượng (Object). Cần phân biệt lớp là một ý niệm trừu tượng, còn đối tượng là một thể hiện cụ thể của lớp.
Ví dụ : bản thiết kế nhà là lớp, ngôi nhà được xây dựng dựa trên bản thiết kế là đối tượng.
Từ những đối tượng giống nhau, bạn có thể trừu tượng hóa thành một lớp.
Tính trừu tượng cho phép bạn loại bỏ tính chất phức tạp của đối tượng bằng cách chỉ đưa ra các thuộc tính và phương thức cần thiết của đối tượng trong lập trình.

2/- Tính đóng gói

Mỗi lớp được xây dựng để thực hiện một nhóm chức năng đặc trưng riêng của lớp, trong trường hợp một đối tượng thuộc lớp cần thực hiện một chức năng không nằm trong khả năng vì chức năng đó thuộc về một đối tượng thuộc lớp khác, thì nó sẽ yêu cầu đối tượng đó đảm nhận thực hiện công việc. Một điểm quan trọng trong cách gia tiếp giữa các đối tượng là một đối tượng sẽ không được truy xuất trực tiếp vào thành phần dữ liệu của đối tượng khác cũng như không đưa thành phần dữ liệu của mình cho đối tượng khác một cách trực tiếp. Tất cả mọi thao tác truy xuất vào thành phần dữ liệu từ đối tượng này qua đối tượng khác phải được thực hiện bởi các phương thức (method) của chính đối tượng chứa dữ liệu. Đây cũng chính là một tính chất quan trọng trong lập trình hướng đối tượng gọi là tính đóng gói (encapsulation<) dữ liệu.
Tính đóng gói cho phép dấu thông tin của đối tượng bằng cách kết hợp thông tin và các phương thức liên quan đến thông tin trong đối tượng.
Ví dụ :
Xe hơi có các chức năng (phương thức phô diễn bên ngoài) như Ngừng, Chạy tới, Chạy lùi. Đây là những gì cần thiết cho Tài xế tương tác với Xe hơi. Xe hơi có thể có một đối tượng Động cơ nhưng Tài xế không cần phải quan tâm. Tất cả những gì cần quan tâm là những chức năng để có thể vận hành xe. Do đó, khi thay một Động cơ khác, Tài xế vẫn sử dụng các chức năng cũ để vận hành Xe hơi bao lâu các chức năng (phương thức) đưa ra bên ngoài (Interface) không bị thay đổi.

3/- Tính kế thừa

Tính kế thừa là khả năng cho phép ta xây dựng một lớp mới dựa trên các định nghĩa của một lớp đã có. Lớp đã có gọi là lớp Cha, lớp mới phát sinh gọi là lớp Con và đương nhiên kế thừa tất cả các thành phần của lớp Cha, có thể mở rộng công năng các thành phần kế thừa cũng như bổ sung thêm các thành phần mới.
Bạn phân biệt hai loại quan hệ :
Là – một
Biểu thị tính kế thừa. Trong quan hệ "là – một", một đối tượng của lớp Con được xem như là một đối tượng của lớp Cha.

Lớp kế thừa
Ví dụ :
Từ lớp Xe bạn tạo nên lớp Xe hơi mở rộng, lớp này mặc nhiên kế thừa tất cả các thành phần của lớp xe. Bạn có thể nói một xe hơi là một chiếc xe.
Có – một
Quan hệ này mang ý nghĩa gồm có. Trong quan hệ "có – một", một đối tượng có thể có một hoặc nhiều thành phần tham chiếu đến các đối tượng khác.
Ví dụ :
Trong mô hình xe hơi, bạn muốn diễn tả ý tưởng chiếc xe "có – một" tay lái. Bạn không thể phát sinh lớp Xe hơi từ một Tay lái hay ngược lại (một Xe hơi là một Tay lái). Thay vì vậy, bạn phải có hai lớp độc lập làm việc với nhau trong đó, lớp phía ngoài (lớp Xe hơi) sẽ tạo và đưa ra công năng của lớp phía trong (lớp Tay lái).

4/- Tính đa hình

Tính đa hình là khả năng một ngôn ngữ xử lý các đối tượng hữu quan theo cùng một cách.
Tính đa hình thể hiện dưới nhiều hình thức :
Kết nối trễ - Late Binding
Là khả năng cho phép người lập trình gọi trước một phương thức của đối tượng, tuy chưa xác định đối tượng có phương thức muốn gọi hay không. Đến khi thực hiện, chương trình mới xác định được đối tượng và gọi phương thức tương ứng của đối tượng đó. Kết nối trễ giúp chương trình được uyển chuyển hơn, chỉ yêu cầu đối tượng cung cấp đúng phương thức cần thiết là đủ.
Ví dụ :
Bạn có lớp Xe với phương thức Chạy và các lớp Xe đạp, Xe hơi, Xe đẩy cùng phát sinh từ lớp Xe. Bạn chưa biết sẽ sử dụng xe gì đề di chuyển vù tùy thuộc tình hình có sẵn xe nào nên gọi trước phương thức Chạy. Khi chương trình thực thi, tùy theo đối tượng của lớp nào được đưa ra mà phương thức Chạy của đối tượng đó được gọi.
Nạp chồng – Overloading Đây là khả năng cho phép một lớp có nhiều thuộc tính, phương thức cùng tên nhưng với các tham số khác nhau về loại cũng như về số lượng. Khi được gọi, dựa vào tham số truyền vào, phương thức tương ứng sẽ được thực hiện.
Ghi chồng – Overriding
Hình thức này áp dụng cho lớp Con đối với lớp Cha. Lớp Con được phép có một phương thức cùng tên, cùng số tham số có kiểu dữ liệu như phương thức của lớp Cha hoặc những lớp trước đó nữa (lớp phát sinh ra lớp Cha …) với cài đặt khác đi. Lúc thực thi, nếu lớp Con không có phương thức riêng, phương thức của lớp Cha sẽ được gọi, ngược lại nếu có, phương thức của lớp Con được gọi.
Còn tiếp
nguồn : http://www.thuvien-it.net.

Thứ Bảy, 8 tháng 9, 2012

Thái Độ Tốt Là Chìa Khóa Thành Công Cho Những Tài Năng Trẻ

Thái Độ Tốt Là Chìa Khóa Thành Công Cho Những Tài Năng Trẻ
 
Tác giả: Michael Crom
Phó chủ tịch điều hành, Tổ chức Dale Carnegie ®
Hỏi: Tôi vừa mới nhận được công việc đầu tiên khoảng một tháng nay. Tôi muốn tạo ấn tượng tốt và kết hợp ăn ý với mọi người. Trong số các đồng nghiệp, tôi thấy có nhiều người lớn tuổi và giàu kinh nghiệm, vì vậy, tôi sợ họ nghĩ tôi chỉ là một đứa trẻ. Làm cách nào để tôi có thể chứng minh mình đủ kiến thức và có thể đảm nhận công việc một cách nghiêm túc? Xin chuyên viên cho tôi vài lời khuyên.
Đáp: Chúc mừng bạn đã có được một công việc mới. Tạo ấn tượng tốt với đồng nghiệp là một việc làm hết sức quan trọng nhằm tạo dựng tính trách nhiệm và vị thế của bạn trong công ty. Hãy nhớ rằng, để tạo dựng lòng tin luôn cần phải có thời gian.
Dưới đây là một vài lời khuyên để trở thành một chuyên viên trẻ tuổi, tài giỏi:
 Có thái độ tích cực:
Không phải ai cũng có thể nhận được các dự án có tính kích thích như họ mong đợi. Luôn giữ thái độ lạc quan và chứng tỏ bạn có khả năng đảm nhận nhiều dự án có tính thử thách và thú vị hơn.
 Ăn mặc phù hợp:
Nhớ rằng bạn không phải đang ở trường đại học hay một quán bar. Hãy luôn ăn mặc phù hợp với môi trường làm việc.
 Nếu bạn không biết điều gìđừng ngại hỏi:
Thà mất một ít thời gian để làm sáng tỏ việc gì còn hơn là mắc sai lầm và phải làm lại từ đầu.
 Nhận sai:
Che đậy cho những sai lầm không phải là một việc tốt. Hãy cho sếp của bạn biết, bởi vì đó có thể là một sai lầm tai hại.
 Lắng nghe:
Chú ý lắng nghe giúp bạn tiếp thu được những kinh nghiệm tốt nhất.
 Sự tự tin và năng lực đảm nhận dự án:
Nếu bạn không biết đáp án của một việc gì, hãy nói “Tôi không biết, nhưng tôi sẽ tìm ra lời giải“. Nhưng hãy chắc chắn bạn sẽ tìm ra hoặc luôn theo đuổi câu trả lời.

Năm Điều Về Quản Lý Thời Gian Hiệu quả

Năm Điều Về Quản Lý Thời Gian Hiệu quả
 
 
 
Hầu hết mọi người đều biết đôi điều về quản lý thời gian, những việc như sự khác biệt giữa quản lý cấp trung và quản lý cấp cao và sự khác biệt giữa có thời gian quản lý một dự án và mười dự án. Hầu hết chúng ta mỗi ngày đều lãng phí thời gian và không phát triển các kỹ năng quản lý hiệu quả để hoàn thành công việc theo đúng lịch hoặc hoàn thành trước lịch làm việc. Trong môi trường làm việc hiện nay, việc ai đó nói rằng họ không làm kịp công việc hay đến dự cuộc họp muộn là chuyện bình thường. Bên dưới là nằm điều về quản lý thời gian có thể giúp bạn theo kịp tiến độ.
1.      Một giờ lên kế hoạch sẽ giúp bạn tiết kiệm mười giờ làm việc:
Đừng nhào đầu vào các dự án lớn mà không đề ra các mục tiêu, cách thức đạt các mục tiêu đó và quan trọng nhất là định ra thời gian cần phải hoàn thành trước đó. Điều này sẽ giúp bạn tiết kiệm rất nhiều thời gian khi quyết định điểm nào sẽ làm dự án kéo dài lâu hơn.
2.      Hãy sử dụng danh sách những việc cần làm:
70% doanh nhân và người làm việc chuyên nghiệp đều sử dụng để theo đúng tiến độ. Nó giúp ích rất nhiều nếu bạn muốn biết cần phải làm gì tiếp theo khi đã hoàn thành xong một bước, đặc biệt nếu các bước đó không liên hệ với nhau hoặc chỉ là một phần của dự án. Hầu hết chúng ta đều làm nhiều việc cùng một lúc. Hãy có trách nhiệm với một việc, đó là danh sách công việc.
3.      Một dự án thường được phân bổ ra thành từng khoảng thời gian:
Nếu bạn chỉ đưa vào danh sách một việc duy nhất thì có thể cả ngày đó bạn chỉ làm được một việc. Nếu bạn bổ sung một việc khác vào danh sách trước ngày, bạn có thể hoàn cả hai việc. Nếu bạn đưa 6 hoặc 7 việc vào danh sách thì bạn vẫn có thể hoàn thành chúng trong ngày, đó là một sự cải thiện rất lớn đối với một việc mà trước đây bạn định hoàn tất.
4.      Hãy tham dự khóa học đọc nhanh:
Tốc độ đọc trung bình là 200 từ một phút. Hầu hết mọi người đều phải đọc ít 2 giờ mỗi ngày. Một khóa học luyện đọc nhanh có thể làm tăng gấp đôi tốc đọc của bạn. Điều giúp bạn có thêm thời gian đề làm những việc có năng suất khác.
5.      Dành ra một giờ để tự cải thiện bản thân:
Nếu bạn dành đủ 1 giờ trong ngày cho lĩnh vực mình muốn cải thiện, có nghĩa là mỗi tuần bạn sẽ mất 7 giờ (gần một ngày làm việc) và 365 giờ một năm (hơn 2 tuần liên tục không ngủ), thì bạn có thể trở nên thành thạo thậm chí là thông hiểu hết lĩnh vực mà bạn muốn cải thiện.
Cần nhớ rằng quản lý thời gian không chỉ đơn giản là làm mọi việc nhanh hơn mà còn là làm mọi việc đúng ngay từ đầu.


Hạnh phúc là hành trình chứ không phải điểm đến

Hạnh phúc là hành trình chứ không phải điểm đến

Chúng ta thường cho rằng cuộc sống sẽ tốt đẹp và có ý nghĩa hơn một khi chúng ta lập gia đình, sinh con… Sau đó chúng ta vỡ mộng vì con cái còn quá nhỏ, và tự nhủ rằng mọi việc sẽ tốt đẹp hơn một khi chúng lớn khôn. Và chúng ta lại thất vọng khi con cái của mình đến tuổi niên thiếu, vì chúng ta lại phải chăm sóc và lo lắng cho chúng. Chắc chắn chúng ta sẽ hạnh phúc hơn khi các con trưởng thành. Chúng ta lại tự nhủ cuộc sống rồi sẽ tốt đẹp một khi gia đình được ổn định, khi chúng ta tậu được một chiếc xe đẹp hơn, khi chúng ta đi nghỉ hè thoải mái, và cuối cùng là khi chúng ta được về hưu. Sự thật là không có một thời điểm nào tốt đẹp và hạnh phúc bằng hiện tại cả. Nếu không đúng, vậy thời điểm nào là hạnh phúc nhất? Cuộc sống của bạn luôn bị quay cuồng bởi các thách thức, các đòi hỏi vá các nhu cầu.
Tốt nhất bạn nên nhận ra rằng hiện tại là thời gian hạnh phúc nhất của mình, mặc dù cuộc sống đầy rẫy khó khăn và muộn phiền. Một thời gian rất dài, tôi cứ ngỡ rằng cuộc đời của mình sắp bắt đầu. Một cuộc đời, một cuộc sống thật sự. Nhưng lúc nào cũng có nhiều việc xảy đến, một thử thách phải vượt qua, vài công việc phải hòan tất, vài việc khác cần phải để tâm, còn vài hóa đơn phải thanh toán. Sau đó thì cuộc sống sẽ bắt đầu…
Cuối cùng tôi mới khám phá ra, chính những sự việc ấy là một phần đời sống của mình.
Từ cái nhìn này, tôi nghiệm được rằng không có con đường nào đi đến hạnh phúc cả.
Hạnh phúc chính là con đường chúng ta đang đi.
Do đó hãy quý và hưởng mọi phút giây.
Không nên chờ đợi nữa. Không chờ đợi ngày tốt nghiệp ra trường, chờ đợi ngày trở lại trường, chờ đợi xuống bớt vài ký, lên thêm vài ký, chờ đợi việc làm mới, chờ đợi ngày kết hôn, mong đợi đến tối thứ Sáu, sáng Chủ nhật, một chiếc xe mới, đợi trả nợ xong, trông chờ Xuân đến, Hạ về, đợi đến đầu tháng, cuối tháng, đợi nghe bản nhạc hay trong radio, chờ ngày từ giã cõi đời, ngày tái sinh… trước khi quyết định sống thật hạnh phúc.
Hạnh phúc là hành trình chứ không phải điểm đến.
Không có một giờ phút nào quý cho bằng hiện tại.
Hãy sống và tận hưởng từng giây phút.
Chúng ta hãy suy nghĩ và cố gắng trả lời các câu hỏi sau đây:
Bạn hãy nêu tên của 5 người giàu nhất thế giới.
Tên của 5 hoa hậu thế giới.
Tên của 10 người lãnh giải Nobel gần đây nhất.
Tên của 10 người lãnh giải Oscar gần đây nhất.
Bạn không trả lời được?
Không sao cả, ít ai có thể nhớ những điều này.
Bởi, các tràng pháo tay rồi cũng chấm dứt.
Các giải thưởng cũng sẽ đóng bụi.
Các quán quân hoặc người thắng cuộc rồi cũng sẽ bị quên lãng.
Chúng ta lại thử trả lời các câu sau đây:
Bạn hãy nêu tên 3 vị thầy cô đáng kính trong cuộc đời mình.
Tên 3 người quen đã từng giúp bạn trong những giây phút khó khăn nhất.
Hãy nghĩ đến vài người đã từng cho bạn những cảm giác đặc biệt.
Và 5 người mà bạn lúc nào cũng muốn gần gũi.
Các câu này có vẻ dễ trả lời hơn, phải không bạn?
Những người có ý nghĩa đặc biệt trong cuộc sống của bạn, không phải là những người giỏi nhất, cũng không là những người giàu nhất, và họ cũng không đạt được một giải thưởng quốc tế nào.
Họ chỉ là những người nghĩ đến bạn, lo lắng cho bạn và luôn ở bên cạnh bạn khi bạn cần đến.
Hãy suy nghĩ về đều này.
Cuộc sống rất là ngắn ngủi.
Và bạn đứng trong danh sách nào của tôi? Bạn có biết không?
Hãy cho tôi nắm lấy tay bạn.
Bạn là một trong những người “nổi tiếng” nhất trong danh sách của tôi, mà tôi đã không quên để gửi đến bạn thông điệp này.
Cách đây rất lâu, ở một cuộc thi Thế vận hội dành cho những người tàn tật ở Seattle, có 9 vận động viên tham gia cuộc thi chạy 100 mét, và tất cả đều muốn thắng cuộc đua.
tiếng súng nổ báo hiệu cuộc thi bắt đầu. Tất cả mọi người bắt đầu chạy, nhưng có một thanh niên bị trượt chân ngã quỵ xuống, và cậu ta bật khóc.
Tám người kia nghe tiếng khóc, họ chạy chậm đi và quay đầu nhìn.
Cuối cùng họ ngừng chạy và quay trở lại cả 08 người.
Một cô gái ngồi xuống ân cần hỏi chàng thanh niên bị trượt té: “Đã thấy đỡ chưa?”.
Sau đó cả 09 người sánh vai cùng nhau bước đến lằn mức trắng.
Tất cả khán giả đều đứng lên đồng loạt vỗ tay. Và trang vỗ tay đã kéo dài rất lâu.
Tất cả mọi người chứng kiến sự việc hôm đó, thường kể lại chuyện này cho người khác nghe. Tại sao vậy?
Vì tận cùng trong thâm tâm của chúng ta đều hiểu rằng, điều quan trọng nhất trong cuộc sống không phải là thắng cuộc.
Điều quan trọng nhất trong cuộc sống là giúp người khác thắng. mặc dù việc này có thể làm chậm công việc của chúng ta hoặc thay đổi kết quả cuộc thi đua.
Nếu bạn phổ biến thông điệp này, có thể chúng ta sẽ thành công trong việc thay đổi trái tim của chúng ta, và luôn cả trái tim của người khác nữa.
“ Một ngọn nến sẽ không bị mất giá trị khi nó được dùng để mang ánh sáng đến cho người khác”.
Thế nào, bạn đã quyết định chưa? Vứt bỏ nó đi, hay tiếp tục gửi thông điệp này đến cho người khác?
[Sưu tầm]