Tin học lớp 8 Viết chương trình

Bài 2 (trang 26 sgk Tin học lớp 8): Tìm hiểu các phép chia lấy phần nguyên và phép chia lấy phần dư với số nguyên. Sử dụng các câu lệnh tạm dừng chương trình:

a. Mở tệp mới và gõ chương trình sau đây:

uses	crt;
begin
	clrscr;
	writeln('16/3=', 16/3);
	writeln('16 div 3=', 16 div 3);
	writeln('16 mod 3=', 16 mod 3);
	writeln('16 div 3=', 16 –(16 div 3)*3);
	writeln('16 mod 3=', (16-(16 mod 3))/3);
end.

b. Dịch và chạy chương trình. Quan sát kết quả và cho nhận xét.

c. Thêm các câu lệnh delay(5000) vào sau mỗi câu lệnh writeln trong chương trình. Dịch và chạy chương trình. Quan sát chương trình tạm dừng 5 giây sau khi in từng kết quả ra màn hình.

d. Thêm câu lệnh readln vào trước từ khóa end. Dạy và chạy lại chương trình. Quan sát kết quả hoạt động của chương trình. Nhấn phím Enter để tiếp tục hoạt động.

Trả lời:

a. Chương trình:

Tin học lớp 8 Viết chương trình

b. Kết quả:

Tin học lớp 8 Viết chương trình

- Ta có thể thấy rằng kết quả ở hai phép tính ở đầu và cuối là một dãy dài số 0 đằng sau, do kết quả là một số hữu tỉ vô hạn.

VnDoc xin giới thiệu với các bạn một số bài tập Pascal lớp 8 được VnDoc sưu tầm và đăng tải. Trong ngôn ngữ lập trình ngôn ngữ Pascal là ngôn ngữ cơ bản nhưng trong thực tế nó không còn phổ biến như trước nữa bởi ngôn ngữ lập trình Pascal khá dài dòng và gần giống với ngôn ngữ lập trình C. Trong lập trình thì Pascal là ngôn ngữ căn bản. Dưới đây là một số bài tập từ cơ bản đến nâng cao mời các em cùng tham khảo

  • 61 bài tập Pascal cơ bản
  • Một số bài tập Pascal nâng cao

Bài tập thực hành ôn tập Pascal

Các em hãy gõ chương trình sau vào Turbo Pascal để chạy và tìm lỗi:

program Tinh_Chu_Vi_Dien_Tich_HV

var a,s,c:longint;

begin

write(‘Nhap vao do dai canh hinh vuong: ’)

read(a);

if a>0 then

begin

c:=4*a;

s:=a*a;

writeln(‘Chu vi hinh vuong co canh dai ’ ,a, ‘la: ’,c);

writeln(‘Dien tich hinh vuong co canh dai ’ ,a, ‘la: ’,s)

end

else

write(Du lieu sai, khong the thuc hien duoc! ’);

readln

end.

I. Làm quen với chương trình Pascal – Khai báo, sử dụng biến – Các thủ tục vào ra.

Bài tập 1.1: Viết chương trình tính chu vi và diện tích của hình chữ nhật có chiều dài hai cạnh là a, b (được nhập từ bàn phím).

a. Hướng dẫn:

  • Nhập hai cạnh vào hai biến a, b.
  • Chu vi hình chữ nhật bằng 2*(a+b); Diện tích hình chữ nhật bằng a*b.

b. Mã chương trình:

Program Chu_nhat;
uses crt;
Var a, b, S, CV: real;
Begin
Write('Nhap chieu dai:'); readln(a);
Write('Nhap chieu rong:'); readln(b);
S := a*b;
CV := (a+b)*2;
Writeln('Dien tich hinh chu nhat la:',S);
Writeln('Chu vi hinh chu nhat la:',CV:10:2);
readln
end.

c. Nhận xét: Lệnh write cho phép in ra màn hình một hoặc nhiều mục. Có thể định dạng được số in ra bằng cách qui định khoảng dành cho phần nguyên, khoảng dành cho phần thập phân.

Bài tập 1.2: Viết chương trình tính chu vi, diện tích hình vuông có cạnh a (được nhập từ bàn phím).

a. Hướng dẫn:

  • Nhập cạnh vào biến canh.
  • Chu vi hình vuông bằng 4*canh; Diện tích hình vuông bằng canh*canh.

b. Mã chương trình:

Program HINH_VUONG;
uses crt;
Var canh: real;
Begin
clrscr;
Write('Nhap do dai canh:');readln(canh);
Writeln('Chu vi hinh vuong la:',4*canh:10:2);
Writeln('Dien tich hinh vuong la:',canh*canh:10:2);
readln
end.

