PDA

View Full Version : Tutorial Vb.NET How to programme



vanlang
04-07-2003, 09:40
Visual Basic .NET How to programme
Chapter 1 : Giới thiệu ngôn ngữ lập trình Visual Basic .NET

Sau khi đọc xong phần này bạn có thể:
• Viết một chương trình VB đơn giản
• Có thể sử dụng các câu lệnh xuất nhập
• Trở nên quen thuộc với các kiểu dữ liệu
• Hiểu các khái niệm bộ nhớ đơn giản (basic memory concepts)
• Có thể sử dụng các toán tử số học (arithimetic operators)
• Có thể tự viết các câu lệnh (decison-making statements)
• Có thể sử dụng các đẳng thức và các toán tử quan hệ (equality and relational operators)
• Có thể sử dụng các hộp thoại để hiện thị các thông báo (dialogs to display messages)

1.Introdution

Trong chương này chúng ta sẽ giới thiệu và làm các ví dụ để xem các tính năng (features) của ngôn ngữ VB. Để các bạn dễ hiểu, các ví dụ ở chương này và các chương khác sẽ được giải thích chung trong cùng một thời điểm của mã (analyzed one line at a time) . Trong chương này chúng ta sẽ giới thiệu ứng dụng console - kiểu ứng dụng Text không có giao diện đồ họa. VB có nhiều kiểu ứng dụng và console là một trong những kiểu đơn giản nhất. Dữ liệu trong ứng dụng console sẽ được hiện trong cửa sỗ command của window (là cửa sổ command prompt trong winNT/2000/xp/.NET ... trong win95/98 là MS-DOS prompt). Với một ngôn ngữ tinh vi (sophisticated) như VB thì lập trình viên có thể tạo nhiều ứng dụng xuất nhập theo nhiều cách mà chúng ta sẽ đề cập ở phần sau. Ở chương 2 chúng ta sẽ tạo một giao diện đồ họa đơn giản cho ứng dụng windows (Graphical user interface - GUI). Các ứng dụng windows sẽ được đề cập chi tiết hơn ở chương 4,5 lần lượt với các phần 1 & 2 của Control Structures (Điểu khiển cấu trúc).

Mẹo nhỏ : trong bộ Visual Studio có phần Command riêng để cho bạn biên dịch các ứng dụng console. Nhưng điều ấy sẽ bất tiện vì bạn sẽ phải vào đúng thư mục ấy mới biên dịch được, các bạn hãy làm theo các bước sau để có thể biên dịch chương trình ở bất kỳ thư mục nào trong win
Các bạn vào System Properties (Nhấn chuột phải vào MyComputer chọn properties), chọn tab Advance, chọn tiếp Environment Variables, rồi trong mục System Avaible chọn Path, Click chuột vào Edit, di chuyển con trỏ tới cuối dòng đánh dấu ; rùi gõ vào đường dẫn sau : C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 (cái này dành cho version 1.1 với version 1.0 bạn đổi lại thành v1.0.3705, và với win2000 thì đổi lại tên thư mục win là WinNT). Sau đó thử vào bất kỳ một thư mục nào đấy (bằng command prompt nhé) gõ vbc rùi Enter .. nếu thấy nó chạy một loạt chữ là bạn thành công rùi đó.

2.Simple Program : Printing a Line of Text

Trong Vb.NET có vài ký hiệu mà các bạn mới chưa quen thuộc, để giải thích các ký hiệu này chúng ta hãy bắt đầu bằng một ví dụ đơn giản : xuất một dòng chữ tại cửa sổ command. Để thuận tiện cho các bạn tất cả các dòng đều sẽ được đánh số thứ tự (khi viết mã các bạn không được viết số thứ tự dòng như thế , nó không có trong VB)

1 ' Fig. 3.1: Welcome1.vb
2 ' Simple Visual Basic program.
3
4 Module modFirstWelcome
5
6 Sub Main()
7 Console.WriteLine("Welcome to Visual Basic!")
8 End Sub ' Main
9
10 End Module ' modFirstWelcome

Và chương trình sẽ xuất ra dòng :
Welcome to Visual Basic!

Dòng 1 bắt đầu với dấu ' (single quote charater) nên các phần theo sau sẽ là phần chú thích, các lập trình viên thường cho các dòng chú thích vào mã để chương trình dễ đọc dễ hiểu hơn. Và trình biên dịch sẽ tự động bỏ qua khi gặp các dòng chú thích này.Chú thích ở dòng một là tên của chương trình, dòng 2 là việc giới thiệu ngắn về chương trình. Trong trường hợp này thì tên file là welcome1.vb và .vb là phần đuôi mở rộng (file extension) của các file vb. Dòng 4 định nghĩa Module đầu tiên của chương trình, trong các ứng dụng console thường có nhiều Module tuân theo logical groupings of procedures để chương trình dễ nhận biết.Chúng ta sẽ đề cập đến Procedure ở trong chương 6.

Từ Module là một ví dụ về từ khóa (key work or reserved work)-Danh sách hoàn chỉnh về từ khóa sẽ được liệt kê ở chương sau.Tên của Module (ví dụ modFirstWelcome) được gọi là Identifiers là tập hợp các ký tự,ký số, dấu gạch dưới, và nó không thể bắt đầu bằng ký số cũng như không thể chứa khoảng trắng.
Vd đúng : value1,xy_now,_total
Vd sai : 1no, input no..

Trong VB từ khóa không đòi hỏi quá chặt chẽ, chữ hoa chữ thường được xem giống như nhau.Và trong bộ Visual .NET thì các từ khóa sẽ được tự động chuyển như sau vd : gõ module gõ entre thì nó sẽ chuyển thành Module.

Dòng 3,5 trống , và các dòng trống như thế với các khoảng trắng, tab được gọi là các whitespace mà chúng ta sẽ đề cập đến ở phần sau.Dòng 6 là phần thân của chương trình, mọi chương trình đều bắt đầu bằng Main, đó là lối đi vào của chương trình (entry point of the program). Dấu () đằng sau Main cho biết Main là một Procedure.Từ khóa Sub là bắt đầu chương trình và từ khóa End Sub là kết thúc chương trình.Dòng 7 mới chính là phần việc thật sự của chương trình,nó sẽ in ra dòng chữ Welcome to Visual Basic !, đây là một strings hay có thể gọi là character strings hoặc strings literals.

(còn tiếp)
phù mệt quá .. gần chết ... còn nhiều nữa ... các bạn đọc xong hco ý kiến nhé để tui còn hứng mà .. làm tiếp .. các bạn có ý kiến đề nghị thì post vào topic riêng nhé .. để tui viết tiếp cho được liên tục
...đề nghị stick bài này lên chứ để nó rớt hoài sao trùi .. công tình tui thức cả đêm đó

KEM_WALL
04-07-2003, 20:29
walls kô nhớ rõ lắm, nhưng walls thấy chương trình ví dụ của bạn thì hình như thiếu câu import System thì phải, nếu kô thì sao lại xài class comsole thẳng như thế

vanlang
05-07-2003, 09:59
Chapter 1 : Continue ...

Toàn bộ dòng 7 bao gồm console.writeLine và dòng chữ (string) bên trong dấu ngoặc đơn được gọi là một câu lệnh (statement). Khi câu lệnh được thực thi (executes) nó sẽ hiện lên dòng chữ Welcome to Visual Basic ! trong cửa sổ command.
Chú ý rằng console.writeLine chứa hai từ khác biệt được ngăn cách bởi dấu chấm "." (dot operator). Từ bên phải dấu chấm được coi là tên của phương thức (method), từ còn lại là tên của một lớp (class). Trong một lớp thì chứa nhiều phương thức và các dữ liệu (data), các phương thức sẽ được thi hành và trả về các trị hay các thông tin (information) . Ví dụ lớp console chứa nhiều phương thức như writeline,write ... dùng để giao tiếp với người sử dụng thông qua cửa sổ command. Chúng ta sẽ đề cập chi tiết về lớp và phương thức ở chương 8 : Object-base programming. Và ở chương 6 chúng ta sẽ giới thiệu sơ qua về phương thức.
Còn bây giờ thì hãy bắt đầu với ứng dụng đầu tiên, chúng ta sẽ làm và giải thích từng bước về cách tạo một ứng dụng trên môi trường của Visual Studio .NET (IDE - Integrated Development Environment)

Tạo ứng dụng console :
Trong môi trường VS.NET chọn File>New>Project để hiện thị hộp thoại New project. Ở cửa sổ bên trái chọn Visual Basic Project, sau đó chọn console application ở bên cửa sổ bên phải. Trong hộp thoại Name bạn đánh vào tên của chương trình , vd : Welcome1. Mặc định chương trình của bạn sẽ được tạo ra trong MyDocument/Visual Studio project.(bạn có thể thay đổi thư mục bằng cách nhấn vào Browser rồi chọn thư mục... hoặc các bạn có thể thay đổi mặc định như sau : tools/options/environment/project and solution / rồi gõ vào thư mục mà bạn muốn trong mục visual studio project locations:)
Nhấn Ok để tạo mới ứng dụng, sau đó bạn sẽ thấy trong cửa sổ soạn thảo 4 dòng mã sau :
Module Module1

Sub Main()

End Sub

End Module
Và các bạn sẽ thấy các từ khóa có màu xanh dương (blue) là các từ cú pháp (syntax-color highlighting), nó sẽ giúp lập trình viên dễ dàng phân biệt được với các thành phần chữ khác trong chương trình(thường có màu đen) và các chú thích (comment-thường có màu xanh lá(green)).

Đổi tên chương trình:
Mở cửa sổ Solution Explorer ở bên phải của trình soạn thảo,nhấn vào Module1.vb và đổi thành Welcome1.vb.

Đổi tên cho Module:
Chú ý rằng khi ta đổi tên cho File thì chương trình sẽ không tự động đổi tên cho Module, bạn phải vào trình soạn thảo để đổi tên cho Module. Hãy đổi Module1 thành modFirstWelcome.

Viết mã cho chương trình:
Bạn gõ vào của sổ soạn thảo đoạn mã sau:
Sub Main()

console.writeline("Welcome to Visual Basic !")

End Sub
Với tính năng mới trong VS.NET, mà tôi tạm dịch là tính cảm ứng thông minh (intellisense) thì sau khi bạn gõ dấu chấm sau console thì VS tự liệt kê lên một bảng các danh sách phương thức trong lớp console, và bạn chỉ cần chọn lấy cái mình cần rồi click hai lần là xong.

Chạy chương trình:
Bây giờ chúng ta đã sẵn sàng để dịch và chạy chương trình (compile and execute). Để dịch chương trình các bạn chọn Build > Built Solution, và một file Welcome1.exe sẽ được tạo ra.Để chạy ứng dụng thì các bạn chọn Debug > Start (hay đơn giản nhấn F5), sau khi chương trình chạy hàn Main sẽ được gọi (invoked) và in ra dòng chữ Welcome to Visual Basic !
Chú ý rằng khi các bạn gõ sai cú pháp trình soạn thảo sẽ tự động đánh dấu xanh dưới dòng đó.Để kick hoạt tính năng này các bạn chọn View > orther windows > task list (hoặc nhấn Ctrl+Alt+K).
Và sau đây là ví dụ để in ra dòng chữ trên nhưng sử dụng phương pháp kết hợp nhiều phương thức(using muliple method calls). Trong vd này chúng ta chỉ sử dụng hai phương thức:


1 ' Fig. 3.9: Welcome2.vb
2 ' Writing line of text with multiple statements.
3
4 Module modSecondWelcome
5
6 Sub Main()
7 Console.Write("Welcome to ")
8 Console.WriteLine("Visual Basic!")
9 End Sub ' Main
10
11 End Module ' modSecondWelcome

3. Another simple program : Adding Integer

Trong ví dụ này chúng ta sẽ nhập vào hai số và tính tổng của chúng. Mỗi lần nhập vào một số các bạn phải nhấn Enter để chương trình nhận và nhập dữ liệu vào bộ nhớ.

1 ' Fig. 3.10: Addition.vb
2 ' Addition program.
3
4 Module modAddition
5
6 Sub Main()
7
8 ' variables for storing user input
9 Dim firstNumber, secondNumber As String
10
11 ' variables used in addition calculation
12 Dim number1, number2, sumOfNumbers As Integer
13
14 ' read first number from user
15 Console.Write("Please enter the first integer: ")
16 firstNumber = Console.ReadLine()
17
18 ' read second number from user
19 Console.Write("Please enter the second integer: ")
20 secondNumber = Console.ReadLine()
21
22 ' convert input values to Integers
23 number1 = firstNumber
24 number2 = secondNumber
25
26 sumOfNumbers = number1 + number2 ' add numbers
27
28 ' display results
29 Console.WriteLine("The sum is {0}", sumOfNumbers)
30
31 End Sub ' Main
32
33 End Module ' modAddition

Và chương trình sẽ in ra :

Please enter the first integer: 45
Please enter the second integer: 72
The sum is 117

