Bài 1. Giới thiệu

  • CSS3 là một chuẩn CSS mới nhất vẫn trong giai đoạn phát triển.
  • CSS3 tích hợp với HTML5 rất tốt và có thể kết hợp với SVG và XUL
  • CSS3 rất tuyệt vời, có thể thay thế cho nhiều hiệp ứng jQuery phức tạp và rất dễ học.

Nhược điểm:

  • CSS3 không hiển thị trên IE6, IE7 và IE8
  • Một số hiệu ứng chỉ có thể chạy được trên Webkit (Bao gồm Chrome và Safari)

Yêu cầu:

- Trước khi học CSS3, yêu cầu bạn phải biết CSS2

Posted in CSS3 | Tagged , , | Leave a comment

Bài 9. Câu lệnh điều kiện

  1. Câu lệnh điều kiện

Xét ví dụ sau:

“Nếu Manchester thua trong trận này, tôi sẽ bỏ xem bóng đá”

“Nếu em yêu tôi thì em phải bỏ thằng kia, còn không thì ta chia tay”

Câu lệnh điều kiện xảy ra khi ta muốn kiểm soát dòng chương trình theo một hướng nhất định. Trong lập trình, câu lệnh điều kiện còn gọi là rẽ nhánh vì nó có thể rẽ sang các hướng khác nhau. Chúng ta sử dụng câu lệnh điều kiện ở hầu hết các chương trình.

Ví dụ sau mô tả cách sử dụng câu lệnh điều kiện để tìm số lớn nhất trong 3 số.

[codesyntax lang="pascal"]

Program tim_so_lon_nhat;

uses crt;

var a,b,c:integer;

begin

clrscr;

a:=9;

b:=1;

c:=13;

if a>=b and a>=c then write('So lon nhat la A');

if b>=a and b>=c then write('So lon nhat la B');

if c>=b and c>=a then write('So lon nhat la C');

readln

end.

[/codesyntax]

Như vậy kết quả hiển thị ra sẽ là “So lon nhat la C” vì trong 3 số này có C là lớn nhất.

Cú pháp chung:

Dạng 1)

if <điều kiện> then <câu lệnh>;

Dạng 2 (có else)

if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;

Trong đó:

  • Điều kiện là biểu thức logic
  • Câu lệnh 1 phải thoả mãn điều kiện mới được thực thi.
  • Nếu câu lệnh 1 không thoả mãn chương trình sẽ thực thi câu lệnh 2.

Như vậy ví dụ trên cũng có thể được viết lại:

[codesyntax lang="pascal"]

Program tim_so_lon_nhat;

uses crt;

var a,b,c:integer;

begin

clrscr;

a:=18;

b:=1;

c:=13;

if (a>=b) and (a>=c) then write('So lon nhat la A')

else

if (b>=a) and (b>=c) then write('So lon nhat la B')

else

write('So lon nhat la C');

readln

end.

[/codesyntax]

  1. Nhóm câu lệnh

Ở ví dụ trên, sau lệnh if ta chỉ thực hiện một câu lệnh. Trong nhiều trường hợp, ta cần phải thực hiện một nhóm câu lệnh. Trường hợp đó, ta sử dụng cặp từ khoá Begin … End;

Hãy xem ví dụ sau:

[codesyntax lang="pascal"]

program giai_pt_bac_2;

uses crt;

var a,b,c,x1,x2,delta: real;

begin

clrscr;

writeln('Nhap A, B, C');

readln(a, b, c);

delta:=b*b-4*a*c;

if(delta<0) then writeln('Vo nghiem');

if(delta = 0) then writeln('Nghiem kep X1 = X2 = ', -b/(2*a):6:3)

else

begin

x1:=(-b+sqrt(delta))/(2*a);

x2:=(-b-sqrt(delta))/(2*a);

writeln('X1 = ',x1:6:3,'X2 = ',x2:6:3);

end;

readln

end.

[/codesyntax]

Ở ví dụ này, khi biệt số Delta > 0 ta đã thực hiện 3 hành động, tính X1, tính X2 và hiển thị kết quả, nếu không có cặp Begin … End; chương trình chỉ có thể thực hiện hành động đầu tiên, tức là tính X1, các hành động sau bị lờ đi.

  1. Rẽ nhánh với Case … Of