c. Nhận xét: Bài tập 1.2 tiết kiệm được hai biến là CV và S vì lệnh write cho phép in một biểu thức. Trong lập trình việc tiết kiệm biến là cần thiết nhưng đôi lúc gây khó hiểu khi đọc, kiểm tra chương trình.

Bài tập 1.3: Viết chương trình tính chu vi và diện tích hình tròn có bán kính r (được nhập từ bàn phím).

a. Hướng dẫn:

  • Nhập bán kính vào biến r.
  • Chu vi đường tròn bằng 2**r.
  • Diện tích hình tròn bằng *r*r.

b. Mã chương trình:

Program HINH_TRON;
uses crt;
Var r: real;
Begin
clrscr;
Write('Nhap ban kinh:'); readln(r);
Writeln('Chu vi duong tron la:',2*pi*r:10:2);
Writeln('Dien tich hinh tron la:',pi*r*r:10:2);
readln
end.

c. Nhận xét: pi là hằng số. Một hằng số có thể được người dùng khai báo hoặc do Pascal tự tạo. Pi là hằng do Pascal tự tạo nên người dùng không cần khai báo.

Bài tập 1.4: Viết chương trình tính diện tích của tam giác có ba cạnh là a, b, c (được nhập từ bàn phím)

a. Hướng dẫn:

  • Nhập ba cạnh của tam giác vào ba biến a, b, c.
  • Nửa chu vi của tam giác p = (a+b+c)/2.

b. Mã chương trình:

Program TAM_GIAC;
uses crt;
Var a,b,c,p,S: real;
Begin
clrscr;
Write('Nhap canh a:');readln(a);
Write('Nhap canh b:');readln(b);
Write('Nhap canh c:');readln(c);
p:=(a+b+c)/2;
S:= sqrt(p*(p-a)*(p-b)*(p-c));
Write('Dien tich tam giac la:',s:10:2);
readln
end.

b. Nhận xét: Ở đây ta lại hai lần dùng biến trung gian p, s để chương trình sáng sủa, dễ theo dõi.

Bài tập 1.5: Viết chương trình cho phép tính trung bình cộng của bốn số.

a. Hướng dẫn:

  • Nhập bốn số vào bốn biến a, b, c, d
  • Trung bình cộng của a, b, c, d bằng (a + b + c + d)/4.

b. Mã chương trình:

Program TB_Cong_4_So;
uses crt;
Var a, b, c, d: real;
Begin
Clrscr;
Write('Nhap so thu nhat:');readln(a);
Write('Nhap so thu hai:');readln(b);
Write('Nhap so thu ba:');readln(c);
Write('Nhap so thu tu:');readln(d);
Writeln('Trung binh cong: ',(a+b+c+d)/4):10:2;
Readln
end.

Bài tập 1.6: Viết chương trình cho phép tính trung bình cộng của bốn số với điều kiện chỉ được sử dụng hai biến.

a. Hướng dẫn:

  • Dùng một biến S có giá trị ban đầu bằng 0.
  • Dùng một biến để nhập số.
  • Sau khi nhập một số cộng ngay vào biến S.

b. Mã chương trình:

Program TB_Cong_4_So;
uses crt;
Var s,a: real;
Begin
Clrscr;
S:=0;
Write('Nhap so thu nhat:');readln(a); S:=S+a;
Write('Nhap so thu hai:');readln(a); S:= S+a;
Write('Nhap so thu ba:');readln(a); S:=S+a;
Write('Nhap so thu tu:');readln(a); S:=S+a;
Writeln('Trung binh cong: ',S/4:10:2);
readln
end.

b. Nhận xét: Câu lệnh gán S:= S+a thực hiện việc cộng thêm a vào biến S. Thực chất là thực hiện các bước: lấy giá trị của S cộng với a rồi ghi đè vào lại biến S. Ở đây ta cũng đã sử dụng biến a như là một biến tạm để chứa tạm thời giá trị được nhập từ bàn phím.

Bài tập 1.7: Viết chương trình cho phép tính trung bình nhân của bốn số với điều kiện chỉ được sử dụng hai biến.

a. Hướng dẫn:

  • Dùng một biến S có giá trị ban đầu bằng 1.
  • Dùng một biến để nhập số.
  • Sau khi nhập một số nhân ngay vào biến S.
  • Trung bình nhân bốn số là căn bậc 4 tích của chúng (Dùng hai lần căn bậc hai).

b. Mã chương trình:

Program TB_nhan;
uses crt;
Var a, S: real;
Begin
clrscr;
S:=1;
Write('Nhap so thu nhat: '); readln(a); S:=S*a;
Write('Nhap so thu hai: '); readln(a); S:=S*a;
Write('Nhap so thu ba: '); readln(a); S:=S*a;
Write('Nhap so thu tu: '); readln(a); S:=S*a;
Write('Trung binh nhan cua bon so la:',sqrt(sqrt(s)));
readln
End.

b. Nhận xét: Ta đã dùng hai lần khai phương để lấy căn bậc 4 của một số. Để cộng dồn giá trị vào một biến thì biến đó có giá trị ban đầu là 0. Để nhân dồn giá trị ban đầu vào biến thì biến đó cần có giá trị ban đầu là 1.

Bài tập 1.8: Viết chương trình nhập hai số, đổi giá trị hai số rồi in ra hai số.

a. Hướng dẫn:

  • Dùng các biến a, b để lưu hai số được nhập từ bàn phím;
  • Gán cho biến tam giá trị của a.
  • Gán giá trị của b cho a. (Sau lệnh này a có giá trị của b).
  • Gán giá trị của tạm cho cho b (Sau lệnh này b có giá trị của tam = a).

b. Mã chương trình:

Program Doi_Gia_Tri;
uses crt;
var a, b, tam:real;
Begin
clrscr;
write('nhap a: '); readln(a);
write('nhap b: '); readln(b);
writeln('Truoc khi doi a =',a,' va b= ',b);
readln;
tam:=a;
a:=b;
b:=tam;
writeln('Sau khi doi a =',a,' va b= ',b);
readln
end.

Nhận xét: Nếu thực hiện hai lệnh a:= b; b:=a để đổi giá trị hai biến thì sau hai lệnh này hai biến có giá trị bằng nhau và bằng b. Thực chất sau lệnh thứ nhất hai biến đã có giá trị bằng nhau và bằng b rồi! Trong thực tế để đổi chỗ số dầu ở hai bình cho nhau ta phải dùng thêm một bình phụ.

Bài tập luyện Pascal

Câu 1: Cấu trúc chung của chương trình gồm mấy phần, đó là những phần nào? Phần nào là phần quan trọng nhất không thể thiếu được?

- Cấu trúc chung của chương trình gồm 2 phần:

+ Phần khai báo: nằm đầu mỗi chương trình, là phần có thể có hoặc không, chứa các khai báo như: khai báo tên chương trình, tên thư viện, hằng,..

+ Phần thân chương trình: nằm sau phần khai báo, trong cặp từ khóa begin và end, là phần bắt buộc phải có, chứa các lệnh để giải quyết bài toán.

- Phần quan trọng nhất không thể thiếu được là phần thân chương trình.

Câu 2: Em hiểu như thế nào về viết chương trình cho máy tính? Tại sao người ta cần viết chương trình cho máy tính?

- Viết chương trình là viết dãy câu lệnh hướng dẫn cho máy tính thực hiện công việc hay giải quyết một bài toán cụ thể nào đó.

- Viết chương trình giúp điều khiển máy tính dễ dàng và hiệu quả hơn.

Câu 3: Điểm giống và khác nhau giữa hằng và biến?

- Giống nhau:

+ Biến và hằng đều là đại lượng để lưu trữ dữ liệu.

+ Biến và hằng đều phải được khai báo trước khi sử dụng.

- Khác nhau:

Biến

Hằng

- Giá trị của biến có thể thay đổi trong suốt quá trình thực hiện chương trình.

- Có thể nhập hay gán giá trị khác vào cho biến.

- Giá trị của hằng không thể thay đổi trong suốt quá trình thực hiện chương trình.

- Không thể nhập hay gán giá trị khác vào cho hằng.

Câu 4: Bài toán là gì? Để giải quyết được một bài toán cụ thể ta cần làm gì? Thuật toán là gì? Trình bày các bước để giải một bài toán trên máy tính?

- Bài toán là một công việc hay một nhiệm vụ cần phải giải quyết.

- Để giải quyết bài toán, ta cần xác định điều kiện cho trước và kết quả cần thu được.

- Thuật toán là dãy hữu hạn các thao tác cần thực hiện theo một trình tự xác định để thu được kết quả cần thiết từ những điều kiện cho trước.

- Các bước để giải một bài toán trên máy tính:

+ Bước 1: Xác định bài toán: là xác định điều kiện đã cho (INPUT) và kết quả cần thu được (OUTPUT).

+ Bước 2: Mô tả thuật toán: diễn tả cách giải bài toán bằng dãy các thao tác cần phải thực hiện.