Dòng 9 & 12 là dòng khai báo biến (declaration) với từ khóa Dim.Các từ firstNumber, secondNumber, number1, number2 và sumofNumber là các tên biến dùng để xác định chính xác bộ nhớ nơi được cấp để chứa dữ liệu nhập vào. Dòng 9 là khai báo các biến String dùng để chứa các dữ kiệu kiểu ký tự, chuỗi(vd: abc, 1ba2...). Dòng 12 là khai báo các biến Integer dùng để chứa dữ kiệu kiếu số nguyên (vd: 11, -8, 12345...). Trong VB có khoảng 11 kiểu dữ liệu, chúng ta sẽ đề cập chi tiết ở chương 6.
Dòng 15 hiện ra yêu cầu người dùng nhập vào số nguyên thứ nhất, và dòng 16 sẽ lưu dữ liệu nhập vào trong bộ nhớ (nơi cấp phát cho biến firstNumber). Phương thức ReadLine ở đây sẽ tạm dừng chương trình chờ cho người dùng nhập dữ liệu vào. Và tương tự cho hai dòng 19 & 20.

(còn tiếp...)

nguyen_lanthao
05-07-2003, 12:38
cho hỏi bạn VanLang bộ muốn viết sách hay sao? Sao không nói rõ cuốn sách nào để mọi người coi có hay hơn k?

vanlang
05-07-2003, 14:44
đã nói mấy bác rùi mà sao cứ post bài lộn thế nhỉ ... đề nghị post qua cái thread kia đi .. đề nghị xóa vài cái reply này nhé
cái cuốn sách tui cho nguyên cái tựa ở trên kìa

vanlang
06-07-2003, 17:40
Chapter 1 : Continue ...

Nếu người dùng nhập vào bất kỳ một ký tự nào mà không phải là một số(vd hello) thì chương trình sẽ thông báo lỗi : run-time error ( lỗi xảy ra trong thời gian chạy). Và thông báo có nội dung như sau :
Addition information : Cast from string "hello" to type 'Integer' is not valid.
Để tránh tình trạng này, chúng ta sẽ đề cập đến vấn đề quản lý lỗi (Exception Handling) ở chương 11.
Trong ví dụ này khi ta nhập dữ liệu vào cho hai biến firstNumber, secondNumber, sẽ thuộc kiểu string. Vd: khi người dùng gõ vào 7 và 2 thì dữ liệu nhập vào sẽ là "72". Sau đó chúng mới được chuyển từ kiểu String sang kiểu Integer ở dòng 23 & 24. Ngoài ra các bạn có thể sử dụng cách sau để có thể bỏ qua không cần sử dụng biến String :
Dim number1 As Integer
number1 = Console.ReadLine()
Trong trường hợp này thì ngôn ngữ VB sẽ tự hiểu lệnh Console.ReadLine() trả về kiểu String , sau đó chương trình sẽ tự động chuyển sang kiểu Integer (các bạn lưu ý rằng mọi thứ được nhập vào từ bàn phím sẽ là kiểu String, sau đó mới được chuyển sang kiểu dữ liệu khác tùy theo yêu cầu sử dụng).
Sau khi việc tính toán kết thúc , kết quả sẽ được in ra bằng câu lệnh ở dòng 29.
Console.WriteLine("The sum is {0}.", sumOfNumbers)
Ở đây ký hiệu {0} là một định dạng trong VB dùng để in dữ liệu ra màn hình, ở vd trên thì giá trị của biến sumOfNumbers sẽ được in ra tại ví trí của {0} , nếu có các giá trị khác cần in ra thì các bạn hãy thêm vào các định dạng sau {1},{2}... Lấy vd : chúng ta cần in ra ba giá trị : biến number1 có giá trị 40, biến number2 có giá trị 87, và số 9 , ta dùng câu lệnh sau :
Console.WriteLine("Các giá trị {0},{1} và {2}." , number1 , number2 , 9)
Và màn hình sẽ in ra : Các giá trị 40,87 và 9.

4.Memory concept

Các biến number1, number2 và sumOfNumbers tương ứng với các giá trị thật ở trong bộ nhớ của máy tính với các tính chất : tên biến, kiểu của biến, độ lớn và giá trị. Trong ví dụ trên khi câu lệnh number1 = fisrtNumber được thực hiện thì toàn bộ giá trị của biến String do người dùng nhập vào từ cửa sổ command và được lưu trữ ở tại biến firstNumber sẽ được chuyển sang kiểu Integer. Sau đó chúng sẽ được lưu tại bộ nhớ ở biến number1. Giả sử người dùng nhập vào hai ký tự 4 và 5, sau đó ấn Enter thì dữ liệu sẽ được nhập vào bởi câu lệnh ReadLine dưới dạng là một String "45" và được gán cho biến FirstNumber. Sau đó chương trình sẽ chuyển đổi kiểu String này sang Integer và lưu tại biến number1. Người dùng lại nhập tiếp "72" rồi ấn Enter thì chương trình lại tiếp tục thực hiện công việc chuyển đổi rồi lưu trữ giá trị này tại biến number2. Khi chương trình nhận đủ dữ liệu của hai biến number1, number2 thì nó sẽ cộng hai giá trị này và chứa tổng của chúng tại biến sumOfNumbers : sumOfNumbers = number1 + number2 .

number1 : 45
number2 : 72
sumOfNumbers : 117

5.Arithemic

Trong hầu hết các chương trình đều phải thực hiện công việc tính toán, chúng ta có thể coi bảng tóm tắt các ký hiệu đại số ở bảng bên dưới.

(sogi tui hong bit cach nao gui kem cai hinh nay ca :D )

Chú ý rằng một số kí hiệu sử dụng trong VB không được sử dụng trong toán học. Trong hầu hết các ký hiệu ở bảng trên đều là các biểu thức toán tử nhị phân (binary operators), bởi hầu hết các biểu thức đều có hai số hạng. Lấy vd: biểu thức sum + value thì sẽ có toán tử nhị phân + và hai số hạng là sum và value. Tuy nhiên hiện nay VB đã hỗ trợ cho chúng ta biểu thức chỉ cần một số hạng (unary operator). Và đơn giản chúng ta chỉ cần viết -5 hay +8. Lấy vd : chúng ta thường hay viết a = a + b , nay đơn giản ta viêt a = + b.

chipma
06-07-2003, 19:58
Sao tui thấy cấu trúc này giống C# quá vậy. Hình như VB và C# không khác nhau là mấy thì phải.

