Bài giảng LINQ – Language Integrated Query

Link bài giảng LINQ  bằng Slide Powerpoint:

http://www.mediafire.com/?ee9qnbhfn02m9f6

Topic này Tôi muốn hướng dẫn các bạn cách lập trình với LinQ, toàn bộ bài giảng đều năm hết trong link download ở trên, rất cụ thể, có đính kèm các ví dụ. Các bạn cố gắng đọc hiểu lý thuyết sau đó nhìn vào các ví dụ Tôi đã đưa ra để làm theo từ đó có thể tự làm các project nâng cao. Trong bài giảng này chủ yếu Tôi tập trung vào LINQ to Object và LINQ to SQL. Để giúp thuận tiện cho việc làm theo ví dụ mẫu Tôi đã nhúng cơ sở dữ liệu Petshop vào trong bài giảng Powerpoint, các bạn double click vào biểu tượng để giải nén sau đó attach vào Sql Server 2008.

Cuối mỗi phần đều có bài tập yêu cầu phải thực hiện, các bạn cố gắng hoàn thành.

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

Slide bài giảng.Net Remoting và 2 ví dụ TcpChannel & HttpChannel

Topic này Tôi muốn gửi tới các bạn tổng quan về .Net Remoting và cách coding.

Trong slide bài giảng này Tôi có đính kèm 2 ví dụ cụ thể về TcpChannelHttpChannel

HttpChannel là ví dụ về viết ứng dụng public Chat room 

Tôi tham khảo từ nhiều nguồn tài liệu và các ví dụ tương đối dễ hiểu từ đó Tôi tổng kết lại thành bài giảng cho các bạn dễ đọc và dễ viết các ví dụ về .Net Remoting.

Các bạn có thể tìm thấy nó trên internet.

Các bạn cố gắng đọc hiểu lý thuyết vì nó rất súc tích. Phần cuối Slide là 2 ví dụ cụ thể, các bạn cố gắng làm theo từng bước để dễ dàng hiểu bài.

Link bài giảng .Net Remoting powerpoint:

http://www.mediafire.com/?li89yqizweca4zt

Link bài giảng .Net Remoting pdf:

http://www.mediafire.com/?tivrxbzxhcd44l0

các bạn có thể vào topic trước đây để lấy tài liệu nâng cao .Net remoting cũng như slide bài giảng của tác giả Brent Rector

http://duythanhcse.wordpress.com/2012/01/18/bai-gi%E1%BA%A3ng-net-remoting-c/

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

Giảm 80% thời gian viết code khi dùng CodeSmith Generator

