Tải bản đầy đủ (.doc) (16 trang)

Một số kiến thức giúp rèn kỹ năng viết chương trình Pascal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (97.29 KB, 16 trang )

1

A. MỞ ĐẦU
1. Lý do chọn đề tài :
Cuộc cách mạng công nghiệp lần thứ 4 hiện nay đã và đang đặt ra nhiều
thách thức như nguy cơ mất nhiều lao động song sẽ mang tới nhiều ngành nghề
mới, cơ hội mới. Do đó, vấn đề đặt ra hiện nay là cần phải thay đổi căn bản,
không chỉ đổi mới trên phương diện đào tạo ngành nghề hay giáo dục ở bậc đại
học, mà cần thay đổi từ giáo dục bậc phổ thông, mẫu giáo… Tức là cần giáo dục
học sinh có ý thức và kỹ năng của một cơng dân tồn cầu.
Chương trình giáo dục phổ thơng mới được thực hiện từ năm 2020-2021 thì
mơn Tin học trở thành môn học bắt buộc và trong thời đại thông tin bùng nổ
ngày nay, việc lập được các chương trình tự hoạt động cho máy tính… là cần
thiết. Và để làm được việc đó cần có một q trình nghiên cứu, học tập về ngơn
ngữ lập trình căn bản và lâu dài.
Tuy nhiên mọi thứ điều có điểm khởi đầu của nó, với học sinh việc học ngơn
ngữ lập trình Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao,
qua đó giúp các em hình dung được sự ra đời, cấu tạo, hoạt động cũng như ích
lợi của các chương trình hoạt động trong máy tính, rơbốt… Qua đó giúp các em
có thêm niềm đam mê về tin học, cũng như định hướng về nghề nghiệp mà các
em lựa chọn sau này.
Do đó, xuất phát từ cơ sở trên, tôi đã chọn đề tài “Một số kiến thức giúp rèn
kỹ năng viết chương trình Pascal cho học sinh lớp 8 trường PTDTNT THCS
huyện Kế Sách”.
2. Mục đích, nhiệm vụ nghiên cứu:
Do gặp phải những khó khăn trên nên khi lập trình giải các bài tốn học
sinh thường mắc rất nhiều lỗi, thậm chí có những lỗi các em mắc phải nhiều lần,
tuy nhiên, đối với một số học sinh khá giỏi, đa phần các em rất hào hứng với
việc học lập trình, cụ thể là ngơn ngữ lập trình Pascal. Do đó qua đề tài này tơi
muốn giới thiệu một số kinh nghiệm dạy lập trình Pascal để giúp HS có thể hiểu
bài một cách nhanh chóng, hiểu được kiến thức và kĩ năng lập trình Pascal và


một số ví dụ nhằm giúp học sinh học tốt hơn với môn học mới mẻ này.


2

3. Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu: học sinh các lớp 8A, 8B trường PTDTTN THCS
huyện Kế Sách năm học 2018-2019 và 2019-2020.
Phạm vi nghiên cứu: Một số kiến thức về lập trình (Tin học 8, quyển 3).
4. Phương pháp nghiên cứu:
-Tích lũy kinh nghiệm thực tiễn trong quá trình giảng dạy trong nhà trường.
-Trao đổi kinh nghiệm với đồng nghiệp và lắng nghe sự góp ý của học sinh,
phụ huynh học sinh, …
-Tham gia học tập trên các diễn đàn …
5. Tính mới của đề tài:
Hiện nay, chúng ta đang áp dụng và phát huy phương pháp dạy học theo
hướng phát triển năng lực của học sinh, phát huy tối đa sự tư duy sáng tạo của
các em thông qua việc tự học, tự nghiên cứu,... Tuy nhiên Tin học là một môn
học mới trong nhà trường và lập trình lại là một nội dung khó với các em. Do
đó tơi thấy việc áp dụng và phát huy phương pháp dạy học trực quan là phát
huy tối đa sự tư duy sáng tạo của học sinh thơng qua việc tự học, tự nghiên
cứu... Đó là khi cần dạy một nội dung nào đó cho học sinh, người giáo viên
phải biết phân tích nội dung đó liên quan đến những hoạt động nào; và một số
hoạt động trong đó lại được phân tích thành những hoạt động thành phần; rồi
căn cứ vào mục tiêu tiết học, trình độ học sinh, trang bị cho học sinh các kiến
thức cần thiết để giúp cho học sinh dễ nhớ, dễ hiểu và phát huy được khả năng
tư duy sáng tạo của mình.
Do đó, sau khi áp dụng tơi thấy đề tài này đã giúp học sinh có thể hiểu bài
một cách nhanh chóng, hiểu được kiến thức và kĩ năng lập trình Pascal nhằm
giúp học sinh học tốt hơn với môn học.



