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
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
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:
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.
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:
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. ————————————————– 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 x<>y 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. —————————————————- 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 i<=n do begin t:= t+i*i; i:= i+2; end; write(‘Tong binh phuong cac so chan: ‘,t); readln; end. ———————————————————- Câu 12 var i,n,min,max,a: integer; begin max:=0; write(‘Nhap bao nhieu so de so sanh: ‘); readln(n); for i:= 1 to n do begin write(‘Nhap so thu ‘,i,’: ‘); readln(a); min:=a; if min>max 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.
——————————————————————–
——————————————————————–
——————————————————————–
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. ——————————————————————–
——————————————————————–
——————————————————————–
——————————————————————–
9/ Viết CT nhập ho , tên , diemtb của n học sinh (n<=30), sau đó viết ra danh sách gồm 3 cột ho ten diemtb theo thứ tự tăng dần của tên (hay gọi là thứ tự Alphabet).Const nmax=30; Var ten: array [1..nmax] of string[8] ; ho : array [1..nmax] of string[35] ; tb : array [1..nmax] of real ; n,i,j :byte; a:string[8]; b: string[35]; c:real; Begin write(‘nhap so hs n= ‘); readln(n); for i:=1 to n do begin write(‘nhap ho dem hs ‘ , I , ‘la= ‘);readln(ho[i]); write(‘nhap ten hs ‘ , I , ‘la= ‘);readln(ten[i]); write(‘nhap tb hs ‘ , I , ‘la= ‘);readln(tb[i]); end; for i:= n downto 2 do for j:=1 to i-1 do if ten[j]>ten[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.——————————————————————–
end. Câu 1: Xét chương trình sau: Var s, i : integer; Begin s:=0; for i:= 1 to 5 do s:= s + 1; writeln(s); End. Kết quả của chương trình trên là:A) 0 B) 5 C) 10 D) 15 Câu 2: Xét chương trình sau: Var s, i : integer; Begin s:=0; for i:= 1 to 5 do s:= s + i; writeln(s); End. Kết quả của chương trình trên là:A) 0 B) 5 C) 10 D) 15 Câu 3: Xét chương trình sau: Var s, i : integer; Begin s:=1; for i:= 1 to 5 do s:= s*i; writeln(s); End. Kết quả của chương trình trên là:A) 1 B) 5 C) 100 D) 120 Câu 4: Xét chương trình sau: Var s, i : integer; Begin s:=0; for i:= 1 to 5 do if ( i mod 2 =1) then s:= s+1; writeln(s); End. Kết quả của chương trình trên là:A) 0 B) 2 C) 3 D) 5Câu 4: Câu 5:Xét chương trình sau: Var s1, s2, i : integer; Begin s1:=0; s2:=0; for i:= 1 to 5 do begin s1:= s1 + 1; s2:= s2 + 2; end; writeln(s1,’ ‘,s2); End. Kết quả của chương trình trên là:A) 5 2 B) 5 5 C) 5 10 D) 0 10 Câu 6:Xét chương trình sau: Var s1, s2, i : integer; Begin s1:=0; s2:=0; for i:= 1 to 5 do s1:= s1 + 1; s2:=s2 + 2; writeln(s1,’ ‘,s2); End. Kết quả của chương trình trên là:A) 5 2 B) 5 5 C) 5 10 D) 0 10 Câu 7:Xét chương trình sau: Var s1, s2, i : integer; Begin s1:=0; s2:=0; for i:= 1 to 5 do begin s1:= s1 + 1; s2:= s2 + i; end; writeln(s1,’ ‘,s2); End. Kết quả của chương trình trên là:A) 0 15 B) 5 10 C) 0 10 D) 5 15 Câu 8:Xét chương trình sau: Var s1, s2, s3, i : integer; Begin s1:=0; s2:=0; s3:=1; for i:= 1 to 5 do begin s1:= s1 + 1; s2:= s2 + i; s3:= s3 * i; end; writeln(s1,’ ‘,s2,’ ‘,s3); End. Kết quả của chương trình trên là:A) 5 15 20 B) 5 15 120 C) 5 10 15 D) 1 5 10 Câu 9:Xét chương trình sau: Var s1, s2, i : integer; Begin s1:=0; s2:=0; for i:= 1 to 5 do if i mod 2 =1 then begin s1:= s1 + 1; s2:= s2 + 2; end; writeln(s1,’ ‘,s2); End. Kết quả của chương trình trên là:A) 5 10 B) 3 6 C) 5 6 D) 3 10 Câu 10:Xét chương trình sau: Var s1, s2, i : integer; Begin s1:=0; s2:=0; for i:= 1 to 5 do if i mod 2 =1 then begin s1:= s1 + 1; s2:= s2 + i; end; writeln(s1,’ ‘,s2); End. Kết quả của chương trình trên là:A) 5 15 B) 5 9 C) 3 9 D) 3 15 Câu 11:Xét chương trình sau: Var s : integer; Begin s:=0; while (s < 5) do s:= s + 1; writeln(s); End. Kết quả của chương trình trên là:A) 0 B) 1 C) 4 D) 5 Câu 12:Xét chương trình sau: Var s : integer; Begin s:=0; while (s < 5) do s:= s + 1; writeln(s); End. Kết quả của chương trình trên là:A) 0 B) 1 C) 4 D) 5 Câu 13:Xét chương trình sau: Var s : integer; Begin s:=5; while (s>0) do s:= s – 2; writeln(s); End. Kết quả của chương trình trên là:A) -1 B) 0 C) 1 D) 5 Var s, i : integer; Begin i:=5; s:=0; while (i > 0) do begin s:= s + 1; i:= i -2; end; writeln(s); End. Kết quả của chương trình trên là:A) -1 B) 1 C) 3 D) 5
Var A, B : integer; Begin A:= 10; B:= 11; A:= 2*A + 2; B:= 2*B-2 If (A<B) then writeln(A) Else writeln(B); End. Kết quả của chương trình trên là: 2.Xét đoạn chương trình sau: Var A, B : integer; Begin A:= 100; B:= 50; Write(‘Nhap nhap B’); Readln(B); If (B = A) then Writeln(‘Xin chuc mung’); End. Nhập giá trị bao nhiêu cho B để khi chạy chương trình nhận được kết quả “Xin chúc mừng”? 3.Xét đoạn chương trình sau: Var A, B : integer; Begin A:= 10; B:= 11; If A>B 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<Y) then Begin X:= X +10; Y:= Y+10; End; writeln(‘X=’, X, ‘ Y=’,Y); End. Kết quả của chương trình trên là:
Var X, Y, Z : integer; Begin X:= 3; Y:= 5; Z:= 7; If (X<Y) then Begin X:= X +Y; Y:= Y + X; End Else Z := Z +X +Y; writeln(‘X=’, X, ‘ Y=’,Y); End. Kết quả của chương trình trên là:
|