Topic này Tôi sẽ hướng dẫn các bạn lập trình với công cụ CodeSmith Generator sử dụng Template PLINQO NHibernate (using C#, .net 4.0).

Tôi hi vọng rằng các bạn sẽ có một luồng sinh khí mới về lập trình khi chịu khó xem qua hướng dẫn bên dưới. Tôi đã tổng hợp thành tài liệu tương đối chi tiết về Kiến trúc cũng như cách sử dụng Template cả trong 2 môi trường Web và Winform, các bạn có thể làm theo từng bước trong tài liệu dưới đây:

Link Powerpoint:

http://www.mediafire.com/?ej4n3hww521kvlc

Link Pdf:

http://www.mediafire.com/?8hq2g3h95c9tsja

Link cơ sở dữ liệu mẫu Petshop mà tôi sử dụng trong bài giảng:

http://www.mediafire.com/?19pyp63h5gzc49x, các bạn load về và Attach PetShop.mdf, chú ý là Tôi sử dụng SQL Server 2008

Link download phần mềm CodeSmith Generator (các phiên bản mới nhất):

http://www.codesmithtools.com/downloads

Hoặc các bạn có thể vào link dưới đây để load phiên bản Codesmith_Professional_v5.3.4, phiên bản này đã hỗ trợ tương tác với Visual Studio 2010, có crack (đọc kỹ hướng dẫn)

http://www.mediafire.com/?3q6io5i66a9reh5

Nếu bị vấn đề với v5.3 bạn có thể load v5.2: http://www.mediafire.com/?5u7dkld324a1wsc

Tài liệu trên Tôi nói về kiến trúc và cách sử dụng, nếu các bạn muốn hiểu sâu chi tiết bên trong về cách viết Template thì các bạn có thể load tài liệu trong link này:

http://www.mediafire.com/?e3ozn1uhz611qkr

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

Thiết kế giao diện với DotNetBar

Đây là phiên bản DotNetBar v10.0.0.0.0 (“bản quyền” Crack), hỗ trợ C# và Visual Basic

http://www.mediafire.com/?5dbitlijlizg86g , phiên bản này hỗ trợ giao diện Metro cực kỳ “dễ thương”

Các em load về và cài đặt, khi cài đặt xong sẽ có source code mẫu của tất cả các control. Để sử dụng được các control của DotNetBar các em nhớ add item vào controls box.

Thiết kế giao diện với DotNetBar, giao diện sẽ rất đẹp, dĩ nhiên các em có thể La toáng lên, nhưng có thể nói gọn là :  WOW ! WOW ! WOW!

Link các video hướng dẫn chi tiết cách sử dụng và coding:

http://www.devcomponents.com/dotnetbar/movies.aspx

Hiện tại DotNetBar có rất nhiều công cụ cực mạnh, trong đó có 3 công cụ dưới đây:
Requires with Visual Studio 2003, 2005, 2008, 2010 or 2012.
Requires with Visual Studio 2010 or 2012 and Windows Presentation Foundation.
Requires with Visual Studio 2010 or 2012 and Silverlight.
Dưới đây là một số hình ảnh về các control trong DotnetBar.
Metro User Interface controls with Metro Tiles, toolbars, slide panels, forms, completely automatic color scheme generation for unlimited color themes and more. Make applications using the latest user interface style available today.
Ribbon Control with Black, Silver and Blue color schemes, Backstage Application Menu, Windows Vista Glass support, tab groups, ribbon hyper menus, multi-level KeyTips, complete Quick Access Toolbar (QAT) customization and complete support for Ribbon Menu Tabs Ribbon Bar control with button groups, popups and more
Super Tooltips control with 18 color styles
Document Docking with the most flexible split-view docking engine.Hyper-Menus and Toolbars with Office 2007, VS.NET 2005, Office 2003/XP/2000, Office 2007 style popup Galleries, mini-markup language, Windows XP Theme support, full color customization and  much more…
Navigation Pane Control Office 2007, 2003 style container control with collapse/expand functionality built-in
SuperTabControl 6 different styles, 16 per-tab color schemes, full color customization and much more…
Explorer Bar Control World-class Windows XP style Explorer Bar control…
Tab-Strip Control, with 9 different styles including OneNote, Auto-MDI support for tabbed MDI applications and full color ..
Side Bar Control that has won respect of developers, with 2 layout types, 5 different styles, 18 predefined color schemes, drag & drop support and much more…
BubbleBar control, an elegant toolbar control with easy-to-click buttons that you can’t get anywhere else… We released it first in June 2005.
Bar. Create status bars just like in Office 2007, toolbars etc.
Expandable Splitter Control for intuitive management of screen real-estate.
Multi-functional Panel Control a Who’s Who of panel controls. Multiple functions unlimited possibilities…
Balloon/Alert Control the absolute necessity to communicate important information to your end users.Wizard Control fully featured, completely customizable and flexible Wizard control with RTL support. Adheres to the Wizard97 specification. ButtonX Control stand-alone button control with drop-down menu, Office 2007, Office 2003, VS.NET 2005 and custom color scheme control.Color Picker drop-down in Office 2007 style that can be added to ribbon control, toolbars, menus etc. Includes Custom color creation dialog.Item Panel, a super-flexible control with Office 2007 style, drop-down support and rich layout functionality.Office 2007 Style Forms for consistent Office 2007 look and feel.Office 2007 Style check box and radio button control.Progress bar control in Office 2007, Office 2003 and VS.NET 2005 like style with marquee and standard progress display abilities.MessageBox drop-in replacement in Office 2007 style for consistent user interface look and feel.Drop-in replacement for text box in Office 2007 style with skinned scrollbars, watermark text support and custom button embedded into the text box.Drop-in replacement for combo box in Office 2007 style and watermark text support.GroupPanel replacement for group box in Office 2007 style, skinned scrollbars and text-markup support.Office 2007 style Slider control for consistent user interface look and feel.Office 2007 style ListViewEx control drop-in replacement for ListView control requires no code changes. Not available for .NET Framework 1.0, 1.1.Office 2007 style Label control with complete text-markup support and auto-sizing.DataGridView control in Office 2007 style including headers, rows and scroll-bars and 11 new column types including data-time and numeric editors.Date/Time Picker, control in Office 2007 style with extensive customization options, null value support, custom formatting and much more…Month-Calendar, control in Office 2007 style with easy custom rendering support, multi-selection, per-day image settings and more…Double value input, control with custom value formatting, NULL value support, Office 2007 style and more… Use it for currency entry, percentages or any other decimal values.Integer value input, control with NULL value support, custom buttons, Office 2007 style and more…Reflection Image Control provides great looking reflections for your images, supports disabled state and extensive background and border styling options.Reflection Label Control with text-markup, disabled state and extensive background and border styling options.Horizontal and Vertical Scroll-bar Controls with Office 2007 styling.Advanced Masked Text Box Controls with Office 2007 styling, drop-down support and custom buttons.Advanced TreeView Control with Office 2007 styling, fantastic drag & drop support, multi-selection and multi-column support and more…CrumbBar™ Control bread-crumb space saving horizontal tree control.ComboTree Control ComboBox with drop-down Tree control and Office 2007 style.Rating Control 5 Star rating control with average rating display support and text-markup.WarningBox Control an non-intrusive Office 2007 style warning panel control with text-markup support.IP Address Input Control Highly customizable formatted and free-text based IP Address Input control.Advanced Property Grid Control Easy appearance customization, property name and value mapping, Office 2007, 2010 styling and more…SuperValidator Control Validate user input without writing any code…Highlighter Control Highlight any control, or just focused control, using distinctive border.Commands Component Easy to use Commanding model that helps you separate the User Interface from Application logic. Make sure to check out the RibbonPad sample which demonstrates how to use Commands.Schedule/Calendar control Great looking calendar, scheduling control with multi-resource support and powerful recurring appointments engine.Knob/dial control Customizable knob control with number of built-in visual styles.Switch Button control Great looking and fully customizable switch button.TreeGX control Present hierarchical data in new visually engaging way with TreeGX. You can visualize decision trees, hierarchies, create mind maps or capture and organize ideas, everything within your application using TreeGX.Task-Dialog component that can be used to display information and receive simple input from users. Our task-dialog works anywhere and supports our text-markup for textual headers and content. Micro-Charts item and control for super fast (renders over 2000 new charts/second) micro charts that can be added to toolbars, menus and the Ribbon. Gauge control with linear and circular gauges, full interactivity, multi-bar and multi-gauge support and more. Circular Progress control with 5 visual styles and endless and minimum/maximum progress indicator types. Time selector control for easy time input and 12 and 24 hours time selection support. Also used as part of our DateTimeInput control. Touch keyboard control with multi-touch support, custom layouts and custom rendering.

Cách biểu diễn số âm trong máy tính (phương pháp Bù 2)

Để biểu diễn số Âm trong máy tính thông thường người ta sử dụng phương pháp Bù 2.

Topic này được viết để bổ sung kiến thức cho Topic https://tranduythanh.com/2012/01/01/cac-vi-d%E1%BB%A5-v%E1%BB%81-java-assignment-operator/ (Java Assignment Operator)

Theo phương pháp này, bit cực trái hay còn gọi là bit nằm bên trái cùng của byte được sử dụng làm bit dấu ( là bit tượng trung cho dấu của số – sign bit). Người ta quy ước: Nếu bit dấu là 0 thì số là số dương, nếu bit dấu là 1 thì số là số âm. Ngoài bit dấu này ra, các bit còn lại được dùng để biểu diễn độ lớn của số.

Ví dụ 1:

Tôi lấy số -45 ở hệ thập phân, số này sẽ được biểu diễn trong máy tính theo phương pháp bù 2 như sau ( Tôi chọn mẫu 8 bit):

Bước 1:  Xác định số nguyên 45 ở hệ thập phân được biểu diễn trong máy tính là : 0010 1101

Bước 2: Đảo tất cả các bit nhận được ở bước 1. Kết quả bạn sẽ được: 1101 0010

Bước 3: Cộng thêm 1 vào kết quả thu được ở bước 2. Kết quả sau khi cộng: 1101 0011

Bước 4: Vì là biểu diễn số âm nên bit cực trái luôn giữ là 1.

Vậy với phương phá bù 2, số -45 ở hệ thập phân được biểu diễn trong máy tính như sau: 1101 0011

Ví dụ 2:

Tôi lấy số nguyên -5 ở hệ thập phân, nó sẽ được biểu diễn trong máy tính theo phương pháp bù 2 như sau ( cũng lấy mẫu 8 bit):

Bước 1: Xác định số nguyên 5 ở hệ thập phân được biểu diễn dạng nhị phân trong máy tính như sau: 0000 0101

Bước 2: Đảo tất cả các bit nhận được ở bước 1. Ta được như sau: 1111 1010

Bước 3: Cộng thêm 1 vào kết quả thu được ở bước 2, ta được: 1111 1011.

Bước 4: Vì là biểu diễn số âm nên bit cực trái luôn giữ là 1

Như vậy với phương pháp bù 2 thì số -5 ở hệ thập phân được biểu diễn trong máy tính như sau: 1111 1011

Để giúp các bạn hiểu rõ hơn, Tôi sẽ thực hiện 2 phép cộng số thập phân âm (<0) cho các bạn xem:

Ví dụ 3: Cộng số -5 với số 2 (mẫu 8 bit):

Trước tiên bạn phải đổi -5 thành số nhị phân trong máy tính theo phương pháp Bù 2. Tức là bạn sẽ có số 1111 1011

Số 2 bạn biểu diễn thành nhị phân, bạn cũng sẽ được 0000 0010

Bây giờ Tôi sẽ cộng 2 số nhị phân này lại như sau:

1 1 1 1   1 0 1 1
+
00 00  0 0 1 0
———————-
1  1 1 1  1 1  0 1

Bây giờ tự nhiên Tôi hỏi bạn, số nhị phân 1  1 1 1  1 1  0 1 thì số thập phân của nó là số mấy? Bạn sẽ trả lời như thế nào? Trước tiến phải xác định nó là số Âm bởi vì bit cực trái của nó là số 1. Để biết nó là số mấy thì ta tiến hành đảo bit như sau:

1  1 1 1  1 1  0 1 => 00000010

Tiến hành cộng thêm 1 vào 00000010, như vậy ta được 00000011. Ta đổi qua hệ thập phân = 2^1 +2^0 =2+1 =3, cộng với dấu đằng trước của nó là dấu Âm, do đó 1  1 1 1  1 1  0 1 sẽ có giá trị là -3

Ví dụ 4: Tôi  sẽ cộng số -5 với -7 (cũng dùng mẫu 8 bit)

Cũng dùng phương pháp bù 2 để biểu diệ n-5 và -7 thành số nhị phân, Số -5 bạn đã biết nó có giá trị 1111 1011. Còn số -7 nếu bạn chưa biết biểu diễn thì bạn chưa hiểu cách tính, bạn phải coi lại 4 bước bên trên. Coi lại mà chưa hiểu tiếp thì chắc ăn Tôi sẽ biểu diện lại cho bạn xem bên dưới:

Bước 1: Xác định số nguyên 7 bên hệ thập phân được biểu diễn sang nhị phân là: 0000 0111

Bước 2: Đảo tất cả các bit nhận được từ bước 1, ta sẽ được: 1111 1 000

Bước 3: Cộng 1 vào kết quả nhận được ở bước 2, ta được: 1111 1001

Bước 4: Vì là số âm nên bit cực trái là 1

Như vậy số -7 được biểu diễn đưới dạng nhị phân trong máy tính là: 1111 1001

Bây giờ ta tiến hành Cộng -5 và -7

1111 1011
+
1111 1001
—————–
1111 0100

Bạn để ý rằng, khi cộng 2 bit cực trái của 2 số trên, ta vẫn còn nhớ 1, Nhưng mà trong kết quả này ta bỏ bit dấu này đi

Bây giờ cũng tương tự, Tôi hỏi lại các bạn số nhị phân 1111 0100 thì số thập phân của nó là bao nhiêu?

Tôi sẽ một lần nữa làm lại cho các bạn: Tiến hành đảo bit 1111 0100 bạn sẽ được 0000 1011 , sau đó cộng 1 vào ta được 0000 1100

Như vậy bạn sẽ được 2^3+ 2^2 =8+4=12, với bit dấu là âm, Tức là ta được kết quả -12.

Chúc các bạn Thành Công.

Các ví dụ về Java Assignment Operator

Các toán tử =, +=, -=, *=, /=, %= là khá quen thuộc nên Tôi sẽ không giải thích các toán từ này:

1) Toán tử <<= (Left Shift, then assignment). Tôi gọi nôm na là đẩy bit qua bên trái

