Chữa các bài tập mẫu trong ngân hàng câu hỏi chương 3 phần cơ bản

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Chữa các bài tập mẫu trong ngân hàng câu hỏi chương 3 phần cơ bản

Bài gửi by teacher on Thu 07 Apr 2011, 11:03 pm

chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 1
Đăng ngày: 17:03 06-02-2010
Thư mục: lập trình pascal

* bài tập : in ra thứ của ngày trong tuần ?
* phân tich : để in ra thứ của ngày trong tuần khi dùng câu lệnh lặp biết trước số lần ta dùng một biến đếm từ 2 đến 7 và mỗi lần lặp thì in ra lần đó , muốn in ra thêm chu nhật ta gọi thêm lệnh in sau khi đã xong vòng lặp
* chương trình như sau :

program ngaytrongtuan;
uses crt;
var i: integer;
BEGIN
clrscr;
for i:= 2 to 7 do writeln(' thu ',i);
writeln('chu nhat');
readln;
END.
Nguồn trích dẫn (0)




* Báo cáo

chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 2
Đăng ngày: 17:13 06-02-2010
Thư mục: lập trình pascal

* bài tập : in ra các số tự nhiên từ 1 đến 100?
* phân tich : để in ra các số tự nhiên từ 1 đến 100 khi dùng câu lệnh lặp biết trước số lần ta dùng một biến đếm từ 1 đến 100 và mỗi lần lặp thì in ra lần đó
* chương trình như sau :

program in100sotunhien;
uses crt;
var i: integer;
BEGIN
clrscr;
for i:= 1 to 100 do writeln(i);
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 3
Đăng ngày: 05:59 07-02-2010
Thư mục: lập trình pascal

* bài tập : tính tổng : S = 1+ 2+3+4+...+ n
* phân tích : để tính tổng trên với n nhập vào từ bàn phím ta phải dùng một biến đếm từ 1 đến n sao cho mỗi lần lặp lại lấy thứ tự của lần đếm cộng thêm vào tổng, như vậy ta phải khai báo 3 biến : i , n , s đều cùng kiểu số đếm được
*

Lần lặp thứ i

1

2

3

4



n


S cũ

0

0+1

0+1+2

0+1+2+3

….

0+1+2+3+4+…+(n-1)


S mới

0+1

0+1+2

0+1+2+3

0+1+2+3+4

….

0+1+2+3+4+…+(n-1)+n



từ đó ta có công thức : S mới = S cũ + i , xây dựng thành chương trình như sau :

program tongtu1denn;
uses crt;
var i,n,S : integer;
BEGIN
writeln('sau day la chuong trinh tinh tong tu 1 den n, moi ban hay nhap so n ');
readln(n);
for i:= 1 to n do s:=s + i;
writeln('tong tu 1 den ',n,' la ', s);
readln;
END.


Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 4
Đăng ngày: 06:46 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : in ra các số chẵn nhỏ hơn hoặc bằng n
* phân tích : như vậy để in ra các số nhỏ hơn hoặc bằng n thì ta phải duyệt tất cả các số từ 1 đến n tức là phải dùng một vòng lặp For , nhưng mỗi lần lặp thì phải có điều kiện là chỉ là số chẵn mới được in ra , khi đó ta phải lập cấu trúc câu lệnh if ..then...trong phần thực hiện lệnh sau do của câu lệnh for ...to...do...
* chương trình như sau :

program inracacsochannhohonhoacbangn;
uses crt;
var i,n : integer;
BEGIN
writeln('sau day la chuong trinh in ra cac so chan nho hon hoac bang n , hay nhap n ');
readln(n);
for i:=1 to n do if i mod 2 =0 then writeln(i);
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 5
Đăng ngày: 07:14 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : néu n chẵn in ra các số chẵn nhỏ hơn hoặc bằng n
* phân tích: giống như bài tập 4 ta chỉ việc thêm vào điều kiện của n là số chẵn có hai cách thêm
* cách1: thêm điều kiện kiểm tra n chẵn vào trước vòng for i:=1 to n do if i mod 2 =0 then writeln(i);

