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ẻ 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
Khái niệm
Cài đặt chương trình1/ Cài đặt chương trình từ đĩa CD chứa chương trình Turbo Pascal
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
Hình H2
Hình H3 Cửa sồ thông báo cài đặt Turbo Pascal
Hình H4 nhập vào tên ổ đĩa chứa Turbo Pascal
Hình H5 Nhập vào đường dẫn chứa các tập tin của Turbo Pascal 7.0
Hình H6 Chọn Install lên ổ đĩa cứng hay đĩa mềm Phần 1: Lý thuyết Pascal cô đọngTài liệu Pascal lý thuyết xúc tíchPhần 2: Thực hành qua các bài tập Pascal cơ bản2.1. Các thuật toán số học cơ bản
2.2. Các bài toán về mảng một chiều
2.3. Các bàn toán về mảng hai chiều
2.4. Một số bài toán về xâu kí tự
Phần 3: Một số bài tập Pascal nâng caoBà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: anx^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; 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 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. |