Ví dụ 1:

int x=5;
int y=2;
x=x<<y;

System.out.println(x);

Chúng ta sẽ có kết quả là 20

Quá trình nó thực hiện như sau:

– Phân tích số thập phân thành nhị phân

số x=5 sang nhị phân : 00000101

– Biểu thức x=x<<y, trước tiên vế phải được thực hiện trước, nó sẽ đẩy dãy nhị phân x=5 qua bên trái 2 bit ( vì y =2)

tức là: 00000101 sẽ thành 00010100 (sau khi đẩy qua trái thì các bit bên phải sẽ trở thành 0), số nhị phân 00010100 sẽ có giá trị là: 2^4+2^2=16+4=20 . Như vậy cuối cùng ta được x=20.

Ví dụ 2:

int x=11;
int y=4;
x=x<<y;

System.out.println(x);

Chúng ta sẽ có kết quả là 176

Quá trình nó thực hiện như sau:

– Phân tích số thập phân thành nhị phân

số x=11 sang nhị phân : 00001011

– Biểu thức x=x<<y, trước tiên vế phải được thực hiện trước, nó sẽ đẩy dãy nhị phân x=11 qua bên trái 4 bit ( vì y =4)

tức là: 00001011 sẽ thành 10110000(sau khi đẩy qua trái thì các bit bên phải sẽ trở thành 0), số nhị phân 10110000sẽ có giá trị là: 2^7+2^5+2^4=128+32+16=176 . Như vậy cuối cùng ta được x=176.

