boi duong pascal 69558 tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kinh...
Bài tập Pascal BỒI DƯỢNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ BÀI TẬP CƠ BẢN - Đáp án ++ 1. Viết chương trình tính điểm trung bình 3 môn Toán, Lý , Hoá theo hệ số 2,1,1 sau đó xếp loại như sau: a. Loại Giỏi : ĐTB >= 8.0 và không có môn nào dưới 6,5 b. Loại Khá : 6.5=<ĐTB < 8.0 và không có môn nào dưới 5 c. Loại Trung bình : 5.0 =<ĐTB < 6.5 và không có môn nào dưới 3.5 d. Loại Yếu : Còn lại. program xep_loai_hoc_sinh; uses crt; var t,l,h,tbc, min:real; xl:string; begin write('moi nhap diem toan,ly,hoa: '); readln(t,l,h); min:=l; if min>t then min:=t; if min>h then min:=h; tbc:=(t*2+l+h)/4; if (tbc>=8) and (min>=6.5) then xl:='Gioi'; else if (tbc>=6.5) and (min>=5) then xl:=’Kha’; else if (tbc>=5) and (min>=3.5) then xl:='Trung binh' else xl:='yeu'; writeln(‘Diem trung binh:’,tbc:0:1,’ Xep loai:’,xl); readln; end. 2. VCT nhập vào tháng, năm và cho biết tháng đó có bao nhiêu ngày? var n,t,ngay:integer; begin write('nhap thang:');readln(t); write('nhap nam:');readln(n); case t of 1,3,5,7,8,10,12: ngay:=31; 4,6,9,11:ngay:=30; 2: if n mod 4 = 0 then ngay :=29 else ngay:=28; end; writeln('Thang:',t,' nam:',n,' co: ',ngay,' ngay'); readln; end. 3. VCT tìm ước chung lớn nhất và bội chung nhỏ nhất của hai số nhập vào từ bàn phím? var a,b,min,max,ucln:integer; begin write('moi nhap hai so can xac dinh: '); readln(a,b); max:=a; min:=b; if max mod min=0 then ucln:=min else if min mod max=0 then ucln:=max else begin repeat if max>min then max:=max-min else if max<min then min:=min-max; until max=min; ucln:=min; end; write('ucln ',ucln); write('bcnn ',a*b/ucln:1:1); readln; end. Bài tập Pascal BỒI DƯỢNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ 4. VCT giải hai bài toán cổ: 100 trâu 100 bó cỏ và vừa gà vừa chó 36 con 100 chân? var d,n,g:integer; begin for d:=1 to 20 do for n:=1 to 33 do for g:=1 to 98 do if d*5+n*3+g=100 then writeln('Trau dung:',d,' trau nam:',n,' trau gia:',g); readln; end. ----- var i,j:integer; begin for i:=1 to 25 do for j:=1 to 50 do if (i*4+j*2=100) and (i+j=36) then writeln(i,' con cho, ',j,' con ga.'); readln; end. 5. VCT xuất các số nguyên tố từ n đến m.(Dùng chương trình con)? var j,n,m,i:integer; function ktranto(x:integer):boolean; begin ktranto:=true; for i:=2 to x -1 do if x mod i=0 then ktranto:=false; end; begin write('moi nhap n,m: '); readln(n,m); for j:=n to m do if ktranto(j) then writeln(j); readln; end. 6. VCT xuất các số hoàn hảo từ n đến m.(Dùng chương trình con)? var x,tu,j,i,n,m:integer; function ktrahhao(x:integer):boolean; begin tu:=0; ktrahhao:=false; for i:=1 to x div 2 do if x mod i=0 then tu:=i+tu; if tu=x then ktrahhao:=true; end; begin; write('moi nhap n,m: '); readln(n,m); for j:=n to m do if ktrahhao(j) then writeln(j); readln; end. 7. VCT tạo một mảng số nguyên gồm n phần tử nhỏ hơn 1000. Sắp xếp mảng theo tứ tự tăng dần và giảm dần. const n=10; var i,j,tam:integer; a:array[1 n]of integer; begin randomize; for i:=1 to n do a[i]:=random(1000); for i:=1 to n-1 do for j:=i+1 to n do if a[i]<a[j] then begin tam:=a[i]; a[i]:=a[j]; Bài tập Pascal BỒI DƯỢNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ a[j]:=tam; end; for i:=1 to n do writeln(a[i]); readln; end. 8. VCT đọc một số có 3 chữ số nhập vào từ bàn phím? uses crt; Var s:array[1 9] of string; a,b,c,n:integer; begin clrscr; repeat write('nhap so nguyen n:');readln(n); until (n>99)and(n<1000); a:=n div 100; b:=n div 10 mod 10 ; c:=n mod 10; s[1]:='mot'; s[2]:='hai'; s[3]:='ba'; s[4]:='bon'; s[5]:='nam'; s[6]:='sau'; s[7]:='bay'; s[8]:='tam'; Chuyên đề bồi dưỡng học sinh giỏi tin học8 – Giáo viên: Nguyễn Tam Tùng CHƯƠNG I CÁC KIỂU DỮ LIỆU CƠ BẢN KHAI BÁO HẰNG, BIẾN, KIỂU, BIỂU THỨC VÀ CÂU LỆNH A LÝ THUYẾT: I CÁC KIỂU DỮ LIỆU CƠ BẢN Kiểu logic - Từ khóa: BOOLEAN - miền giá trị: (TRUE, FALSE) - Các phép toán: phép so sánh (=, ) phép toán logic: AND, OR, XOR, NOT Trong Pascal, so sánh giá trị boolean ta tuân theo qui tắc: FALSE < TRUE Giả sử A B hai giá trị kiểu Boolean Kết phép toán thể qua bảng đây: A TRUE TRUE FALSE FALSE B TRUE FALSE TRUE FALSE A AND B TRUE FALSE FALSE FALSE A OR B TRUE TRUE TRUE FALSE A XOR B FALSE TRUE TRUE FALSE NOT A FALSE FALSE TRUE TRUE Kiểu số nguyên 2.1 Các kiểu số nguyên Tên kiểu Shortint Byte Integer Word LongInt Phạm vi -128 → 127 → 255 -32768 → 32767 → 65535 -2147483648 → 2147483647 Dung lượng byte byte byte byte byte 2.2 Các phép toán kiểu số nguyên 2.2.1 Các phép toán số học: +, -, *, / (phép chia cho kết số thực) Phép chia lấy phần nguyên: DIV (Ví dụ : 34 DIV = 6) Phép chia lấy số dư: MOD (Ví dụ: 34 MOD = 4) Kiểu số thực 3.1 Các kiểu số thực: Tên kiểu Phạm vi Dung lượng -45 +38 Single 1.5× 10 → 3.4× 10 byte -39 +38 Real 2.9× 10 → 1.7× 10 byte Double 5.0× 10-324 → 1.7× 10+308 byte -4932 +4932 Extended 3.4× 10 → 1.1× 10 10 byte Chú ý: Các kiểu số thực Single, Double Extended yêu cầu phải sử dụng chung với đồng xử lý số phải biên dịch chương trình với thị {$N+} để liên kết giả lập số 3.2 Các phép toán kiểu số thực: +, -, *, / Chú ý: Trên kiểu số thực không tồn phép toán DIV MOD Trang Chuyên đề bồi dưỡng học sinh giỏi tin học8 – Giáo viên: Nguyễn Tam Tùng 3.3 Các hàm số học sử dụng cho kiểu số nguyên số thực: SQR(x): Trả x2 SQRT(x): Trả bậc hai x (x≥ 0) ABS(x): Trả |x| SIN(x): Trả sin(x) theo radian COS(x): Trả cos(x) theo radian ARCTAN(x): Trả arctang(x) theo radian TRUNC(x): Trả số nguyên gần với x bé x INT(x): Trả phần nguyên x FRAC(x): Trả phần thập phân x ROUND(x): Làm tròn số nguyên x PRED(n): Trả giá trị đứng trước n SUCC(n): Trả giá trị đứng sau n ODD(n): Cho giá trị TRUE n số lẻ INC(n): Tăng n thêm đơn vị (n:=n+1) DEC(n): Giảm n đơn vị (n:=n-1) Kiểu ký tự - Từ khoá: CHAR - Kích thước: byte - Để biểu diễn ký tự, ta sử dụng số cách sau đây: • Đặt ký tự cặp dấu nháy đơn Ví dụ 'A', '0' • Dùng hàm CHR(n) (trong n mã ASCII ký tự cần biểu diễn) Ví dụ CHR(65) biễu diễn ký tự 'A' • Dùng ký hiệu #n (trong n mã ASCII ký tự cần biểu diễn) Ví dụ #65 - Các phép toán: =, >, >=,