3

B. NỘI DUNG
1. Cơ sở lý luận-Một số lỗi sai thường gặp của học sinh
Ban đầu khi học lập trình Pascal học sinh thường gặp một số lỗi cơ bản sau:
Không hiểu được các kiểu dữ liệu, khai báo biến và hằng không đúng kiểu dữ
liệu, không hiểu được thuật tốn (viết chương trình) là gì?.... Do đó muốn học
lập trình được, các em phải nắm vững những kiến thức cơ bản của ngơn ngữ lập
trình một cách có hệ thống (khai báo biến, kiểu dữ liệu,…), biết vận dụng các
câu lệnh theo đúng cú pháp một cách linh hoạt vào từng bài toán cụ thể, đòi hỏi
học sinh phải có tư duy logic và suy nghĩ linh hoạt. Vì vậy, trong quá trình dạy
học giáo viên cần định hướng cho các em biết cách học và nghiên cứu một cách
có hệ thống các ngơn ngữ lập trình mình đang học, biết cách vận dụng lí thuyết
vào bài tập, biết phân dạng bài tập và giải một bài tập với nhiều cách khác nhau.
Đó là một trong những nhiệm vụ trọng tâm của của đề tài này.
*Một số lỗi sai thường gặp của học sinh trong lập trình Pascal:
- Khơng biết khai báo biến.
- Không phân biệt được biến và hằng: Đây là một khái niệm tương đối khó
đối với các em học sinh lớp 8 vì nó hơi trừu tượng. Do đó để hướng dẫn học
sinh dễ hiểu trước hết nên dẫn chứng các em về khái niệm mà các em đã quen
đó chính là “địa chỉ Ơ” trong Excel.
- Không hiểu các dữ liệu, dữ liệu kiểu mảng…
- Không hiểu rõ các câu lệnh…
2. Cơ sở thực tiễn-Các kiểu dữ liệu cơ bản
2.1. Tại sao phải khai báo biến:
Hoạt động cơ bản của chương trình máy tính là xử lí dữ liệu. Trước khi
được máy tính xử lí, mọi dữ liệu nhập vào đều được lưu trong bộ nhớ của máy
tính. Ví dụ, muốn cộng hai số a và b, trước hết hai số đó sẽ được nhập và lưu

trong bộ nhớ máy tính, sau đó máy tính sẽ thực hiện phép cộng a+b.


4

Để chương trình ln biết chính xác dữ liệu cần xử lí được lưu ở vị trí nào
trong bộ nhớ, các ngơn ngữ lập trình cung cấp một cơng cụ lập trình rất quan
trọng đó là biến nhớ, hay được gọi ngắn gọn là biến.
2.2. Không hiểu được biến, hằng và các kiểu dữ liệu:
a) Pascal là một ngôn ngữ chặt chẽ về kiểu dữ liệu. Mỗi một biến, khi được
khai báo đều phải thuộc về một kiểu dữ liệu nào đó.
Ví dụ:
Var

a: integer;

{biến a có kiểu integer}

b: char;

{biến b có kiểu ký tự}

b) Mỗi biến chỉ được gán (hoặc so sánh với) những giá trị tương thích với
kiểu dữ liệu của nó.
Ví dụ:
Var

a: integer;

{kiểu số ngun}


b:char;

{kiểu ký tự}

c:real;

{kiểu số thực}

d: longint;

{kiểu số nguyên có miền giá trị lớn}

Những phép gán sau đây là hợp lệ:
a := 1;
b := ‘c’;
c := 1;

{biến số thực có thể được gán bằng số nguyên}

c := 1.0;

{1.0 là một hằng số thực có giá trị bằng 1}