Tương tự đối với số âm, đầu tiên bạn cứ dịch chuyển bit y chang như số  dương bên trên, sau đó thêm dấu âm (-) vào đằng trước kết quả. Tức là giả sử x=-11, y=4 thì x=x<<y sẽ có kết quả là -176.

2) Toán tử >>= (Right Shift with sign, then assignment). Tôi gọi nôm na là đẩy bit qua bên phải

Trường hợp này số dương và số âm nó có khác biệt lớn.

Đối với số dương nó sẽ dịch chuyển các bit qua bên phải, các bit trái sẽ =0

Ví dụ 1: Giả sử ta có đoạn lệnh bên dưới:

int x=13;
int y=1;
x=x>>y;

System.out.println(x);

Kết quả ta được là 6

Trước tiên nó cũng phân tích 13 ra số nhị phân như sau: 00001101 sau đó biểu thức x=x>>y sẽ dịch chuyển x=13 qua bên phải 1 bit, tức là ta sẽ được 00000110, như vậy sẽ cho ra kết quả 2^2+2^1 =4+2=6

Ví dụ 2: Giả sử ta có đoạn lệnh bên dưới:

int x=45;
int y=2;
x=x>>y;

System.out.println(x);

Kết quả ta được là 11

Trước tiên nó cũng phân tích 45 ra số nhị phân như sau: 00101101 sau đó biểu thức x=x>>y sẽ dịch chuyển x=45 qua bên phải 2 bit, tức là ta sẽ được 00001011, như vậy sẽ cho ra kết quả 2^3+2^1+2^0 =8+2+1=11

