{"event_info":{"picture":"https://img.loigiaihay.com/picture/event/2017/0123/1-0.jpg","title":"Chương 4: Kiểu dữ liệu có cấu trúc","display_type":1,"cat_id":155,"cat_title":"SGK Tin học lớp 11","alias":"chuong-4-kieu-du-lieu-co-cau-truc","introtext":"","content_box_above":"","type":"event","page_builder":"","item_id":4769,"item_type":2},"list_articles":[{"article_id":25178,"cat_id":155,"publish_time":1486366560,"type_ex":1,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_4-0.jpg","title":"Tóm tắt lý thuyết chương 4","label":"Tóm tắt lý thuyết chương 4","alias":"tom-tat-ly-thuyet-chuong-4","introtext":"Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu đã có theo quy tắc, khuôn dạng do ngôn ngữ lập trình cung cấp;","display_type":0,"article_type":1},{"article_id":25169,"cat_id":155,"publish_time":1486366560,"type_ex":1,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0123/resize_3-0.jpg","title":"Lý thuyết: Kiểu mảng trang 53 SGK Tin học 11","label":"Lý thuyết: Kiểu mảng trang 53 SGK Tin học 11","alias":"ly-thuyet-kieu-mang-trang-53-sgk-tin-hoc-11","introtext":"Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu.","display_type":0,"article_type":1},{"article_id":25170,"cat_id":155,"publish_time":1486366560,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0123/resize_2-0.jpg","title":"Bài tập và thực hành 3 trang 63 SGK Tin học 11","label":"Bài tập và thực hành 3 trang 63 SGK Tin học 11","alias":"bai-tap-va-thuc-hanh-3-trang-63-sgk-tin-hoc-11","introtext":"Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm hiểu, chạy thử các chương trình có sẵn.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p><strong>1. Mục đích, yêu cầu</strong></p>\r\n<p>- Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm hiểu, chạy thử các chương trình có sẵn.</p>\r\n<p>- Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính.</p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p class=\"Bodytext0\"><strong>Bài 1.</strong> Tạo mảng A gồm n (n&lt;100) số nguyên, mỗi số có giá trị tuyệt đối không vượt quá 300. Tính tổng các phần tử của mảng là hội số của một số nguyên dương k cho trước.</p>\r\n<p class=\"Bodytext0\">a)<strong> </strong>Hãy tìm hiểu và chạy thử chương trình sau đây:</p>\r\n<p class=\"Bodytext280\">program Sum1;</p>\r\n<p class=\"Bodytext280\">uses crt;</p>\r\n<p class=\"Bodytext280\">const nmax=100;</p>\r\n<p class=\"Bodytext270\" align=\"left\">type MyArray= array[1..nmax] of integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">var A: MyArray;</p>\r\n<p class=\"Bodytext80\">s, n, i, k: integer;</p>\r\n<p class=\"Bodytext280\">Begin</p>\r\n<p class=\"Bodytext280\">clrscr;</p>\r\n<p class=\"Bodytext280\">randomize; write('Nhap n= ’);</p>\r\n<p class=\"Bodytext280\">readln(n); {Tao ngau nhien mang gom n so nguyen]}</p>\r\n<p class=\"Bodytext280\">for i:= 1 to n do A[i] := random(301)-random(301) ;</p>\r\n<p class=\"Bodytext280\">for i:=l to n do write (A[i] :5) ; {in ra mang vua tao}</p>\r\n<p class=\"Bodytext280\">writeln;</p>\r\n<p class=\"Bodytext280\">write('Nhap k = ');</p>\r\n<p class=\"Bodytext280\">readln(k);s: =0;</p>\r\n<p class=\"Bodytext280\">for i:= 1 to n do</p>\r\n<p class=\"Bodytext280\">if A[i] mod k = 0 then s:= s+ A[i];</p>\r\n<p class=\"Bodytext280\">writeln('Tong can tinh la: ' ,s);</p>\r\n<p class=\"Bodytext280\">readln</p>\r\n<p class=\"Bodytext280\">end.</p>\r\n<p class=\"Bodytext0\">Chú ý: Hàm chuẩn random(rt) cho giá trị là sổ nguyên ngẫu nhiên trong khoảng từ 0 đến n-1, còn thủ tục randomize khởi tạo cơ chế sinh số ngẫu nhiên.</p>\r\n<p class=\"Bodytext0\">b)<strong> </strong>Hãy đưa các câu lệnh sau đây vào những vị trí cần thiết nhằm sửa đổi chương trình trong câu a) để có được chương trình đưa ra các số dương và các số âm trong mảng.</p>\r\n<p class=\"Bodytext280\">posi, neg: integer;</p>\r\n<p class=\"Bodytext280\">posi:= 0; neg:= 0;</p>\r\n<p class=\"Bodytext270\" align=\"left\">if A[i]&gt;0 then posi:= posi + 1</p>\r\n<p class=\"Bodytext270\" align=\"left\">else if A[i}</p>\r\n<p class=\"Bodytext0\" align=\"left\"><strong>Bài 2:</strong> Viết chương trình tìm phần tử có giá trị lớn nhất của mảng và đưa ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra màn hình có chỉ số nhỏ nhất.</p>\r\n<p class=\"Bodytext0\">a)<strong> </strong>Hãy tìm hiểu chương trình sau đây:</p>\r\n<p class=\"Bodytext280\">Program MaxElement;</p>\r\n<p class=\"Bodytext280\">const Nmax= 100;</p>\r\n<p class=\"Bodytext270\" align=\"left\">type Myarray = array[1..Nmax] of integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">var A: MyArray;</p>\r\n<p class=\"Bodytext280\">n, i, j: integer;</p>\r\n<p class=\"Bodytext280\">Begin</p>\r\n<p class=\"Bodytext280\">write ('Nhap so luong phan tu cua day so, N= ') ;</p>\r\n<p class=\"Bodytext280\">readln(N); for i:= 1 to N do</p>\r\n<p class=\"Bodytext280\">begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">write ('Phan tu thu ', i,' = ')</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(A[i]);</p>\r\n<p class=\"Bodytext500\">end;</p>\r\n<p class=\"Bodytext280\">for i:= 1 to n do if A[i]&gt;A[j] then j:= i;</p>\r\n<p class=\"Bodytext220\">write('Chi so: ',j,' Gia tri: ',A[j]: 4);</p>\r\n<p class=\"Bodytext220\">readln</p>\r\n<p class=\"Bodytext220\">End.</p>\r\n<p class=\"Bodytext0\">b)<strong> </strong>Chỉnh sửa chương trình trên để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất.</p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25171,"cat_id":155,"publish_time":1486366560,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0123/resize_4-0.jpg","title":"Hướng dẫn bài tập và thực hành 3 trang 63 SGK Tin học 11","label":"Hướng dẫn bài tập và thực hành 3 trang 63 SGK Tin học 11","alias":"huong-dan-bai-tap-va-thuc-hanh-3-trang-63-sgk-tin-hoc-11","introtext":"Trong hình ở trên, số phần tử cần nhập vào là 50. Khi đó, mảng được tạo ra một cách ngẫu nhiên gồm 50 số nguyên có giá trị tuyệt đối không vượt quá 300. Tiếp đến ta nhập vào số k = 9.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p class=\"Bodytext0\"><strong>1. Mục đích, yêu cầu</strong></p>\r\n<p>- Năng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm kiếm, chạy thử các chương trình có sẵn.</p>\r\n<p>- Biết giải một số bài toán tính toán, tìm kiếm đơn giàn trên máy tính.</p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p class=\"Bodytext0\"><strong>Bài 1:</strong> Tạo mảng A gồm n số nguyên (n &lt;100) theo yêu cầu của đề bài ở trên thì tổng các phần tử (giá trị tuyệt đối của các phần tử không vượt quá 300,) của mảng là bội của một số nguyên k cho trước nghĩa là ta cần tính tổng của các phần tử mà các phần tử này chia hết cho số nguyên k.</p>\r\n<p class=\"Bodytext0\"><u>a)<strong> </strong>Sau khi nhập chương trình và cho chương trình chạy và nhập dữ liệu, ta có kết quả như hình 33 dưới đây:</u></p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/33.jpg\" alt=\"\" width=\"450\" height=\"121\" /></p>\r\n<p class=\"Bodytext0\">Trong hình ở trên, số phần tử cần nhập vào là 50. Khi đó, mảng được tạo ra một cách ngẫu nhiên gồm 50 số nguyên có giá trị tuyệt đối không vượt quá 300. Tiếp đến ta nhập vào số k = 9. Ta nhận thấy rằng, trong 50 số được tạo ra thì chỉ các số 45 và 99<strong> </strong>là chia hết cho 9 và tổng của chúng bằng 144.</p>\r\n<p class=\"Bodytext0\">Tương tự như trên, nếu ta nhập n = 99, k = 10 thì kết quả cho như ở hình 34 dưới đây: </p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/34.jpg\" alt=\"\" width=\"450\" height=\"143\" /></p>\r\n<p class=\"Bodytext0\" align=\"left\">Chúng ta cũng dễ dàng nhận ra rằng, các sổ: -10, -110, -30, 40 và -30 là bội cùa 10 và tổng của chúng bằng -140.</p>\r\n<p class=\"Bodytext0\"><u>b)<strong> </strong>Sau khi chương trình ở câu a) đã chạy và cho kết quả tốt,</u> ta thực hiện lệnh File/save để ghi lại chương trình vào máy tính, chẳng hạn với tên tệp btth3_la.doc. Để tiến hành giải bài toán ở câu b) thì ta thực hiện lệnh File/Save as để ghi chương trình sang một tệp khác. Ví dụ, với tên btth3_lb.doc. Sau đó, đưa các câu lệnh</p>\r\n<p class=\"Bodytext270\" align=\"left\">posi, neg: integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">posi:= 0; neg:= 0;</p>\r\n<p class=\"Bodytext270\" align=\"left\">if A[i]&gt;0 then posi:= posi + 1</p>\r\n<p class=\"Bodytext270\" align=\"left\">else if A[i]</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln(posi:4, neg:4);</p>\r\n<p class=\"Bodytext0\">vào chương trình của câu a). Chương trình để in ra số các số dương và số các số âm trong mảng A như sau:</p>\r\n<p class=\"Bodytext270\" align=\"left\">program Sum1;</p>\r\n<p class=\"Bodytext270\" align=\"left\">uses crt, </p>\r\n<p class=\"Bodytext270\" align=\"left\">const nmax=100;</p>\r\n<p class=\"Bodytext270\" align=\"left\">type Myarray= array[1..nmax] of integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">var A: MyArray;</p>\r\n<p class=\"Bodytext280\">n, i: integer; posi, neg: integer;</p>\r\n<p class=\"Bodytext280\">Begin</p>\r\n<p class=\"Bodytext280\">clrscr; randomize;</p>\r\n<p class=\"Bodytext280\">write('Nhap n=') ;</p>\r\n<p class=\"Bodytext280\">readln(n); {Tao ngau nhien mang gom n so nguyen} for i:=1 to n do A[i]:=random(300)-random(300); for i:=l to n do write(A[i]:5); {in ra mang vua tao} writeln;</p>\r\n<p class=\"Bodytext280\">posi:= 0; neg:= 0; for i:= 1 to n do</p>\r\n<p class=\"Bodytext280\">if A[i]&gt;0 then posi:= posi + 1 else if A[i]</p>\r\n<p class=\"Bodytext30\" align=\"left\">Khi chạy chương trình, nhập số phần tử của mảng, ví dụ, n = 10 thì kết quả của chương trình sẽ như hình 35 sau đây:</p>\r\n<p class=\"Bodytext30\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/35.jpg\" alt=\"\" width=\"450\" height=\"85\" /></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">và kết quả như ở hình 35 thì người sử dụng nhiều khi </span></span><span class=\"BodytextTimesNewRoman\"><span lang=\"DE\">rất </span></span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">khó nhìn thấy số các số </span></span>dương và số các số âm. Bời vậy, chúng ta cần đưa vào lệnh in dòng chú thích:</p>\r\n<p class=\"Bodytext80\">writeln('So cat: so duong la : ',posi: 4) ;</p>\r\n<p class=\"Bodytext80\"> writeln( ' So cac so am la : ', neg: 4);</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi đó, chương trình in ra số các số dương và số các số âm trong mảng A là:</p>\r\n<p class=\"Bodytext330\">program Sum1b2;</p>\r\n<p class=\"Bodytext330\">uses crt;</p>\r\n<p class=\"Bodytext330\">const nmax= 100;</p>\r\n<p class=\"Bodytext80\">type Myarray- array[1..Nmax] of integer;</p>\r\n<p class=\"Bodytext80\">var A: MyArray;</p>\r\n<p class=\"Bodytext80\">n, i: integer;</p>\r\n<p class=\"Bodytext80\">posi, neg: integer;</p>\r\n<p class=\"Bodytext330\">Begin</p>\r\n<p class=\"Bodytext80\">clrscr; randomize;</p>\r\n<p class=\"Bodytext80\">write ( ’ Nhap n=' );</p>\r\n<p class=\"Bodytext80\">readln(n); {Tao ngau nhien mang gom n so nguyen}</p>\r\n<p class=\"Bodytext80\">for i:=1 to n do A [ i ]: =random (301 )-random ( 301) </p>\r\n<p class=\"Bodytext80\">for i:=1 to n do write (A[i] : 5) ,{in ra mang vua tao}</p>\r\n<p class=\"Bodytext80\">writeln;</p>\r\n<p class=\"Bodytext270\" align=\"left\">posi:= 0; neg:= 0; or i:= 1 to n do if A[i]&gt;0 then posi:= posi + 1</p>\r\n<p class=\"Bodytext270\" align=\"left\">else if A[i]' , posi:4); writeln('So cac so am la : ', neg:4);</p>\r\n<p class=\"Bodytext0\" align=\"left\">readln</p>\r\n<p class=\"Bodytext270\" align=\"left\">End</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi chạy chương trình, nhập số phần tử của mảng, ví dụ, n= 50 thì chương trình sẽ đưa ra thông báo:</p>\r\n<p class=\"Bodytext270\" align=\"left\">So cac so duong la: 24 So cac so am la: 26</p>\r\n<p class=\"Bodytext270\" align=\"left\">Kết quả của chương trình sẽ như hình 36 dưới đây:</p>\r\n<div> </div>\r\n<p class=\"Bodytext270\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/36.jpg\" alt=\"\" width=\"450\" height=\"117\" /></p>\r\n<p class=\"Bodytext0\"><strong>Bài 2:</strong> Tìm phần tử có giá trị lớn nhất của mảng và đưa ra màn hình chỉ số và giá trị của phần tử tìm được. Khi có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất.</p>\r\n<p class=\"Bodytext0\" align=\"left\"><u>a)<strong> </strong>Sau khi nhập chương trình và cho chương trình chạy và nhập số lượng phần tử của dãy số với n= 10 với giá trị các phần tử như sau:</u></p>\r\n<p class=\"Bodytext0\">Phần tử thứ nhất= 5;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ hai= 9;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ ba= 4;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ tư= 8;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ năm= 6;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ sáu= 2;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ bảy= 7;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ tám= 1;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ chín= 3;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ mười= 8;</p>\r\n<p class=\"Bodytext0\" align=\"left\">thì chương trình in ra thông báo: 'Chi so: 2 Gia tri: 9 ' nghĩa là phần tử ở chỉ số 2 có giá trị 9 là phần tử lớn nhất mảng. Khi đó, ta có kết quả như hình 37 dưới đây:</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/37.jpg\" alt=\"\" width=\"450\" height=\"142\" /></p>\r\n<p class=\"Bodytext0\">Nhưng khi nhập các phần tử vào mảng mà có nhiều phần tử có cùng giá trị lớn nhất thì kết quả của chương trình số in ra chỉ số nhỏ nhất cùa phần tử lớn nhất. Chẳng hạn, nhập vào 9 phần tử với giá trị các phần tử được nhập vào mảng như sau:</p>\r\n<p class=\"Bodytext0\">Phần tử thứ nhất= 9;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ hai= 5;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ ba= 4;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ tư= 9;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ năm= 3;</p>\r\n<p class=\"Bodytext0\">Phần từ thứ sáu= 9;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ bảy= 9;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ tám= 6;</p>\r\n<p class=\"Bodytext0\">Phần tử thứ chín= 7;</p>\r\n<p class=\"Bodytext0\">Khi đó chương trình sẽ đưa ra thông báo: \"Chi so: 1 Gia tri: 9\" như hình 38 dưới đây:</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/38.jpg\" alt=\"\" width=\"450\" height=\"115\" /></p>\r\n<p class=\"Bodytext0\" align=\"left\">Với kết quá của chương trình hiện ra như ở hình 38 thì chỉ số nhỏ nhất của phần tử lớn nhất bằng 9) là 1.</p>\r\n<p class=\"Bodytext0\">Lưu ý: Trong chương trình chúng ta nên đưa vào khai báo chuẩn uses crt; và lệnh xóa màn hình clrscr; để mỗi lần chạy chương trình các kết quả trước đó bị xóa:</p>\r\n<p class=\"Bodytext0\">Khi đó chương trình sẽ là:</p>\r\n<p class=\"Bodytext0\">Program MaxElement;</p>\r\n<p class=\"Bodytext270\">uses crt;</p>\r\n<p class=\"Bodytext270\">const Nmax= 100;</p>\r\n<p class=\"Bodytext270\" align=\"left\">type Myarray = array[1<sub>ắ</sub>.Nmax] of integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">var i: MyArray;</p>\r\n<p class=\"Bodytext0\" align=\"left\">r, i, j: integer;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Begin</p>\r\n<p class=\"Bodytext0\" align=\"left\">Clrscr ;</p>\r\n<p class=\"Bodytext0\" align=\"left\">wiite('Nhap so luong phan tu cua day so, N= ');</p>\r\n<p class=\"Bodytext0\" align=\"left\">readln(N);</p>\r\n<p class=\"Bodytext0\" align=\"left\">for i:= 1 to N do begin</p>\r\n<p class=\"Bodytext0\" align=\"left\">write('Phan tu thu ', i,'=');</p>\r\n<p class=\"Bodytext0\" align=\"left\">readln(A[i]);</p>\r\n<p class=\"Bodytext0\" align=\"left\">end</p>\r\n<p class=\"Bodytext0\" align=\"left\">j : = 1 ;</p>\r\n<p class=\"Bodytext0\" align=\"left\">for i:= 1 to n do if A[i]&gt;A[j] then j:= i;</p>\r\n<p class=\"Bodytext0\" align=\"left\">write('Chi so: ',j,'Gia tri: ',A[j]: 4);</p>\r\n<p class=\"Bodytext0\" align=\"left\">readln</p>\r\n<p class=\"Bodytext0\" align=\"left\">End.</p>\r\n<p class=\"Bodytext0\"><u>b)<strong> </strong>Sau khi chương trình ở câu a) đã chạy và cho kết quả tốt,</u> ta thực hiện lệnh File Save để ghi lại chương trình vào máy tính, chẳng hạn với tên tệp btth3_2a.doc. Để tiến hành giải bài toán ở câu b) thì ta thực hiện lệnh File/Save as để ghi chương trình san; một tệp khác. Ví dụ, với tên btth3_2b.doc. Sau đó, ta chỉnh sửa chương trình để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất, bằng cách ta đưa vào chương trình biến mảng dem. Chương trình như sau:</p>\r\n<p class=\"Bodytext80\">Program MaxElement.2 ;</p>\r\n<p class=\"Bodytext80\">const Nmax= 100;</p>\r\n<p class=\"Bodytext80\">type Myarray = array[1..Nmax] of integer;</p>\r\n<p class=\"Bodytext80\">var A: Myarray;</p>\r\n<p class=\"Bodytext80\">dem: array[1..Nmax] of integer;</p>\r\n<p class=\"Bodytext80\">n, k, i, j: integer;</p>\r\n<p class=\"Bodytext280\">Begin</p>\r\n<p class=\"Bodytext80\">write('Nhap so luong phan tu cua day so, N= ' );</p>\r\n<p class=\"Bodytext80\">readln(N); for ỉ:= 1 to n do</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">write('Phan tu thu i ,' = ');</p>\r\n<p class=\"Bodytext80\">readln(A[i]); end; j : = 1; k: = 0 ;</p>\r\n<p class=\"Bodytext80\">for i:= 2 to n do if A[i] &gt; A[j] then j:= i; dem[k]:= j;</p>\r\n<p class=\"Bodytext80\">for i:= 1 to n do if a[i] = a[j] then</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">k: = k + 1 , dem[k]:= i;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">writeln('Gia tri lon nhat la: A[j]:4);</p>\r\n<p class=\"Bodytext80\"> writeln('Chi so ung voi gia tri lon nhat la: '));</p>\r\n<p class=\"Bodytext80\">for i:= 1 to k do write('dem[i]);</p>\r\n<p class=\"Bodytext280\">writeln;</p>\r\n<p class=\"Bodytext280\">readln;</p>\r\n<p class=\"Bodytext0\" align=\"left\">End</p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext0\" align=\"left\">Khi cho chương trình chạy và nhập số lượng phần tử của dãy số với n= 5. Giả sử, giá trị các phần tử được nhập vào như sau:</p>\r\n<p class=\"Bodytext30\" align=\"left\">Phần tử thứ nhất= 4;</p>\r\n<p class=\"Bodytext30\" align=\"left\">Phần tử thứ hai= 7;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ ba= 9;</p>\r\n<p class=\"Bodytext30\" align=\"left\">Phần tử thứ tư= 5;</p>\r\n<p class=\"Bodytext30\" align=\"left\">Phần tử thứ năm= 9;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi đó chương trình sẽ đưa ra thông báo: </p>\r\n<p class=\"Bodytext270\" align=\"left\">Gia tri lon nhat la: 9 Chi so ung voi gia tri lon nhat la:</p>\r\n<p class=\"Bodytext0\" align=\"left\">3 5</p>\r\n<p class=\"Bodytext0\" align=\"left\">Kết quả của chương trình như hình 39 dưới đây:</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/39.jpg\" alt=\"\" width=\"450\" height=\"152\" /></p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\" align=\"left\"><strong>Loigiaihay.com</strong></p>\r\n</div>"},{"article_id":25172,"cat_id":155,"publish_time":1486366560,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0123/resize_1-0.jpg","title":"Bài tập và thực hành 4 trang 65 SGK Tin học 11","label":"Bài tập và thực hành 4 trang 65 SGK Tin học 11","alias":"bai-tap-va-thuc-hanh-4-trang-65-sgk-tin-hoc-11","introtext":" Hãy tìm hiểu và chạy thử chương trình thực hiện thuật toán sắp xếp dãy số nguyên bằng trao đổi với các giá trị khác nhau của n dưới đây. Qua đó, nhận xét về thời gian chạy của chương trình.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p class=\"Heading1520\" align=\"left\"><strong><span lang=\"VI\">1. </span><span lang=\"VI\">Mục đích, yêu cầu</span></strong></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"Bodytext6TimesNewRoman\"><span lang=\"VI\">- Biết nhận xét, phân tích đề xuất thuật toán giải bài toán sao cho chương trình chạy nhanh hơn;</span></span></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"Bodytext6TimesNewRoman\"><span lang=\"VI\">- Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp.</span></span></p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p>Bài 1</p>\r\n<p class=\"Bodytext0\" align=\"left\">a) Hãy tìm hiểu và chạy thử chương trình thực hiện thuật toán sắp xếp dãy số nguyên bằng tráo đổi với các giá trị khác nhau của n dưới đây. Qua đó, nhận xét về thời gian chạy của chương trình.</p>\r\n<p class=\"Bodytext270\" align=\"left\">(”*chuong trinh giai bai toan sap xep day so*)</p>\r\n<p class=\"Bodytext270\" align=\"left\">Uses crt;</p>\r\n<p class=\"Bodytext270\" align=\"left\">const Nmax= 250;</p>\r\n<p class=\"Bodytext270\" align=\"left\">type ArrInt = ArrIy [ 1. .Nmax] of integer,</p>\r\n<p class=\"Bodytext270\" align=\"left\"> Var n, i, j. y, t: integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">A: Arrlnt;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">clrscr;</p>\r\n<p class=\"Bodytext270\" align=\"left\">randomize;</p>\r\n<p class=\"Bodytext270\" align=\"left\">wirite('Nhap n= ');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(n) ;</p>\r\n<p class=\"Bodytext270\" align=\"left\">{Trao ngau nhien mang gom n so nguyen}</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to n do A[i]:= random(300) -random(300) ;</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to n do write(A[i] : 5) ; {in mang vua tao}</p>\r\n<p class=\"Bodytext310\">writeln;</p>\r\n<p class=\"Bodytext270\" align=\"left\">for j:=N downto 2 do</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to j-l do</p>\r\n<p class=\"Bodytext270\" align=\"left\">if A[i]&gt;A[i+1] then</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin (*Trao doi A[i] va A[i+1]*)</p>\r\n<p class=\"Bodytext270\" align=\"left\">t:= A[i];</p>\r\n<p class=\"Bodytext270\" align=\"left\">A[i]:= A[i+1];</p>\r\n<p class=\"Bodytext270\" align=\"left\">A[i+1]:= t; end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln('Day so duoc sap xep:');</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to n do</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln(A[i]:7);</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln;</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln</p>\r\n<p class=\"Bodytext270\" align=\"left\">End.</p>\r\n<p class=\"Bodytext0\" align=\"left\">b)<strong> </strong><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Khai báo thêm biến nguyên dem và bổ sung vào chương trình những câu lệnh cần thiết để biến dem tính số lần thực hiện tráo đổi trong thuật toán. Đưa kết quả tìm được ra màn hình.</span></span></p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext520\"><strong>Bài 2:</strong></p>\r\n<p class=\"Bodytext30\" align=\"left\">a) Hãy đọc và tìm hiểu những phân tích để viết chương trình giải bài toán:</p>\r\n<p class=\"Bodytext60\" align=\"left\">Cho mảng A gồm n phần tử. Hãy viết chương trình tạo mảng B[1..n], trong đó B[i] là tổng của i phần tử đầu tiên của A.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Thoạt đầu có thể viết chương trình sau để giải bài toán này:</p>\r\n<p class=\"Bodytext0\" align=\"left\">program subsuml;</p>\r\n<p class=\"Bodytext0\" align=\"left\">uses crt;</p>\r\n<p class=\"Bodytext0\" align=\"left\">const nmax=100;</p>\r\n<p class=\"Bodytext270\" align=\"left\">type Myarray= array[1..nmax] of integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">var A, B: Myarray;</p>\r\n<p class=\"Bodytext270\" align=\"left\">n, i, j: integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">clrscr;</p>\r\n<p class=\"Bodytext270\" align=\"left\">randomize;</p>\r\n<p class=\"Bodytext270\" align=\"left\">write(' Nhap n:');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(n);</p>\r\n<p class=\"Bodytext280\">{Tao ngau nhien mang gom n so nguyen} for i:= 1 to n do A[i]:= random(300)-random(300);</p>\r\n<p class=\"Bodytext280\">for i:= 1 to n do write(A[i]:5) ;</p>\r\n<p class=\"Bodytext280\">writeln;</p>\r\n<p class=\"Bodytext270\" align=\"left\">{Bat dau tao B}</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to n do begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">B[i] := 0;</p>\r\n<p class=\"Heading840\">for j:= 1 to Ỉ do B[i]:= B[i] + A[j];</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">{ket thuc tao B}</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to n do write(B[i]:6) ;</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln</p>\r\n<p class=\"Bodytext270\" align=\"left\">End.</p>\r\n<p class=\"Bodytext270\" align=\"left\">Để ý rằng ta có các hệ thức sau:</p>\r\n</div>\r\n<p class=\"Bodytext0\" align=\"left\">B[1 ] =A[1]</p>\r\n<p>B [ j ] =  [ i -1) + A [ i ] , 1 &lt; i  ≤n .</p>\r\n<p class=\"Bodytext0\">Với hai lệnh này, máy chỉ phải thực hiện n - 1 phép cộng, trong khi với đoạn chương trình trên máy phải thực hiện n(n + 1)/2 phép cộng.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Nhờ việc phân tích ta có thể tiết kiệm được một lượng tính toán đáng kể.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Tuy tốc độ tính toán của máy tính nhanh nhưng có giới hạn. Do đó, trong khi viết chương trình, ta nên tìm cách viết sao cho chương trình thực hiện càng ít phép toán càng tốt.</p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\" align=\"left\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25173,"cat_id":155,"publish_time":1486366560,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0123/resize_23-0.jpg","title":"Hướng dẫn làm bài tập và thực hành 4 trang 65 SGK Tin học 11","label":"Hướng dẫn làm bài tập và thực hành 4 trang 65 SGK Tin học 11","alias":"huong-dan-lam-bai-tap-va-thuc-hanh-4-trang-65-sgk-tin-hoc-11","introtext":"Sau khi nhập chương trình, cho chương trình chạy và nhập số phần tử của dãy, chẳng hạn với n= 10, thì giá trị các phần tử của mảng ngẫu nhiên được tạo ra như sau:","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p class=\"Bodytext30\" align=\"left\"><strong><span lang=\"VI\">1. </span><span class=\"Bodytext3TimesNewRoman\"><span lang=\"VI\">Mục đích, yêu cầu</span></span></strong></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"Bodytext6TimesNewRoman\"><span lang=\"VI\">- Biết nhận xét, phân tích để xuất thuật toán giải bài toán sao cho chương trình chạy nhanh hơn.</span></span></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"Bodytext6TimesNewRoman\"><span lang=\"VI\">- Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp.</span></span></p>\r\n<div class=\"WordSection1\">\r\n<p><strong>2. Nội dung</strong></p>\r\n<p><strong>Bài 1:</strong></p>\r\n<p class=\"Bodytext0\" align=\"left\">a)<strong> </strong>Sau khi nhập chương trình, cho chương trình chạy và nhập số phần tử của dãy, chẳng hạn với n = 10, thì giá trị các phần tử của mảng ngẫu nhiên được tạo ra như sau:</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ nhất= 100;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ hai= -122;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ ba= 22;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ tư= -40;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ năm=71;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần từ thứ sáu= 31;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ bảy= -141;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ tám= 29;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ chín= -99;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Phần tử thứ mười= 162;</p>\r\n<p class=\"Bodytext0\" align=\"left\">thì chương trình in ra thông báo:</p>\r\n<p class=\"Bodytext80\">Day so duoc sap xep:</p>\r\n<p class=\"Bodytext280\">-141</p>\r\n<p class=\"Bodytext530\">-122</p>\r\n<p class=\"Bodytext280\">-99</p>\r\n<p class=\"Bodytext280\">-40</p>\r\n<p class=\"Bodytext540\">22</p>\r\n<p class=\"Bodytext280\">29</p>\r\n<p class=\"Bodytext280\">31</p>\r\n<p class=\"Bodytext280\">71</p>\r\n<p class=\"Bodytext550\">100</p>\r\n<p class=\"Bodytext280\">162</p>\r\n<p class=\"Bodytext30\">Kết quả chương trình như hình 40 dưới đây:</p>\r\n<p class=\"Bodytext30\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/40.jpg\" alt=\"\" width=\"450\" height=\"161\" /></p>\r\n<p class=\"Bodytext30\">Ta nhận thấy rằng, mảng được sắp xếp theo trình tự từ số bé nhất đến số lớn nhất của mảng. Trong trường hợp với n = 10 phần tử như đã nói ở trên thì mảng được tạo ngẫu nhiên và sắp xếp từ số bé nhất -141 đến số lớn nhất 162.</p>\r\n<p class=\"Bodytext30\">Tương tự, với n = 15 thì kết quả cùa chương trình sẽ như hình 41 dưới đây:</p>\r\n<p class=\"Bodytext30\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/41.jpg\" alt=\"\" width=\"450\" height=\"213\" /></p>\r\n<p class=\"Bodytext0\">b)<strong> </strong>Sau khi chương trình ờ câu a) đã chạy và cho kết quả tốt, ta thực hiện lệnh File/save để ghi lại chương trình vào máy tính, chẳng hạn với tên tệp btth4_la.doc. Để tiến hành giải bài toán ở câu b) thì ta thực hiện lệnh File/Save as để ghi chương trình sang một tệp khác. Chẳng hạn, với tên btth4_1b.doc.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi đưa biến nguyên dem vào chương trình và bổ sung vào chương trình “Giải bài toán sắp xếp dãy sổ\" các lệnh: dem:= 0; dem:= dem + 1;</p>\r\n<p class=\"Bodytext80\">write('So lan trao doi la: ',dem);</p>\r\n<p class=\"Bodytext0\">để thực hiện việc tính số lần tráo đổi trong thuật toán thì chương trình được chỉnh lại như sau:</p>\r\n<p class=\"Bodytext80\">uses crt;</p>\r\n<p class=\"Bodytext80\">const Nmax = 2 50;</p>\r\n<p class=\"Bodytext80\">type Arrlnt = Array[1..Nmax] of integer;</p>\r\n<p class=\"Bodytext80\">var n, i, j, y, t, dem, : integer;</p>\r\n<p class=\"Bodytext80\">A: ArrInt;</p>\r\n<p class=\"Bodytext80\">Begin</p>\r\n<p class=\"Bodytext80\">clrscr;</p>\r\n<p class=\"Bodytext80\">randomi ze;</p>\r\n<p class=\"Bodytext80\">write(’Nhap n= ');</p>\r\n<p class=\"Bodytext80\">readln(n) </p>\r\n<p class=\"Bodytext270\" align=\"left\">{Tao nau nhien mang gom n so nguyen}</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to n do A[i]:= random(300)-random(300);</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to n do write(A[i]:5); {in mang vua tao}</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln;</p>\r\n<p class=\"Bodytext0\" align=\"left\">dem: = 0;</p>\r\n<p class=\"Bodytext270\" align=\"left\">for j:=N downto 2 do</p>\r\n<p class=\"Bodytext80\">for i:= 1 to j-1 do if A[i]&gt;A[i+1] then</p>\r\n<p class=\"Bodytext80\">begin (*Trao doi A[i] va A[i+1]*) t: = A [ i ] ;</p>\r\n<p class=\"Bodytext80\">A [ i ] : = A [ i + 1 ] ,<sup>ề</sup> A [ i +1 ] : = t : dem:= dem + 1; end;</p>\r\n<p class=\"Bodytext0\">writeln('Day so duoc sap xep:')</p>\r\n<p class=\"Bodytext0\"> for i:= 1 to n do writeln(A[i]:7) ;</p>\r\n<p class=\"Bodytext0\">write('So lan trao doi la: ',dem);</p>\r\n<p class=\"Bodytext0\">writeln;</p>\r\n<p class=\"Bodytext0\">readln</p>\r\n<p class=\"Bodytext0\">End.</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/42.jpg\" alt=\"\" width=\"450\" height=\"168\" /></p>\r\n<p class=\"Bodytext60\"><strong>Bài 2 :</strong></p>\r\n<p class=\"Bodytext0\">a)<strong> </strong>Khi chạy chương trình tạo mảng B[1..n], B[i] là tổng của phần tử đầu tiên của mảng A - gồm n phần tử và nhập vào số phần tử của mảng thì ta có được kết quả của chương trình.</p>\r\n<p class=\"Bodytext0\">Với n=10 thì kết quả của chương trình như hình 43 dưới đây:</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/43.jpg\" alt=\"\" width=\"450\" height=\"78\" /></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Diễn giải :</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Từ kết quả của chương trình đã cho ở trên, ta nhận thấy rằng: với n=10 mảng A được tạo ngẫu nhiên là: -118   6   -42   -22   -37   11   243   19  90   116. Khi đó, các phần tử cùa mảng B sẽ là như sau:</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử đầu tiên của mảng D là -118;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ hai của mảng B là: -118 + 6 = -112;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ ba của mảng B là: -112 + (-42) = -154;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ tư của mảng B là: -154 + (-22) = -176;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ năm của mảng B là: -176 + (-3 7) = -213;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ sáu của mảng B là: -213 + 11= -202;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ bảy của mảng B là: -202 + 243 = 41;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ tám của mảng B là: 41 + 19 = 60;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ chín của mảng B là: 60 + 90 = 150;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">phần tử thứ mười của mảng B là: 150+116 = 266.</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Như vậy, các phần tử của mảng B là  </span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">-118    -112    -154    -176    -213    -202    41    60    150    226.</span></span></p>\r\n<div class=\"WordSection1\">\r\n<p>Với n= 15 thì kết quả của chương trình như hình 44 dưới đây:</p>\r\n</div>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/46.jpg\" alt=\"\" width=\"450\" height=\"87\" /></p>\r\n<p class=\"Bodytext80\">b) Khi ta thay đoạn chương trình sau ở câu a)</p>\r\n<p class=\"Bodytext80\">for i : 1 to n do</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">B [ i ] : = 0 ;</p>\r\n<p class=\"Bodytext80\">for j:=1 to i do B[i]:= B[i]+A[j];</p>\r\n<p class=\"Bodytext80\">end.</p>\r\n<p class=\"Bodytext580\">bởi hai lệnh:</p>\r\n<p class=\"Bodytext350\">B[i] = A[1] </p>\r\n<p class=\"Bodytext80\">for i:= 2 to n do B[i] := B[i — 1] + A[i];</p>\r\n<p class=\"Bodytext0\" align=\"left\">thì chương trình tạo mảng B[1..n], trong đó B[i] là tổng của phần tử đầu tiên của mảng A sẽ là như sau:</p>\r\n<p class=\"Bodytext80\">progran subsum2 ;</p>\r\n<p class=\"Bodytext80\">uses crt; const nmax= 100;</p>\r\n<p class=\"Bodytext80\">type Marray= array [1. .nmax] of integer;</p>\r\n<p class=\"Bodytext80\">var A, 3: Myarray;</p>\r\n<p class=\"Bodytext80\">n, i, j: integer;</p>\r\n<p class=\"Bodytext80\">Begin</p>\r\n<p class=\"Bodytext80\">clrscr;</p>\r\n<p class=\"Bodytext80\">randonize</p>\r\n<p class=\"Bodytext80\">write (' Nhap n : ' );</p>\r\n<p class=\"Bodytext80\">readlr(n)</p>\r\n<p class=\"Bodytext80\">{Tao njau nhien mang gom n so nguyen} for i:= 1 to n do A[i]:= random(300)- random(300);</p>\r\n<p class=\"Bodytext80\">for i:= 1 to n do write (A[i] : 5) ;</p>\r\n<p class=\"Bodytext80\">writeln B [1] := A[l] ;</p>\r\n<p class=\"Bodytext80\">for i = 2 to n do B[i]:= B[i-1] + A[i];</p>\r\n<p class=\"Bodytext80\">for i: 1 to n do write (B[1]:6)</p>\r\n<p class=\"Bodytext80\">readln</p>\r\n<p class=\"Bodytext80\">End.</p>\r\n<p class=\"Bodytext80\">Khi chạy chương trình vừa hiệu chỉnh này, với số phần tử của mảng A bằng 9 thì kết quả của chương trình sẽ như hình 45 dưới đây:</p>\r\n<p class=\"Bodytext80\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/45.jpg\" alt=\"\" width=\"450\" height=\"97\" /></p>\r\n<p class=\"Bodytext60\" align=\"left\">Diễn giải:</p>\r\n<p class=\"Bodytext0\" align=\"left\">Với hai lệnh:</p>\r\n<p class=\"Bodytext0\">B[1]:= A[1];</p>\r\n<p class=\"Bodytext80\">for i:= 2 to n do B[i] := B[i-1] + A[i];</p>\r\n<p class=\"Bodytext0\" align=\"left\">thì kết quả chương trình sẽ không thay đổi so với chương trình ban đầu nghĩa là: mảng ban đầu A ngẫu nhiên được tạo: 81 -38 -57 68 -57 thì với lệnh B[i]:= A [ 1 ] ; thì phần tử đầu tiên của mảng D là 81;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Tiếp đến, khi i = 2 thì phần tử thứ hai của mảng B là: 81+ (-38) = 43;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Tiếp đến, khi i = 3 thì phần tử thứ ba cùa mảng B là: 43 + (-57) =-14;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Tiếp đến, khi i = 4 thì phần tử thứ tư cùa mảng B là: -14 + 68 = 54;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Tiếp đến, khi i = 5 thì phần tử thứ năm của mảng B là54 + (-57) = -3.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Như vậy, mảng B được tạo ra là: 81   43     -14      54     -3.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Với số phần tử của mảng A bằng 20 thì kết quả của chương trình sẽ như hình 46 dưới đây:</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/46_1.jpg\" alt=\"\" width=\"450\" height=\"90\" /></p>\r\n<p class=\"Bodytext0\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Qua hai chương trình đã nêu ở trên, ta nhận thấy rằng chương trình thứ hai tiết kiệm được một số phép toán. Cho nên, nó sẽ tiết kiệm được thời gian chạy máy, tiết kiệm được bộ nhớ cùa máy tính.</span></span></p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><strong>Loigiaihay.com</strong><br /></span></span></p>\r\n<div style=\"text-align: right;\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><strong><br /></strong></span></span></div>\r\n</div>"},{"article_id":25174,"cat_id":155,"publish_time":1486366560,"type_ex":1,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0123/resize_13-0.jpg","title":"Lý thuyết: Kiểu xâu trang 68 SGK Tin học 11","label":"Lý thuyết: Kiểu xâu trang 68 SGK Tin học 11","alias":"ly-thuyet-kieu-xau-trang-68-sgk-tin-hoc-11","introtext":"Biểu thức gồm các toán hạng là biến xâu, biến kí tự hoặc hằng xâu được gọi là biểu thức xâu.","display_type":0,"article_type":1},{"article_id":25176,"cat_id":155,"publish_time":1486366560,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0123/resize_8-0.jpg","title":"Hướng dẫn làm bài tập và thực hành 5 trang 73 SGK Tin học 11","label":"Hướng dẫn làm bài tập và thực hành 5 trang 73 SGK Tin học 11","alias":"huong-dan-lam-bai-tap-va-thuc-hanh-5-trang-73-sgk-tin-hoc-11","introtext":"Chương trình sau đây dùng để kiểm tra xem xâu nhập vào có phải là xâu palindrome hay không.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p><strong>1. Mục đích, yêu cầu</strong></p>\r\n<p class=\"Bodytext60\">Làm quen với việc tìm kiếm, thay thế và biến đổi xâu.</p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p><strong>Bài 1:</strong></p>\r\n<p class=\"Bodytext0\">a) Khi chạy chương trình, nhập vào xâu: ' vui ma hoc hoc ma vui' thì chương trình đưa ra thông báo: \"xau khong la palindrome\", còn khi nhập  vào xâu 'abcddcba' thì chương trình đưa ra thông báo: \"Xâu là palindroine?\".</p>\r\n<p class=\"Bodytext0\">Kết quả của chương trình cho như hình 52 dưới đây :</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/52.jpg\" alt=\"\" width=\"450\" height=\"122\" /></p>\r\n<p class=\"Bodytext0\">b) Để viết lại chương trình dùng biến xâu thì ta cần khai thác khả năng tham chiếu đến từng kí tự trong xâu thông qua vị trí của xâu này. Như vậy, không cần thiết phải tạo một xâu mới để cuối cùng so sánh hai xâu, mà chỉ cần sánh cặp kí tự ở vị trí đối xứng nhau để kết luận có phải hay không.</p>\r\n<p>Bởi vậy, ta có thể dùng một biến logic để ghi nhận sự phát hiện này. Trước vòng lặp thực hiện các so sánh nói trên, cần không chuyển biến logic ở mỗi bước lặp, hễ hai kí tự được so sánh khác nhau thì biến logic đó sẽ phải thay đổi giá trị.</p>\r\n<p>Chương trình sau đây dùng để kiểm tra xem xâu nhập vào có phải là xâu palindrome hay không.</p>\r\n<p class=\"Bodytext560\">vai i, X: byte;</p>\r\n<p class=\"Bodytext560\">a: string;</p>\r\n<p class=\"Bodytext560\">palii: boolean;</p>\r\n<p class=\"Bodytext560\">begin</p>\r\n<p>write (Nhap vao xau: ’ );</p>\r\n<p>reailn(a) ;</p>\r\n<p class=\"Bodytext640\">X:= length(a); {xac dinh do dai cua xau}</p>\r\n<p class=\"Bodytext640\">palin:=true;</p>\r\n<p>{khoi tao palin, tam coi xau a la palindrome}</p>\r\n<p>for i:= 1 to X div 2 do {so sanh cap ki tu doi xung}</p>\r\n<p>if a [i. ] oa [x-i + 1 ]</p>\r\n<p>then palin: =false;</p>\r\n<p>if palin then writeln: Xau la palindrome’)</p>\r\n<p>else writeln(’Xau khong la palindrome’);</p>\r\n<p>readln</p>\r\n<p>End.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi chạy chương trình, nhập vào xâu: 'He 2007 ' thì chương trình đưa ra thông báo: \"xau khong la palindrome”, còn khi nhập vào xau 'abcddcba' thì chương trình đưa ra thông báo: \"xau la palindrome\" kết quả của chương trình cho như hình 53 dưới đây:</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/53.jpg\" alt=\"\" width=\"450\" height=\"96\" /></p>\r\n<p class=\"Bodytext0\">Tuy nhiên, ta có thể không dùng vòng for-do mà dùng while-do hay repeat-until và có thể không cần dùng biến logic. Chương trình sau đây đáp ứng được yêu cầu đặt ra:</p>\r\n<p class=\"Bodytext80\">var x: byte;</p>\r\n<p class=\"Bodytext80\">a: string;</p>\r\n<p class=\"Bodytext80\">palin: boolean;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">write('Nhap vao xau: ' ) ,</p>\r\n<p class=\"Bodytext80\">readln(a);</p>\r\n<p class=\"Bodytext270\" align=\"left\">X: =length (a) , {xac dinh do dai cua xa} i:=1;</p>\r\n<p class=\"Bodytext270\" align=\"left\">while (i&lt;=(x div 2)) and (a [i] =a [x-i + 1] ) do i: = i +1,<sup>ế</sup> if i&gt; (x div 2) then writeln('Xau la palindrome')</p>\r\n<p class=\"Bodytext270\" align=\"left\">else writeln('Xau khong la palindrome');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln</p>\r\n<p class=\"Bodytext270\" align=\"left\">End.</p>\r\n<p class=\"Bodytext0\">Khi chạy chương trình, nhập vào xâu: 'tin hoc hoc tin' thì chương trình đưa ra thông báo: 'xau khong la palindrome\", còn khi nhập vào xâu ' ABCDDCBD' thì chương trình cũng đưa ra thông báo: “xau khong la palindrome\", còn khi nhập vào xâu: ' ABCD0770DCBA' thì chương trình đưa ra thông báo: “xau la palindrome\" .</p>\r\n<p class=\"Bodytext0\">Kết quả của chương trình cho như hình 55 dưới đây:</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0123/55.jpg\" alt=\"\" width=\"450\" height=\"156\" /></p>\r\n<p class=\"Bodytext0\" align=\"left\"><strong>Bài 2.</strong> Để giải quyết bài toán này, chúng ta nhận thấy rằng:</p>\r\n<p>Cần ghi nhận số lần xuất hiện của từng chữ cái. Có tất cả 26 chữ cái ' A ' ' z '. Có thể dùng một mảng với chỉ số là kí tự từ 'A ' đến 'z' để ghi nhận số lần xuất hiện của các kí tự trong xâu s. Bởi vậy, chúng ta dùng một mảng một chiều để đếm số lần xuất hiện của một kí tự trong xâu s. Cụ thể, để ghi nhận số lần xuất hiện của kí tự, ta có thể dùng dem[A] để ghi nhận số lần xuất hiện kí tự A (hay kí tự a, vì không phân biệt chữ hoa hay chữ thường).</p>\r\n<p>Để giải quyết vấn đề không phân biệt chữ hoa hay chữ thường ta cần dùng hàm Upcase(c).</p>\r\n<p>Do một kí tự xuất hiện trong xâu s có thể không phải là một chữ cái nên khi duyệt lần lượt từng kí tự trong xâu s, cần kiểm tra xem kí tự đó có phải là chữ cái hay không để ghi nhận số lần xuất hiện của nó. Chúng ta đã gặp đoạn chương trình kiểm tra một kí tự có là chữ số hay không ở ví dụ 5 tiết học 12. Từ đó, có thể viết được đoạn chương trinh làm việc duyệt từng phần tử cùa xâu và đếm.</p>\r\n<p class=\"Bodytext0\">Dàn ý của chương trình:</p>\r\n<p class=\"Bodytext60\" align=\"left\">phần khai báo</p>\r\n<p class=\"Bodytext60\" align=\"left\">begin</p>\r\n<p class=\"Bodytext60\" align=\"left\">{nhập xâu S}</p>\r\n<p class=\"Bodytext60\" align=\"left\">N: = length (S);</p>\r\n<p class=\"Bodytext60\" align=\"left\">{Khởi tạo cho màng Dem}</p>\r\n<p class=\"Bodytext60\" align=\"left\">for i: =1 to N do {Neu s[i] là chữ cái thì đém tăng cho s[1]</p>\r\n<p class=\"Bodytext60\" align=\"left\">for c:='A' to Z do {Thông báo sô lần xuất hiện của c}</p>\r\n<p class=\"Bodytext60\" align=\"left\">End.</p>\r\n<p>Chương trình nhập từ bàn phím một xâu kí tự và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong (không phân biệt chữ hoa hay chữ thường).</p>\r\n<p class=\"Bodytext330\">Program tinh_ki_tu,</p>\r\n<p class=\"Bodytext330\">var s,sl: string;</p>\r\n<p class=\"Bodytext80\">i, j, n: integer;</p>\r\n<p class=\"Bodytext80\">dem: array [ 'A’ . . 'z ’ ] of integer;</p>\r\n<p class=\"Bodytext80\">c: char ;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">write(’Nhap vao xau: ');</p>\r\n<p class=\"Bodytext80\">readln(S);</p>\r\n<p class=\"Bodytext80\">n:= length(s);</p>\r\n<p class=\"Bodytext80\">for C:= 'A' to 'Z' do {khoi tao cho mang dem} dem[c]:= 0 ; s 1 : = ’ ' ;</p>\r\n<p class=\"Bodytext80\">readln</p>\r\n<p class=\"Bodytext80\">End.</p>\r\n<p>Khi nhập vào lần lượt các xâu: 'đfd'2n5fv' 3m.A' , ' 55B7cfcManu07 ' , ' 8gs9'0A6ha5kQ ' thì chương trình cho các kết quả như hình 56 dưới đây:</p>\r\n<p><img src=\"https://img.loigiaihay.com/picture/2017/0123/56.jpg\" alt=\"\" width=\"450\" height=\"241\" /></p>\r\n<p class=\"Bodytext0\" align=\"left\"><strong>Bài 3.</strong> Đối với bài toán này:</p>\r\n<p>Để thay thế tất cả cụm từ \"anh\" trong một xâu st thành cụm kí tự 'em', có thể làm một cách tự nhiên: Tìm vị trí xâu con 'anh'  trong xâu st đã cho, xóa xâu con này đi rồi chèn xâu \"em\" vào vị trí đó. Lặp đi lặp lại điều này cho đến khi không tìm thấy xâu \"anh' cần thay thế trong xâu st nữa. Để giải quyết vấn đề này, chúng ta cần vận dụng các hàm Pos, thủ tục chuẩn Delete, Insert.</p>\r\n<p>Dàn ý chương trinh:</p>\r\n<p class=\"Bodytext60\">{phần khai báo}</p>\r\n<p class=\"Bodytext270\">Begin</p>\r\n<p class=\"Bodytext60\">{Nhập xâu S}</p>\r\n<p class=\"Bodytext60\" align=\"left\">{Chừng nào còn tìm thấy xâu con ‘anh ' trong xâu st còn làm ba công việc sau: Tìm vị trí bắt đầu của xâu 'anh' ;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Xóa xâu ' anh' vừa tìm thấy;</p>\r\n<p class=\"Bodytext30\" align=\"left\">Chèn xâu ' em' vào xâu s tại vị trí trước đây xuất hiện xâu 'anh' ;</p>\r\n<p class=\"Bodytext30\" align=\"left\">{In xau S kết quả}</p>\r\n<p class=\"Bodytext30\" align=\"left\">end.</p>\r\n<p>Chương trình nhập vào từ bàn phím một xâu, thay thế tất cả các cụm kí tự ‘anh ’ bằng cụm từ ‘em'</p>\r\n<p>program thay_the_cum_tu;</p>\r\n<p>var vt: byte;</p>\r\n<p class=\"Bodytext270\" align=\"left\">St: string;</p>\r\n<p class=\"Bodytext270\">Begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">write(’Nhap vao mot xau: ');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(st);</p>\r\n<p>while pos ('anh', st)&lt;&gt;0 </p>\r\n<p>begin</p>\r\n<p>Vt : = pos ( ' anh ' , St. : ; delete(St,vt,3);</p>\r\n<p>insert('em',St,vt) ; end;</p>\r\n<p>write ('Xau sau khi da duoc thay the: ' ,st ,')</p>\r\n<p>readln</p>\r\n<p>End.</p>\r\n<p>Khi nhập vào lần lượt các xâu: 'anh' và 'em' ; 'anh em trong mot nha ' thì chương trình cho các kết quả theo thứ tự như sau: 'em va em' ,' em em trong mot nha ' . Kết quả chương trình cho như hình 57 dưới đây:</p>\r\n<p><img src=\"https://img.loigiaihay.com/picture/2017/0123/57.jpg\" alt=\"\" width=\"450\" height=\"114\" /></p>\r\n<p style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25175,"cat_id":155,"publish_time":1486366560,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0123/resize_7-0.jpg","title":"Bài tập và thực hành 5 trang 73 SGK Tin học 11","label":"Bài tập và thực hành 5 trang 73 SGK Tin học 11","alias":"bai-tap-va-thuc-hanh-5-trang-73-sgk-tin-hoc-11","introtext":" Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm kí tự \"anh\" bằng cụm từ 'em'.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p><strong>1. Mục đích, yêu cầu</strong></p>\r\n<p class=\"Bodytext60\" align=\"left\">Làm quen với việc tìm kiếm, thay thế và biến đối xâu.</p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p class=\"Bodytext0\"><strong>Bài 1.</strong> Nhập vào từ bàn phím một xâu. Kiểm tra xâu đó có phải là xâu đối xứng hay không. Xâu đôi xứng có tính chất đọc nó từ phải sang trái cũng như từ trái sang phải (còn được gọi là xâu palindrome).</p>\r\n<p>Hãy chạy thử chương trình sau:</p>\r\n<p class=\"Bodytext80\">var i, x: byte;</p>\r\n<p class=\"Bodytext80\">a, p: string; begin</p>\r\n<p class=\"Bodytext80\">write('Nhap vao xau: ’); readln(a);</p>\r\n<p class=\"Bodytext80\">X:= length(a); {xac dinh do dai xau}</p>\r\n<p class=\"Bodytext80\">p: = ' ', {khoi tao xau rong} for i:= X downto 1 do</p>\r\n<p class=\"Bodytext80\">p:= p+a[i]; {tao xau dao nguoc} if a= p then</p>\r\n<p class=\"Bodytext80\">write('xau la palindrome') else</p>\r\n<p class=\"Bodytext80\">write ( 'xau khong la palindrome' ) ,</p>\r\n<p class=\"Bodytext80\">readln</p>\r\n<p class=\"Bodytext80\">end.</p>\r\n<p class=\"Bodytext0\">Hãy viết lại chương trình trên, trong đó không cần có biến xâu p.</p>\r\n<p class=\"Bodytext0\"><strong>Bài 2.</strong> Viết chương trình nhập từ bàn phím một xâu kí tự s và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong s (không phân biệt chữ hoa hay chữ thường).</p>\r\n<p class=\"Bodytext0\"><strong>Bài 3.</strong> Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm kí tự \"anh\" bằng cụm từ 'em'.</p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25177,"cat_id":155,"publish_time":1486366560,"type_ex":1,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_121-0.jpg","title":"Lý thuyết: Kiểu bản ghi trang 74 SGK Tin học 11","label":"Lý thuyết: Kiểu bản ghi trang 74 SGK Tin học 11","alias":"ly-thuyet-kieu-ban-ghi-trang-74-sgk-tin-hoc-11","introtext":"Dữ liệu kiểu bản ghi dùng để mô tả các đối tượng có cùng một số thuộc tính mà các thuộc tính có thể có các kiểu dữ liệu khác nhau;","display_type":0,"article_type":1},{"article_id":25179,"cat_id":155,"publish_time":1486366560,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_2-0.jpg","title":"Câu 1 trang 79 SGK Tin học 11","label":"Câu 1 trang 79 SGK Tin học 11","alias":"cau-1-trang-79-sgk-tin-hoc-11","introtext":"Tại sao mảng là kiểu dữ liệu có cấu trúc?","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p>Mảng là kiểu dữ liệu có cấu trúc bởi vì mảng (một chiều, hai chiều hay nhiều chiều) là kiểu có cấu trúc được đề cập tới sớm nhất trong các ngôn ngữ lập trình. Nó được xây dựng từ những kiểu dữ liệu đã có theo quy tắc khuôn dạng do ngôn ngữ lập trình cung cấp. Nó được dùng để chỉ định một nhóm đối tượng cùng một tính chất nào đó. Chẳng hạn, vectơ là một nhóm các số mà mỗi số ta có thể xác định chỉ cần biết chỉ số. Như vậy, để khai báo kiểu mảng phải chỉ ra kiểu dữ liệu chung của các phần tử và kiểu chỉ số.</p>\r\n<p style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25180,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_3-0.jpg","title":"Câu 2 trang 79 SGK Tin học 11","label":"Câu 2 trang 79 SGK Tin học 11","alias":"cau-2-trang-79-sgk-tin-hoc-11","introtext":"Tại sao phải khai báo kích thước của mảng?","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p>Mảng là 1 tập hợp các phần tử được đánh số có thứ tự thường là từ 0 hoặc 1 cho nên khi khai báo mảng ta cần khai báo thêm kích thước để máy có thể cấp phát đủ bộ nhớ chứa số lượng các phần tử.</p>\r\n<p style=\"text-align: right;\"><strong> Loigiaihay.com</strong></p>"},{"article_id":25181,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_5-0.jpg","title":"Câu 3 trang 79 SGK Tin học 11","label":"Câu 3 trang 79 SGK Tin học 11","alias":"cau-3-trang-79-sgk-tin-hoc-11","introtext":"Các phần tử của mảng có thể có những kiểu gì?","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p><span>Kiểu dữ liệu của mảng có thể là những kiểu dữ liệu chuẩn (integer, byte, real,…), kiểu dữ liệu có cấu trúc (string, kiểu bản ghi).</span></p>\r\n<p style=\"text-align: right;\"><span><strong>Loigiaihay.com</strong><br /></span></p>"},{"article_id":25183,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_5-0_1.jpg","title":"Câu 4 trang 79 SGK Tin học 11","label":"Câu 4 trang 79 SGK Tin học 11","alias":"cau-4-trang-79-sgk-tin-hoc-11","introtext":"Tham chiếu đến phần tử của mảng bằng cách nào?","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p>- Tham chiếu đến phần tử của mảng có 2 kiểu : </p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">** Với mảng 1 chiều: </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">- Cách tham chiếu đến mảng: A[i] với i là chỉ số phân tử trong mảng. </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">Ví dụ: Vẫn xét mảng 10 20 30 5 6 7 </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">A[1]=10; A[2]=20; A[3]=30; A[4]=50; A[5]=6; A[7]=7 </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">- Cách khai báo mảng: Có 2 cách khai báo: </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\"><strong>Khai báo trực tiếp:</strong></span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">Thường thì cách khai báo trực tiếp được dùng nhiều hơn vì nó ngắn gọn. </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">var &lt;tên mảng&gt;:array[kiểu chỉ số] of &lt;kiểu phần tử&gt;; </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">Ví dụ: </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">a:array[1..100] of integer; </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">b,c:array[1..250] of integer; </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\"><strong>Khai báo gián tiếp:</strong> </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">type &lt;tên kiểu mảng&gt;=array[kiểu phần tử] of &lt;kiểu chỉ số&gt;; </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">var &lt;tên mảng&gt;:&lt;tên kiểu mảng&gt;; </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">Ví dụ: </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">type mang=array[1..100] of integer; </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">var a,b,c:mang; </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">**Với mảng 2 chiều : </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">- Tham chiếu: Vì mảng 2 chiều là bảng nên sẽ cần chỉ số hàng và chỉ số cột: A[i,j] với i là chỉ số hàng, j là chỉ số cột. </span></p>\r\n<p><span id=\"yui_3_17_2_4_1485266863867_898\" class=\"ya-q-full-text\">- Khai báo: Tương tự như mảng 1 chiều nhưng thêm chỉ số cột.</span></p>\r\n<p style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25182,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_7-0.jpg","title":"Câu 5 trang 79 SGK Tin học 11","label":"Câu 5 trang 79 SGK Tin học 11","alias":"cau-5-trang-79-sgk-tin-hoc-11","introtext":"Viết chương trình nhập từ bàn phím số nguyên dương N (N ≤100) và dãy A gồm N số nguyên A1...AN có giá trị tuyệt đối lớn hơn 1000. Hãy cho biết dãy A có phải là một cấp số cộng hay không và thông báo kết quả ra mành hình.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p>Để lập chương trình nhập từ bàn phím số nguyên dương N (N ≤ 100) và dãy A gồm N số nguyên A, A1...A<sub>N</sub> có giá trị tuyệt đối không lớn hơn 100, thì ta cần phải thực hiện việc kiểm tra xem số N nhập vào (số phần tử của dãy) có thỏa mãn yêu cầu của đầu bài hay không nghĩa là 0 &lt; N≤ 100, nếu không đưa ra thông báo “Mời nhập lại\". Còn các phần tử, A1,...A<sub>N</sub> của mảng cũng phải là những số nguyên và có giá trị tuyệt đối không lớn hơn 100 (A[i] &gt;= -100 và A[i]&lt;=100), nếu không đưa ra thông báo “Mời nhập lại'.</p>\r\n<p class=\"Bodytext0\">Tiếp đến ta phải kiểm tra dãy A nhập vào có phải là một cấp số cộng hay không nghĩa là các phần tử của dãy A vừa nhập vào có làm thành một cấp số cộng hay không và đưa ra màn hình thông báo kết quả ra màn hình “A là cấp số cộng’ hoặc “A không là cấp số cộng\". Bởi vậy,</p>\r\n<p class=\"Bodytext0\">Lấy d= A[2] - A[1]</p>\r\n<p class=\"Bodytext0\">Khi đó, dãy A là cấp số cộng nếu thỏa mãn điều kiện:</p>\r\n<p class=\"Bodytext30\" align=\"left\">A[i]=A[1] + (i-1)d.</p>\r\n<p class=\"Bodytext0\">(hoặc điều kiện A[i] - A[i-1] = d với (1<em></em></p>\r\n<p class=\"Bodytext0\">Trong chương trình ta dùng một vòng lặp theo biến đếm i để kiểm tra xem mỗi A[i] có thỏa mãn điều kiện nói trên hay không, chỉ cần phát hiện được một phần tử của A không thỏa mẫn là kết luận được dãy A không là cấp số cộng.</p>\r\n<p class=\"Bodytext0\">Chương trình:</p>\r\n<p class=\"Bodytext270\">program bai5_chuong4;</p>\r\n<p class=\"Bodytext270\">uses crt;</p>\r\n<p class=\"Bodytext270\">var</p>\r\n<p class=\"Bodytext80\">A: array[1..100] of integer;</p>\r\n<p class=\"Bodytext80\">d,rt,i, dem: integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">clrscr;</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln('Nhap mot so lon hon 0 va nho hon 100'); repeat</p>\r\n<p class=\"Bodytext270\" align=\"left\">write ('Nhap N:');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(N) </p>\r\n<p class=\"Bodytext270\" align=\"left\">if (N&gt;=1000) or (N&lt;=0 ) then writeln(’Moi nhap lai !');</p>\r\n<p class=\"Bodytext270\" align=\"left\">until (N&gt;0) and (N&lt;1000); writeln('Nhap cac gia tri cac so hang co tri tuyet doi khong lon hon 1000');</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:=1 to n do repeat</p>\r\n<p class=\"Bodytext270\" align=\"left\">write (' a [', i ,'] = ')</p>\r\n<p class=\"Bodytext270\" align=\"left\"> readln (a [i]) ; if (A[i]&gt;100) or (A[i]&lt;-1000) then write(’Moi nhap lai ');</p>\r\n<p class=\"Bodytext270\" align=\"left\">until (A[i]&gt;-1000) and (A[i]&lt;1000);</p>\r\n<p class=\"Bodytext270\" align=\"left\">{Kiem tra xem CO la cap so cong khong?} d: = A[2] - A[ 1 ] ; dem:=0;</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 2 to n do if A[i] - A[i-l]od then dem:= dem + 1; if dem &gt;0 then writeln('A khong la cap so cong') else writeln(’A la cap so cong');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln,</p>\r\n<p class=\"Bodytext270\" align=\"left\">end.</p>\r\n<p class=\"Bodytext0\">Khi chạy chương trình, nếu nhập số phần tử cùa dãy N= 5 và các phần tử của dãy theo thứ tự là 2, 4, 6, 8, 10 thì chương trình đưa ra thông báo “A la cap so cong”(Hình 59).</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/59.jpg\" alt=\"\" width=\"450\" height=\"139\" /></p>\r\n<p class=\"Bodytext30\">Nhưng khi nhập N không thỏa mãn điều kiện đầu bài, chẳng hạn N= -5 thì chương trình đưa ra thông báo “Mời nhập lại!”. Khi đó, ta phải vào lại N, chẳng hạn, N= 5 và nhập tiếp các phần tử của dãy, chẳng hạn: 1, 3, 5, 7, 9 thì kết quả của chương trình: “A la cap so cong’’ (Hình 60).</p>\r\n<p class=\"Bodytext30\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/60.jpg\" alt=\"\" width=\"450\" height=\"150\" /></p>\r\n<p class=\"Bodytext0\">Còn trong trường hợp các phần tử nhập vào của dãy không thỏa mãn điều kiện A[i] &lt; 1000 và A[i] &gt; -1000: thì ta phải nhập lại các phần tử của dãy cho đến khi chương trình đưa ra thông báo A là cấp số cộng hay không?</p>\r\n<p class=\"Bodytext680\">Chẳng hạn, ta nhập vào dãy N= 7 phần từ với giá trị các phần tử lần lượt như sau:</p>\r\n<p class=\"Bodytext0\">2, 5, 7, 8, 9, 4, 7 (ở phần tử thứ tư lúc đầu nhập vào số -1500 thì chương trình yêu cầu nhập lại và đã nhập vào số 8) thì chương trình đưa ra thông báo: \" A khong la cap so cong* (Hình 62).</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/62.jpg\" alt=\"\" width=\"450\" height=\"165\" /></p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\"> <strong>Loigiaihay.com</strong></p>"},{"article_id":25184,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_2-0_3.jpg","title":"Bài 6 trang 79 SGK Tin học 11","label":"Bài  trang 79 SGK Tin học 11","alias":"bai-6-trang-79-sgk-tin-hoc-11","introtext":"Viết chương trình nhập từ bàn phím số nguyên dương N (N ≤100) và dãy A gồm N số nguyên A1, A2 .. có giá trị tuyệt đối không lớn hơn 1000. Hãy đưa ra những thông tin sau:","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p>Đối với với bài toán này thì phần kiểm tra số nguyên dương N (N <strong>≤</strong> 100) và dãy A gồn N số nguyên A1, A<sub>2</sub> ... A<sub>N</sub> có giá trị tuyệt đối không lớn hơn 1000 giống như bài tập 5 đã nêu ờ trên. Chúng ta chỉ cần giải quyết thêm 2 vấn đề nữa, đó là đếm số lượng số chẵn, số lẻ và số lượng số nguyên tố trong dãy.</p>\r\n<p>Chương trình :</p>\r\n<p class=\"Bodytext270\" align=\"left\">progran baitap6_chuong4;</p>\r\n<p class=\"Bodytext270\" align=\"left\">uses crt;</p>\r\n<p class=\"Bodytext0\">var                 </p>\r\n<p class=\"Bodytext0\">array[1..100] of integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">if: boolean;</p>\r\n<p class=\"Bodytext270\" align=\"left\">N, i„ l: integer; so_nt, so_chan: integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i := -1000 to 1000 do if i&gt;0 then NT:= false;</p>\r\n<p class=\"Bodytext270\" align=\"left\">so_chan:=0; so_nt:=0;</p>\r\n<p class=\"Bodytext80\">{Nhap vao)</p>\r\n<p class=\"Bodytext80\">repeat</p>\r\n<p class=\"Bodytext80\">write('So phan tu cua day A (N&lt;=100), N= *);</p>\r\n<p class=\"Bodytext80\">readln(N);</p>\r\n<p class=\"Bodytext80\">until (N&gt;0) and</p>\r\n<p class=\"Bodytext80\">(N&lt;=100);</p>\r\n<p class=\"Bodytext80\"> for i:= 1 to N do</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">{kiem tra cac phan tu cua day khi nhap vao}</p>\r\n<p class=\"Bodytext270\" align=\"left\">repeat</p>\r\n<p class=\"Bodytext270\" align=\"left\">write('A[',i,']= ');readln(A[i]);</p>\r\n<p class=\"Bodytext270\" align=\"left\">if (a[i]&gt;1000) or (a[i]&lt;-1000) then</p>\r\n<p class=\"Bodytext270\" align=\"left\">write('Moi nhap lai \");</p>\r\n<p class=\"Bodytext270\" align=\"left\">until (a[i]&gt;-1000) and (a[i]&lt;1000); = if A[i] mod 2 =0 then so_chan:= so_chan + 1; if A[i] &gt;1 then</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext0\" align=\"left\">u: = 2 ;</p>\r\n<p class=\"Bodytext270\" align=\"left\">while ((u&lt;=sqrt (A[i])) and (A[i] mod u&lt;&gt;0))) do u: = u + 1; if u&gt;sqrt(A[i]) then so_nt:= so_nt + 1;</p>\r\n<p class=\"Bodytext0\" align=\"left\">end,</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">{In ra man hinh}</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln('So luong so chan:',so_chan);</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln('So luong so le:',N - so_chan);</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln(’So luong so nguyen tro:', so_nt);</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln</p>\r\n<p class=\"Bodytext270\" align=\"left\">End.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi chạy chương trình, ta lần lượt nhập các phần tử của dãy A:</p>\r\n<p class=\"Bodytext0\" align=\"left\"> Với N = 3 và các phần tử được nhập vào theo thứ tự:</p>\r\n<p class=\"Bodytext270\" align=\"left\">A[1]=5</p>\r\n<p class=\"Bodytext0\" align=\"left\">A[2]=7</p>\r\n<p class=\"Bodytext0\" align=\"left\">A[3]=900</p>\r\n<p class=\"Bodytext0\" align=\"left\">thì chương trình đưa ra thông báo:</p>\r\n<p class=\"Bodytext270\" align=\"left\">So luong so chan: 1</p>\r\n<p class=\"Bodytext270\" align=\"left\">So luong so le: 2</p>\r\n<p class=\"Bodytext270\" align=\"left\">So luong so nguyen to: 2</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Với N = 5 và các phần tử được nhập vào theo thứ tự:</p>\r\n<p class=\"Bodytext0\" align=\"left\">A[1]=12</p>\r\n<p class=\"Bodytext270\" align=\"left\">A[2]=3 A[3]=5</p>\r\n<p class=\"Bodytext690\">A[4]=10 A [5]=11</p>\r\n<p class=\"Bodytext0\" align=\"left\">thì chương trinh đưa ra thông báo:</p>\r\n<p class=\"Bodytext80\">So luong so chan: 2</p>\r\n<p class=\"Bodytext80\">So luong so le: 3</p>\r\n<p class=\"Bodytext80\">So luong so nguyen to: 3</p>\r\n<p class=\"Bodytext0\" align=\"left\">Kết quả của chương trình như hình 63 sau đây:</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/63.jpg\" alt=\"\" width=\"450\" height=\"198\" /></p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext0\">Trong trường hợp số phần tử nhập vào và giá trị các phần tử của dãy A không thỏa mãn điều kiện thì chương trình sẽ có thông báo mời nhập lại. Chẳng hạn, trong các trường hợp sau đây:</p>\r\n<p class=\"Bodytext0\" align=\"left\">A[1] = 12</p>\r\n<p class=\"Bodytext0\" align=\"left\">A[2] = 2000 thì chương trình đưa ra yêu cầu Moi nhap lai A[2]= 800 A[3] = 17</p>\r\n<p class=\"Bodytext0\" align=\"left\">A[4] = -1500 thì chương trình đưa ra yêu cầu Moi nhap lai A[4]= -200 A[5] =31 A[6] = 5 A[7] = 350</p>\r\n<p class=\"Bodytext0\" align=\"left\">Kết quả chương trình đưa ra thông báo (Hình 64):</p>\r\n<p class=\"Bodytext0\" align=\"left\">So luong so chan: 4</p>\r\n<p class=\"Bodytext0\" align=\"left\">So Luong so le: 3</p>\r\n<p class=\"Bodytext0\" align=\"left\">So luong so nguyen to: 3</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/64.jpg\" alt=\"\" width=\"450\" height=\"180\" /></p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\" align=\"left\"> <strong>Loigiaihay.com</strong></p>\r\n</div>"},{"article_id":25185,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_3-0_1.jpg","title":"Câu 7 trang 79 SGK Tin học 11","label":"Câu 7 trang 79 SGK Tin học 11","alias":"cau-7-trang-79-sgk-tin-hoc-11","introtext":"Viết chương trình nhập từ bàn phím số nguyên dương N và đưa ra màn hình số hạng thứ N của dãy Phi-bo-na-xi. Chương trình của bạn thực hiện với giá trị lớn nhất của N là bao nhiêu?","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Ta cần viết chương trình nhập vào từ bàn phím số nguyên dương N và đưa ra màn hình số hạng thứ N của dãy Phi-bô-nan-xi và đưa ra kết luận: với giá trị lớn nhất nào của N thì chương trình thực hiện đượ</span></span>c ?</p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Chương trình:</span></span></p>\r\n<p class=\"Bodytext270\" align=\"left\">program bai7_chuong4;</p>\r\n<p class=\"Bodytext270\" align=\"left\">uses crt;</p>\r\n<p class=\"Bodytext270\" align=\"left\">var</p>\r\n<p class=\"Bodytext270\" align=\"left\">N,i: word;</p>\r\n<p class=\"Bodytext270\" align=\"left\">F,F1,F2: word;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">clrscr;</p>\r\n<p class=\"Bodytext270\" align=\"left\">repeat</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln('Tim so hang thu N cua day Fibonaxi, Nĩ='));</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(N);</p>\r\n<p class=\"Bodytext270\" align=\"left\">if N&lt;=2 then writeln(’Moi nhap lai !');</p>\r\n<p class=\"Bodytext270\" align=\"left\">until N&gt;2 F1:= 1 F2:= 2 for i:= 3 to N do</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext0\" align=\"left\">F:= F1 + F2;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Fl:= F2;</p>\r\n<p class=\"Bodytext270\" align=\"left\">F2:= F;</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext280\">writeln('So fibonaxi thu', N: 5, ' la ’, F: 10);</p>\r\n<p class=\"Bodytext280\">readln;</p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">End.<br /></span></span></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Khi chạy chương trình, nếu nhập N &lt; 2, chẳng hạn N = 1 thì trên chương trình đưa ra thông báo \"Moi nhap lai\". Còn khi nhập N &gt;= 2, chẳng hạn N = 7 thì chương trình đưa ra kết quả: \"So fibonaxi thu 7 la 21\".</span></span></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Kết quả chương trình đưa ra kết quả như hình 65 dưới đây:</span></span></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/65.jpg\" alt=\"\" width=\"450\" height=\"98\" /></span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Chương trình trên chỉ chạy được với N=1001 vì số Fi-bô-na-xi thứ 1001 là 65048, số số Fi-bô-na-xi thứ 1002 vượt quá phạm vi của kiểu </span></span><span class=\"BodytextTimesNewRoman\">word.</span></p>\r\n<div style=\"text-align: right;\"><strong>Loigiaihay.com</strong></div>"},{"article_id":25186,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_14-0.jpg","title":"Bài 8 trang 79 SGK Tin học 11","label":"Bài 8 trang 79 SGK Tin học 11","alias":"bai-8-trang-79-sgk-tin-hoc-11","introtext":"Chương trình sau đây thực hiện những gì?","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p>Khi chạy chương trình, với N= 4 thì kết quả của chương trình như hình 67 dưới :</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/67.jpg\" alt=\"\" width=\"450\" height=\"197\" /></p>\r\n<p class=\"Bodytext30\">Chương trình thực hiện việc hoán đổi vị trí dòng thứ i với dòng thứ N-i+j, nghĩa là hoán đổi vị trí dòng đầu tiên với dòng cuối cùng của mảng hai chiều, dòng thứ hai từ trên xuống với dòng thứ hai từ dưới lên,.. Việc hoán đổi vị trí dòng thứ i với dòng đối xứng với nó được thực hiện khi i nhận giá trị từ 1 đến N, làm cho mỗi dòng được hoán đổi vị trí hai lần. Vì vậy, cuối cùng mảng A không thay đổi so với ban đầu.</p>\r\n<p class=\"Bodytext30\" style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25187,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_4-0_1.jpg","title":"Câu 9 trang 80 SGK Tin học 11","label":"Câu 9 trang 80 SGK Tin học 11","alias":"cau-9-trang-80-sgk-tin-hoc-11","introtext":"Cho mảng hai chiều kích thước nxm với các phần tử là những số nguyên. Tìm trong mỗi dòng phần tử lớn nhất rồi đổi chỗ nó với phần tử có chỉ số dòng bằng chỉ số cột.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p>Có thể được chia thành ba đoạn chương trình sau đây:</p>\r\n<div class=\"WordSection1\">\r\n<p><strong>Đoạn thứ nhất:</strong> Hai vòng lặp for-do lồng nhau ở đầu chương trình có nhiệm vụ nhập vào một mảng hai chiều từ bàn phím.</p>\r\n<p class=\"Bodytext220\">for i:= 1 to N do for j:= 1 to N do</p>\r\n<p class=\"Bodytext220\">begin</p>\r\n<p class=\"Bodytext420\">write('A[',i, ’, ',j, ']= ’) ;</p>\r\n<p class=\"Bodytext420\">readln(A(i,j]);</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p><strong>Đoạn thứ hai</strong>: Hai vòng lặp lồng nhau tiếp theo thực hiện việc tìm phần tử lớn nhất trên dòng thứ i hoán đổi vị trí phần tử này với phần tử vừa nằm trên dòng i vừa có chỉ số cột bằng i.</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to N do begin</p>\r\n<p>Max:= A [ i , 1 ] ; Ind:= 1 ,</p>\r\n<p><strong> </strong>for j:= 2 to N do</p>\r\n<p class=\"Bodytext80\">if A[i,j] &gt; Max then</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext220\">Max:= A[i,j]; Ind:= j;</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p>Vsp:= A[i,i]; A[i,i]:= Max; A[i,Ind]:= Vsp;</p>\r\n<p><strong>end;</strong></p>\r\n<p><strong>Đoạn thứ ba</strong>: Hai vòng lặp lồng nhau cuối chương trình in ra mảng kết quả.</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:=1 to N do</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext0\" align=\"left\">writeln;</p>\r\n<p class=\"Bodytext270\" align=\"left\">for j:= 1 to N do write (A[i , j ] : 3 );</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln</p>\r\n<p class=\"Bodytext30\">- Khi chạy chương trình trên, nhập vào N= 3 thì ta có mảng hai chiều 3x3 với 9 phần tử, chẳng hạn theo thứ tự như sau:</p>\r\n<p class=\"Bodytext30\">A[1,1]=4</p>\r\n<p class=\"Bodytext30\">A[1,2]=6</p>\r\n<p class=\"Bodytext30\">A[1,3]= 8</p>\r\n<p class=\"Bodytext30\">A[2,1]=3</p>\r\n<p class=\"Bodytext270\">A[2,2]= 7</p>\r\n<p class=\"Bodytext270\">A[2,3]= 9</p>\r\n<p class=\"Bodytext270\">A[3,l]= 4</p>\r\n<p class=\"Bodytext270\">A[3,2]=9</p>\r\n<p class=\"Bodytext270\">A[3,3]= 5</p>\r\n<p class=\"Bodytext0\">Ta nhận thấy rằng, ở dòng thứ nhất, phần tử lớn nhất của dòng là A[ 1,3 ]= 8, phần tử có chỉ số dòng bằng chỉ số cột là A[1,1]= 4. Bởi vậy, sau khi tráo đổi thì giá trị của A[1,1]= 8, còn A[1,3]= 4. Vì vậy, dòng thứ nhất sau khi được tráo đổi là: A[1,1]= 8, A[ 1,2]= 6, A[ 1,3]=4.</p>\r\n<p class=\"Bodytext0\">Tương tự, ở dòng thứ 2 thì phần tử lớn nhất của dòng là A[2,3]= 9 sẽ được tráo đổi với phần tử A[2,2]= 7. Bởi vậy, sau khi tráo đổi thì giá trị của A[2,2]= 9, còn A[2,3]= 7. Vì vậy, dòng thứ hai sau khi được tráo đổi là:</p>\r\n<p class=\"Bodytext0\" align=\"left\">A[2,1 ]= 3, A[2,2]= 9, A[2,3]= 7.</p>\r\n<p class=\"Bodytext0\">Ở dòng thứ ba sau khi được tráo đổi là: A[3,1]= 4, A[3,2]= 5, A[3,3]=9.</p>\r\n<p class=\"Bodytext0\">Khi đó, các dòng sau khi được tráo đổi sẽ như sau:</p>\r\n<p class=\"Bodytext0\">A[1,1]= 8,A[1,2]= 6, A[1,3]= 4</p>\r\n<p class=\"Bodytext0\">A[2,1]=3,A[2,2]=9,A[2,3]=7</p>\r\n<p class=\"Bodytext0\">A[3,1]=4,A[3,2]= 5, A[3,3]= 9</p>\r\n<p class=\"Bodytext0\">Kết quả chương trình có dạng như hình 68 dưới đây:</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/68.jpg\" alt=\"\" width=\"450\" height=\"169\" /></p>\r\n<p class=\"Bodytext0\">Muốn sửa lại chương trình để thực hiện đổi chỗ phần tử lớn nhất trên cột với phần tử vừa nằm trên cột đó vừa có chỉ số dòng bằng chỉ số cột thì chì cần hoán đổi vị trí của hai chỉ số trong đoạn thứ hai của chương trình. Điều đó có nghĩa là chỉ đổi i trở thành chỉ số thứ hai, chỉ số thứ hai trở thành chỉ số i trong các câu lệnh có liên quan. Như vậy, chỉ có đoạn thứ hai trong chương trình khác đi và trở thành như sau:</p>\r\n<p class=\"Bodytext0\">for i:= 1 to N do</p>\r\n<p class=\"Bodytext0\">begin</p>\r\n<p class=\"Bodytext80\">Max: = A [ 1, i ] , Ind:= 1;</p>\r\n<p class=\"Bodytext0\">for j:= 2 to N do</p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext80\">if A[i,j] &gt; Max then begin</p>\r\n<p class=\"Bodytext80\">Max:- A[j,i];</p>\r\n<p class=\"Bodytext80\">Ind:= j;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">Vsp:= A[i,i]; A[i,i]:= Max; A[Ind,i]:= Vsp;</p>\r\n<p class=\"Bodytext80\">{Hoac Vsp: =A[ i , i ] ,A [ i , i ] : =A [ Ind, i] ; A [Ind, i ] : =Vsp; }</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Do vậy, chương trình tìm trong mỗi cột phần tử lớn nhất rồi đổi chỗ nó với phần tử có chỉ số dòng bằng số cột là như sau:</p>\r\n<p class=\"Bodytext80\">progran Diag_2; var</p>\r\n<p class=\"Bodytext80\">N, j, Max, Ind, Vsp: integer;</p>\r\n<p class=\"Bodytext80\">A: array[1..15, 1...15] of integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Begin</p>\r\n<p class=\"Bodytext80\">write(’Nhap N:’),</p>\r\n<p class=\"Bodytext80\">readln(N);</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to N do for j:= 1 to N do</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext80\">write(<sup>1</sup> A[’,i,..,j, • ]= ’);</p>\r\n<p class=\"Bodytext80\">readln(A[i,j]);</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">:or i:= 1 to N do begin</p>\r\n<p class=\"Bodytext80\">Max:= A[1,i];</p>\r\n<p class=\"Bodytext80\">Ind:= 1; for j:= 2 to N do</p>\r\n<p class=\"Bodytext270\" align=\"left\">if A[j,i] &gt; Max then</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext80\">Max: = A [ j , i ] ,Ind:= j;</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext80\">Vsp: = A[i,i], A [ i , i ] : = Max; A[Ind,i]:= Vsp;</p>\r\n<p class=\"Bodytext80\">{Hoac Vsp:=A[i,i];A[i,i]:=A[Ind,i]; A[Ind,i]:=Vsp;}</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">for i:= 1 to N do</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext80\">writeln;</p>\r\n<p class=\"Bodytext270\" align=\"left\">for j:= 1 to N do write(A[i,j]:3);</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext80\">vriteln</p>\r\n<p class=\"Bodytext80\">readln</p>\r\n<p class=\"Bodytext0\" align=\"left\">End</p>\r\n</div>\r\n<p class=\"Bodytext0\">A[1,1]=4</p>\r\n<p class=\"Bodytext0\">A[ 1,2]= 3</p>\r\n<p class=\"Bodytext0\">A[ 1,3]= 6</p>\r\n<p class=\"Bodytext0\">A[2,1]= 9</p>\r\n<p class=\"Bodytext0\">A[2,2]= 5</p>\r\n<p class=\"Bodytext0\">A[2,3]= 7</p>\r\n<p class=\"Bodytext0\">A[3,1]=5</p>\r\n<p class=\"Bodytext0\">A[3,2]= 9</p>\r\n<p class=\"Bodytext0\">A[3,3]=4</p>\r\n<p class=\"Bodytext0\">Ta nhận thấy rằng, phần tử lớn nhất của cột thứ nhất là 9 và nỏ sẽ tráo đổi với phần tử A[ 1,1]= 4. Tương tự, phần tử lớn nhất cùa cột thứ hai là 9 và nó sẽ tráo đổi với phần tử A[2, 2]= 5. Phần tử lớn nhất cùa cột thứ ba là 7 và nó sẽ tráo đổi với phần tử A[3, 3]= 4</p>\r\n<p class=\"Bodytext0\" align=\"left\">Như vậy, các phần tử cùa mảng A sau khi đã tráo đổi như sau:</p>\r\n<p class=\"Bodytext0\" align=\"left\">9               3              6</p>\r\n<p class=\"Bodytext0\" align=\"left\">4               9              4</p>\r\n<p class=\"Bodytext720\">5               5              7</p>\r\n<p class=\"Bodytext720\">Kết quả chương trình như hình 69 dưới đây:</p>\r\n<p class=\"Bodytext720\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/69.jpg\" alt=\"\" width=\"450\" height=\"167\" /></p>\r\n<p class=\"Bodytext720\" style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>\r\n</div>"},{"article_id":25188,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_5-0_2.jpg","title":"Câu 10 trang 80 SGK Tin học 11","label":"Câu 10 trang 80 SGK Tin học 11","alias":"cau-10-trang-80-sgk-tin-hoc-11","introtext":"Viết chương trình nhập vào từ bàn phím xâu kí tự s có độ dài không quá 100. Hãy cho biết có bao nhiêu chữ số thập phân xuất hiện trong xâu s. Thông báo kết quả ra màn hình.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p>Chương trình nhập vào từ bàn phím xâu kí tự s có độ dài không quá 100. Cho biết số chữ số thập phân xuất hiện trong xâu s. Thông báo kết quả ra màn hình.</p>\r\n<p class=\"Bodytext60\">Chương trình:</p>\r\n<p class=\"Bodytext270\">program bai_10_chuong_4;</p>\r\n<p class=\"Bodytext270\">uses crt;</p>\r\n<p class=\"Bodytext270\">var</p>\r\n<p class=\"Bodytext270\">s: string[100];</p>\r\n<p class=\"Bodytext270\">i, dem: integer;</p>\r\n<p class=\"Bodytext270\">Begin</p>\r\n<p class=\"Bodytext270\">clrscr;</p>\r\n<p class=\"Bodytext270\" align=\"left\">write('Nhap xau vao:'); readln(s); dem:= 0;</p>\r\n<p class=\"Bodytext270\">for i:= 1 to length(s) do</p>\r\n<p class=\"Bodytext270\">if ('0'&lt;=s[i]) and(s[i]&lt;=’9') then dem:=dem+l;</p>\r\n<p class=\"Heading1040\">Writeln('Trong xau s co '»dem,' chu so thap phan');</p>\r\n<p class=\"Heading1040\">readln;</p>\r\n<p class=\"Bodytext270\">End.</p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Khi chạy chương trình, giả sử nhập vào xâu s :'Tin hoc 11 co 6 chuong</span></span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">' thì kết quả chương trình in ra màn hình: 'Trong xau s co 3 chu so thap phan'.</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Kết quả chương trình có dạng như hình 70 dưới đây:</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/70.jpg\" alt=\"\" width=\"450\" height=\"82\" /></span></span></p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><strong>Loigiaihay.com</strong></span></span></p>"},{"article_id":25189,"cat_id":155,"publish_time":1486366620,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0124/resize_4-0_2.jpg","title":"Câu 11 trang 80 SGK Tin học 11","label":"Câu 11 trang 80 SGK Tin học 11","alias":"cau-11-trang-80-sgk-tin-hoc-11","introtext":"Hãy bổ sung thêm chương trình xeploai (ở §13) những lệnh cần thiết để chương trình đưa ra danh sách học sinh xếp loại A.","display_type":1,"article_type":1,"content":"<style>\r\n.method-close-icon{position: relative;float: right;top: 6px;transform: rotate(270deg);-ms-transform:rotate(270deg);-moz-transform:rotate(270deg);-webkit-transform:rotate(270deg);-o-transform:rotate(270deg);}\r\n.method-open-icon{position: relative;float: right;top: 6px;}\r\n</style>\r\n<p><strong style=\"font-size: 16px;\">Lời giải chi tiết</strong></p><p class=\"Bodytext0\">Chương trình xeploai:</p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext80\">program xEp_loai ;</p>\r\n<p class=\"Bodytext80\">uses crt;</p>\r\n<p class=\"Bodytext80\">const max=60;</p>\r\n<p class=\"Bodytext80\">type Hocsinh = record</p>\r\n<p class=\"Bodytext80\">hoten: string[30];</p>\r\n<p class=\"Bodytext80\">ngaysinh: string [10];</p>\r\n<p class=\"Bodytext80\">Diachi: string[50];</p>\r\n<p class=\"Bodytext80\">Toan, Van: real;</p>\r\n<p class=\"Bodytext80\">Xeploai: char;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext0\" align=\"left\">var</p>\r\n</div>\r\n<p>Lop: array[1..max] of hocsinh;</p>\r\n<div class=\"WordSection2\">\r\n<p class=\"Bodytext80\">N, i: byte;</p>\r\n<p class=\"Bodytext80\">Begin</p>\r\n<p class=\"Bodytext80\">clrscr;</p>\r\n<p class=\"Bodytext80\">readln(N)</p>\r\n<p class=\"Bodytext80\">write('So luong hoc sinh trong lop N=  ) ;</p>\r\n<p class=\"Bodytext80\">readln(N);</p>\r\n<p class=\"Bodytext80\">for i:= 1 to N do</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">writeln( 'Nhap so lieu ve hoc sinh thu',i,': ');</p>\r\n<p>Write (‘Ho va ten: ‘); readln (lop [i]. hoten);</p>\r\n<p>Write (‘ Ngay sinh : ‘); readln (lop [i].ngaysinh);</p>\r\n<p>Write (‘ Dia chi : ‘); readln (lop [i].Diachi);</p>\r\n<p>Write (‘Diem Toan : ‘); readln (lop [i]. Toan);</p>\r\n<p>Write (‘Diem Van : ‘); readln (lop [i]. Van);</p>\r\n<p>If Lop [i]. Toan+Lop [i]. Van &gt;=18</p>\r\n<p>then Lop [i]. xeploai:=’A’;</p>\r\n<p>if    (Lop[i].Toan+Lop[i].Van&gt;=14)    and</p>\r\n<p>Lop [i]. Toan+Lop [i]. Van &lt;18</p>\r\n<p>then Lop [i]. xeploai:=’B’;</p>\r\n<p>if    (Lop[i].Toan+Lop[i].Van&gt;=10)    and</p>\r\n<p>Lop [i]. Toan+Lop [i]. Van &gt;=14</p>\r\n<p>then Lop [i]. xeploai:=’C’;</p>\r\n<p>if    (Lop[i].Toan+Lop[i].Van&lt;=10)    and</p>\r\n<p>then Lop[i].xeploai:=’D’;</p>\r\n<p>end;</p>\r\n<p>clrscr;</p>\r\n<p>writeln (‘Danh sach xep loai hoc sinh trong lop: ‘ );</p>\r\n<p>for i:=1 to N do</p>\r\n<p>writeln (Lop[i].Hoten:30,’ – Xep loai : ‘, Lop[i]. Xeploai);</p>\r\n<p>readln</p>\r\n<p>End.</p>\r\n<p class=\"Bodytext0\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Để chương trình đưa ra danh sách học sinh xếp loại A, thì chúng ta cần đưa thêm đoạn chương trình sau vào cuối chương trình trên:</span></span></p>\r\n<p class=\"Bodytext80\">writeln(’Danh sach hoc sinh xep loai A trong lop: ');</p>\r\n<p class=\"Bodytext80\">for i:=1 to N do if Lop[i].Xeploai =’A' then writeln(Lop[i].Hoten:30);</p>\r\n<p class=\"Bodytext30\" align=\"left\">Vì vậy, chương trình đưa ra danh sách học sinh xếp loại A trong lớp như sau:</p>\r\n<p class=\"Bodytext80\">program xep_loai;</p>\r\n<p class=\"Bodytext80\">uses crt;</p>\r\n<p class=\"Bodytext80\">const max= 60;</p>\r\n<p class=\"Bodytext80\">type Hocsinh = record</p>\r\n<p class=\"Bodytext270\" align=\"left\">hoten: string[30];</p>\r\n<p class=\"Bodytext270\" align=\"left\">ngay sinh: string [ 10 ] ,<sup>ề</sup></p>\r\n<p class=\"Bodytext270\" align=\"left\">Diachi: string[50];</p>\r\n<p class=\"Bodytext270\" align=\"left\">Toan, Van: real;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Xeploai: char;</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext270\">var</p>\r\n<p class=\"Bodytext80\">Lop: array[1..max] of hocsinh;</p>\r\n<p class=\"Bodytext270\" align=\"left\">N,i: byte;</p>\r\n<p class=\"Bodytext270\">Begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">clrscr;</p>\r\n<p class=\"Bodytext270\" align=\"left\">write('So luong hoc sinh trong lop N=');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(N); for i:= 1 to N do</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext270\" align=\"left\">writeln('Nhap so lieu ve hoc sinh thu ',i,': ');</p>\r\n<p class=\"Bodytext270\" align=\"left\">write('Ho va ten: ');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(lop[i].hoten);</p>\r\n<p class=\"Bodytext270\" align=\"left\">write (’Ngay sinh: ');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln (Lop[i] ngaysinh);</p>\r\n<p class=\"Bodytext270\" align=\"left\"> write('Dia chi : ’);</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(Lop[i].Diachi) ;</p>\r\n<p class=\"Bodytext270\" align=\"left\">write('Diem Toan: ');</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(Lop[i].Toan) ;</p>\r\n<p class=\"Bodytext270\" align=\"left\">write('Diem Van : ’);</p>\r\n<p class=\"Bodytext270\" align=\"left\">readln(Lop[i].Van);</p>\r\n<p class=\"Bodytext270\" align=\"left\">if Lop[i].Toan+Lop[i].Van&gt;=18 then</p>\r\n<p class=\"Bodytext80\">Lop[i].xeploai:='A';</p>\r\n<p class=\"Bodytext80\">if (Lop[i].Toan+Lop[i].Van&gt;=14) and Lop[i].Toan+Lop[i].Van&lt;18) then</p>\r\n<p class=\"Bodytext80\">Lop[i].Xeploai:='B';</p>\r\n<p class=\"Bodytext80\">if (Lop[i].Toan+Lop[i].Van&gt;=10) and (Lop[i].Toan+Lop[i].Van&lt;14) then Lop[i].Xeploai:=’c';</p>\r\n<p class=\"Bodytext80\">if (Lop[i].Toan+Lop[i].Van&lt;=10) then Lop[i] .xeploai: = 'D' ;</p>\r\n<p class=\"Bodytext740\">end;</p>\r\n<p class=\"Bodytext80\">clrser;</p>\r\n<p class=\"Bodytext80\">W1 iteln(<sup>1</sup> Danh sach xep loai hoc sinh trong lop: '); fcr i:= 1 to n do writeln(Lop[i].Hoten: 30, ' -Xep loai:', Lop[i].Xeploai); writeIn('Danh sach hoc sinh xep loai A trong lop: '); ior i:= 1 to N do</p>\r\n<p class=\"Bodytext80\">if Lop[i].Xeploai ='A' then writeln(Lop[i].Hoten : 30);</p>\r\n<p class=\"Bodytext80\">readln</p>\r\n<p class=\"Bodytext80\">End.</p>\r\n<p class=\"Bodytext80\">Giả sử ta nhập vào dữ liệu của 5 học sinh thì kết quả của chương trình hiện trên màn hình như sau:</p>\r\n<p class=\"Bodytext80\"><img src=\"https://img.loigiaihay.com/picture/2017/0124/71.jpg\" alt=\"\" width=\"450\" height=\"156\" /></p>\r\n<div style=\"text-align: right;\"> <strong>Loigiaihay.com</strong></div>\r\n</div>"}],"most_views":[],"list_sub_event":[{"id":"4770","item_id":4770,"title":"Bài 11: Kiểu mảng","short_title":"Bài 11: Kiểu mảng","is_link":0},{"id":"4771","item_id":4771,"title":"Bài tập và thực hành 3","short_title":"Bài tập và thực hành 3: Làm quen với hệ điều hành","is_link":0},{"id":"4772","item_id":4772,"title":"Bài tập và thực hành 4","short_title":"Bài tập và thực hành 4:","is_link":0},{"id":"4773","item_id":4773,"title":"Bài 12: Kiểu xâu","short_title":"Bài 12: Kiểu xâu","is_link":0},{"id":"4774","item_id":4774,"title":"Bài tập và thực hành 5","short_title":"Bài tập và thực hành 5","is_link":0},{"id":"4775","item_id":4775,"title":"Bài 13: Kiểu bản ghi","short_title":"Bài 13: Kiểu bản ghi","is_link":0},{"id":"4776","item_id":4776,"title":"Tóm tắt chương IV","short_title":"Tóm tắt chương IV","is_link":0}],"top_banner":"","cfg_info":{"last_cfg_time":"1521866679","ad.popup_frequency":"0","ad.adsense.detail_bottom.unit_id":"ca-app-pub-8529835372050931/9927553003","ad.adsense.popup.unit_id":"ca-app-pub-8529835372050931/2161779402","current.force.update.version":"181","support.email":"loigiaihay.com@gmail.com","support.fanpage":"https://www.facebook.com/Loigiaihay/","popup_rating_after":"86400","admob.app_id":"ca-app-pub-8529835372050931~4358271409","admob.unit.article_detail_bottom":"ca-app-pub-8529835372050931/1883637630","admob.unit.article_detail_top":"ca-app-pub-8529835372050931/8604898230","admob.unit.event_article_top":"ca-app-pub-8529835372050931/7406887709","admob.unit.interestial":"ca-app-pub-8529835372050931/2741937409","ios_appstore_link":"https://itunes.apple.com/us/app/loigiaihay/id1209891610?mt=8","android_appstore_link":"https://play.google.com/store/apps/details?id=com.tp.loigiaihay","min_version":"2.1.3","latest_version":"1.3.9","force_update":false},"popup_ads":[]}