Chúng ta sử dụng Case … Of để rẽ nhánh trong các điều kiện là những con số cụ thể và nhiều hướng. Việc sử dụng Case … Of sẽ làm hệ thống chạy nhanh hơn, thời gian viết cũng giảm đáng kể.

Ví dụ

[codesyntax lang="pascal"]

program hien_thi_sinhnhat;

uses crt;

var thang:byte;

begin

clrscr;

write('Nhap thang');

readln(thang);

case thang of

1: writeln('Sinh nhat Hoa');

2: writeln('Sinh nhat Lan, Quan');

3: writeln('Sinh nhat Hong');

4: writeln('Sinh nhat Hai');

8: writeln('Sinh nhat Duc');

11: writeln('Sinh nhat Yen');

12: writeln('Sinh nhat Thanh');

end;

readln

end.

[/codesyntax]

Với Case … else tương tự như Case … Of, chỉ thêm điều kiện sai (tương tự hàm if … else)

[codesyntax lang="pascal"]

program hien_thi_sinhnhat;

uses crt;

var thang:byte;

begin

clrscr;

write('Nhap thang');

readln(thang);

case thang of

1: writeln('Sinh nhat Hoa');

2: writeln('Sinh nhat Lan, Quan');

3: writeln('Sinh nhat Hong');

4: writeln('Sinh nhat Hai');

8: writeln('Sinh nhat Duc');

11: writeln('Sinh nhat Yen');

12: writeln('Sinh nhat Thanh');

else

writeln('Sinh nhat Hoang');

end; // end of case

readln

end. //end of program

[/codesyntax]

Posted in Pascal | Tagged | Leave a comment

Bài 8, Nhập, xuất dữ liệu.

  1. Nhập dữ liệu từ bàn phím

Để nhập dữ liệu từ bàn phím, ta thực hiện bằng thủ tục

read(<danh sách biến>);

hoặc

readln(<danh sách biến>);

Trong đó, danh sách biến gồm 1 hoặc nhiều biến đơn được đặt cách nhau bởi dấu phẩy.

Ví dụ

read(i);

readln(e,g,h);

Sự khác biệt giữa read và readln?

Thủ tục Read không xuống dòng khi ta nhập dữ liệu trong khi đó readln sẽ xuống dòng.

Để nhập nhiều biến, bạn phải nhập các biến cách nhau bởi dấu cách hoặc phím enter, ví dụ để nhập giá trị 4 cho biến e, 5 cho biến g và 6 cho biến h ra nhập

4 5 6 rồi enter hoặc 4 enter rồi 5 6 hoặc mỗi biến enter một lần cũng có kết quả như nhau.

  1. Xuất dữ liệu ra màn hình.

Ở các bài trước, chúng ta đã được biết đến cách xuất dữ liệu ra màn hình. Để làm việc này, ta chỉ cần dùng thủ tục write hoặc writeln. Hai từ khoá này có điểm khác nhau là write không xuống dòng còn writeln xuống dòng. Nếu bạn muốn in chuỗi, hãy đặt trong cặp ngoặc ‘ và ‘ còn nếu in biến thì không cần.

Ví dụ:

[codesyntax lang="php"]

program vidu;

uses crt;

begin

clrscr;

write('Xin chao');

write('Tat ca moi nguoi');

readln

end.

[/codesyntax]

Kết quả hiển thị sẽ là Xin chaoTat ca moi nguoi. Bây giờ bạn thay write bằng writeln kết quả sẽ là

Xin chao

Tat ca moi nguoi

Định dạng xuất dữ liệu

Ở ví dụ trên ta mới thực hiện trên dữ liệu kiểu chữ. Còn với kiểu số thì sao?

Xét ví dụ sau

[codesyntax lang="pascal"]

program dien_tich_hinh_tron;

uses crt;

const pi=3.1416;

var r:real;

begin

write('Nhap ban kinh: '); readln(r);

writeln('Dien tich la',r*pi);

readln;

end.

[/codesyntax]

Nếu bạn nhập bán kính vào (giả sử là 2) thì kết quả hiển thị ra là: 6.23820000E+00 như vậy sẽ rất xấu và khó đọc, trong trường hợp này chúng ta cần làm tròn số và định dạng việc hiển thị để cho con người dễ đọc. Cách làm rất đơn giản.

  • Đối với kết quả là 1 số thực, sau biến bạn thêm vào sau kết quả:

    : <độ rộng>:<số chữ số thập phân>

  • Đối với kết quả khác:

    :<độ rộng>

