Cho biết ý nghĩa chương trình pascal ôn thi

Bạn đang nằm trong đội tuyển học sinh giỏi tin học của trường hay đang chuẩn bị dự thi tin học trẻ lĩnh vực lập trình Pascal hoặc đơn giản bạn muốn tìm hiểu về lập trình Pascal, xin giới thiệu với các bạn Series bài viết hướng dẫn tự học lập trình Pascal miễn phí từ cơ bản đến nâng cao tại học tập chia sẻ

Video tự học pascal

Pascal là 1 trong những ngôn ngữ lập trình cấp cao sớm xuất hiện và phần nào thể hiện được ưu điểm của nó trong việc ứng dụng để giải quyết các bài toán trên máy tính. Thêm nữa Pascal cũng được đưa vào nhiều trường học để giảng dạy lập trình do tính gần gũi và khoa học trong cú pháp của nó.

Giới thiệu chương trình Pascal

  • Hiểu được các khái niệm cơ bản về ngôn ngữ Pascal.
  • Biết cách cài đặt Pascal từ đĩa CD.
  • Biết cách sử dụng Pascal 7.0.
  • Biết tạo, lưu và mở tập tin chương trình.
  • Biết biên dịch và thực thi chương trình.

Khái niệm

  • Ngôn ngữ lập trình (programming language): Là một hệ thống các kí hiệu tuân theo các quy ước về ngữ pháp và ngữ nghĩa, dùng để xây dựng các chương trình cho máy tính.
    • Ngữ pháp (syntax): Quy ước về quan hệ giữa các ký hiệu. Ví dụ trong ngôn ngữ Pascal: các ký hiệu Begin, end phải đi thành từng cặp, sau if sẽ là một biểu thức điều kiện, sau đó là kí hiệu then.
    • Ngữ nghĩa (sematics): Quy ước về ý nghĩa của kí hiệu. Ví dụ trong ngôn ngữ Pascal: dấu + biểu thị cho phép cộng, dấu – biểu thị cho dấu trừ …Phát biều if …then … có nghĩa là “nếu … thì làm …”.
  • Chương trình (program): Là một tập hợp các mô tả, các phát biểu, nằm trong một hệ thống quy ước về ý nghĩa và thứ tự thực hiện, nhằm điều khiển máy tính làm việc.
  • Lập trình (to program): Làm ra chương trình, viết ra chương trình, còn gọi là “thảo chương”.

Cài đặt chương trình

1/ Cài đặt chương trình từ đĩa CD chứa chương trình Turbo Pascal

  • Cho đĩa CD có chứa Turbo Pascal 7.0 (TP7.0) vào ổ đĩa CD.
  • Vào cửa sổ My Computer hay Explore.
  • Nhấp phảI chuột trên hình đĩa CD, chọn Open trong menu hiện ra.
  • Nhấp phảI chuột trên thư mục TP7.0, chọn Open trong menu hiện ra, hoặc nhấp đúp nút trái chuột vào thư mục TP7.0. Chúng ta sẽ thấy hình như sau:

Cho biết ý nghĩa chương trình pascal ôn thi

Hình H1: Cửa sổ chứa các thư mục và các tập tin trong thư mục TP7.0

  • Nhấp đúp vào mục INSTALL, bạn thấy hộp thoạI hiện ra như hình H2.

Cho biết ý nghĩa chương trình pascal ôn thi

Hình H2

  • Nhấp nút Run Program. Bạn sẽ thấy hộp thoạI thông báo, trong hộp thoạI này, bạn nhấn phím Enter để tiếp tục cài đặt, nếu không thích, bạn nhấn phím ESC để thoát.

Cho biết ý nghĩa chương trình pascal ôn thi

Hình H3 Cửa sồ thông báo cài đặt Turbo Pascal

  • Nhấn phím Enter để tiếp tục cài đặt, sẽ có hộp thoạI hiện ra vớI tên ổ đĩa mặc nhiên là tên ổ đĩa CD của máy đang chứa đĩa cài đặt, bạn giữ tên ổ đĩa mặc nhiên này, máy của bạn có thể là tên khác, chúng ta sẽ có hình như sau:

Cho biết ý nghĩa chương trình pascal ôn thi

Hình H4 nhập vào tên ổ đĩa chứa Turbo Pascal

  • Nhấn phím Enter, các em sẽ thấy hộp thoạI hiện ra như hình H5.

Cho biết ý nghĩa chương trình pascal ôn thi