chương trình sẽ là :
program inracacsochannhohonhoacbangnkhinchan;
uses crt;
var i,n : integer;
BEGIN
writeln('sau day la chuong trinh in ra cac so chan nho hon hoac bang n , hay nhap n ');
readln(n);
if n mod 2 = 0 then for i:=1 to n do if i mod 2 =0 then writeln(i);
readln;
END.

* cách2: thêm điều kiện kiểm tra n chẵn vào trong vòng for i:=1 to n do if i mod 2 =0 then writeln(i); ở phần điều kiện if ..sau do

program inracacsochannhohonhoacbangnkhinchan;
uses crt;
var i,n : integer;
BEGIN
writeln('sau day la chuong trinh in ra cac so chan nho hon hoac bang n , hay nhap n ');
readln(n);
for i:=1 to n do if (i mod 2 =0 )and(n mod 2 = 0)then writeln(i);
readln;
END.
Nguồn trích dẫn (0)
theo các bạn cách thêm nào sẽ khi thực hiện chương trình máy tính sẽ phải tính toán ít hơn?


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 6
Đăng ngày: 07:32 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : in ra các số lẻ nhỏ hơn hoặc bằng n
* phân tích : như vậy để in ra các số nhỏ hơn hoặc bằng n thì ta phải duyệt tất cả các số từ 1 đến n tức là phải dùng một vòng lặp For , nhưng mỗi lần lặp thì phải có điều kiện là chỉ là số lẻ mới được in ra , khi đó ta phải lập cấu trúc câu lệnh if ..then...trong phần thực hiện lệnh sau do của câu lệnh for ...to...do...
* chương trình như sau :

program inracacsolenhohonhoacbangn;
uses crt;
var i,n : integer;
BEGIN
writeln('sau day la chuong trinh in ra cac so le nho hon hoac bang n , hay nhap n ');
readln(n);
for i:=1 to n do if i mod 2 <> 0 then writeln(i);
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 7
Đăng ngày: 07:37 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : néu n lẻ in ra các số lẻ nhỏ hơn hoặc bằng n
* phân tích: giống như bài tập 6 ta chỉ việc thêm vào điều kiện của n là số lẻ có hai cách thêm
* cách1: thêm điều kiện kiểm tra n lẻ vào trước vòng for i:=1 to n do if i mod 2 <>0 then writeln(i);

chương trình sẽ là :
program inracacsolenhohonhoacbangnkhinle;
uses crt;
var i,n : integer;
BEGIN
writeln('sau day la chuong trinh in ra cac so le nho hon hoac bang n , hay nhap n ');
readln(n);
if n mod 2 <> 0 then for i:=1 to n do if i mod 2 <> 0 then writeln(i);
readln;
END.

* cách2: thêm điều kiện kiểm tra n lẻ vào trong vòng for i:=1 to n do if i mod 2 <>0 then writeln(i); ở phần điều kiện if ..sau do

program inracacsochannhohonhoacbangnkhinle;
uses crt;
var i,n : integer;
BEGIN
writeln('sau day la chuong trinh in ra cac so le nho hon hoac bang n , hay nhap n ');
readln(n);
for i:=1 to n do if (i mod 2 <>0 )and(n mod 2<> 0)then writeln(i);
readln;
END.
Nguồn trích dẫn (0)
theo các bạn cách thêm nào sẽ khi thực hiện chương trình máy tính sẽ phải tính toán ít hơn?


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 8
Đăng ngày: 19:02 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : in ra tổng các số chẵn nhỏ hơn hoặc bằng n
* phân tích : giống bài tập số 4 ta phải xét một vòng lặp for với biến chạy từ 1 đến n và mỗi lần lặp nếu là lần chẵn thì cộng dồn giá trị số lần lặp vào một biến lưu và khi kết thúc vòng lặp thì in ra giá trị của biến lưu chính là giá trị của tổng các số chẵn .
* chương trình thu được là :

program tongchan;
uses crt;
var s , n ,i : integer;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh tong cac so chan nho hon hoac bang n, hay nhap n ');
readln(n);
for i:= 1 to n do if i mod 2 = 0 then s:= s+i;
writeln(' gia tri tong cac so chan tu 1 den ',n,' la ',s:3);
writeln('go enter de thoat');
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 9
Đăng ngày: 19:55 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : nếu n chẵn in ra tổng các số chẵn nhỏ hơn hoặc bằng n
* phân tích: giống như bài tập 8 ta chỉ việc thêm vào điều kiện của n là số chẵn có hai cách thêm
* cách1: thêm điều kiện kiểm tra n chẵn vào trước vòng for i:=1 to n do if i mod 2 = 0 then s:=s+i;