+ Bước 3: Viết chương trình: Dựa vào thuật toán ở trên, viết chương trình bằng một ngôn ngữ lập trình thích hợp.

Câu 5: Viết cú pháp, giải thích cú pháp và hoạt động của câu lệnh điều kiện dạng thiếu trong ngôn ngữ lập trình Pascal?

- Cú pháp: If <điều kiện> then ;

- Trong đó: If, then: là từ khóa.

<điều kiện> thường là phép so sánh.

có thể là câu lệnh đơn, cũng có thể là nhóm câu lệnh. Nếu là nhóm câu lệnh thì đặt trong cặp từ khóa Begin và End.

- Cách thực hiện câu lệnh: Khi thực hiện câu lệnh điều kiện dạng thiếu, chương trình sẽ kiểm tra điều kiện. Nếu điều kiện thỏa mãn thì thực hiện câu lệnh sau từ khóa then, ngược lại, câu lệnh bị bỏ qua.

Câu 6: Viết cú pháp, giải thích cú pháp và hoạt động của câu lệnh điều kiện dạng đủ trong ngôn ngữ lập trình Pascal?

- Cú pháp: If <điều kiện> then

else

;

- Trong đó: If, then: là từ khóa.

<điều kiện> thường là phép so sánh.

: có thể là câu lệnh đơn, cũng có thể là nhóm câu lệnh. Nếu là nhóm câu lệnh thì đặt trong cặp từ khóa Begin và End.

- Cách thực hiện câu lệnh: Với câu lệnh này, chương trình sẽ kiểm tra điều kiện. Nếu điều kiện được thỏa mãn, chương trình sẽ thực hiện câu lệnh 1 sau từ khóa then. Trong trường hợp ngược lại, câu lệnh 2 sẽ được thực hiện.

Câu 7: Viết cú pháp, giải thích cú pháp và hoạt động của câu lệnh lặp trong ngôn ngữ lập trình Pascal?

- Cú pháp: For := to do ;

- Trong đó: For, to, do : là từ khóa.

là một biến kiểu nguyên.

: là các giá trị nguyên, giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.

: có thể là câu lệnh đơn, cũng có thể là một nhóm các câu lệnh. Nếu là nhóm các câu lệnh thì đặt trong từ khóa Begin và End.

- Số lần lặp = (giá trị cuối) - (giá trị cuối) +1 (lần)

- Cách thực hiện câu lệnh: Khi thực hiện, ban đầu biến đếm sẽ nhận giá trị bằng giá trị đầu, sau mỗi vòng lặp, biến đếm được tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối.

Câu 9: Cho hai biến x và y. Hãy mô tả thuật toán đổi giá trị của các biến nói trên để x và y có giá trị tăng dần?

INPUT: hai biến x và y.

OUTPUT: x và y có giá trị tăng dần.

Mô tả thuật toán:

- Bước 1: Nhập x, y.

- Bước 2: Nếu x

- Bước 3: tg <- x;

x <- y;

Y <- tg;

- Bước 4: In giá trị x,y và kết thúc thuật toán.

Câu 10: Nhập vào hai cạnh của một hình chữ nhật. In ra màn hình diện tích và chu vi của nó?

Program hinh_chu_nhat;

Uses crt;

Var a,b, CV, DT: Integer;

Begin

Clrscr;

Write (‘Hay nhap chieu dai: ’);

Redln (a);

Write (‘Hay nhap chieu rong: ’);

Readln (b);

CV:= (a+b)*2;

DT:= a*b;

Writeln (‘Chu vi hinh chu nhat la: ’, CV);

Writeln (‘Dien tich hinh chu nhat la: ’, DT);

Readln;

End.

Câu 11: Nhập vào bán kính của hình tròn. In ra màn hình diện tích và chu vi của nó?

Program hinh_tron;

Uses crt;

Var R, CV, DT: Real

Const pi=3.14;

Begin

Clrscr;

Write (‘Hay nhap ban kinh: ’);

Readln (R);

CV:= 2*R*pi;

DT:= R*R*pi;

Writeln (‘Chu vi la: ’, CV:8:2);

Writeln (‘Dien tich la: ’, DT:8:2);

Readln;

End.

Câu 12: Viết chương trình nhập ba số a,b,c từ bàn phím. Hiển thị kết quả ra màn hình giá trị lớn nhất của ba số đó?

Program so_lon_nhat;

Uses Crt;

Var a,b,c :Integer;

Begin

Clrscr;

Writeln (‘Hay nhap so a: ’);

Readln (a);

