Wednesday, April 15, 2020

Một cái bàn đơn giản

Một cái bàn đơn giản cần có:
1. Vật liệu: Kim loại hay gỗ.


2. Đế bàn
a. đường kính ngoài = 22”
b. dầy = 1.4”

3. Chân bàn
a. đường kính ngoài = 3”
b. dài = 25”
4. Đĩa nâng
a. đường kính ngoài = 9.6”
b. cao = 1.2”


5. Trục 2 đầu ốc
a. đường kính ngoài = .3”
b. dài = 27.2”
6. Mặt bàn
a. đường kính ngoài = 42”
b. dầy =.75”

Ráp tất cả lại, ta có một cái bàn đơn giản.

Friday, April 10, 2020

Ngôn Ngữ Lập Trình Java

I. Giới thiệu ngôn ngữ lập trình Java

1. Ngôn ngữ Java, đọc là “Gia-Va”, là một ngôn ngữ lập trình hướng đối tượng, được James Gosling ở Sun Microsystems phát triển vào năm 1991 dựa trên C và C++,nhưng cú pháp hướng đối tượng đơn giản hơn. Java được phát hành vào năm 1994. 
Mã nguồn Java được biên dịch thành bytecode; sau đó, bytecode được môi trường thực thi (runtime environment) biên dịch tại chỗ (Just in time compilation), Java có thể chạy nhanh hơn C và C++.  
Trong Java, Java Virtual Machine (JVM) quản lí bộ nhớ bằng cách tự động "dọn dẹp rác".
Chương trình Java có thể chạy trên nhiều nền tảng (platform) khác nhau bởi một môi trường thực thi thích hợp cho nền tảng đó, như FreeBSD, Linux, Mac OS, Sun Solaris, và Windows. 
Năm 2010, Oracle mua lại Sun Microsystems và là nhà quản lí Java. 

2. Thư viện chuẩn Java
Thư viện chuẩn này gồm có các gói (package) sau đây:
1) java.lang
Cung cấp các lớp quan trọng của ngôn ngữ Java như các kiểu dữ liệu cơ bản: Character, Integer, String, … hay các lớp sử lí lỗi.
2) java.applet
Cung cấp lớp Applet cho trang mạng (Internet).
3) java.awt
Cung cấp các tài nguyên để tạo giao diện đồ họa như Button, GridBagLayout, Graphics.
4) java.io
Cung cấp các lớp nhập xuất chuẩn như tạo và quản lí dòng dữ liệu.
5) java.util
Cung cấp các lớp hữu ích như Date, Hashtable, Stack, Vector, StringTokenizer.
Cung cấp khả năng giao tiếp với máy từ xa như tạo và kết nối với Socket hoặc URL.
7) java.awt.event
Cung cấp các lớp dùng sử lí các sự kiện trong chương trình như chuột, bàn phím.
8) java.rmi
Cung cấp các công cụ để gọi hàm từ xa. Chúng cho phép tạo đối tượng trên máy khác và sử dụng các đối tượng đó trên máy cục bộ.
9) java.security
Cung cấp các công cụ để mã hóa và đảm bảo tính an toàn của dữ liệu truyền giữa máy trạm và máy chủ.
10) java.sql
Cung cấp Java DataBase Connectivity (JDBC), dùng để truy xuất cơ sở dữ liệu quan hệ như Oracle, SQL Server.
11) java.math
Cung cấp các hàm toán học như abs, sqrt, sin, cos, max, min, round, exp …

3. Từ khoá riêng của Java
Sau đầy là các từ khóa riêng của Java, được sắp xếp theo thứ tự mẫu tự:

Abstract assert Boolean break byte
Case catch char class const
Continue default do double else
Enum extends final finally float
For goto if implements import
Instanceof int interface long native
New package private protected public
Return short static strictfp super
Switch synchronized this throw throws
Transient try void volatile while

Chú ý: Ngôn ngữ Java là "case sensitive", nghĩa là Java phân biệt chữ hoa và chữ thường. Do vậy, ANH, Anh, anh là ba chữ khác nhau.

4. Cách đặt tên trong Java
Danh hiệu (identifier) dùng đặt tên cho các dữ liệu, không được dùng từ khóa riêng của Java và phải bắt đầu là một chữ cái, sau đó có thể là chữ cái, chữ số hay gạch dưới.
Thí dụ: X, y, z1, Lập_trình , …
Java phân biệt danh hiệu chữ thường và chữ hoa.
Do vậy, ANH, Anh, anh là ba chữ khác nhau.