Hình H5 Nhập vào đường dẫn chứa các tập tin của Turbo Pascal 7.0

  • Bạn giữ nguyên đường dẫn mặc nhiên này, máy bạn có thể khác, tuỳ theo đường dẫn của ổ đĩa CD chứa chương trình.
  • Nhấn phím Enter, bạn sẽ thấy hộp thoạI hiện ra như hình H6

Cho biết ý nghĩa chương trình pascal ôn thi

Hình H6 Chọn Install lên ổ đĩa cứng hay đĩa mềm

Phần 1: Lý thuyết Pascal cô đọng

Tài liệu Pascal lý thuyết xúc tích

Phần 2: Thực hành qua các bài tập Pascal cơ bản

2.1. Các thuật toán số học cơ bản

  • Thuận toán công dồn, nhân dồn
  • Thuật toán kiểm tra số nguyên tố
  • Tính giai thừa
  • Kiểm tra số chính phương
  • Kiểm tra số hoàn hảo
  • Tìm ƯCLN
  • Tìm BCNN
  • Số Amstrong
  • Cặp số thân thiết
  • Số mạnh mẽ
  • Số hạnh phúc
  • Cặp số hứa hôn
  • Chuyển đổi số hệ thập phân sang hệ nhị phân
  • Chuyển đổi số trong hệ nhị phân sang hệ thập phân

2.2. Các bài toán về mảng một chiều

  • Tìm Max, Min mảng một chiều
  • Đếm số phần tử của mảng thỏa điều kiện
  • Sắp xếp mảng một chiều
  • Sắp xếp mảng có điều kiện
  • Ghép mảng
  • Cộng hai mảng
  • Tỉa mảng một chiều
  • Kiểm tra mảng đối xứng
  • Tạo dãy số ngẫu nhiên
  • Tìm dãy con thỏa mãn điều kiện
  • Cắt mảng theo một tỉ lệ

2.3. Các bàn toán về mảng hai chiều

  • Tìm Max, Min của mảng hai chiều
  • Sắp xếp zich zac mảng hai chiều
  • Sắp xếp xoắn ốc mảng hai chiều
  • Sắp xếp đi về
  • Phần tử yên ngựa
  • Điểm cực tiểu, cực đại của mảng hai chiều

2.4. Một số bài toán về xâu kí tự

  • Xóa kí tự trắng thừa của xâu kí tự
  • Xóa kí tự trắng thừa của cả văn bản
  • Chuyển sang chữ hoa
  • Chuyển văn bản sang chữ thường
  • Viết hoa kí tự đầu từ

Phần 3: Một số bài tập Pascal nâng cao

Bài tập 10.1:

Viết chương trình cho phép cộng hai đa thức. Kết quả in ra dạng:

a­nx^n + … + a1x + a0

Giải thuật:

– Dùng hai mảng A, B để lưu hệ số của hai đa thức. Có thể dùng mảng thứ ba C hoặc dùng lại một trong hai mảng A, B để lưu hệ số của đa thức tổng.

– Khi in kết quả cần kiểm tra hệ số để in dấu cho đúng.

Cài đặt:

Program Cong_da_thuc;
uses crt;Type KM = array<0..10> of integer;Var A,B: KM;

n: byte;

Procedure NhapDT(Var A: KM; n:byte);

Var i: byte;

Begin

For i:=n downto 0 do

Begin Write(‘M<‘,i,’>=’); Read(A); End;

End;

Procedure CONG(Var A:KM;B:KM;n:byte);

Var i: byte;

Begin

For i:= 0 to n do A:=A+B;

End;

Procedure INDT(A:KM;n:byte);

Var i: byte;

Begin

if A 0 then Write(A,’x^’,n);

For i:=n-1 downto 0 do

if A 0 then

if A

Nhận xét:

Bài tập 10.2:

Viết chương trình cho phép tính giá trị của đa thức A(x) tại giá trị x = x0.

Giải thuật:

– Dùng chương trình con để tính xn.

Cài đặt:

Program Gia_tri_cua_da_thuc;Var n,i: integer;

x,a,s:real;

Function XMU(x:real; n:integer):real;

Var i: integer;

Mu: real;

Begin

Mu:=1;

For i:=1 to n do Mu:=Mu*x;

XMU:=Mu;

End;

Begin

Write(‘Nhap bac cua da thuc n = ‘); Readln(n);

Write(‘Tinh f(x) tai x = ‘);Readln(x);