Writenln (‘Hay nhap so b: ’);

Readln (b);

Writeln (‘Hay nhap so c: ’);

Readln (c);

If a>b and a>c then writeln (‘ a la so lon nhat’);

If b>a and b>c then writeln (‘b la so lon nhat’);

If c>a and c>b then writeln (‘c la so lon nhat’);

Readln;

End.

Câu 13: Viết chương trình tính tổng N số tự nhiên đầu tiên?

Program Tong_N;

Uses crt;

Var N,T,I: Integer;

Begin

Clrscr;

Write (‘Hay nhap N: ’);

Readln (N);

T:= 0

For i:=1 to N do T:=T+i;

Writeln (‘Tong cua N so tu nhin dau tien la ’, N);

Readln;

End.

Câu 14: Viết chương trình tính N! (Với N! = 1*2*3*…*n)?

Program Tinh_tich;

Uses crt;

Var N,i :Integer;

Giai thua: Longint;

Begin

Clrscr;

Write (‘Hay nhap N: ’);

Readln (N);

Giai thua :=1

For i:=1 to N do Giai thua:= Giai thua*I;

Writeln (‘Tich la ’, Giai thua);

Readln;

End.

Câu 15: Viết chương trình nhập vào hai số a,b. Kiểm tra tổng của chúng có phải là số dương và chia hết cho 3 hay không?

Program hai_so_a_va_b;

Uses crt;

Var a,b :Integer;

Begin

Clrscr;

If (a+b)>0 and (a+b) mod 3 =0 then writeln (‘Tong cua a va b vua la so duong vua chia het cho 3’)

else writeln (‘Tong cua a va b khong vua la so duong vua chia het cho 3’);

Readln;

End.

Câu 16: Viết chương trình tính tổng sau, biết n nhập từ bàn phím:

S= 1+1/2+1/3+…+1/n?

Program Tinh_S;

Uses crt;

Var S,i,N: Real;

Begin

Clrscr;

Write (‘Hay nhap N: ’);

Readln (N);

S:=0

For i:=1 to N do S:= S+1/i;

Writeln (‘Tong la ’, S);

Readln;

End.

Câu 17: Viết chương trình tính tổng sau, biết rằng n nhập từ bàn phím:

S= 1/2+2/3+3/4+..+n/n+1

Program Tinh_tong_S;

Uses crt;

Var S,i,N: Real;

Begin

Clrscr;

Write (‘Hay nhap N: ’);

Readln (N);

S:=0

For i:=1 to N do S:= S+ i/(i+1);

Writeln (‘Tong S la: ’, S:8:2);

Readln;

End.

Câu 18: Viết chương trình nhập vào hai số nguyên dương a và b. Máy hỏi tổng hai số là bao nhiêu? Nếu ta nhập đúng thì máy thông báo “Chúc mừng! Bạn đã tính đúng!” Nếu ta nhập sai thì máy thông báo “Rất tiếc! Bạn đã tính sai” và máy hiện kết quả đúng ra màn hình?

Program tong_hai_so;

Uses crt;

Var a,b,tong :Integer;

Begin

Clrscr;

Write (‘Hay nhap so thu nhat: ’);

Readln (a);

Write (‘Hay nhap so thu hai: ’);

Readln (b);

Write (‘Tong ban tinh duoc la: ’);

Readln (tong);

If tong=a+b then writeln (‘Chuc mung! Ban da tinh dung!’)

else writeln (‘Rat tiec! Ban da tinh sai!’, Tong =a+b);

Readln;

End.

Ngoài ra, VnDoc.com đã thành lập group chia sẻ tài liệu học tập THCS miễn phí trên Facebook: Tài liệu học tập lớp 8. Mời các bạn học sinh tham gia nhóm, để có thể nhận được những tài liệu mới nhất.

Một số bài tập về Pascal được VnDoc chia sẻ trên đây. Hy vọng qua bài tập này các em sẽ nắm chắc kiến thức, cũng như nâng cao kĩ năng lập trình của bản thân. Chúc các em học tốt, nếu thấy tài liệu hữu ích hãy chia sẻ cho các bạn cùng tham khảo nhé

............................................

Ngoài Một số bài tập Pascal lớp 8. Mời các bạn học sinh còn có thể tham khảo các đề thi học kì 1 lớp 8, đề thi học kì 2 lớp 8 các môn Toán, Văn, Anh, Lý, Địa, Sinh mà chúng tôi đã sưu tầm và chọn lọc. Với tài liệu lớp 8 sẽ giúp các bạn ôn tập tốt hơn. Chúc các bạn học tập tốt