c := 1.2;
d := 1;
d := 1000000;
c := d;

{biến số thực có thể được gán bằng số nguyên}


Những phép gán sau đây là không hợp lệ:
a := 1.2;

{số nguyên không thể được gán bằng số thực}

d := 1.2;
a := 1000000;

{lỗi tràn số, số nguyên 1000000 có
giá trị quá lớn so với miền giá trị của integer}


5

b := 1;

{kiểu ký tự không thể được gán bằng số}

b := ‘abc’;

{‘abc’ là một hằng số kiểu chuỗi}

2.3. Mỗi kiểu dữ liệu có một số thao tác trên kiểu dữ liệu đó.
Ví dụ:
-Kiểu số ngun và số thực sẽ có các thao tác cộng, trừ, nhân, chia, …
-Kiểu boolean có các thao tác and, or, not…
3. Các giải pháp tiến hành:
Khi dạy và học lập trình nói chung và Pascal nói riêng, nhiều khi người dạy
và người học nơn nóng chỉ muốn lập trình ngay mà khơng nghĩ rằng trong

những bước cơ bản ban đầu là phải hiểu rõ những khái niệm cơ bản, ví dụ như:
bảng chữ cái, các kí hiệu, kiểu dữ liệu… Do đó tơi giới thiệu cho học sinh hiểu
rõ được các kiểu dữ liệu cơ bản trong Pascal và kết hợp sử dụng các phương
pháp dạy học tích cực:
3.1. Kiểu dữ liệu cơ bản.
a) Kiểu số nguyên - integer
Các kiểu dữ liệu số nguyên trong Pascal:
integer -32768 .. 32767
byte

0 .. 255

shortint -128 .. 127
word

0 .. 65535

longint -2147483648 .. 2147483647
b) Kiểu số thực - real
real

2.9*10-39 .. 1.7*1038 và số 0.

Cách viết:
o Viết theo kiểu số thập phân bình thường.
Ví dụ: 3.14
o Viết theo kiểu có phần định trị và phần mũ.
Ví dụ:

3.93E+02 = 3.93 * 102 = 393

3.14E-02 = 3.14 * 10-2 = 0.0314


6

c) Kiểu logic - boolean
Kiểu boolean là một đại lượng chỉ có thể nhận hai giá trị TRUE (đúng)
hoặc FALSE (sai).
Các phép tốn trên kiểu Boolean: and, or, not.
Ví dụ 1:
a := true;
b := false;
c := a and b; { c = false}
d := a or b; {d = true}
e := not(a); {e = false}
Các phép toán quan hệ sau đây sẽ cho kết quả là kiểu boolean:
Ví dụ 2:
a := 5;
b := 6;
c := (a > b); {c = false}
d := (a<>b); {d = true}
d) Kiểu ký tự - char
Các giá trị thuộc kiểu dữ liệu này là những chữ viết, ký hiệu.
Cách viết: các ký tự được đặt trong hai dấu nháy đơn.
Ví dụ:
Var x: char;

x := ‘A’;
x := ‘a’;
x := ‘+’;

x := ‘1’;

{chữ số 1, khác với số nguyên 1}

x := ‘ ‘;

{ký tự trống}


7

e) Kiểu chuỗi ký tự - string
Các giá trị thuộc kiểu này là một chuỗi liên tiếp nhau các ký tự. Chuỗi ký
tự có thể là trống (khơng có ký tự nào) hoặc chỉ có một ký tự và có tối đa là 255
ký tự.
Cách viết: chuỗi các ký tự được viết trong hai dấu nháy đơn.
Cách khai báo
Var

s: string;

{khai báo chuỗi s có độ dài tối đa
255 ký tự}

s1: string[80];

{khai báo chuỗi s1 có độ dài tối đa
80 ký tự}

s2: string[21];


{khai báo chuỗi s1 có độ dài tối đa
21 ký tự}

Ví dụ:
s := ‘Chao cac ban’;
s1 := ‘’;

{chuỗi rỗng}

3.2. Các phép toán trên các kiểu dữ liệu:
a)Các phép toán về số học:
Phép toán

*
/
DIV
MOD
+
-

Kiểu số hạng
Nguyên

