1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình Pascal cơ bản cực kì hay và tuyệt vời

20 278 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 208,03 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

< Nhỏ hơn trên màn hình sẽ hiển thị chữ Toán Writeln‘Nội dung cần tìm’; - Phần nội dung phải để trong cặp dấu ngoặc ‘ ’ VD: Writeln‘Toán’; -> trên màn hình sẽ hiển thị chữ Toán và xuốn

Trang 1

Chuyên đề: Pascal cơ bản

Bài 1-Cấu trúc+Write&Read+Thuật toán+If … then …

I/ Cấu trúc một chương trình Pascal

1. Cấu trúc

- Một chương trình Pascal gồm 2 phần

+ Phần khai báo bao gồm: khai báo biến; khai báo thư viện

+ Phần thân bao gồm các lệnh mà máy tính cần thực hiện Bắt đầu = Begin và kết thức = End

- Khai báo thư viện: bắt đầu bằng uses tenthuvien[cosan]

- Khai báo biến: kiểu dữ liệu

2. Kiểu dữ liệu

- Một số kiểu dữ liệu phổ biến nhất trong Pascal:

+ Số nguyên: integer

+ Số thực: real (số thực là tập hợp số âm, số dương, số 0 và số thập phân)

+ Kí tự: char (VD: a, b, c, 1, % và dấu cách)

+ Xâu kí tự: string (VD: ABC, fefei, 122et, &$*#, Thành Huy)

- Các phép toán với dữ liệu

thực)

VD: 5 và 2

5 + 2 = 7 5/2 = 2,5

5 – 2 = 3 5 div 2 = 2 ( có nghĩa là 5

5 * 2 = 10 5 mod 2 = 1 chia 2 = 2 dư 1)

 Ab ( trong toán học)

 a * b * ((a+2)/(8-4)) – (7/(x*x)) – (5/(8*(4*x -7))) - Trong pascal

3. Các kí hiệu

Trang 2

< Nhỏ hơn <

- Trong Pascal, các biểu thức so sánh trả về kết quả Đ hoặc S

4. Cách khai báo và sử dụng biến trong chương trình

a) Cách khai báo biến

var tenbien:kieudulieu; (tất cả các câu lệnh trong Pascal khi kết thúc đều phải

có dấu ‘;’ trừ một số ngoại lệ như begin,…)

Trong đó: var là từ khóa để khai báo biến

Tên biến là do người lập trình đặt (ko chứa kí tự đặc biệt (^, &, *,…), ko cách, ko bắt đầu bằng chữ số (VD: 1abc - là sai)

Kiểu dữ liệu: là các kiểu dữ liệu có sẵn trong Chương trình

Có thể khai báo như sau: a,b :integer; vì khi khai báo có 2 hoặc nhiều biến hơn cùng kiểu dữ liệu thì gộp như trên

- Bài tập nhỏ

Hãy khai báo 3 biến kiểu số nguyên; 3 biến kiểu số thực; 3 biến kiểu kí tự; 3 biến kiểu xâu kí tự

Làm thử

var …,…,…:………….;

…,…,…:………….;

…,…,…:………….;

…,…,…:………….;

b) Cách sử dụng biến

- Gán giá trị mới cho biến thì giá trị cũ bị xóa đi

- Cú pháp của phép gán: tênbiến:= biểuthức;

II/ Lệnh Read & Write

5. Hai lệnh cơ bản của Pascal

- Lệnh in ra màn hình:

Write(‘Nội dung cần tìm’); - Phần nội dung phải để trong cặp dấu ngoặc ‘ ’ VD: Write(‘Toán’); -> trên màn hình sẽ hiển thị chữ Toán

Writeln(‘Nội dung cần tìm’); - Phần nội dung phải để trong cặp dấu ngoặc ‘ ’ VD: Writeln(‘Toán’); -> trên màn hình sẽ hiển thị chữ Toán và xuống dòng

{Có thể In ra một biến có sẵn (Lúc sau sẽ nói)}

- Lệnh nhập dữ liệu vào:

Read(biến);

VD: Read(biến); -> trên màn hình sẽ hiển thị một phần cho nhập giá trị

Readln(biến);

VD: Readln(biến); -> trên màn hình

VD: Hãy viết một phần mềm nhập vào 3 số kiểu nguyên và in 3 số ra:

Trang 3

- Lệnh readln; ở cuối có nghĩa là dừng màn hình (làm cho màn hình đứng lại)

 Kết quả:

Các số 5,6,7 trên hình do mình tự nhập

III/ Thuật toán & Hướng dẫn giải một bài toán

6. Các bước để giải 1 bài toán

- Một bài toán để giải bằng Pascal cần thực hiện 3 bước (thuật toán)

B1: Xác định bài toán (Input – Output)

B2: Mô tả bài toán (Mô tả = lời)

B3: Dựa vào phần mô tả bằng lời -> viết lệnh trên chương trình

VD: Nhập 3 số a,b,c Ktra xem đó có phải là 3 cạnh của tam giác không, Nếu phải tính

chu vi của hình Nếu sai in thông báo

(Cách viết thuật toán ở dưới phần 2)

IV/ Cấu trúc lệnh điều kiện

Trang 4

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

(1 – Dạng thiếu) If <điều kiện> then <câu lệnh>;

(2 – Dạng đủ) If <điều kiện> thên <câu lệnh 1> else <câu lệnh 2>;

Ý nghĩa câu lệnh:

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

Là nếu điều kiện được đưa ra đúng thì sẽ thực hiện câu lệnh

If <điều kiện> thên <câu lệnh 1> else <câu lệnh 2>;

Điều kiện là một phép so sánh, chỉ có thể đúng hoặc sai

Là nếu điều kiện được đưa ra đúng thì sẽ thực hiện câu lệnh 1 nếu sai thì thực hiện câu lệnh 2

Câu lệnh 1,2 là 1 lệnh Nếu là nhiều lệnh phải thực hiện phải đặt lệnh trong cặp:

- Nếu dạng thiếu

- Đặt các câu lệnh trong cặp Begin – End; (có ‘’;’’)

- Nếu dạng đủ

- Đặt các câu lệnh 1 trong cặp begin – End (Không có ; & đây cũng chính là ngoại

lệ thứ 3 về không có ‘’;’’)

- Đặt các câu lệnh 2 trong cặp begin – End;

VD: Nhập 3 số a,b,c Ktra xem đó có phải là 3 cạnh của tam giác không, Nếu phải tính chu vi của hình Nếu sai in thông báo

Thuật toán:

Input: a,b,c

Output: Có phải 3 cạnh của tam giác Đúng: in chu vi Sai in thông báo

Mô tả: <CÓ THỂ BỎ CHỮ MÔ TẢ>

B1: Nhập a,b,c

B2: Kiểm tra: -> Nếu a+b>c và a+c>b và b+c>a thì là cạnh của tam giác -> |

| -> Cvi:= a+b+c

 Viết thành lệnh:

Var a,b,c:integer;

Begin

Write(‘Nhap a: ’); readln(a);

Write(‘Nhap b: ’); readln(b);

Trang 5

Write(‘Nhap c: ’); readln(c);

If ((a+b)>c)) and ((a+c)>b)) and ((b+c)>a)) then

Begin

Write(‘Chu vi cua hinh tam giac la: ’);

Writeln(a+b+c);

End

Else Writeln(‘Khong phai la tam giac’);

Readln {Trường hợp ngoại trừ thứ 2: không ‘;’ sau lệnh }

End.

Bài 2: Nhập x, tính y biết y=5x+8

Thuật toán <Điền vào chỗ ‘’…’’>

Input: …

Output: …

B1: Nhập …

B2: Tính … -> - x=0 -> y= …

| | x<>0 -> y=5*x+8

 Viết thành lệnh

Var x,y:integer;

Begin

Write(‘Nhap x: ’); readln(x);

If x=0 then y:=0 else y:=5*x+8;

Writeln(‘y= ’,y);