Đối với số âm (trước tiên các bạn phải xem qua Topic biểu diễn số âm trong máy tính http://duythanhcse.wordpress.com/2012/01/02/cach-bi%E1%BB%83u-di%E1%BB%85n-s%E1%BB%91-am-trong-may-tinh-ph%C6%B0%C6%A1ng-phap-bu-2/)

Giả sử các bạn đã thông thạo phương pháp bù 2 để biểu diễn số Âm trong máy tính, giờ Tôi sẽ viết đoạn lệnh trong Java để kiểm chứng kết quả cho toán tử >>:

int x=-45;
int y=2;
x=x>>y;
System.out.println(x);

Trước tiên bạn phải đổi -45 sang nhị phân = 1101 0011 . Nếu bạn chưa biết cách đổi thì bạn vào Topic biểu diễn số âm bằng phương pháp bù 2 (xem link bên trên).

Dòng lệnh x=x>>y, tức là dịch chuyển x qua phải 2 bit (vì y=2). Sau khi dịch chuyển ta sẽ được kết quả như sau: 1111 0100

Để biết được số nhị phân 1111 0100 có giá trị là bao nhiêu khi chuyển sang hệ thập phân, các bạn làm như sau:

– Tiến hành đảo bit 1111 0100 thành => 0000 1011

– Sau đó cộng thêm 1 vào kết quả 0000 1011, ta được 0000 1100

– Như vậy kết quả sẽ được : 2^3+2^2 = 8+4=12, với dấu đằng trước là Âm, nên kết quả ta được -12

Tức là khi dòng lệnh System.out.println(x); thực hiện thì ta sẽ được -12

3)>>>= (Right Shift with zero, then assignment) – Chú ý phép toán này dựa trên mẫu 32 bit.