5. Cài đặt trình biên dịch
Chương trình Java được biên dịch và chay bởi JDK, gồm có Bộ phận phát triển (JDK, Java Development Kit) và Môi trường thực thi (JRE, Java Runtime Environment), ta có thể tải xuống và cài đặt theo những bước sau:
1) Lên mạng http://www.oracle.com/technetwork/java/javase/downloads
2) Chọn JDK 8 thích hợp cho Window.
3) Chấp nhận những điều khoản của bằng công cộng.
4) Chấp nhận nơi cài đặt ở C:\Java.
5) Theo sự hướng dẫn của trang mạng để bắt đầu sự cài đặt.
6) Để xem trình biên dịch này đã cài đặt trong máy tính hay chưa, ta có thể viết lệnh sau đây ở cổng lệnh:
           C:\> java -v
rồi nhấn Enter để thấy
           C:\> java –v
           Java version “1.8.0”
           Java SE Runtime Environment
           C:\> javac -v
rồi nhấn Enter để thấy
           Javac 1.8.0
Nghĩa là javac đã được cài đặt.

6. Cấu trúc một chương trình Java
Java là ngôn ngữ lập trình hướng đối tượng. Do vậy:
1) Chương trình Java là một cấu trúc lớp.
Lớp được định nghĩa như sau:
           Class Tên lớp { }
Từ khoá class dùng khai báo Tên lớp hay Tên chương trình.
Tên lớp thường là chữ hoa.
Giữa cặp dấu móc {} là Thân của lớp, dùng định nghĩa lớp.
2) Chương trình thường có một hoặc nhiều hàm, được gọi là phương thức.
Phương thức được định nghĩa như sau:
           Loại dữ kiện Tên phương thức () {những câu lệnh;}
Loại dữ kiện là loại giá trị được trả lại cho vật gọi sau khi phương thức được hành sử.
Tên phương thức là chữ thường.
Mỗi chương trình Java có một phương thức tên “main” (chính). Phương thức main() là điểm bắt đầu của chương trình Java. Trình biên dịch Java sẽ không biên dịch mã của chương trình, nếu không tìm thấy phưong thức main().
Ngoặc đơn () sau tên phương thức có thể chứa những giá trị gọi là đối số của phương thức, đuợc cách biệt bởi dấu phẩy.
3) Giữa cặp dấu móc {} là những câu lệnh để thi hành những nhiệm vụ của chương trình. Mỗi câu lệnh phải được kết thúc bởi dấu chấm phẩy (;).

7. Viết chương trình Java
Thông thường, chương trình đầu tiên cho một ngôn ngữ lập trình là chương trình viết một câu chào, như  “Hello World”, theo những bước sau đây:
1) Mở trình viết chữ, như Notepad, viết những hàng sau:
// Chương trình Java thứ nhất.
Đây là dòng chú thích, bắt đầu bằng dấu so (//), chúng không có bất kì một ảnh hưởng nào đến hoạt động của chương trình.
Chú thích:
Trong lập trình, chú thích dùng để làm rõ ý nghĩa của chương trình.  
Trong Java có hai cách để chú thích:
// Chú thích theo dòng
/* Chú thích theo khối */
Chú thích theo dòng bắt đầu bằng cặp dấu so (//) cho đến cuối dòng.
Chú thích theo khối bắt đầu bằng /* và kết thúc bằng */ và có thể bao gồm nhiều dòng.
2)     class Hello
           {
           }
Lớp Hello được khai báo với từ class.
3) Giữa cặp dấu móc {} của lớp Hello là một phương thức main
        public static void main(String args[])
           {
           }
Phương thức main được khai báo với chuỗi từ public static, sẽ được giải thích khi ta học về lập trình hướng đối tượng.
void, nghĩa là không được trả lại gì khi phương thức được hành xử.
String args[] trong ngoặc đơn cho biết phương thức này không có đối số.
4) Giữa cặp dấu móc {} của phương thức main là một câu lệnh gọi phương thức System.out.println trong lớp System.
        System.out.println("Hello World");
Giữa cặp dấu đơn (), phương thức out.println cần một dãy kí tự trong dấu kép “”. Dãy này là Hello World. 
5) Kiểm tra chương trình giống như sau đây:

// Chương trình Java thứ nhất.

class Hello
  {
     public static void main(String args[])
       {
          System.out.println("Hello World");
       }
  }

6) Lưu giữ chương trình này với tên “Hello.java”