chương trình sẽ là :
program tinhtongcacsochannhohonhoacbangnkhinchan ;
uses crt;
var i,n,s : integer;
BEGIN
writeln('sau day la chuong trinh tinh tong cac so chan nho hon hoac bang n , hay nhap n ');
readln(n);
if n mod 2 = 0 then for i:=1 to n do if i mod 2 = 0 then s:=s+i;
writeln(' gia tri tong cac so chan tu 1 den ',n,' la ',s:3);
writeln('go enter de thoat');;
readln;
END.

* cách2: thêm điều kiện kiểm tra n chẵn vào trong vòng for i:=1 to n do if i mod 2 =0 then s:=s+i; ở phần điều kiện if ..sau do

program tinhtongcacsochannhohonhoacbangnkhinchan;
uses crt;
var i,n,s : integer;
BEGIN
writeln('sau day la chuong trinh tinh tong cac so chan nho hon hoac bang n , hay nhap n ');
readln(n);
for i:=1 to n do if (i mod 2 =0 )and(n mod 2= 0)then s:=s+i;
writeln(' gia tri tong cac so chan tu 1 den ',n,' la ',s:3);
writeln('go enter de thoat');
readln;
END.
Nguồn trích dẫn (0)
hãy cho biết cách thêm điều kiện n chẵn nào làm cho máy phải tính toán ít hơn ?


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 10
Đăng ngày: 19:55 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : in ra tổng các số lẻ nhỏ hơn hoặc bằng n
* phân tích : giống bài tập số 8 ta phải xét một vòng lặp for với biến chạy từ 1 đến n và mỗi lần lặp nếu là lần lẻ thì cộng dồn giá trị số lần lặp vào một biến lưu và khi kết thúc vòng lặp thì in ra giá trị của biến lưu chính là giá trị của tổng các số lẻ .
* chương trình thu được là :

program tongle;
uses crt;
var s , n ,i : integer;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh tong cac so le nho hon n, hay nhap n ');
readln(n);
for i:= 1 to n do if i mod 2 = 1 then s:= s+i;
writeln(' gia tri tong cac so chan tu 1 den ',n,' la ',s:3);
writeln('go enter de thoat');
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 11
Đăng ngày: 20:00 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : nếu n lẻ in ra tổng các số lẻ nhỏ hơn hoặc bằng n
* phân tích: giống như bài tập 10 ta chỉ việc thêm vào điều kiện của n là số lẻ có hai cách thêm
* cách1: thêm điều kiện kiểm tra n lẻ vào trước vòng for i:=1 to n do if i mod 2 =1 then s:=s+i;

chương trình sẽ là :
program tinhtongcacsochannhohonhoacbangnkhinle ;
uses crt;
var i,n,s : integer;
BEGIN
writeln('sau day la chuong trinh tinh tong cac so le nho hon hoac bang n , hay nhap n ');
readln(n);
if n mod 2 = 1 then for i:=1 to n do if i mod 2 = 1 then s:=s+i;
writeln(' gia tri tong cac so le tu 1 den ',n,' la ',s:3);
writeln('go enter de thoat');;
readln;
END.

* cách2: thêm điều kiện kiểm tra n lẻ vào trong vòng for i:=1 to n do if i mod 2 =1 then s:=s+i; ở phần điều kiện if ..sau do

program tinhtongcacsochannhohonhoacbangnkhinle;
uses crt;
var i,n,s : integer;
BEGIN
writeln('sau day la chuong trinh tinh tong cac so le nho hon hoac bang n , hay nhap n ');
readln(n);
for i:=1 to n do if (i mod 2 =1 )and(n mod 2= 1)then s:=s+i;
writeln(' gia tri tong cac so le tu 1 den ',n,' la ',s:3);
writeln('go enter de thoat');
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 12
Đăng ngày: 20:04 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào một số tự nhiên n : in ra tổng các số không chia hết cho 7 nhỏ hơn hoặc bằng n
* phân tích : giống bài tập số 10 ta phải xét một vòng lặp for với biến chạy từ 1 đến n và mỗi lần lặp nếu là lần không chia hết cho 7 thì cộng dồn giá trị số lần lặp vào một biến lưu và khi kết thúc vòng lặp thì in ra giá trị của biến lưu chính là giá trị của tổng yêu cầu .
* chương trình thu được là :