Readln

End.

Bài 3: Nhập 3 số a,b,c Tìm số lớn nhất trong 3 số a,b,c (Dựa vào thuật toán viết thành lệnh)

Thuật toán:

Trang 6

Input: a,b,c

Output: Số lớn nhất

B1: Nhập a,b,c

B2: Gán sln:=a

B3: Nếu sln<b thì sln:=b

B4: Nếu sln<c thì sln:=c

B5: In sln (sln: số lớn nhất)

Lệnh:

………

………

………

………

………

………

………

………

………

………

………

………

………

Lưu ý: Có thể sử dụng các câu lẹnh if…then lồng nhau.

Sử dụng từ khóa and có thể kết hợp nhiều phép so sánh đơn giản thành một

phép so sánh phức hợp Giá trị của phép so sánh này là đúng khi và chỉ khi tất cả các phép so sánh đơn giản đều đúng Ngược lại chỉ cần 1 phép sai thì nó có giá trị là sai

Trang 7

Từ khóa or cũng được sử dụng để kết hợp nhiều phép so sánh đơn giản Giá trị

của phép so sánh này chỉ sai khi tất cả các phép so sánh đều sai Ngược lại chỉ cần 1 phép đúng thì nó có giá trị là đúng.

- Suy ra từ khóa and và or thì ngược nhau

Bài tập

- Nhập vào 3 cạnh của H.TamGiác, tính chu vi, diện tích

- Viết lệnh nhập vào 2 số và ktra số nào lớn hơn và in ra màn hình số lớn hơn

BTVN

- Viết lệnh để tìm một số có 2 chữ số biết tổng các chữ số =5 và chữ số hàng chục > chữ số hàng đơn vị là 1

- Viết chương trình nhập vào tên, tuổi, số điểm 4 môn và in ra TBC điểm 4 môn

Chuyên đề: Pascal cơ bản

Bài 2-For … do+Write&Read+Thuật toán+If … then …

I/ Cấu trúc lệnh lặp với số lần đếm trước

Trang 8

1. Khái niệm

- Là lặp đi lặp lại nhiều việc hoặc 1 việc với một số lần cho sẵn

2. Ví dụ lặp

- Ví dụ:

Writeln(‘Nhap so thu ’, ‘1’,’ :’); Writeln(‘Nhap so thu ’, ‘2’,’ :’);

Writeln(‘Nhap so thu ’, ‘3’,’ :’); Writeln(‘Nhap so thu ’, ‘4’,’ :’);

Chúng ta có thể viết lệnh lặp cho 4 phần này (cách viết ở phần 3)

3. Cú pháp

For <biến đếm(bắt buộc phải là integer hoặc …)>:=<giá trị đầu> to <giá trị cuối> do

<câu lệnh>

+ Trong đó for, to, do là từ khóa.

+ Biến đếm là một số nguyên

+ Số lần lặp = giá trị cuối – giá trị đầu + 1

+ Mỗi lần lặp biến đếm tự tăng lên 1

+ Giá trị đầu< Giá trị cuối

VD: Write(‘Nhap so thu ’, ‘1’,’ :’); Write(‘Nhap so thu ’, ‘2’,’ :’);

Write(‘Nhap so thu ’, ‘3’,’ :’); Write(‘Nhap so thu ’, ‘4’,’ :’);

For i:=1 to 4 do writeln(‘Nhap so thu ‘, i, ‘ :’);

 Số vòng: 4

In ra

i:=1 -> Nhap so thu 1 :

i:=2 -> Nhap so thu 2 :

i:=3 -> Nhap so thu 3 :

i:=4 -> Nhap so thu 4 :

VD: S = 1+2+…+20

Lệnh

{Phần trước cậu tự viết nhé}

s:=0;

for i:=1 to 20 do s:=s+i;

Trang 9

I=1 -> s=s+1 -> s=0+1=1

I=2 -> s=s+2 -> s=1+2=3

I=3 -> s=s+3 -> s=3+3=6

I=4 -> s=s+4 -> s=6+4=10