8. Biên dịch chương trình Java
Chương trình Java được biên dịch qua hai bước sau:
Thứ nhất, trình dịch Java Compiler (javac) dịch mã nguồn Java thành bytecode, có dạng hành sử (executable).
Thứ hai, trình dịch JIT (Just-in-time compiler) dịch bytecode dạng hành sử thành mã máy (machine language code) thích hợp cho mỗi nền tảng máy.


  1. Tập nguồn Hello.java được biên dịch theo những bước sau:
1) Ở cổng lệnh, viết lệnh cd với đường dẫn tới Hello.java
2) Ở cổng lệnh, viết
        javac Hello.java
rồi nhấn Enter thì chương trình này được biên dịch thành Hello.class

9. Chạy chương trình
Ở cổng lệnh, viết
        java Hello
rồi nhấn Enter thì chương trình này cho kết quả:
        Hello World

Thursday, April 9, 2020

Ngôn Ngữ Lập Trình Pascal

I. Giới thiệu ngôn ngữ lập trình Pascal

1. Ngôn ngữ Pascal là một ngôn ngữ lập trình dạng mệnh lệnh, thích hợp cho lập trình thủ tục, được Niklaus Wirth phát triển vào năm 1970. Ngôn ngữ này dựa trên ngôn ngữ lập trình ALGOL và được đặt tên là Pascal, tên của nhà toán học và triết học Blaise Pascal. 
Pascal cũng hỗ trợ lập trình cấu trúc và lập trình hướng đối tượng (Free Pascal và Turbo Pascal 5.5). Ngày nay Pascal vẫn còn được sử dụng khá phổ biến. Phần lớn hệ điều hành Macintosh được viết bằng Pascal.
Năm 1983, ANSI Pascal (American National Standards Institute) đã trở thành chuẩn cho ngôn ngữ lập trình Pascal.

2. Thư viện chuẩn Pascal
Thư viện chuẩn của ANSI Pascal gồm những đơn vị sau:
1) Đơn vị Hệ thống (SYSTEM)
write(): in ra màn hình sau kí tự cuối.
writeln(): in ra một dòng và xuống dòng.
read(): đọc biến.
readln(): đọc một dòng biến và xuống dòng
2) Đơn vị Màn hình (CRT)
clrscr: xoá màn hình.
textcolor(): in chữ màu.
textbackground(): in màu màn hình.
sound(): tạo âm thanh.
delay(n): dừng chương trình trong n/1000 giây.
nosound: tắt âm thanh.
windows(x1,y1,x2,y2): thay đổi cửa sổ màn hình.
highvideo: tăng độ sáng màn hình.
lowvideo: giảm độ sáng màn hình.
normvideo: bình thường độ sáng màn hình.
gotoxy(x,y): đến vị trí x,y trên màn hình.
deline: xoá một dòng.
clreol: xoá các ký tự đến cuối dòng.
insline: thêm một dòng.
exit: thoát khỏi chương trình.
textmode(n): tạo kiểu chữ.
randomize: tạo ngẫu nhiên.
move(var1,var2,n): chép n byte từ biến var1 sang var2.
halt: Ngưng chương trình.
Abs(n): cho số tuyệt đối của số n.
Sin(x): cho sin(x), với x là Radian.
Cos(x): cho cos(x), với x là Radian.
Arctan(x): cho Arctan(x), với x là Radian.
Exp(x): cho luỹ thừa của số x.
Ln(x): cho logarit của số x.
Int(x): cho phần nguyên của số x.
Frac(x): cho phần lẻ của số x.
Sqr(x): cho bình phương của số x.
Sqrt(x): cho căn bậc hai của số x.
Pred(x): cho số nguyên đứng trước số nguyên x.
Succ(x): cho số nguyên đứng sau số nguyên x.
Odd(x): cho true nếu số x lẻ; false nếu số x chẵn .
Chr(x): cho kí tự có vị trí x trong bảng mã ASCII.
Ord(x): cho số thứ tự của kí tự x trong bảng mã ASCII.
round(x): cho số nguyên gần x nhất.
trunc(x): cho số nguyên bé hơn x.
Random(n): cho số ngẫu nhiên bé hơn n.
upcase(n): đổi chữ thường sang chữ hoa.
assign(f,'<đường dẫn><tên file>.<phần mở rộng>'): tạo file.
rewrite(f): viết lại file.
append(f): thêm dữ liệu cho file.
close(f): đóng file.
erase(f): xóa file.
rename(): đặt lại tên file.
str(a: integer, s: string): đổi từ số a thành chuỗi s.
val(str,n,m): đổi chuỗi số str thành số n, với m là 0.
length(s): cho chiều dài của chuỗi s.
copy(s: string, a: integer, b: integer): chép b kí tự từ vị trí a trong chuỗi s.
insert(s1: string, s: string, a: integer): thêm chuỗi s1 vào vị trí a cho chuỗi s.
delete(s:string, a:integer, b:integer): xóa b ký tự từ vị trí a trong chuỗi s.
pos(s1: string; s2: string): cho vị trí đầu tiên của chuỗi s1 trong chuỗi s2,
nếu s1 không nằm trong s2 thì vị trí là 0.
3) Đơn vị Đồ hoạ (GRAPH)
initgraph(a,b): khởi tạo đồ hoạ.
closegraph: đóng đồ hoạ.
setcolor(x): chọn màu.
outtext(): in ra tại góc trái trên của màn hình .
outtextxy(x,y,): in ra tại x, y của màn hình.
line(x1,y1,x2,y2): vẽ đoạn thẳng.
moveto(x,y): đến điểm đầu vẽ đoạn thẳng.
lineto(x,y): đến điểm cuối vẽ đoạn thẳng.
rectangle(x1,y1,x2,y2): vẽ hình chữ nhật.
circle(x,y,n): vẽ hình tròn.
ellipse(x,y,o1,o2,a,b): vẽ hình elip.
floodfill(a,b,n): tô màu cho hình.
getfillpattern(x): chọn mẫu để tô.
setfillpattern(x,a): tô mẫu vẽ.
cleardevice: xoá màn hình.
settextstyle(n,a,b): chọn kiểu chữ.
arc(a,b,c,d,e): vẽ cung.
bar(a,b,c,d): vẽ thanh.
bar3d(a,b,c,d,e,f): vẽ hộp.
setbkcolor(n): tô màu nền.
putpixel(x,y,n): vẽ điểm.
setfillstyle(a,b): chọn kiểu để tô.
setlinestyle(a,b,c): chọn kiểu đoạn thẳng.
getmem(p,1): chọn vùng nhớ.
getimage(x1,y1,x2,y2,p): chọn hình.
putimage(x,y,p,n): in hình.
4) Đơn vị Hệ điều hành (DOS)
getdate(y,m,d,t): lấy ngày tháng.
gettime(h,m,s,h): lấy thời giờ.
findnext(x): tìm kiếm tiếp.