Trường hợp này nếu là số Dương (>0) thì >>>= sẽ giống như >>= (Tức là kết quả của toán tử >>= cho kết quả như thế nào thì >>>= cũng cho kết quả như vậy). Do đó trong trường hợp số Dương bạn sẽ xem phần giải thích >>=

Bây giờ Tôi hướng dẫn trường hợp số âm (<0).

Ví dụ 1: – Bạn nhớ tự so sánh với cách làm của toán tử >>= xem chúng khác nhau ở bước nào nhé.

int x=-11;
int y=2;
x=x>>>y;

Trước tiên ta cũng biểu diễn -11 về dạng nhị phân như sau: 11111111 11111111 11111111 1111 0101 (Tôi giả sử các bạn đã biết phương pháp Bù 2)

lệnh x>>>y tức là dời x qua bên phải 2 bit : 00111111 11111111 11111111 1111 1101 

Ở bước này ta được kết quả và gán cho biến x luôn (tức là nó khác với >>=, toán tử >>= sẽ đảo bit, sau đó +1 để tính ngược ra số thập phân). Còn đối với >>>= thì không cần, tại đây ta tính luôn:

00111111 11111111 11111111 1111 1101 =2^29+……..2^3+2^2+2^0= 1073741821

Ví dụ 2:

int x=-45;
int y=10;
x=x>>>y;

Biết rằng sau khi thực hiện thì x=4194303, bạn thử tự chạy bằng tay xem có đúng như vậy không  nhé.

4) &= (Bitwise AND, then Assignment)

– Các bạn hiểu nôm na là các bit đều giống nhau là 1 thì sẽ cho kết quả 1, chỉ cần 1 bit là 0 thì sẽ cho kết quả là 0.

Ví dụ 1:

int x=5;
int y=6;
x=x&y;
Chuyển 5 thành nhị phân  0101
Chuyển 6 thành nhị phân 0110
Tiến hành Bitwise And

0101
&
0110
—————-
0100
System.out.println(x); ==> kết quả sẽ là 4 vì 0100 => 2^2=4

Ví dụ 2:

int x=5;
int y=6;
x=x&y;
Chuyển – 5 thành nhị phân  1011 (dùng phương pháp bù 2)
Chuyển 6 thành nhị phân   0110
Tiến hành Bitwise And

1011
&
0110
—————-
0010
System.out.println(x); ==> kết quả sẽ là 4 vì 0010 => 2^1=2

5) |= (Bitwise OR, then Assignment)

– Chỉ cần 1 bit là 1 thì sẽ cho kết quả 1, cả 2 bit là 0 thì mới cho kết quả 0:

Ví dụ:

int x=13;
int y=3;
x=x|y;
Chuyển 13 sang nhị phân: 1101
Chuyển 3 sang nhị phân  : 0011
Tiến hành Bitwise OR hai số nhị phân trên ta được:

1101
|
0011
————-
1111
System.out.println(x); Sẽ cho kết quả 15 vì 1111 đổi ra thập phân =2^3+2^2+2^1+2^0 =15

Tương tự cho số âm, bạn dùng phương pháp bù 2, sau đó dùng Bitwise OR giống như ví dụ trên.

6) ^= (Bitwise XOR, then Assignment)

– Các bit khác nhau sẽ cho giá trị 1, giống nhau sẽ cho giá trị 0.

Ví dụ:

int x=11;
int y=2;
x=x^y;
Chuyển 11 sang hệ nhị phân: 1011
Chuyển 2 sang hệ nhị phân  : 0010
Tiến hành Bitwise XOR:

1011
^
0010
————–
1001
System.out.println(x); kết quả sẽ cho giá trị 9, bởi vì số nhị phân 1001 đổi qua thập phân = 2^3+2^0=9

Như vậy Tôi đã hướng dẫn khái quát các toán tử khó.

Các bạn phải cố gắng đọc hiểu để làm bài tập cho tốt!

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

Danh sách nhóm đề tài Java 1 lớp NCTH4B

STT

TÊN THÀNH VIÊN

MSSV

TÊN ĐỀ TÀI

1

Nguyễn Hoàng Duy 10180081

Viết chương trình quản lý bán hàng linh kiện máy tính.

Bùi Thanh Long 10180601
Lương Tuấn Dũng 10179701
Nguyễn Thị Ngọc Phương 10115991

2

Huỳnh Thị Hồng Hoa 10195071 Viết chương trình quản lý cửa hàng thời trang.
Trần Thị Mến 10177571
Nguyễn Huỳnh Tấn Phát 10175451