program tongkhongchiahetcho7;
uses crt;
var s , n ,i : integer;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh tong cac khong chia het cho 7 nho hon n, hay nhap n ');
readln(n);
for i:= 1 to n do if i mod 7 <> 0 then s:= s+i;
writeln(' gia tri tong cac khong chia het cho 7 tu 1 den ',n,' la ',s:3);
writeln('go enter de thoat');
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 13
Đăng ngày: 20:10 07-02-2010
Thư mục: lập trình pascal

* bài tập : nhập vào hai số tự nhiên n , k ( điều kiện k < n ): in ra tổng các số không chia hết cho k nhỏ hơn hoặc bằng n
* phân tích : với bài tập này xét về cách giải thì không có gì khác các bài tập trước chỉ có một điểm là cả hai số đều là số hạng tổng quát
* chương trình như sau

program tongcacsokhongchiahetchoknhohonn;
uses crt;
var s , n ,i,k : integer;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh tong cac khong chia het cho k nho hon n, hay nhap n ');
readln(n);
writeln('hay nhap k ');
readln(k);
for i:= 1 to n do if i mod k <> 0 then s:= s+i;
writeln(' gia tri tong cac khong chia het cho k tu 1 den ',n,' la ',s:3);
writeln('go enter de thoat');
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 14
Đăng ngày: 20:14 07-02-2010
Thư mục: lập trình pascal

* bài tập : tính tổng : S = 1^2 + 2^2 + 3^2 +...+n^2
* Phân tích: với dạng bài tập này các bạn phải lập sơ đồ để tìm công thức , chú ý xác định số biến cần sử dụng sau khi lập sơ đồ liên quan giữa biến đếm số lần và biến tổng

Lần lặp thứ i

1

2

3

4



n


S cũ

0

1*1

1*1+2*2

1*1+2*2+3*3

….

1*1+2*2+3*3+…(n-1)*(n-1)


S mới

1*1

1*1+2*2

1*1+2*2+3*3

1*1+2*2+3*3+4*4

….

1*1+2*2+3*3+…(n-1)*(n-1)+n*n

vậy công thức xây dựng được là : S cũ = S mới + i*i; ta có chương trình như sau
program cactongmu2;
uses crt;
var i,n,s: integer;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh S = 1^2 + 2^2 + 3^2 +...+n^2, hay nhap n la so tu nhien');
readln(n);
for i:= 1 to n do s:=s + i*i;
writeln(' S = 1^2 + 2^2 + 3^2 +...+',n,'^2 = ',s:5);
readln;
END.

Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 15
Đăng ngày: 20:20 07-02-2010
Thư mục: lập trình pascal

* bài tập : tính tổng : S = 1.2 + 2.3 + 3.4 +...+n.(n+1)
* Phân tích: với dạng bài tập này các bạn phải lập sơ đồ để tìm công thức , chú ý xác định số biến cần sử dụng sau khi lập sơ đồ liên quan giữa biến đếm số lần và biến tổng

Lần lặp thứ i

1

2

3

4



n


S cũ

0

1*2

1*2+2*3

1*2+2*3+3*4

….

1*2+2*3+3*4+…(n-1)*n


S mới

1*2

1*2+2*3

1*2+2*3+3*4

1*2+2*3+3*4+4*5

….

1*1+2*2+3*3+…(n-1)*n+n*(n+1)

vậy công thức xây dựng được là : S cũ = S mới + i*(i+1); ta có chương trình như sau
program cactongcuatichlientiep2so;
uses crt;
var i,n,s: integer;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh S = 1.2 + 2.3 + 3.4 +...+n.(n+1), hay nhap n la so tu nhien');
readln(n);
for i:= 1 to n do s:=s + i*(i+1);
writeln(' S = 1.2 + 2.3 + 3.4 +...+', n , '.' , '(' , n ,'+1) = ',s:5);
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 16
Đăng ngày: 20:25 07-02-2010
Thư mục: lập trình pascal