S:=0;

For i:=n downto 0 do

Begin

Write(‘a’,i,’= ‘); Readln(a);

S:=S+a*XMU(x,i);

End;

Writeln(‘F(‘,x:5:2,’)= ‘,S:5:2);

Readln;

End.

Nhận xét:

Bài tập 10.3:

Viết chương trình tính giá trị của đa thức A(x) với điều kiện không dùng biến mảng.

Viết chương trình tính giá trị của đa thức f(x) = anxn + … +a1x + a0 tại x = x0.

Thuật toán: f(x) = anxn + … +a1x + a0

= a0 + x(a1 + x(a2 + … x(an-1 + x(an))…))

Lặp lại việc: Đọc và cộng hệ số rồi nhân với x từ hệ số an  đến hệ số a0.

Chương trình:

Program Gia_tri_da_thuc;Var S,a,x: real;

n,i: byte;

Begin

Write(‘Nhap bac cua da thuc. n = ‘); Readln(n);

Write(‘Tinh f(x) tai x = ‘);Readln(x);

S:=0;

For i:= n downto 0 do

Begin

Write(‘a’,i,’=’);Readln(a);

S:=(S+a)*x;

End;

Write(‘f(‘,x:3:1,’)=’,S:5:1);

Readln

End.

Nhận xét:

Bài tập 10.4:

Viết chương trình cho phép nhân hai đa thức đã sắp xếp.

Thuật toán: Tích đa thức A bậc m với đa thức B bậc n là đa thức C bậc m + n. Trong đó : C = Tổng của các tích A * A sao cho i+j = m.

Program Nhan_da_thuc;Var m,n,i,j:byte;

A, B, C: array<0..10> of real;

Begin

Write(‘ Nhap bac cua da thuc A: ‘); Readln(m);

For i:= m downto 0 do

Begin

Write(‘A<‘,i,’>= ‘); Readln(A);

End;

Write(‘ Nhap bac cua da thuc B: ‘); Readln(n);

For i:= n downto 0 do

Begin

Write(‘B<‘,i,’>= ‘); Readln(B);

End;

For i:=0 to m+n do C:=0;

For i:=0 to m do

For j:=0 to n do C:=C+A*B;

For i:= m+n downto 0 do if C0 then Write(C:3:1,’x^’,i,’ + ‘);

Readln

End.

 Nhận xét:

Bài tập 10.5:

Viết chương trình cho phép chia hai đa thức để tìm đa thức thương và đa thức dư.

Giải thuật:

Cài đặt:

Program Chia_da_thuc;uses crt;

Type KM = array<0..10> of real;

Var A,B,C,AB,D: KM;

i,n,cs,bc: byte;

Procedure NhapDT(Var A: KM; n:byte);

Var i: byte;

Begin

For i:=n downto 0 do

Begin Write(‘M<‘,i,’>=’); Read(A); End;

End;

Function BAC(A:KM;n:integer):Byte;

Var i:Byte;

Begin

i:=n;

While (A=0) and (i> 0) do i:=i-1;

BAC:=i;

End;

Procedure TRU(Var A:KM;B:KM;n:byte);

Var i: byte;

Begin

For i:= 0 to n do A:=A-B;

End;

Procedure NHAN(Var C:KM;A,B:KM; Var n:byte);

Var i,j:byte;

TAM:KM;

Begin

n:=Bac(A,n)+Bac(B,n);

For i:= 0 to 2*n do TAM:=0;

For i:= 0 to n do

For j:=0 to n do TAM:=TAM+A*B;

For i:=0 to 2*n do C:=TAM;

End;

Procedure INDT(A:KM;n:byte);

Var i: byte;

Begin

if A 0 then Write(A:3:1,’x^’,n);

For i:=n-1 downto 0 do

if A 0 then

if A = BAC(B,n) do

Begin

cs:=BAC(A,n)-BAC(B,n);

C:=A/B;

Writeln(‘C<‘,cs,’>=’,C:3:1);

DT_BAC(D,cs,C);Writeln;

Write(‘Da thuc D:’);

Indt(D,n);

NHAN(AB,B,D,n);Writeln;

Write(‘Da thuc AB:’);

Indt(AB,n);Writeln;

TRU(A,AB,n);

Write(‘Da thuc A moi:’);

Indt(A,n);

End;

Writeln(‘Da thuc thuong: ‘);

Indt(C,bc);

Readln;

Readln

End.