Ở ví dụ trên ta có thể viết lại thành

[codesyntax lang="pascal"]

program dien_tich_hinh_tron;

uses crt;

const pi=3.1416;

var r:real;

begin

write('Nhap ban kinh: '); readln(r);

writeln('Dien tich la',r*pi:3:3);

readln;

end.

[/codesyntax]

Như vậy kết quả hiển thị sẽ là 6.238 vì nó dành 3 vị trí cho độ rộng và 3 vị trí đằng sau dấy phẩy.

Posted in Pascal | Tagged | Leave a comment

Bài 7: Toán tử

Toán tử dùng để mô tả những phép toán từ đời thường sang những phép toán của ngôn ngữ.

Bảng dưới đây mô tả chi tiết về các toán tử trong Pascal

Ở đây, ta giả thiết a có giá trị là 4, b có giá trị là 3

Toán tử Biểu diễn Ví dụ Kết quả
+ Cộng a+b 7
- Trừ A-b 1
* Nhân a*b 12
/ Chia a/b 1.33
Div Chia lấy phần nguyên A div b 1
Mod Chia lấy phần dư A mod b 1
< Nhỏ hơn a<b FALSE
> Lớn hơn a>b TRUE
<= Nhỏ hơn hoặc bằng a<=b FALSE
>= Lớn hơn hoặc bằng a>=b TRUE
Bằng a=b FALSE
<> Khác a<>b TRUE
Not, and, or Phép toán logic
:= Phép gán

Ví dụ, để biểu diễn cách tính Delta trong phương trình bậc 2, ta viết như sau:

Delta: = b*b – 4*a*c;

Để tính X1 trong trường hợp Delta > 0 ta viết như sau:

X1:= (-b+sqrt(delta))/(2*a);

hoặc

X1:=(-b-sqrt(delta))/2/a;

Biểu thức quan hệ:

Biểu thức quan hệ thường dùng để so sánh 2 biểu thức với nhau ví dụ:

a < b

a+b <= c-d

Biểu thức Logic(Boolean)

Biểu thức Logic trả về giá trị True hoặc False, được liên kết với nhau qua biểu thức and, or, hoặc not.

Ví dụ:

a>=b and a>=c

Posted in Pascal | Tagged | Leave a comment

Bài 6: Khai báo biến và hằng

Biến (variable) là thành phần không thể thiếu trong các ngôn ngữ lập trình.

Biến được khai báo để lưu trữ dữ liệu, sau khi biến được tạo ra, máy tính sẽ cấp cho biến một phạm vi bộ nhớ trong suốt quá tình làm việc (Phạm vi đó đã được học ở bài 5).

Mỗi biến chỉ khai báo một lần.

Trong Pascal, ta khai báo biến như sau:

var <dấu cách> <danh sách biến>: <kiểu dữ liệu>;

trong đó:

  • Danh sách biến là một hoặc nhiều biến ngăn cách nhau bởi dấu “,”
  • Kiểu dữ liệu: Có thể là một kiểu dữ liệu thường đã được học ở bài 5 hoặc kiểu dữ liệu do người dùng tự định nghĩa (sẽ được học sau).

Ví dụ:

[codesyntax lang="pascal"]

var a,b,c,x1,x2,delta: real;

i,j: integer;

[/codesyntax]

Trong ví dụ trên, các biến a,b,c,x1,x2,delta đều được khai báo như một số thực trong khi đó i,j là các số nguyên. Bộ nhớ được hệ thống cấp phát cho các biến này là 6×6+2×2 = 40(byte).

Khai báo hằng

Khai báo theo cú pháp sau:

const <dấu cách> <Tên_Hằng> = <Giá trị>;

Ví dụ:

const pi = 3.1416;

Chú ý:

  • Dấu phẩy trong phép toán của người Việt được biểu diễn bằng dấu chấm. Ta không thể viết là 3,1416 mà phải viết là 3.1416
  • Ta nên đặt tên biến bằng các từ sao cho dễ hiểu, không nên quá ngắn hoặc quá dài. Ví dụ không nên đặt biến là cd, cr mà nên đặt là chieuDai, chieuRong, như vậy sẽ rất dễ hiểu.
Posted in Pascal | Leave a comment