3

Nguyễn Văn Quốc 10134971 Viết chương trình quản lí sinh viên.
Trần Hữu Hưng 10182801
Nguyễn Văn Kiệt 10070751

4

Nguyễn Hoàng Nguyên 10212831 Viết chương trình quản lí cửa hàng bán đĩa CD.
Trần Quốc Vương 10192601
Huỳnh Phú 10176661

5

Công Hoàng Luân 10301281 Viết chương trình quản lí học sinh tiểu học.
Nguyễn Văn Hưng 10197331
Huỳnh Hữu Duy Mỹ 08172431

6

Trần Quí Đạt 10181201 Viết chương trình quản lí việc sử dụng phòng học trong trường ĐH CN.
Nguyễn Hoàng Dĩnh 10197691
Nguyễn Hoàng Dân 10195651

7

Bùi Duy Vĩnh Trường 10177971 Viết chương trình quản lí xuất nhập hàng hóa của 1 cửa hàng tạp hóa.
Huỳnh Thanh Anh Tuấn 10183861
Lâm Minh Tiến 10178401

8

Hồ Văn Sang 10177231 Viết chương trình quản lí cửa hàng bán xe gắn máy.
Nguyễn Minh Tâm 10177721
Nguyễn Viết Tiên 10189411

9

Trần Văn Hồng Thuận 10184971 Viết chương trình quản lí nhân sự.
Lê Thành Sơn 10174881
Phạm Chí Quốc 10102111

10

Bùi Xuân Thành 10178791 Viết chương trình quản lý việc giao nhận rau của 1 công ty chuyên thu mua và cung cấp rau sạch cho các đại lý.
Đoàn Phan Quang Minh 10050881
Nguyễn Thái Hiền 10184411

11

Nguyễn Thanh Vương 10192511 Viết chương trình  quản lý cửa hàng bán máy tính và các thiết bị máy tính cũ.
Nguyễn Văn Thành 10187251
Nguyễn Trọng Phát 10175211

12

Tạ Tuấn Đạt 10196361 Viết chương trình quản lý việc chấm công và tính lương cho công ty may.
Nguyễn Thị Thu Sang 10276721
Nguyễn Thị Phương 10195511

13

Nguyễn Khoa Mẫn 10197851 Viết chương trình quản lí cửa hàng bán xăng.
Võ Văn Lộc 10177381
Nguyễn Xuân Vượng 10192511

14

Nguyễn Thắng 10190211 Viết chương trình quản lí thu chi cho quán càfé.
Nguyễn Tấn Phúc 10069011
Phạm Hoàng Ngọc Thịnh 10088691

15

Trần Xuân Thịnh 10098981 Viết chương trình quản lí khách sạn.
Võ Văn Trường 10174061
Lê Quang Vương 10192831

16

Lê Quốc Anh Khoa 10177271 Viết chương trình quản lí cửa hàng bán máy lạnh.
Nguyễn Minh Lộc 10159921
Nguyễn Duy Tân 10209471

17

Nguyễn Bá Nhã 10156481 Viết chương trình quản lí câu lạc bộ bóng đá.
Nguyễn Duy Thọ 10175111
Lê Văn Huy 10180701

18

Đoàn Đức Bình 10144391 Viết chương trình quản lí cửa hàng bán quần áo.
Nguyễn Thành Phi Hải 10175761
Phạm Quang Hoạt 10178221

19

Tống Trọng Nghĩa 10196781 Viết chương trình quản lí siêu thị.
Nguyễn Thành Nam 10196001
Bùi Công Ngọc 10196671

Cách biên dịch và chạy tập tin Java có chứa package

Trong Topic này Tôi sẽ hướng dẫn các bạn cách biên dịch và chạy tập tin Java có chưa package như thế nào

Giả sử Tôi có 1 tập tin tên là Hello.java nằm trong thư mục test của ổ E, với nội dung bên trong giống như hình minh họa bên dưới:

Nhìn vào hình minh họa bên trên thì bạn dễ dàng nhận ra class Hello nằm trong package duythanhcse.wordpress.com. Nhiệm vụ của chúng ta là biên dịch tập tin này. Các bạn theo dõi tiếp hình minh họa tiếp theo để thấy được cách biên dịch những tập tin có chứa package:

Bạn để ý dòng lệnh: javac   -d  .  Hello.java