I=5

I=6

I=7

I=8

I=20

Bài 1: Tính tổng các số lẻ từ 1 -> 50 và in ra kết quả

Mẫu:

Thuật toán:

Input: {Không có}

Output: Tổng các số lẻ từ 1 -> 50

B1: Chạy từ 1 -> 50

B2: Nếu là lẻ thì cộng vào tổng

B3: In ra k.quả

Lệnh

Var i,s:integer;

Begin

S:=0;

For i:=1 to 50 do if i mod 2=1 then s:=s+i;

Writeln(‘Tổng là: ‘, s);

Readln

End.

Trang 10

Bài 2: S = 0 + 3 + 6 + … + 57 + 60 Tính S.

Var s,i:integer;

Begin

S:=0;

For i:=0 to 60 do if 0 mod 3=0 then s:=s+i;

Writeln(‘S= ’,s);

Readln

End.

Lưu ý: Giống như câu lệnh rẽ nhánh if…then, các câu lệnh for…do có thể lồng

nhau Khi đó các biến đếm trong các câu lệnh lặp phải khác nhau

4. Nâng cao – Lệnh downto

Tương tự: downto có cấu trúc như sau:

For <biến đếm(bắt buộc phải là integer hoặc …)>:=<giá trị cuối> downto <giá trị đầu>

do <câu lệnh>

+ Trong đó for, downto, do là từ khóa.

+ Biến đếm là một số nguyên

+ Số lần lặp = giá trị cuối – giá trị đầu + 1

+ Mỗi lần lặp biến đếm tự giảm đi 1

+ Giá trị cuối phải > giá trị đầu

II/ Cấu trúc lệnh lặp với số lần chưa biết trước

5. Cú pháp

While <điều kiện> do <câu lệnh>

Trong đó: while, do là từ khóa

Điều kiện là một phép so sánh

Câu lệnh có thể là 1, nếu nhiều phải đặt trong cặp Begin – End ;

6. Cách hoạt động

Bước 1: Kiểm tra điều kiện

Trang 11

Bước 2: Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và lệnh lặp kết thúc Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1

7. Khái niệm

Vòng lặp chưa biết trước tương từ đã biết trước nhưng chỉ có là khi dùng vòng lặp chưa biết trước thì không cần nhập giá trị

8. VD:

a) S = 1 + 2 + 3 + … + 100

Dùng lệnh while…do:

Var i,s:integer;

Begin

I:=1;

While i<101 do (hoặc while i <= 100 do)

Begin

S:=s+i;

I:=i+1;

End;

Writeln(‘S= ’,s);

Readln

End.

Mỗi lần chúng ta để tăng vòng lặp thì phải tăng thủ công bằng lệnh nhưng lệnh này lại rất tiện trong một số trường hợp

Dùng lệnh for…do

Var i,s:integer;

Begin

For i:=1 to 100 do s:=s+i;

Writeln(‘s= ’s);

Readln

End.

Trang 12

b) Cho m,n (m>n) nhập từ bàn phím Tính tổng các số chẵn từ n đến m và in ra.

Cách làm: (ở bài này ta sẽ luyện tập dùng lệnh while…do)

Var m,n,tc:integer;

Begin

Write(‘Nhap m’); readln(m);

Write(‘Nhap n’); readln(n);

While n=<m do

Begin

If n mod 2=1 then tc:=tc+n;

N:=n+1;

End;

Writeln(‘Tong la: ’,tc);

Readln

End.

9. Lặp vô hạn lần – Lỗi lập trình cần tránh

Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc Chẳng hạn, chương trình dưới đây lặp lại vô hạn

Var a:integer;

Begin

A:=5;

While a<6 do writeln (‘A’);

End.

Trong chương trình trên, giá trị của biến a luôn luôn bằng , điều kiện a<6 luôn luôn đúng nên lệnh writeln(‘A’) luôn được thực hiện

