Bài Tập Pascal Lớp 8 Nâng Cao - Toàn Thua
Có thể bạn quan tâm
Bài tập pascal nâng cao có lời giải bồi dưỡng học sinh giỏi Tin học THCS, Các chuyên de bồi dưỡng học sinh giỏi Tin học THPT, Tài liệu bồi dưỡng học sinh giỏi Pascal THPT, đề thi học sinh giỏi tin học lớp 9 cấp huyện 2019-2020, Chuyên de bồi dưỡng học sinh giỏi môn Tin học THPT, Giáo an bồi dưỡng học sinh giỏi tin học THCS, De thi học sinh giỏi Tin học lớp 9 cấp huyện có đáp an, Tài liệu ôn thi học sinh giỏi môn tin học THCS, Bài tập Pascal lớp 11, 100 bài tập Turbo Pascal, 100 bài tập Pascal lớp 8, 500 bài tập Pascal từ cơ bản đến nâng cao, 100 bài tập Pascal bồi dưỡng học sinh giỏi, 100 bài Turbo Pascal, Bài tập Pascal lớp 8, Học Pascal từ cơ bản đến nâng cao, 100 bài tập Turbo Pascal lớp 8 violet, 100 bài tập free Pascal lớp 8, Bài tập về câu lệnh lặp trong Pascal lớp 8, 100 bài tập Pascal bồi dưỡng học sinh giỏi, Bài tập Pascal lớp 8 . Hãy tham khảo với onthihsg ngay nhé.
– Để lưu trữ một đa thức ta chỉ cần lưu các hệ số (bằng một mảng)và bậc của đa thức.
– Các phép toán đối với một đa thức gồm cộng, trừ, nhân, chia hai đa thức.
– Việc tính giá trị đa thức tại một giá trị của biến được thực hiện thông qua lược đồ hooc nơ hoặc tính trực tiếp.
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 viết chương trình tính giá trị của đa thức
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[i]); End; End; Procedure CONG(Var A:KM;B:KM;n:byte); Var i: byte; Begin For i:= 0 to n do A[i]:=A[i]+B[i]; End; Procedure INDT(A:KM;n:byte); Var i: byte; Begin if A[n] 0 then Write(A[n],’x^’,n); For i:=n-1 downto 0 do if A[i] 0 then if A[i] < 0 then write(A[i],’x^’,i) else Write(‘+’,A[i],’x^’,i); End; Begin clrscr; Write(‘Nhap bac n: ‘);Readln(n); Writeln(‘Nhap da thuc A: ‘); NhapDT(A,n); Writeln(‘Nhap da thuc B: ‘); NhapDT(B,n); clrscr; Indt(A,n); Writeln; Indt(B,n); Writeln; Cong(A,B,n); Writeln(‘Da thuc tong: ‘); Indt(A,n); Readln; Readln End. |
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 viết chương trình tính giá trị biểu thức trong pascal
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. |
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. |
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[m] = Tổng của các tích A[i] * A[j] 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[i]); End; Write(‘ Nhap bac cua da thuc B: ‘); Readln(n); For i:= n downto 0 do Begin Write(‘B[‘,i,’]= ‘); Readln(B[i]); End; For i:=0 to m+n do C[i]:=0; For i:=0 to m do For j:=0 to n do C[i+j]:=C[i+j]+A[i]*B[j]; For i:= m+n downto 0 do if C[i]0 then Write(C[i]:3:1,’x^’,i,’ + ‘); Readln End. |
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ư.
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[i]); End; End; Function BAC(A:KM;n:integer):Byte; Var i:Byte; Begin i:=n; While (A[i]=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[i]:=A[i]-B[i]; 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[i]:=0; For i:= 0 to n do For j:=0 to n do TAM[i+j]:=TAM[i+j]+A[i]*B[j]; For i:=0 to 2*n do C[i]:=TAM[i]; End; Procedure INDT(A:KM;n:byte); Var i: byte; Begin if A[n] 0 then Write(A[n]:3:1,’x^’,n); For i:=n-1 downto 0 do if A[i] 0 then if A[i] < 0 then write(A[i]:3:1,’x^’,i) else Write(‘+’,A[i]:3:1,’x^’,i); End; Procedure DT_BAC(Var A:KM;Bac:byte;gt:real); Var i:byte; Begin For i:=1 to n do A[i]:=0; A[Bac]:=gt; End; Begin clrscr; Write(‘Nhap bac cua da thuc bi chia: ‘);Readln(n); Writeln(‘Nhap da thuc A: ‘); NhapDT(A,n); Writeln(‘Nhap da thuc B: ‘); NhapDT(B,n); clrscr; Write(‘Da thuc bi chia: ‘);Indt(A,n); Writeln; Write(‘Da thuc chia: ‘);Indt(B,n); Writeln; bc:=Bac(A,n)-Bac(B,n); {Luu bac cua da thuc C} For i:=1 to bc do C[i]:=0; While BAC(A,n) >= BAC(B,n) do Begin cs:=BAC(A,n)-BAC(B,n); C[cs]:=A[Bac(A,n)]/B[Bac(B,n)]; Writeln(‘C[‘,cs,’]=’,C[cs]:3:1); DT_BAC(D,cs,C[cs]);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. |
Bài 1: Viết chương trình tính tổng tích các biểu thức S = 1*1+1*2+…1*10 + 2*1+2*2+…+…+ M*N. Bài 2: Viết chương trình đưa ra màn hình 2 câu: “Chào bạn. Bạn có khỏe không!”. In 5 lần lên màn hình. Bài 3: Viết chương trình vẽ hình chữ nhật và điền dấu * như hình sau: * * * * * * * * * * * * * * * Bài 4: Viết chương trình tìm ước chung lớn nhất của hai số nguyên. In kết quả ra màn hình. Bài 5: Viết chương trình tính trung bình cộng của các số nhập vào từ bàn phím. Khi muốn kết thúc nhập để tính trung bình thì nhấn phím 0. In kết quả ra màn hình. Bài 6: Viết chương trình tính tổng bình phương của n số nguyên đầu tiên. In kết quả ra màn hình. Bài 7: Viết chương trình tính tổng bậc 3 của n số nguyên đầu tiên. In kết quả ra màn hình. Bài 8: Viết chương trình nhập vào một số nguyên rồi in ra màn hình tất cả các ước số của số đó. Bài 9: Viết chương trình vẽ 1 tam giác cân bằng dấu . In ra màn hình tam giác đó. Bài 10: Viết chương trình tính tổng nghịch đảo của n số nguyên đầu tiên . Bài 11: Viết chương trình tính tổng bình phương các số chẵn từ 1 đến n; với n được nhập từ bàn phím. Bài 12: Viết chương trình nhập vào n số nguyên , tìm số lớn nhất trong các số đó. In kết quả ra màn hình. Bài 13: Viết chương trình tính giai thừa của n, với n được nhập từ bàn phím. Bài 14: Viết chương trình chứng minh rằng phép chia giữa hai số nguyên, chẳng qua chỉ là phép trừ. In kết quả ra màn hình là số thương và số dư. Bài 15: Viết chương trình nhập vào một số và kiểm tra xem số đó có phải là số nguyên tố hay không? Bài 16: Viết chương trình tính xn, với x, n được nhập từ bàn phím. Bài 17: Viết chương trình nhập vào một số nguyên, in ra màn hình số nguyên đó có mấy ký tự số. Bài 18: Viết chương trình tính tổng S = 1+2+3+…+ n sao cho S > 1000. Hỏi khi đó cụ thể S bằng bao nhiêu? Bài 19: Viết chương trình tính tổng S = 12 +22 +…+n2 . In kết quả ra màn hình.
Bài 20: Viết chương trình tính tổng của n số nguyên đầu tiên. Số n và các số hạng của tổng được nhập từ bàn phím. In kết quả ra màn hình.
Hướng dẫn giải
Câu 1
var i,j,n,s: integer; begin s:= 0; write(‘Nhap so lan lap: ‘); readln(n); for i:= 1 to n do for j:= 1 to 10 do s:= s+(i*j); write(‘S = ‘,s);
end.
Câu 2
var i: integer; begin for i:= 1 to 5 do writeln (‘Chao ban. Ban co khoe khong?’);
end.
————————————————– Câu 3
var i,j: integer; begin for i:= 1 to 3 do begin for j:= 1 to 5 do write(‘*’); writeln; end; end. ————————————————–
Câu 4
var x,y,u: longint; begin write(‘Nhap x: ‘); readln(x); write(‘Nhap y: ‘); readln(y); while xy do if x>y then x:=x-y else y:=y-x; u:=x; write(‘Uoc chung lon nhat cua x va y la: ‘,u);
end.
—————————————————- Câu 5
var t,i: integer; k: real; begin t:=0; i:=0; writeln(‘Nhap so muon tinh trung binh cong, nhan phim 0 de ket thuc’); repeat begin i:=i+1; write(‘Nhap so thu ‘,i,’: ‘); readln(t); k:=k+t; end; until t=0; k:=k/(i-1); write(‘Trung binh cong cua day so vua nhap: ‘,k); end.
————————————————————–
Câu 6
var i,n,m: integer; begin m:=0; write(‘Nhap n: ‘); readln(n); for i:=1 to n do m:= m+i*i; write(‘Tong binh phuong: ‘,m); readln; end. ————————————————————–
Câu 7
var i,n,m: integer; begin m:=0; write(‘Nhap n: ‘); readln(n); for i:=1 to n do m:= m+i*i*i; write(‘Tong binh phuong: ‘,m); readln; end. —————————————————————-
Câu 8
var i,n: integer; begin write(‘Nhap n: ‘); readln(n); write(‘Cac uoc so cua ‘,n,’:’); for i:=1 to n do if n mod i = 0 then write(i:4); readln; end. —————————————————————-
Câu 9
var i,j,n: integer; begin write(‘Nhap n: ‘); readln(n); for i:=1 to n do begin for j:=0 to n-i do write(‘ ‘); for j:=0 to i-1 do write(‘* ‘); writeln; end; readln; end. ————————————————————-
Câu 10
var i,n: integer; t: real; begin t:=0; write(‘Nhap n: ‘); readln(n); for i:=1 to n do t:= t+(1/i); write(‘Tong nghich dao: ‘,t:2); readln; end. ————————————————————
Câu 11
var i,n,t: integer; begin t:=0; i:=2; write(‘Nhap n: ‘); readln(n); while imax then max:=min; end; write(‘So lon nhat: ‘,max); readln; end.
Câu này có nhược điểm là không so sánh được số âm, các bạn tự cải tiến thuật toán nhe.
Var s,s1:string; Begin write(‘nhap chuoi s= ‘);readln(s); S1:=‘’; For i:= length(s) downto 1 do s1:=s1+s[i] ; writeln(‘chuoi dao nguoc la :’, s1); readln; End.
——————————————————————–
Hướng giải : Lời giải mẫu : Var s:string; Begin write(‘nhap chuoi s= ‘);readln(s); For i:=1 to length(s) do s[i] := upcase(s[i]) ; writeln(‘kq =‘ , s ); readln; End.
——————————————————————–
Var s:string; Begin write(‘nhap chuoi s= ‘);readln(s); while (s[1] =‘ ‘) and (length(s)>0) do delete (s,1,1); while (s[length(s)] =‘ ‘) and (length(s)>0) do delete (s,length(s),1); Writeln( ‘ kq = ‘ , s ); Readln; End.
——————————————————————–
Vd : câu cho là : toi di hoc o truong trung hoc , di duong rat met nhoc
kết quả là 3à Xâu cần tìm là : hoc Lời giải mẫu : Var s,a :string; vt,d,dem:byte; Begin write(‘nhap xau s= ‘);readln(s); write(‘nhap xau can tim a= ‘);readln(a); d:=length(a); Dem:=0; While pos(a,s)>0 do begin vt:=pos(a,s) ; dem:=dem+1; s:=copy(s,vt+d,255); end; writeln(‘so lan =‘ , dem ); readln; end.
——————————————————————–
Hướng giải : Lời giải mẫu : Var s,a :string; vt,d,dem:byte; Begin write(‘nhap chuoi s= ‘);readln(s); write(‘nhap tu can tim a= ‘);readln(a); d:=length(a); Dem:=0; While pos(a,s)>0 do begin vt:=pos(a,s) ; if (vt-1=0) and (vt+d-1=length(s)) then dem:=dem+1 ; if (vt-1=0) and (vt+d-10) and (s[vt-1]=‘ ‘) and (vt+d-1=length(s)) then dem:=dem+1 ; if (vt-1>0) and (s[vt-1]=‘ ‘) and (vt+d-10 do begin vt:=pos(a,s) ; if ( (vt-1=0) and (vt+d-1=length(s)) ) or ( (vt-1=0) and (vt+d- 10) and (s[vt-1]=‘ ‘) and (vt+d-1=length(s)) ) or ( (vt-1>0) and (s[vt-1]=‘ ‘) and (vt+d-10 do begin a:=s[1]; while pos(a,s)>0 do begin vt:=pos(a,s); delete(s,vt,1); end; if pos(a,s2)>0 then kq:=kq+a; end; writeln(‘s1=‘,s1); writeln(‘s2=‘,s2); writeln(‘cac ky tu co trong 2 chuoi la :‘ , kq , ‘gom so ky tu la= ‘,length(kq)); readln; end.
——————————————————————–
Const nmax=30; Var a:array [1..nmax] of string[8] ; x :string; I,dem:byte; Begin write(‘nhap so hs n= ‘);readln(n);dem:=0; for i:=1 to n do begin write(‘nhap ten hs ‘ , I , ‘la= ‘);readln(a[i]); end; write(‘nhap xau x can tim la= ‘);readln(x); writeln(‘Ket qua :’); for i:=1 to n do if pos(x,a[i]) >0 then begin writeln(a[i]); dem:=dem+1; end; writeln(‘So truong hop tim thay la =’ , dem); readln; end. ——————————————————————–
9/ Viết CT nhập ho , tên , diemtb của n học sinh (nten[j+1] then begin a:=ten[j]; ten[j]:=ten[j+1]; ten[j+1]:=a; b:=ho[j]; ho[j]:=ho[j+1]; ho[j+1]:=b; c:=tb[j];tb[j]:=tb[j+1];tb[j+1]:=c; end; for i:=1 to n do writeln(ho[i]:40,ten[i]:10,tb[i]:10:2); readln; end. ——————————————————————– Const nmax=30; mmax=15; Var hoten: array [1..nmax] of string[45] ; tb : array [1..nmax] of real ; n,m,i,j,dem : byte; tg,d : real; xl : string[8] ; Begin write(‘nhap so hs n= ‘);readln(n); write(‘nhap so mon m= ‘);readln(m); for i:=1 to n do begin write(‘nhap hoten hs ‘ , I , ‘la= ‘);readln(hoten[i]); tg:=0; for j:=1 to m do begin write(‘nhap diem mon ‘ , j , ‘la= ‘);readln(d); tg:=tg + d; end; tb[i]:=tg/m; end; dem:=0; for i:= 1 to n do begin write(hoten[i]:50,tb[i]:10:2); if tb[i] 0) OR (X0) AND (X>10) … Var A, B : integer; Begin A:= 10; B:= 11; A:= 2*A + 2; B:= 2*B-2 If (AB then write(1); End. Kết quả của chương trình trên là: Var X, Y : integer; Begin X:= 11; Y:= 10; If (X
Từ khóa » Các Bài Toán Pascal Lớp 8 Nâng Cao
-
Một Số Bài Tập Pascal Lớp 8
-
Bài Tập Pascal Lớp 8 Nâng Cao
-
100 Bài Tập Turbo Pascal Danh Cho Học Sinh Lớp 8
-
Bài Tập Pascal Lớp 8 Nâng Cao Có Lời Giải
-
Tổng Hợp Bài Tập Pascal Cơ Bản, Nâng Cao - Ôn Tập Tin Học đại Cương
-
Tổng Hợp Bài Tập Pascal Cơ Bản, Nâng Cao
-
Bài Tập Pascal Lớp 8 Nâng Cao - 123doc
-
Bài Tập Pascal Nâng Cao (có Lời Giải) - 123doc
-
Hơn 100 Bài Tập Pascal Từ Cơ Bản Cho đến Nâng Cao
-
Tổng Hợp Các Bài Tập Pascal Lớp 8 Có Lời Giải, 210 Câu Hỏi Trắc ...
-
Tổng Hợp Các Bài Tập Pascal Lớp 8 Có Lời Giải - Express Magazine
-
Bài Tập Pascal Nâng Cao Có Lời Giải - Trần Gia Hưng