Dòng lệnh này dùng để biên dịch những tập tin có chứa package. Bạn quan sát sau khi gõ lên trên và nhấn Enter thì tập tin Hello.class sẽ được tạo ra, tập tin này sẽ nằm trong thư mục duythanhcse\wordpress\com

Để chạy tập tin này các bạn xem hình minh hoạc tiếp theo:

Các bạn sẽ dùng lệnh: java     duythanhcse.wordpress.com.Hello

Như vậy bạn phải đính kèm package sau đó tới tên classs.

Các bạn thử làm theo các bước trên để kiểm chứng như thế nào

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

Giải bài tập 14 chương 1 – Java 1

http://duythanhcse.wordpress.com/2011/12/21/bai-t%E1%BA%ADp-java-1-ch%C6%B0%C6%A1ng-1/

Topic này Tôi sẽ hướng dẫn cách giải bài tập 14

Trong Topic này có 3 điểm mới nên Tôi chỉ giải thích 3 điểm này, còn các hàm với những vòng lặp for để xuất ra hình ảnh như bài tập yêu cầu thì các bạn tự suy luận.

Dưới đây là code mẫu:

Chú ý là printWildcard1 đại diện cho hình 1. printWildcard2 đại diện cho hình 2…. số 10 Tôi truyền vào thì bạn có thể yêu cầu nhập vào từ bàn phím.

public class PrintWildcard {

 

       /**

        * @param args

        */

       public static void main(String[] args) {

              // TODO Auto-generated method stub

              printWildcard1(10);

              System.out.println();

              printWildcard2(10);

              System.out.println();

              printWildcard3(10);

              System.out.println();

              printWildcard4(10);

             

       }

/**

* Hàm này dùng để xuất *

* @param n : nhập vào từ bàn phím

*/

       public static void printWildcard1(int n)

       {

              for(int i=n;i>0;i–)

              {

                     for(int j=i;j>0;j–)

                     {

                           System.out.print(“*”);

                     }

                     System.out.println();

              }

       }

       public static void printWildcard2(int n)

       {

              for(int i=0;i<n;i++)

              {

                     for(int j=i;j>=0;j–)

                     {

                           System.out.print(“*”);

                     }

                     System.out.println();

              }

       }

       public static String padRight(String s,int n)

       {

              if(n<=0)

              return“”;

              return String.format(“%1$-“+n+“s”,s);

       }

       public static String padLeft(String s, int n) {

           if(n<=0)

              return“”;

              return String.format(“%1$#” + n + “s”, s); 

       }

 

       public static void printWildcard3(int n)

       {

              for(int i=1;i<=n;i++)

              {

                     System.out.print(padLeft(” “, n-i));

                     for(int j=i;j>0;j–)

                     {

                           System.out.print(“*”);

                     }

                     System.out.println();

              }

       }

       public static void printWildcard4(int n)

       {

              for(int i=1;i<=n;i++)

              {

                     System.out.print(padLeft(” “, i-1));

                     for(int j=i;j<=n;j++)

                     {

                           System.out.print(“*”);

                     }

                     System.out.println();

              }

       }

}

———————————————————————

Điểm mới 1:

Cách ghi chú thích (Comment)

Các bạn nhìn vào hàm

/**
* Hàm này dùng để xuất *
* @param n : nhập vào từ bàn phím
*/

public static void printWildcard1(int n)

{

for(int i=n;i>0;i–)

{

for(int j=i;j>0;j–)

{

System.out.print(“*”);

}

System.out.println();

}

}

Ngay dòng đầu tiên của comment bạn để ý là /** Nhớ là có 2 dấu * ngay đằng sau dấu / Các bạn bắt buộc phải ghi chú như thế này, lý do như sau: Khi bạn gọi hàm thì Eclipse sẽ tự động đọc các thông số trong này, giúp ích cho việc lập trình nhanh hơn, các bạn xem hình ảnh Tôi chụp lại:

Bạn quan sát và thấy đây, chỉ cần di chuyển chuột tới hàm mà mình đã comment theo đúng nguyên tắc thì bạn sẽ có được hình ảnh trên.

Điểm mới 2:

Hàm padRight : return String.format(“%1$-“+n+”s”,s);

Thêm vùng đệm dữ liệu bên phải (các bạn phải nhớ công thức cài đặt trong hàm format)

Điểm mới 3:

Hàm padLeft:        return String.format(“%1$#” + n + “s”, s);

Thêm vùng đệm dữ liệu bên trái (các bạn phải nhớ công thức cài đặt trong hàm format)