Vòng lặp không xác định While…do và Repeat…Until

Một phần của tài liệu câu lệnh điều khiển trong ngôn ngữ lập trình pascal (Trang 32 - 36)

Bài tập 1: Tính tổng sau : A = 1 + 1/2 + 1/3 +... + 1/N Program Tinh_tong ; Var I, N : Integer ; A : Real ; BEGIN Writeln (' N = ') ; Readln ( N ) ; A := 0 ; I := 1 ; Repeat A := A + 1/ I ;

I := I + 1 ; (* thay đổi giá trị biểu thức Boolean *) Until I > N ;

Writeln (' Tong = ', a :10 : 8 ) ; END.

Hoặc viết cách khác dưới dạng "đếm lùi" : Program tinhtong; Var N : Integer ; A : Real ; BEGIN Writeln (' N = ') ; Readln ( N ) ; A := 0 ; Repeat A := A + 1/N

N := N - 1 ; (* thay đổi giá trị biểu thức Boolean *) Until N = 0 ; Writeln (' Tong = ', A :10 : 8 ) ; END. Hoặc dùng vòng While…do: A := 0 ; I := 1 ; While I <= N Do Begin A := A + 1/ I ;

I := I + 1 ; (* thay đổi giá trị biểu thức Boolean *) End ;

Bài tập 2: Viết chương trình nhập từ bàn phím các số thực hiện liên tiếp và cho chương trình dừng lại khi tổng các số nhập lớn hơn 10 hoặc số các số nhập vào bằng 10.

Chương trình:

Program Tong_cac_so; Var a,S: real;

i: byte; b: boolean; Begin

Writeln(‘nhap cac so thuc, chuong trinh chi dung lai khi tong cac so duoc nhap lon hon 10 hoac cac so bang 10:’);

S:=0; i:=0; Repeat Readln(a); S:=S+a; i:=i+1; b:=(S>10) or (i= 10); Until b; End.

Bài tập 3: Viết chương trình nhập từ bàn phím một số tự nhiên N tìm một biểu thức duy nhất của n thành tổng các số Fibonaci. Chương trình: Program Fibonaci; Uses Crt; Var N,a,b,c:word; Begin Clrscr;

Writeln(‘bieu dien so N thanh tong cua cac so Fibonaci:’); Write (‘nhap N=’); readln(N);

Write(N,’=’); Repeat a:=1; b:=0; Repeat c:=a+b; a:=b; b:=c; Until (c>N); Write(a); N:=N-a; If N<>0 then write(‘+’); Until (N=0); Readln; End.

Bài tập 4: Viết chương trình tính giá trị của a^n với a,n được nhập từ bàn phím. Chương trình:

Program luy_thua; Uses Crt;

Var n,i: byte; a,b:real; Begin

Clrscr;

Write(‘nhap so thuc a:’); Readln(a); Write(‘nhap so tu nhien n:’); Readln(n) b:=1; i:=1; if (n>0) then Repeat b:=b*a; inc(i); Until (i>n);

Writeln(‘a luy thua n=’, b:20:5); Readln;

End.

Bài tập 5: Viết chương trình tìm ước chung lớn nhất của hai số m và n: Chương trình:

Program UCLN(a,b); Uses Crt;

Var m,n: word; Begin

Write(‘nhap hai so m,n’); Readln(m,n); While m<>n do

If m > n then m:=m-n Else

Write(‘ucln cua chung la ‘,m); Readln;

End.

Bài tập 6: Viết chương trình cho máy nhận vào hai kích thước của một căn phòng hình chữ nhật (yêu cầu kiểm tra hai kích thước dương),tìm số viên gạch hình vuông cạnh a lát trong căn phòng. Chương trình: Program lat_gach; Uses Crt; Const =0.3; Var k1,k2:real; Begin Clrscr;

Write(‘cho hai kich thuoc cua can phong’); Repeat

Readln(k1,k2);

Until

(k1>0) and (k2>0);

Writeln(‘so vien gach la’,Trunc(k1/a)*Trunc(k2/a)); Readln;

End.

BÀI TẬP TỰ GIẢI:

Bài tập1. Viết chương trình nhập vào số n. Tính giá trị biểu thức E = 1/1! + 1/2! + ... + 1/n!. Bài tập2. Một người gửi tiết kiệm không kì hạn với số tiền A đồng với lãi suất 0.3% mỗi tháng. Hỏi sau bao nhiêu tháng, người đó rút hêt tiền thì sẽ nhận được số tiền ít nhất là B=1.5A đồng. Biết rằng gửi tiết kiệm không kì hạn thì lãi sẽ không được cộng vào tiền gốc.