Do vậy, khi thực hiện vòng lặp, điều kiện trong câu lệnh phải được đổi để sớm hay muộn giá trị của điều kiện được chuyển từ đúng sang sai Chỉ như thế chương trình mới không rơi vào những vòng lặp vô hạn

Trang 13

Bài tập

- S= 1 + 2 + 3 + … + n (n thuộc N*) với n nhập từ bàn phím Tính S bằng lệnh while…do

- Tính tổng các số có 2 lần đơn vị=4 từ 10 -> 300

VD: Số đó có thể là 42 vì hàng đơn vị là 2 và 2 lần đơn vị tức là 4 và trong khoảng

từ 10 đến 300

BTVN

- Viết chương trình nhập vào n và lập bảng cửu chương n (Có trong SGK)

- Tính tổng các số lẻ từ m đến n (m<n) và in ra Dùng lệnh while…do

Chuyên đề: Pascal cơ bản

Bài 3-Mảng-Cách bật đuôi mở rộng

I/ Mảng

1. Cú pháp

Trang 14

Tên_mảng:array[<chỉ số đầu> <chỉ số cuối>] of <kiểu dữ liệu>

2. Ví dụ về khai báo

Var A:array[1 100] of string;

Trong đó biến A có thể có 100 phần tử

3. Ví dụ

a) Nhập tên 40 bạn trong lớp và in ra bạn thứ 10

var i:integer;

hocsinh:array[1 40] of string;

begin

for i:=1 to 40 do

begin

write(‘Ten ban thu ’,i,’ la: ’); readln(hocsinh[i]);

end;

writeln(‘Ten ban thu 10 la: ’, hocsinh[i]);

readln

end.

b) Nhập mảng số nguyên Đếm và in ra số lượng p.tử chẵn

Var i,n,sl:integer;

So:array[1 100] of integer;

Begin

sl:=0;

Readln(n);

For i:=1 to n do begin

Write(‘So thu ’,i,’ :’); readln(so[i]);

If so[i] mod 2=0 then sl:=sl+1;

End;

Writeln(‘So luong p.tu chan la: ’,sl);

Readln

Trang 15

II/ Cách bật đuôi mở rộng

1. Đuôi mở rộng là gì?

Đuôi mở rộng là phần đuôi sau dấu chấm của tên file

Đuôi mở rộng là viết tắt của phần mềm

Cấu trúc một tên file:

<tenfile>.<duoimorong>

Ví dụ:

- File word tên là: “Tự học Pascal”

 Trên màn hình tên là: Tự học Pascal.doc

- File pascal tên là: “Tam giac”

 Trên màn hình tên là: Tam giac.pas

Có một số máy chưa bật sẽ không có phần mở rộng

2. Cách bật đuôi mở rộng

B1: Mở Folder Options

* Trong Windows XP: Mở My Computer, trên thanh công cụ click Tools > Folder Options

Nếu không thấy phần Tools thì nhấn phím Alt sẽ có

* Trong Windows 7: Mở Windows Explorer > Organizie > Folder and search options

B2: Trong hộp thoại Folder Options > chọn Tab View > bỏ chọn ở dòng "Hide extansions for file types" để hiển thị phần mở rộng của các file trong máy tính >OK

để lưu lại thiết lập

Vậy là phần mở rộng đã mở ra

- Nếu chưa hiểu, có thể xem trên mạng sẽ có

- Phần mở rộng đã mở, có thể gửi bài nhanh hơn

Bài tập

- Nhập mảng số thực với số phần tử nhập từ bàn phím Tính TBCộng các số chẵn

Trang 16

- Nhập mảng số nguyên với số phần tử nhập từ bàn phím Tìm số lớn nhất, nhỏ nhất

Chuyên đề: Pascal-File

Bài 4-Tệp trong Pascal

B4/ Tệp

1. Cú pháp khai báo

var <bientep>:text;

Trang 17

2. Các thao tác với tệp văn bản

1 Mở tệp mới để ghi

Assign(<bientep>,<tenfile>);

Rewrite(<bientep>);

2 Mở tệp để lấy dữ liệu

Assign(<bientep>,<tenfile>);