Kiểu kết quả
Nguyên

Real

Real


Real, nguyên
Nguyên

Real
Real

Real

Real

Real, nguyên
Nguyên

Real
Nguyên

Nguyên

Nguyên

Nguyên

Nguyên

Real

Real

Real, nguyên

Nguyên

Real
Nguyên

Real

Real


8

Real, nguyên
b)Các phép toán về logic – boolean:
Phép toán

NOT
AND
OR

Real

Kiểu số hạng
Boolean

Kiểu kết quả
Boolean

Boolean


Boolean

Boolean

Boolean

c)Các phép toán so sánh:
Phép toán
Các phép toán so sánh

Kiểu số hạng
Kiểu kết quả
-Kiểu integer hay real.
Boolean
-Cùng kiểu kí tự.
3.3. Sử dụng các phương pháp dạy học tích cực:
3.3.1. Cho học sinh thực hiện và luyện tập những hoạt động và hoạt

động thành phần tương thích với nội dung và mục tiêu dạy học:
a. Phát hiện những hoạt động tương thích với nội dung.
Ví dụ: Dạy học sinh phân biệt được biến và hằng: Để hướng dẫn học sinh
dễ hiểu trước hết nên dẫn chứng các em về khái niệm mà các em đã quen đó
chính là “địa chỉ Ô” trong Excel.
- Hiểu và biết được địa chỉ Ô trong Excel.
- So sánh được địa chỉ Ô trong Excel và ô nhớ (biến) trong Pascal.
- Hoạt động phân tích khi nào dùng biến, khi nào dùng hằng.
b. Phân tách hoạt động thành những thành phần.
Ví dụ 1: Khi dạy câu lệnh:
FOR biến_điều_khiển := giá_trị_đầu TO giá_trị_cuối DO câu_lệnh
Giáo viên yêu cầu học sinh phân tách câu lệnh này thành những câu lệnh

thành phần diễn ra theo trình tự như sau:
B1: Kiểm tra điều kiện nếu giá_trị_đầu > giá_trị_cuối thì kết thúc lệnh For.
B2: Gán biến_điều_khiển := giá_trị_đầu.
B3: Thực hiện câu_lệnh.
B4: Kiểm tra điều kiện thoát: nếu biến_điều_khiển = giá_trị_cuối thì kết
thúc lệnh For.
B5: Tăng giá trị của biến_điều_khiển lên 1. Quay lên B3.


9

Sau khi phân tách câu lệnh For học sinh sẽ nắm rõ hơn quá trình thực hiện
câu lệnh
=> tránh nhiều sai sót khi viết chương trình.
Ví dụ 2: Hiểu ý nghĩa và công dụng của câu lệnh
IF <ĐK> THEN <CV1> ELSE <CV2>;
Ý nghĩa: Nếu ĐK đúng thì thực hiện CV1, ngược lại (ĐK sai) thì thực hiện
CV2.
Cụ thể: IF a>b THEN max:=a ELSE min:=b;
3.3.2. Phân bậc hoạt động làm căn cứ điều khiển q trình dạy học:
a.Chính xác hóa mục tiêu: Nếu khơng có sự phân bậc hoạt động thì người
ta thường đề ra mục tiêu dạy học một cách quá chung chung.
Ví dụ: Để học sinh nắm được khái niệm máng một chiều, giáo viên có thể
phân bậc hoạt động để đề ra mục tiêu chính xác hơn:
-Học sinh biết cách khai báo mảng một chiều.
-Biết nhập các giá trị vào một mảng.
-Biết cách xuất giá trị một mảng.
-Thành thạo trong việc truy xuất đến một phần tử của mảng.
b.Tuần tự nâng cao yêu cầu: Giáo viên cũng có thể dựa vào sự phân bậc
hoạt động để tuần tự nâng cao yêu cầu đối với học sinh.