3. Từ khoá (key word) của Pascal
Pascal không phân biệt từ khóa chữ thường và chữ hoa.
Thí dụ: D với d là một.
1) Từ khoá trong Turbo Pascal
absolute and array asm begin case const constructor destructor div 
do downto else end file for function goto if implementation in inherited 
inline interface label mod nil not object of on operator or packed procedure  program record reintroduce repeat self set shl shr string then to type unit until  uses var while with xor
2) Từ khoá trong Free Pascal
as class dispinterface except exports finalization finally initialization inline 
is library on out packed property raise resourcestring threadvar try
dispose exit false new true  
3) Từ khoá dẫn hướng
absolute abstract alias assembler cdecl cppdecl default export external far 
far16 forward index local name near nostackframe oldfpccall override pascal 
private protected public published read register reintroduce safecall softfloat 
stdcall virtual write

4. Cách đặt tên trong Pascal
Danh hiệu (identifier) dùng đặt tên cho các biến, hằng, kiểu, chương trình, thủ
tục, …
Danh hiệu không được dùng từ khóa riêng của Pascal và phải bắt đầu là một chữ cái, sau đó có thể là chữ cái, chữ số hay gạch dưới.
Thí dụ:
X, y, z, …
Lập_trình
Pascal không phân biệt danh hiệu chữ thường và chữ hoa.

5. Cài đặt trình biên dịch Pascal
Để chạy một chương trình Pascal, trước hết nó phải được biên dịch từ mã nguồn (chữ viết) thành mã máy (nhị phân). Đây là công việc của trình biên dịch. Hai trình biên dịch Pascal thông dụng là Turbo Pascal và Free Pascal. Ta có thể tải xuống và cài đặt nó cho Window:
1) Turbo Pascal
Turbo Pascal 7.0 và DOSBox chạy trên hệ điều hành MS-DOS, được phát triển bởi hãng Borland, có thể chạy trên nhiều hệ điều hành khác nhau.
Download: Turbo Pascal 7.0 với DOSBox.
2) Free Pascal  
Free Pascal 32/64/16-bit có thể biên dịch các chương trình hướng đối tượng, chạy trên nhiều hệ điều hành khác nhau.
Download: Free Pascal.