Reset(<bientep>);

3 Mở tệp để ghi thêm

Assign(<bientep>,<tenfile>);

Append(<bientep>);

3. Đóng tệp

Close(<bientep>);

Lưu ý: lệnh assign là lệnh để mở tệp

4. Bảng

Rewrite(<bientep>); Reset(<bientep>); Append(<bientep>); Định

nghĩa Là để tạo 1 file mới để ghi vào Là để mở một file có sẵn để lấy dữ

liệu

Là để mở một file có sẵn

và ghi vào tiếp

VD lệnh

(Các

lệnh sẽ

được

thực

hiện

trên 1

file là

thu.txt

Assign(f,’thu.txt’);

Rewrite(f);

Writeln(f, ‘Day la file

thu’);

Close(f);

Assign(f,’thu.txt’);

Reset(f);

Readln(f, a); {a là kiểu dữ liệu string}

Close(f);

Assign(f,’thu.txt’);

Append(f);

Writeln(f, ‘Ghi them vo file do’);

Close(f);

Trước

khi nhập

lệnh

Chưa có chữ Day la file

thu

a=

{a không có giá trị}

Chưa có chữ Ghi them vo file do

Trang 18

Sau khi

nhập

lệnh

a=day la file thu

Lưu ý: Các file txt sẽ tự tạo theo lệnh sẽ ở trong cùng file pascal bạn lập trình

Để mở các file pascal tạo các bạn có thể đặt chuột vào giữa tên file (không đặt ở phần *)

và nhấn phím Ctrl + Enter

5. Bài tập ví dụ

1) Nhập vào từ bàn phím một số N, in X ra file ketqua.txt, biết file x=(n+2)x8

Lệnh

Var n,x:integer;

f:text;

Begin

Write(‘Nhap N: ’); readln(n);

X:=(n+2)*8;

Assign(f, ‘ketqua.txt’);

Rewrite(f);

Write(f, x);

Close(f);

End.

2) Tạo một file có tên là abc.txt và ghi trong đó các chữ như sau:

123

Abc

Rồi lấy dữ liệu dòng đầu tiên từ file abc.txt để in ra màn hình

Phần tạo file tự làm

Lệnh:

Var x:integer;

f:text;

Trang 19

Assign(f, ‘abc.txt’);

Reset(f);

Readln(f, x);

Close(f);

Writeln(x);

Readln;

End.

3) Dùng file abc.txt rồi ghi tiếp bằng lệnh trên Pascal có nội dung: 123abc

Lệnh

Var f:text;

Begin

Assign(f, ‘abc.txt’);

Append(f);

Writeln(f, ‘123abc’);

Close(f);

End.

Sau khi thực hiện lệnh, các bạn mở file abc.txt ra để ktra xem có thêm dòng đó ko

Bài tập

Nhập một số N từ bàn phím Sau đó ghi n vào file tinh.txt

BTVN

Nhập một số N từ bàn phím Sau đó tính tổng các số từ 1 đến N vào file nhap.txt

Ngày đăng: 26/10/2017, 11:16

HÌNH ẢNH LIÊN QUAN

- Lệnh in ra màn hình: - Lập trình Pascal cơ bản cực kì hay và tuyệt vời
nh in ra màn hình: (Trang 2)
- Lệnh readln; ở cuối có nghĩa là dừng màn hình (làm cho màn hình đứng lại) - Lập trình Pascal cơ bản cực kì hay và tuyệt vời
nh readln; ở cuối có nghĩa là dừng màn hình (làm cho màn hình đứng lại) (Trang 3)
4. Bảng - Lập trình Pascal cơ bản cực kì hay và tuyệt vời
4. Bảng (Trang 17)
Rồi lấy dữ liệu dòng đầu tiên từ file abc.txt để in ra màn hình. Phần tạo file tự làm - Lập trình Pascal cơ bản cực kì hay và tuyệt vời
i lấy dữ liệu dòng đầu tiên từ file abc.txt để in ra màn hình. Phần tạo file tự làm (Trang 18)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w