c.Tạm thời hạ thấp yêu cầu khi cần thiết: Trường hợp học sinh gặp khó
khăn trong khi hoạt động, giáo viên có thể tạm thời hạ thấp yêu cầu. Sau khi học
sinh đạt được nấc thang này, yêu cầu lại được tiếp tục tuần tự nâng cao.
d.Dạy học phân hóa: Trong dạy học phân hóa, người giáo viên cần tính tới
những đặc điểm của cá nhân học sinh, chú ý đến từng đối tượng hay từng loại
đối tượng về trình độ tri thức, kĩ năng, kĩ xảo đã đạt, về khả năng tiếp thu, nhu
cầu luyện tập,…để tích cực phân hóa hoạt động của học sinh trong học tập.
3.4. Có nhiều dạng bài tập:
Nguyên tắc khi mới làm quen với một ngôn ngữ lập trình nào đó, thì người
học cần phải làm quen với nhiều dạng bài tập như bài tập về viết thuật toán, bài


10

tập về đọc hiểu chương trình, bài tập về sửa lỗi chương trình, trong giới hạn bài
viết ở đây tơi xin nêu ra một số ví dụ như sau:,…
*Bài tập về khai báo biến-kiểu dữ liệu:
Ví dụ 1: Trong Pascal, nếu một biến chỉ nhận giá trị nguyên trong phạm vi
từ 10 đến 25532 thì biến đó có thể được khai báo bằng các kiểu dữ liệu nào?
Đó là các kiểu integer, word, longint
Ví dụ 2: Biến P có thể nhận các giá trị 5; 10; 15; 20; 30; 60; 90 và biến X
có thể nhận các giá trị 0,1; 0,2; 0,3; 0,4; 0,5. Khai báo nào trong các khai báo
sau là đúng?
a. var X,P:byte;

b. var P,X:real;

c. var P:real; X:byte;

d. var X:real; P:byte;


Khai báo đúng là d
Ví dụ 3: Viết chương trình nhập các số nguyên x, y từ bàn phím, sau đó
hốn đổi giá trị và xuất kết quả ra màn hình.
Chương trình này yêu cầu khai báo hai biến x và y có kiểu dữ liệu là số
nguyên (integer), tuy nhiên ta có thể khai báo thêm một biến tạm z cũng là kiểu
integer, ta khai báo như sau:
Var x,y,z:integer;
Ví dụ 4: Hãy viết chương trình nhập vào bán kính của hình tròn và in ra
màn hình chu vi của hình tròn đó.
Ở đây trên phương diện lập trình bán kính ta có thể khai báo là kiểu số
ngun hay thực, tuy nhiên cơng thức để tính chu vi là (chu vi = 2.pi.r và
pi=3,14) do đó chu vi bắt buộc có kiểu dữ liệu là số thực.
Chương trình khai báo như sau:
Cách 1:
Var r:integer;
Chuvi:real;
Cách 2:
Var r,chuvi:real;


11

Ví dụ 5 (Bài 2. SGK): Thử viết chương trình nhập các số nguyên X và Y, in
giá trị của X và Y ra màn hình. Sau đó hốn đổi các giá trị của X và Y rồi in lại
ra màn hình giá trị của X và Y.
Ở đây ta có thể gợi ý như sau:
Giả sử ta có hai ly nước: “một ly nước cam và một ly nước chanh”, làm thế
nào để đổ ly nước cam qua ly nước chanh và ngược lại?


Ly nước cam

Ly nước chanh

Ở đây ta không thể thực hiện trực tiếp việc đổ ly nước cam vào ly nước
chanh hoặc ngược lại được, mà ta phải có thêm một ly khơng để đổ ly nước cam
hoặc chanh vào ly không này.

Sau khi đổ ly nước cam vào ly khơng thì ta có thể đổ ly nước chanh vào ly
nước cam (ly khơng).
Giải thích kĩ thêm một chút là ở đây ta không thể thực hiện trực tiếp hai
phép gán: x←y và y←x, bởi sau phép gán thứ nhất, giá trị của x đã bị thay bằng
giá trị của y và kết quả của hai phép gán này là cả hai biến x và y cùng có giá trị
ban đầu của biến y. Vì thế, cần dùng biến trung gian, ví dụ biến z, để lưu tạm
thời giá trị của biến x.
Chương trình được viết như sau:
Program hoan_doi;


12

Var x,y,z:integer;
Begin
Readln(x,y);
Writeln(x,’ ’,y);
z:=x;
x:=y;
y:=z;
Writeln(x,’ ’,y);
Readln ;