* bài tập : tính tổng : S= 1 + 1/2 + 1/3 + 1/4 +...+ 1/n
* Phân tích: với dạng bài tập này các bạn phải lập sơ đồ để tìm công thức , chú ý xác định số biến cần sử dụng sau khi lập sơ đồ liên quan giữa biến đếm số lần và biến tổng

Lần lặp thứ i

1

2

3

4



n


S cũ

0

1/1

1/1+1/2

1/1+1/2+1/3

….

1/1+1/2+1/3+…1/(n-1)


S mới

1/1

1/1+1/2

1/1+1/2+1/3

1/1+1/2+1/3+1/4

….

1/1+1/2+1/3+…1/(n-1)+1/n

vậy công thức xây dựng được là : S cũ = S mới + 1/i; ta có chương trình như sau
program cactonghuuti;
uses crt;
var i,n: integer;
var s: real;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh S = 1 + 1/2 + 1/3 + 1/4 +...+ 1/n, hay nhap n la so tu nhien');
readln(n);
for i:= 1 to n do s:=s + 1/i;
writeln(' S = 1 + 1/2 + 1/3 + 1/4 +...+ 1/', n , ' = ', s:5);
readln;
END.
Nguồn trích dẫn (0)


chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 17
Đăng ngày: 20:30 07-02-2010
Thư mục: lập trình pascal

* bài tập : tính tích : Q= x^n
* Phân tích: với dạng bài tập này các bạn phải lập sơ đồ để tìm công thức , ta không thể ghi được phép tính cụ thể x mũ n nên phải dùng một vòng lặp mà mỗi lần lại nhân thêm x vào biến lưu

Lần lặp thứ i

1

2

3

4



n


Q cũ

1

x

x*x

x*x*x

….

x*x*x*...*x với n-1 thừa số x


Q mới

x

x*x

x*x*x

x*x*x*x

….

x*x*x*...*x với n thừa số x

vậy công thức xây dựng được là : Q mới = Q cũ *x; ta có chương trình như sau
program x^n;
uses crt;
var i,n,Q: integer;
var x: real;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh Q= x^n, hay nhap n la so tu nhien');
readln(n);
writeln(' nhap x la so thuc');
readln(x);
Q:=1;
for i:= 1 to n do Q:=Q * x ;
writeln(' Q=' , x ,'^', n , ' = ', Q:5);
readln;
END.
Nguồn trích dẫn (0)




* Báo cáo

chữa bài tập chương 3 câu lệnh lặp biết trước số lần bài 18
Đăng ngày: 20:35 07-02-2010
Thư mục: lập trình pascal

* bài tập : tính tích : Q = 1* 2 * 3 * 4 *...*n
* Phân tích: với dạng bài tập này các bạn phải lập sơ đồ để tìm công thức

Lần lặp thứ i

1

2

3

4



n


Q cũ

1

1*1

1*1*2

1*1*2*3

….

1*1*2*3*4*...*( n-1)


Q mới

1*1

1*1*2

1*1*2*3

1*1*2*3*4

….

1*1*2*3*4*...*( n-1)*n

vậy công thức xây dựng được là : Q cũ = Q mới * i; ta có chương trình như sau
program n!;
uses crt;
var i,n,Q: integer;
BEGIN
clrscr;
writeln('sau day la chuong trinh tinh Q= n!, hay nhap n la so tu nhien');
readln(n);
Q:=1;
for i:= 1 to n do Q:=Q * i ;
writeln(' Q=' , n ,'! = ', Q:5);
readln;
END.
Nguồn trích dẫn (0)



-----------~~๑۩۞۩๑~~ HỌC ONLINE ~~๑۩۞۩๑~~---------------
Em sẽ lớn lên như tôi đã từng khôn lớn
và sẽ bay cao bay xa hơn tôi ..... !!!
* thành viên câu lạc bộ học khuya*

classicfat32@gmail.com
https://sites.google.com/site/dayhocdientu/
avatar
teacher
CỐ VẤN
CỐ VẤN

Nam
Tổng số bài gửi : 352
điểm điểm : 800
Đến từ : classicfat32@gmail.com

Xem lý lịch thành viên https://sites.google.com/site/dayhocdientu/

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết