GIỚI THIỆU:
Pascal là tên của một ngôn ngữ lập trình cấp cao thông dụng, được giáo sư Niklaus Wirth ở trường Ðại học Kỹ thuật Zurich (Thụy sĩ) thiết kế và công bố vào năm 1970. Niklaus Wirth đặt tên cho ngôn ngữ này là Pascal để tưởng nhớ đến nhà Toán học và Triết học Pháp ở thế kỷ 17 là Blaise Pascal, người đã phát minh ra một máy tính cơ khí đơn giản đầu tiên của con người. Ðến nay, ngôn ngữ Pascal đã phát triển đến phiên bản Turbo Pascal 7.
16 trang |
Chia sẻ: vivian | Lượt xem: 1949 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Bài 1: Tổng quan về Pascal, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ệc của REPEAT và UNTIL không nhất thiết phải dùng lệnh ghép để nhóm từ 2 lệnh đơn trở lên thành công việc.
BÀI TậP:
VD: Nhạp vào 2 số nguyên a và b. Tính và thông báo ra màn hình tổng, hiệu, tích, thương, của 2 số đó.
ĐỀ 1:
1/ Nhập chiều dài (a) cạnh hình vuông từ bàn phím. Tính chu vi (P) và diện tích (S) của hình vuông đó.
2/ Nhập chiều rộng (a) và chiều dài (b) của một hình chữ nhật. Tính chu vi và diện tích của HCN đó.
3/ Nhập điểm Toán, Văn, Lý, Tin của một học sinh. Tính điểm trung bình của học sinh đó theo công thức ĐTB:= (Toan*2+Van*2+Ly+Tin)/6;
4/ Nhập đáy bé a, đáy lớn b và chiều cao h của một hình thang. Tính diện tích của hình thang đó.
5/ In ra màn hình bảng cửu chương thứ n (n được chọn tùy ý từ 1 đến 10).
ĐỀ 2:
Bài 1: (3,5đ) Nhập vào 3 số nguyên. In ra màn hình số lớn nhất.
Bài 2: (3,5đ) Nhập vào một số nguyên. Tìm các ước của số đó.
Bài 3: (4đ) Nhập vào một số nguyên dương n và tính S = .
Bài 4: (4đ) Kiểm tra một số nguyên n nhập vào có phải là số nguyên tố hay không.
Bài 5: (5đ) Tìm UCLN và BCNN của 2 số nguyên a và b nhập từ bàn phím.
Lưu ý: Các bài làm lưu trên thư mục gốc ổ đĩa D:\ với tên tương ứng là BL1.PAS, BL2.PAS, BL3.PAS, BL4.PAS, BL5.PAS.
ĐỀ 3:
Bài 1: (3đ) Lãi suất tiết kiệm ngân hàng là t%/ tháng (t nhậo từ bàn phím)
a/ Nhập số vốn ban đầu n và số tháng cần gởi k. tính tổng số tiền cả vốn lẫn lãi nhận được sau k tháng.
b/ Nhập số vốn ban đầu n và số tiền cần nhận m. Tính số tháng cần gởi.
c/ Nhập số tiền cần nhận m và số tháng gởi k. Tính số vốn cần gởi ban đầu.
Bài 2: (2đ) Kiểm tra xem 2 số nguyên dương nhập vào có phải là 2 số nguyên tố cùng nhau hay không.
Bài 3: (3đ) Nhập vào một số thực a (a>0). Tìm n bé nhất để
Bài 4: (3đ) Nhập số thực a và số nguyên n. Hãy tính tổng
S =
Bài 5: (3đ) Nhập dãy số thực a1 đến ak. Tính tổng a1-a2+a3-
Bài 6: (3đ) Nhập dãy số thực a1 đến ak. Tìm các số trong dãy bằng tổng của 2 số khác trong dãy.
Bài 7: (3đ) Nhập dãy số thực a1 đến ak. Tìm 3 phần tử trong dãy có tổng lớn nhất.
Lưu ý: Các bài làm lưu trên thư mục gốc ổ đĩa D:\ với tên tương ứng là BL1.PAS, BL2.PAS, BL3.PAS, BL4.PAS, BL5.PAS, BL6.PAS, BL7.PAS.
ĐỀ 4:
Bài 1: (1đ) Nhập một số thực x. nếu x> thì tính căn bậc hai của x, ngược lại thì thông báo x không phải là số dương.
Bài 2: (2đ) Nhập dãy số nguyên. Tính trung bình cộng của các số chẵn.
Bài 3: (1,5đ) Nhập dãy số thực a. Tính trung bình cộng các số âm.
Bài 4: (1,5đ) Nhập số nguyên n. Liệt kê các số nguyên a, b, c trong khoảng [1; n] thỏa nãm hệ thức Pytago a2 + b2 = c2.
Bài 5: (2đ) Nhập dãy số thực a. Tìm các số của dãy bằng tổng của 2 số khác trong dãy.
Bài 6: (2đ) Nhập dãy số thực. Tìm 3 phần tử của dãy có tổng lớn nhất.
Lưu ý: Các bài làm lưu trên thư mục gốc ổ đĩa D:\ với tên tương ứng là BL1.PAS, BL2.PAS, BL3.PAS, BL4.PAS, BL5.PAS, BL6.PAS.
ĐỀ 5:
Bài 1: (3đ) Nhập vào dãy N số nguyên. Tìm số lớn nhất.
Bài 2: (3đ) Phân tích số nguyên n ra tích các thừa số nguyên tố.
Bài 3: (3đ) Nhập 2 số nguyên. Đổi chỗ 2 số cho nhau
Bài 4: (3đ) Tính tổng nghịch đảo của n số nguyên (viết hàm để tính)
Bài 5: (4đ) Tìm các số nguyên tố từ 1 đến 100.
Bài 6: (4đ) Tìm tập hợp các kí tự không xuất hiện trong một chuỗi nhập vào từ bàn phím.
Lưu ý: Các bài làm lưu trên thư mục gốc ổ đĩa D:\ với tên tương ứng là BL1.PAS, BL2.PAS, BL3.PAS, BL4.PAS, BL5.PAS, BL6.PAS.
ĐỀ 6:
Bài 1: (4đ) Nhập một số thực a từ bàn phím.
a/ Nếu a < 0 thì tính a2 và in ra màn hình.
b/ Nếu a = 0 thì thông báo a = 0.
c/ Nếu a > 0 thì tính a5 và in ra màn hình
Bài 2: (5đ) Nhập 3 số thực a, b, c và kiểm tra xem:
a/ Đó có phải là 3 cạnh của một tam giác hay không?
b/ Đó có phải là 3 cạnh của tam giác vuông hay không?
Bài 3: (7đ) Nhập 4 số thực a, b, c, d và thực hiện:
a/ Tìm xem có bao nhiêu số dương, bao nhiêu số âm.
b/ Tính giá trị trung bình của các số trên.
c/ Tính tổng bình phương của các số trên
Bài 4: (4đ) Nhập vào số tự nhiên N và:
a/ Cho biết N có bao nhiêu chữ số.
b/ Tính tổng các chữ số của N.
Lưu ý: Các bài làm lưu trên thư mục gốc ổ đĩa D:\ với tên tương ứng là BL1.PAS, BL2.PAS, BL3.PAS, BL4.PAS.
MỘT SỐ BÀI TOÁN ÔN LUYỆN:
Bài 1: Viết chương trình tính tích các số từ 1 đến n.
Bài 2:Viết chương trình tính tổng nghịch đảo từ 1 đến n.
Bài 3: Viết chương trình tìm ước của n.
Bài 4: Viết chương trình tính tổng nghịch đảo giai thừa từ 1 đến n:
S=1/1! + 1/2! + + 1/n!
Bài 5: Viết chương trình thỏa mãn a2 + b2 = c3 (pytago) chạy từ 1 đến n.
Bài 6: Viết chương trình tìm UCLN, BCNN của a và b.
Bài 7: Nhập số n, cho biết đó có phải là số nguyên tố không?
Bài 8: Nhập vào 1 số. Phân tích ra thừa số nguyên tố.
Bài 9: Dãy số tự nhiên An có tính chất sau:
A1 = A2 = A3 = A4 =1.
An = An-1 + An-3
Tính An với số n được nhập vào.(n>5)
Bài 10:
Nhập vào 1 số tự nhiên N với (0<N<=65535)
a) Hãy cho biết chữ số lớn nhất của số tự nhiên vừa nhập
b) Hãy in đảo ngược số N
VD:
N=6548
Chữ số lớn nhất : 8
Số in ngược là : 8456
Bài 11:
số nguyên tố, nếu số vừa nhập là số nguyên tố thì chỉ thông báo ra màn hình đây là số nguyên tố
Nhập vào 1 số tự nhiên N với ( 0= 65535), phân tích số vừa nhập thành các thừa số nguyên tố
VD:
- Nếu số vừa nhập là 300, thì in ra màn hình 300=2.2.3.5.5
- Nếu số vừa nhập là 307 , thì in ra màn hình "307 là số nguyên tố"
Bài 12:
Tìm tất cả các số nguyên dương x,y,z thõa mãn phương trình : ax+by+cz= n; trong đó a,b,c,n là các số nguyên dương (a,b,c <= 65535; n<= 2.147.483.647)
Yêu cầu kĩ thuật:
1. Kiểm tra việc nhập dữ liệu thõa mãn yêu cầu của đề bài . Nếu người sử dụng nhập sai thì thông báo nhập sai và hỏi người dùng có muốn nhập lại hay không, nếu không thì kết thúc chương trình
2. Không được dùng quá 2 vòng lặp lồng nhau và điều kiện dừng của mỗi vòng lặp không được vượt quá ngưỡng mà từ đó ta biết chắc chắn phương trình không có nghiệm
3. Nếu phương trình có nghiệm thì liệt kê có thứ tự các bộ nghiệm của phương trình theo dạng sau
Giả sử phương trình có dạng 15x+28y+24z=454 , ta in ra màn hình như sau:
STT x y z
1 10 10 1
2 14 7 2
Ngược lại không thì thông báo phương trình không có nghiệm
Bài 13:
Hai số tự nhiên được gọi là nguyên tố tương đương nếu chúng có chung các ước số nguyên tố. Ví dụ các số 75 và 15 là nguyên tố tương đương vì cùng có các ước nguyên tố là 3 và 5. Cho trước 2 số tự nhiên N, M. Hãy viết chương trình kiểm tra xem các số này có là nguyên tố tương đương với nhau hay không.
* Yêu cầu:
+ Dữ liệu nhập vào 2 số 75 và 15. Dữ liệu ra là nguyên tố tương đương
+ Dữ liệu vào nhập 2 số 8 và 25. Dữ liệu ra không phải là nguyên tố tương đương.
Bài 14:
Viết chương trình nhập vào 1 xâu S bất kì. Sau đó xuất ra màn hình xâu S theo thứ tự đảo ngược lại.
* Yêu cầu:
+ Dữ liệu vào nhập vào xâu: "GIA BINH"
+ Dữ liệu ra: "HNIB AIG"
Hướng dẫn: For i:=length(s) downto 1 do write(s[i])
Bài 15:
Cho n người lần lượt có số hiệu là 1,2,3,4,...,N. Theo thứ tự đó, họ đứng thành một vòng tròn và quay mặt về phía tâm vòng tròn. Như vậy, ngay bên tay trái của người có số hiệu N là người có số hiệu 1. Theo chiều kim đồng hồ thì người B đứng sau người A có nghĩa là B đứng bên tay trái của A. Họ chơi một trò chơi như sau: bắt đầu từ người có số hiệu 1 đếm từ 1 -> K theo chiều kim đồng hồ thì người thứ K bước ra khỏi vòng tròn. Người còn lại trên vòng tròn mà đứng ngay sau người thứ K đó lại đếm từ 1 cho đến K theo chiều kim đồng hồ và người thứ K tiếp theo lại tiếp tục bước ra khỏi vòng tròn... Quá trình chơi kết thúc khi trên vòng tròn chỉ còn lại một người.
Ví dụ với N=5, K=3 thì người cuối cùng còn lại trên vòng tròn là người có số hiệu 4 và các số hiệu của những người lần lượt bước ra khỏi vòng tròn là: 3,1,5,2.
Yêu cầu: Lập chương trình (cụ thể là bằng ngôn ngữ Pascal) nhận vào 2 số nguyên N, K (N, K<=10000) và tìm số hiệu của người cuối cùng còn lại trên vòng tròn trong trò chơi mô tả ở trên.
Bài 16:
Cho một lưới gồm n ô vuông được đánh dấu thứ tự từ 1 đến n. ban đầu mỗi ô vuông không chứa hòn sỏi nào, người ta bỏ vào cá cô vuông những hòn sỏi theo k lần qui tắc sau:
Mỗi lần bỏ thêm vào ô vuông thứ nhất, ô vuông thứ 2 mỗi ô đúng 1 hòn sỏi, từ ô vuông thứ 3 trở đi số hòn sỏi bỏ thêm vào bẳng tổng số hòn sỏi của các ô vuông phía trước.
Yêu cầu : Nhập vào số tự nhiên n, k, m (m ≤ n) trong đó n là số ô vuông của lưới, k là số lần thực hiện qui tắc. Hãy cho biết ô vuông thứ m có bao nhiêu hòn sỏi?
Ví dụ : Có n = 5, k = 3, m= 4. Thực hiện k lần qui tắc ta có
k=1 1 1 2 4 8
k=2 2 2 6 14 32
k=3 3 3 12 32 82
Với k=1 số hòn sỏi của từng ô vuông như trên
Với k=2 số hòn sỏi của từng ô vuông như trên
Với k=3 số hòn sỏi của từng ô vuông như trên
Ta được ô vuông thứ m=4 có số hòn sỏi là 32
Bài 17:
Tìm tất cả các số nguyên dương x,y,z thõa mãn phương trình : ax+by+cz= n; trong đó a,b,c,n là các số nguyên dương (a,b,c <= 65535; n<= 2.147.483.647)
Yêu cầu kĩ thuật:
1. Kiểm tra việc nhập dữ liệu thõa mãn yêu cầu của đề bài . Nếu người sử dụng nhập sai thì thông báo nhập sai và hỏi người dùng có muốn nhập lại hay không, nếu không thì kết thúc chương trình
2. Không được dùng quá 2 vòng lặp lồng nhau và điều kiện dừng của mỗi vòng lặp không được vượt quá ngưỡng mà từ đó ta biết chắc chắn phương trình không có nghiệm
3. Nếu phương trình có nghiệm thì liệt kê có thứ tự các bộ nghiệm của phương trình theo dạng sau
Giả sử phương trình có dạng 15x+28y+24z=454 , ta in ra màn hình như sau:
STT x y z
1 10 10 1
2 14 7 2
Ngược lại không thì thông báo phương trình không có nghiệm
Bài làm tham khảo:
uses crt;
var a,b,c:longint;n:word;
i,j,d:integer;
begin
clrscr;
repeat
write('nhap a,b,c,n:');readln(a,b,c,n);
if (a>65535) or (b>65535) or (c>65535) or (n>2147483647)then write('nhap lai:');
until (a<65535) and (b<65535) and (c<65535) and (n<=2147483647);
d:=0;
for i:=1 to n do
for j:=1 to n do
if ((n-a*i-b*j) mod c =0) and ((n-a*i-b*j) div c >0) then
begin
d:=d+1 ;
writeln(d,' ',i,' ',j,' ',(n-a*i-b*j)/c:5:0);
end;
if d=0 then write('ko co nghiem');
readln;
end.
File đính kèm:
- Giao trinh boi duong HSG mon Tin hoc.doc