End.
Ví dụ 6: Quy lạ về quen:
Khi dạy bài tính tổng S = 12 + 22 + 32 +… + n2 giáo viên cho học sinh giải
tương tự bài tập viết chương trình tính tổng S = 1 + 2 + 3 + …+ n.
4. Kết quả đạt được sau khi áp dụng các biện pháp:
Qua hai năm thực hiện đề tài kết quả đạt được rất khả quan:
*Đối với học sinh giỏi: Năm học 2018-2019 đạt được 01 giải nhất cấp
huyện, 01 giải II cấp tỉnh; năm học 2019-2020 được 01 giải nhất cấp huyện (cấp
Tỉnh chưa thi).
*Đối với HS đại trà:
Bảng số liệu học sinh lớp 8 năm học 2018-2019 khi chưa thực hiện đề tài:
Lớp
8A
8B

Số học sinh khảo sát
32
31

Học kì I
9
6

-Khi thực nghiệm qua các đối tượng học sinh đã nêu trên, các em đã biết
khai báo biến với các kiểu dữ liệu và tránh được các lỗi thường gặp khi học lập
trình Pascal.
-Bảng số liệu kết quả đạt được của học sinh lớp 8 năm học 2019-2020 sau
khi thực hiện đề tài:



13

Lớp
8A
8B

Số học sinh khảo sát
31
31

Học kì I
22
19

C. KẾT LUẬN
1. Kết luận
Đổi mới phương pháp dạy học hiện nay đang là vấn đề có ý nghĩa quan
trọng trong việc nâng cao chất lượng dạy học. Đó là một trong những mục tiêu
quan trọng nhất trong cải cách giáo dục ở nước ta hiện nay. Tuy nhiên việc ứng


14

dụng CNTT nhằm đổi mới nội dung, phương pháp dạy học là một cơng việc lâu
dài, khó khăn đòi hỏi rất nhiều điều kiện về cơ sở vật chất, tài chính và năng lực
của đội ngũ giáo viên.
Qua thực tế giảng dạy và học tập, được sự giúp đỡ của các thầy cô, các
bạn đồng nghiệp, bản thân tôi đã tiếp thu được nhiều điều bổ ích, thiết thực cho
quá trình giảng dạy và cơng tác. Tơi mạnh dạn chọn đề tài này với mong muốn
được đóng góp một phần cơng sức nhỏ bé của mình vào sự nghiệp giáo dục của

nhà trường trong việc đổi mới phương pháp dạy học.
2. Kiến nghi
Để việc đổi mới phương pháp dạy học trong nhà trường được tốt hơn tôi
xin kiến nghị: nhà trường luôn tạo điều kiện về cơ sở vật chất, tinh thần cho
những giáo viên giảng dạy đồng thời tạo điều kiện cho GV được đi tập huấn các
chuyên đề bồi dưỡng học sinh giỏi, chương trình ứng dụng CNTT trong giảng
dạy, để bổ sung thêm kiến thức và học hỏi thêm kinh nghiệm của đồng nghiệp.
Tăng cường sách tham khảo cũng như tài liệu mới về Tin học để giáo viên có cơ
sở trao đổi và mở rộng thêm kiến thức, cung cấp thêm máy chiếu để tiết dạy trở
nên sinh động hơn, giúp học sinh dễ quan sát tiếp thu bài tốt hơn.
Trong quá trình viết đề tài, do điều kiện về thời gian và năng lực có hạn,
đề tài khơng tránh khỏi những sai sót hạn chế. Tơi rất mong nhận được sự đóng
góp chỉ bảo của các thầy cô giáo và các đồng nghiệp để làm kinh nghiệm quý
báu cho bản thân trong quá trình giảng dạy.

Tài liệu tham khảo
-Sáng kiến kinh nghiệm cấp huyện, tỉnh qua các năm.
-Tin học dành cho Trung học cơ sở (Quyển 3) của Bộ giáo dục.
-Nhiệm vụ công nghệ thông tin của Bộ GD-ĐT, Sở GD-ĐT Sóc Trăng ...


15

Nhận xét của Hội đồng Xét duyệt sáng kiến cải tiến kỹ thuật
Trường PTDTNT THCS Huyện Kế Sách
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................



16
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................



×