vanlang
07-07-2003, 10:02
ok .. hai thằng này giống nhau mờ .. bởi vậy tui mới nói đọc một lúc hai cuốn là biết hai thằng luôn đó mờ :D (mà giờ tui chỉ đọc được có một thằng ... lý do là thằng C# tui thiếu mất chapter này .. sang chapter sau tui sẽ viết cho hai thằng lun nhé :D) .Thân

vanlang
08-07-2003, 12:51
VB tách phép chia ra làm hai loại, một là kiểu phép chia lấy phần nguyên, ký hiệu là \ (the backslask) .Vd : khi 7 \ 4 được 1, 17 \ 5 được 3. Còn lại là phép chia lấy thập phân thông thường ,ký hiệu là / (the forward slask). Các bạn chú ý rằng phép chia lấy phần nguyên đơn giản chỉ là bỏ đi phần thập phân và không có chuyện làm tròn số ở đây. Khi một số thập phân được thực hiện phép chia lấy phần nguyên thì nó sẽ tự động được làm tròn tới số nguyên gần nhất trước khi thực hiện phép chia .VD: 7.1 \ 4 thì kết quả là 1, còn 7.7 \ 4 thì kết quả là 2 vì 7.7 đã được làm tròn thành 8. Ngoài hai phép chia trên trong vb còn phép chia lấy phần dư, ký hiệu là Mod , vd : 7 mod 4 sẽ được 3, 17 mod 5 sẽ được 2.
Trong vb thực hiện các phép toán theo một trình tự thứ tự trước sau nhất định, và hầu hết đều giống với toán học:
1. Dấu ngoặc đơn được thực hiện trước nhất ( nghĩa là có quyền ưu tiên cao nhất) và được thực hiện từ các dấu trong cùng tới các dấu bên ngoài.
2. Kế đến là lũy thừa, và được thực hiện từ trái sang phải nếu trong cùng một lệnh có nhiều phép lũy thừa.
3. Rồi đến dấu âm dương (-,+) được thực hiện và thực hiện từ trái sang với quyền ưu tiên như nhau.
4. Tiếp tục đến dấu nhân * và phép chia thập phân /, thực hiện từ trái sang phải với quyền ưu tiên như nhau.
5. Phép chia lấy phần nguyên \ được thực hiện tiếp theo và cũng cùng quy luật từ trái sang nếu có nhiều phép chia này trong cùng một lệnh.
6. Tiếp theo là phép chia lấy phần dư (mod), nếu có nhiều phép chia cùng loại thì cũng được thực hiện từ trái sang.
7. Các phép cộng và trừ cũng được thực hiện từ trái sang phải, và đây là hai phép tính có độ ưu tiên thấp nhất, thực hiện sau cùng.
Chúng ta có bảng thứ tự các phép tính như sau:

Chúng ta xem một số ví dụ sau để minh họa cho các phép tính :

Và bảng dưới đây minh họa thứ tự các phép tính :


6.Decision Making : Equality and Relational Operators
Trong phần này chúng ta sẽ giới thiệu cấu trúc If/Then của VB. Đây là một câu lệnh có điều kiện , nếu chương trình xét điều kiện ở phần If mà đúng thì sẽ thực hiện các câu lệnh sau phần Then, nếu điều kiện sai thì chương trình sẽ không thực hiện các câu lệnh sau phần Then ấy nữa. Câu lệnh If/Then thường được sử dụng trong các phép toán về đẳng thức và các toán tử quan hệ . Sau đây là bảng tóm tắt các phép toán đó :

Các bạn lưu ý khi viết mã phải viết dính liền các ký hiệu <>, >= và <=, không được viết sai như < >, < =, > = hay >< , =< , =>.
Chương trình kế tiếp của chúng ta là sử dụng 6 hàm If/Then để so sánh 2 số nguyên nhập vào từ người dùng . Bất kỳ điều kiện của hàm If nào đúng thì chương trình sẽ thực hiện các lệnh sau phần Then của hàm if đó. Khi người dùng nhập vào hai số, chúng sẽ được chuyển sang kiểu Integer, sau đó chương trình sẽ so sánh và in kết quả ra màn hình của cửa sổ Command :
1 ' Fig. 3.19: Comparison.vb
2 ' Using equality and relational operators.
3
4 Module modComparison
5
6 Sub Main()
7
8 ' declare Integer variables for user input
9 Dim number1, number2 As Integer
10
11 ' read first number from user
12 Console.Write("Please enter first integer: ")
13 number1 = Console.ReadLine()
14
15 ' read second number from user
16 Console.Write("Please enter second integer: ")
17 number2 = Console.ReadLine()
18
19 If number1 = number2 Then
20 Console.WriteLine("{0} = {1}", number1, number2)
21 End If
22
23 If number1 <> number2 Then
24 Console.WriteLine("{0} <> {1}", number1, number2)
25 End If
26
27 If number1 < number2 Then
28 Console.WriteLine("{0} < {1}", number1, number2)
29 End If
30
31 If number1 > number2 Then
32 Console.WriteLine("{0} > {1}", number1, number2)
33 End If
34
35 If number1 <= number2 Then
36 Console.WriteLine("{0} <= {1}", number1, number2)
37 End If
38
39 If number1 >= number2 Then
40 Console.WriteLine("{0} >= {1}", number1, number2)
41 End If
42
43 End Sub ' Main
44
45 End Module ' modComparison


Khi thực hiện chương trình :
Please enter first integer: 1000
Please enter second integer: 2000
1000 <> 2000
1000 < 2000
1000 <= 2000

Please enter first integer: 515
Please enter second integer: 49
515 <> 49
515 > 49
515 >= 49

Please enter first integer: 333
Please enter second integer: 333
333 = 333
333 <= 333
333 >= 333


Ở dòng 9 chúng ta khai báo hai biến Integer để sử dụng trong hàm Main(). Các bạn lưu ý các biến cùng kiểu có thể được khai báo trên các dòng riêng biệt khác nhau, hoặc trên cùng một dòng như vậy, khi khai báo trên cùng một dòng như thế các bạn phải thêm dấu “,” ở giữa các biến này .
Dòng 13 và 17 sẽ nhận dữ liệu từ người dùng, sau đó chuyển sang kiểu Integer. Câu lệnh If/Then ở các dòng 19-21 sẽ so sánh các giá trị của hai biến number1,number2, nếu chúng bằng nhau thì chương trình sẽ xuất ra dòng chữ trong hàm WriteLine ở dòng 20.
Giả sử number1 = 1000 và number2 = 1000 thì các câu lệnh If/Then ở các dòng 19(=), 35(<=) và 39(>=) đều đúng nên chương trình sẽ in ra :
1000 = 1000
1000 <= 1000
1000 >= 1000


7.Using a Dialog to Display a Message.
Hầu hết các chương trình của chúng ta đều đê cập tới vấn đề xuất thông tin ra màn hình cửa sổ Command. Ở trong chương này chúng ra sẽ sử dụng các hộp thoại của VB để xuất thông tin ra màn hình. Các hộp thoại (Dialogs) chính là các cửa sổ thông thường để hiển thị các mẩu thoại với người dùng.



Trong vi dụ tiếp theo chúng ta sẽ sử dụng hộp thoại để xuất ra màn hình giá trị căn bậc hai của 2. Đây là một ứng dụng của giao diện đồ họa đơn giản (GUI – graphic user interface). Trong thư viện của .NET Framework đã cung cấp cho chúng ta rất nhiều lớp để xây dựng các ứng dựng giao diện kiểu này. Các lớp đó được bao hàm (chứa) trong các Namespaces. Dòng 4 là một câu lệnh dùng để nhập vào một Namespace System.Windows.Forms để sủ dụng trong chương trình. Trong namespace này sẽ chứa các hộp thoại mà chúng ta sử dụng để hiển thị thông tin ra màn hình. Chúng ta sẽ đề cập chi tiết về NameSpace này sau khi hoàn thành đoạn chương trình ví dụ này:
1 ' Fig. 3.21: SquareRoot.vb
2 ' Displaying the square root of 2 in dialog.
3
4 Imports System.Windows.Forms ' namespace containing MessageBox
5
6 Module modSquareRoot
7
8 Sub Main()
9
10 ' calculate square root of 2
11 Dim root As Double = Math.Sqrt(2)
12
13 ' display results in dialog
14 MessageBox.Show("The square root of 2 is " & root, _
15 "The Square Root of 2")
16
17 End Sub ' Main
18
19 End Module ' modSquareRoot

Dòng thứ 11 sẽ gọi hàm sqrt của lớp Math để tính căn bậc hai của 2 rồi gán giá trị đó cho biến root. Giá trị trả về cho root sẽ là một số thập phân vì chúng ta đã khai báo kiểu của biến root là Double. ( Kiểu Double là kiểu chứa các số thập phân như 2.345, hay -5.3435). Các bạn để ý rằng chúng ta khai báo và gán giá trị cho biến root chỉ trên cùng một dòng.
Đến dòng 14,15 chúng ra sẽ thấy ký hiệu _ , đây là một ký hiệu dùng để nối hai dòng 14 và 15 với nhau. Vì dòng lệnh ở dòng 14 quá dài và để cho chương trình dễ đọc hơn chúng ta tách ra làm hai dòng như thế. Như vậy dòng 15 là dòng tiếp theo của dòng 14. Trong một dòng có thể có nhiều ký hiệu này để nối dòng, song phải có ít nhất một khoảng trắng giữa các ký hiệu.
Dòng 14,15 sẽ gọi hàm Show của lớp MessageBox. Hàm này có hai đối số (argument). Đối số đầu tiên là một String sẽ được hiển thị bởi hộp thoại, đối số thứ hai cũng là một String ,nhưng nó sẽ được hiển thị bởi tiêu đề (Title) của hộp thoại.
Trong ví dụ này đối số thứ nhất và thứ hai của hàm này được nối tiếp với giá trị của biến root bằng ký hiệu & (String concatenation operator). Ký hiệu này luôn dùng để nối hai String lại với nhau . Khi chương trình chạy sẽ hiển thị ra màn hình :

Trong hộp thoại sẽ hiển thị thêm một nút nhấn (button) Ok cho phép người dùng có thể đóng hộp thoại lại bằng cách click chuột vào đấy, khi hộp thoại kết được đóng lại thì chương trình sẽ kết thúc.
Có rất nhiều lớp đã được thiết kế sẵn và cung cấp bởi VB.NET (vd lớp MessageBox..) , bạn phải nhập vào (Imports) chương trình trước khi sử dụng, sau khi chương trình được biên dịch (complie) tất cả sẽ được chứa trong một file assembly với đuôi mở rộng là .dll (dynamic link library).
Để thêm thông tin về các assembly chúng ta có thể tham khảo trong bộ thư viện MSDN của Microsoft. Đơn giản ở trong bộ Visual Studio các bạn chọn Help > Index .. để hiển thị hộp thoại Index như sau:

Gõ vào trong Look for : MessageBox, sau đó chọn Filtered by là Visual Basic and Related. Tiếp đến chọn lớp MessageBox được hiển thị ở hộp thoại bên dưới và một tài liệu sẽ hiện ra giống như sau :

Lớp MessageBox nằm trong cái assembly System.windows.forms.dll, để sử dụng chúng ta phải thêm nó vào trong phần reference trong Solution Explorer . Visual Studio đã cung cấp cho chúng ta tiện ích rất nhanh để thêm nó vào, các bạn chọn Project > Add reference.. để hiển thị hộp thoại Add reference. Sau đó kiếm và click 2 lần vào phần system.windows.forms.dll. Sau đó click Ok, chú ý rằng bây giờ system.windows.forms. dll đã được thêm vào trong reference ở trong Solution Explorer.


Bây giờ cái assembly đã được thêm vào chương trình, chúng ta có thể sử dụng nó thoải mái. Bạn hãy nhập vào namespace system.windows.forms bằng từ khóa Imports ở dòng thứ 4. Chú ý rằng từ khóa Imports sẽ không được tự động nhập vào mà bạn phải gõ đấy.
Trong các chương trình trước chúng ta đã không thêm cái assembly nào vào vì bộ visual đã tự động thêm vào các assembly cần thiết, và những cái không cần thiết sẽ không được thêm vào (ví dụ nếu không dùng giao diện đồ họa thì không cần thêm assembly systen.windows.form.dll).
Cái namespace system.windows.form.dll chứa rất nhiều lớp có thể giúp bạn tạo ra các giao diện đồ họa cho ứng dụng của mình. Nhờ vậy sẽ rất thuận lợi cho việc giao tiếp với người dùng. Lấy ví dụ : trình Internet Explorer của windows chứa menu như File, Edit , View … bên dưới là các nút nhấn như back(trở về), forward (tới), stop(dừng) , home … dưới nữa là một cái textbox cho phép người dùng nhập địa chỉ các trang web. Tất cả đấy đều là các giao diện của IE , nó sẽ giúp cho người dùng trở nên quen thuộc với IE hơn, và làm cho IE dễ sử dụng hơn.
Visual Basic đã cung cấp nhiều lớp đã cung cấp nhiều lớp để tạo ra các giao diện như thế mà chúng ta sẽ đề cập chi tiết ở các chương 12,13 : Graphic User Interface Concept phần I và phần II.

8.Internet and Word Wide Web Resourses
www.vb.world.net
www.devx.com/dotnet
www.vbcity.com
www.cyber-matrix.com/vb.html
www.searchvb.techtarget.com
www.aewnet.com/root/dotnet/vbnet

---------------
Hết chapter 1 rùi đó .. đợi tuilàm tiếp chapter2 nhé
chapter1.doc

vanlang
08-07-2003, 12:53
hehe tui hổng bít làm cho hình ảnh theo .... với lại attach cũng ko được nếu u nào mún có nguyên cái chapter này thì mail cho tui nhé pharaoh_diamic@yahoo.com

White_Rose
09-07-2003, 00:55
ok .. hai thằng này giống nhau mờ .. bởi vậy tui mới nói đọc một lúc hai cuốn là biết hai thằng luôn đó mờ (mà giờ tui chỉ đọc được có một thằng ... lý do là thằng C# tui thiếu mất chapter này .. sang chapter sau tui sẽ viết cho hai thằng lun nhé ) .ThânTớ không định chen ngang nhưng mà phát biểu thế này thì... , hic

vanlang
09-07-2003, 08:14
thì tui nói thiệt chứ có nói sai đâu .. nếu u không thích thì tui chỉ viết cho VB thui được chưa

White_Rose
09-07-2003, 14:41
Ý tớ nói là VB.NET và C# không thể giống nhau được. Chấm hết.

vanlang
09-07-2003, 15:37
úi vậy đó hẻ ... nhưng mà ý tui nói là ông deitel ổng viết hai cuốn này y chang nhau mà .. học một lúc là bít hai ngôn ngữ lun .. được chưa

chipma
09-07-2003, 19:13
HIc, kiểu này phải in ra để học thôi, hehe, yêu cầu thầy dạy tiếp.

vanlang
09-07-2003, 20:57
hic ..hổng dám làm thầy ai đâu .. chỉ cần có người đọc bài tui là ok rùi /.. giờ nhìu ngừơi post vô đây wá .. sang chapter 2 chắc tui chuyển post wsa

attilathehun
09-07-2003, 21:13
tuyệt wá, thanks bác, đỡ mất công đọc tiếng Anh

vanlang
09-07-2003, 21:23
Chapter 2 : Control Structures Part1

Sau khi học xong phần này các bạn có thể:
· Hiểu phương pháp để giải quyết các vấn đề cơ bản
· Phát triển các thuật toán theo một qui trình cơ bản, chặt chẽ
· Sử dụng các câu lệnh If/Then, If/Then/Else để thực hiện các hành động có điều kiện
· Sử dụng các câu lệnh While, Do While / Loop và Do Until / Loop để thực hiện các câu lệnh lặp
· Sử dụng thành thạo các hàm gán
· Tạo các ứng dụng windows đơn giản

1.Introdution
Trước khi viết một chương trình để giải quyết các vấn đề , điều quan trọng trước tiên là bạn phải hiểu các vấn đề đó và vạch ra kế hoạch cụ thể. Vấn đề quan trọng không kém đó là xây dựng khung thân của chương trình và hiểu rõ cấu trúc chương trình. Trong chương này và chương tới chúng ta sẽ tìm hiểu rõ về cấu trúc của chương trình và nguồn gốc xuất xứ của nó. Rất nhiều kỹ thuật cấu trúc hiện nay vẫn được áp dụng cho các ngôn ngữ cấp cao , trong đó có ngôn ngữ VB.NET. Khi chúng ta học về lập trình đối tượng cơ bản trong chương 6, các bạn sẽ thấy cái hữu ích của điều khiển cấu trúc trong việc tạo ra các đối tượng. Chúng ta sẽ thảo luận chi tiết hơn về điều khiển cấu trúc ở trong chương này, các bạn sẽ thấy việc tạo ra các đối tượng đơn giản và dễ dàng nhu thế nào. Ở chương này chúng ta sẽ đề cập tới ứng dụng console, ứng dụng windows sẽ được thảo luận ở chương sau.

2.Argorithms.
Bất kỳ một vấn đề nào trong máy tính đều có thể giải quyết theo các trình tự nhất định, rõ ràng và cụ thể. Một chương trình như vậy bao gồm các phần:
1. Một hành động được thực hiện và
2. Thứ tự trình tự các hành động được thực hiện.
Điều này được gọi là thuật toán. Ví dụ tiếp theo của chúng ta sẽ minh họa cho tầm quan trọng của việc sắp xếp thứ tự của các hành động.
Giả sử có một thuật toán gọi là “rise and shine” sẽ được sắp xếp theo các trình tự thức dậy rồi đi làm : (1) ra khỏi giường (2) thay đồ ngủ (3) làm vệ sinh (4) mặc đồ công sở (5) ăn sáng (6) lái xe đi làm. Công việc này sẽ luôn được thực hiện hằng ngày. Tuy nhiên, chỉ một thay đổi nhỏ trong các bước trên sẽ như thế nào? (1) ra khỏi giường (2) thay đồ ngủ (3) mặc đồ công sở (4) làm vệ sinh (5) ăn sáng (6) lái xe đi làm. Trong trường hợp như vậy thì bộ đồ công sở sẽ bị ướt.
Như vậy, việc xác định thứ tự các hành động là điều cốt yếu của một chương trình. Một chương trình tốt nên có một thứ tự của các hành động thật chính xác và logic. Trong chương này chúng ta sẽ nghiên cứu tỉ mỉ khả năng điều khiển chương trình của VB.



3.Pseudocode
Mã giả là một ngôn ngữ rất cần thiết và thân thiệt để có thể giúp lập trình viên phát triển thuật toán của họ. Mã giả mà chúng ta sử dụng trong ví dụ ở chương này rất hữu dụng trong việc phát triển thuật toán, và nó đã được chuyển đổi đề gần gũi hơn với lập trình viên VB. Mã giả cũng giống như một ngôn ngữ thông thường, nó thuận tiện và gần gũi với lập trình viên, nhưng nó không phải là một ngôn ngữ máy tính. Do đó mã giả sẽ không chạy được trong máy tính.Nói một cách khác mã giả giúp cho lập trình viên hình dung ra trước chương trình của họ trước khi thực hiện công việc viết với ngôn ngữ lập trình. Trong chương này chúng ra sẽ xem xét vài ví dụ về mã giả.
Kiểu mã giả mà chúng ta sử dụng ở đây đơn giản sẽ chỉ có các ký tự đơn độc, do đó lập trình viên sẽ dễ dàng tạo, sửa đổi và thay thế bằng các trình soạn thảo. Và nếu khéo léo các bạn có thể chuyển đổi mã giả sang ngôn ngữ VB một cách dễ dàng. Điều đó rất đơn giản vì các bạn chỉ việc thay thế các dòng lệnh của mã giả bởi các dòng lệnh VB tương ứng. Mã giả chủ yếu dùng để diễn tả các hành động có thể được thực hiện trong chương trình, do đó việc khai báo biến sẽ không có mã giả.

4.Control Structures.
Thông thường các lệnh sẽ được thực hiện sau câu lệnh đi trước nó, điều này gọi là việc thi hành tuần tự. Tuy nhiên, một vài câu lệnh VB có thể được chỉ định thi hành bởi lập trình viên mà không tuân theo tuần tự, để làm điều này các bạn dùng lệnh Goto. Tuy nhiên việc sử dụng Goto sẽ làm cho chương trình trở nên không có thứ tự và rất khó theo dõi. Do vậy lập trình cấu trúc cũng đồng nghĩa với việc loại bỏ câu lệnh Goto.
Bohm và Jacopini (Bohm, C., and G. Jacopini, “Flow Diagrams, Turing Machines, and Languages with Only Two Formation Rules,” Communications of the ACM, Vol. 9, No. 5, May 1966, pp. 336–371.) đã nghiên cứu và chứng minh được mọi chương trình có chứa Goto có thể được viết lại mà không cần sử dụng chúng. Do đó có một thời gian các lập trình viên đã thay đổi thói quen để loại bỏ đi câu lệnh Goto. Từ năm 1970, mọi lập trình viên đã chuyển sang lập trình có cấu trúc , và kết quả thu được thật ấn tượng, các phần mềm đã được xây dựng và phát triển trong khoảng thời gian ngắn hơn. Chìa khóa của sự thành công đó chính là chương trình có cấu trúc rõ ràng, dễ đọc và trở nên ít lỗi hơn trong lần chạy đầu tiên.
Bohm và Jacopini cũng cho thấy rằng mọi chương trình có thể viết theo tập hợp của 3 cấu trúc điều khiển sau : trình tự các cấu trúc, sự chọn lọc các cấu trúc và việc lặp các cấu trúc. Ngoại trừ có các ngoại lệ nếu không máy tính sẽ thực hiện chương trình của chúng ta một cách tuần tự.
Biểu đồ sau minh họa việc thực hiện tuần tự 2 phép tính đơn giản:
http://www.freewebs.com/vanlang/2.jpg
Biểu đồ trên đại diện cho 1 phần của 1 thuật toán, nó sử dụng các ký hiệu như : hình chữ nhật, hình thoi, o van và các vòng tròn nhỏ. Các ký hiệu đó với các mũi tên ký hiệu đường đi sẽ chỉ rõ việc thực hiện thuật toán. Các trình tự đó được coi như là trình tự thực hiện của một cấu trúc. Giống như mã giả, các biểu đò rất hữu ích cho việc phát triển và đại diện cho thuật toán, tuy vậy nhiều lập trình viên vẫn thích sử dụng mã giả hơn. Các bạn nên so sánh cẩn thận giữa mã giả và biểu đồ đại diện cho mỗi cấu trúc trong chương trình.
Trong mỗi phần của biểu đồ trên chúng ta đã sử dụng hình chữ nhật, nó đại diện cho một câu lệnh sẽ được thực hiện. Đầu tiên grade sẽ được cộng thêm vào trong total, sau đó 1 mới được cộng vào trong counter. Chúng ta có thể sử dụng một hay nhiều lệnh trình tự cấu trúc trong chương trình, và trong một cấu trúc có thể có một hay nhiều câu lệnh. Khi chúng ta sử dụng biểu đồ để hoàn thành hẳn một thuật toán thì thì hình o van có chứa chữ “Begin” sẽ bắt đầu chương trình, và hình o van chứa chữ “End” sẽ kết thúc chương trình. Khi sử dụng để chỉ vẽ một phần của thuật toán thì chúng ta sẽ sử dụng các hình tròn nhỏ, đó là ký hiệu kết nối với các phần không được thể hiện trên biểu đồ của thuật toán. Có lẽ ký hiệu quan trọng nhất là hình thoi, chúng ta sẽ đề cập chi tiết hơn trong phần 5.
VB cung cấp cho chúng ta 3 câu lệnh kiểu cấu trúc điều kiện. Thứ nhất là If/Then, nếu điều kiện sau If đúng thì câu lệnh sau Then sẽ được thực hiện, còn nếu không sẽ bỏ qua. Thứ hai là If/Then/Else , nếu điều kiện sau If đúng thì thi hành câu lệnh sau Then, nếu không thì sẽ thi hành câu lệnh sau Else. Cuối cùng là Select Case, chúng ta sẽ học cái câu lệnh này ở chương sau : Control Structures Part 2.
Vb cung cấp cho chúng ta 7 câu lệnh kiểu cấu trúc lặp : While, Do While/ Loop, Do / Loop While , Do Until / Loop, Do Loop / Until , For Next và For Each / Next. Trong chương này chúng ta sẽ học về While / Do While / Loop và Do Until / Loop, chương sau chúng ta sẽ học về Do / Loop While, Do / Loop Until, For / Next và ở chương 5 sẽ học nốt For Each / Next. Các từ While, Do , If, Then, Else, Select, Case, Until, Loop, For , Next, Each … là các từ khóa trong VB. VB là một ngôn ngữ lập trình có nhiều từ khóa nhất, nhiều hơn bất kỳ một ngôn ngữ lập trình nào.
Các câu lệnh kiểu cấu trúc có thể được sắp xếp nối tiếp nhau trong chương trình hoặc cũng có thể lồng vào nhau, khi đó câu lệnh này sẽ nằm trong câu lệnh khác. Và một chương trình VB đơn giản chỉ là sự kết hợp của 11 kiểu cấu trúc khác nhau : 1 kiểu tuần tự, 3 kiểu điều kiện, 7 kiểu lặp.
http://www.freewebs.com/vanlang/c2.jpg

vanlang
09-07-2003, 21:28
hic cai hình .. cái hình.....nó hổng lên .. thuimấy bác vào đây mà coi
http://www25.brinkster.com/sinhnhat/image/c2.jpg

vanlang
09-07-2003, 21:34
cha nó lại hổng được .. thui để tui đăng ký cái freewebs .. hic admin làm khổ bà com wé .. sao ổng cho âttch lên lun cho rùi
à hình như được rùi .. để tui âttch cài chapter1 lên cho pà con nhé

vanlang
10-07-2003, 13:20
thôi bà con .. tui up lên freewebs rùi nè ai thích thì vô down cái chapter 1 này về .. cái 2 tui mới hoàn thành một nửa thôi
www.freewebs.com/vanlang/chapter1.zip

vanlang
10-07-2003, 13:21
5.If/Then Selection Structure.
Trong một chương trình , câu lệnh cấu trúc có điều kiện sẽ làm cho các câu lệnh luân phiên nhau. Lấy ví dụ nếu điểm của một học sinh lớn hơn hay bằng 60 thì chương trình sẽ in ra từ “Đạt”. Ta có mã giả như sau:
If Điểm của học sinh >= 60
In ra “Đạt”
Nếu điều kiện ở đây đúng thì từ “Đạt” sẽ được in ra, và đoạn mã tiếp theo sau của chương trình sẽ được thi hành (Các bạn nhớ rằng mã giả không phải là ngôn ngữ lập trình). Nếu điều kiện sai thì đoạn in ra từ “Đạt” sẽ được bỏ qua, và đoạn mã tiếp theo sẽ được thi hành.
Đoạn mã giả trên được viết lại trong VB như sau:
If studentGrade >= 60 Then
Console.WriteLine("Đạt")
End If
Các bạn thấy rằng đoạn mã trên rất gần với đoạn mã giả, và để minh họa cho sự hữu ích để phát triển thuật toán của mã giả như là một công cụ để phát triển chương trình, chúng ta cũng sẽ in ra từ “Đạt”. Việc thụt dòng vào của đoạn mã là không bắt buộc, nhưng việc highligh màu các từ khóa thì nên làm để làm nổi bật cấu trúc của chương trình.
Trình biên dịch VB sẽ tự động bỏ qua các khoảng trắng, dấu tab… ngoại trừ các khoảng trắng nằm trong các String. Và một vài khoảng trắng được qui định trong VB là bắt buộc phải có. Vd: các khoảng trắng giữa hai từ khóa, giữa các biến và dòng kết thúc lệnh. Lập trình viên cũng nên thêm vào các khoảng trắng để chương trình dễ đọc hơn.
Câu lệnh If/Then có thể viết gọn trên cùng một dòng như sau:
If studentGrade >= 60 Then Console.WriteLine("Đạt")
Tuy nhiên , nếu điều kiện If đúng thì chỉ có mỗi một câu lệnh sau Then được thực hiện. Nếu muốn thi hành được nhiều lệnh hơn thì các bạn phải dùng dạng cấu trúc If/Then với kết thúc bằng End If.
Hình dưới đây minh họa cho câu lệnh If/Then, biểu đồ này có chứa ký hiệu rất quan trọng, đó là hình thoi. Ký hiệu này cho biết bước tiếp theo lệnh nào sẽ được thực hiện, đây là điều kiện trong phần If. Ký hiệu này có hai lối ra, một lối mũi tên True, khi điều kiện của If đúng thì lệnh mã sẽ đi theo lối này. Lối còn lại là False dành cho lệnh mã khi điều kiện If sai.



Để hiểu rõ hơn vể điều khiển cấu trúc các bạn có thể mường tượng ra 11 cái thùng, chúng sẽ đại diện cho 11 kiểu cấu trúc. Nếu cái thùng nào rỗng tức là không có câu lệnh nào được chứa trong cấu trúc đó. Lập trình viên sẽ sắp xếp các cái thùng đó sao cho phù hợp với thuật toán bằng cách xếp chúng ở gần nhau hay bỏ lồng chúng vào nhau, rồi sau đó dùng nước hay một thứ gì khác đổ đầy vào các thùng, tượng trưng cho các câu lệnh được chứa trong các thùng đó. Và như vậy thuật toán đã có thể hoàn thành.

6.If/Then/Else Selection Structure.
Như chúng ta đã biết câu lệnh điều kiện If/Then sẽ thực hiện các câu lệnh sau Then nếu điều kiện của If đúng, ngược lại sẽ bỏ qua tất cả. Bây giờ câu lệnh điều kiện If /Then/Else sẽ cho phép bạn thực hiện các câu lệnh khác nếu điều kiện của If sai. Lấy vd chúng ta có mã giả sau đây:
If điểm học sinh >= 60
Inra “Đạt”
Else
Inra “Rớt”
Chúng ta có thể viết lại bằng VB như sau:
If studentGrade >= 60 Then
Console.WriteLine("Passed")
Else
Console.WriteLine("Failed")
End If
Biểu đồ dưới đây minh họa cho cấu trúc của If/Then/Else, trong biểu đồ có chứa các ký hiệu: vòng tròn nhỏ là ký hiệu kết nối với các cấu trúc khác trong thuật toán,hình chữ nhật là các câu lệnh sau Then và hình thoi là điều kiện của If.



Cấu trúc If/Then/Else thường được sử dụng để tạo ra các cấu trúc lồng nhau. Lấy vd , chương trình sẽ in ra “A” nếu điểm của học sinh lớn hơn hoặc bằng 90, in ra “B” khi từ 80-89, in ra “C” khi từ 70-79, in ra “D” khi từ 60-69 và in ra “F” cho trường hợp còn lại.




If điểm học sinh >= 90
Inra “A”
Else
If điểm học sinh >= 80
Inra “B”
Else
If điểm học sinh >= 70
Inra “C”
Else
If điểm học sinh >= 60
Inra “D”
Else
Inra “F”

Mã giả được viết lại thành Vb như sau:

If studentGrade >= 90 Then
Console.WriteLine("A")
Else
If studentGrade >= 80 Then
Console.WriteLine("B")
Else
If studentGrade >= 70 Then
Console.WriteLine("C")
Else
If studentGrade >= 60 Then
Console.WriteLine("D")
Else
Console.WriteLine("F")
End If
End If
End If
End If

Một số lập trình viên viết cấu trúc If/Then/Else với từ khóa EndIf như sau:

If grade >= 90 Then
Console.WriteLine("A")
ElseIf grade >= 80 Then
Console.WriteLine("B")
ElseIf grade >= 70 Then
Console.WriteLine("C")
ElseIf grade >= 60 Then
Console.WriteLine("D")
Else
Console.WriteLine("F")
End If
Cả hai cách đều tương nhau , xong cái sau này lại được phổ biến hơn vì nó sẽ trách tình trạng mã bị thụt vào quá sâu, sẽ làm cho chương trình trở nên khó đọc hơn.

7.While Repetition Structure
Câu lệnh lặp While sẽ cho phép lập trình viên thực hiện một câu lệnh lặp được nhiều lần. Đoạn mã giả sau đây minh họa cho tính năng của While:
While có hàng mới nhập về kho
Đánh số thứ tự.
Xếp hàng vào kho.
Như vậy câu lệnh While sẽ thực hiện khi điều kiện đúng, tức là có hàng mới nhập về , và các câu lệnh sẽ thực hiện là: đánh dấu thứ tự rồi xếp vào kho để lưu trữ. Sau khi thực hiện cho tới hàng cuối cùng (dùng lệnh While) thì hàng sẽ hết (không còn hàng mới, điều kiện không còn đúng nữa) thì sẽ không còn hàng để mà đánh số thứ tự và xếp vào kho nữa (không thực hiện các câu lệnh nữa).
Để minh họa, chúng ta sẽ viết một chương trình tìm số đầu tiên là lũy thừa của 2 mà lớn hơn 1000 :
1 ' While.vb
2 ' Minh họa cho câu lệnh cấu trúc While.
3
4 Module modWhile
5
6 Sub Main()
7 Dim product As Integer = 2
8
9 ' Cấu trúc này sẽ nhân sau đó in kết quả
10 ' khi mà product vẫn còn nhỏ hơn 1000
11 While product <= 1000
12 Console.Write("{0} ", product)
13 product = product * 2
14 End While
15
16 Console.WriteLine() ' in ra một hàng trắng
17
18 ' in ra kết quả
19 Console.WriteLine("Số lũy thừa đầu tiên của" & _
20 " 2 lớn hơn 1000 là {0}", product)
21 End Sub ' Main
22
23 End Module ' modWhile

Chương trình sẽ in ra :

2 4 8 16 32 64 128 256 512
Lũy thừa đầu tiên của 2 lớn hơn 1000 là 1024

Ở dòng 7 chúng ta kết hợp vừa khai báo vừa gắn kết quả cho biến product với giá trị là 2, tuy nhiên chúng ta vẫn có thể khai báo và gán giá trị cho product trong 2 dòng khác nhau. Trong vòng lặp While ở dòng 11, biến product sẽ lần lượt được nhân với 2 và sẽ có các giá trị là 4,8,16,32,64,128,256,512 và 1024. Khi product đạt giá trị 1024 thì điều kiện product <= 1000 không còn đúng nữa và chương trình sẽ nhảy đến dòng lệnh End While để kết thúc vòng lặp While.
Biểu đồ dưới đây minh họa cấu trúc của While. Trong biểu đồ biểu đồ này sử dụng các ký hiệu : hình chữ nhật và hình thoi.



Ở đây khi điều kiện của hình thoi đúng, chương trình sẽ thực hiện câu lệnh trong hình chữ nhật rồi trở về xét điều kiện ban đầu, nếu đúng thì chương trình sẽ lại tiếp tục thực hiện công việc như trên, nếu sai thì sẽ nhảy ra ngoài, kết thúc vòng lặp While.

8.Do While/ Loop Repetition Structure
Công dụng của vòng lặp Do While / Loop cũng giống với While. Để minh họa ta cũng sẽ lấy vd giống với vòng lặp While.
1 ' DoWhile.vb
2 ' Minh họa cho cấu trúc của Do While/Loop.
3
4 Module modDoWhile
5
6 Sub Main()
7 Dim product As Integer = 2
8
9 ' Cấu trúc này sẽ nhân sau đó in kết quả
10 ' khi mà product vẫn còn nhỏ hơn 1000
11 Do While product <= 1000
12 Console.Write("{0} ", product)
13 product = product * 2
14 Loop
15
16 Console.WriteLine() ' in ra một dòng trống
17
18 ' in kết quả
19 Console.WriteLine("Số lũy thừa đầu tiên của" & _
20 " 2 lớn hơn 1000 là {0}", product)
21 End Sub ' Main
22
23 End Module ' modDoWhile

Chương trình sẽ in ra :

2 4 8 16 32 64 128 256 512
Lũy thừa đầu tiên của 2 lớn hơn 1000 là 1024

Khi vào vòng lặp Do While / Loop thì product sẽ có giá trị là 2. Sau đó sẽ được nhân liên tiếp với 2 để có các giá trị sau : 4,8,16,32,64,128,256,512 và 1024. Khi product đạt giá trị 1024 thì điều kiện product <= 1000 sẽ sai. Vòng lặp sẽ kết thúc và trả về giá trị cuối cùng của product là 1024.
Biểu đồ sau minh họa cho cấu trúc của Do While / Loop:



9.Do Until / Loop Repetition Structure
Ngược lại với While và Do While / Loop , cậu lệnh lặp Do Until / Loop sẽ kiểm tra điều kiện sai mới thực hiẹn tiếp vòng lặp. Lấy vd chúng ta cũng xét vd như trên :
1 ' DoUntil.vb
2 ' Minh họa cấu trúc Do Until/Loop.
3
4 Module modDoUntil
5
6 Sub Main()
7 Dim product As Integer = 2
8
9 ' tìm lũy thừa của 2 lớn hơn 1000
10 Do Until product > 1000
11 Console.Write("{0} ", product)
12 product = product * 2
13 Loop
14
15 Console.WriteLine() ' in ra một dòng trắng
16
17 ' in ra kết quả
18 Console.WriteLine("Số lũy thừa đầu tiên của" & _
19 " 2 lớn hơn 1000 là {0}", product)
20 End Sub ' Main
21
22 End Module ' modDoUntil

Chương trình cũng in ra :
2 4 8 16 32 64 128 256 512
Lũy thừa đầu tiên của 2 lớn hơn 1000 là 1024


Biểu đồ sau minh họa cho cấu trúc của Do Until / Loop:



10.Assigment Operators
Trong VB.NET cung cấp cho ta hàm có thể dùng để viết ngắn ngọn lại như sau:
Value = value + 3
Có thể viết lại : value += 3
Và chúng ta có thể tổng quát hóa các hàm như sau
variable = variable operator expression
Viết lại thành :
variable operator= expression
Với operator có thể là các phép tính : +,-,*,^,&,\ hay /.
Hình sau minh họa các phép tính:



Và đoạn mã ví dụ sau đây sẽ minh họa cho cách viết trong chương trình :
1 ' Assignment.vb
2 ' Tính lũy thừa của 2.
3
4 Module modAssignment
5
6 Sub Main()
7 Dim exponent As Integer ' số mũ sẽ được nhập
8 Dim result As Integer = 2 ' cơ số
9
10 ' ngừoi dùng nhập vào số mũ
11 Console.Write("Bạn nhập vào số mũ: ")
12 exponent = Console.ReadLine()
13
14 result ^= exponent ' giống vơi result = result ^ exponent
15 Console.WriteLine("result ^= exponent: {0}", result)
16
17 result = 2 ' đưa giá trị của result về 2
18 result = result ^ exponent
19 Console.WriteLine("result = result ^ exponent: {0}", result)
20
21 End Sub ' Main
22
23 End Module ' modAssignment

Chương trình sẽ in ra :
Bạn nhập vào số mũ: 8
result ^= exponent: 256
result = result ^ exponent: 256

attilathehun
10-07-2003, 19:41
bác Văn Lang, đưa tui dịch giúp cho
Hai người làm nhanh hơn!!
Ba cái vụ dịch này tui rành lắm, vả lại tui cũng đang cần nghiên cứu .NET, mà dịch là cách học hay nhất.
liên hệ: YM:attilathehunvn, Mail: attilathehunvn@yahoo.com

attilathehun
10-07-2003, 20:04
ặc ặc bác Văn Lang ơi em cũng ở Vũng Tàu nè
nghe King Gà giới thiệu

vanlang
11-07-2003, 13:58
11.Formulating Algorithms : Case Study 1 (Counter-Controlled Repetition)
Để minh họa cho câu hỏi : phát triển thuật toán như thế nào, chúng ta sẽ xét vd sau : có 1 lớp có 10 học sinh, điểm của mỗi học sinh (từ 0-100) sẽ do người dùng nhập vào. Hãy viết chương trình tính điểm trung bình của lớp này. Như vậy điểm trung bình của lớp sẽ bằng tổng điểm của 10 học sinh chia cho số học sinh, và chương trình của chúng ta sẽ phải làm công việc sau : nhận dữ liệu do người dùng nhập vào, tính tổng rồi chia lấy trung bình. Sau đó in ra kết quả. Chúng ta có mã giả sau:
Đặt total bằng 0
Đặt grade counter bằng 1

While grade counter nhỏ hơn hay bằng 10
Nhập vào giá trị của grade
Cộng grade vào total
Cộng 1 vào grade counter

Gán giá trị của average bằng tota lchia cho 10
In ra điểm trung bình : average
Thuật toán của chúng ta có thể được giải thích như sau: gán giá trị cho total (biến dùng để tính tổng) là 0, gán giá trị cho gradeCounter (biến dùng để đếm số điểm đã nhập vào) là 1. Như vậy vòng lặp While sẽ được lặp liên tục trong khi giá trị của gradêcountr nhở hơn hay bằng 10, và trong lúc đó chương trình sẽ phải thực hiện các lệnh : nhận vào điểm rồi gán cho biến grade , sau đó sẽ cộng grade vào cho total, rồi cộng 1 vào cho biến gradeCounter. Sau khi kết thúc vòng lặp ta sẽ có tổng điểm là total, và chỉ việc lấy total chia cho 10 là sẽ có điểm trung bình.
Chương trình có mã Vb như sau :
1 ' Average1.vb
2 ' Sử dụng counter-controlled repetition.
3
4 Module modAverage
5
6 Sub Main()
7 Dim total As Integer ' tổng điểm
8 Dim gradeCounter As Integer ' số lần nhập điểm
9 Dim grade As Integer ' biến chứa điểm
10 Dim average As Double ' điểm trung bình
11
12 ' Tạo các giá trị ban đầu
13 total = 0 ' Đặt total bằng 0
14 gradeCounter = 1 ' chuẩn bị cho vòng lặp
15
16 ' giai đoạn thực hiện
17 While gradeCounter <= 10
18
19 ' đọc dữ liệu nhập bởi người dùng
20 Console.Write("Nhập vào điểm: ")
21 grade = Console.ReadLine()
22
23 total += grade ' cộng grade vào total
24
25 gradeCounter += 1 ' cộng 1 vào gradeCounter
26 End While
27
28 ' giai đoạn kết thúc
29 average = total / 10
30
31 ' in ra một dòng trắng rồi in ra kết quả
32 Console.WriteLine()
33 Console.WriteLine("Điểm trung bình {0}", average)
34
35 End Sub ' Main
36
37 End Module ' modAverage

Chương trình in ra :
Nhập vào điểm: 89
Nhập vào điểm: 70
Nhập vào điểm: 73
Nhập vào điểm: 85
Nhập vào điểm: 64
Nhập vào điểm: 92
Nhập vào điểm: 55
Nhập vào điểm: 57
Nhập vào điểm: 93
Nhập vào điểm: 67
Điểm trung bình 74.5


Ở dòng 7-10 chúng ta khai báo các biến total, gradeCounter và grade thuộc kiểu Integer, biến average thuộc kiểu Double. Biến total sẽ chứa giá trị là tổng điểm của học sinh, biến gradeCounter sẽ đếm số lần nhập điểm vào, biến grade sẽ chứa giá trị điểm do người dùng nhập vào.
Các bạn chú ý rằng mặc dù điểm nhập vào thuộc kiểu Integer, nhưng điểm trung bình lại là Double, do kiểu Integer không chứa các số thập phân nên ta phải sử dụng biến kiểu Double để chứa số thập phân. VB cũng cung cấp cho ta kiểu Single để chứa số thập phân nhưng sẽ chiếm bộ nhớ ít hơn kiểu Double, do đó kiểu Double lại chính xác hơn kiểu Single. Do đó kiểu Single chỉ cần thiết cho các chương trình tiết kiệm bộ nhớ, còn kiểu Double thì lại dành cho các chương trình đòi hỏi độ chính xác cao.
Ở dòng 13-14 chúng ta chỉ định cho total là 0 và gradeCounter là 1. Dòng 17 cho chúng ta cho chúng ta biết vòng lặp While sẽ được lặp trong khi giá trị của gradeCounter nhỏ hơn hay bằng 10. Dòng 20-21 sẽ tương ứng với đoạn mã giả “Nhập vào giá trị của grade” . Câu lệnh ở dòng 20 sẽ in ra “Nhập vào điểm: ” ở cửa sổ command, câu lệnh ở dòng 25 sẽ đọc dữ liệu vào bộ nhớ rồi gán cho biến grade. Tiếp theo chương trình sẽ cộng grade vào total ở dòng 23. Và ở dòng 25 chương trình sẽ cộng 1 vào gradeCounter. Đến dòng 29 chương trình sẽ tính điểm trung bình và in kết quả ra màn hình ở dòng 33: “Điểm trung bình” với giá trị theo sau là average.

12.Formulating Algorithms with Top-Down, Stepwise Refinement : Case Study 2 (Sentinel – Controlled Repetition)
Bây giờ chúng ta sẽ tổng quát hóa chương trình tính điểm trung bình như sau: chương trình sẽ tính điểm trung bình của nhiều học sinh bất kỳ . Như vậy trong vd trước số học sinh chỉ là 10, còn trong vd này thì sẽ không biết trước số học sinh. Như vậy làm sao biết để kết thúc chương trình? Làm sao để chương trình biết là tính trung bình rồi in ra kết quả.
Có một cách để có thể qiải quyết vấn đề này, đó là chúng ta sẽ qui định một giá trị đặc biệt mà khi người dùng nhập vào thì chương trình sẽ kết thúc. Ta gọi giá trị này là lính canh hay cờ hiệu. Như vậy người dùng sẽ nhập điểm của học sinh thoải mái, khi nào muốn dừng lại họ chỉ cần nhập giá trị của lính canh vào. Trong ví dụ này chúng ta sẽ chọn giá trị cho lính canh là -1. Người dùng sẽ nhập các điểm lần lượt như sau : 95, 96, 75,74,89 và -1 để kết thúc chương trình. Chương trình sẽ chỉ tính trung bình của các giá trị 95,95,75,74 và 89 rồi in ra kết quả, giá trị lính canh -1 sẽ không được tính trung bình.
Khi giải quyết các vấn đề phức tạp giống như trong ví dụ này thì mã giả có thể sẽ không rõ ràng, mách lạc. Do đó chúng ta sẽ giải quyết theo cách từ cao đến thấp – phương pháp bậc thang. Kỹ thuật này rất hữu dụng cho việc phát triển thuật toán. Chúng ta sẽ bắt đầu mã giả ở điểm cao nhất, đơn giản nhất:
Tính điểm trung bình của học sinh
Điểm trên cùng này thường bao hàm tất cả các vấn đề có liên quan đến bài toán. Tuy nhiên ở điểm trên cùng này thì rất hiếm khi chứa đầy đủ các ch tiết để ta có thể viết thành một chương trình hoàn chỉnh. Do đó chúng ta phải phân tích từng bước rồi chia ra làm nhiều giai đoạn nhỏ hơn để dễ thực hiện hơn. Chúng ta đi bước đầu tiên :
Khởi tạo giá trị cho các biến
Nhập điểm, tính tổng , đếm số lần đã nhập điểm.
Tính trung bình rồi in ra kết quả.
Ở đây chúng ta có nhiều công đoạn cần phải làm, chúng ta nên làm theo trình tự sao cho xong một thứ rồi mới đến cái khác. Và theo như thuật toán bậc thang ta sẽ lamd\f theo trình tự từ trên xuống. Chúng ta đi tiếp bước thứ hai :
Khởi tạo các giá trị cho biến
Có thể được thực hiện chi tiết như sau:
Gán giá trị ban đầu cho biến total bằng 0
Gán giá trị ban đầu cho biến counter bằng 0
Chú ý rằng chỉ có hai biến total và counter mới được khởi tạo giá trị ban đầu trước khi sử dụng. Các biến khác dùng để tính trung bình hay chứa giá trị nhập vào từ người dùng sẽ không cần thiết phải khởi tạo giá trị ban đầu vì giá trị cuối cùng của chúng không phụ thuộc vào giá trị ban đầu giống như trường hợp của total và counter.
Đoạn mã giả
Nhập,tính tổng, đếm số lần đã nhập điểm.
Muốn thực hiện đoạn mã này chúng ta phải sử dụng vòng lặp. Vì chúng ta không biết người dùng sẽ nhập vào bao nhiêu số điểm, do đó ta sẽ sử dụng lính canh. Khi người dùng nhập điểm xong, muốn kết thúc để chương trình tính trung bình, họ sẽ nhập vào giá trị của lính canh. Ta sẽ có đoạn mã giả sau:
Nhập điểm lần thứ nhất ( có thể nhập giá trị của lính canh luôn )

While người dùng chưa nhập giá trị của lính canh
Cộng grade vào total
Cộng 1 vào Counter
Nhập điểm kế tiếp (có thể nhập giá trị lính canh)
Tiếp theo là đoạn mã giả sau:
Tính điểm trung bình rồi in ra kết quả
Sẽ được thực hiện chi tiết như sau:
If counter khác 0
Gán giá trị average bằng total chia cho counter
In kết quả ra màn hình
Else
In ra “Không có điểm được nhập vào”

Như vậy tổng hợp lại chúng ta sẽ có đoạn mã giả hoàn chỉnh:

Gán giá trị ban đầu cho biến total bằng 0
Gán giá trị ban đầu cho biến counter bằng 0

Nhập điểm lần thứ nhất ( có thể nhập giá trị của lính canh luôn)

While người dùng chưa nhập giá trị của lính canh
Cộng grade vào total
Cộng 1 vào Counter
Nhập điểm kế tiếp (có thể nhập giá trị lính canh)

If counter khác 0
Gán giá trị average bằng total chia cho counter
In kết quả ra màn hình
Else
In ra “Không có điểm được nhập vào”

Như vậy đoạn mã giả của chúng ta được xây dựng trên ba bậc thang, trong các ví dụ khác còn có thể nhiều hơn nữa. Bây giờ chúng ta sẽ chuyển đoạn mã giả sang ngôn ngữ VB :
1 ' ClassAverage2.vb
2 ' Sử dụng lính canh
3 ' để tính điểm trung bình.
4
5 Module modClassAverage
6
7 Sub Main()
8 Dim total As Integer ' Tổng điểm
9 Dim gradeCounter As Integer ' Biến đếm
10 Dim grade As Integer ' biến lưu điểm nhập vào
11 Dim average As Double ' điểm trung bình
12
13 ' Đoạn khởi tạo giá trị cho biến
14 total = 0 ' đặt giá trị ban đầu cho total
15 gradeCounter = 0 ' chuẩn bị cho vòng lặp
16
17 ' giai đoạn xử lý
18 ' nhập điểm từ người dùng rồi gán cho grade
19 Console.Write("Nhập điểm vào, -1 để thoát: ")
20 grade = Console.ReadLine()
21
22 ' thực hiện vòng lăp với -1 là giá trị lính canh
23 While grade <> -1
24 total += grade ' cộng gradeValue vào total
25 gradeCounter += 1 ' cộng 1 vào grade
26
27 ' nhập điểm vào từ người dùng
28 Console.Write("Nhập điểm vào,-1 để thoát: ")
29 grade = Console.ReadLine()
30 End While
31
32 ' giai đoạn kêt thúc
33 If gradeCounter <> 0 Then
34 average = total / gradeCounter
35
36 ' in ra điểm trung bình
37 Console.WriteLine()
38 Console.WriteLine("Điểm trung bình {0:F}", average)
39 Else ' không có điểm nào được nhập vào
40 Console.WriteLine("Không có điểm nào được nhập vào")
41 End If
42
43 End Sub ' Main
44
45 End Module ' modClassAverage

Khi thực hiện chương trình:
Nhập điểm vào, -1 để thoát: 97
Nhập điểm vào, -1 để thoát: 88
Nhập điểm vào, -1 để thoát: 72
Nhập điểm vào, -1 để thoát: -1
Điểm trung bình 85.67

Ở dòng 11 chúng ta khai báo biến average kiểt Double để chứa giá trị trung bình của các học sinh, thường là số thập phân. Dòng 15 sẽ khởi tạo giá trị ban đầu cho gradeCounter là 0. Và để bảo đảm chính xác bao nhiêu điểm đã được nhập vào thì giá trị của grade chỉ tăng lên khi có một điểm hợp lệ được nhập vào, không phải là lính canh.
Các bạn chú ý ở vd này khác với vd trước, chúng ta sẽ nhập điểm đầu tiên ở ngoài vòng lặp. Sau đó vòng lặp mới xét điều kiện, nếu điều kiện sai, tức là người dùng đã nhập vào giá trị lính canh thì không thực hiện vòng lặp. ngược lại thì sẽ thực hiện các câu lệnh: cộng grade vào total, cộng 1 vào gradeCounter, và yêu cầu nhập điểm tiếp. Khi chương trình thực hiện tới câu lệnh End While sẽ tự động chuyển lên trên và kiểm tra điều kiện của vòng lặp với giá trị mới nhập vào, nếu đúng thì tiếp tục vòng lặp, nếu sai sẽ nhảy xuống cấu câu lệnh ở dòng 33 để kiểm tra , in kết quả rồi kết thúc chương trình.
Có một điều các bạn nên lưu ý, số thập phân thường có số không đúng tới 100%, lấy vd 10/3 thì sẽ được 3.33333… Do đó số thập phân có thể lấy gần đúng, thông thường lấy khoảng hia ba chữ số sau dấu thập phân. Ở trong chương trình của chúng ta sử dụng sẵn định dạng do VB cung cấp {0:F} , và VB cũng cung cấp nhiều kiểu khác mà chúng ta sẽ được học ở chương sau : điều khiển cấu trúc phần 2.

vanlang
11-07-2003, 14:22
he he .. cám ơn bác nhưng mà lắm thầy thì rầy ma ... thui để tui làm một mình cho chắc ăn .. tui sẽ cố cập nhập mỗi ngày lun

vanlang
12-07-2003, 14:52
13.Formulating Algorithms with top-down, Stepwise Refinement: Case study 3 (Nested Control Structures)
Bây giờ chúng ta sẽ giải quyết một vấn đề khác và cũng sẽ sử dụng mã giả với phương pháp bậc thang để phân tích. Chúng ta có yêu cầu như sau: ở một trường học chuẩn bị cho học sinh thi. Trường này muốn tính số học sinh đậu rớt để thống kê. Yêu cầu phải viết một chương trình để tính kết quả đạt được. Bạn sẽ có một danh sách 10 học sinh và cứ mỗi học sinh sẽ được đánh dấu “D” hay “R”.
Chương trình của chúng ta có thể được phân tích như sau:
1. Chương trình hiện lên yêu cầu “Nhập kết quả” và sẽ nhập vào dữ liệu từ người dùng.
2. Đếm số đậu và rớt.
3. In ra kết quả : bao nhiêu đậu , bao nhiêu rớt.
4. Nếu đậu hơn 8 học sinh thì in ra “Dạy tốt”
Như vậy chương trình sẽ phải xử lý các vấn đề sau:
1. Xử lý kết quả cho 10 học sinh
2. Xử lý các ký tự string “D” và “R” (không phải “D”)
3. Sử dụng hai biến để đếm số đậu và rớt.
4. Sau khi xử lý xong kết quả, chương trình sẽ xử lý thêm phần dạy tốt.

Bây giờ chúng ta sẽ sử dụng mã giả với phương pháp bậc thang ở điểm trên cùng:
Phân tích kết quả đậu và xử lý phần dạy tốt
Chuyển sang các bước nhỏ:
Khởi tạo các biến
Nhập kết quả và đếm số đậu, rớt
In ra kết quả và xử lý trường hợp dạy tốt.
Phân tích từng trường hợp:
Khởi tạo các biến
Có thể phân tích ra:
Khởi tạo biến passes (để đếm số đậu) bằng 0
Khởi tạo biến failures (đếm số rớt) bằng 0
Khởi tạo biến đếm counter bằng 0
Tiếp đến đoạn mã giả:
Nhập vào kết quả và đếm số đậu, số rớt.
Đoạn mã này sẽ xử dụng vòng lặp để nhập kết quả của kỳ thi. Chúng ta có đoạn mã giả sau:
While counter nhở hơn hay bằng 10
Nhập vào kết quả kỳ thi

If học sinh đậu
Cộng 1 vào passes
Else
Cộng 1 vào failures

Cộng 1 vào counter
Các bạn nên để trước câu lệnh If/Then để chương trình dễ đọc hơn. Tiếp đến là đoạn mã giả :
In ra kết quả và xử lý trường hợp dạy tốt
Có thể phân tích như sau:
In ra số đậu
In ra số rớt

If nhiều hơn 8 học sinh đậu
In ra “Dạy tốt”
Và chúng ta sẽ có được mã giả hoàn chỉnh như sau:
Khởi tạo biến passes (để đếm số đậu) bằng 0
Khởi tạo biến failures (đếm số rớt) bằng 0
Khởi tạo biến đếm counter bằng 0

While counter nhở hơn hay bằng 10
Nhập vào kết quả kỳ thi

If học sinh đậu
Cộng 1 vào passes
Else
Cộng 1 vào failures

Cộng 1 vào counter

In ra số đậu
In ra số rớt

If nhiều hơn 8 học sinh đậu
In ra “Dạy tốt”

Mã của chương trình VB như sau:
1 ' Analysis.vb
2 ' Chương trình xử lý kết quả kỳ thi
3
4 Module modAnalysis
5
6 Sub Main()
7 Dim passes As Integer = 0 ' số đậu
8 Dim failures As Integer = 0 ' số rớt
9 Dim student As Integer = 1 ' đếm số học sinh
10 Dim result As String ' kết quả
11
12 ' Giai đoạn thực hiện
13 While student <= 10
14 Console.Write("Nhập kết quả (D = Đậu,R = Rớt): ")
15 result = Console.ReadLine()
16
17 ' cấu trúc lồng nhau
18 If result = "P" Then
19 passes += 1 ' Tăng số đậu
20 Else
21 failures += 1 ' Tăng số rớt
22 End If
23
24 student += 1 ' Tăng số học sinh
25 End While
26
27 ' In ra kết quả
28 Console.WriteLine("Đậu: {0}{1}Rớt: {2}",passes, _
29 vbCrLf, failures)
30
31 ' Xử lý trường hợp dạy tốt
32 If passes > 8 Then
33 Console.WriteLine("Dạy tốt")
34 End If
35
36 End Sub ' Main
37
38 End Module ' modAnalysis

14.Formulating Algorithms with Top-down, stepwise refinement, Case study 4 (Nested Repetition Structures).
Chúng ta sẽ thực hiện thêm một ví dụ nữa trước khi chuyển sang ứng dụng windows. Và cũng như các ví dụ khác chúng ta cũng sẽ sử dụng phương pháp bậc thang để phân tích. Yêu cầu của chúng ta như sau : viết một chương trình vẽ hình vuông trong cửa sổ command với ký tự “*” . Cạnh của hình vuông sẽ do người dùng nhập vào.
Chương trình sẽ thực hiện công việc sau:
1. Nhập vào cạnh của hình vuông
2. Xử lý độ dài, chỉ yêu cầu nhở hơn hay bằng 20.
3. Sử dụng vòng lặp để vẽ với ký tự “*”
Phân tích chương trình:
1. Chương trình sẽ vẽ n dòng, mỗi dòng có n ký tự “*”, chúng ta sẽ sử dụng vòng lặp để giải quyết.
2. Kiểm tra xem n có nhỏ hơn hay bằng 20 hay không.
3. Ta sẽ sử dụng 3 biến trong chương trình – 1 cho độ dài của cạnh, 1 cho dòng và 1 cho cột.
Bây giờ chúng ta sẽ sử dụng mã giả để phân tích – bước trên cùng:
Vẽ một hình chữ nhật với ký tự “*”
Cần nhắc lại là bước đầu tiên này luôn đại diện cho một chương trình, do đó chúng ta sẽ phân tích thành các bước nhỏ hơn:
Khởi tạo các biến
Nhập vào độ dài của hình vuông
Xử lý độ dài và kiểm tra xem nó nhỏ hơn hay bằng 20 hay không
Vẽ hình vuông.
Đoạn mã giả:
Khởi tạo biến
Có thể được chi tiết hóa như sau:
Khởi tạo biến row bằng 1
Khởi tạo biến side bằng giá trị nhập vào từ người dùng
Tiếp đến đoạn mã:
Xử lý độ dài và kiểm tra xem nó có lớn hơn hay bằng 20 hay không
Sẽ xử lý giá trị lấy được từ người dùng , ta có đoạn mã:
Kiểm tra xem giá trị của side có nhỏ hơn hay bằng 20 không
Sẽ được thay bằng:
If side nhỏ hơn hay bằng 20
Sau khi kiểm tra điều kiện ,nếu sai sẽ bỏ qua ,nếu đúng sẽ thực hiện đoạn mã:
Vẽ hình vuông
Chúng ta sẽ sử dụng vòng lặp để vẽ hình vuông. Thuật toán sẽ vẽ n dòng chứa n ký tự “*” :
Gán giá trị cho biến column bằng 1

While column nhỏ hơn hay bằng side
In ra ký tự “*”
Cộng 1 vào column

Trở về đầu dòng kế tiếp
Cộng 1 vào row
Như vậy thuật toán sẽ vẽ hết ký tự “*” trên cùng một dòng, sau đó xuống dòng và vẽ tiếp, cứ như thế cho hết hình vuông. Chúng ta có đoạn mã hoàn chỉnh như sau:
Khởi tạo biến row bằng 1
Khởi tạo biến side bằng giá trị nhập vào từ người dùng

If side nhỏ hơn hay bằng 20

While row nhỏ hơn hay bằng side
Gán giá trị cho biến column bằng 1

While column nhỏ hơn hay bằng side
In ra ký tự “*”
Cộng 1 vào column

Trở về đầu dòng kế tiếp
Cộng 1 vào row
Else in ra “Độ dài cạnh lớn quá”

Chuyển mã giả sang ngôn ngữ VB như sau:
1 ' PrintSquare.vb
2 ' Chương trình vẽ hình vuông với ký tự *.
3
4 Module modPrintSquare
5
6 Sub Main()
7 Dim side As Integer ' cạnh của hình vuông
8 Dim row As Integer = 1 ' dòng hiện tại
9 Dim column As Integer ' cột hiện tại
10
11 ' lấy độ dài cạnh từ ngưòi dùng
12 Console.Write("Nhập độ dài cạnh (<= 20 ): ")
13 side = Console.ReadLine()
14
15 If side <= 20 Then ' Nếu đúng mới thực hiện tiếp
16
17 ' lệnh While được lồng trong lệnh IF
18 While row <= side ' Điều khiển dòng
19 column = 1
20
21 ' vòng lặp in ra 1 dòng ký tự “*”
22 ' lệnh này lại lồng trong While ở trên
23 While column <= side
24 Console.Write("* ") ' in ra ký tự *
25 column += 1 ' tăng 1 cho column
26 End While
27
28 Console.WriteLine() ' chuyển vị trí con trỏ xuống dòng dưới
29 row += 1 ' tăng 1 cho row
30 End While
31
32 Else ' nếu điều kiện sai (side >20)
33 Console.WriteLine("Độ dài lớn quá")
34 End If
35
36 End Sub ' Main
37
38 End Module ' modPrintSquare
Chương trình sẽ in ra:
Nhập độ dài cạnh (<= 20 ): 8
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *

attilathehun
12-07-2003, 21:16
he he .. cám ơn bác nhưng mà lắm thầy thì rầy ma ... thui để tui làm một mình cho chắc ăn .. tui sẽ cố cập nhập mỗi ngày lun

à bác định xỏ hả :)
tui dịch cũng chẳng kém đâu. Nhưng mà đúng là lắm thầy nhiều ma thật ^_^
Vậy bác đưa tui dịch cuốn khác cho, mỗi người một cuốn

xeko
12-07-2003, 23:24
Cám ơn các bác đã có lòng dịch hộ mọi người.

vanlang
13-07-2003, 11:33
13.Formulating Algorithms with top-down, Stepwise Refinement: Case study 3 (Nested Control Structures)
Bây giờ chúng ta sẽ giải quyết một vấn đề khác và cũng sẽ sử dụng mã giả với phương pháp bậc thang để phân tích. Chúng ta có yêu cầu như sau: ở một trường học chuẩn bị cho học sinh thi. Trường này muốn tính số học sinh đậu rớt để thống kê. Yêu cầu phải viết một chương trình để tính kết quả đạt được. Bạn sẽ có một danh sách 10 học sinh và cứ mỗi học sinh sẽ được đánh dấu “D” hay “R”.
Chương trình của chúng ta có thể được phân tích như sau:
1. Chương trình hiện lên yêu cầu “Nhập kết quả” và sẽ nhập vào dữ liệu từ người dùng.
2. Đếm số đậu và rớt.
3. In ra kết quả : bao nhiêu đậu , bao nhiêu rớt.
4. Nếu đậu hơn 8 học sinh thì in ra “Dạy tốt”
Như vậy chương trình sẽ phải xử lý các vấn đề sau:
1. Xử lý kết quả cho 10 học sinh
2. Xử lý các ký tự string “D” và “R” (không phải “D”)
3. Sử dụng hai biến để đếm số đậu và rớt.
4. Sau khi xử lý xong kết quả, chương trình sẽ xử lý thêm phần dạy tốt.

Bây giờ chúng ta sẽ sử dụng mã giả với phương pháp bậc thang ở điểm trên cùng:
Phân tích kết quả đậu và xử lý phần dạy tốt
Chuyển sang các bước nhỏ:
Khởi tạo các biến
Nhập kết quả và đếm số đậu, rớt
In ra kết quả và xử lý trường hợp dạy tốt.
Phân tích từng trường hợp:
Khởi tạo các biến
Có thể phân tích ra:
Khởi tạo biến passes (để đếm số đậu) bằng 0
Khởi tạo biến failures (đếm số rớt) bằng 0
Khởi tạo biến đếm counter bằng 0
Tiếp đến đoạn mã giả:
Nhập vào kết quả và đếm số đậu, số rớt.
Đoạn mã này sẽ xử dụng vòng lặp để nhập kết quả của kỳ thi. Chúng ta có đoạn mã giả sau:
While counter nhở hơn hay bằng 10
Nhập vào kết quả kỳ thi

If học sinh đậu
Cộng 1 vào passes
Else
Cộng 1 vào failures

Cộng 1 vào counter
Các bạn nên để trước câu lệnh If/Then để chương trình dễ đọc hơn. Tiếp đến là đoạn mã giả :
In ra kết quả và xử lý trường hợp dạy tốt
Có thể phân tích như sau:
In ra số đậu
In ra số rớt

If nhiều hơn 8 học sinh đậu
In ra “Dạy tốt”
Và chúng ta sẽ có được mã giả hoàn chỉnh như sau:
Khởi tạo biến passes (để đếm số đậu) bằng 0
Khởi tạo biến failures (đếm số rớt) bằng 0
Khởi tạo biến đếm counter bằng 0

While counter nhở hơn hay bằng 10
Nhập vào kết quả kỳ thi

If học sinh đậu
Cộng 1 vào passes
Else
Cộng 1 vào failures

Cộng 1 vào counter

In ra số đậu
In ra số rớt

If nhiều hơn 8 học sinh đậu
In ra “Dạy tốt”

Mã của chương trình VB như sau:
1 ' Analysis.vb
2 ' Chương trình xử lý kết quả kỳ thi
3
4 Module modAnalysis
5
6 Sub Main()
7 Dim passes As Integer = 0 ' số đậu
8 Dim failures As Integer = 0 ' số rớt
9 Dim student As Integer = 1 ' đếm số học sinh
10 Dim result As String ' kết quả
11
12 ' Giai đoạn thực hiện
13 While student <= 10
14 Console.Write("Nhập kết quả (D = Đậu,R = Rớt): ")
15 result = Console.ReadLine()
16
17 ' cấu trúc lồng nhau
18 If result = "P" Then
19 passes += 1 ' Tăng số đậu
20 Else
21 failures += 1 ' Tăng số rớt
22 End If
23
24 student += 1 ' Tăng số học sinh
25 End While
26
27 ' In ra kết quả
28 Console.WriteLine("Đậu: {0}{1}Rớt: {2}",passes, _
29 vbCrLf, failures)
30
31 ' Xử lý trường hợp dạy tốt
32 If passes > 8 Then
33 Console.WriteLine("Dạy tốt")
34 End If
35
36 End Sub ' Main
37
38 End Module ' modAnalysis

vanlang
13-07-2003, 11:37
14.Formulating Algorithms with Top-down, stepwise refinement, Case study 4 (Nested Repetition Structures).
Chúng ta sẽ thực hiện thêm một ví dụ nữa trước khi chuyển sang ứng dụng windows. Và cũng như các ví dụ khác chúng ta cũng sẽ sử dụng phương pháp bậc thang để phân tích. Yêu cầu của chúng ta như sau : viết một chương trình vẽ hình vuông trong cửa sổ command với ký tự “*” . Cạnh của hình vuông sẽ do người dùng nhập vào.
Chương trình sẽ thực hiện công việc sau:
1. Nhập vào cạnh của hình vuông
2. Xử lý độ dài, chỉ yêu cầu nhở hơn hay bằng 20.
3. Sử dụng vòng lặp để vẽ với ký tự “*”
Phân tích chương trình:
1. Chương trình sẽ vẽ n dòng, mỗi dòng có n ký tự “*”, chúng ta sẽ sử dụng vòng lặp để giải quyết.
2. Kiểm tra xem n có nhỏ hơn hay bằng 20 hay không.
3. Ta sẽ sử dụng 3 biến trong chương trình – 1 cho độ dài của cạnh, 1 cho dòng và 1 cho cột.
Bây giờ chúng ta sẽ sử dụng mã giả để phân tích – bước trên cùng:
Vẽ một hình chữ nhật với ký tự “*”
Cần nhắc lại là bước đầu tiên này luôn đại diện cho một chương trình, do đó chúng ta sẽ phân tích thành các bước nhỏ hơn:
Khởi tạo các biến
Nhập vào độ dài của hình vuông
Xử lý độ dài và kiểm tra xem nó nhỏ hơn hay bằng 20 hay không
Vẽ hình vuông.
Đoạn mã giả:
Khởi tạo biến
Có thể được chi tiết hóa như sau:
Khởi tạo biến row bằng 1
Khởi tạo biến side bằng giá trị nhập vào từ người dùng
Tiếp đến đoạn mã:
Xử lý độ dài và kiểm tra xem nó có lớn hơn hay bằng 20 hay không
Sẽ xử lý giá trị lấy được từ người dùng , ta có đoạn mã:
Kiểm tra xem giá trị của side có nhỏ hơn hay bằng 20 không
Sẽ được thay bằng:
If side nhỏ hơn hay bằng 20
Sau khi kiểm tra điều kiện ,nếu sai sẽ bỏ qua ,nếu đúng sẽ thực hiện đoạn mã:
Vẽ hình vuông
Chúng ta sẽ sử dụng vòng lặp để vẽ hình vuông. Thuật toán sẽ vẽ n dòng chứa n ký tự “*” :
Gán giá trị cho biến column bằng 1

While column nhỏ hơn hay bằng side
In ra ký tự “*”
Cộng 1 vào column

Trở về đầu dòng kế tiếp
Cộng 1 vào row
Như vậy thuật toán sẽ vẽ hết ký tự “*” trên cùng một dòng, sau đó xuống dòng và vẽ tiếp, cứ như thế cho hết hình vuông. Chúng ta có đoạn mã hoàn chỉnh như sau:
Khởi tạo biến row bằng 1
Khởi tạo biến side bằng giá trị nhập vào từ người dùng

If side nhỏ hơn hay bằng 20

While row nhỏ hơn hay bằng side
Gán giá trị cho biến column bằng 1

While column nhỏ hơn hay bằng side
In ra ký tự “*”
Cộng 1 vào column

Trở về đầu dòng kế tiếp
Cộng 1 vào row
Else in ra “Độ dài cạnh lớn quá”

Chuyển mã giả sang ngôn ngữ VB như sau:
1 ' PrintSquare.vb
2 ' Chương trình vẽ hình vuông với ký tự *.
3
4 Module modPrintSquare
5
6 Sub Main()
7 Dim side As Integer ' cạnh của hình vuông
8 Dim row As Integer = 1 ' dòng hiện tại
9 Dim column As Integer ' cột hiện tại
10
11 ' lấy độ dài cạnh từ ngưòi dùng
12 Console.Write("Nhập độ dài cạnh (<= 20 ): ")
13 side = Console.ReadLine()
14
15 If side <= 20 Then ' Nếu đúng mới thực hiện tiếp
16
17 ' lệnh While được lồng trong lệnh IF
18 While row <= side ' Điều khiển dòng
19 column = 1
20
21 ' vòng lặp in ra 1 dòng ký tự “*”
22 ' lệnh này lại lồng trong While ở trên
23 While column <= side
24 Console.Write("* ") ' in ra ký tự *
25 column += 1 ' tăng 1 cho column
26 End While
27
28 Console.WriteLine() ' chuyển vị trí con trỏ xuống dòng dưới
29 row += 1 ' tăng 1 cho row
30 End While
31
32 Else ' nếu điều kiện sai (side >20)
33 Console.WriteLine("Độ dài lớn quá")
34 End If
35
36 End Sub ' Main
37
38 End Module ' modPrintSquare
Chương trình sẽ in ra:
Nhập độ dài cạnh (<= 20 ): 8
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *

15 Introduction to Windows Application Programming
Chúng ta sẽ thực hiện một chương trình như sau



Các bạn làm từng bước trong môi trường Visual Studio .NET:
1. Tạo một ứng dụng mới : Nếu đã có một ứng dụng đang mở, chọn File > Close Solution để đóng ứng dụng đó lại. Một hộp thoại sẽ được mở ra hỏi bạn có save lại nếu ứng dụng đó chưa save hay không, nhấn chọn Yes để save tất cả lại. Để tạo ứng dụng mới chọn File > New > Project (hay nhấn vào button New project ở màn hình Getting start) .. hộp thoại New project sẽ hiện ra .Chọn Visual basic project , sau đó chọn windowns application. Đánh tên chương trình vào là Asimpleprogram, sau đó nhấn Ok để tạo ứng dụng. Visual Studio sẽ tạo ra một ứng dụng đơn giản với tên form1.


2. Chọn chọn chữ cho thanh tiêu đề : Chọn cửa sổ Properties bên cạnh màn hình soạn thảo, chọn tiếp phần Text gõ vào : A Simple Program, nhấn Enter khi hoàn thành. Dòng chữ trên thanh tiêu đề đã được thay đổi.

3. Thay đổi kíck cỡ của Form: Nhấn vào ô vuông nhỏ dưới Form rồi thay đổi kích thước của Form giống hình bên dưới. Trên form có các ô lưới (Grid) chỉ có lập trình viên lúc thiết kế mới thấy, khi chạy ứng dụng sẽ không thấy.

4. Thay đổi màu nền cho Form: Chọn thuộc tính backColor trong của sổ Properties, bảng màu hiện ra với 3 tab : Web , Custom, System. Chọn màu Xanh nhạt như hình :

5. Thêm nhãn vào trong Form: nhấn vào Windows Form trong phần ToolBox, chọn Label, click 2 lần để đưa vào form. Mặc định chữ của label là Label1 và màu nền sẽ trùng với màu nền của form.

6. Thay đổi label: Click vào label, sau đó chọn của sổ Properties, thay thế phần text bằng : Welcome to Visual Basic ! Sau đó thay đổi cỡ của label nếu phần Text không hiện hết ra. Sau đó canh lề giữa cho label : Format > Center in Form > Horizontally. Form của chúng ta sẽ giống với hình :

7. Thay đổi cỡ chữ và canh lề trong Label : Trong cửa sổ properties , chọn Font, nhấn vào nút ba chấm, chọn font MS Sans Serif, Regular, side 24, nhấn Ok. Chọn tiếp phần TextAlign chọn phần trên ở chính giữa (top-center).


8. Thêm hình ảnh vào Form: Chọn pictureBox trong phần ToolBox, click hai lần để đưa vào Form, hoặc kéo nó rồi thả vào Form.
9. Chèn hình vào : trong cửa sổ properties, chọn Image, nhấn vào nút ba chấm để thêm hình ảnh, các file được cho phép : PNG(Portable Network Graphic) ,GIF ( Graphic Interchange Format ) ,JPEG ( Joint PhotoGraphic Experts Group) và BMP ( Windows bitmap). Sau khi chọn ảnh xong, trong phần SideMode chọn Streng-Image để cho ảnh vừa với pictureBox, sau đó chỉnh cho pictureBox lớn lên.
10. Save chương trình : Nhấn File > Save All (hoặc nhấn nút Save All).




11.Chạy chương trình : Chọn Debug > start without debuging
12.Kết thúc chương trình : nhấn vào nút close bên trên góc phải của form để kết thúc chương trình.


Bây giờ các bạn đổi tên form1.vb thành AsimpleProgram.vb ở trong cửa sổ Solution Explorer,ở phần Text trong Properties đổi tên form1 thành frmASimpleProgram, đổi tên label1 thành lblWelcome, và picturebox thành PicBug. Khác với ứng dụng console , mã của ứng dụng windows sẽ không hiện ra sẵn, các bạn nhấn chuột phải lên form chọn view > code để hiển thị tab code.
Mọi ứng dụng windows đều có thừa kế từ lớp Forn của thư viện .NET với system.Windows.Form namespace. Như vậy chương trình của chúng ta cũng thừa kế cái namespace này , và được nhập vào với từ khóa Inherits . Vì form được gọi là lớp cơ bản, lớp gốc (Base class) nên form AsimpleProgram của chúng ta sẽ là lớp phát sinh từ gốc ( subclass). Form của chúng ta tất cả đều sử dụng các thuộc tính và các hàm từ Form.Trong thực tế Form có khoảng 400 hàm, và trong chương trình của chúng ta chỉ sử dụng một hàm Main. Hic.. bạn đã có thể hình dung ra việc tạo Form cơ bản như thế nào chưa(rất là đau khổ ) , và việc thừa kế đã giúp cho lập trình viên tạo ra form rất dễ dàng và nhanh chóng (khỏe ghê hen).

Trong cửa sổ soạn thảo bạn hãy để ý đến dòng chữ Windows Form Designer generated code, nó được để màu xám và đặt nằm trong một cái khung. Đấy là những đoạn mã đã được che bớt đi , và mặc dù vậy nó vẫn là một phần của chương trình. Nó được tạo ra bởi IDE để tạo ra các form. Các bạn hãy click vào đấy để coi mã của nó. Đoạn mã này đã được IDE tạo sẵn nên sẽ không cần phải tạo bởi các lập trình viên, và nó rất quan trọng cho lập trình viên mới hoàn toàn chưa có kinh nghiệm, mặc dù một sỗ mã sẽ chưa được giải thích cho đến khi học các chương sau. Và đoạn mã này luôn có mặt trong mọi ứng dụng windows. Nếu IDE không cung cấp đoạn mã này mà lập trình viên phải ngồi viết thì thật kinh khủng,nó sẽ ngốn rất nhiều thời gian của chúng ta. Do phần lớn đoạn mã này sẽ chưa được giải thích nên bạn cũng đừng mong đợi sẽ hiểu nó làm việc như thế nào, mà chúng ta sẽ được học ở các chương tiếp theo.


Trong cửa sổ Properties của label các bạn gõ vào dòng chữ : “Deitel and ssociates”

Sau đó tìm trong đoạn mã tạo bởi IDE , kiếm phần Me.lblWelcome.Text, đổi String “Deitel and ssociates” thành “Visual Basic .NET”, dòng text của label sẽ được thay đổi ngay lập tức, các bạn mở porperties của label ra :



Bây giờ chúng ta sẽ thay đổi đoạn Text này trong lúc chạy chương trình: click 2 lần vào form ở chế độ view design để chuyển sang code với hàm FrmASimpleProgram_Load sẽ được tạo ra, chú ý đây không phải là một phần của Windows Form Designer generated code. Chúng ta thêm vào dòng lệnh sau : lblWelcome.text = “Visual basic”, chú ý rằng sau khi bạn gõ dấu chấm sau phần lblWelcome chế độ cảm ứng thông minh của VS sẽ tự động hiện lên một danh sách các hàm và bạn chỉ việc chọn phần Text rồi click 2 lần.


Kiểm tra kết quả: chú ý rằng hiện nay chương trình đang hiện dòng chữ “Visual basic .NET” ở label. Bạn chọn Built > Built Solution sau đó chọn Debug > Star để chạy chương trình.

Nhấn và nút close để dừng chương trình. Chúng ta đã hoàn thành chương này. Các bạn đón đọc chương kế tiếp.Thân.




bài này có nhìu hình wé .. tui hổng up lên được bà con chịu khó down ở đây nhé
www.freewebs.com/vanlang/Chapter 2-con.zip

chipma
14-07-2003, 19:45
Hihi, vanlang đúng là siêng thiệt. Ngoài vanlang ra thì ai muốn dịch thì hãy liên lạc cho tui nha. Chúng ta sẽ thành lập nhóm dịch sách .NET. Mail của tui nè: trannam_dl@yahoo.com

ngaytho
16-07-2003, 02:53
chà hay qua, khi nào VanLang xong chapter2 thì pack nó vào 1 zip file, cho mình dl nhé..vậy cho nó tiện...

vanlang
16-07-2003, 11:41
hic ..chapter 2 thì mình xong rùi ..bữa nào up lên các bạn down ..còn nữa thì ..mình chưa làm :D

ngaytho
16-07-2003, 12:53
có thể upload liền ko ?..còn đợi bữa nào nữa..thanks vanlang

vanlang
16-07-2003, 20:57
ặc ... cái file đó gần 1M .. mà cái ổ A của em nó die mất một sector .. giờ chỉ chép file <500K không hà .. ráng đợi hết tuần này em sẽ úp lên liền .... :D

ngaytho
17-07-2003, 14:08
vậy thì thanks trước nhé..cool..

vanlang
19-07-2003, 19:28
ặc thằng free web chuối quá bà con .. nó hổng cho úp lên file > 700K bà con giúp tôi với ..kiếm cái host nào đó up lên được .. ặc ặc

ngaytho
20-07-2003, 00:02
vanlang vào đăng kí mail15.com đi, rối upload lên đó..sau đó forward đến cho member...của mình là:

ngaytho@mail15.com...


thanks

N1N
22-07-2003, 02:03
vanglang,

chapter one and chapter two I couldn't download.

vanlang
22-07-2003, 08:53
sori bà con .. cám ơn bà con đã ủng hộ .. tui sẽ cố up lên cho bà con liền, đang chờ host của thằng bạn đợi nó cho cái ftp tui sẽ up lên liền... có thể tui sẽ viết tiếp nữa :D
bà con thử down ở đây coi nhé
chapter 1 (http://webmaster.vnsite.net/eBook/chapter1.rar)
chapter 2 (http://webmaster.vnsite.net/eBook/chapter2.rar)

N1N
22-07-2003, 12:03
vanlang,

Chapter on download được, but chapter two doesn't. However, thank you

vanlang
22-07-2003, 15:43
sori để tui làm lại hen
được rùi đó .. bạn down lại thử hen :D ...Thân

chipma
26-07-2003, 16:03
Hic, tui thấy host của brinkster xài được mà, sao ko xài cái đó. Mà đownloa mấy chapter ở đâu dzậy?:)

Cận
29-08-2003, 11:06
Trùi, host Brinkster chán phèo, vừa chậm vừa Upload Web mệt chết :( :(

dcdiep
09-09-2003, 15:23
Sao tôi không thể kiếm ra chapter1&2 được. Cái freeweb gì đó đâu có xài được. Nó link về lại DĐTH mà

vanlang
10-09-2003, 09:36
www.tuoitrevungtau.com .... mình có hết bài + hình ảnh trên đó .. hiện giờ đang đi học nên chả có thời gian mà làm tiếp .. :D

lily
10-09-2003, 14:01
Minh cung mong doi phan 4 ma khong thay o trong veb tuoitre vungtau.com.
Va cung co thac mac ve phan giai cua bai tap vb cua bai sandwich
shop. Ban nao biet thi lam on post loi giai + loi giai thich ro rang voi! Da ta

hoangkhanh
18-09-2003, 09:50
Quí vị nào ở TP thì rảnh rỗi chạy ra TGA đi, có cả đống ebook copy về mà nghyên cứu.
Chỉ cần 10' là xong ngay .

Rongkhongcanh
09-10-2003, 15:29
Thông tin về sách tham khảo:
Các bạn có thể đến phòng photo của khoa CNTT trường Đại học Bách Khoa để đặt mua sách photo. Nơi đây thường có sách của họ nhà Deitel.