Hướng dẫn chương trình pascal mẫu
newbie
Tổng số bài gửi : 54 Join date : 06/03/2008 Tiêu đề: Một số bài mẫu PASCAL (10/3/2008) Mon Mar 10, 2008 9:37 pm Bài 4 : Viết chương trình in tam giác số n dòng Giá trị của biến chạy j sẽ là chạy từ 1 đến i. Ví dụ dòng i= 1 thì j chạy từ 1 tới 1. Dòng i=2 thì j chạy từ 1 đến 2. Như vậy ta có thể giải bài toán như sau Giải Code: Program bai4; Chú ý : Trong bài trên ta cần in có quy cách giá trị của biến nguyên j Code: For j:=1 to i do write(j:4); (Dành 4 vị trí để in giá trị của j) để phòng trường hợp giá trị của j có nhiều hơn 2 chữ số mà ta in theoCode: For j:=1 to i do write(j); Sẽ làm lêch tam giác. Không tin các bạn có thể bỏ số 4 đi và nhập giá trị N >10 !Trong cách in Code: For j:=1 to i do write(j:4); cũng chỉ được đến trường hợp j có nhỏ hơn hoặc bằng 4 chữ số, nhiều hơn thì sẽ lệch tam giác số ! Bạn thử nhập N >= 10000 thì sẽ thấy.LikeDislike newbieTổng số bài gửi : 54 Join date : 06/03/2008 Tiêu đề: Re: Một số bài mẫu PASCAL (10/3/2008) Mon Mar 10, 2008 9:46 pm Bài 5 : Viết chương trình in tam giác số n dòng For j:=1 to i do write(j:4); thay bằngCode: For j:=1 to i do write(i:4); LikeDislike newbieTổng số bài gửi : 54 Join date : 06/03/2008 Tiêu đề: Re: Một số bài mẫu PASCAL (10/3/2008) Mon Mar 10, 2008 9:55 pm Bài 6 : Viết chương trình nhập một dãy số gồm n số nguyên từ bàn phím. Tính và in ra màn hình tổng và giá trị trung bình của dãy vừa nhập. program bai6; LikeDislike newbieTổng số bài gửi : 54 Join date : 06/03/2008 Tiêu đề: Re: Một số bài mẫu PASCAL (10/3/2008) Mon Mar 10, 2008 10:15 pm Bài 7 : Viết chương trình nhập một dãy số âm từ bàn phím cho tới khi gặp số 0 thì dừng. Tìm và in ra màn hình giá trị nhỏ nhất, lớn nhất của dãy vừa nhập. program Bai7; chú ý : Trong cách giải trên vẫn còn 1 lỗi nhỏ là giả sử ta nhập ngay giá trị đầu là lớn hơn 0, nghĩa là khi dãy số không có số nào thì chương trình vẫn in ra kết quả là Min=0 và Max=-32768. Để khắc phục lỗi này ta có thể thêm 1 lệnh kiểm tra khi in ra kết quả. Các bạn hãy tự thêm vào ! LikeDislike Tổng số bài gửi : 54 Join date : 06/03/2008 Tiêu đề: Re: Một số bài mẫu PASCAL (10/3/2008) Tue Mar 11, 2008 10:06 am Bài 9 : Viết chương trình tìm tất cả các số có 3 chữ số abc sao tổng các lập phương của các chữ số bằng chính chữ số đó GIAI Số abc là số có 3 chữ số nên giá trị có thể của a phải là từ 1 tới 9 không thể là 0 được. Giá trị có thể của b và c là 0 tới 9. Ta sử dụng vòng lặp FOR Code: program bai9; Ta có thể thêm biến đếm vào để đếm số lượng số tìm được bằng cách : khai báo thêm biến đếm Code: Var Ban đầu gánCode: dem:=0; Trong đoạn begin, end của lệnh if thêmCode: dem:=dem+1; LikeDislike newbieTổng số bài gửi : 54 Join date : 06/03/2008 Tiêu đề: Re: Một số bài mẫu PASCAL (10/3/2008) Tue Mar 11, 2008 10:10 am Bài 10 : In ra cách để có 300 từ các đồng giấy bạc 1 đồng, 2 đồng, 5 đồng. LikeDislike Tổng số bài gửi : 54 Join date : 06/03/2008 Tiêu đề: Re: Một số bài mẫu PASCAL (10/3/2008) Tue Mar 11, 2008 10:51 am Bài 11 : Tìm số nguyên dương lớn nhất thoả mãn điều kiện Giải : Để giải bài này ta phải dùng vòng lặp không biết trước số lần lặp, 1 : ban đầu n được gán là giá trị nguyên dương nhỏ nhất là 0 (n:=0;) 2 : Tại mỗi bước lặp ta thử kiểm tra giá trị n có thảo mãn hay không. nếu n thỏa mãn thì ta lại tiếp tục tăng n. Nếu N không thỏa mãn thì dừng và in ra giá trị trước đó (giá trị n thỏa mãn) Sơ đồ khối Code: program bai10; LikeDislike newbieTổng số bài gửi : 54 Join date : 06/03/2008 Tiêu đề: Re: Một số bài mẫu PASCAL (10/3/2008) Tue Mar 11, 2008 11:29 am Bài 12 : Lập chương trình đọc x, n rồi tính và in ra giá trị biểu thức Giải Bài này ta cũng làm tương tự Bài 2 Nhập N, Tính tổng Tuy nhiên ở đây ta cần nhập thêm giá trị của x và tính giá trị tại mỗi bước lặp. Để tính ta có thể dùng vòng lặp FOR tại mỗi bước lặp ta dùng thêm biến tg để tính Code: tg:=1; sau đó cập nhật giá trị tổng S Code: S:=S+tg/i; Chương trình sẽ được viết là Code: program bai12; Tuy nhiên trong cách làm trên thì tại bước lặp tiếp theo của i là i+1 ta lại phải lặp lại việc tính mà đã tính được từ trước, ta có thể tối ưu chương trình bằng cách sử dụng kết quả đã có của lần lặp trước như sau Code: program bai12; LikeDislike |