6. Cấu trúc một chương trình Pascal:
Chương trình Pascal gồm hai phần sau:
1) Phần khai báo:
Ta khai báo chương trình, hàm, thủ tục, hằng, biến, hoặc kiểu trước khi dùng. Các từ khoá sau đây được đặt trước các khai báo có cùng thể loại.
a. Khai báo chương trình (Program)
Khai báo tên chương trình với từ Program và dấu chấm phẩy (;).
Thí dụ:
Program Hello ;
b. Khai báo đơn vị (Uses)
Khai báo tên đơn vị với từ Uses và dấu chấm phẩy (;).
Thí dụ:
Uses CRT;
c. Khai báo hằng (Constant)
Khai báo tên hằng với từ Const và dấu chấm phẩy (;).
Thí dụ:
Const  
    p = 3.14;
    message = ‘Chào Bạn’;
d. Khai báo kiểu (Type)
Khai báo tên kiểu với từ Type.
Thí dụ:
Type
    Letter = ‘a’..’z’
    Digit = ‘0’..’9’
    Row = array[1..5] of real
    Vehicle = (car, bus, truck)
e. Khai báo biến (Variable)
Khai báo tên biến với từ Var và dấu chấm phẩy (;).
Thí dụ:
Var
    N, m: Integer;
    Chuỗi: String;
f. Khai báo hàm (Function)
Khai báo tên hàm với từ Function và dấu chấm phẩy (;).
Thí dụ: Có hai dạng:
Function Tên hàm: Kiểu trả về;
Function Tên hàm(các thông số): Kiểu trả về;
g. Khai báo thủ tục (Procedure)
Khai báo tên thủ tục với từ Procedure và dấu chấm phẩy (;).
Thí dụ: Có hai dạng:
Procedure Tên thủ tục;
Procedure Tên thủ tục(các thông số);
Tuỳ theo nhu cầu, phần khai báo có thể có hoặc không,.

2) Phần thân:
Phần chính của chương trình Pascal là khối lệnh (main). Khối lệnh bắt đầu bằng Begin và kết thúc bằng End. Khối lệnh chứa những câu lệnh. Mỗi câu lệnh phải được kết thúc bởi chấm phẩy (;).
Sau từ End là dấu chấm (.) kết thúc chương trình.
Thí dụ: Khối lệnh.
           begin
               writeln('Hello World');
               writeln;
           end.
Phần này bắt buộc phải có đối với mọi chương trình.

7. Viết chương trình Pascal:
Thông thường, chương trình đầu tiên cho một ngôn ngữ lập trình là chương trình viết một câu chào, như ‘Hello World’, theo những bước sau đây:
1) Mở trình viết chữ, như Notepad, viết những hàng sau:
a. // Chương trình Pascal thứ nhất.
Đây là dòng chú thích, bắt đầu bằng dấu so (//).
Chú thích:
Trong Pascal có hai cách để chú thích:
a1) Chú thích theo khối được đặt giữa hai kí hiệu { } hay (* *) và có thể bao gồm nhiều dòng.
{ Chú thích theo khối }
(* Chú thích theo khối *)
a2) Trong Free Pascal còn có:
Chú thích theo dòng được đặt sau dấu so (//) cho đến hết dòng.
// Chú thích theo dòng.
Những chú thích này sẽ được trình biên dịch bỏ qua, nên không ảnh hưởng gì đến hoạt động của chương trình.
b. Program Hello;
Khai báo tên của chương trình với từ Program và dấu chấm phảy (;).
c. Giữa begin và end là hai câu lệnh gọi hàm writeln trong thư viện.
Hàm writeln thứ nhất cần một dãy kí tự Hello World trong dấu lặp đơn.
Hàm writeln thứ hai không có đối số, nên kết quả là xuống dòng.
           begin
               writeln('Hello World');
               writeln;
           end.
d. Sau từ End là dấu chấm (.) kết thúc chương trình.
2) Kiểm tra chương trình giống như sau đây:
           // Chương trình Pascal thứ nhất.
           Program Hello;
           begin
               writeln('Hello World');
               writeln;
           end.
3) Lưu giữ chương trình này với tên “hello.pas”

5. Biên dịch chương trình Pascal:
Tập nguồn hello.pas được biên dịch thành tập hello.exe theo những bước sau:
1) Ở cổng lệnh, viết lệnh cd với đường dẫn tới hello.pas
2) Ở cổng lệnh, viết
           Turbo hello.pas –o hello.exe
rồi nhấn Enter để biên dịch hello.pas thành hello.exe

6. Chạy chương trình
Ở cổng lệnh, viết
           Turbo hello.exe
rồi nhấn Enter thì chương trình cho kết quả sau:   
Hello World