Bài tập 3. Nhập một số nguyên dương n. Tính: a. S = 1 + 2 + … + n b. S = 12+ 22+ … + n2 c. S = 1 + 1/2 + … + 1/n d. S = 1*2*…*n = n! e. S = 1! + 2! + … + n! f. S = 1/2 + 1/4 + … + 1/2n g. S = 1 + 1/3 + 1/5 + … + 1/(2n+1) h. S = 1/(1x2) + 1/(2x3) + … + 1/(nxn+1) i. S = 1/2 + 2/3 + … + n/(n+1) j. S = 1 + 1/(1 + 2) + … + 1/(1 + 2 + … + n

Bài tập 4. Viết chương trình nhập vào một số nguyên dương n và thực hiện các công việc sau: a. Kiểm tra n có phải là số nguyên tố không?

b. Kiểm tra n có phải là số chính phương không?

c. Kiểm tra n có phải số hoàn hảo không? ("số hoàn hảo" là số bằng tổng tất cả các ước số của nó trừ chính nó. Ví dụ: 6 là số hoàn hảo vì:6=1+2+3; 28 là số hoàn hảo vì

28=1+2+4+7+14).

Bài tập 5. Nhập 2 số nguyên dương a và b thực hiện các công việc sau: a. Tìm Ước số chung lớn nhất (USCLN) của 2 số đó

b. Tìm Bội số chung nhỏ nhất (BSCNN) của 2 số đó. 4. viết chương trình nhập vào số nguyên n. In ra: a. Liệt kê tất cả ước số của số nguyên dương n b. Tính tổng các ước số của số nguyên dương n c. Đếm số lượng ước số của số nguyên dương n d. Tính tổng các ước số chẵn của số nguyên dương n

Bài tập 6: Viết chương trình nhập vào từ bàn phím một dãy ký tự hoa chuyển thành các ký tự thường và ngược lại.

Bài tập 7 : Viết chương trình nhập vào một số nguyên dương N và in tất cả các số chính phương trong phạm vi N, các số lẻ trong phạm vi N, các số chẵn trong phạm vi N.

Bài tập 8 : Viết chương trình nhập vào các số thực cho đến khi số 0 được nhập vào và cho biết: a) Số phần tử đã nhập.

b) Tổng của các phần tử đã nhập c) Giá trị lớn nhất

d) Giá trị nhỏ nhất

Bài tập 9 : Viết chương trình in ra màn hình tất cả các số có4 chữ số abcd thỏa mãn a+b= c+d. PHẦN C: KẾT LUẬN

Sau một thời gian tập trung nghiên cứu, tham khảo các tài liệu về ngôn ngữ lập trình pascal, cùng với sự tận tình hướng dẫn của thầy th.s Lưu đức Chính. Chúng tôi đã hoàn thành được bài tập lớn chủ đề của mình. Trong quá trình thực hiện, chúng tôi đã tìm hiểu thêm được nhiều vấn đề liên quan đến ngôn ngữ pascal và càng thấy được sự tiện ích của ngôn ngữ bậc cao này trong việc viết các chương trình. Tuy nhiên trong một khoảng thời gian có hạn và trình độ còn nhiều hạn chế, do đó đối vơi bài tập lớn chủ đề này cũng không thể tránh khỏi những sai sót mắc phải, nhưng trong đó cũng có thể nói nó cũng đã một phần nào thể hiện sự cố gắng, tìm tòi, học hỏi của chúng tôi.

Chúng tôi mong và hy vọng rằng khi xem xong phần bài tập lớn chủ đề của chúng tôi, các thầy cô giáo và các bạn sẽ có những ý kiến đóng góp đề bài tập này được hoàn thiện hơn.

Chúng tôi xin cân thành cảm ơn!

PHẦN D: TÀI LIỆU THAM KHẢO VÀ NGHIÊN CỨU. - Lý thuyết và bài tập pascal ( Đinh xuân lâm).

- Giáo trình passcal 7.0 ( Bùi thế tâm). - Bài tập pascal cơ bản (Vũ đức Quang).

Một phần của tài liệu câu lệnh điều khiển trong ngôn ngữ lập trình pascal (Trang 32 - 36)

Tải bản đầy đủ (DOC)

(36 trang)
w